《构建之法》学习(2)——个人技术和流程

《构建之法》学习(2)——个人技术和流程

1.单元测试

      对一个多人合作的软件来说,让自己负责的模块功能定义尽量明确,是至关重要的,而单元测试能稳定、质量地保证模块的质量。

      在写技术模块的规格说明书的时候,要越详细越好,最好各项要求都可以表示为一个单元测试用例。

      虽然繁琐,但是为了不在后期发现更难处理的bug,单元测试是十分必要的。

      验证单元测试好坏的标准:

      单元测试应该在最基本的功能/参数上验证程序的正确性。

      单元测试必须有最熟悉代码的人(代码的作者)来写。

      单元测试过后,机器状态保持不变。

      单元测试要快(一个测试的运行时间是几秒钟,而不是几分钟)

      应该产生可重复,一致的结果。

      独立性

      单元测试应该覆盖所有代码路径

      单元测试应该集成到自动测试的框架中

      单元测试必须和产品代码一起保存和维护

2.回归测试

      “回归”是指“回归到以前不正常的状态”。

      工程师应该在新版本上运行所有已通过的测试用例,以验证有没有“退化”情况发生。

      回归测试最好要自动化,因为这样就可以对于每一个构建快速运行所有回归测试,以保证尽快发现问题。

      单元测试是回归测试的基础。

      能避免遗漏bug,以及确保bug都已解决。

 

3.效能分析工具

      效能分析分为两种分析方法,先分析再优化。

      抽样:

      当程序运行时,时不时看一看这个程序运行在哪一个函数内,并记录下来。

      代码注入:

      将检测的代码加入到每一个函数中,这程序的一举一动都被记录在案,程序的各个效能数据都可以被精确地测量。

4.个人开发流程

4.1软件工程师的任务清单

      计划

            估计这个任务需要多少时间

      开发

            分析需求

            生成设计文档

            设计复审(和同事审核设计文档)

            代码规范(为目前的开发制定合适的规范)

            具体设计

            具体编码

            代码复审

            测试(包括自测,修改代码,提交修改)

      记录用时

      测试报告

      计算工作量

      事后总结

      提出过程改进计划

4.2PSP特点

      不局限于某一个软件技术(如编程语言),而是着眼于软件开发的流程,这样开发不同应用的软件工程师可以相互比较。

      不依赖于考试,而主要靠工程是自己手机数据,然后分析,提高。

      PSP依赖于数据,需要工程师输入数据,记录工程师的各项活动,再加上数据不准确或者有遗失。

      PSP的目的记录工程师如何实现需求的效率,而不是记录顾客对产品的满意度。

原文地址:https://www.cnblogs.com/Yan1970/p/6711239.html