.
一、概述 ................................................................................................. 1 二、基本概念 ......................................................................................... 1
2.1正面测试(Positive Testing) .................................................. 1 2.2负面测试(Negative Testing) ................................................ 2 2.3分支测试 ................................................................................... 2 2.4黑盒测试 ................................................................................... 2 2.5白盒测试 ................................................................................... 2 三、单元测试范围 ................................................................................. 3 四、 常见测试用例设计方法及举例 .................................................... 3
4.1 用于语句覆盖的基路径法 ....................................................... 3 4.2 用于MC/DC的真值表法 ....................................................... 9 4.3 边界值法 ................................................................................ 11 4.4 等价类法 ................................................................................ 12 4.5循环测试法 ............................................................................. 17 4.6错误推测法 ............................................................................. 18 五、相关注意事项 ............................................................................... 18
5.1独立性 ..................................................................................... 18 5.2尽量脱离被测代码的束缚 ...................................................... 18
..
.
5.3面向对象的语言单元测试特点 .............................................. 18 5.4单元测试的命名标准 .............................................................. 19
1.单元测试的命名标准 ......................................................... 19 2.单元测试中的变量命名规范 ............................................. 19 3.断言和操作分离 ................................................................. 19 4.避免滥用setup和teardown .............................................. 19
..
.
一、概述
单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。该文档从测试角度出发,去讨论如何设计单元测试的测试用例。
这里强调,单元测试用例的设计是进入实际编码之前的,测试用例设计在前,更能体现出灵活性,如果已经编码完成再进行测试用例的补充,这样很容易进入一个仅仅是测试了被测代码段功能的怪圈,所以希望所有的单元测试工作,可以放在前面完成。同时单元测试用例是一个不断完善的过程,前期设计好的用例,在代码已经实现完成后,会发现覆盖的并不是很全面,有良好的习惯是需要将对应的测试用例进行补充,而在提交测试后发现的重要的bug,也需要进行单元测试用例的补充,使单元测试和各种测试方法相结合,实现测试质量的充分保证。
二、基本概念
2.1正面测试(Positive Testing)
测试被测对象的正确功能实现无误,即正常流程功能。往往需要根据设计说明进行用例导出,严格按照设计说明编写即可,用例划分注意等价类区分等方法。
例如:接口返回小于等于24个中文字的offer标题(这里标题控制不
..
.
会超过24个字)进行页面展示。
2.2负面测试(Negative Testing)
测试被测对象的异常功能实现无误,多在异常流程,异常数据中体现。该部分测试需要对被测对象进行错误发散,常依赖于边界值区分等方法。
例如:接口返回25个中文字的offer标题进行页面展示。
2.3分支测试
使用流程图,明确可能出现的每条分支,制造响应的数据进行覆盖,实现对被测对象的测试。这个过程对于分支可以进行响应的简化,可以穿插等价类等方法去除同类分支。
例如:实现offer发布的功能,分别会出现发布普通产品,代理加盟,求购,供应等分支,测试offer提交模块的时候,需要区分这么多重类型的数据,那么假设对于全部供应类型的offer,实现上都是一样的,就可以进行等价类划分,区分供应和求购即可。
2.4黑盒测试
不关心被测对象内部,将其当做一个黑盒,仅仅关注对该模块的输入区分和输出结果校验。
2.5白盒测试
..
.
将被测对象的每个实现都充分了解,根据内部实现进行用例设
计,需要保证每个独立路径都完成用例覆盖,而常规的对每个独立路径进行真假验证。
三、单元测试范围
单元测试范围的重点包括两个方面:1.测试代码实现的功能,这个可以通过需求文档进行整理,然后调整每个功能点的颗粒度,尽量可以和开发实现的被测单元进行对应,入口文档包括需求文档、设计文档;2.外部接口和底层实现。
四、常见测试用例设计方法及举例
4.1 用于语句覆盖的基路径法
基路径法保证设计出的测试用例,使程序的每一个可执行语句至少执行一次,即实现语句覆盖。基路径法是理论与应用脱节的典型,基本上没有应用价值,读者稍作了解即可,不必理解和掌握。 基路径法步骤如下: 1)画出程序的控制流图
控制流图是描述程序控制流的一种图示方法,主要由结点和边构成,边代表控制流的方向,节点代表控制流的汇聚处,边和结点圈定的空间叫做区域,下面是控制流图的基本元素:
..
单元测试用例设计
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)