当前位置:文档之家› 请写出判断三角形的代码设计用例达到测试效果语句覆盖判定覆盖条件组合覆盖基本路径测试法

请写出判断三角形的代码设计用例达到测试效果语句覆盖判定覆盖条件组合覆盖基本路径测试法

请写出判断三角形的代码,设计用例达到测试效果
语句覆盖
判定覆盖
条件组合覆盖
#include<stdio.h>
void main()
{
int a, b, c;
printf("please enter three integer:");
scanf("%d%d%d", &a, &b, &c);
if(0<a && a<200 && 0<b && b<200 && 0<c && c<200)
{
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.为三角形程序开发判定/条件覆盖和条件组合覆盖的测试用例。

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
2.对下面的流程图用逻辑覆盖法设计测试用例(至少三种)
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
基本路径测试法(画出程序的流程控制图计算环路复杂度画出图形矩阵)主要代码如下:
1.If (inta >= intb + intc) _
2. Or (intb > =inta + intc) _
3.Or (intc >= intb + inta) Then
4. strMsg = "三角形两边之和必须大于第三边" + vbCrLf + "非三角形"
5.Else
6. If (inta = intb) _
7.And (intb = intc) Then
8. strMsg = "三角形的三条边都相等" + vbCrLf + "等边三角形"
9. Else
10. If (inta = intb) _
11.Or (inta = intc) _
12.Or (intc = intb) Then
13. strMsg = "三角形的任意两边相等" + vbCrLf + "等腰三角形"
14. Else
15. strMsg = "三角形的各边均非等" + vbCrLf + "普通三角形"
16. End If
17. End If
18.End If
1.根据上面的代码画出程序的控制流图。

2.计算环路复杂度。

V(G)=9
3.求出基本路径组合。

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 要点:从较短路径顺序增加
每个分支尽可能走一次
4.设计测试用例,按照表1的形式,设计用例。

表1:用例设计表。

相关主题