实验一黑盒测试法--等价类划分法
实验一 黑盒测试法——等价类划分法
实验目的:1.掌握等价类划分的方法
2.掌握按等价类方法设计测试用例
实验内容:
1、请用等价类划分法为三角形问题划分等价类,并设计相应的测试用例,测试下面三角形问题程序,找出缺陷并改正,给出缺陷报告。 #include "iostream.h" void main(){
if(a+b>c||a+c>b||b+c>a)coutb&&bc&&ca)cout
cout>a>>b>>c;
if(a=100)cout=100)cout=100)cout
三角形问题:划分等价类
测试用例:
1、覆盖有效等价类的测试用例
2、覆盖无效等价类的测试用例
缺陷报告:
2、某城市电话号码由三部分组成,分别是:
1) 地区码:以0开头的三位或者四位数字(包括0); 2) 电话号码:以非0、非1开头的七位或者八位数字。 假定被测程序能接受一切符合上述规定的电话号码, 拒绝所有不符合规定的电话号码。要求:
(1)请选择适当的黑盒测试方法,写出选择该方法的原因,并使用该方法的步骤,给出测试用例表。
(2)如果所生成的测试用例不够全面,请考虑用别的测试方法生成一些补充的测试用例。
解:(1)采用等阶类划分法,因为等阶类划分把输入域分成若干部分,
然后从每个部分选取少数代表性的数据当做测试用例。 (2)步骤:划分等阶类,列出等阶类表,确定测试用例。
等价类表:
测试用例表:
3、请尝试编写NextDate函数,考虑闰年,2月等特殊情况,并划分等价类,按强一般等价类划分法设计测试用例,并进行测试,要求给出部分测试用例截图,撰写测试报告(模版见附录3)。
测试报告
一、实验目的
1.掌握等价类划分的方法 2.掌握按等价类方法设计测试用例
二、实验内容
2.1实验问题描述:
请尝试编写NextDate函数,考虑闰年,2月等特殊情况,并划分等价类,按强一般等价类划分法设计测试用例,并进行测试,要求给出部分测试用例截图 2.2测试环境与配置:
在xp系统下运行VC++6.0的Win32控制台应用程序,执行c++源程序。
2.3源程序: 2.1测试程序源代码
#include using namespace std;
void NextDate(int year,int month,int day); void main() { int year=0,month=0,day=0; NextDate(year,month,day); }
void NextDate(int year,int month,int day) { cout>year; while(!(year>=1811 && year>year; }
cout>month; while (month>12||month>month; } cout>day; while (day>31||day>day; }
if((year%4==0 && year%100!=0) || (year%400==0)) //检查闰年; { int i=0; i=day-29; while(month==2&&i>0) { cout>day; } if(month==2&&day==29) { month=3; day=1; } else day++; } else day++; //月底计算; switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: if (day==32) { month++;
}
day=1; cout
cout
2..4程序思路说明:
1、判断输入年是否在1812——2012范围内。 2、判断输入月是否在1——12范围内。
3、判断输入日期是否在1——31范围内。 4、考虑年份是否为闰年,月份是否为2月。
三、测试方法
3.1 等价类划分
有效等价类:
month变量的有效等价类:
M1: {month=4,6,9,11} M2: {month=1,3,5,7,8,10} M3: {month=12} M4: {month=2} day变量的有效等价类:
D1: {1≤day≤27} D2: {day=28} D3: {day=29} D4: {day=30} D5: {day=31} year变量的有效等价类:
Y1: {year是闰年} Y2: {year不是闰年} 无效等价类:
M5= {月份:月份12} D6= {日期.:日期31} Y3= {年:年2012}
3.2测试用例设计
四、测试结果及缺陷分析
4.1测试执行情况与记录
4.2缺陷统计与分析
在选取的12个用例中,有两例发现程序有缺陷,测试用例11不符合题目给定要求。 分析:在正常情况下,输入日期为平年的2月29时,程序应报错。正常情况下当输入非数值数据时,应该要有所提示,避免程序进入死循环。
五、测试结论与心得体会
5.1测试结论
测试执行只是针对部分用例进行测试,尚有未考虑充分之处,留待以后发现错误时进行纠正。从测试结果来看,还应该对程序纠错性方面进行改进,如测试10情况下,程序进入死循环状态,说明程序鲁棒性不好。 测试目标完成
测试未通过,不可进行交付。
5.2心得体会
从这次的软件缺陷分析实验中,我学到了很多知识,懂得怎么样去写好一份测试报告,当我们要对某个程序进行缺陷分析时,首先要考虑的是要用什么样的测试方法去测试这个程序,才能尽可能多地去发现程序存在的缺陷,确定方法之后还要考虑如何去选取测试用例,如何选取好的测试用例,这是我们必须要思考的,因为好的测试用例可以很好地程序中的错误,而不是盲目地去测试,那样只会事倍功半,达不到想要的效果。
六、附录
部分用例测试截图