黑盒测试实验二
黑盒测试经典例题(精选8篇)
黑盒测试经典例题(精选8篇)【篇一】黑盒测试经典例题实验一黑盒测试(一)实验目的1.掌握用边界值方法设计测试用例和执行测试的过程;2.掌握用等价划分方法设计测试用例和执行测试的过程;3.掌握用决策表方法设计测试用例和执行测试的过程。
(二)实验内容测试“Ne某tDate”函数。
Ne某tDate返回输入日期后面的那个日期。
变量年、月、日都具有整数值,且满足如下条件:C1:1912≤年份≤2050C2:1≤月份≤12C3:1≤日期≤31(三)实验步骤用熟悉的语言(如C语言)编写实现该函数的功能,并用如下方法设计测试用例,进行黑盒测试。
参考源代码:#includeintne某tDate(intyear,intmonth,intday);voidmain(){/intyear,month,day;ne某tDate(2051,12,30);}intne某tDate(intyear,intmonth,intday) {/某如果还有明天,返回1;如果输入不合法,返回-1;某/witch(month){cae1:cae3:cae5:cae7:cae8:cae10:if(day==31){day=1;month=month+1;}eleday=day+1;break;cae4:cae6:cae9:cae11: if(day==30){day=1;month=month+1;}eleday=day+1;break;cae12:if(day==31){day=1;month=1;year=year+1;if(year==2022)printf("2022iover");}eleif(day=1912&&year12||month31||day【篇二】黑盒测试经典例题常用黑盒测试的方法黑盒测试(Black-bo某Teting,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。
利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。
实验二 黑盒测试
实验二黑盒测试一、实验目的1、掌握黑盒测试的基本方法;2、掌握黑盒测试用例的编写。
二、实验要求1、根据给出的程序分别使用等价类划分法、边界值分析法、判定表方法、因果图法、正交试验法、功能图法、错误推测法来设计相应的测试用例。
2、输入数据进行测试,填写测试用例。
三、实验内容1、等价类划分法测试练习——创建腾讯QQ号黑盒测试问题QQ用户登录框测试,我们要从两个方面去考虑:一是QQ帐号,二是QQ密码。
1)划分等价类并编号,在下表内填写等价类划分的结果2)设计测试用例,覆盖所有的有效等价类2、因果法测试用例设计练习——自动售货机软件测试用例设计问题有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
其规格说明如下:若投入5角钱或1元钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
分析说明,列出原因和结果:原因:1、售货机有零钱找2、投入1元硬币3、投入5角硬币4、按下橙汁按钮5、按下啤酒按钮结果:6、售货机〖零钱找完〗灯亮当售货机中没有零钱的时候就有红灯亮7、退还1元硬币当投入1元,而且售票机中没有零钱可找的时候8、退还5角硬币当投入1元,而且售货机中有零钱可找的时候9、送出橙汁饮料10、送出啤酒饮料画出因果图:如下图1所示,所有原因结点在左边,所有结果结点在右边,建立中间结点,表示处理的中间状态,中间结果有:11、投入1元硬币并且按下饮料按钮,12、按下〖橙汁〗或〖啤酒〗的按钮13、应当找5角零钱并且售货机有零钱找14、钱已付清1售货机有零钱 6 零钱找完,灯亮2投入1元硬币7 退出1元硬币11 该找5角13 可以找5角3投入5角硬币8退出5角硬币12 按下按钮14 钱付清4 按下橙汁按钮9送出橙汁饮料5按下啤酒按钮10送出啤酒饮料图1 售货机因果图转换成判定表:四、实验步骤1、依次按照每种方法的步骤来写出测试用例2、测试,得出结果。
网易邮箱黑盒测试实验报告
南京信息工程大学实验(实习)报告实验(实习)名称实验一黑盒测试实验(实习)日期2014-11-21得分指导教师徐旦华系计软院专业软件工程年级班次姓名学号实验一黑盒测试(一)一、实验目的理解黑盒测试的基本方法,掌握等价分类法、边界值分析等测试用例的设计方法。
一、实验内容1.编写网易邮箱注册功能的测试用例,假设没有重复的用户名,条件如图示:要求:使用等价类划分方法和弱边界值法设计测试用例,并记录测试结果(1)等价类划分法测试用例分析有效等价类满足条件:邮箱地址:1、6~18个字符2、以字母开头密码:1、6~16个字符(区分大小写)确认密码:1、与密码相同(字母区分大小写)验证码:1、与图片相同无效等价类满足条件:邮箱地址:1、少于6个字符2、多于18个字符3、以“_”开头4、以数字开头密码:1、少于6个字符2、多于16个字符确认密码:1、不区分大小写2、与密码不一致验证码:1、不输入2、输入与图片不一致测试用例表测试用例编号输入预测结果邮箱地址密码确认密码验证码1 wbb158******** 123456 123456 pqln 注册成功2 smileday 111111 111111 sdfa 注册成功3 wu_199203 123456 123456 erqw 注册成功4 webei 111111 111111 shjd 失败5 webeib 123456 123456 asda 注册成功6 webeibe 123456 123456 dasa 注册成功7 liixiaohuishigedr 111111 111111 sfsf 注册成功8 liixiaohuishigedhr 111111 111111 dfsa 注册成功9 liixiaohuishigedhrm 111111 111111 sdfs 失败10 _smileday 123456 123456 werq 失败11 7w__b__1 123456 123456 dwe1 失败12 w__b__1 12345 12345 dfte 失败13 w__b__1 123456 123456 deff 注册成功14 w__b__1 1234567 1234567 xcxm 注册成功15 w__b__1 123456789012345 123456789012345 asds 注册成功16 w__b__1 1234567890123456 1234567890123456 dsff 注册成功17 w__b__1 12345678901234567 12345678901234567 sdfc 失败18 w__b__1 111111 123456 Srdt 失败19 w__b__1 w__b__1_01 w__b__1_01 dwfa 失败20 w__b__1 123456 123456 失败21 w__b__1 123456 123456 Wr33 注册成功随机测试用户名位数测试用户名首字符测试密码位数测试密码一致性测试验证码测试二、实验结果。
黑盒测试等价类划分法
实验1、黑盒测试:等价类划分法
一、实验目的
1、掌握等价类的概念。
2、掌握等价类划分法的测试用例设计方法。
二、实验内容
对三角问题使用等价类划分的方法来设计测试用例,并执行测试,然后撰写实验报告。
三角形问题:规定输入三个整数a、b、c分别作为三边的边长构成三角形。
通过程序判定所构成的三角形的类型(等边三角形、等腰三角形、一般三角形、构不成三角形),并在屏幕上输出0<a,b,c<200输入数据时进行有效性检验。
用C或Java或其它语言写出源程序。
三、实验步骤:
①划分等价类,得到等价类表。
等价类表格式如下:
②运用弱健壮等价类测试用例设计法设计测试用例,得到测试用例表。
测
③执行测试,填写软件缺陷报告。
简单软件缺陷报告格式如下:。
实验二 黑盒测试(判定表法)
广西师范大学计信学院《软件测试技术》课程实验实验报告题目:黑盒测试法——判定表法班级:10计本1班学号:201012301006姓名:焦德伟完成日期:2012/10/17实验二黑盒测试法——判定表法实验目的:1.掌握因果图、判定表的方法2.掌握按判定表设计测试用例实验时间:2学时实验内容:1、题目一:隔一天日期问题功能描述:输入年份、月、日;输出:输入日期在日历上的隔一天日期。
如输入1912年12月15日,应输出1912年12月17日。
要求:(1) 读源码并分析程序,给出问题规定的可能采取的操作(即列出所有的动作桩)。
所有的动作桩:(1)、年份超过界限,请重新输入a1(2)、月份超过界限,请重新输入a2(3)、日期超过界限,请重新输入a3(4)、本月为二月,请重新输入日期a4(5)、month+1 and day=1 a5(6)、month+1 and day=2 a6(7)、day=day+2 a7(8)、year++ and month=1and day=1 a8(9)、year++ and month=1and day=2 a9 (9)、输入非法a10 (2) 画出简化后的决策表,设计测试用例。
实验的决策表:条件桩:年份越界:Y1月份越界M1日期越界D1闰年:Y2平年:Y3月份二月:M2月份为十二月:M3月份为30天每月:M4月份为31天非十二月:M5日期小于27:D7日期为27:D2日期为28:D3日期为29:D4日期为30:D5日期为31:D6实验测试用例:测试用例:(3)执行测试用例,进行测试记录和缺陷统计。
实验测试记录的部分效果:缺陷报告书:缺陷统计:总过19组数据,其中10组出现错误!。
黑盒测试实验报告
黑盒测试实验报告一、实验内容计算日期是星期几已知公元1年1月1日是星期一。
请编写一个程序,只要输入年月日,就能自动回答当天是星期几。
要求:为测试该程序的方便,请将计算星期的算法尽量放入一个函数中,输入和输出检查可用其它函数来处理。
为简单起见,不考虑公元前的日期。
提示:(a)解答思路:计算输入日期与公元1年1月1日所相差的天数,具体如下:总天数=公元1年到输入日期上一年年底天数+输入年份的1月到上月月底天数+输入日期的天数(b)闰年满足条件(year%4==0)&&(year%100!=0)||(year%400==0)(1)分析各种输入情况,结合程序输出结果,进行等价类划分,并给出详细测试用例(2)根据(1)所划分的等价类,进行边界值分析,并给出具体的测试用例(3)决策表测试法①列出输入变量month、day、year的有效等价类;(条件桩)②分析程序的规格说明,给出问题规定的可能采取操作;(动作桩)③画出决策表(简化)④根据决策表,给出详细测试用例二、实验要求(1)根据题目要求编写测试用例(2)撰写实验报告(3)有关的实现程序请附到实验报告中(4)实验报告命名规则:学号后两位+姓名_黑盒实验三、实验报告(1)程序代码#include <iostream>using namespace std;void main(){int year, month, day;cout<<"请输入年份:"<<endl;cin>>year;cout<<"请输入月份:"<<endl;cin>>month;cout<<"请输入日期:"<<endl;cin>>day;int i, num=0,total, total1, total2;for(i=1; i<year; i++){if((i%4==0)&&(i%100!=0)||(i%400==0))num++;}total1 = 365*(year-num-1) + 366*num;if((year%4==0)&&(year%100!=0)||(year%400==0)) {switch(month){case 1:total2 = 0;break;case 2:total2 = 31;break;case 3:total2 = 60;break;case 4:total2 = 91;break;case 5:total2 = 121;break;case 6:total2 = 152;break;case 7:total2 = 182;break;case 8:total2 = 213;break;case 9:total2 = 244;break;case 10:total2 = 274;break;case 11:total2 = 305;break;case 12:total2 = 335;break;}}else{switch(month){case 1:total2 = 0;break;case 2:total2 = 31;break;case 3:total2 = 59;break;case 4:total2 = 90;break;case 5:total2 = 120;break;case 6:total2 = 151;break;case 7:total2 = 181;break;case 8:total2 = 212;break;case 9:total2 = 243;break;case 10:total2 = 273;break;case 11:total2 = 304;break;case 12:total2 = 334;break;}}total = total1 + total2 + day;int week;week = total % 7;switch(week){case 0:cout<<"今天是星期天"<<endl;break;case 1:cout<<"今天是星期一"<<endl;break;case 2:cout<<"今天是星期二"<<endl;break;case 3:cout<<"今天是星期三"<<endl;break;case 4:cout<<"今天是星期四"<<endl;break;case 5:cout<<"今天是星期五"<<endl;break;case 6;cout<<"今天是星期六"<<endl;break;}}测试用例原因:C1:year为闰年C2:month为1、3、5、7、8、10、12 C3:month为4、6、9、11C4:month为2C5:1<=day<=27C6:day=28C7:day=29C8:day=30C9:day=31结果:E1:输出今天是星期几。
白盒测试和黑盒测试实验报告
软件质量保证与测试实验指导计算机工程学院测试环境配置1.settingJunit(1)startEclipseSelectwindows-preferences-java-buildpath–classpathvariables(2)clicknew,thefigureofnewvariableentryisshown.(3)name JUNIT_LIBselectfile-选择JUnit插件所对应的JAR文件所在地,在Eclipse的安装目录的plugins目录中2.JUNIT的组成框架其中,junit.framework和junit.runner是两个核心包。
junit.framework负责整个测试对象的框架junit.runner负责测试驱动Junit的框架又可分为:A、被测试的对象。
B、对测试目标进行测试的方法与过程集合,可称为测试用例(TestCase)。
C、测试用例的集合,可容纳多个测试用例(TestCase),将其称作测试包(TestSuite)。
D、测试结果的描述与记录。
(TestResult)。
E、每一个测试方法所发生的与预期不一致状况的描述,称其测试失败元素(TestFailure)F、JUnitFramework中的出错异常(AssertionFailedError)。
JUnit框架是一个典型的Composite模式:TestSuite可以容纳任何派生自Test 的对象;当调用TestSuite对象的run()方法是,会遍历自己容纳的对象,逐个调用它们的run()方法。
3.JUnit中常用的接口和类Test接口——运行测试和收集测试结果Test接口使用了Composite设计模式,是单独测试用例(TestCase),聚合测试模式(TestSuite)及测试扩展(TestDecorator)的共同接口。
它的publicintcountTestCases()方法,它来统计这次测试有多少个TestCase,另外一个方法就是publicvoid run(TestResult),TestResult是实例接受测试结果,run方法执行本次测试。
实验二 黑盒测试(二)(教学资料)
南京信息工程大学软件质量控制和测试实验(实习)报告实验(实习)名称黑盒测试(一)实验(实习)日期 2011-11-28 得分指导老师徐旦华系计算机与软件学院专业软件工程班级 1班姓名刘荣静学号 20091344007 一、实验目的理解黑盒测试的基本方法,掌握用判定表、因果图法测试用例的设计方法。
二、实验时间2学时三、实验准备PC 机一套,要求安装windows 操作系统和Office等工具软件;四、实验内容1.题目一:某软件的一个模块的需求规格说明书中描述:a)年薪制员工:严重过失,扣年终风险金的4%;过失,扣年终风险金的2%。
b)非年薪制员工:严重过失,扣当月薪资的8%;过失,扣当月薪资的4%。
请绘制出因果图和判定表,并给出相应的测试用例。
2.题目二:有一个处理单价为2.5元的盒装饮料的自动售货机软件。
若投入2.5元硬币,按“可乐”、“啤酒”、或“奶茶”按钮,相应的饮料就送出来。
若投入的是3元硬币,在送出饮料的同时退还5角硬币。
请绘制出因果图和判定表,并给出相应的测试用例。
五、题目一(1)题目一的因果图原因结果C1:年薪制员工E1:扣除年终风险金的4%C2:严重过失C1:年薪制员工E2: 扣除年终风险金的2%C3:过失C4:非年薪制员工E3:扣除当月月薪资的8%C2:严重过失C4:非年薪制员工E4:扣除当月月薪资的4%C3:过失画出因果图:∧∧E E∧∧(2)题目一的判定表1、列出所有的条件桩和动作桩条件桩:C1:是否为年薪制员工?C2:是否为严重过失?C3:是否为过失?动作桩:A1:扣除年终风险金的4%A2:扣除年终风险金的2%A3:扣除当月月薪资的8%A4:扣除当月月薪资的4%A5:无扣除A6:不可能2、确定规则的个数●输入条件个数:3●每个条件的取值:“是”或“否”●规则个数:2*2*2=81 2 3 4 5 6 7 8条件是否为年薪制员工?Y Y Y Y N N N N是否为严重过失?Y Y N N Y Y N N是否为过失?Y N Y N Y N Y NC1C2C4C3E1 E2E3 E4动作扣除年终风险金的4%√扣除年终风险金的2%√扣除当月月薪资的8%√扣除当月月薪资的4%√无扣除√√不可能√√1 2 3 4 5 6条件是否为年薪制员工?—Y Y —N N是否为严重过失?Y Y N N Y N是否为过失?Y N Y N N Y动作扣除年终风险金的4%√扣除年终风险金的2%√扣除当月月薪资的8%√扣除当月月薪资的4%√无扣除√不可能√测试用例编号输入数据预期输出1 年薪制职员犯有严重过扣除年终风险金的4%失2 年薪制职员犯有过失 扣除年终风险金的2%3 职员没有犯任何过失 无扣除4 非年薪制职员犯有严重过失扣除当月月薪资的8% 5非年薪制职员犯有过失扣除当月月薪资的4%六、 题目二(1) 题目二的因果图原因 中间状态 结果C1:投入2.5元的硬币 1、已投币 E1:退还5角硬币C2:投入3元的硬币 2、已按钮 E2:送出“可乐”饮料 C3:按“可乐”按钮 E3:送出“啤酒”饮料 C4:按“啤酒”按钮 E4:送出“奶茶”饮料 C5:按“奶茶”按钮∨E∧∧ ∧∨E∧(21 2 3 4 5 6 7 8 9 10 11 输投入2.5元硬币1111C1C4C3 C2C5 E1 E2E3E41 2入投入3元硬币0 0 0 0 1 1 1 1 0 0 0 按可乐按钮 1 0 0 0 1 0 0 0 1 0 0 按啤酒按钮0 1 1 0 0 1 1 0 0 1 0 按奶茶按钮0 0 1 0 0 0 1 0 0 0 1中间已投币 1 1 1 1 1 1 1 1 0 0 0 已按钮 1 1 1 0 1 1 1 0 1 1 1输出退还5角0 0 0 0 1 1 1 0 0 0 0 送出可乐 1 0 0 0 1 0 0 0 0 0 0 送出啤酒0 1 0 0 0 1 0 0 0 0 0 送出奶茶0 0 1 0 0 0 1 0 0 0 0 退回投进去的钱0 0 0 1 0 0 0 1 0 0 0 给出提示信息0 0 0 1 0 0 0 1 1 1 1用例编号输入数据预期结果1 2.5元、可乐按钮送出可乐2 2.5元、啤酒按钮送出啤酒3 2.5元、奶茶按钮送出奶茶4 2.5元给出提示信息,找回2.5元5 3元、可乐按钮找回0.5元,送出可乐6 3元、啤酒按钮找回0.5元,送出啤酒7 3元、奶茶按钮找回0.5元,送出奶茶8 3元给出提示信息,找回3元9 可乐按钮给出提示信息10 啤酒按钮给出提示信息11 奶茶按钮给出提示信息七、实验体会通过两次实验理解了黑盒测试的基本方法,并掌握了用判定表、因果图法测试用例的设计方法。
《软件测试技术》黑盒测试实验
《软件测试技术》黑盒测试实验一、实验目的1、能熟练应用黑盒测试技术中的等价类划分法、边界值分析法、因果图法和决策表法进行测试用例设计。
2、对测试用例进行优化设计二、实验环境Windows系统+ Office工具三、实验任务1.电话号码问题2.三角形问题3.工资问题4. 自动售货机问题四、实验步骤1.电话号码问题某城市电话号码由三部分组成,分别是:地区码:空白或四位数字;前缀:非0或1开头的四位数字;后缀:四位数字。
假设被测程序接受符合上述规定的电话号码,拒绝所有不符合规定的电话号码,使用等价类划分方法进行测试用例设计。
表1 电话号码等价类表(除了表头即第一行外,其它都可以修改)表2 电话号码用例表(可以根据实际情况增加行或者删除行)2. 三角形问题输入三个整数:A、B、C,分别作为三角形的三条边的长度,取值范围[1,100],判断三条边构成的三角形是等腰的、等边的、一般三角形或者非三角形。
分别设计标准性边界值分析的测试用例和健壮性边界值分析的测试用例。
(1)标准性边界值测试用例(根据实际情况自行调整表格行数)(2)健壮性边界值测试用例(根据实际情况自行调整表格行数)3.工资问题某软件的一个模块的需求规格说明书中描述:(1)年薪制员工:严重过失,扣年终风险金的4%;过失,扣年终风险金的2%。
(2)非年薪制员工:严重过失,扣当月薪资的8%;过失,扣当月薪资的4%。
请绘制出因果图和判定表,并给出相应的测试用例。
原因:C1. 年薪制员工C2. 严重过失中间状态:11. 非年薪制员工12. 过失结果:E1. 扣年终风险金的4%E2. 扣年终风险金的2%E3. 扣当月薪资的8%E4. 扣当月薪资的4%4. 自动售货机问题有一个处理单价为1元5角钱的盒装饮料的自动售货机软件,若投入1元5角硬币,按下“可乐”、“雪碧”或“橙汁”按钮,相应的饮料就送出来。
若投入的是2元硬币,在送出相应的饮料同时退换5角硬币。
请绘制出决策表。
软件测试实验报告-黑盒测试等价划分类
A为闰年且 6 b=2,c:1~29
A为平年且 7 b=2,c:1~28
覆盖有效等价类的测试用类
a
b
c
2013
10
9
2012
2
28
2013
2
28
2013
9
15
覆盖无效等价类的测试用类
a
b
c
0.2013
10
9
2013
0.1
9
2013
10
0.9
0.2013
0.1
9
0.2013
10
0.9
2013
0.1
0.9
if(a+b>c||a+c>b||b+c>a)cout<<"a,b,c 的值不能构成三角形!"; 8 if(a==b&&b==c)cout<<"是等边三角形!"; 9 if(a==b||b==c||a==c)cout<<"是等边三角形!"; 11 if(a<>b&&b<>c&&c<>a)cout<<"一般三角形!"; 12
5
1、2、3、4、5
4
1、2、3、4、6
覆盖无效等价类的测试用类
a
b
ห้องสมุดไป่ตู้
c
覆盖无效等价类号码
0
4
5
7
3
0
5
8
3
4
0
9
3
4
7
10
7
软件测试黑盒测试实验报告
软件测试黑盒测试实验报告软件测试黑盒测试实验报告一、引言软件测试是软件开发过程中不可或缺的一部分,旨在发现和纠正软件中的错误和缺陷。
黑盒测试作为软件测试的一种方法,主要关注软件的功能和用户需求,而不考虑内部结构和实现细节。
本实验旨在通过黑盒测试方法,对某一软件进行测试,并分析测试结果,以评估软件的质量和可靠性。
二、实验目的本实验的主要目的是通过黑盒测试方法,对软件的功能进行全面而系统的测试,以发现潜在的错误和缺陷。
同时,通过测试结果的分析,评估软件的质量和可靠性,并提出改进建议。
三、实验环境和工具本实验使用的软件是一个在线购物系统,实验环境为Windows操作系统。
测试工具包括Selenium WebDriver和Junit。
四、实验步骤1. 确定测试用例:根据软件的功能和用户需求,制定一系列测试用例,覆盖软件的各个功能模块和边界条件。
2. 搭建测试环境:安装并配置Selenium WebDriver和Junit,以便进行自动化测试。
3. 编写测试脚本:根据测试用例,使用Java语言编写测试脚本,实现对软件功能的模拟和测试。
4. 执行测试脚本:运行测试脚本,对软件进行自动化测试。
记录测试过程中的输入、输出和错误信息。
5. 分析测试结果:根据测试脚本的执行结果,分析软件的功能是否符合预期,是否存在错误和缺陷。
六、实验结果与分析在本次实验中,共编写了100个测试用例,并执行了相应的测试脚本。
通过对测试结果的分析,得出以下结论:1. 软件的基本功能测试通过率达到90%以上,说明软件在满足用户需求方面表现良好。
2. 在边界条件测试中,发现了一些潜在的错误和缺陷,例如在输入非法字符时,软件没有给出相应的错误提示。
3. 在性能测试中,软件的响应时间较长,需要进一步优化。
4. 在安全性测试中,软件存在一些漏洞,需要加强对用户信息的保护。
综上所述,软件在功能方面表现良好,但仍存在一些错误和缺陷,需要进一步改进和优化。
软件测试实验报告(测试用例 代码 截图)
软件测试实验报告(测试用例代码截图)计算机软件测试技术实验报告系别电子信息系专业计算机科学与技术班级学号姓名指导教师万聪2010年12月19月实验一黑盒测试用例设计一(实验内容:1( 三角形问题的等价类测试和边界值分析测试2( NextDate()函数决策表法测试二(实验要求:给出测试用例和测试结果三(实验步骤及结果:3.1(三角形)实验代码(c)#include<stdio.h> #include<stdlib.h>int a=0,b=0,c=0;void shuru();void panduan(int a1,int b1,int c1);void main(){char se;shuru();panduan(a,b,c);while(1){printf("是否要继续y or n :");scanf("%c",&se);if(se=='\n') scanf("%c",&se);switch(se){case 'y':shuru();panduan(a,b,c);break;case 'n':return;}}}void shuru(){printf("Please enter 三角形三边 (a,b,c)\n"); scanf("%d,%d,%d",&a,&b,&c);while((a<1||a>100)||(b<1||b>100)||(c<1||c>100)){if(a==0||b==0||c==0) printf("边长不能为0\n");else if(a<0||b<0||c<0) printf("边长不能为负\n");else printf("Please enter 1-100之间的整数\n");scanf("%d,%d,%d",&a,&b,&c);}}void panduan(int a1,int b1,int c1) {int m1=a1+b1;int m2=a1+c1;int m3=b1+c1;if(a1>=m3||b1>=m2||c1>=m1) printf("非三角形\n");else if(a1!=b1&&a1!=c1&&b1!=c1) printf("一般三角形\n");else if((a1==b1&&b1!=c1)||(a1==c1&&a1!=b1)||(c1==b1&&a1!=c1)) printf("等腰三角形\n");else if(a1==b1&&b1==c1) printf("等边三角形\n"); }3.2测试用例和结果(反映在图中)测试用例输入a,b,c 输出1 4,5,6 一般三角形2 2,3,6 非三角形3 4,4,7 等腰三角形4 6,6,6 等边三角形5 4,0,6 边长不能为06 4,-5,6 边长不能为负7 101,101,101 请输入1-100之间的整数图形结果:3.3(NextDate())实验代码(c)#include<stdio.h>#include<stdlib.h>#include<time.h>void main(){int year;int month,day;int leap;//标志是闰年还是平年,为1时是闰年,为2时是平年time_t t;//本来以下是用来判断格式输入是否正确的,但是结果不理想struct tm stm;//Awhile(1){//循环测试printf("请输入年(yyyy)/月(mm)/日(dd)\n");scanf("%d/%d/%d",&stm.tm_year,&stm.tm_mon,&stm.tm_mday);//B year=stm.tm_year;month=stm.tm_mon;day=stm.tm_mday;//Ct=mktime(&stm);//Dprintf("*****输出结果*****\n");if(t!=-1)//E有问题,不管输入格式是什么,t永远是-1{printf("输入的日期时间格式出错!\n");continue;}if(year%4==0)//年份判断{if(year%100==0){if(year%400==0){leap=1;printf("%ld年%d月%d日是闰年\n",year,month,day);}else{leap=2;printf("%ld年%d月%d日是平年\n",year,month,day); }}else{leap=1;printf("%ld年%d月%d日是闰年\n",year,month,day); }}else{leap=2;printf("%ld年%d月%d日是平年\n",year,month,day); }if(month==2){if(leap==1){printf("该月有29天\n");if(day>29){printf("对不起!您输入的日期超出该月范围\n"); continue;}else if(day==29){month=month+1;day=1;}else day=day+1;}if(leap==2){printf("该月有28天\n");if(day>28){printf("对不起!您输入的日期超出该月范围\n"); continue;}else if(day==28){month=month+1;day=1;}else day=day+1;}}else if(month==4||month==6||month==9||month==11){printf("该月有30天\n");if(day>30){printf("对不起!您输入的日期超出该月范围\n"); continue;}else if(day==30){month=month+1;day=1;}else day=day+1;}else{printf("该月有31天\n");if(day>31){printf("对不起~超出该月范围\n");continue;}else if(day==31){if(month==12&&day==31){year=year+1;month=1;day=1;}else{month=month+1;day=1;}}else day=day+1;}printf("NEXT日期:%ld年%d月%d日\n",year,month,day); }}3.4测试用例和结果(反映在图中)决策表测试用例 month day year 预期输出Test1~3 6 16 2001 2001/6/17Test4 6 30 2001 2001/7/1Test5 6 31 2001 对不起~超出该月范围Test6~9 1 17 2010 2010/1/18Test10 1 31 2013 2013/2/1Test 11~14 12 31 2010 2010/1/1Test15 2 28 2004 2004/2/29Test16 2 29 2004 2004/3/1Test17 2 28 2001 2001/3/1Test18 2 30 2001 对不起~超出该月范围界面效果:实验二白盒测试用例设计一(实验内容:求解一元二次方程程序控制流测试二(实验要求:给出控制流测试用例和测试结果三(实验步骤及结果:3.1实验代码(c)#include<stdio.h>#include<stdlib.h>#include<math.h>void main(){float a,b,c,x,y;float mid,x1,x2;y=a*x*x+b*x+c;printf("*************************************\n"); printf("二元一次方程的求解问题\n");printf("**************************************\n"); while(1){printf("请输入y方程中参数a,b,c: \n");scanf("%f,%f,%f",&a,&b,&c);if(a!=0){mid=b*b-4*a*c;if(mid>0){x1=(-b+sqrt(mid))/(2*a);x1=(-b-sqrt(mid))/(2*a);printf("该方程有两个解:x1=%f,x2=%f\n",x1,x2);//printf("y=(%f*%f*%f)+(%f*%f)+(%f)\n",a,x1,x1,b,x1,c);//printf("y=(%f*%f*%f)+(%f*%f)+(%f)\n",a,x2,x2,b,x1,c);}if(mid==0){x1=-b/(2*a);x2=x1;printf("该方程两个解相同:x1=x2=%f\n",x2);printf("y=(%f*%f*%f)+(%f*%f)+(%f)\n",a,x1,x1,b,x1,c);}if(mid<0){printf("该方程没有解\n");}}else printf("该方程不是二元方程,可能是一元一次方程\n");}}3.2测试用例和结果(反映在图中)测试用例 x,y,z a!=0 mid>0 mid==0 输出结果1 2,5,3 真真假该方程有两个解2 1,2,1 真假真该方程有两个相同解3 4,2,1 真假假该方程没有解4 0,2,1 假该方程不是二元方程,可能是一元一次方程图形结果:实验三基于缺陷模式的软件测试一(实验内容:C++语言、Java语言缺陷模式测试 (2学时) 二(实验要求:给出测试用例和测试结果三(实验步骤及结果:3.1实验代码(java)package hl.fengye.tt;public class base{//没必要的方法调用,System.exit()是没有必要的,应该抛出异常public String square(String x){try{int y=Integer.parseInt(x.toLowerCase());return y*y+"";}catch(NumberFormatException e){e.printStackTrace();System.exit(1);return "";}}//显示垃圾回收(缺陷)public String multiply(String x,int n){if(n<=0) return "";StringBuffer buf=new StringBuffer();while(n-->0){buf.append(x);}return buf.toString();}public String multiplyGc(String x,int n){ System.gc();//显示运行结果return multiply(x,n);}//字符串的低效操作(连接)public void connection(){String filed="东北大学秦皇岛分校 4080420 黄磊"; //this is badString s="";//System.out.print(s);//Startfor(int i=0;i<filed.length();++i){s=s+filed.charAt(i);//追加}System.out.print(s+'\n');//Stop1}public void connection2(){String filed="东北大学秦皇岛分校 4080420 黄磊";//this is betterString s="";StringBuffer buf=new StringBuffer();for(int i=0;i<filed.length();++i){buf.append(filed.charAt(i));}String ss=buf.toString();System.out.print(ss+'\n');//Stop2}public static void main(String[] args) {String h;base pp=new base();h=pp.square("100");System.out.print(h+"\n");String s="hello word!";h=pp.multiply(s, 2);//System.out.print(h+"\n");h=pp.multiplyGc(s,2);System.out.print(h+"\n");//以纳秒为单位计算的:long startTime = System.nanoTime();//获取当前时间pp.connection();long endTime = System.nanoTime();System.out.println("程序运行时间:"+(endTime-startTime)+"ms");long startTime2 = System.nanoTime();//获取当前时间pp.connection2();long endTime2 = System.nanoTime();System.out.println("程序运行时间:"+(endTime2-startTime2)+"ms"); }}3.2测试用例和结果(反映在图中)显示垃圾回收部分:测试用例输入String s ,int n 输出结果1 hello word !,2 hello word! hello word!2 ni hao ,1 ni hao3 love you ,0 (null)图形显示:低效字符串操作部分:测试用例输入String s 输出时间bad(ms) good(ms)1 hl 441694 271302 hello word 477785 378673 东北大学秦皇岛分校 4080420 黄磊 456245 392444 (空格) 313135 51604部分图形展示:实验四系统测试一(实验内容:数据库应用系统性能测试二(实验要求:给出响应时间、吞吐量测试用例和结果三(实验步骤及结果:3.1实验代码(java)import java.sql.Connection;import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement;public class huanglei {/*** @param args* @throws Exception*/public void execute() throws Exception{Class.forName("com.mysql.jdbc.Driver");Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root");con.setAutoCommit(false);Statement st = con.createStatement();//st.execute("create table city (name varchar(20) not null)");for(int i = 100;i>0;i--){String str = "insert into city values('city"+i+"','huangeli','hebei')";System.out.println(str);st.addBatch(str);}//rs='select * from city';st.executeBatch();mit();}public static void main(String[] args) {// TODO Auto-generated method stubtry {new Luncher().execute();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}3.2测试用例和结果(反映在图中)测试用例线程数循环次数响应时间(seconds)吞吐结果1 100 10 1 592.002/minute2 50 5 1 293.232/minute1 100 102 586.61/minute图形展示:实验总结:通过这些课时的实验,了解了一些软件测试的基本含义,学会了一些基本测试步骤的设计和用例的构造。
软件工程实验报告
软件工程实验报告学号:姓名:专业:年月实验一:白盒测试一、实验目的巩固白盒测试知识,对于给定的待测程序,能熟练应用基本控制流覆盖方法设计测试用例;能够执行白盒测试过程,并撰写白盒测试分析报告。
二、实验内容白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。
测试规划基于产品内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试方法。
白盒测试将被测程序看做一个打开的盒子,测试者能够看到被测源程序,可以分析被测程序的内部结构,此时测试的焦点集中在根据其内部结构设计测试用例。
白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是“基于覆盖率的测试”。
测试内容包括语句覆盖测试、分支覆盖测试、条件覆盖测试、分支/条件覆盖测试、条件组合覆盖测试和基本路径测试。
三、程序代码要求:实现对不少于10个随机输入的数的冒泡排序算法。
#include<iostream>using namespace std;int main(){double a[100];int N;int i = 0, j = 0;cin >> N;//排序元素的个数for (i = 0; i <= N; i++){cin >> a[i];}for (i = 0; i < N-1 ; i++) {for (j = 0; j < N - 1 - i; j++){if (a[j] > a[j + 1]) {int tmp;tmp = a[j];a[j] = a[j + 1];a[j + 1] = tmp;}}}for (i = 0; i < N; i++){cout << a[i] <<" ";}cout << endl;return 0;}四、程序流程图五、测试内容(1)语句覆盖测试测试结果:①②测试结果分析:输入元素时需要输入的元素个数大于最初输入的元素个数。
黑盒测试——等价类划分法
实验二: 黑盒测试——等价类划分法【实验环境】Windows 10 操作系统,C,C++,C#、Java或Python语言开发环境(IDE)。
【实验类型】设计型【实验目的】1.认识黑盒测试方法中等价类划分测试方法原理2.掌握黑盒测试方法中等价类划分测试方法过程【实验内容】【实验材料】1.三角形问题问题描述:三角形问题接受三个整数,a、b和c作为输入,用作三角形的边。
程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形或非三角形。
作为输入:三角形的三条边必须满足如下条件:C1:1<=a<=100C2:1<=b<=100C3:1<=c<=100C4:a<b+cC5:b<a+cC6:c<a+b2.NextDate函数问题描述:NextDate是一个由三个变量(月份、日期和年份)的函数。
函数返回输入日期后边的那个日期。
作为输入:变量月份、日期和年都具有整数值,满足以下条件。
C1:1<=月份<=12C2:1<=日期<=31C3:1912<=年<=20503.佣金问题问题描述:前亚利桑那洲境内的一位步枪销售商销售密苏里州制造商制造的步枪机(lock)、枪托(stock)和枪管(barrel)。
枪机卖45美元,枪托卖30美元,枪管卖25美元。
销售商每月至少要售出一支完整的步枪,且生产限额是大多数销售商在一个月内可销售70个枪机、80个枪托和90个枪管。
每访问一个镇子后,销售商都给密苏里州步枪制造商发出一份很短的电报,通知几个枪机被售出。
这样步枪制造商就知道当月的销售情况,并计算销售商的佣金如下:不到(含)1000美元的部分为10%;1000(不含)~1800(含)美元的部分为15%;超过1800美元的部分为20%。
佣金程序生成月份销售报告,汇总售出的枪机、枪托和枪管总数,销售商的总销售额以及佣金。
2021年黑盒测试实验报告[共25页]
《软件测试技术》实验报告实验序号:04实验项目名称:黑盒测试一、实验目的及要求掌握用等价类、边界值分析法、因果图的方法设计测试用例二、实验设备(环境)及要求实验在计算机系的机房进行,安装了VC6.0,Java SDK,TurboC等软件,学生能采用C语言,C++,或Java语言进行编程。
三、实验内容与步骤任务一:佣金问题问题描述如下:一酒水销售公司指派销售员销售各种酒水。
白酒卖168元瓶,红酒卖120元瓶,啤酒卖5元瓶。
白酒每月的供应量为5000瓶,红酒为3000瓶,啤酒为30000瓶,各个销售员每月至少要售出白酒50瓶,红酒30瓶,啤酒300瓶。
月末,每个销售员上报他所在区域的销售业绩。
这样酒水销售公司就知道了当月的销售情况,并根据销售额计算佣金提成如下:2万以下(含):4%;2万(不含)~4.5万(含):1%4.5万以上(不含):0.5%这样,佣金程序生成月份销售报告,汇总售出的白酒、红酒和啤酒总数,销售公司的总销售额和各个销售员的佣金。
这个问题分为三个不同的部分:输入数据部分,用来处理输入数据的有效性;销售额计算部分;佣金(提成)计算部分.1、充分考虑输入有效性校验,编写佣金问题的代码;2、按照等价类划分的思想,设计等价类测试用例;1)佣金问题中,首先分析输入和输出,注意分析佣金问题中给出和隐含的对输入条件的要求:2)针对输入进行等价类划分,形成等价类列表,并为每一个等价类编号;3)从等价类划分的表格中设计测试用例:为有效等价类设计测试用例,为每一个无效等价类至少设计一个测试用例3、执行测试,记录发现的问题。
任务二:下一天问题1、对于NextDate问题,分析它的输入限制;2、从输入限制的边界设计测试用例;3、执行测试,记录结果。
任务三:自动售货机问题有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
其规格说明如下:若投入5角钱或1元钱的硬币,押下[橙汁]或[啤酒]的按钮,则相应的饮料酒送出来。
软件测试实验报告(例)
本科实验报告课程名称:软件测试技术实验项目:软件测试技术试验实验地点:实验楼专业班级:学生姓名:指导教师:谢红薇2015年10月14 日太原理工大学学生实验报告int dowork(int x,int y,int z){int k=0,j=0;if((x>0)&&(z<10)){k=x*y-1;j=sqrt(k);}if((x==4)||(y>5))j=x*y+10;j=j%3;return j;}void main(){int x, y ,z,j;printf("输入x,y,z的值");scanf("%d%d%d",&x,&y,&z);j=dowork(x,y,z);printf("j的值%d",j);}3、设计用例并运行记录分析设判定条件M=(x>0)&&(z<10)N=(x==4)||(y>5)设路径P1( abcdefhijl)=M and NP2(abcdefhkl)=M and /NP3(abgijl)=/M and NP4(abgkl)=/M and/N1.语句覆盖输入{x=4,y=8,z=9} 输出{j=0} 覆盖路径P1(abcdefhijl)2.判定覆盖输入{x=4,y=8,z=9} 输出{j=0} 覆盖路径P1(abcdefhijl)输入{x=4,y=4,z=15} 输出{j=0} 覆盖路径P3(abgijl)3.条件覆盖对于第一个判定条件M,分割如下条件x>0取真时为T1,取假时为F1。
条件z<10取真时为T2,取假时为F2。
对于第二个判定条件N,分割如下条件x==4取真时为T3,取假时为F3。
条件y>5取真时为T4,取假时为F4。
测试用例取值条件具体取值通过路径输入{x=4,y=3,z=15}输出{j=1}T1,F2,T3,F4 x>0,z>=10,x==4,y<=5 P3(abgijl)输入{x=0,y=8,z=7}输出{j=1}F1T2,F3,T4 x<=0,z<10,x!=4,y>5 P3(abgijl)4.判定-条件覆盖测试用例取值条件具体取值判定条件通过路径输入{x=4,y=8,z=8} 输出{j=2,k=27} T1,T2,T3,T4 x>0,z<10,x==4,y>5 M,N P1(abcdefhijl)输入{x=0,y=3,z=15} 输出{j=0,k=0} F1F2,F3,F4 x<=0,z>=10,x!=4,y<=5/M,/N P4(abgkl)5.条件组合覆盖组合编号覆盖条件取值判定条件取值判定条件组合1 TI,T2 M x>0,z<10,M取真2 TI,F2 /M x>0,z>=10,M取假3 FI,T2 /M x<=0,z<10,M取假4 FI,F2 /M x<=0,z>=10,M取假5 T3,T4 N x==4,y>5,N取真6 T3,F4 N x==4,y<=5,N取真7 F3T4 N x!=4,y>5,N取真8 F3,F4 /N x!=4,y<=5,N取假测试用例测试用例取值条件覆盖路径覆盖组合T1,T2,T3,T4 P1(abcdefhijl) 1,5 输入{x=4,y=8,z=8}输出{j=0}输入{x=4,y=4,z=15}T1F2,T3,F4 P3(abgijl) 2,6 输出{j=2}F1,T2,F3,T4 P3(abgijl) 3,7 输入{x=0,y=8,z=8}输出{j=1}F1F2,F3,F4 P4(abgkl) 4,8 输入{x=0,y=3,z=15}输出{j=0}6.路径覆盖测试用例覆盖路径覆盖条件覆盖组合P1(abcdefhijl) T1,T2,T3,T4 1,5 输入{x=4,y=8,z=8}输出{j=0}输入{x=3,y=3,z=8}P2(abcdefhkl) T1F2,F3,F4 1,8 输出{j=2}P3(abgijl) F1,F2,F3,T4 4,7 输入{x=0,y=7,z=15}输出{j=1}P4(abgkl) F1F2,F3,F4 4,8 输入{x=0,y=4,z=15}输出{j=0}五、讨论心得在试验过程中,我们对于白盒测试还是没有熟练的掌握,还需要不断地练习,但是我们也已经收获了很多,特别是路径测试,我们掌握到了路径测试的一些方法,知道了划分路径的方法,,怎样设计测试用例。
黑盒测试实验报告
实验一黑盒测试一、实验目的通过对于实例程序的测试,熟悉功能性测试的基本方法。
二、实验要求(1)综合运用功能性测试方法(如边界值分析、等价类划分等方法)对被测程序进行测试,找出black.exe程序中存在的缺陷。
三、实验内容(1)对于blackBox.exe程序的测试步骤:①运行black.exe程序,如下图所示:②选择triangle program后(或nextdate program, commission program,要求至少做两个程序的测试),如下图所示:③点击create file names,如下图所示:提示输入测试用例文件,如1.txt后点击ok,1中的数据格式如下:(其中前3个数据表示输入的三条边,第4个数据表示预期的结果)如下图所示,输入执行结果的文件2.txt :再次点击ok,提示输入测试结果文件记录集的题头信息:sanjiaoxing,点击ok,完成测试前的准备工作。
④点击Run Test Cases File,运行测试;⑤测试后的统计信息如下图所示:⑥测试完成后,打开2.txt文件:(前3个条件表示输入的三条边,第4个表示预期结果,第5个表示测试结果,第6个表示测试结果与预期结果是否符合。
)2①运行black.exe程序②选择nextdate program,③点击create file names,如下图所示:提示输入测试用例文件,如3.txt后点击ok,3中的数据格式如下:如下图所示,输入执行结果的文件4.txt :④点击Run Test Cases File,运行测试;⑤测试后的统计信息如下图所示:⑥测试完成后,打开4.txt文件:1)案例描述:某三角形测试程序中需要输入三条表,若三边相等:等腰三角形,两边相等:等腰三角形;若三边不等:斜边边三角形。
案例第一步划分等价类。
第二步设计测试用例设三边分别为a,b,c2)案例描述:案例按月,日,年输入数据。
输出当天的下一天,第二步测试用例。
黑盒测试实验报告
黑盒测试实验报告黑盒测试实验报告引言:在软件开发过程中,测试是一个至关重要的环节。
而黑盒测试作为一种常见的测试方法,主要用于检验软件系统的功能性,而不关心其内部的实现细节。
本实验旨在通过黑盒测试方法,评估一个虚拟购物网站的功能性,并提出相关的改进建议。
一、测试目标与方法1.1 测试目标本次黑盒测试的主要目标是检查虚拟购物网站的主要功能是否正常运行,包括用户注册、商品浏览、购物车管理、订单生成等方面。
同时,也将关注一些特殊情况下的处理,如异常输入、非法操作等。
1.2 测试方法本次实验采用的是等价类划分法和边界值分析法相结合的黑盒测试方法。
通过对输入数据的划分和边界值的选择,设计测试用例,覆盖系统的各个功能模块,以尽可能发现潜在的问题。
二、测试用例设计2.1 用户注册功能测试针对用户注册功能,设计以下几个测试用例:- 输入合法的用户名、密码和邮箱,验证注册是否成功;- 输入已存在的用户名,验证系统是否能正确提示用户;- 输入非法的邮箱格式,验证系统是否能正确提示用户;- 输入非法的密码长度,验证系统是否能正确提示用户。
2.2 商品浏览功能测试针对商品浏览功能,设计以下几个测试用例:- 验证商品分类是否正确显示;- 验证商品列表是否按照价格、销量等条件进行排序;- 验证商品详情页是否能正常显示商品信息;- 验证商品搜索功能是否准确。
2.3 购物车管理功能测试针对购物车管理功能,设计以下几个测试用例:- 验证商品添加到购物车后,购物车中是否正确显示商品信息;- 验证购物车中商品数量的增加、减少是否正确计算;- 验证购物车中商品删除后,购物车是否能正确更新。
2.4 订单生成功能测试针对订单生成功能,设计以下几个测试用例:- 验证用户下单后,订单是否能正确生成;- 验证订单金额计算是否准确;- 验证订单状态更新是否正确。
三、测试结果与分析经过对以上测试用例的执行,得出以下测试结果:- 用户注册功能正常,能够正确提示用户输入错误;- 商品浏览功能正常,商品分类、排序和搜索功能均可正常运行;- 购物车管理功能正常,商品添加、数量更新和删除功能均可正常运行;- 订单生成功能正常,订单生成和金额计算功能均可正常运行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
黑盒测试实验二
1.1 实验类型
实验类型为验证型,3个学时。
1.2 实验目的
(1)能熟练应用黑盒测试技术进行测试用例设计;
(2)对测试用例进行优化设计;
1.3 背景知识
功能测试是指在对程序进行功能抽象的基础上,将程序划分成功能单元,然后在数据抽象的基础上,对每个功能单元生成测试数据进行测试。
进行功能测试时,被测程序被当作打不开的黑盒,因而无法了解其内部构造,因此又称为黑盒测试。
一、等价类测试
等价类测试方法是把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。
使用等价类划分方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。
等价类的划分有两种不同的情况:①有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。
②无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。
在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。
用等价类划分法设计测试用例步骤:
(1) 形成等价类表,每一等价类规定一个唯一的编号;
(2) 设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有有效等价类均被测试用例所覆盖;
(3) 设计一个新测试用例,使其只覆盖一个无效等价类,重复这一步骤直到所有无效等价类均被覆盖。
二、边界值测试
1.边界值分析
边界值分析是考虑边界条件而选取测试用例的一种功能测试方法。
边界值分析关注输入空间的边界,以标识测试用例,因为错误更可能出现在输入变量的极值附近。
边界值分析的基本思想是:利用输入变量的最小值(min)、略大于最小值(min+)、正常值(nom)、略小于最大值(max-)和最大值(max)来设计测试用例。
使用在最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量值。
在边界值分析法中获取测试用例的方法是:
1)每次保留程序中一个变量,让其余的变量取正常值,被保留的变量依次取min、min+、
nom 、max-和max 作为有效边界值;依次取min- 和max+作为无效边界值。
2)对程序中的每个变量重复 1) 。
三、基于决策表的测试
决策表(也称判定表)适合描述分析和表达针对不同逻辑条件的组合取值执行不同操作的情况。
决策表分为4部分,如下图所示:
其中:
(1)条件桩:列出问题的所有条件
(2)条件项:针对条件桩给出的条件列出所有可能的取值
(3)动作桩:列出问题规定的可能采取的操作
(4)动作项:指出在条件项的各组取值情况下应采取的动作
使用决策表标识测试用例,则决策表中的条件就是规格说明书中的输入条件,动作就是输出结果,而规则就是贯穿条件项和动作项的一列,一条规则要对应设计一个测试用例。
1.4 实验设备
主流PC 机一套,要求安装windows 操作系统、Visual Studio 2008开发工具和OFFICE 工具;
1.5 实验内容
题目一:日期问题
现有以下程序::该程序有一个NextDate 函数,NextDate 函数包含三个输入变量month 、day 、year ,分别作为输入日期的月份、日、年份,要求输入变量 month 、 day 和 year 均为整数值,并且同时满足下列条件:
①1≤month ≤12
②如果是闰年且month=2,则 1≤day ≤29;如果是平年且month=2,则1≤day ≤28;如果month ∈{1,3,5,7,8,10,12},则 1≤day ≤31; 如果month ∈{4,6,9,11},则1≤day ≤30
③1920≤year ≤2050
函数的输出:
(1)若条件① ~ ③同时满足,NextDate 函数的输出为输入日期后一天的日期。
例如,输入日期为 2011 年10月27日,即令输入变量year=2011,month=10,day=27,则NextDate 函数的输出为2011年10月28日。
规则
(2)若条件①~ ③中仅仅只有一个条件不满足,则NextDate 函数都会产生一个输出,指明相应的输入变量超出取值范围:
条件①不满足时,输出"month 的值不在1-12 范围当中,请重新输入"
条件②不满足时,输出"无效的输入日期,请重新输入"
条件③不满足时,输出"year的值不在1920-2050范围当中,请重新输入"
(3)若条件①~ ③中有两个或三个的条件同时不满足,NextDate 函数输出:" 无效的输入日期,请重新输入" 。
要求:
(1) 分析各种输入情况,列出输入变量month 、day 、year的有效等价类。
(2) 分析程序的规格说明,并结合以上等价类划分的情况和边界值分析法,设计测试用例。
(3)采用NUnit工具或手动进行测试。
1.6 实验步骤
(1)根据功能性测试技术设计测试用例,主要考虑等价类划分,结合边界值分析测试技术;
(2)根据所学知识确定优化策略(原则:用最少的用例检测出更多的缺陷、软件测试的充分性与冗余性考虑),优化测试用例集;
(3)根据设计的测试用例集,采用NUnit工具或手动进行测试;
1.7 实验要求
(1)根据题目要求编写测试用例;
(2)实验结果要求给出测试用例集测试结果;
(3)撰写实验报告;
1.8 实验思考
(1)在实际的测试中,如何设计测试用例才能达到用最少的测试用例检测出最多的缺陷;
(2)在进行用例设计时,如何考虑软件测试用例的充分性和减少软件测试用例的冗余性。