[原]如何减少返工工作量?

标签: | 发表时间:2013-01-21 11:36 | 作者:dylanren
出处:http://blog.csdn.net/dylanren

    提高软件开发效率的最有效手段就是一次做对,一次做好,不返工,追求交付零缺陷的目标。“对”就是没有错误,符合需求,“好”就是没有坏味道,易于修改。“做对”保证了产品的外部质量,“做好”保证了产品的内部质量,这样就可以减少软件缺陷、需求变更带来的返工。返工可能发生在生命周期的早期,也可能发生在后期,或者是交付以后,缺陷越早发现,越早解决,返工的工作量越少。有哪些手段可以保证不犯错,少犯错,及时纠错呢?

1需求阶段

     需求调研:

           要访谈客户、最终用户与间接用户;

           要访谈高层、中层与底层的用户;

           要准备好问题单;

           采用原型法启发客户需求;

     需求描述:

           用户故事描述用户需求;

           采用用例法描述功能需求;

           当用户无法提出非功能性需求时,定义定义非功能性需求的缺省值;

     需求确认:

           采用多种方法确认需求;

           采用需求交底、逆向培训、现场客户等方法确保需求沟通的一致性;

           建立需求沟通的平台,确保需求的沟通能传递到每个相关人员;

           在需求阶段开始编写系统测试用例,验证需求的可测试性;

           建立需求与设计、代码、测试用例之间的跟踪关系;

           用户、开发、测试人员参与需求的评审;

     需求变更:

           基于RTM进行需求变更的影响分析;

           需求的变更要通知到相关人员;

           对于需求的变更采用结对修改的方法;

     人员:

           对需求人员进行需求工程的专题培训,要求需求人员掌握需求工程的基本知识,具备基本的技能。

2设计阶段

     需求理解:

           和需求人员对需求的理解达成一致;

           对需求的拆分、细化,功能的设计要得到需求人员的认可;

     设计:

           要建立设计到需求的跟踪矩阵,确保设计的完备性;

           采用结对设计的方法确保设计的正确性;

           需求、设计、开发人员对设计进行技术评审,识别设计中的缺陷;

           对设计人员进行培训、上岗资格认证,要求设计人员掌握架构设计、设计原则、设计模式、数据库设计、界面设计的方法;

           建立评价设计优劣的准则,包括类的设计、算法设计、数据库设计、界面设计的准则;

           对于非功能性需求给出缺省的解决方案;

           在设计中采用设计模式提高设计的合理性;

           对于界面的设计尽早进行确认;

           接口测试要早设计、早实现、早测试;

3编码阶段

     和需求人员对需求的理解达成一致;

     和设计人员对设计的理解达成一致;

     在写代码之前先做了详细设计,对详细设计做了评审;

     结对编程;

     测试驱动的开发;

     按照编码规范进行编码;

     代码的静态检查;

     代码评审;

     持续集成;

     代码重构;

     编码人员要掌握常用的设计模式、重构的手法;

4测试阶段

     测试人员参与需求评审,需求人员参与测试用例的评审;

     建立测试用例与需求之间的映射关系,追求需求场景的覆盖率;

     集成测试用例覆盖每一个接口的输入参数的每种等价类;

     定义用例编写规范:

           ? 用例应覆盖正常操作、异常操作、边界条件

           ? 用例应该覆盖客户操作场景的各种等价类

           ? 每个用例应该详细描述出输入、操作步骤、期望的输出

           ? 区分不同的专项测试制定用例编写规范

           ? 坚持执行失效模式分析

     定义质量目标,并努力达成质量目标:

           ? 每千行代码的平均测试工作量;

           ? 每千行代码测试用例的个数;

           ? 每千行代码发现的缺陷个数;

     在客户各种可能的使用环境中进行测试,专人负责测试环境的维护;

     针对非功能需求进行测试策略的设计;

     先设计测试要点再设计测试用例;

     非功能性需求要尽早测试;

     先进行冒烟测试,再执行正式的测试;

     定义测试结束的量化标准,定义软件交付的最低标准;

     针对共性的需求建立复用用例库,每次测试时从中挑选用例,然后再补充完善用例;

     尽可能模拟客户的环境进行软件的测试,应进行测试环境的组合设计。

作者:dylanren 发表于2013-1-21 11:36:03 原文链接
阅读:19 评论:0 查看评论

相关 [工作] 推荐:

工作本身

- LianQiao - ExoPlanet
标题自己起的, 内容是转别人的. 因为很有同感, 希望原文作者莫怪我未经同意的转发.        当时公司招了大批应届本科和研究生毕业的新新人类. 那个新的助理,是经过多次面试后,我亲自招回来的一个女孩. 名牌大学本科毕业,聪明,性格活泼. 私下里我得承认,我招她的一个很重要的原因,除了她在大学里优秀的表现之外,还因为她写了一手漂亮的字.

工作本身与工作之外

- renwen - Page to Page
也许是自己太过年轻,也许自己太过幼稚,感情、工作这些东西,思考的都不是那么的长远,甚至没有细细思考过,但是只要静下心来,我们似乎又一下长大,有时会有一种灵感突现的感觉,似乎那么一瞬间,我们都已长大,都已成熟. 但是没有经过岁月洗涤的成熟,就像那些通过催熟剂催熟的果实,总感觉不是那么回事儿;我们仍然无法从容,仍然无法释然.

在外工作(二)

- Greyby - 梦想风暴
在做的这个项目是为一个遗留系统提供Web Service,从技术上来说并不复杂. 说起来就是接到请求,然后调用一下已有代码. 让这个项目有难度的是后面庞大的遗留系统. 整个系统大概已经有十多年的历史了,已有codebase里面大量运用的JDBC可见一斑. 真正要搞清楚如何把接收过来的请求对应到现有的代码上并不是那么容易的.

我如何工作

- Jason - 《商业价值》杂志
《我如何工作》其实是《财富》等几本杂志对顶级企业家访谈的文章结集,它的闪光之处在于这些文章没有过多从宏观和战略谈起,而是更多地从企业家自身的角度去分享过往的感触和经验. 1.安迪·格鲁夫(英特尔公司前CEO):作为老板,我会被要求做出影响其他人人生的决定. 人们在祝贺我升职时,可没有谁告诉我这一点.

SSL工作原理

- - 互联网 - ITeye博客
SSL 是一个安全协议,它提供使用 TCP/IP 的通信应用程序间的隐私与完整性. 超文本传输协议 (HTTP)使用 SSL 来实现安全的通信. 在客户端与服务器间传输的数据是通过使用对称算法(如 DES 或 RC4)进行加密的. 公用密钥算法(通常为 RSA)是用来获得加密密钥交换和数字签名的,此算法使用服务器的SSL数字证书中的公用密钥.

DBA工作总结

- - CSDN博客数据库推荐文章
一年以来,本人尊敬领导团结同事、服从安排 遵守纪律,坚持努力学习专业知识,兢兢业业克己奉公努力工作. 总结过去,在知识结构上,能够完成了EBS-DBA的各项工作;在日常工作XX,能够完成EBS-DBA的各项工作任务,适应了DBA工作岗位要求的职责,掌握了EBS-DBA要求的多项技术. 我一年以来的主要工作从以下几个方面说起主要包括日常维护、补丁更新,安装规划,文档整理,最后给出下一步规划.

apache 工作模式

- - 互联网 - ITeye博客
如果httpd -l列出prefork.c. 则表示是 prefork 工作方式. 这表明当前apache2的工作方式是 prefork. prefork的工作原理是,控制进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers设置的需要创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足MinSpareServers设置的值为止.

Activiti工作流demo

- - CSDN博客综合推荐文章
继上篇《 Activiti工作流的环境配置》.        前几篇对Activiti工作流进行了介绍,并讲解了其环境配置. 本篇将会用一个demo来展示Activiti工作流具体的体现,直接上干货.        以HelloWorld程序为例.       首先说一下业务流程,员工张三提交了一个申请,然后由部门经理李四审核,审核通过后再由总经理王五审核,通过则张三申请成功.

CDN 工作原理

- - 互联网 - ITeye博客
1.CDN的实现基础是通过将DNS的域名设置为CNAME(就是指向另一个域名,但这个域名也是有A记录的(就是域名对应IP)). 2.CNAME的作用就是要求浏览器发送域名到CNAME这个域名的服务器去解析得到域名的IP,就是本地DNS不作IP解析,而由CNAME指定的服务器去解析. 3.CNAME指定的服务器去解析的IP地址是CDN的全局负载均衡设备IP.

理解Git工作流

- joyoner - FeedzShare
来自: 黑客志 - FeedzShare  . 发布时间:2011年08月04日,  已有 2 人推荐. 如果你不了解Git背后的设计初衷,那么你正处在危险境地,当然有很多参数可以强迫Git按照你的意愿行事,但这并不是Git被设计的工作方式,这就好比你可以把改锥当锤子使用,并且它也可以完成工作,但这对改锥没什么好处.