




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软 件 学 院上 机 实 验 报 告课程名称: 软件测试与评估 实验项目: 实验二基于规格说明的测试技术 实 验 室: 耘慧416 姓 名: 学 号: 专业班级: 软件13-7 实验时间: 2016/4/7 实验成绩评阅教师一、 实验目的及要求1.掌握基于规格说明的测试技术(即动态测试技术);2.能够运用其进行测试用例的设计。二、 实验性质设计性三、 实验学时2学时四、 实验环境1.实验环境:主流PC机一套,要求安装windows操作系统、OFFICE工具2.知识准备:(1)软件基于规格说明的测试技术;(2)划分测试用例的原理和方法的同时,运用其设计测试用例。5、 实验内容及步骤1.对问题进行
2、分析,选用基于规格说明的测试技术中适合的方法为NextDate函数问题设计测试用例:NextDate函数NextDate函数说明另一种复杂的关系,即输入变量之间逻辑关系的复杂性。NextDate函数包含三个变量month、day和year,函数的输出为输入日期后一天的日期。要求输入变量month、day和year均为整数值,并且满足下列条件:条件1 1month 12条件2 1day 31条件3 1912year 2050结论:在NextDate函数中有两种复杂性的输入来源,一是输入域的复杂性,二是确定闰年的规则并要增加“额外天”。2.以覆盖测试技术中的判定覆盖为例来进行三角形问题的测试用例的
3、设计:如果输入值a、b、c不满足条件1、条件2和条件3 ,程序给出“边的取值超出允许范围”的信息。如果输入值a、b、c 满足条件1、条件2和条件3,则输出下列四种情况之一:(1)如果不满足条件4、条件5和条件6中的一个,则程序输出为“非三角形”;(2)如果三条边相等,则程序输出为“等边三角形”;(3)如果恰好有两条边相等,则程序输出为“等腰三角形”;(4)如果三条边都不相等,则程序输出为“一般三角形”。五、实验要求及步骤1.对于NextDate函数问题进行分析:(1)选用基于规格说明的测试技术中适合的方法为其设计测试用例;(2)选定等价类、边界值、等价类边界值结合法、因果图/决策表法其中之一设
4、计具体测试用例,给出预定输入和输出,以及实际输出结果;可供选择的设计方法包括:等价类测试等价类测试方法是把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。使用等价类划分方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。等价类的划分有两种不同的情况:有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。用等价类划分法设计测试用例步骤:a形成等价类表,每一等价类规定一
5、个唯一的编号;b设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有有效等价类均被测试用例所覆盖;c设计一个新测试用例,使其只覆盖一个无效等价类,重复这一步骤直到所有无效等价类均被覆盖。边界值分析边界值分析是考虑边界条件而选取测试用例的一种功能测试方法。边界值分析关注输入空间的边界,以标识测试用例,因为错误更可能出现在输入变量的极值附近。边界值分析的基本思想是:利用输入变量的最小值(min)、略大于最小值(min+)、正常值(nom)、略小于最大值(max-)和最大值(max)来设计测试用例。使用在最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量值
6、。在边界值分析法中获取测试用例的方法是:a每次保留程序中一个变量,让其余的变量取正常值,被保留的变量依次取min、min+、nom、max-和max作为有效边界值;依次取min-和max+作为无效边界值。b对程序中的每个变量重复1) 。决策表的测试决策表(也称判定表)适合描述分析和表达针对不同逻辑条件的组合取值执行不同操作的情况。决策表分为4部分,如下图所示:其中:a条件桩:列出问题的所有条件b条件项:针对条件桩给出的条件列出所有可能的取值c动作桩:列出问题规定的可能采取的操作d动作项:指出在条件项的各组取值情况下应采取的动作使用决策表标识测试用例,则决策表中的条件就是规格说明书中的输入条件,
7、动作就是输出结果,而规则就是贯穿条件项和动作项的一列,一条规则要对应设计一个测试用例。因果图法因果图法最终生成的是决策表。利用因果图生成测试用例的基本步骤如下:a分析软件规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。b分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系画出因果图。c由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。d把因果图转换为决策表。e根据决策表中的每一列设计测试用例。(3)比较这些方法
8、之间的优缺点。NextDate函数的决策表测试用例设计1.问题分析:为了获得下一个日期,NextDate函数执行如下操作:如果输入日期不是当月最后一天,则把day变量的值加1;如果输入日期是111月份中某月的最后一天,则把day变量的值复位为1,month变量的值加1;如果输入日期是12月的最后一天,则day变量和month变量的值都复位为1,year变量的值加1。关于最后一天的判断:如果是有31天的月份(1,3,5,7,8,10,12),day变量值为31;如果是有30天的月份(4,6,9,11),day变量值为30;如果是有29天的月份(闰年的2月),day变量值为29;如果是有28天的月
9、份(非闰年的2月),day变量值为28。2.根据所执行的操作,可列出NextDate函数的动作桩:a1: 不可能;a2: day加1;a3: day复位;a4: month加1;a5: month复位;a6: year加1考虑到决策表的规模,条件使用month、day、year变量的等价类,在以下等价类集合上建立决策表:对于month变量的取值M1: mouth: mouth有30天;M2: mouth:mouth有31天,12月除外;M3: mouth:mouth有12月;M4: mouth:mouth是2月;对于day变量的取值D1:day:1day27;D2: day:day=28;D3
10、: day:day=29;D4: day:day=30;D5: day:day=31;对于year变量的取值Y1:year:year是闰年;Y2: year:year不是闰年month变量的有效等价类:M1: month=4,6,9,11 M2: month=1,3,5,7,8,10M3: month=12 M4: month=2day变量的有效等价类:D1: 1day27 D2:day=28 D3:day=29 D4:day=30 D5: day=31year变量的有效等价类:Y1: year是闰年 Y2: year不是闰年3.考虑各种有效的输入情况,程序中可能采取的操作有以下六种:a1:
11、不可能a2: 日增1 a3: 日期复位a4: 月增1 a5: 月复位a6: 年增14. 绘制决策表:5. 设计测试用例:6、 实验总结 通过本次实验,我完成了动态测试技术,并且使用决策表法和覆盖法分别测试了Nextday程序和三角形程序,通过亲自上机测试,解决了程序中存在的一些bug,更加深刻的体会到测试的重要性。附录 源程序清单1、 Nextday/date11.cpp#include<iostream>using namespace std;class Dateint day;int month;int year;public:int Year();int Month();in
12、t Day(int day1,int month1,int year1);int Date:Year()return year;int Date:Month()return month;int Date:Day(int day1,int month1,int year1)if(month1=1|month1=3|month1=5|month1=7|month1=8|month1=10|month1=12)if(day1<31)day1+;day=day1;month = month1;else if(day1=31)day1 = 1;month1+;month = month1;mont
13、h1-;else cout<<"error1"<<endl;return 0;day = day1;if(month1=4|month1=6|month1=9|month1=11)if(day1<30)day1+;/day = day1;month = month1;else if(day1=30)day1 = 1;month1 +;month = month1;month1-;elsecout<<"error2"<<endl;return 0;day = day1;/day = day1;if(mo
14、nth>12)month = 1;/day =1;year1+;year = year1;if(year>2050)/1912cout<<"超出范围"<<endl;return 0;if(month1=2)if(year1%4=0&&year1%100!=0|year1%400=0)if(day1<29)day1+;/day = day1;month = month1;else if(day1=29)month1+;day1 = 1;month = month1;elsecout<<"error
15、3"<<endl;return 0;day = day1;elseif(day1<28)day1+;/day = day1;month = month1;else if(day1=28)month1+;day1 = 1;/day = day1;month = month1;elsecout<<"error4"<<endl;return 0;day = day1;return day;int main()Date DATE;Date *p =&DATE;int a = 0,b = 0,c = 0;while(true
16、)cout<<"请输入日期:(依次输入年月日)(按0退出)"<<endl;cin>>a;if(a=0)break;cout<<"年"<<endl;cin>>b;cout<<"月"<<endl;cin>>c;cout<<"日"<<endl;if(a>=1912&&a<=2050&&b>=1&&b<=12&&c>=1&&c<=31)/DATE->Day(a,b,c);int dd = p->Day(c,b,a);if(dd)/DATE->Year();cout<<DATE->year<<"年"<<DATE->month<<"月"<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 服装设计师与时尚公司长期合作协议
- 智能门锁集成安装与定期检修服务协议
- 滩涂贝类养殖权委托经营管理全面合作协议
- 康养中心护理服务委托专业运营协议
- 跨界脑机接口技术研发与市场推广合作协议
- 留学中介服务及海外院校录取通知书获取及签证申请辅导及生活适应辅导协议
- 耕地流转规模化种植项目委托管理合同
- 班组长现场管理
- 全身人物绘画美术课件
- 瘫痪人员护理要点与规范
- 小班语言《水珠宝宝》课件
- 加油站职业危害防治计划和实施方案
- 路面弯沉温度修正系数
- 山东省济南市槐荫区2024届中考联考化学试题含解析
- (完整版)xx中学“双积双评”积分入团实施方案
- 拖拉机和联合收割机安全技术检验合格证明
- 文化产业政策与法规
- 第四讲婴幼儿情绪情感及社会功能的发育
- (完整word版)餐券模板
- 平野苍流:打渔张引黄灌区开灌60周年纪念专辑
- 电梯安全风险管控清单
评论
0/150
提交评论