上次翻译了一篇文章—— Bug分析:为bug预防奠定基础, 强调软件缺陷的预防。软件质量是构建起来的,由软件开发的整个过程质量所决定的,软件质量肯定不是通过测试测出来的。所以软件缺陷的预防自始至终是重要的。除了缺陷分析,另外一个很重要的实践就是:代码复审(code review)和测试用例的复审(Test Case review)。<o:p></o:p>
1.Code review<o:p></o:p>
在IBM、微软等很多公司都有一个很好的实践,那就是Code review - 代码复审。这种代码审查的过程,不是将代码发给某一个人或某几个人去看,而是强调程序员自己定期走上台,向其他人讲解自己源程序的活动。因为要向大家讲解自己的程序,show code to other guys, 程序员会极其重视自己的工作进度、代码质量,在写代码时,就时刻想着——可能随时会被选中去做code review, 所以非常认真对待每一行代码。这种Code review 方式还有其它好处:<o:p></o:p>
- 可以互相学习程序设计思想、方法和技巧,共同提高; <o:p></o:p>
- 可以及时发现代码的问题,包括代码的Dependency的问题; <o:p></o:p>
- 更多的人明白他人写的代码,今后代码的维护也变得容易。<o:p></o:p>
所以这种Code review 方式,被证明是一种行之有效的方法。
<!---->
<!----><o:p></o:p>
2.Test Case review<o:p></o:p>
与Code review对应的,在测试/QA这边进行Case review. 每一个QA工程师,都有机会被选中,通过投影机做Presentation,向大家讲清楚他/她是如何设计测试用例(Test Case)的, 包括产品新特性的理解、对测试范围的分析,考虑了哪些因素、哪些user scenario, 用例设计的思路是怎样的?测试的覆盖率如何?把主要的测试用例从头到尾Show 一遍,等等。
每个人都有且必须有机会,这是关键。其次,Case review时,被选中的QA Engineer必须讲解他/她如何写Test case.
通过这样的实践和活动,可以更早地发现test case中的问题,相互启发,相互学习test case design的技巧和方法,交流经验。也督促每个人把测试用例设计好。好处也一样多: <o:p></o:p>
- 设计Test case之前,就会好好考虑各种因素、想清楚设计思路——覆盖率提高。 <o:p></o:p>
- 认真写好每一个Test case——单个case质量提高 <o:p></o:p>
- 更早地发现Test case的问题,包括相互影响的区域。 <o:p></o:p>
- 相互学习 <o:p></o:p>
- Test case维护更容易<o:p></o:p>
Code review和Test Case review同样蕴含了“缺陷预防”的思想。要提高质量,就如克劳士比所说,第一次就要把事情做对!如果系统分析员、架构设计师、设计人员、编程人员等所有人员都在第一次就要把事情做对,测试人员也许就不需要了。有一个例证,几千人的印度软件公司,只有5-6个真正的QA人员,但没有一个测试人员,软件产品质量依旧很好,再一次验证了“质量是写出来的,不是测出来的”。
分享到:
相关推荐
Employing lightweight, tool-based code review of code changes (aka modern code review) has become the norm for a wide variety of open-source and industrial systems. In this paper, we make an ...
1. 代码审查的理由:《The Case for Peer Review》这一部分可能讨论了为何同行代码审查对于软件质量控制如此重要。它可能指出,审查可以作为一种有效的错误检测手段,并且有助于提升代码库的整体质量。此外,它可能...
在软件开发过程中,设计文档是不可或缺的一部分,它们用于规划、沟通和记录项目的各个方面。下面将详细探讨标题"20个软件开发常用设计文档...通过深入理解和实践这些文档,开发者可以更好地组织和管理软件开发过程。
《日汉专业会话:软件工程开发事例》是一份专为对日软件开发工程师设计的资源,旨在提升他们的日语沟通能力和理解日本软件开发流程的能力。这份资料集结合了语言学习与专业技能提升,提供了丰富的实践场景对话,涵盖...
Independent Code Review and Testing (by Experts or Third Parties) Static Analysis Risk Assessment Methodology Integration of SDL with SDLC Development of Architecture Talent Metrics Chapter ...
7. **软件工程**:系统分析师需遵循软件开发的最佳实践,如需求变更控制、版本控制、测试和调试。相关词汇:change control, version control, testing, debugging, documentation, code review, etc. 8. **安全与...
9. Code Review:代码审查,团队成员互相检查代码以找出潜在问题。 10. User Acceptance Testing (UAT):用户验收测试,最终用户确认产品是否满足业务需求。 四、英语面试常见问题 1. What is your experience in ...
16. 代码审查记录:代码审查文档(Code Review Document)记录了代码质量检查的过程和结果,促进了代码质量的提升。 17. 用户手册:用户手册(User Manual)提供了系统操作指导,帮助用户了解如何使用产品。 18. ...
构架模式是软件架构设计中常用的一组最佳实践,用于解决特定类型的架构设计问题。构架模式可以帮助开发者避免重复发明轮子,加快开发进度。 #### 构架视图(Architectural View) 构架视图是从特定角度观察软件系统...
10. 代码审查报告(Code Review Report):记录代码审查的过程和结果,确保代码质量并找出潜在问题。 11. 风险管理文档(Risk Management Document):识别项目可能面临的风险,评估其影响和概率,制定应对策略。 ...
Review case studies depicting applications of machine learning and deep learning on diverse domains and industries Apply a wide range of machine learning models including regression, classification, ...
**代码审查(Code Review)**是软件开发过程中一个重要的环节,它有助于在代码被正式集成之前发现并修复潜在的问题和缺陷。这一过程通常涉及多名团队成员,旨在提高代码质量、增强团队协作,并减少后期维护成本。 ###...
erp项目练习show case, code review 基础模块开发 crud 主线业务,锻炼业务逻辑能力 每天新技术,框架... 导入导出, 邮件.... 权限系统搭建 shiro security 3个能力 1. 前后端调试 2. 学会分析需求转成java代码...
Generic Code Review Checklist Summary Quiz Chapter 7. Testing the Software with X-Ray Glasses Dynamic White-Box Testing Dynamic White-Box Testing Versus Debugging Testing the Pieces ...
CASE是一组软件工具和方法,用于支持软件工程的各个阶段,包括需求分析、设计、编码和测试。它通过自动化或半自动化的方式提高软件开发的效率和质量。 ### Component-Based Development (CBD) CBD是一种软件开发...
Swift中的Codable协议是用于自定义数据类型进行编码和解码的接口,它使得Swift类型能够直接从JSON, Property ...为了深入理解Swift中的Codable协议,建议结合完整的Swift官方文档和实际项目的编码实践来进一步学习。