白盒测试方法:工具
1 程序结构分析:测试
程序的结构形式是白盒测试的主要依据。程序结构分析包括: 优化
一、控制流分析: 设计
对于程序结构提出如下4点基本要求,这些要求是写出的程序不该包含:blog
① 转向并不存在的标号; 开发
② 没有用的语句标号;编译器
③ 从程序入口进入后没法达到的语句;it
目前主要是经过编译器和程序分析工具来实现程序控制流分析。编译
二、数据流分析: 容器
三、信息流分析 :
2 逻辑覆盖:
一、语句覆盖:
为方便讨论,咱们将结合一程序段加以说明各类逻辑覆盖则:
IF (( A > 1) AND ( B = 0 ))THEN
X = X / A
IF (( A = 2) OR ( X > 1 ) THEN
X = X + 1
其中“AND”和“OR”是两个逻辑运算符。右图给出了它的流程图。a、b、c、d和e是控制流上的若干程序点。
该程序共有4条语句,其中2条条件判断语句,2条赋值语句。
语句覆盖的含意是,在测试时,首先设计若干个测试用例,而后运行被测程序,使程序中的每一个可执行语句至少执行一次。
对于上述程序段,选用的测试用例是:A=2,B=0,X=3 case1
则程序按路径a c e执行。这样该程序段的4个语句均获得执行,从而做到了语句覆盖。
二、断定覆盖:
按断定覆盖准则进行测试是指,设计若干测试用例,运行被侧程序,使得程序中每一个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被知足。
断定覆盖又称为分支覆盖。
仍以上述程序段为例,若选用的两组测试用例是: A=2,B=0,X=3; A=1,B=0,X=1
则可分别执行路径ace和abd,从而使两个判断的4个分支c、e和b、d分别获得覆盖。
三、条件覆盖:
条件覆盖是指,设计若干测试用例,执行被测程序之后,要使每一个判断中每一个条件的可能取值至少知足一次。
四、断定-条件覆盖:
断定-条件覆盖要求设计足够的测试用例,使得判断中每一个条件的全部可能至少出现一次,而且每一个判断自己的断定结果也至少出现一次。
五、路径覆盖:
按路径覆盖要求进行测试是指,设计足够多测试用例,要求覆盖程序中全部可能的路径
六、测试覆盖准则:
一、FOSTER的ESTCA覆盖准则
Foster 经过大量的实验肯定了程序中谓词最容易出错的部分,得出了一套错误敏感测试用例分析ESTCA (Error Sensitive Test Cases Analysis)规则。事实上,规则十分简单:
[规则1] 对于A rel B(rel能够是<, =和>)型的分支谓词,应适当地选择A与B的值,使得测试执行到该分支语句时,A<B, A=B和A>B的状况分别出现一次。
[规则2] 对于A rel1 C(rel1能够是>或是<,A是变量,C是常量)型的分支谓词,当rel1为<时,应适当地选择A的值,使:
A = C - M
(M是距C最小的容器允许正数,若A和C均为整型时,M = 1)。一样,当rel1为>时,应适当地选择A,使:
A = C + M
[规则3] 对外部输入变量赋值,使其在每一测试用例中均有不一样的值与符号,并与同一组测试用例中其它变量的值与符合不一致。
3 程序插装:
4 其余白盒测试方法简介:
一、域测试:
一、分支问题
二、二义性问题
三、大程序问题
三、Z路径覆盖
四、程序变异
3.Z路径覆盖:
4.程序变异: