实验一 白盒测试
刘童童
一、 实验目的
1、 掌握白盒测试的基本方法;
2、 掌握白盒测试用例的编写。
二、 实验要求
1、 根据给出的程序分别使用语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖、基本路径覆盖来设计相应的测试用例。
2、 输入数据进行测试,执行测试用例。
三、 实验内容
程序:用VC++ 6.0编写三角形函数:
三角形中,要求输入三边的长度:a,b,c,当三边不可能构成三角形时提示错误,可构成三角形时计算三角形的周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则打印“等边三角形”。
源代码:
#include <iostream>
using namespace std;
double triangleType(double a,double b,double c)
{
double l;
l=a+b+c;
if(a+b<=c&&a+c<=b&&b+c<=a)
cout<<"error:不能构成三角形"<<endl;
else if(a==b&&a==c)
cout<<"等边三角形"<<endl;
else if(a==b||a==c||b==c)
cout<<"等腰三角形"<<endl;
else
cout<<"三角形周长:"<<l<<endl;
return 0;
}
void main(){
double x,y,z;
cout<<"输入三个边长:"<<endl;
cin>>x>>y>>z;
triangleType(x,y,z);
}
四、实验步骤
1、依次按照每种方法的步骤来写出测试用例(方法如果需要的流程图的话,也必须写上)
2、测试,得出结果。
3、如果发现缺陷,找出缺陷所在并修改程序。
修改后的程序为:
#include <iostream>
using namespace std;
double triangleType(double a,double b,double c)
{
double l;
l=a+b+c;
if(a+b<=c||a+c<=b||b+c<=a)
cout<<"error:不能构成三角形"<<endl;
else {if(a==b&&a==c)
cout<<"等边三角形"<<endl;
else if(a==b||a==c||b==c)
cout<<"等腰三角形"<<endl;}
cout<<"三角形周长:"<<l<<endl;
return 0;
}
void main(){
double x,y,z;
cout<<"输入三个边长:"<<endl;
cin>>x>>y>>z;
triangleType(x,y,z);
}
再次测试的结果。
五、实验总结:
白盒测试是一种被广泛使用的逻辑测试方法,是由程序内部逻辑驱动的一种单元测试方法。只有对程序内部十分了解才能进行适度有效的白盒测试。但是贯穿在程序内部的逻辑存在着不确定性和无穷性,尤其对于大规模复杂软件。因此我们不能穷举所有的逻辑路径,即使穷举也未必会带来好运(穷举不能查出程序逻辑规则错误,不能查出数据相关错误,不能查出程序遗漏的路径)。
那么正确使用白盒测试,就要先从代码分析入手,根据不同的代码逻辑规则、语句执行情况,选用适合的覆盖方法。任何一个高效的测试用例,都是针对具体测试场景的。逻辑测试不是片面的测试正确的结果或是测试错误的结果,而是尽可能全面地覆盖每一个逻辑路径。
附录:
第二篇:白盒缺陷测试报告
员)