1、单元测试之白盒测试曹晓夏测试用例设计概述测试用例:是为了特定目的而设计的测试数据及与之相关的测试规程的一个特定的集合,或称为有效地发现软件缺陷的最小测试执行单元。测试用例的重要性有效性可重复性易组织性可评估性可管理性测试用例书写标准标准测试模板中主要元素如下:标识符测试项测试环境要求输入标准输出标准测试用例之间的关联测试用例可以简单表示成:测试用例=输入数据+期望结果测试用例设计考虑因素测试用例必须具有代表性、典型性;测试用例设计时,要浓缩系统设计;测试用例设计的基本原则尽量避免含糊的测试用例尽量将具有相类似功能的测试用例抽象并归类尽量避免冗长和复杂的测试用例白盒测试用例设计方法白盒测试的概念
2、:白盒测试是为了测试证明每种内部操作和过程是否符合设计规格和要求;白盒测试是居于对程序的基本输入输出已经了解的基础上进行程序内部逻辑结构测试,白盒测试又称为结构测试或者逻辑驱动测试或者基于程序的测试。白盒测试的范围:白盒测试主要是针对程序内部逻辑和数据流程的测试,白盒测试用例的设计需要了解程序的内部逻辑。白盒测试主要对程序模块进行以下检查:对程序模块的所有独立的执行路径至少要测试一次;对所有的逻辑判定,取真或假的两种情况至少要测试一次;对程序进行边界检查(常见的如数据越界检验);检验内部数据结构的有效性。在白盒测试用例设计中,主要使用两种方法:逻辑覆盖法语句覆盖判定覆盖条件覆盖判定-条件覆盖条
3、件组合覆盖路径覆盖基本路径测试法语句覆盖语句覆盖法的基本思想:设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少执行一次。令 a=2,b=1,c=6 满足语句覆盖注意:在使用语句覆盖发进行测试用例设计时,能够使所有的执行语句都能被测试。但是不能准确判断运算中的逻辑关系错误判定覆盖判定覆盖的基本思想:设计若干用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。令 a=2,b=1,c=6 令a=-1,b=1,c=0条件覆盖条件覆盖的基本思想:设计若干测试用例,执行被测程序以后要是每个判断中每个条件的可能取值至少满足一次。采用条件覆盖设计的测试用
4、例测试用例取值条件具体取值条件通过路径输入输入:a=2,b=-1,c=-2输出输出:a=2,b=-1,c=-3T1,F2,T3,F4a0,b1,c=1P3(1-3-4)输入输入:a=-1,b=2,c=3输出输出:a=-1,b=2,c=6F1,T2,F3,T4A0,a1P3(1-3-4)判定条件覆盖判定条件覆盖的基本思想:判定条件覆盖实际上是将前两种方法结合起来的一种设计方法,它是判定和条件覆盖设计方法的交际,及设计足够的测试用例,使得判断条件中的所有条件可能至少执行一次取值,同时,所有判断的可能结果至少执行一次。测试用例取值条件具体取值条件通过路径输入输入:a=2,b=1,c=6输出输出:a=
5、2,b=1,c=5T1,T2,T3,T4a0,b0,a1,c11P3(1-2-4)输入输入:a=-1,b=-2,c=-3输出输出:a=-1,b=-2,c=-5F1,F2,F3,F4a=0,b=0,a=1,c=1P3(1-3-5)条件组合覆盖条件组合覆盖的基本思想:设计足够的测试用例,使得判断中每个条件的所有可能至少出现一次,并且每个判定的所有条件取值组合都至少出现一次。测试用例取值条件覆盖组合通过路径输入输入:a=2,b=1,c=6输出输出:a=2,b=1,c=5T1,T2,T3,T4输入输入:a=2,b=-1,c=-2输出输出:a=2,b=-1,c=-3T1,F2,T3,F4输入输入:a=-1,b=2,c=3输出输出:a=-1,b=2,c=6F1,T2,F3,T4输入输入:a=-1,b=-2,c=-3输出输出:a=-1,b=-2,c=-5F1,F2,F3,F4路径覆盖路径覆盖的基本思想:设计所有的测试用例,来覆盖程序中的所有可能的执行路径基本路径测试基本路径测试的基本思想:基本路径测试实在程序流图基础上。确定程序的环路复杂性,导出基本路径的集合,进而在其基础上设计测试用例,这些测试用例能覆盖到程序中的每条可执行语句。流图程序的环路复杂性V(G)V(G)=E-N+2V(G)=P+1