二、如何做好单元测试?
要做好单元测试,首先必须弄清楚单元测试的对象是代码,以及代码的基本特征和产生错误的原因,然后必须掌握单元测试的基本方法和主要技术手段,比如什么是驱动代码、桩代码和 Mock 代码等。
第一,代码的基本特征与产生错误的原因
开发语言多种多样,程序实现的功能更是千变万化,可以提炼出代码的基本特征,并总结出代码缺陷的主要原因么?答案是肯定,你静下心来思考时,会发现其中是有规律可寻的。
因为无论是开发语言还是脚本语言,都会有条件分支、循环处理和函数调用等最基本的逻辑控制,如果抛开代码需要实现的具体业务逻辑,仅看代码结构的话,你会发现所有的代码都是在对数据进行分类处理,每一次条件判定都是一次分类处理,嵌套的条件判定或者循环执行,也是在做分类处理。
如果有任何一个分类遗漏,都会产生缺陷;如果有任何一个分类错误,也会产生缺陷;如果分类正确也没有遗漏,但是分类时的处理逻辑错误,也同样会产生缺陷。
可见,要做到代码功能逻辑正确,必须做到分类正确并且完备无遗漏,同时每个分类的处理逻辑必须正确。
在具体的工程实践中,开发工程师为了设计并实现逻辑功能正确的代码,通常会有如下的考虑过程:
- 如果要实现正确的功能逻辑,会有哪几种正常的输入;
- 是否有需要特殊处理的多种边界输入;
- 各种潜在非法输入的可能性以及如何处理。
讲到这里,有没有回想起“等价类”。没错,这些开发工程师眼中的代码“功能点”,就是单元测试的“等价类”。
软件测试52讲---笔记整理