边界值分析法+场景法
- 格式:doc
- 大小:274.00 KB
- 文档页数:6
黑盒测试的7种测试方法黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。
很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
黑盒测试有7种测试方法分别是等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、功能图法、正交实验法。
下面将一一介绍。
等价类划分法等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
该方法是一种重要的,常用的黑盒测试用例设计方法。
1、划分等价类:等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。
并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。
因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。
取得较好的测试结果。
等价类划分可有两种不同的情况:有效等价类和无效等价类。
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。
利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:与有效等价类的定义恰巧相反。
设计测试用例时,要同时考虑这两种等价类。
因为,软件不仅要能接收合理的数据,也要能经受意外的考验。
这样的测试才能确保软件具有更高的可靠性。
2、划分等价类的方法:下面给出六条确定等价类的原则。
①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
黑盒测试-边界值分析法和场景法边界值分析法:实验1:某选课系统中规定每门课程的选修人数在[20,60]之间,小于20人不开设该门选修课,大于60人不接受后面的选课要求。
结合黑盒测试方法中等价类划分和边界值方法设计测试案例,并给出相应测试用例。
参考答案测试设计⏹输入变量:选课人数⏹测试输入⏹选择当选课人数分别为19,20,21, 59,60和61等几个边界点⏹再加上一个正常值点40实验 2:编写一个程序,输入某雇员的工作时间(以小时计)和每小时的工资数,计算并输出他的工资。
具体如下:✓若雇员周工作小时小于40小时(0,40),则按原小时工资0.7来计算薪水。
✓若雇员周工作小时等于40小时,则按原小时工资计算薪水。
✓若雇员周工作小时介于40到50((40,50))小时的,超过40的部分按照原小时工资的1.5倍来计算薪水。
✓若雇员周工作小时超过50小时([50,60)),则超过50的部分按原小时工资的3倍来计算薪水。
✓超出60小时或小于0小时,提示输入有误,重新输入。
结合黑盒测试方法中等价类划分和边界值方法设计测试案例,并给出测试用例和相应的测试结果。
参考答案程序参考答案:#include <stdio.h>void main(){float h;float g;float sum;sum=0.0;printf("请输入小时工资和工作小时数:"); scanf("%f",&h);scanf("%f",&g);if(h>0 && h<40)sum=0.7*h*g;else if (h>=40 && h<50)sum=40*g+(h-40)*1.5*g;else if(h>=50 && h<=60)sum=40*g+10*1.5*g+(h-50)*3*g;printf("%f",sum);}场景分析法实验 1 :下面是某高校选课系统的用例图,其“选课”用例的事件流描述如下:基本流:登录,选择课程,获取课程信息,选课,提交选课请求,显示选课结果。
边界值分析法
边界值分析法介绍:
>>边界值分析法是对输⼊或输出的边界值进⾏测试的⼀种测试⽅法。
它不是从⼀个等价类中任意选⼀个值作为代表,⽽是选⼀个或⼏个 值,使得该等价类的边界值成为测试关注⽬标,通常,边界值分析法作为等价类划分法的补充,则边界值分析法的测试⽤例往往来⾃ 于等价类的边界,针对边界的取值进⾏特别关注。
边界值分析法特性:
>>单单依靠等价类划分法设计测试⽤例并不能完全充分覆盖测试点,往往在边界区域更容易暴露程序问题
应⽤步骤:
>>确定边界。
通常,输⼊或输出等价类的边界即为边界值分析法着重测试的边界区域
>>选取等于、刚刚⼤于或刚刚⼩于等价类边界的值作为边界值测试数据,⽽并⾮选取等价类中的典型值或任意值
应⽤实例:
>>登录窗⼝需求说明⽤户名限制为6~10位⾃然数,⽤边界值分析法补充可得以下⽤例:。
黑盒测试是一种基于证明功能需求和用户最终需求的测试方法,设计黑盒测试用例的方法有如下8种:等价类划分法。
边界值分析法。
因果图法。
判定表驱动测试。
场景法。
功能图法。
错误推测法。
正交试验设计法。
在实际测试工作中,往往是综合使用各种方法才能有效地提高测试效率和测试覆盖率,这就需要认真掌握这些方法的原理,积累更多的测试经历,以有效地提高测试水平和测试效率。
下面就将主要介绍这8种设计黑盒测试用例的方法。
等价类划分等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据〔有效的和无效的〕划分成假设干个等价类。
然后从每个局部中选取具有代表性的数据当做测试用例进展合理的分类,测试用例由有效等价类和无效等价类的代表组成,从而保证测试用例具有完整性和代表性。
利用这一方法设计测试用例可以不考虑程序的部构造,以需求规格说明书为依据,选择适当的典型子集,认真分析和推敲说明书的各项需求,特别是功能需求,尽可能多地发现错误。
由于等价类是在需求规格说明书的根底上进展划分的,并且等价类划分不仅可以用来确定测试用例中的数据的输入输出的准确取值围,也可以用来准备中间值、状态和与时间相关的数据以及接口参数等,所以等价类可以用在系统测试、集成测试和组件测试中,在有明确的条件和限制的情况下,利用等价类划分技术可以设计出完备的测试用例。
这种方法可以减少设计一些不必要的测试用例,因为这种测试用例一般使用一样的等价类数据,从而使测试对象得到同样的反映行为。
对于等价类我们从以下几个方面讨论它的划分方法。
1、等价类划分等价类可以划分为有效等价类和无效等价类。
〔1〕有效等价类有效等价类指对于程序规格说明来说,是合理的、有意义的输入数据构成的集合。
利用有效等价类可以检验程序是否实现了规格说明预先规定的功能和性能。
有效等价类可以是一个,也可以是多个,根据系统的输入域划分假设干局部,然后从每个局部中选取少数有代表性数据当做数据测试的测试用例,等价类是输入域的集合。
边界值分析⽅法⼀.⽅法简介1.定义:边界值分析法就是对输⼊或输出的边界值进⾏测试的⼀种⿊盒测试⽅法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试⽤例来⾃等价类的边界。
2.与等价划分的区别1)边界值分析不是从某等价类中随便挑⼀个作为代表,⽽是使这个等价类的每个边界都要作为测试条件。
2)边界值分析不仅考虑输⼊条件,还要考虑输出空间产⽣的测试情况。
3.边界值分析⽅法的考虑:长期的测试⼯作经验告诉我们,⼤量的错误是发⽣在输⼊或输出范围的边界上,⽽不是发⽣在输⼊输出范围的内部。
因此针对各种边界情况设计测试⽤例,可以查出更多的错误。
使⽤边界值分析⽅法设计测试⽤例,⾸先应确定边界情况。
通常输⼊和输出等价类的边界,就是应着重测试的边界情况。
应当选取正好等于,刚刚⼤于或刚刚⼩于边界的值作为测试数据,⽽不是选取等价类中的典型值或任意值作为测试数据。
4.常见的边界值1)对16-bit 的整数⽽⾔ 32767 和 -32768 是边界2)屏幕上光标在最左上、最右下位置3)报表的第⼀⾏和最后⼀⾏4)数组元素的第⼀个和最后⼀个5)循环的第 0 次、第 1 次和倒数第 2 次、最后⼀次5.边界值分析1)边界值分析使⽤与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试⽤例。
例:测试计算平⽅根的函数--输⼊:实数--输出:实数--规格说明:当输⼊⼀个0或⽐0⼤的数的时候,返回其正平⽅根;当输⼊⼀个⼩于0的数时,显⽰错误信息"平⽅根⾮法-输⼊值⼩于0"并返回0;库函数Print-Line可以⽤来输出错误信息。
2)等价类划分:I.可以考虑作出如下划分:a、输⼊ (i)<0 和 (ii)>=0b、输出 (a)>=0 和 (b) ErrorII.测试⽤例有两个:a、输⼊4,输出2。
对应于 (ii) 和 (a) 。
b、输⼊-10,输出0和错误提⽰。
3.2.2 边界值分析方法举例例1:成绩报告生成程序现有一个学生标准化考试批阅试卷,产生成绩报告的程序。
其规格说明如下:程序的输入文件由一些有80个字符的记录组成,如右图所示,所有记录分为3组:1) 标题:这一组只有一个记录,其内容为输出成绩报告的名字。
2) 试卷各题标准答案记录:每个记录均在第80个字符处标以数字"2"。
该组的第一个记录的第1至第3个字符为题目编号(取值为1一999)。
第10至第59个字符给出第1至第50题的答案(每个合法字符表示一个答案)。
该组的第2,第3……个记录相应为第51至第100,第101至第150,…题的答案。
3) 每个学生的答卷描述:该组中每个记录的第80个字符均为数字"3"。
每个学生的答卷在若干个记录中给出。
如甲的首记录第1至第9字符给出学生姓名及学号,第10至第59字符列出的是甲所做的第1至第50题的答案。
若试题数超过50,则第2,第3……纪录分别给出他的第51至第100,第101至第150……题的解答。
然后是学生乙的答卷记录。
4) 学生人数不超过200,试题数不超过999。
5) 程序的输出有4个报告:a) 按学号排列的成绩单,列出每个学生的成绩、名次。
b) 按学生成绩排序的成绩单。
c) 平均分数及标准偏差的报告。
d) 试题分析报告。
按试题号排序,列出各题学生答对的百分比。
解答:分别考虑输入条件和输出条件,以及边界条件。
给出下表所示的输入条件及相应的测试用例。
输出条件及相应的测试用例表。
通过上面表中列出的43个测试用例可以发现程序中大部分常见的错误。
如果采用随机和任意方法设计测试用例,不一定会发现这些错误。
如果使用得当,采用边界分析法的测试用例是很有效的。
在边界情况复杂的情况下,要找出适当的测试用例还需针对问题的输入域、输出域边界、耐心细致的逐个考虑。
补充(错误推测法):例2:三角形问题的边界值分析测试用例在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。
边界值分析法⼀、定义边界值分析法就是对输⼊或输出的边界值进⾏测试的⼀种⿊盒测试⽅法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试⽤例来⾃等价类的边界。
边界值分析法是对等价类划分法做补充的⼀种⿊盒测试设计⽅法。
实践中,由于⼤量的错误发⽣在输⼊、输出值的边界上,所以,对于各种边界值进⾏测试⽤例的设计,可以查出更多的错误。
边值点的定义:上点:边界上的点,闭内开外(闭指域的边界是封闭的,即闭区间;开指域的边界是开放的,即开区间)。
离点:离上点最近的点称为离点。
开内闭外。
内点:域范围内的任意⼀点。
⼆、边界值和等价类的相关等价类划分法:将测试过程中的输⼊、输出、操作等相似内容分组,从每组中挑选具有代表性的内容作为测试⽤例,划分为有效等价类和⽆效等价类;边界值分析法:确认输⼊、输出的边界,然后取刚好等于、⼤于、⼩于边界的参数作为测试⽤例测试;他俩的定义就是不同,⼀个属于确认有有效区间,⼀个属于确认边界,联系就是等价类划分和边界值要⼀起考虑,边界值分析法属于等价类划分法的补充,任何等价区间都有边界,有边界就有等价区间。
三、三点分析法结合等价类划分的具体情况,针对边界值的选择就包括开区间、闭区间以及半开半闭区间。
(1). 闭区间:闭区间中的情况,上点为可以取值的点,在上点之间任取⼀点就是内点。
⽽紧邻上点范围之外的第⼀对点被称为离点(也称为外点)(2).半开半闭区间:半开半闭区间中,上点与内点的定义不变。
离点是开区间⼀侧上点内部范围内紧邻的点,⽽在闭区间⼀侧是上点外部范围内紧邻的点。
(3).开区间:开区间中,上点与内点的定义仍然不变。
⽽离点就是上点内部范围内紧邻的⼀对点。
总结为,上点就是区间的端点值,⽽内点就是上点之间任意⼀点。
对于离点,要分具体情况,如果开区间的离点,就是开区间中上点内侧紧邻的点;如果是闭区间的离点,就是闭区间中上点外侧紧邻的点。
所以,当⼤家在尝试针对划分好的等价类进⾏边界值取值的时候,⼀定要有适当的范围,不是根据我们的端点值往左右两侧随意选择测试值,⽽是也有科学的⽅法进⾏选择。
四、功能测试--边界值分析法
边界值分析法就是对输⼊或输出的边界值进⾏测试的⼀种⿊盒测试⽅法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试⽤例来⾃等价类的边界。
虽然边界值分析法是等价类划分法,但是这两种⽅法还有区别的。
1. 等价类划分法可以挑选等价类范围内任意⼀个数据作为代表,⽽边界值分析法要求每个边界值都要作为测试条件。
2. 边界值分析法不仅考虑输⼊条件,同样也要考虑输出产⽣的测试情况
举例 1:
18 <= 输⼊年龄 <= 60
上点: 18 ,60
离店: 17,61
内点:18 到 60 之前数字例如 20,30等等,取⼀个就好
考虑到健壮性也有这样取数的:
最⼩值:18
略⼩于最⼩值:17
略⼤于最⼩值:19
正常值:18 到 60 之前数字例如 20,30等等,取⼀个就好
最⼤值:60
略⼩于最⼤值:59
略⼤于最⼤值:61
举例 2:
18 < 输⼊年龄 < 60
上点:18,60
离店:19,59
内点:18到60之间的数,不包含18和60
考虑到健壮性也有这样取数的:
最⼩值:19
略⼩于最⼩值:18
略⼤于最⼩值:20
正常值:18到60之间的数,不包含18和60
最⼤值:59
略⼩于最⼤值:58
略⼤于最⼤值:60。
软件测试中的边界值分析方法边界值分析是软件测试的一种常用方法,它能够帮助测试人员发现软件系统中可能存在的边界问题,提高软件的稳定性和质量。
本文将详细介绍软件测试中的边界值分析方法。
边界值分析是一种黑盒测试方法,主要用于测试输入值的边界条件是否正确处理。
在软件测试中,输入值通常具有一定的取值范围,而边界值则是这个取值范围的最小值、最大值或临界值。
通过边界值分析,我们可以测试这些边界值是否能够正确处理,以及系统在这些边界值附近是否存在异常情况。
边界值分析的基本步骤如下:1. 确定边界值:根据需求和规格说明书,确定输入值的边界条件,包括最小值、最大值以及临界值。
2. 划分测试用例:将边界值和一般值按照测试目标进行划分,不同的划分方式可以覆盖不同的测试场景。
3. 设计测试用例:根据边界值和一般值的划分,设计测试用例,确保能够覆盖到所有的边界条件。
4. 执行测试用例:根据设计的测试用例,执行测试,记录测试结果。
边界值分析的优点包括:1. 高效性:边界值分析可以帮助测试人员在有限的测试资源下,快速发现可能存在的边界问题,提高测试效率。
2. 效果明显:边界值往往是引起软件错误的主要因素之一。
通过对边界值进行测试,可以有效地发现系统在边界条件下是否存在错误,提高软件的稳定性。
3. 可重复性:边界值分析是一种基于规则的测试方法,测试用例可以根据规则生成,可以重复使用,提高测试的可维护性。
边界值分析也存在一些注意事项:1. 边界值的选择要准确:边界值的选择需要基于需求和规格说明书,确保能够涵盖所有可能的边界情况。
2. 边界值测试并不是万能的:边界值测试只能帮助我们发现系统在边界条件下可能存在的问题,但不能保证系统在其他情况下没有错误。
3. 边界值测试需要结合其他测试方法:边界值测试只是软件测试中的一种方法,需要和其他测试方法结合使用,确保软件的全面测试。
总之,边界值分析是软件测试中一种常用的方法,可以帮助我们发现软件系统中可能存在的边界问题。
功能测试常用的测试用例设计方法功能测试是软件测试中的一种重要测试方法,主要用来验证软件系统是否符合用户需求,并且功能是否正常运行。
在功能测试中,测试用例的设计是非常关键的环节,合理的测试用例设计可以提高测试的效率和覆盖率。
下面介绍几种常用的功能测试用例设计方法。
1. 等价类划分法(Equivalence Partitioning)等价类划分法是将输入条件分成若干个不相交的等价类,选择一个代表性的测试用例来代表每个等价类。
这是因为对于每个等价类,如果能覆盖到代表性的测试用例,则可以推断这个等价类中的其他测试用例也能覆盖到。
这样可以减少测试用例的数量,提高测试效率。
例如,一个输入范围为1-100的整数验证功能,我们可以选择一个代表性的测试用例,比如输入50,其他的等价类可以是小于1的数、大于100的数以及1-100之间的数。
2. 边界值分析法(Boundary Value Analysis)边界值分析法是基于等价类划分法的基础上,对边界情况进行特殊测试,因为边界值常常是软件出错的地方。
在边界值分析法中,选择最小边界值、最大边界值以及这些边界值的前后值作为测试用例。
例如,一个输入为1-100的整数验证功能,选择测试用例为0、1、2、99、100、101。
3. 错误推测法(Error Guessing)错误推测法是一种基于经验和直觉的测试用例设计方法,测试人员通过自己的经验来猜测可能出错的地方,并且设计相应的测试用例。
这种方法不依赖于具体的测试方法,主要靠测试人员的经验和直觉来发现问题。
例如,对于一个输入用户注册功能的测试,测试人员可能会猜测到可能出错的地方有用户名重复、密码长度不符合要求、验证码错误等,然后设计相应的测试用例来验证这些猜测。
4. 因果图法(Cause-Effect Graphing)因果图法是一种基于图的测试用例设计方法,测试人员通过构建因果图来表示软件的输入和输出之间的因果关系,然后根据因果关系选择测试用例。
边界值分析方法一.方法简介1.定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
2.与等价划分的区别1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
3.边界值分析方法的考虑:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。
因此针对各种边界情况设计测试用例,可以查出更多的错误。
使用边界值分析方法设计测试用例,首先应确定边界情况。
通常输入和输出等价类的边界,就是应着重测试的边界情况。
应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
4.常见的边界值1)对16-bit 的整数而言32767 和-32768 是边界2)屏幕上光标在最左上、最右下位置3)报表的第一行和最后一行4)数组元素的第一个和最后一个5)循环的第0 次、第1 次和倒数第2 次、最后一次5.边界值分析1)边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。
例:测试计算平方根的函数--输入:实数--输出:实数--规格说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息"平方根非法-输入值小于0"并返回0;库函数Print-Line可以用来输出错误信息。
2)等价类划分:I.可以考虑作出如下划分:a、输入(i)<0 和(ii)>=0b、输出(a)>=0 和(b) ErrorII.测试用例有两个:a、输入4,输出2。
对应于(ii) 和(a) 。
b、输入-10,输出0和错误提示。
测试方法等价类,边界值,场景法测试方法是软件测试中的重要概念,它们用于设计和执行测试用例,以验证软件的正确性和完整性。
常用的测试方法有等价类划分、边界值分析和场景法。
本文将详细介绍这些测试方法,并探讨如何在实际项目中应用它们。
一、等价类划分等价类划分是一种测试设计技术,通过将输入和输出数据划分为若干组等价类,从每个等价类中选择一个测试用例进行测试。
这是因为在同一等价类中的数据具有相同的特性,测试同一等价类中的任意一个数据可以使得测试覆盖率更高。
例如,假设有一个用户注册的功能。
输入数据包括用户名、密码和邮箱。
根据等价类划分的原则,可以将用户名分为有效用户名(长度为6-16个字符)、无效用户名(长度小于6位或大于16位)、以及用户名为空等三个等价类;将密码划分为有效密码(包含数字和字母,长度为8-16个字符)、无效密码(只包含数字或字母,长度小于8位或大于16位)和密码为空等三个等价类;将邮箱划分为有效邮箱(符合电子邮箱格式)和无效邮箱(不符合电子邮箱格式)两个等价类。
根据这些等价类,可以选择一个代表性的有效用户名、有效密码和有效邮箱组成一个测试用例。
等价类划分方法可以帮助测试人员快速找出最重要的测试用例,从而提高测试效率和覆盖率。
但需要注意的是,等价类划分只是一种测试设计技术,并不能完全保证测试的充分性和有效性。
二、边界值分析边界值分析是一种测试设计技术,通过选择接近或刚超出边界的测试数据来测试边界情况。
因为边界性问题通常是软件中的隐患所在,所以通过针对边界情况进行测试可以更好地发现软件中的缺陷。
例如,假设有一个数值计算器的功能,只能计算两个整数的加法。
输入数据是两个整数。
根据边界值分析的原则,可以选择的测试用例包括:选择两个整数都在边界上的情况(例如0和1)、至少一个整数在边界上的情况(例如0和100001)、以及至少一个整数超出边界的情况(例如100001和100002)。
这些测试用例可以有效地测试数值计算器的健壮性和边界情况下的正确性。
⿊盒测试⽅法---边界值分析边界值分析法⼀.⽅法简介1.定义:边界值分析法就是对输⼊或输出的边界值进⾏测试的⼀种⿊盒测试⽅法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试⽤例来⾃等价类的边界。
2.与等价划分的区别1)边界值分析不是从某等价类中随便挑⼀个作为代表,⽽是使这个等价类的每个边界都要作为测试条件。
2)边界值分析不仅考虑输⼊条件,还要考虑输出空间产⽣的测试情况。
3.边界值分析⽅法的考虑:长期的测试⼯作经验告诉我们,⼤量的错误是发⽣在输⼊或输出范围的边界上,⽽不是发⽣在输⼊输出范围的内部。
因此针对各种边界情况设计测试⽤例,可以查出更多的错误。
使⽤边界值分析⽅法设计测试⽤例,⾸先应确定边界情况。
通常输⼊和输出等价类的边界,就是应着重测试的边界情况。
应当选取正好等于,刚刚⼤于或刚刚⼩于边界的值作为测试数据,⽽不是选取等价类中的典型值或任意值作为测试数据。
4.常见的边界值1) 对16-bit 的整数⽽⾔ 32767 和 -32768 是边界2) 屏幕上光标在最左上、最右下位置3) 报表的第⼀⾏和最后⼀⾏4) 数组元素的第⼀个和最后⼀个5) 循环的第 0 次、第 1 次和倒数第 2 次、最后⼀次5.边界值分析1) 边界值分析使⽤与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试⽤例。
例:测试计算平⽅根的函数--输⼊:实数--输出:实数--规格说明:当输⼊⼀个0或⽐0⼤的数的时候,返回其正平⽅根;当输⼊⼀个⼩于0的数时,显⽰错误信息"平⽅根⾮法-输⼊值⼩于0"并返回0;库函数Print-Line可以⽤来输出错误信息。
2) 等价类划分:I.可以考虑作出如下划分:a、输⼊ (i)<0 和 (ii)>=0b、输出 (a)>=0 和 (b) ErrorII.测试⽤例有两个:a、输⼊4,输出2。
软件测试⽅法_边界值分析法⽬录:①边界值分析法的介绍和概念②边界值分析法的原理和思想③单缺陷假设和多缺陷假设④边界值测试数据类型⑤内部边界值分析⑥各类边界值测试介绍⑦基于边界值分析⽅法选择测试⽤例的原则⑧边界值分析法的实例分析1、边界值分析法的介绍和概念边界值分析是⼀种常⽤的⿊盒测试⽅法,是对等价类划分⽅法的补充;所谓边界值,是指相对于输⼊等价类和输出等价类⽽⾔,稍⾼于其最⾼值或稍低于最低值的⼀些特定情况。
边界值分析的步骤包括确定边界,选择测试⽤例两个步骤。
根据⼤量的测试统计数据,很多错误是发⽣在输⼊或输出范围的边界上,⽽不是发⽣在输⼊/输出范围的中间区域。
因此针对各种边界情况设计测试⽤例,可以查出更多的错误。
所以,边界值分析法是⼀种很实⽤的⿊盒测试⽤例⽅法,它具有很强的发现故障缺陷能⼒。
2、边界值分析法原理和思想2.1边界值分析法的基本原理错误更可能出现在输⼊变量的极值附近。
失效极少由两个(或多个)缺陷的同时发⽣引起的。
2.2边界值分析法的基本思想选取正好等于,刚刚⼤于或刚刚⼩于边界的值作为测试数据,⽽不是选取等价类中的典型值或任意值作为测试数据。
表⽰⽅法:最⼩值min,略⾼于最⼩值min+,正常值nom,略低于最⼤值max-,最⼤值max3、单缺陷假设和多缺陷假设单缺陷假设是边界值分析的关键假设。
单缺陷假设指“失效极少是由两个或两个以上的缺陷同时发⽣引起的”。
在边界值分析中,单缺陷假设即选取测试⽤例时仅仅使得⼀个变量取极值,其他变量均取正常值。
多缺陷假设则是指“失效是由两个或两个以上缺陷同时作⽤引起的”,要求在选取测试⽤例时同时让多个变量取极值。
4、边界值测试数据类型类型包括:数值、速度、字符、地址、位置、尺⼨、数量、空间……项边界值测试⽤例的设计思路字符起始-1个字符/结束+1个字符假设⼀个⽂本输⼊区域允许输⼊1个到255个字符,输⼊1个和255个字符作为有效等价类;输⼊0个和256个字符作为⽆效等价类,这⼏个数值都属于边界条件值。
黑盒测试-边界值分析法和场景法边界值分析法:
实验1:某选课系统中规定每门课程的选修人数在[20,60]之间,小于20人不开设该门选修课,大于60人不接受后面的选课要求。
结合黑盒测试方法中等价类划分和边界值方法设计测试案例,并给出相应测试用例。
参考答案
测试设计
⏹输入变量:选课人数
⏹测试输入
⏹选择当选课人数分别为19,20,21, 59,60和61等几个边界点
⏹再加上一个正常值点40
实验 2:编写一个程序,输入某雇员的工作时间(以小时计)和每小时的工资数,计算并输出他的工资。
具体如下:
✓若雇员周工作小时小于40小时(0,40),则按原小时工资0.7来计算薪水。
✓若雇员周工作小时等于40小时,则按原小时工资计算薪水。
✓若雇员周工作小时介于40到50((40,50))小时的,超过40的部分按照原小时工资的1.5倍来计算薪水。
✓若雇员周工作小时超过50小时([50,60)),则超过50的部分按原小时工资的3倍来计算薪水。
✓超出60小时或小于0小时,提示输入有误,重新输入。
结合黑盒测试方法中等价类划分和边界值方法设计测试案例,并给出测试用例和相应的测试结果。
参考答案
有效等价类编号无效等价类编号边界值
0~40 (1) <0 (4) 0 40
40~50 (2) >60 (5) 40 50
50~60 (3) 50 60
实际运行结果测试用例覆盖期望结果
(假设小时报酬30)
20 (1) 0.7*30*20=420 420
0 (1) 0 0
-1 (4) 输入有误,重新输入0
39 (1) 0.7*30*39=819 819
40 (1) (2) 30*40=1200 1200
41 (2) 30*40+1*1.5*30=12451245
45 (2) 40*30+5*1.5*30=1425 1425
49 (2) 40*30+9*1.5*30=1605 1605
50 (2) (3) 40*30+10*1.5*30=1650 1650
51 (2) 40*30+10*1.5*30+1*3*30=1740 1740
55 (3) 40*30+10*1.5*30+5*3*30=2100 2100
59 (3) 40*30+10*1.5*30+9*3*30=2460 2460
60 (3) 40*30+10*1.5*30+10*3*30=255
2550
61 (5) 输入有误,重新输入0
-10 (4) 输入有误,重新输入 0
程序参考答案:
#include <stdio.h> void main() {
float h; float g; float sum; sum=0.0;
printf("请输入小时工资和工作小时数:"); scanf("%f",&h); scanf("%f",&g); if(h>0 && h<40) sum=0.7*h*g;
else if (h>=40 && h<50) sum=40*g+(h-40)*1.5*g; else if(h>=50 && h<=60)
sum=40*g+10*1.5*g+(h-50)*3*g; printf("%f",sum); }
场景分析法
实验 1 :下面是某高校选课系统的用例图,其“选课”用例的事件流描述如下:
基本流:登录,选择课程,获取课程信息,选课,提交选课请求,显示选课结果。
备选流:学生无法识别(学生学号和密码无效时,会产生错误提示) 退出:
不满足选修条件,选课人数已满,和课程时间冲突
选课已经结束
要求:基于基本流和备选流,构造场景,并设计测试用例
实验2:有一个处理单价为5角钱的饮料的自动售货机,只允许投入
登录
选择 课程
浏览课程信息 结果
提交
5角或1元的硬币,其相应的规格说明书描述如下。
①若投入5角钱或1元钱的硬币,按下【橙汁】或【啤酒】的按钮,则相应的饮料就送出来。
(每次只投入一个硬币,只按下一种饮料的按钮。
)
②如投入5角的硬币,按下按钮后,总有饮料送出。
③若售货机没有零钱找,则【零钱找完】的红灯会亮,这时再投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来。
④若有零钱找,则【零钱找完】的红灯不会亮,若投入1元硬币及按饮料按钮,则送出饮料的同时找回5角硬币。
要求:(1)找出基本流和备选流
(2)构造场景
(3)设计测试用例
场景法:参考答案:
实验1:
根据事件流描述,构造事件流图
根据事件流图,构造场景覆盖从用例开始到结束的路径
2.构造矩阵
☐确定列内容:除了需要包含执行场景所需的数据元素,还需要包含测试
用例标识、被测场景标识或名称
确定行内容:
▪一个负面测试用例
2.根据被测场景特征,补充相应测试用例
实验2 参考答案
(1
)分析基本流和备选流
基本流:投入5角钱,按下【橙汁】或【啤酒】的按钮,则相应的饮料就送出来。
备选流: ① 备选流1:【零钱找完】的红灯没亮,若投入1元硬币及按饮料按钮,则送出饮料的同时找回5角硬币。
② 备选流2:【零钱找完】的红灯亮,这时投入1元硬币并按下按钮后,饮料不送出来且1元硬币也退出来。
(2)分析场景 场景1:基本流 场景2:备选流1 场景3:备选流2
《软件测试方法和应用》3-71
填入测试数据
☐
步骤
⏹
根据设计的矩阵结果,选择相应的测试数据。