a>>b>>c;     if(a=100)cout=100)cout=100)coutc||a+c>b||b+c>a)coutb&&b<>c"/> a>>b>>c;   "/>

实验一 黑盒测试法——等价类划分法

2017-09-27 16页 doc 454KB 54阅读

用户头像

is_842972

暂无简介

举报
实验一 黑盒测试法——等价类划分法实验一 黑盒测试法——等价类划分法 实验目的:1.掌握等价类划分的方法           2.掌握按等价类方法设计测试用例 实验内容: 1、请用等价类划分法为三角形问题划分等价类,并设计相应的测试用例,测试下面三角形问题程序,找出缺陷并改正,给出缺陷报告。 #include "iostream.h" void main(){     int a,b,c;     cout>a>>b>>c;     if(a=100)cout=100)cout=100)coutc||a+c>b||b+c>a)coutb&&b<>c&&c<>a...
实验一 黑盒测试法——等价类划分法
实验一 黑盒测试法——等价类划分法 实验目的:1.掌握等价类划分的           2.掌握按等价类方法设计测试用例 实验内容: 1、请用等价类划分法为三角形问题划分等价类,并设计相应的测试用例,测试下面三角形问题程序,找出缺陷并改正,给出缺陷报告。 #include "iostream.h" void main(){     int a,b,c;     cout<<"请输入三角形的三条边(界于1-100之间)"<>a>>b>>c;     if(a<=1||a>=100)cout<<"a的值超过允许的范围!";     if(b<=1||b>=100)cout<<"b的值超过允许的范围!";     if(c<=1||c>=100)cout<<"c的值超过允许的范围!";     if(a+b>c||a+c>b||b+c>a)cout<<"a,b,c的值不能构成三角形!";     if(a==b&&b==c)cout<<"是等边三角形!";     if(a==b||b==c||a==c)cout<<"是等边三角形!";     if(a<>b&&b<>c&&c<>a)cout<<"一般三角形!"; } 三角形问题:划分等价类   有效等价类 号码 无效等价类 号码 输 入 条 件 输入三个整数 整数 1 a为非整数       一边为非整数    b为非整数                         c为非整数 a,b为非整数 两边为非整数      b,c为非整数 a,c为非整数 三边a,b,c均为非整数 12 13 14 15 16 17 18 三个数 2 只给a 只给一边    只给b 只给c 只给a,b 只给两边      只给b,c 只给a,c 给出三个以上 19 20 21 22 23 24 25 非零数 3 a为0 一边为零    b为0 c为0 a,b为0 两边为零    b,c为0 a,c为0 三边a,b,c均为0 26 27 28 29 30 31 32 正数 4 a<0 一边<0      b<0 c<0 a<0且b<0 二边<0      a<0且c<0 b<0且c<0 三边均<0:a<0且b<0且c<0 33 34 35 36 37 38 39 输 出 条 件 构成一般三角形 a+b>c b+c>a a+c>b 5 6 7 a+b分析
基本设计□ 详细设计□ 设计式样理解□ 编程 □数据库设计 □ 环境配置□ 其它  (                              ) 缺陷描述 程序无法正常执行 预期结果 程序能运行,并且有运行的结果 重现步骤 备注 打开vc++6.0,运行以下源代码。 #include "iostream.h" void main(){     int a,b,c;     cout<<"请输入三角形的三条边(界于1-100之间)"<>a>>b>>c;     if(a<=1||a>=100)cout<<"a的值超过允许的范围!";     if(b<=1||b>=100)cout<<"b的值超过允许的范围!";     if(c<=1||c>=100)cout<<"c的值超过允许的范围!";     if(a+b>c||a+c>b||b+c>a)cout<<"a,b,c的值不能构成三角形!";     if(a==b&&b==c)cout<<"是等边三角形!";     if(a==b||b==c||a==c)cout<<"是等边三角形!";     if(a<>b&&b<>c&&c<>a)cout<<"一般三角形!"; } 发现错误,无法执行。 以下部分由BUG修改人填写 缺陷修改描述 将if语句的“<>”改成“!=” 测试人 修正人 确认人 修正日期 年  月  日     缺陷编号 2 用例编号 1 缺陷类型 代码错误 严重级别 严重 优先级 优先 缺陷状态 New 测试阶段 单元  □ 集成 □ 系统  □ 验收  □ 其它(    ) 可重现性 是 □否 BUG原因 □需求分析 基本设计□ 详细设计□ 设计式样理解□ 编程 □数据库设计 □ 环境配置□ 其它  (                              ) 缺陷描述 输入正确的三个数,不能进行正确的判断三角形的类型 预期结果 是一般三角形! 重现步骤 备注 1、 在VC++6.0中运行源程序 输入数据如图所示: 以下部分由BUG修改人填写 缺陷修改描述 将以下代码 if(a+b>c||a+c>b||b+c>a)cout<<"a,b,c的值不能构成三角形!"; 改成 if(a+bb&&b<>c&&c<>a)cout<<"一般三角形!"; 改为:     if((a>0&&a<=100)&&(b>0&&b<=100)&&(c>0&&c<=100))     {         if(a!=b&&b!=c&&c!=a)cout<<"一般三角形!";     } 测试人 修正人 确认人 修正日期 年  月  日 缺陷编号 5 用例编号 40~45 缺陷类型 严重级别 严重 优先级 优先 缺陷状态 New 测试阶段 单元  □ 集成 □ 系统  □ 验收  □ 其它(    ) 可重现性 是 □否 BUG原因 □需求分析 基本设计□ 详细设计□ 设计式样理解□ 编程 □数据库设计 □ 环境配置□ 其它  (                              ) 缺陷描述 输入不能构成三角形的有效数据,不能判定是否为三角形 预期结果 不能构成三角形 重现步骤 备注 在VC++6.0中运行源程序 输入数据如图所示: 以下部分由BUG修改人填写 缺陷修改描述 将以下代码: if(a<>b&&b<>c&&c<>a)cout<<"一般三角形!"; 改为:     if((a>0&&a<=100)&&(b>0&&b<=100)&&(c>0&&c<=100))     {         if((a!=b&&b!=c&&c!=a)&&(a+b>c&&a+c>b&&b+c>a))cout<<"一般三角形!";     } 测试人 修正人 确认人 修正日期 年  月  日 缺陷编号 6 用例编号 13~19 缺陷类型 严重级别 严重 优先级 优先 缺陷状态 New 测试阶段 单元  □ 集成 □ 系统  □ 验收  □ 其它(    ) 可重现性 是 □否 BUG原因 □需求分析 基本设计□ 详细设计□ 设计式样理解□ 编程 □数据库设计 □ 环境配置□ 其它  (                              ) 缺陷描述 只输入三角形的一边或两边,程序进入等待的状态,没有提示。 预期结果 给出提示判断是否为有效的输入 重现步骤 备注 在VC++6.0中运行源程序 输入数据如图所示: 以下部分由BUG修改人填写 缺陷修改描述 测试人 修正人 确认人 修正日期 年  月  日 2、某城市电话号码由三部分组成,分别是: 1) 地区码:以0开头的三位或者四位数字(包括0); 2) 电话号码:以非0、非1开头的七位或者八位数字。 假定被测程序能接受一切符合上述规定的电话号码, 拒绝所有不符合规定的电话号码。要求:      (1)请选择适当的黑盒测试方法,写出选择该方法的原因,并使用该方法的步骤,给出测试用例表。 (2)如果所生成的测试用例不够全面,请考虑用别的测试方法生成一些补充的测试用例。 解:(1)采用等阶类划分法,因为等阶类划分把输入域分成若干部分,然后从每个部分选取少数代表性的数据当做测试用例。 (2)步骤:划分等阶类,列出等阶类表,确定测试用例。 等价类表: 输入条件 有效等价类 号码 无效等价类 号码 地区码 0 以0开头的3位数 以0开头的4位数 1 2 3 非数字字符 非0开头的3位数 非0开头的4位数 0开头且少于3位数字 0开头且多于4位数字 非0开头且少于3位数 非0开头且多于4位数 6 7 8 9 10 11 12 电话号码 非0、非1开头的7位数 非0、非1开头的8位数 4 5 有非数字字符 少于7位数 多于8位数 起始位为0 起始位为1 13 14 15 16 17 测试用例表: 用例ID 测试数据 期望结果 覆盖等价类 地区码 电话号码 1 0 2235688 接受(有效) 1,4 2 0 22347789 接受(有效) 1,5 3 087 2235688 接受(有效) 2,4 4 087 22347789 接受(有效) 2,5 5 0234 2235688 接受(有效) 3,4 6 0234 22347789 接受(有效) 3,5 7 04A3 2235688 拒绝(无效) 6 8 122 2235688 拒绝(无效) 7 9 1223 2235688 拒绝(无效) 8 10 02 2235688 拒绝(无效) 9 11 02234 2235688 拒绝(无效) 10 12 12 2235688 拒绝(无效) 11 13 12345 2235688 拒绝(无效) 12 14 078 2334AA4 拒绝(无效) 13 15 078 234567 拒绝(无效) 14 16 078 723467890 拒绝(无效) 15 17 078 0234455 拒绝(无效) 16 18 078 1234546 拒绝(无效) 17 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<=2013))     {         cout<<"年份超过界限,请重新输入"<>year;     }     cout<<"请输入月份:"<>month;     while (month>12||month<1)     {         cout<<"月份输入有误,请重新输入"<>month;     }     cout<<"请输入日期:"<>day;     while (day>31||day<1)     {         cout<<"日期输入有误,请重新输入"<>day;     }     if((year%4==0 && year%100!=0) || (year%400==0))  //检查闰年;     {         int i=0;         i=day-29;         while(month==2&&i>0)         {             cout<<"本月是闰月,请在1-29之间从新输入日期"<>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<<"明天是:"<12} D6= {日期.:日期<1} D7= {日期:日期>31} Y3= {年:年<1812} Y4= {年:年>2012} 3.2测试用例设计 用例ID 月份 日期 年 预期输出 1 4 10 2001 2001年4月11日 2 4 10 2004 2004年4月11日 3 4 28 2001 2001年4月29日 4 4 28 2004 2004年4月29日 5 4 29 2001 2001年4月30日 6 4 29 2004 2004年4月30日 7 4 30 2001 2001年5月1日 8 4 30 2004 2004年5月1日 9 4 31 2001 无效输入 10 4 31 2004 无效输入 11 1 10 2001 2001年1月11日 12 1 10 2004 2004年1月11日 13 1 28 2001 2001年1月29日 14 1 28 2004 2004年1月29日 15 1 29 2001 2001年1月30日 16 1 29 2004 2004年1月30日 17 1 30 2001 2001年1月31日 18 1 30 2004 2004年1月31日 19 1 31 2001 2001年2月1日 20 1 31 2004 2004年2月1日 21 12 10 2001 2001年12月11日 22 12 10 2004 2004年12月11日 23 12 28 2001 2001年12月29日 24 12 28 2004 2004年12月29日 25 12 29 2001 2001年12月30日 26 12 29 2004 2004年12月30日 27 12 30 2001 2001年12月31日 28 12 30 2004 2004年12月31日 29 12 31 2001 2002年1月1日 30 12 31 2004 2005年1月1日 31 2 10 2001 2001年2月11日 32 2 10 2004 2004年2月11日 33 2 28 2001 2001年3月1日 34 2 28 2004 2004年2月29日 35 2 29 2001 无效输入 36 2 29 2004 2004年3月1日 37 2 30 2001 无效输入 38 2 30 2004 无效输入 39 2 31 2001 无效输入 40 2 31 2004 无效输入 四、测试结果及缺陷分析 4.1测试执行情况与记录 测试用例编号 输入 输出 1 2001/4/10 2001/4/11 2 2001/2/28 2001/3/1 3 2004/2/29 2004/3/1 4 1800/1/23 年份超过界限,请重新输入 5 2200/3/2 年份超过界限,请重新输入 6 2001/0/3 月份输入有误,请重新输入 7 2001/13/3 月份输入有误,请重新输入 8 2001/3/-21 日期输入有误,请重新输入 9 2001/3/40 日期输入有误,请重新输入 10 abu 程序进入死循环 11 2001/2/30 2001/2/31 12 2004/2/30 本月是闰月,请在1-29之间从新输入日期 4.2缺陷统计与分析 在选取的12个用例中,有两例发现程序有缺陷,测试用例11不符合题目给定要求。 分析:在正常情况下,输入日期为平年的2月29时,程序应报错。正常情况下当输入非数值数据时,应该要有所提示,避免程序进入死循环。 五、测试结论与心得体会 5.1测试结论 测试执行只是针对部分用例进行测试,尚有未考虑充分之处,留待以后发现错误时进行纠正。从测试结果来看,还应该对程序纠错性方面进行改进,如测试10情况下,程序进入死循环状态,说明程序鲁棒性不好。 测试目标完成 测试未通过,不可进行交付。 5.2心得体会 从这次的软件缺陷分析实验中,我学到了很多知识,懂得怎么样去写好一份测试报告,当我们要对某个程序进行缺陷分析时,首先要考虑的是要用什么样的测试方法去测试这个程序,才能尽可能多地去发现程序存在的缺陷,确定方法之后还要考虑如何去选取测试用例,如何选取好的测试用例,这是我们必须要思考的,因为好的测试用例可以很好地程序中的错误,而不是盲目地去测试,那样只会事倍功半,达不到想要的效果。 六、附录 部分用例测试截图
/
本文档为【实验一 黑盒测试法——等价类划分法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索