软件测试实验报告53439

软件测试实验报告53439
软件测试实验报告53439

《软件测试技术》

实验报告与习题册2014 / 2015 学年第2学期

系别计算机学院

专业

班级一班

姓名

指导教师

目录

实验一:基于白盒测试的用例设计与验证

(一)

一.实验目的

(1)熟悉Eclipse开发环境

(2)掌握Java语言的基本语法,能够利用Java实现简单的程序开发

(3)熟悉白盒测试基本原理

(4)掌握白盒测试的逻辑覆盖法,能够依据语句覆盖、判定覆盖、条件覆盖、判定\条件覆盖、条件组合覆盖的原理进行相应测试用例的设计工作。

二.实验内容

(1)选择一门语言,完成指定的单元程序开发。

#include<>

void main()

{

int m,n,p,q;

printf("please input m,n,p,q:\n");

scanf("%d,%d,%d,%d",&m,&n,&p,&q);

if(m>0&&n<6)

{

m=n+3;

n=n*2;

}

if(p>5||q<0)

{

p=2*q+5;

q++;

}

printf("输出的四个数是:%d,%d,%d,%d\n",m,n,p,q);

return ;

}

(2)分别依据白盒测试逻辑覆盖法中的语句覆盖、判定覆盖、条件覆盖、判定\条件覆盖、条件组合覆盖的原理设计相应的测试用例。

(3)根据给定的流程图,实际运行测试用例,检测程序的实现是否正确。三.程序流程图

运行结果

语句覆盖:

判定覆盖:

测试用例具体取值条件判定条件

输入:{m=3,n=2,p=9,q=-3}输出:{m=5,n=4,p=-1,q=-2}m>0,n<6,p>5,q<0m>0 and n<6

p>5 or q<0

输入:{m=-4,n=10,p=2,q=4}输出:{ m=-4,n=10,p=2,q=4}m<0,n>6,p<5,q>0m<0 and n>6

p<5 or q>0

条件覆盖:

测试用例取值条件具体取值条件

输入:{m=1,n=7,p=6,q=2}

输出:{ m=1,n=7,p=9,q=3}

T1,F2,T3,F4m>0,n>6,p>5,q>0

输入:{m=-3,n=4,p=1,q=-1}

输出:{ m=-3,n=4,p=3,q=0}

F1,T2,F3,T4m<0,n<6,p<5,q<0

判定-条件覆盖:

测试用例

取值条件具体取值条件

输入:{m=1,n=2,p=6,q=-1}

输出:{ m=5,n=4,p=3,q=0}

T1,T2,T3,T4m>0,n<6,p>5,q<0

输入:{m=-1,n=9,p=4,q=2}

输出:{ m=-1,n=9,p=4,q=2}

F1,F2,F3,F4m<0,n>6,p<5,q>0

条件组合覆盖:

测试用例覆盖条件具体取值条件

输入:{m=1,n=2,p=6,q=-1}

输出:

{ m=5,n=4,p=3,q=0}

T1,T2,T3,T4m>0,n<6,p>5,q<0

输入:{m=1,n=7,p=6,q=1}

输出:{ m=1,n=7,p=7,q=2}

T1,F2,T3,F4m>0,n>6,p>5,q>0

输入:{m=-1,n=2,p=3,q=-1}

输出:{ m=-1,n=2,p=3,q=0}

F1,T2,F3,T4m<0,n<6,p<5,q<0

输入:{m=-1,n=7,p=3,q=1}

输出:{ m=-1,n=7,p=3,q=0}

F1,F2,F3,F4m<0,n>6,p<5,q>0

四.实验内容中遇到的问题、解决方法和体会。

答:遇到的问题:实验过程中,编写程序有点问题,总是输不出结果,不断进行检查和调试,以至于花费很多时间。

解决方法:通过自己检查和调试和向同学寻求帮助得以解决问题,最后运行得到结果。

体会:通过这次实验,我知道了只有自己动手去做,才会知道自己还有哪些不足,才能不断提高自己的实践能力。同时,我还知道了白盒覆盖的几种覆盖方法以及它们之间的区别。总之,我们要知道理论和实践相结合的重要性,通过不断实践来提高自己的能力。

实验一:基于白盒测试的用例设计与验证

(二)

一.实验目的

(1)熟悉二分查找算法,能正确实现程序

(2)掌握白盒测试的基本路径测试法,重点掌握如何根据程序控制流计算程序的环路复杂度,并且确定程序基本路径。

二.实验内容

(1)选择一门语言,完成二分查找的实现;。

源代码:

#include<>

int find(int *arry,int leng,int key)

{

int low=1;

int mid;

int high=leng;

while(low<=high)

{

mid=(low+high)/2;

if(key>arry[mid-1])

low=mid;

else if(key

high=mid;

else

return mid;

}

return 0;

}

int main()

{

int a[10];

int i,m,n;

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

a[i]=i+1;

do

{

printf("请输入查找数(1~10!):");

scanf("%d",&m);

}while(m>10||m<1);

n=find(a,10,m);

printf("查询值为a[%d]\n",n-1);

return 0;

}

(2)完成相应的程序控制流图,并计算出程序的环路负责度;

(3)确定程序的基本路径,设计相应的测试用例,覆盖确定的基本路径。

程序控制流图如下:

由程序控制图可知环路复杂度为5,因此有5条基本路径。基本路径1:A-B-A

基本路径2:A-B-C-D-E-A

基本路径3:A-B-C-D-E-F-H-C-D-E-A

基本路径4:A-B-C-D-E-G-I-C-D-E-A

基本路径5:A-B-C-D-E-F-H-C-D-E-G-I-C-D-E-A

测试用例图:

测试用例预期输出结果输出通过路径M=0 Error !---基本路径1 M=5a[4]查询值为a[4]基本路径2 M=3a[2]查询值为a[2]基本路径3 M=7a[6]查询值为a[6]基本路径4 M=4A[3]查询值为a[3]基本路径5

运行结果:

三.实验内容中遇到的问题、解决方法和体会。

答:遇到的问题:编写的程序有错误不知道该怎么改。

解决方法:通过向同学寻求帮助解决,最后运行得到结果。

体会:通过这次实验,感觉自己C语言的基础太差,以后要加强对C 语言的学习。通过这次实验,我还知道了怎样计算出程序的环路复杂度,还有如何完成相应的程序控制流图。

实验一:基于黑盒测试的用例设计与验证

(一)

一.实验目的

(1)理解黑盒测试的基本原理;

(2)掌握黑盒测试的等价类划分法与边界值分析法,并能够根据相应的方法设计测试用例。

二.实验内容

(1)选择一门语言,完成以下程序:输入三个整数,三角形三条边的长度,输出三角形所属的类型。

#include <>

double triangle(double a, double b, double c)

{

if (a + b > c && b + c > a && a + c > b)

return 1;

else

return 0;

}

double dengbian(double a, double b, double c)

{

if (a == b && b == c)

return 1;

else

return 0;

}

double dengyao(double a, double b, double c)

{

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

return 1;

else

return 0;

}

double zhijiao(double a, double b, double c)

{

if (a*a + b*b == c*c || b*b + c*c == a*a || a*a + c*c == b*b) return 1;

else

return 0;

}

void main()

{

double a, b, c;

printf("请输入三角形三边: ");

scanf("%lf", &a);

scanf("%lf", &b);

scanf("%lf", &c);

if (triangle(a, b, c))

{

if (dengbian(a, b, c))

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

else if (dengyao(a, b, c) && zhijiao(a, b, c))

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

else if (dengyao(a, b, c))

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

else if (zhijiao(a, b, c))

printf("直角三角形\n");

else

printf("一般三角形\n");

}

else

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

}

(2)依据黑盒测试中的等价类划分法,边界值分析法设计相应的测试用例。

3

两边相等且两边之和大于第三边 3 3 4等腰三角形

4两边相等且满足a*a+b*b=c*c 2*2 +2*2=8等腰直角三角形 5能构成三角形且满足a*a+b*b=c*c 3*3 +4*4=25直角三角形

6能构成三角形且三边相等 2 2 2等边三角形

7三边中出现了非数字字符 a 2 3不能构成三角形 8两边之和小于第三边 2 3 6不能构成三角形 9三边中出现了负数 -1 1 3 不能构成三角形

编号输入边界值测试用例的设计思路

1数字字符出现了除数字字符之外的

符号如输入:a 2 3,则不能构成三角形,反之成立

2边长三边大于0如果输入的数中有小

于0的数,则不能构

成三角形,反之成立3三边边长之和两边之和大于第三边如果两边之和小于第

三边,则不能构成三

角形,反之成立(3)利用设计的测试用例测试编写的程序。

三.实验内容中遇到的问题、解决方法和体会。

答:遇到的问题:编写代码出现了一点问题,用等价类划分时不知道该怎么划分。

解决方法:通过查看书本和向同学寻求帮助解决。

体会:通过这次实验,我知道了黑盒测试的基本原理,掌握了黑盒测试的等价类划分法与边界值分析法,并能够根据相应的方法设计测试用例。在此次实验中也遇到了一些问题,不过出现问题才能知道我们的不足之处,然后改正并完善。所以遇到困难应该想办法解决,大胆尝试,这样才能提高自己的能力。

实验一:基于黑盒测试的用例设计与验证

(二)

一.实验目的

(1)理解黑盒测试的基本原理;

(2)掌握黑盒测试的判定表设计方法;

(3)能够根据判定表完成测试用例的生成。

二.实验内容

(1)选择一门语言,完成以下程序:输入年月日,输出该日的下一日日期。#include<>

void main()

{

int year,month,day,flag=0;

m:

printf("please input year month day:");

scanf("%d %d %d",&year,&month,&day);

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

flag=1; //当年份为闰年时,flag为1

if(month==2) //月份为2

{

if((day==28&&flag==0)||(day==29&&flag==1))

{

day=1;

相关主题
相关文档
最新文档