最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

实验二 白盒测试 (2)

来源:动视网 责编:小OO 时间:2025-09-26 00:04:11
文档

实验二 白盒测试 (2)

实验二白盒测试一、实验目的1、掌握白盒测试的基本方法;2、掌握白盒测试用例的编写。二、实验要求1、根据给出的程序分别使用语句覆盖、判定覆盖(也称为分支覆盖)、条件覆盖、判定-条件覆盖、条件组合测试、路径测试设计测试用例。2、输入数据进行测试,填写测试用例。三、实验内容1、用C++或者Java编写一个类,完成下面函数的功能,并编写另外一个类,调用该方法:voidDoWork(intx,inty,intz){intk=0,j=0;if((x>3)&&(z5)){语句块2}j语句块3}要求:(1)画
推荐度:
导读实验二白盒测试一、实验目的1、掌握白盒测试的基本方法;2、掌握白盒测试用例的编写。二、实验要求1、根据给出的程序分别使用语句覆盖、判定覆盖(也称为分支覆盖)、条件覆盖、判定-条件覆盖、条件组合测试、路径测试设计测试用例。2、输入数据进行测试,填写测试用例。三、实验内容1、用C++或者Java编写一个类,完成下面函数的功能,并编写另外一个类,调用该方法:voidDoWork(intx,inty,intz){intk=0,j=0;if((x>3)&&(z5)){语句块2}j语句块3}要求:(1)画
实验二 白盒测试

一、 实验目的

1、 掌握白盒测试的基本方法;

2、 掌握白盒测试用例的编写。

二、 实验要求

1、 根据给出的程序分别使用语句覆盖、判定覆盖(也称为分支覆盖)、条件覆盖、判定-条件覆盖、条件组合测试、路径测试设计测试用例。

2、 输入数据进行测试,填写测试用例。

三、 实验内容

1、用C++或者Java编写一个类,完成下面函数的功能,并编写另外一个类,调用该方法:

void  DoWork(int x,int y,int z)

{

     int  k=0,j=0;

   if((x>3)&&(z<10))

   {

   语句块1

   j=sqrt(k);

     }

     if((x= =4)||(y>5))

   {

   语句块2

   }

   j语句块3

}

要求:

(1)画出上面函数的流程图。

(2)分别使用语句覆盖、判定覆盖(也称为分支覆盖)、条件覆盖、判定-条件覆盖、条件组合测试、路径测试设计测试用例(注意测试用例的格式)。

语句覆盖:

用例:x=4,y=6,z=8

判定覆盖:

用例1:x = 4 , y = 6 , z = 8

用例2:x = 3 , y = 5 , z = 8

条件覆盖:

用例1:x=3,y=8,z=8

用例2:x=4,y=5,z=13  

判定-条件覆盖:

用例1:x=4,y=8,z=8

用例2:x=3,y=5,z=13

条件组合测试

用例1:x=4,y=8,z=8

用例2:x=4,y=3,z=13

用例3:x=2,y=8,z=8

用例4:x=2,y=3,z=13

路径测试:

用例1:x=4,y=8,z=8

用例2:x=4,y=3,z=13

用例3:x=6,y=2,z=8

用例4:x=2,y=3,z=13

(3)执行每个测试用例,执行完毕后填写测试用例。

2、用C++或者Java编写“计算被输入日期是星期几,例如公元1年1月1日是星期一,只要输入年月日,能自动回复当天是星期几。”测试用例;

程序说明:

A程序思路:计算输入日期与公元1年1月1日所相差的天数,具体如下:总天数=公元1年到输入日期上一年年底天数+输入年份的1月到上月月底天数+输入日期的天数;

B闰年满足条件(year%4==0)&&(year%100!=0)||(year%400==0)。

要求:

(1)分析各种输入情况,结合程序输出结果,并给出详细测试用例;

(2)根据(1)所划分的等价类,进行边界值分析,并给出具体的测试用例;

(3)决策表测试法;

①列出输入变量month、 day、 year的有效等价类;(条件桩)

②分析程序的规格说明,给出问题规定的可能采取操作;(动作桩)

③画出决策表(简化);

④根据决策表,给出详细测试用例。

代码:

#include

using namespace std;

int main(){

int x=1,year, month, day; 

while(x) {

int i, num=0,total, total1, total2; 

cout<<"请输入年份: "; 

cin>>year;

cout<<"请输入月份: ";

cin>>month;

cout<<"请输入日期: ";

cin>>day;

//求得输入年份之前一年末的总天数

for(i=1; iif((i%4==0)&&(i%100!=0)||(i%400==0)) 

num++;

}

total1 = 365*(year-num-1) + 366*num;

//求得输入年份的总天数

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

//求得输入月份之前一月末的总天数

switch(month) { 

case 1:total2 = 0;break; 

case 2:total2 = 31;break; 

case 3:total2 = 60;break; 

case 4:total2 = 91;break; 

case 5:total2 = 121;break; 

case 6:total2 = 152;break; 

case 7:total2 = 182;break; 

case 8:total2 = 213;break; 

case 9:total2 = 244;break; 

case 10:total2 = 274;break; 

case 11:total2 = 305;break; 

case 12:total2 = 335;break;

} else { 

switch(month){ 

case 1:total2 = 0;break; 

case 2:total2 = 31;break; 

case 3:total2 = 59;break; 

case 4:total2 = 90;break; 

case 5:total2 = 120;break; 

case 6:total2 = 151;break; 

case 7:total2 = 181;break; 

case 8:total2 = 212;break; 

case 9:total2 = 243;break; 

case 10:total2 = 273;break; 

case 11:total2 = 304;break; 

case 12:total2 = 334;break;

}

}

//在加上输入的日,求其总和可得到从公元1年1月1日到输入日期当天的总天数

total = total1 + total2 + day;

int week;

week = total % 7;

cout<<"您输入的日期是";

switch(week){

case 0:cout<<"星期天"<case 1:cout<<"星期一"<case 2:cout<<"星期二"<case 3:cout<<"星期三"<case 4:cout<<"星期四"<case 5:cout<<"星期五"<case 6:cout<<"星期六"<}

cout<<"**********退出程序请输入0,否则任一输入继续**********"<cin>>x;

}

}

2.测试用例设计

1)控制流图

2)环路复杂度计算

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

3)基本路径集设计

基本路径集为:

A.1、2、3、4、5、6、7、8、11、12、14、15、16、17、18、19

B.1、2、3、4、5、6、7、8、9、11、12、14、15、16、17、18、19

C.1、2、3、4、5、6、7、8、9、10、11、12、13、15、16、17、18、19

D.1、2、3、4、5、6、7、8、9、10、11、12、14、15、16、17、18、19

注:由源程序代码可知,未走路径10则必定不通过路径13,故省去两条检测路径。

4)测试用例集设计

测试用例集为:

A路径:1-2-26 预期输出:星期一

B路径:2-2-2 预期输出:星期六

C路径:2010-11-16 预期输出:星期二

D路径:2008-8-6 预期输出:星期三

3、插装后源程序清单与判定覆盖率分析结果

#include

using namespace std;

int main(){

int x=1,year, month, day;

int m1=0,m2=0,m3=0,m4=0,m=15,n=0,f=0;

while(x) {

n++;

cout<<"=====请输入测试用例====="<int i, num=0,total, total1, total2,qw; 

cout<<"请输入年份: "; 

cin>>year;

cout<<"请输入月份: "; 

cin>>month;

cout<<"请输入日期: "; 

cin>>day;

cout<<"请输入预期输出结果(星期一到星期天,对应输入1~7):"; 

cin>>qw; 

cout<<"程序运行路径: 1->2->3->4->5->6->7->8";

for(i=1; iif((i%4==0)&&(i%100!=0)||(i%400==0)) 

num++; 

}

if(i>1){

cout<<"->9";

if(m1==0){m++;m1=1;} 

}

if(num>0){

cout<<"->10";

if(m2==0){m++;m2=1;} 

}

total1=365*(year-num-1)+366*num; 

cout<<"->11->12";

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

cout<<"->13";

if(m3==0){m++;m3=1;}

switch(month) { 

case 1:total2 = 0;break; 

case 2:total2 = 31;break; 

case 3:total2 = 60;break; 

case 4:total2 = 91;break; 

case 5:total2 = 121;break; 

case 6:total2 = 152;break; 

case 7:total2 = 182;break; 

case 8:total2 = 213;break; 

case 9:total2 = 244;break; 

case 10:total2 = 274;break; 

case 11:total2 = 305;break; 

case 12:total2 = 335;break;

}

else { 

cout<<"->14";if(m4==0){m++;m4=1;}

switch(month) { 

case 1:total2 = 0;break; 

case 2:total2 = 31;break; 

case 3:total2 = 59;break; 

case 4:total2 = 90;break; 

case 5:total2 = 120;break; 

case 6:total2 = 151;break; 

case 7:total2 = 181;break; 

case 8:total2 = 212;break; 

case 9:total2 = 243;break; 

case 10:total2 = 273;break; 

case 11:total2 = 304;break; 

case 12:total2 = 334;break;

}

cout<<"->15->16->17->18->19"<total = total1 + total2 + day; int week;

week = total % 7;

cout<<"-----该测试用例测试结果-----"<cout<<"测试用例"<case 0:cout<<"星期天, ";break;

case 1:cout<<"星期一, ";break;

case 2:cout<<"星期二, ";break;

case 3:cout<<"星期三, ";break; 

case 4:cout<<"星期四, ";break; 

case 5:cout<<"星期五, ";break; 

case 6:cout<<"星期六, ";break; 

}

cout<<"实际输出为:"; 

switch(week) {

case 0:cout<<"星期天, ";break;

case 1:cout<<"星期一, ";break;

case 2:cout<<"星期二, ";break;

case 3:cout<<"星期三, ";break;

case 4:cout<<"星期四, ";break; 

case 5:cout<<"星期五, ";break; 

case 6:cout<<"星期六, ";break;

if(week==qw%7) cout<<"成功!"<else{

cout<<"失败!"<}

cout<cout<<"=====本次测试用例测试已结束,退出测试请输入0,否则任一输入继续测试====="<cin>>x;

}

cout<<"最终对main函数中while内循环语句单元测试结果统计:"<cout<<"共执行"<}

测试结果:

四、实验步骤

1、依次按照每种方法的步骤来写出测试用例

2、测试,得出结果。

五、实验总结

本次实验主要是运用白盒测试的方法,设计测试用例。通过本次实验,了解了各种覆盖的区别与联系,对软件测试有了进一步的认识和学习,对白盒测试流程有了较清楚的了解,收获很多。

文档

实验二 白盒测试 (2)

实验二白盒测试一、实验目的1、掌握白盒测试的基本方法;2、掌握白盒测试用例的编写。二、实验要求1、根据给出的程序分别使用语句覆盖、判定覆盖(也称为分支覆盖)、条件覆盖、判定-条件覆盖、条件组合测试、路径测试设计测试用例。2、输入数据进行测试,填写测试用例。三、实验内容1、用C++或者Java编写一个类,完成下面函数的功能,并编写另外一个类,调用该方法:voidDoWork(intx,inty,intz){intk=0,j=0;if((x>3)&&(z5)){语句块2}j语句块3}要求:(1)画
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top