`
lujar
  • 浏览: 512706 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

软件质量保证的最佳实践之一:Code review和Case review

阅读更多

上次翻译了一篇文章—— Bug分析:为bug预防奠定基础 强调软件缺陷的预防。软件质量是构建起来的,由软件开发的整个过程质量所决定的,软件质量肯定不是通过测试测出来的。所以软件缺陷的预防自始至终是重要的。除了缺陷分析,另外一个很重要的实践就是:代码复审(code review)和测试用例的复审(Test Case review)。<o:p></o:p>

1Code 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>

2Test 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 reviewTest Case review同样蕴含了“缺陷预防”的思想。要提高质量,就如克劳士比所说,第一次就要把事情做对!如果系统分析员、架构设计师、设计人员、编程人员等所有人员都在第一次就要把事情做对,测试人员也许就不需要了。有一个例证,几千人的印度软件公司,只有5-6个真正的QA人员,但没有一个测试人员,软件产品质量依旧很好,再一次验证了“质量是写出来的,不是测出来的”。

 
分享到:
评论

相关推荐

    Modern Code Review- A Case Study at Google.pdf

    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 ...

    best kept secrets of peer code review

    1. 代码审查的理由:《The Case for Peer Review》这一部分可能讨论了为何同行代码审查对于软件质量控制如此重要。它可能指出,审查可以作为一种有效的错误检测手段,并且有助于提升代码库的整体质量。此外,它可能...

    20个软件开发常用设计文档大全

    在软件开发过程中,设计文档是不可或缺的一部分,它们用于规划、沟通和记录项目的各个方面。下面将详细探讨标题"20个软件开发常用设计文档...通过深入理解和实践这些文档,开发者可以更好地组织和管理软件开发过程。

    日汉专业会话:软件工程开发事例

    《日汉专业会话:软件工程开发事例》是一份专为对日软件开发工程师设计的资源,旨在提升他们的日语沟通能力和理解日本软件开发流程的能力。这份资料集结合了语言学习与专业技能提升,提供了丰富的实践场景对话,涵盖...

    Core Software Security: Security at the Source

    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 ...

    软件开发过程中60余个文档模板

    16. 代码审查记录:代码审查文档(Code Review Document)记录了代码质量检查的过程和结果,促进了代码质量的提升。 17. 用户手册:用户手册(User Manual)提供了系统操作指导,帮助用户了解如何使用产品。 18. ...

    软件工程术语表

    构架模式是软件架构设计中常用的一组最佳实践,用于解决特定类型的架构设计问题。构架模式可以帮助开发者避免重复发明轮子,加快开发进度。 #### 构架视图(Architectural View) 构架视图是从特定角度观察软件系统...

    软件工程项目开发文档模板

    10. 代码审查报告(Code Review Report):记录代码审查的过程和结果,确保代码质量并找出潜在问题。 11. 风险管理文档(Risk Management Document):识别项目可能面临的风险,评估其影响和概率,制定应对策略。 ...

    Practical Machine Learning with Python(pdf书+sourcecode)

    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, ...

    java代码审查V1.0.doc

    **代码审查(Code Review)**是软件开发过程中一个重要的环节,它有助于在代码被正式集成之前发现并修复潜在的问题和缺陷。这一过程通常涉及多名团队成员,旨在提高代码质量、增强团队协作,并减少后期维护成本。 ###...

    erp管理系统

    erp项目练习show case, code review 基础模块开发 crud 主线业务,锻炼业务逻辑能力 每天新技术,框架... 导入导出, 邮件.... 权限系统搭建 shiro security 3个能力 1. 前后端调试 2. 学会分析需求转成java代码...

    Software.Testing.2nd.Edition (Sams)软件测试(英文版)

    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 Codeable使用

    Swift中的Codable协议是用于自定义数据类型进行编码和解码的接口,它使得Swift类型能够直接从JSON, Property ...为了深入理解Swift中的Codable协议,建议结合完整的Swift官方文档和实际项目的编码实践来进一步学习。

Global site tag (gtag.js) - Google Analytics