构建之法--第二章读书笔记 单元测试、回归测试以及个人软件开发流程

个人技术和流程

作为一名合格的软件工程师,需要掌握一些基本的个人技术和开发流程。
这一章介绍了一些基本的概念和技术,即单元测试、回归测试和效能分析工具。关于开发流程,本章介绍了PSP(Personal SoftWare Process,个人软件开发流程)。


单元测试

1.为什么要做单元测试?(增加对单元测试重要性的感性理解)
单元测试不仅可以让模块负责者明确模块的功能,还可以让其他调用者了解模块的功能,做好单元测试,可以使模块内部的改变不会影响其他模块,保证模块的质量。

2.好的单元测试标准(重点,学习的时候要掌握根本性的原则和原理,以不变应万变)
重点内容单元测试应该在最基本的功能/参数上验证程序的正确性
单元测试应该测试程序中最基本的单元–类,在此基础上,可以测试一些系统中最基本的功能点(这些功能点由几个类组成)。单元测试要测试API中每一个方法及每一个参数。

单元测试必须由最熟悉代码的人(程序的作者)写
单元测试要体现API的语义,最好在设计的时候就写好单元测试。

单元测试过后,机器状态保持不变
单元测试创建的临时目录或文件,创建或修改了数据库中的记录都应该及时删除或恢复。
或者可以考虑每一个单元测试使用一个新的数据库,这样做的目的是保证单元测试不受以前单元测试实例的影响。

单元测试要快
软件若有相互独立的几个层次,可以分层次进行测试,或只测试修改的一个层次。

单元测试产生的错误是可复现的
一种不太好的例子:使用随机数后,程序运行出错,但是下一次运行又不能重复这一错误。

单元测试的运行/通过/失败 不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性。
一般来说,程序中的各个模块是相互依赖的。一般情况下,单元测试中的模块可以引用其他的模块。
但 如果其他模块不稳定、或者运行比较费时,对本模块的正确性不起关键作用,可以人为构造数据。

单元测试应该覆盖所有代码路径
为了保证代码覆盖率,单元测试必须测试公开的和私有的方法。

注意:100%的代码覆盖率不等同于100%的正确性。

单元测试应该集成到自动测试的框架中
单元测试自动化,保证每个人都能随时、随地运行单元测试。

单元测试必须和产品代码一起保存和维护
单元测试必须和代码一起进行版本维护。


回归测试 (建立在单元测试基础上的)

1.回归测试是什么意思?
回归测试,可以理解为退步测试。软件开发中,如果一个模块或功能以前是正常工作的,但是在一个新的构建中出了问题,那么这个模块就出现了一个“退步”,从以前正常的工作状态退化到不正常的工作状态。
当一个模块相关的所有测试用例都通过了,那么这个模块的所有单元测试用例就是这个模块最初的功能基准线
2.回归测试具体要如何做?
简单来说,就是在新版本上运行当前功能基准线对应的所有测试用例,检查是否有退化的现象发生。
如果退化是模块功能正常变化引起的,那么就需要修改基准线(修改测试用例以适应新的功能)。
3.何时做回归测试?
加入新功能或Bug Fix以后都需要做。


效能分析工具

书中介绍了VSTS的效能分析工具,鉴于本人主要使用java语言,所以会写一篇文章讨论java性能分析工具的使用。

注意:一定要进行分析以后,针对分析结果进行优化。


个人开发流程(PSP)

这部分的学习,目标是感性了解下在PSP模型中,一个软件工程师接到任务后该做什么?

是否应用,如何应用还需要在实际工作过程中结合实际的工作流程进行分析。

软件工程师的任务清单

猜你喜欢

转载自blog.csdn.net/kingmore96/article/details/80108285
今日推荐