Bootstrap

实验6、白盒测试:路径测试及测试用例设计

一、实验目的

1、掌握控制流图,独立路径,圈复杂度,程序基本路径集的概念。

2、掌握McCabe程序基本路径集确定方法。

3、掌握基本路径集测试法。

二、实验任务

以下三个任务、至少完成两个

1、程序void score_processing(float score[],int length)的功能说明如下:程序统计数组score前10个元素中有效成绩([0,100]内为有效成绩)的个数、总和及平均值,并输出。参数说明:数组score内按顺序存放着n个学生成绩(n<=length),且以-1作为结束标志,length为数组的长度且length〉10。

试用基本路径集测试法测试该程序,撰写实验报告。

实验步骤:

1)画出程序的控制流图。

                            

                                程序流程图                                                            控制流程图

2)计算流图G的圈复杂度V(G)。

V(G)= 3

3)确定只包含独立路径的基本路径集。

(1)①②③④⑥③⑦

(2)①②③④⑤⑥③⑦

4)根据上面的独立路径,设计测试用例,得到测试用例表。

测试用例ID

测试用例

预期输出

覆盖路径

number

sum

avg

T1

100,80,-2,89,72,60,44,81,64,77,86,97

9

667.00

74.11

(1)

T2

3,99,59,80,72,66,94,61,75,84,103,93

10

693.00

69.30

(2)

5)执行测试,填写软件缺陷报告。(软件缺陷报告格式同实验2)

测试过程:

软件缺陷报告:

测试模块:

成绩统计

开 发 者:

阿华

测 试 员:

阿华

测试日期:

2024.5.22

软件缺陷列表

缺陷ID

缺陷详细信息

BUG1

BUG2

测试代码:

#include <stdio.h>

void score_processing(float score[],int length){

int number = 0;

float sum = 0;

float avg = 0;

for( int i = 0;i < 10;i ++){

if(score[i] >= 0 && score[i] <= 100){

sum = sum + score[i];

number++;

}

}

avg = sum/number;

printf("有效个数:%d\n",number);

printf("总分:%.2f\n",sum);

printf("平均分:%.2f\n",avg);

}

int main(){

int length=12;

float temp = 0;

float score[12];

printf("请依次输入12个成绩:\n");

for(int j = 0;j < length;j++){

scanf("%f",&temp);

score[j] = temp;

}

score_processing(score,length);
return 0;
}

2、程序int binsearch(int array[],int length,int key)实现折半查找的功能。数组array元素按升序排列,length为数组array的长度,key为要查找的值。

试用基本路径集测试法测试该程序,撰写实验报告。

实验步骤:同上。

3、对三角问题运用基本路径集测试法设计测试用例,并执行测试,撰写实验报告。

实验步骤:

1)画出程序的控制流图。

                 

                                        流程图                                                                    控制流图

2)计算流图G的圈复杂度V(G)。

V(G) = 5

3)确定只包含独立路径的基本路径集。

(1)①③⑪

(2)①②④⑤⑪

(3)①②④⑥⑦⑪

(4)①②④⑥⑧⑨⑪

(5)①②④⑥⑧⑩⑪

4)根据上面的独立路径,设计测试用例,得到测试用例表。

测试用例ID

测试用例

预期输出

覆盖路径

a

b

c

T1

-1

55

200

输入不合法

(1)

T2

3

197

186

不构成三角形

(2)

T3

101

89

123

普通三角形

(3)

T4

99

100

99

等腰三角形

(4)

T5

200

200

200

等边三角形

(5)

5)执行测试,填写软件缺陷报告。

测试过程:

软件缺陷报告:

测试模块:

三角形

开 发 者:

阿华

测 试 员:

阿华

测试日期:

2024.5.22

软件缺陷列表

缺陷ID

缺陷详细信息

BUG1

BUG2

测试代码:

#include <stdio.h>

void triangle( int a, int b, int c );

int main(void)

{

int x,y,z;

printf("please input (length):\n");

printf("a:");

scanf("%d",&x);

printf("b:");

scanf("%d",&y);

printf("c:");

scanf("%d",&z);

triangle( x,y,z );//判断三角形类型

}

void triangle( int a, int b, int c )

{

int temp;

if( a > b )

{//如果a比较b大,就相互转换

temp = a;

a = b;

b = temp;

}

if( a > c )

{//如果a比较c大,就相互调换

temp = a;

a = c;

c = temp;

}

if( b > c )

{//如果b比较c大,就相互调换

temp = b;

b = c;

c = temp;

}

if( a<0||b<0||c<0||a>200||b>200||c>200  )

{

printf("输入不合法\n");

return ;

}

else

{

 if( a+b <= c )

{

printf("不构成三角形!!\n");

return ;

}

else

{

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

{

if( a != c )

printf("等腰三角\n");

else

printf("等边三角\n");

}

else

{

printf("普通三角形\n");

}

   }

  }

}

;