`

敏捷开流程

阅读更多

敏捷开发流程

需求采集

所有需求都采集到"PivotalTracker":http://www.pivotaltracker.com/projects/10357

实现需求

获取需求

登录"PivotalTracker":http://www.pivotaltracker.com/projects/10357
在Icebox中找到分值(优先级较高)的故事,点击Start按钮

开启后台测试监控

#这句也可放在.bashrc中,就不用自己打了
export AUTOFEATURE=true
script/autospec

定义用户行为(故事)

script/generate feature user name:string
      #执行结果如下,这样就生成了feature文件和相应的step文件
      exists  features/step_definitions
      create  features/manage_users.feature
      create  features/step_definitions/user_steps.rb
#使用vim编辑feature文件
vim features/manage_users.feature

cucumber支持中文描述用户行为,
可通过以下查询中文关键字与英语关键字的对应关系

cat /usr/lib/ruby/gems/1.8/gems/aslakhellesoy-cucumber-0.1.99.22/lib/cucumber/languages.yml | grep -A 13 zh-CN

不得不说一下cucumber的step定义,比如有以下feature部分定义

场景: 用户登录
  假如 我在登录页面
  当 我输入用户名为admin

则step定义可以是这样的

当 /我输入(.*)为(.*)/ do |label, value|
  #以下语句可用于调试,显示页面内容
  #puts response.body
  fill_in(label, :with => value)
end   

页面源码是这样的


<label for='login'>用户名</label>
<input id="login" is_focus="true" name="login" type="text" />



即fill_in方法会自动去找页面中用户名 对应的输入框,并且将值输入,

#单独运行feature中的某个scenario
cucumber --language zh-CN features/manage_calling_events.feature -s 更新来电
#查看test日志,以便跟踪测试过程出现的问题
tail -f log/test.log

编写Rspec单元测试代码

#生成实体
script/generate rspec_model event phone:string timing:datetime
#打开event_spec.rb编写测试代码

#测试的一般内容为:
#测试是否能够正常保存(加感叹号表示出现错误时抛异常)
Event.create!(@valid_attributes)
#测试记录数变化情况
lambda do
  Call.create!(@valid_attributes)
end.should change(Case, :count).by(1)

#测试数据的准备,所有实体都有对应的fixture,文件名如cases.yml
noise:
  content: 楼下太吵了

#在rspec中调用测试记录
#先在describe Call do下一行定义
fixtures :cases 
#之后就可以这样调用了
cases(:noise)

验收测试

安装selenium firefox插件
安装rselenese格式

#rselenese格式安装详细说明
#在firefox菜单中打开[Tools]-[Selenium IDE]
#在Selenium IDE菜单中打开[Options]-[Options...]-[Formats]
#点击左下角的[Add]
#在Name of the format:中输入rsel
#将下载的rselenese.js的内容粘贴到文本框中
#点击右下角的[OK]按钮保存,退出
#每次手动测试时,都打开firefox菜单Tools=>Selenium IDE
#录制测试脚本后,以rsel格式保存至spec/selenium/中的某个子目录(如admin)
#运行以下语句,系统打开浏览器,自动运行测试脚本
mongrel_rails start -e test -d
rake test:acceptance
#注意,如果测试过程需要修改程序代码,则修改后要重启服务器,修改rsel除外
mongrel_rails restart

代码覆盖率

应经常查看测试代码的覆盖情况

#安装rcov
sudo gem install spicycode-rcov --no-ri --no-rdoc
#运行rspec rake
rake spec:rcov
#查看报告
firefox coverage/index.html
#之后就补充测试代码了

常用测试策略

  1. 数据库记录正常保存,则记录数会加1

结对编程

利用ssh,screen,vim实现结对编程

#screen配置文件,以支持256color
wget http://saberma.github.com/file/dot/screenrc -O ~/.screenrc

#下载autossh,避免ssh闲时等待过长自动断开连接
wget http://www.harding.motd.ca/autossh/autossh-1.4b.tgz
tar -vxf autossh*.tgz
cd autossh*
./configure
make && sudo make install
#下载rscreen脚本,调用autossh登录后直接运行screen
wget http://saberma.github.com/file/bin/rscreen -O /usr/local/bin/rscreen

#测试一下
screen -xR
vim
#另开一个terminal
rscreen localhost
#会看到两个terminal显示相同vim

其他

在测试用例,单元测试都通过,而手动测试出现错误的时候,一定不能直接修正
应该先补充测试,让测试失败,再修正问题

出现疑难问题时,为便于相互协作,可通过ssh远程连至问题机后直接操作

#问题机安装ssh服务
sudo apt-get install openssh-server
#其他机连接问题机(ip为191,用户名为saberma)
ssh 192.168.1.191 -l saberma
#输入密码

参考资料

Selenium Reference
Selectors

分享到:
评论

相关推荐

    敏捷开发-Scrum.pptx

     敏捷计划流程  可用时间计算  迭代计划  迭代意向表  故亊讲览不估算 敏捷日常跟迚 扩展阅诺  故亊板,看板  燃尽图(Burndown Chart)  跟迕图不渐迕评审  跟迕表  拥抱发化?迓是迭代期内无...

    敏捷软件开发 原则模式与实践

    敏捷宣言主张个体和互动胜过流程和工具,可工作的软件胜过详尽的文档,客户协作胜过合同谈判,以及响应变化胜过遵循计划。这些原则为敏捷开发提供了指导方向。 2. **设计原则**:书中涵盖了设计模式和SOLID原则,如...

    敏捷武士:看敏捷高手交付卓越软件

    敏捷开发的实施离不开工具的支持,例如敏捷管理工具可以帮助团队更好地进行项目规划、跟踪进度、管理任务和缺陷等。一些流行的敏捷工具包括Jira、Trello等,它们能够帮助团队更有效地执行敏捷实践。 综上所述,敏捷...

    运用 Microsoft.Visual.Studio 2010.落实敏捷软件开20091023.zip

    本资料主要探讨如何有效地利用Visual Studio 2010来实施敏捷软件开发流程。 首先,敏捷开发的核心在于迭代和增量开发,Visual Studio 2010支持Scrum、XP(极限编程)等多种敏捷框架。通过内置的Team Foundation ...

    敏捷软件开发:原则、模式与实践(Agile.software.development:Principles,Patterns,and.Practices)中英版

    敏捷宣言是其核心,包括四个价值观:个体和互动高于流程和工具,可工作的软件高于详尽的文档,客户合作高于合同谈判,以及响应变化高于遵循计划。 2. **原则**:书中提出了12条敏捷开发原则,如“我们的最高优先级...

    敏捷开发中的Scrum流程和术语

    任何人力流程都离不开人来执行,所以在讲解Scrum流程之前,有必要先把Scrum中的角色讲一下。一天,一头猪和一只鸡在路上散步,鸡看了一下猪说,“嗨,我们合伙开一家餐馆怎么样?”,猪回头看了一下鸡说,“好主意,...

    敏捷软件开发 2本经典的电子书 英文清晰文字版

    - **敏捷宣言**:重视个体和互动高于流程和工具,可工作的软件高于详尽的文档,客户协作高于合同谈判,响应变化高于遵循计划。 - **敏捷原则**:包括以客户为中心,欢迎变化,持续交付,团队自我组织等。 - **...

    Scrum敏捷软件开发

    本书不仅深入介绍了Scrum框架的基本原理和实践指南,还提供了丰富的案例研究和个人经验分享,帮助读者理解如何有效地实施敏捷流程,并解决实际项目中遇到的各种挑战。 #### 二、Scrum框架简介 Scrum是一种轻量级的...

    加了个人书签的火星人敏捷开发收藏

    * 敏捷计划流程包括计划、迭代、评审和反思等阶段。 * 可用时间计算是根据团队的工作能力和迭代的目标来计算的。 * 迭代计划是根据产品待开发项的优先级排序和团队的工作能力来计划的。 敏捷生态系统: * 敏捷生态...

    【敏捷】华为-大到不能慢敏捷+Devops.zip

    6. 文化与领导力:敏捷和DevOps的成功离不开企业的文化和领导力支持。华为可能强调开放、透明和持续学习的文化,领导层也积极倡导敏捷价值观,为变革提供必要的资源和支持。 总的来说,华为在“大到不能慢”的背景...

    c# net4.0 敏捷开发框架

    这个框架充分利用了C#编程语言的强大功能,特别是其中的反射特性,以实现更加敏捷的开发流程。 反射在.NET Framework中是一个关键特性,它允许程序在运行时动态地获取类型信息并操作类型。在本框架中,全局使用反射...

    超越敏捷有效开发.pdf

    规范方法强调标准化和流程控制,而敏捷方法则强调快速响应和适应性。平衡这两者是一个挑战,书中提出了两者之间的中间方法,并尝试在执行力与创新力之间寻求平衡。书中还讨论了在擅长过程中渗透另一种方法的案例,...

    Tid大会AgileChina演讲PPT:Atlassian工具集在敏捷项目管理的应用实践

    本次演讲将通过公司的实例来介绍Atlassian工具集在敏捷研发管理中的优秀应用实践,演讲分为两大部分,第一部分主要介绍Atlassian工具集如何帮助团队回归敏捷活动,提高管理能力、并固化敏捷流程,持续进行精准的...

    敏捷开发中编写高质量Java代码

    本文将围绕敏捷开发流程中的关键环节——提升代码质量的五个步骤展开讨论,即统一编码规范、静态代码分析、单元测试、持续集成及代码评审与重构,并介绍相关工具和方法的应用。 #### 一、统一编码规范 统一编码...

    敏捷软件开发技能.pdf

    6. **团队合作与沟通**:成功的敏捷项目离不开高效的团队合作和良好的沟通机制。团队成员之间需要保持开放的态度,鼓励相互学习和支持。 #### 三、敏捷开发的实际应用案例 为了更好地理解和掌握敏捷开发的基本技能...

    腾讯专有云敏捷研发交付实践.pptx

    【腾讯专有云敏捷研发交付实践】 随着互联网+时代的到来,传统企业的IT...通过标准化、流程化和自动化的研发流程,腾讯专有云实现了效率的提升和质量的内建,帮助企业实现快速迭代和创新,以应对日益激烈的市场竞争。

    敏捷软件开发:原则、模式与实践

    1. **敏捷宣言**:书中首先介绍了敏捷宣言,这是敏捷开发的核心理念,强调个体和互动高于流程和工具,可工作的软件高于详尽的文档,客户合作高于合同谈判,响应变化高于遵循计划。 2. **敏捷原则**:作者详细解释了...

    产品研发流程介绍

    通过对微信产品研发流程的深入剖析,我们可以看到,成功的背后离不开一支高效协作、不断学习进步的团队。无论是产品经理、架构师、程序经理还是项目经理,每个人都扮演着不可或缺的角色。通过精细化的分工协作和不断...

    华为公司的新产品研发流程管理

    华为的成功离不开其独特的新产品研发流程管理策略: - **需求分析与市场调研**:在项目启动之初,华为会进行全面的市场需求分析及调研,确保产品定位准确,符合未来发展趋势。 - **跨部门协作**:通过建立跨部门...

Global site tag (gtag.js) - Google Analytics