1. 基本路径测试法步骤:
l 导出程序的控制流图;
l 计算控制流图的环路复杂性V(G);
3种计算方法: 计算区域的个数;
V(G)=E-N+2;
V(G)=P+1;
l 确定线性无关路径的基本集;
l 生成测试用例,确保基本路径集中每条路径的执行;
l 图形矩阵:是在基本路径测试中起辅助作用的软件工具,利用它可以实现自动地确定一个基本路径集。
2. 域测试:
域测试主要是针对域错误进行的程序测试:如果程序的控制流有错误,对于
某一特定的输入可能执行的是一条错误的路径,这种错误称为路径错误,也叫域错误。域测试正是在分析输入域的基础上,选择适当的测试点以后进行的测试。
域测试有两个致命的弱点:
A.为进行域测试对程序提出的限制过多:
l 程序中不出现数组;
l 程序中不含有子函数或子例程;
l 程序中没有输入和输出错误;
l 程序的分支谓语是简单谓语,即不含有布尔运算符and和or;
l 程序分支谓语是线性的;
l 程序输入域是连续的而不是离散的;
l 相邻的两个域上计算是不相同的;
B. 当程序存在很多路径时,存在的测试点也很多;
域测试的步骤可归结为:
l 根据各分支谓词画出域分割图;
l 对每一个域的每一个边界用on-off-on的原则选取测试点进行测试;
l 在域内取一些点进行测试
3. 符号测试:
步骤:
l 利用符号执行解释器对被测程序进行符号执行;
l 若是遇到程序不能继续执行的情况,要求用户干预,或是遍历各执行树的各分支路径;
l 化简得到的路径条件式
l 用解线性不等式的方法求解路径条件式,以求得满足各个限制谓语的测试数据;
l 对程序进行测试,若上述不等式无解,则相应的路径不可执行;
符号测试方法在使用中遇到的问题:
l 分支问题
l 二义性问题
l 大程序问题
4. 程序变异:
A. 程序强变异:
B. 程序弱变异:
5. Z路径覆盖:简化循环路径下的路径覆盖。









TAG:
评分(