当前位置:文档之家› 实验3、黑盒测试:决策表测试方法

实验3、黑盒测试:决策表测试方法

20 15 — 20 16 学年第 2 学期软件测试技术课程实验报告学院:计算机科学技术专业:软件工程班级:软件二班姓名:吴德宁学号:041340217任课教师:刘玉宝实验日期:2016年 5 月 17 日实验题目实验3、黑盒测试:决策表测试方法实验目的1、掌握决策表的概念2、掌握决策表测试用例设计法。

实验内容1、对NextDate问题运用决策表法设计测试用例,并执行测试,撰写实验报告。

NextDate (int month, int day, int year)函数规定:输入三个整数:month、day 和year,函数的输出为输入日期后一天的日期。

例如,输入为2006年3月7日,则函数的输出为2006年3月8日,year满足1920≤year≤2050。

实验步骤:1)构造决策表●M1={月份:30天/月},M2={月份: 31天/月,12月除外},M3={月份: 12月},M4={月份: 2月}●D1={日期:1<=日<=27},D2={日期:日=28},D3={日期:日=29} ,D4={日期:日=30},D5={日期:日=31}●Y1={年:闰年},Y2={年:平年}注:二月:平年28天,闰年29天条件桩:●C1:月份在{M1,M2,M3,M4}中之一●C2:日期在{D1,D2,D3,D4 ,D5}中之一●C3:年在{Y1,Y2}中之一动作桩:●A1:不可能●A2:日期增1●A3:日期复位(置1)●A4:月份增1●A5:月份复位(置1)●A6:年增11 2 3 4 5 6 7 8 9 10C1:月M1 M1 M1 M1 M1 M2 M2 M2 M2 M2C2:日D1 D2 D3 D4 D5 D1 D2 D3 D4 D5C3:年A1:不可能√A2:日期+1 √√√√√√√A3:日期复位√√(置1)A4:月份+1 √√A5:月份复位(置1 )A6:年+111 12 13 14 15 16 17 18 19 20 21 22C1:月M3 M3 M3 M3 M3 M4 M4 M4 M4 M4 M4 M4C2:日D1 D2 D3 D4 D5 D1 D2 D2 D3 D3 D4 D5C3:年Y1 Y2 Y1 Y2 A1:不可能√√√A2: 日期+1 √√√√√√√√√A3: 日期复位(置1)A4: 月份+1 √√√A5: 月份复位(置1 )A6: 年+1 √2)根据决策表设计测试用例,得到测试用例表(测试用例表格式同实验1)。

用例编号月日年预期输出1--3 4 12/28/29 2001 2001年4月13/29/30日4 4 30 2001 2001年5月1日5 4 31 2001 不可能2001 2001年1月16/29/30/31日6--9 1 15/28/29/310 1 31 2001 2001年2月1日11-14 12 15/28/29/32001 2001年12月16/29/30/31日15 12 31 2001 2002年1月1日16 2 15 2001 2001年2月16日17 2 28 2004 2004年2月29日18 2 28 2001 2001年3月1日19 2 29 2005 2005年3月1日20 2 29 2001 不可能21,22 2 30/31 2001 不可能3)执行测试,填写软件缺陷报告(软件缺陷报告格式同实验1)。

缺陷编号001 用例编号1—3 缺陷类型严重级别严重优先级优先缺陷状态New测试阶段□单元□集成□系统□√验收□其它()可重现性□是□否BUG原因□需求分析□基本设计□详细设计□设计式样理解□√编程□数据库设计□环境配置□其它()缺陷描述输入非数字字符,运行出现死循环预期结果报告输入格式错误重现步骤备注按照步骤打开程序,输入非字符,运行以下部分由BUG修改人填写缺陷修改描述测试人修正人确认人修正日期年月日缺陷编号001 用例编号缺陷类型缺陷编号002 用例编号9 缺陷类型严重级别一般优先级优先缺陷状态New 测试阶段□单元□集成□系统□√验收□其它()可重现性□是□否BUG原因□需求分析□基本设计□详细设计□设计式样理解□√编程□数据库设计□环境配置□其它()缺陷描述输入2012.1.30,出现两次2012.2.1预期结果出现一次2012.2.1重现步骤备注按照步骤打开程序,输入2012.1.30,出现两次2012.2.1以下部分由BUG修改人填写缺陷修改描述测试人修正人确认人修正日期年月日缺陷编号003 用例编号12 缺陷类型严重级别严重优先级优先缺陷状态New测试阶段□单元□集成□系统□√验收□其它()可重现性□是□否BUG原因□需求分析□基本设计□详细设计□设计式样理解□√编程□数据库设计□环境配置□其它()缺陷描述输入2012.12.31出现2011.12.33预期结果应该出现2013.1.2重现步骤备注按照步骤打开程序,输入2012.12.31出现2011.12.33以下部分由BUG修改人填写缺陷修改描述测试人修正人确认人修正日期年月日测试代码(C语言实现)#include <iostream>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<<"请输入年份:"<<endl;cin>>year;while(!(year>=1811 && year<=2013)){cout<<"年份超过界限,请重新输入"<<endl;cin>>year;}cout<<"请输入月份:"<<endl;cin>>month;while (month>12||month<1){cout<<"月份输入有误,请重新输入"<<endl;cin>>month;}cout<<"请输入日期:"<<endl;cin>>day;while (day>31||day<1){cout<<"日期输入有误,请重新输入"<<endl;cin>>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之间从新输入日期"<<endl;cin>>day;}if(month==2&&day==28){month=3;day=1;}else if(month==2&&day==29){month=3;day=2;}else day=day+2;}else day=day+2;//月底计算;switch(month){case 1:case 3:case 5:case 7:case 8:case 10:if (day==32){month++;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}else if (day==33){month++;day=2;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;case 2:if(day==29){month=3;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}else if(day==30){month=3;day=2;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;case 4:case 6:case 9:case 11:if(day==31){month++;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}else if(day==32){month++;day=2;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;case 12:if(day==32){year++;month=1;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}break;}cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;}2、航空服务查询问题:根据航线,仓位,飞行时间查询航空服务。

假设一个中国的航空公司规定:●中国去欧美的航线所有座位都有食物供应,每个座位都可以播放电影。

相关主题