程序结构与测试用例个数的关系-毕业设计论文 下载本文

由图和运算结果可知拟合效果非常好. y=X*B;

X=[1,10*exp(conj(x1))*conj(x2)*conj(x3),10*exp(conj(x2))*conj(x3),exp(conj(x3))*conj(x1)*conj(x2),100*exp(2*conj(x1))*conj(x2)^2*conj(x3)^2,100*exp(conj(x1))*exp(conj(x2))*conj(x2)*conj(x3)^2,10*exp(conj(x1))*exp(conj(x3))*conj(x1)*conj(x2)^2*conj(x3),100*exp(2*conj(x2))*conj(x3)^2,10*exp(conj(x2))*exp(conj(x3))*conj(x1)*conj(x2)*conj(x3),exp(2*conj(x3))*conj(x1)^2*conj(x2)^2] 5.3公式的验证

根据实验所得到的数据,根据统计结果拟合出的公式,我们若想知道它的拟合效果是否良好,必须对所得公式进行验证,下面我将选择判定三角形的程序对以上得出的公式进行验证。 5.3.1待测程序分析

若想进行公式验证,必须对判定三角形的程序结构等进行分析,并确定基路径,将得到的x1,x2,x3数据带入到上述公式中,得到y的值,用随机数生成程序

32

生成y个随机数,对判定三角形程序进行插桩,用生成的y个随机数执行程序,看是否能覆盖所有的基路径,如果不可以说明拟合公式存在缺陷,如果可以实现全路径覆盖则说明拟合公式的正确性。

33

5.3.1.1程序流程分析

输入a,b,c match=0 a== b? match+=1 a== c? match+=2 b== c? match=+3 match=0? match=1? a+ b≦c? match=2? a+ b≦c? b +c≦a? match=3? a+c≦b? a+c≦b? b +c≦a? 等边三角形 等腰三角形 34

不是三角形 不等边三角形

由程序结构图可知输入型参数有3个,高度为8,复杂度为14。 5.3.1.2基路径的确定 三角形的控制流程图

e2 e27 e4 e28 e6 e29 6 4 1 e1 3 e3 5 e5 e7 7 2 e8 e9 12 e10 e21 8 e22 15 e11 e12 17 e14 e17 e13 19 e16 e15 20 16 e18 e19 14 e23 9 e24 18 e20 e25 e26 10 13 11 路径 P1 P2 P3 P4 P5

节点序列 1-2-3-4-5-6-7-12-15-18-20 1-3-5-6-7-12-15-18-19-16 1-3-5-6-7-12-15-18-19-13 1-3-4-5-7-12-15-17-16 1-3-4-5-7-12-15-17-13 35

描述 等边 等腰 不是 等腰 不是