基于规格说明的测试技术(软件动态测试)_第1页
基于规格说明的测试技术(软件动态测试)_第2页
基于规格说明的测试技术(软件动态测试)_第3页
基于规格说明的测试技术(软件动态测试)_第4页
基于规格说明的测试技术(软件动态测试)_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、成绩辽宁工程技术大学上机实验报告课程名称软件测试与评估实验题目基于规格说明的测试技术院系软件学院专业软件工程班级软件13-9班姓名王朝晖学号1320010920实验日期2016.5.12实验目的1.了解软件动态测试的相关知识。2.能根据案例做出相应的图表。3.掌握软件动态测试的基本方法。4.针对案例,能够运用动态测试技术中的具体方法进行测试用例的设计。实验准备1.计算机一台,有 c与c+程序设计学习与实验系统的软件。2.了解至少一门程序设计语言,并能熟练应用。能够编写并运行有关实验的相关代码。3.了解等价类划分与边界值分析的方法并能应用方法分析程序。4.了解因果图和决策表的方法并能应用方法分析

2、程序。 实验进度本次共有 1 个练习,完成 1 个。实验内容 1.根据NextDate函数问题进行编程,有三个变量mouth(月份),day(日期),year(年)。函数的输出为输入日期后一天的日期。要求输入变量month,day和year均为整数值。并且满足下列条件:1 month 12, 1 day 31,1912 year 2050。(此函数的主要特点是输入变量之间的逻辑关系比较复杂。复杂性的来源有两个:一个是输入域的复杂性,另一个是指闰年的规则。)2.对NextDate函数进行分析。3.选用基于规格说明的测试技术中适合的方法为NextDate函数问题设计测试用例。实验分析一实验步骤1.

3、打开c与c+程序设计学习与实验系统平台,编译有关NextDate函数问题的相关程序。2.对程序进行等价类测试。3. 对程序进行边界值分析。4.对程序进行决策表测试。5. 进行用例设计。选择上述设计中的一种方法进行测试用例,包括等价类、边界值、等价类边界值结合法、因果图和决策表法。给出预定输入和输出,以及实际输出结果。6.总结归纳。二程序分析1.程序代码 #include <iostream> using namespace std; void NextDate(int year,int month,int day); void main() int year=0,month=0,d

4、ay=0;NextDate(year,month,day); void NextDate(int year,int month,int day) cout<<"请输入年份:"<<endl;cin>>year;while(!(year>=1912 && year<=2050)cout<<"年份超过界限,请重新输入"<<endl;cin>>year;cout<<"请输入月份:"<<endl;cin>>mo

5、nth;while (month>12|month<1)cout<<"月份输入有误,请重新输入"<<endl;cin>>month;cout<<"请输入日期:"<<endl;cin>>day;while (day>31|day<1)cout<<"日期输入有误,请重新输入"<<endl;cin>>day;while(month=4&&day=31|month=6&&day=3

6、1|month=9&&day=31|month=11&&day=31)cout<<"小月没有31号"<<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&a

7、mp;&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<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;break;case 2:if(day=29)month=3;day=1;cout<<"明

8、天是:"<<year<<'/'<<month<<'/'<<day<<endl;break;case 4:case 6:case 9:case 11:if(day=31)month+;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;break;case 12:if(day=32)year+;m

9、onth=1;day=1;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;break;cout<<"明天是:"<<year<<'/'<<month<<'/'<<day<<endl;2. 分析 NextDate函数是输入日期,年,月份,函数根据输入的数据,输出输入日期后一天的日期。具

10、体为如果输入日期不是当月最后一天,则把day变量的值加1;如果输入日期是111月份中某月的最后一天,则把day变量的值复位为1,month变量的值加1;如果输入日期是12月的最后一天,则day变量和month变量的值都复位为1,year变量的值加1。 关于day的变量值:如果是1,3,5,7,8,10,12月份,day变量值为31;如果是4,6,9,11月份, day变量值为30;如果是闰年的2月,day变量值为29;如果是非闰年的2月,day变量值为28。3 等价类测试分析1.划分简单等价类(1)有效等价类:M1=month:1month12D1=day:1day31Y1=year:1912

11、month2050(2) 无效等价类M2=month:month<1M3=month:month>12D2=day:day<1D3=day:day>31Y2=year:year<1912Y3=year:month>2050 (3)测试用例根据等价类得到等价类测试用例,如表1表1 普通等价类测试用例测试用例输入期望输出monthdayyea5月6日2052000 month不在112中31352000 month不在112中4502000day不在131中55322000day不在131中6551911 

12、year不在19122050中7552051 year不在19122050中 2.划分改进等价类在简单等价类划分测试NextDate函数中,没有考虑2月份的天数问题,也没有考虑闰年的问题,月份只包含了30天和31天两种情况。在改进等价类划分测试NextDate函数中,要考虑2月份天数的问题及闰年问题。(1) 有效等价类 M1month:month有30天 M2month:month有31天, 除去12月 M3month:month是2月 M4month:month是12月 D1day:1day27 D2day:day28 D3day:day29 D4day:day30 D5day:d

13、ay31 Y1year:year是闰年 Y2year:year不是闰年 (2)无效等价类M5=month:month<1M6=month:month>12D6=day:day<1D7=day:day>31Y3=year:year<1912Y4=year:month>2050 (3)测试用例根据等价类得到等价类测试用例,如表2。表2 改进等价类测试用例测试用例输入期望输出monthdayyear143020092009年4月31日273120092009年8月1日32272009 2009年2月28日422820092009年3月1日52292000

14、2000年3月1日6123120092010年1月1日79312009 不可能的输入日期82292009不可能的输入日期92302009不可能的输入日期101582009month不在112中116372007day不在131中12662100 year不在19122050中4 边界值测试分析1.变量month、day、year的取值范围:M1month:1month12D1day:1day31Y1year:1912year20502.测试用例利用输入变量的最小值、略大于最小值、正常值、略小于最大值和最大值来设计测试用例。如表3。表3 边界值测试用例测试用例输入期望输出mo

15、nthdayyear1-132000month不在112中2032000month不在112中31152000 2000年2月16日421520002000年2月16日5111520002000年11月16日6121520002000年12月16日713152000month不在112中 86-12000day不在131中9602000day不在131中106120002000年6月2日116220002000年6月3日1263020002000年7月1日136312000不可能的输入日期146322000day不在131中156151911year不在19122050中1

16、661519121912年6月16日1761519131913年6月16日1861520492049年6月16日1961520502050年6月16日206152051year不在19122050中五决策表测试分析决策表中的条件就是规格说明书中的输入条件,动作就是输出结果,而规则就是贯穿条件项和动作项的一列,一条规则要对应设计一个测试用例。1. 动作桩a1: 不可能;a2: day加1;a3: day复位;a4: month加1;a5: month复位;a6: year加12. 条件桩 M1month:month有30天 M2month:month有31天,12月除外 M3month:mont

17、h是12月 M4month:month是2月 D1day:1day27 D2day:day28 D3day:day29 D4day:day30 D5day:day31 Y1year:year是闰年 Y2year:year不是闰年3. 画出决策表,如表4。表4 决策表 规则选项 1234567891011条件:C1:month在M1M1M1M1M1M2M2M2M2M2M3C2:day在D1D2D3D4D5D1D2D3D4D5D1C3:year在-动作:A1:不可能A2:day加1A3: day复位A4: month加1A5: month复位A6:year加1 规则选项 1213141516171

18、819202122条件:C1:month在M3M3M3M3M4M4M4M4M4M4M4C2:day在D2D3D4D5D1D2D2D3D3D4D5C3:year在-Y1Y2Y1Y2-动作:A1:不可能A2:day加1A3: day复位A4: month加1A5: month复位A6:year加1 决策表共有22条规则:第15条规则解决有30天的月份;第610条规则解决有31天的月份(除12月份以外);第1115条规则解决12月份;第1622条规则解决2月份和闰年的问题。不可能规则也在决策表中列出,比如第5条规则中在有30天的月份中也考虑了31日。 通过以上的决策表得出简化的决策表,如表5。表5

19、简化决策表 规则选项 1 2 345678910111213141516171819202122条件:C1:month在M1M1M1M2M2M3M3M4M4M4M4M4M4C2:day在D1D2D3D4D5D1D2D3D4D5D1D2D3D4D5D1D2D2D3D3D4D5C3:year在-Y1Y2Y1Y2-动作:A1:不可能A2:day加1A3: day复位A4: month加1A5: month复位A6:year加14. 根据简化的决策表,设计如表所示的测试用例。如表6。表6 决策表测试用例测试用例monthdayyear预期输出1361520072007年6月16日46302007200

20、7年7月1日56312007不可能的输入日期6911520072007年1月16日1013120072007年2月1日1114121520072007年12月16日15123120072008年1月1日1621520072007年2月16日1722820002000年2月29日1822820072007年3月1日1922920002000年3月1日202292007不可能的输入日期22222302007不可能的输入日期6 测试用例截图 使用普通等价类划分法进行用例测试,参见表1。1. 测试用例1,如图1。图1 测试用例1 2.测试用例2,如图2。图2 测试用例2 3.测试用例3,如图3。图3 测试用例34.测试用例4,如图4 。图4 测试用例4 5.测试用例5,如图5。图5 测试用例56.测试用例6,如图6。图6 测试用例6 7.测试用例7,如图7。图7 测试用例7心得体会本次实验的目的是主要是了解软件动态测试。包括对等价类测试,边界值测试和决策表测试。在做实验之前,我已经了解了这三种测试的基础要点和重点。做实验的时候相对轻松了很多。等价类测试要掌握三个步骤,先要形成等价类表,每一等价类规定一个唯一的编号。然后设计一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论