软件质量保证与测试.实验四.基本路径测试用例设计方法
0 目录
4 基本路径测试用例设计方法
4.1 基本路径测试用例设计方法
1.1.1 实验目的
(1) 理解控制流图并能绘制;
(2) 掌握程序环路复杂度的计算方法;
(3) 能够找出程序中的基本路径;
(4) 能够使用基本路径测试法设计测试用例。
2.1.2 实验预习
基本路径测试也被称为独立路径测试方法,是在程序控制流图的基础上,通过分析控制结构的环路复杂性,导出可执行的独立路径集合,从而设计出相应的测试用例,设计出的测试用例要保证被测程序的每条可执行的独立路径都至少被执行一次。
2.1.3 实验内容及要求
阅读下列程序代码,根据指定的年、月计算当月所含天数。
1int GetMaxDay(int month, int year)
2{
3 int maxday = 0;
4 if (month >= 1&& month <= 12)
5 {
6 if (month == 2)
7 {
8 if (year % 4 == 0)
9 {
10 if (year % 400 == 0)
11 maxday = 29;
12 else
13 maxday = 28;
14 }
15 else
16 maxday = 28;
17 }
18 else
19 {
20 if (month == 4 || month == 6 || month ==9 || month == 11)
21 maxday = 30;
22 else
23 maxday = 31;
24 }
26 }
27 return maxday;
28}
要求绘制出控制流图,计算控制流图的环路复杂度,使用基本路径测试法为变量year、month设计测试用例,使之满足基本路径覆盖要求,设计测试程序,给出测试结果。
2.1.4 实验总结
(1) 请绘制对应的NS图,估算最少测试用例数;
(2) 基本路径覆盖的测试步骤是怎样的;
1控制流图
2环路复杂度
V(G)=16-12+2=6
3基本路径
A.3-4-27
B.3-4-6-8-10-11-27
C.3-4-6-8-10-13-27
D.3-4-6-8-16-27
E.3-4-6-20-21-27
F.3-4-6-20-23-27
4设计测试用例
5测试程序
int main(void){
int a[]={2,2012};
int b,length;
length=sizeof(a)/sizeof(a[0]);
for(int i=0;i<length;i+=2){
b=GetMaxDay(a[i],a[i+1])
printf(“%d\t”,b);
}
return 0;
}
int GetMaxDay(int month, int year)
{
int maxday = 0;
if (month >= 1&& month <= 12)
{
if (month == 2)
{
if (year % 4 == 0)
{
if (year % 400 == 0)
maxday = 29;
else
maxday = 28;
}
else
maxday = 28;
}
else
{
if (month == 4 || month == 6 || month ==9 || month == 11)
maxday = 30;
else
maxday = 31;
}
}
return maxday;
}
6测试结果
4.实验总结
(1) 请绘制对应的NS图,估算最少测试用例数;
如上
(2) 基本路径覆盖的测试步骤是怎样的;
在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。包括以下4个步骤
1.程序的控制流图:描述程序控制流的一种图示方法。
2.程序圈复杂度:McCabe复杂性度量。从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。
3.导出测试用例:根据圈复杂度和程序结构设计用例数据输入和预期结果。
4.准备测试用例:确保基本路径集中的每一条路径的执行。