白盒测试实验报告

余年寄山水
698次浏览
2021年02月21日 08:55
最佳经验
本文由作者推荐

-

2021年2月21日发(作者:走后)














专业年级



指导教师




软件测试



计科


07





实验项目



白盒测试用例设计与执行







李专








实验时间



2010-6-4


实验成绩




一、实验目的



1

.熟练掌握如何运用基路径测试方法进行测试用例设计。



2


.初步熟悉如何利用程序插装技术进行逻辑覆盖率分析。



二、实验内容



1


、题目



前 一日函数


PreDate



NextD ate


的逆函数(代码实现见下)


,实现功能为:


输入


1800




2050


年之间的某个日期,函数返回这一天的前一天的日期。(此处不考虑无效输入)



请采用基路径方法对前一日函数进行测试用例设计,


并利用程序插装 技术对测试用例的


判定覆盖率进行检查分析。



代码:


(


被测函数为


PreD ate)


#include


typedef struct MyDate{


int month;


int day;


int year;


}MyDate;



MyDate PreDate(MyDate date);


int Leapyear(int year);


void Print(MyDate date);



MyDate PreDate(MyDate date)


//


输入日期有效性检查中其他模块实现,此处假设输入日期都是合法数据



{



yesterday;



= // initialization



=



=




days_month[13]={0,31,0,31, 30,31,30,31,31,30,31,30,31};


//

< br>初始化每月天数,其中


2


月不确定,初始化为

< p>
0



(>1)




=-1;



else




{





(==1)






{






=-1;







=12;







=31;






}





if(==3)






{







(Leapyear())







{








=2;








=29;







}







else







{








=2;








=28;







}






}




else






{







=-1;







=days_month[-1];






}




}



yesterday;


}



Leapyear(int year)


{



((year%4==0&&year%100!=0) || (year%400==0))




1;



return 0;


}



void Print(MyDate date)


{



(


}






2


、测试用例设计



1


)控制流图













2


)环路复杂度计算



由图可知,图中的环路有五条,故环路复杂度为五。



3


)基本路径集设计



基本路径集为:



A

< br>.


1



2



3



4



5



6



8



12



13



14



15



20



25


B



1



2



3

< p>


4



5



6



8


12



16


17



20


25


C


1



2



3



4



5< /p>



6



8



12



18



19



20



25


D



1



2


< p>
3



4



5



6


8



9



10



11



20



25


E



1



2



3



4



5



6



7



20


< p>
25


4


)测试用例集设计



测试用例集为:



2000-1-2 2000-1-1 2000-3-1


1999-3-1 1980-5-1


3


、插装后源程序清单与判定覆盖率分析结 果(要求截取插装后程序运行界面)



#include


typedef struct MyDate{


int month;


int day;


int year;


5


5


7


19


18


16


15


1


2


3


4


5


6


8


12


13


14


15


9


10


11


}MyDate;


int a[6];


MyDate PreDate(MyDate date);


int Leapyear(int year);


void Print(MyDate date);


int count();


MyDate PreDate(MyDate date)


//


输入日期有 效性检查中其他模块实现,此处假设输入日期都是合法数据



{








int days_month[ 13]={0,31,0,31,30,31,30,31,31,30,31,30,31};


MyDate yesterday;


= // initialization


=


=


//


初始化每月天数,其中


2


月不确定,初始化为


0

















if(>1)


{




}


else











{


a[1]= count();









if(==1)








{


a[2]= count();


=-1;




}


=12;


=31;


a[0]=count();


=-1;

-


-


-


-


-


-


-


-