软件测试之单元测试:开发人员的测试
作者:Ribbon 发布时间:[ 2015/6/17 11:09:25 ] 推荐标签:软件测试 单元测试
说到单元测试,几乎所有人都知道,由开发人员完成。可是为什么要进行单元测试呢?
开发人员写单元测试的时间几乎和他写产品代码的时间相当,因此,当做项目计划的时候,把单元测试考虑进去是合理的。尽管单元测试增加了相当大的开发工作量,看上去开发时间延长了,但实际上对于一个长期不断改进和维护的项目而言,我们不能忽视级联效应,要从项目整体来看。
单元测试可以保证基本的缺陷尽早的发现并解决,因此,用来解决被流转到后期的测试阶段的缺陷时间实际上会缩短。
而如果问开发人员是否进行了单元测试,他们通常也会说,是的,已经做了单元测试。如果问开发人员,他们的单元测试的步骤,答案很可能是:
· 开发完代码之后,实际运行了程序,简单的做了些功能测试,没有问题
· 通过断点调试进行了代码跟踪
不得不说,这么做是对的,也都具有一定的价值,但是并未关注到单元测试核心的价值,那么,什么样的测试是有效的单元测试呢?
有效的单元测试需要编写简单的、自动化的测试代码,并且几乎是和开发代码同时完成的。
开发人员做单元测试不仅必要,而且重要,每个开发人员都有责任对自己开发的代码进行单元测试。
那么,单元测试有哪些特点和作用呢?保证代码质量、更容易发现缺陷、可重复执行、代码更容易维护、解决缺陷的成本更低
为什么单元测试可以更容易发现缺陷?
因为单元测试是在系统的低级别进行测试,与别的方法或模块进行隔离了,因此单元测试的缺陷要比其他层面的缺陷更容易发现并解决。
进行单元测试主要的原因之一是解决缺陷的成本更低,因为单元测试中解决缺陷是缺陷生成到解决短的周期。
开发人员眼中的测试——把缺陷扼杀在摇篮里
1. 什么是单元测试?
单元测试是由开发人员在开发产品代码的同时进行的一种独立测试,验证其开发的每个代码单元。
2. 单元测试的目的是什么?
确保程序的逻辑和开发人员对它的预期是一致的。
3. 为什么单元测试应该由开发人员来执行?
对于程序的预期结果,开发人员自己比其他人都要清楚,因此编写有效的单元测试,开发人员本人是合适的人选。
4. 什么时候进行单元测试呢?
单元测试和开发产品代码应该是同时进行,实际上,引入敏捷开发理论之后,更高的要求是测试驱动开发,即单元测试代码要在产品代码之前编写。
5. 单元测试的单元是什么?测试对象又如何理解?
从实用角度讲,单元通常是指类的成员方法,也可以是任何具有明确功能、规格定义、明确接口定义,且其规模一般比较小的程序代码模块的组合体。
6. 都说单元测试是独立的测试,那么什么是独立测试呢?
独立,是指将代码从原始程序中隔离出来,尽可能地与程序其他部分或者外界以来隔离,针对各个单元单独进行测试。
到这里,做个小的总结来把握单元测试的关键点:
a. 单元测试记录预期的行为
b. 每个单元测试针对一个单独的行为进行测试
c. 尽可能地与程序其他部分或外界依赖隔离
d. 一旦失败,可以清楚地定位失败的原因
e. 可以重复运行,且每次运行都有确定的行为,不受上一次运行的影响
f. 可以快速地执行(10秒左右),简单、实用、高效
g. 有效的单元测试是自动化的
通过以上的介绍,可以对单元测试有了大概的了解,单元测试是什么,为什么要进行单元测试,但是,单元测试需要覆盖的内容有哪些呢?单元测试,作为白盒而进行的测试,测试包括主要的流程和出错的分支,以及边界条件,使用代码量来衡量测试的覆盖率。
1. 单元测试的测什么?
单元测试需要保证:覆盖到所有新开发的代码、修改过的代码以及存在的受影响的代码。
a. 覆盖代码所有分支,包括正常路径和错误路径
b. 覆盖所有有效的输入/输出情况
c. 覆盖所有无效的或预期以外的输入/输出情况
d. 覆盖所有的日志文件和返回代码
e. 如果有出错恢复步骤,确保其正确性
f. 验证代码的逻辑正确
g. 在虚拟翻译的构建环境中通过测试
h. 对敏感代码要测试其性能(可能需要描述代码路径及对数据库的访问)
i. 单元测试需要在开发环境中完成
j. 修改所有可翻译的代码片段,确保其正确
2. 单元测试的流程?
设计文档--设计单元测试--创建/修改代码和相关文档--对新开发代码或者修改代码进行单元测试--代码审核--集成到代码存储库
3. 单元测试开始的标志?
当接收到一份新的设计文档或者一个缺陷后,需要开始考虑单元测试了。
4. 单元测试结束的标志?
代码完成,解决了已知的问题或已提出解决遗留问题的下一步计划,且经过代码审核及执行通过单元测试后集成至代码存储库中。
5. 审核单元测试报告:
手动的单元测试报告需要有详细的步骤,包括使用到的数据集
自动化的单元测试报告不仅要有运行结果,还要给出描述,说明这一组单元测试所测的是哪一部分代码
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11