文档库

最新最全的文档下载
当前位置:文档库 > 软件测试实验报告三

软件测试实验报告三

南昌航空大学实验报告

2014年12 月31 日

课程名称:软件质量保证与测试实验名称:结构性测试

班级:姓名:同组人:

指导教师评定:签名:

一、实验目的

掌握逻辑覆盖法、基路径法以及数据流测试基本结构性测试方法

二、实验要求

1、对三角形问题尝试用逻辑覆盖法(语句覆盖、判定覆盖、路径覆盖,基路径等方法测试)设计测试用例,具体要求如下:

(1)为程序语句部分进行编号;

(2)画出程序的程序结构图(节点图);

(3)用上述五种方法分别设计测试用例,并说明每种测试用例的设计思路,例如测试用例所覆盖的语句、判定或条件的真分支假分支或路径等;

(4)使用上述测试用例对三角形问题进行测试,并做好测试记录,即有缺陷进行截图,并试图分析产生缺陷原因。

2、对NextDate问题尝试采用基路径,方法设计测试用例,具体要求如下:

基路径测试

(1)为程序语句部分进行编号;

(2)画出程序的程序结构图(节点图);

(3)用基路径方法设计测试用例,并说明每个测试用例的设计思路,例如测试用例所覆盖基路径;

(4)使用上述测试用例对NextDate问题进行测试,并做好测试记录,即有缺陷进行截图,并试图分析产生缺陷原因。

3、对佣金问题采用条件,判定条件设计测试用例,具体要求如下:

条件覆盖,判定条件覆盖

(1)为程序语句部分进行编号;

(2)画出程序的程序结构图(节点图);

(3)找出程序中所定义的枪机、枪托、枪管、销售额以及佣金五个变量的定义节点、使用节点,并判断是谓词使用还是计算使用;

(4)找出以上五个变量的所有定义-使用路径,并判断其是否为定义-清除路径;

(5)根据上述路径分析程序可能出现的缺陷,并试图分析产生缺陷原因。

三、实验步骤

四、实验内容

1. float a,b,c;

2. printf("请输入三角形三边长度:\n");

3. scanf("%f,%f,%f",&a,&b,&c);

4. if(a<1||a>200)

5. printf("输入数值超出范围\n"); //超出取值范围

6. else if(b<1||b>200)

7. printf("输入数值超出范围\n");

8. else if(c<1||c>200)

9. printf("输入数值超出范围\n");

10. else if(((a+b)>c)&&((b-c)

11. {

12. if((a==b)&&(b==c))

13. printf("等边三角形\n");

14. else if((a*a+b*b-c*c)<0.001||(b*b+c*c-a*a)<0.001||(c*c+a*a-b*b)<0.001){

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

16. printf("等腰直角三角形\n");

17. else

18. printf("直角三角形\n");

19. }

20. else if(a==b||b==c||c==a)

21. printf("等腰三角形\n");

22. else

23. printf("一般三角形\n");

24. }

25. else

26. printf("不是三角形\n");

三角形控制流图:

1:语句覆盖

序号

输入

预期输出实际输出测试结果覆盖语句A B C

1 0 3 4 输入超出输入超出Pass 2,3,4,5

2 3 0 5 输入超出输入超出Pass 2,3,4,6,,7

3 3

4 0 输入超出输入超出Pass 2,3,4,6,8,9

软件测试实验报告三

2:判定覆盖

语句4:t1,f1 语句6:t2,f2 语句8:t3,f3 语句10:t4,f4 语句12:t5,f5 语句14:t6,f6 语句15:t7,f7 语句20:t8,f8

语句4:t1,f1 t2,f2 语句6:t3,f3 t4,f4 语句8:t5,f5 t6,f6 语句10:t7,f7 t8,f8 语句12:t9,f9 t10,f10

语句14:t11,f11 t12,f12 t13,f13 语句15:t14,f14 t15,f15 t16,f16 语句20:t17,f17 t18,f18 t19,f19

4 5 5 5 等边三角形 等边三角形 Pass 2,3,4,6,8,10,12,13 5 3 4 5 直角三角形 直角三角形 Pass 2,3,4,6,8,10,1214,15,18 6 1 1 1.414 等腰直角三角形 等腰直角三角

形 Pass 2,3,4,6,8,10,12,14,15,16 7 3 3 5 等腰三角形 等腰三角形 Pass 2,3,4,6,8,10,12,14,20 8 4 7 8 一般三角形 一般三角形 Pass 2,3,4,6,8,10,12,14,20,23

9 1

2

3

不是三角形

不是三角形

Pass

2,3,4,6,8,10,26

序号 输入 预期输出 实际输出 测试结果 覆盖判定

A B C 1 0 3 4 输入超出 输入超出 Pass t1 2 3 0 5 输入超出 输入超出 Pass F1 t2 3 3 4 0 输入超出 输入超出 Pass F1 f2 t3 4 5 5 5 等边三角形 等边三角形 Pass F1 f2 f3 t4 t5 5 3 4 5 直角三角形 直角三角形 Pass F1,f2,f3,t4,t4

t6,f7 6 1 1 1.414 等腰直角三

角形 等腰直角三角形 Pass F1 f2 f3,t4 f5

t6,t7 7 3 3 5 等腰三角形 等腰三角形 Pass F1 f2 f3 f5 f6

t8 8

4

7

8

一般三角形

一般三角形

Pass

F1 f2 f3,f5 f6

f8

3:路径覆盖

序号

输入

预期输出实际输出测试结果覆盖路径A B C

1 0 3 4 输入超出输入超出Pass 2-3-4-5

2 3 0 5 输入超出输入超出Pass 2-3-4-6-7

3 3

4 0 输入超出输入超出Pass 2-3-4-6-8-9

4555等边三角形等边三角形Pass 2-3-4-6-8-10-1

2-13

5345直角三角形直角三角形Pass 2-3-4-6-8-10-1 2-14-15-18

6111.4

14

等腰直角三

角形

等腰直角三

角形

Pass

2-3-4-6-8-10-1

2-14-15-16

7335等腰三角形等腰三角形Pass 2-3-4-6-8-10-1 2-14-20-21

8 4 7 8 一般三角形一般三角形Pass 2-3-4-6-8-10-1 2-14-20-3-23

9 1 2 3 不是三角形不是三角形Pass 2-3-4-6-8-10-1

2-13

4:基路径覆盖

DD-路径图

9123不是三角形不是三角形Pass F1 f2 f3 f4

软件测试实验报告三

A1:A-B-D-F-J-H-J-L-M-N A2:A-B-C

A3: A-B-D-E

A4: A-B-D-F-G

A5: A-B-D-F-H-I

A6: A-B-D-F-H-J-K

A7: A-B-D-F-H-J-L-P-Q

A8: A-B-D-F-H-J-L-M-O A9: A-B-D-F-H-J-L-P-R

序号

输入

预期输出实际输出测试结果覆盖的基路径A B C

1 0 3 4 输入超出输入超出Pass A2

2 3 0 5 输入超出输入超出Pass A3

3 3

4 0 输入超出输入超出Pass A4 4555等边三角形等边三角形Pass A

5 5345直角三角形直角三角形Pass A8

6111.4

14

等腰直角三

角形

等腰直角三

角形

Pass A1

7335等腰三角形等腰三角形Pass A7

8 4 7 8 一般三角形一般三角形Pass A9

9 1 2 3 不是三角形不是三角形Pass A6

2:下一天问题:

控制流图:

软件测试实验报告三

DD—路径图:

软件测试实验报告三

1. int y,m,d;

2. int i=0;

3. printf("input the year: ");

4. scanf("%d",&y);

5. printf("input the month: ");

6. scanf("%d",&m);

7. printf("input the day: ");

8. scanf("%d",&d);

9. if(y>2014||y<1814)

10. printf("输入日期不存在\n");

11. else if(m<1||m>12)

12. printf("输入日期不存在\n");

13. else if(d<1||d>31)

14. printf("输入日期不存在\n");

15. if(m==2){

16. if(y%4==0&&y%100!=0||y%400==0){

17. if(d>29)

18. printf("输入非法\n");

19. else if(d==29){

20. m=3;d=1;

21. }

22. else

23. d++;

24. }

25. else{

26. if(d>28)

27. printf("输入非法\n");

28. else if(d==28){

29. m=3;d=1;

30. }

31. else

32. d++;

33. }

34. }

35. else if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){

36. if(d>=1&&d<31)

37. d++;

38. else {

39. if(m==12)

40. {y++;m=1;d=1;}

41. else

42. {m++;d=1;}

43. }

44. }

45. else{

46. if(d>=1&&d<30)

47. d++;

48. else if(d==30){

49. m++;d=1;

50. }

51. else

52. printf("输入非法\n");

53. }

54. printf("the next day: year:%d month:%d day:%d\n",y,m,d);

55. }

基路径:

A1:1-2-4-6-8-9-16-18-20-22-34

A2:1-2-3-34

A3:1-2-4-5-34

A4:1-2-4-6-7-34

A5:1-2-4-6-8-23-29-30-34

A6:1-2-4-6-8-9-10-11-34

A7:1-2-4-6-8-9-16-18-20-21-34

A8:1-2-4-6-8-23-24-25-34

A9:1-2-4-6-8-23-24-26-27-34

A10:1-2-4-6-8-23-29-31-32-34

A11:1-2-4-6-8-23-24-26-28-34

A12:1-2-4-6-8-9-16-18-19-34

A13:1-2-4-6-8-9-10-12-13-34

A14:1-2-4-6-8-9-10-12-14-34

A15:1-2-4-6-8-23-29-31-33-34

序号

输入

预期输出实际输出测试结果

覆盖基路

y m d

1 20001

2 2

3 2001 2 2

4 2001 2 24 Passed A1

2 2015

3 1 输入不存在输入不存在Passed A2

3 2013 13 2 输入不存在输入不存在Passed A3

4 2013 4 32 输入不存在输入不存在Passed A4

5 2012 3 28 2012 3 29 2012 3 29 Passed A5

6 2000 2 30 输入非法输入非法Passed A6

7 20001 2 28 2001 3 1 2001 3 1 Passed A7

8 2001 4 16 2001 4 17 2001 4 17 Passed A8

9 2001 6 30 2001 7 1 2001 7 1 Passed A9

10 2001 3 31 2001 4 1 2001 4 1 Passed A10

11 2001 4 31 输入非法输入非法Passed A11

12 2001 2 29 输入非法输入非法Passed A12

13 2001 2 15 2001 2 16 2001 2 16 Passed A13

14 2000 2 29 2000 3 1 2000 3 1 Passed A14

15 20001 12 31 2001 1 1 2001 1 1 Passed A15

3:佣金问题:

1.int x,y,z,n;

2.printf("请输入购买枪机、枪托、枪管数量:\n");

3. scanf("%d %d %d",&x,&y,&z);

4. if(x>=1&&x<=70){

5. if(y>=1&&y<=80){

6. if(z>=1&&z<=90){

7. n=45*x+30*y+25*z;

8. if(n<=1000)

9. printf("机枪数%d、枪托数%d、枪管数%d、销售额%d、佣金%f",x,y,z,n,0.1*n);

10. else if(n<=1800)

11. printf("机枪数%d、枪托数%d、枪管数%d、销售额%d、佣金%f",x,y,z,n,100+(n-1000)*0.15);

12. else

13. printf("机枪数%d、枪托数%d、枪管数%d、销售额%d、佣金%f",x,y,z,n,220+(n-1800)*0.2);

14. }

15. }

16. }

17. else

18. printf("输入非法!");

控制流图:

软件测试实验报告三

1:条件测试

语句4:t1 f1 t2,f2

语句5:t3,f3 t4 f4

语句6:t5 f5 t6 f6

语句8:t7 f7

语句10:t8 f8

序号输入预期输出实际输出测试结果覆盖条件

2:判定测试:

语句4:t1 f1 语句5:t2,f2 语句6:t3,f3 语句8:t4 f4 语句10:f5 f5

枪机 枪托 枪管 1 10 10 10 100 100 Pass T1,t2,t3,t4,t5,

t6,t7 2 10 20 30 220 220 Pass T1,t2,t3,t4,t5,t6,f7,t8 3 70 80 90 1420 1420 pass T1,t2,t3,t4,t5,t6,f7,f8 4 0 0 0 输入非法 输入非法 Pass f1 f3 f5 5 91

91

91

输入非法

输入非法

Pass

f2 f4 f6

序号 输入

预期输出 实际输出 测试结果 覆盖判定 枪机 枪托 枪管 1 10 10 10 100 100 Pass T1,t2,t3,t4 2 10 20 30 220 220 Pass T1,t2,t3,f4,t5 3 70 80 90 1420 1420 pass T1,t2,t3,f4,f5 4 0

输入非法

输入非法

Pass

F1 f2 f3