2024年2月28日发(作者:车 全新 上市)

精品文档

请写出判断三角形的代码,设计用例达到测试效果

语句覆盖

判定覆盖

条件组合覆盖

#include

void main()

{

int a, b, c;

printf(\"please enter three integer:\");

scanf(\"%d%d%d\", &a, &b, &c);

if(0

{

if(a+b>c && a+c>b && c+b>a)

{

if(a==b && b==c && a==c) //这里可以省掉一个判断

{

printf(\"1是等边三角形\");

}

else

{

if(a==b || b==c || a==c)

{

printf(\"2是等腰三角形\");

}

else

{

if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a)

{

printf(\"3是直角三角形\");

}

else

{

printf(\"4是一般三角形\");

}

}

}

}

else

{

printf(\"5不能组成三角形\");

}

}

else

{

精品文档

精品文档

printf(\"6某些边不满足限制\");

}

}

1.为三角形程序开发判定/条件覆盖和条件组合覆盖的测试用例。

2

输入a,b,c的值

1

入口

3

a>0&&b>0&&c>0

F

T

7

4

a+b>c

&&a+c>b&&b+c>a

F

a,b,c不能构成三角形

T

5

a^+b^=c^||a^+c^=b^||b^+c^=a^

T

6

a,b,c是直角三角形

9

返回

F

a,b,c是一般三角形

8

1)判定/条件覆盖

对于第一个判定a>0&&b>0&&c>0 :

条件a>0 取真值记为T1,取假值记为-T1

条件b>0 取真值记为T2,取假值记为-T2

条件c>0 取真值记为T3,取假值记为-T3

对于第二个判定( a+b>c)&&(a+c>b)&&(b+c>a ):

条件a+b>c 取真值记为T4,取假值记为-T4

条件a+c>b 取真值记为T5,取假值记为-T5

条件b+c>a 取真值记为T6,取假值记为-T6

测试用例 执行路径 覆盖条件

覆盖

分支

精品文档

精品文档

a>0 b>0 c>0

a+b>c a+c>b b+c>a

123457

T1、T2、T3、T4 、T5、 T6

57

a>0 b>0 c>0

123467

a+c<=b a+b<=c b+c<=a

a<=0 b<=0 c<=0

a+c>b a+b>c b+c>a

2.12367

T1、T2、T3、-T4 、-T5 、-T6 467

-T1、-T2、-T3、T4 、T5 、T6 367

对下面的流程图用逻辑覆盖法设计测试用例(至少三种)

1)..语句覆盖:语句覆盖可以保证程序中的每个语句都得到执行。

测试用例输入为:{ x1=3、x2=0} 输出x3=0 ,程序执行的路径是:12345678

2.判定覆盖:

测试用例输入为:{ x1=2、x2=1} 输出x3=0 ,程序执行的路径是:123578;

测试用例输入为:{ x1=3、x2=0} 输出x3=0 ,程序执行的路径是:12345678.

3).条件覆盖

对于第一个判定( (x1=3)or(x2>1) ):

条件x1=3 取真值记为T1,取假值记为-T1

条件x2>1 取真值记为T2,取假值记为-T2

对于第二个判定( (x1>2)and(x2=0) ):

条件x1>2 取真值记为T3,取假值记为-T3

精品文档

精品文档

条件x2=0 取真值记为T4,取假值记为-T4

测试用例 执行路径 覆盖条件

覆盖

分支

34

x1=3、x2=2

1234578

T1、T2、T3、-T4

x1=4、x2=0

1235678

-T1、-T2、-T3、T4

56

基本路径测试法(画出程序的流程控制图 计算环路复杂度 画出图形矩阵)

主要代码如下:

1.

2.

3.

4.

5.

6.

7.

8.

9.

If (inta >= intb + intc) _

Or (intb > =inta + intc) _

Or (intc >= intb + inta) Then

strMsg = \"三角形两边之和必须大于第三边\" + vbCrLf + \"非三角形\"

Else

If (inta = intb) _

10.

11. And (intb = intc) Then

12. strMsg = \"三角形的三条边都相等\" + vbCrLf + \"等边三角形\"

13. Else

14. If (inta = intb) _

15. Or (inta = intc) _

16. Or (intc = intb) Then

17.

18. strMsg = \"三角形的任意两边相等\" + vbCrLf + \"等腰三角形\"

19. Else

20. strMsg = \"三角形的各边均非等\" + vbCrLf + \"普通三角形\"

21. End If

22. End If

23.

24. End If

1.

2.根据上面的代码画出程序的控制流图。

精品文档

精品文档

1

3

6

7

8

10

4

11

12

15

13

16

17

18

3.计算环路复杂度。

V(G)=9

4.求出基本路径组合。

P1: 1-4-18

P2: 1-2-4-18

P3: 1-2-3-4-18

P4: 1-2-3-6-7-8-17-18

P5: 1-2-3-6-10-13-16-17-18

P6: 1-2-3-6-10-11-13-16-17-18

P7: 1-2-3-6-10-11-12-13-16-17-18

P8: 1-2-3-6-10-11-12-15-16-17-18

要点:从较短路径顺序增加

精品文档

精品文档

每个分支尽可能走一次

5.设计测试用例,按照表1的形式,设计用例。

表1:用例设计表

三角形问题独立路径测试

编号

1

2

3

4

5

6

7

8

输入

边1 边2 边3

输出

判断结果

非三角形

非三角形

非三角形

等边三角形

等腰三角形

等腰三角形

等腰三角形

普通三角形

路径(节点)

1-4-18

1-2-4-18

1-2-3-4-18

1-2-3-6-7-8-17-18

1-2-3-6-10-13-16-17-18

1-2-3-6-10-11-13-16-17-18

1-2-3-6-10-11-12-13-16-17-18

1-2-3-6-10-11-12-15-16-17-18

结果(NG/OK)

10

4

5

5

5

6

7

3

5

10

4

5

5

7

6

5

4

5

10

5

7

6

6

6

OK

OK

OK

OK

OK

OK

OK

OK

OK

精品文档

更多推荐

覆盖,三角形,路径,设计,语句,代码,测试,测试用例