边界值分析法实例
- 格式:pdf
- 大小:156.22 KB
- 文档页数:6
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)试题分析报告。
按试题号排序,列出各题学生答对的百分比。
解答:分别考虑输入条件和输出条件,以及边界条件。
给出下表所示的输入条件及相应的测试用例。
输出条件及相应的测试用例表。
2.三角形问题的边界值分析测试用例在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。
在此,我们将三角形每边边长的取范围值设值为[1, 100] 。
3.NextDate函数的边界值分析测试用例在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050 。
⿊盒测试⽅法——边界值分析(转)功能测试边界测试\越界测试技术详述1)边界条件边界条件是指软件计划的操作界限所在的边缘条件。
如果软件测试问题包含确定的边界,那么数据类型可能是:数值速度字符地址位置尺⼨数量同时,考虑这些类型的下述特征:第⼀个/最后⼀个最⼩值/最⼤值开始/完成超过/在内空/满最短/最长最慢/最快最早/最迟最⼤/最⼩最⾼/最低相邻/最远2)越界测试通常是简单加1或者很⼩的数(对于最⼤值)和减少1或者很⼩的数(对于最⼩值)。
例如:第⼀个减1/最后⼀个加1开始减1/完成加1空了再减/满了再加慢上加慢/快上加快最⼤数加1/最⼩数减1最⼩值减1/最⼤值加1刚好超过/刚好在内短了再短/长了再长早了更早/晚了更晚最⾼加1/最低减1另外⼀些该注意的输⼊:默认,空⽩,空值,零值和⽆;⾮法,错误,不正确和垃圾数据边界值例⼦:1)对16-bit的整数⽽⾔32767和-32768是边界2)屏幕上光标在最左上、最右下位置3)报表的第⼀⾏和最后⼀⾏4)数组元素的第⼀个和最后⼀个5)循环的第0次、第1次和倒数第2次、最后⼀次。
⼩结:1输⼊条件对取值范围作了限定,以边界内部以及超出边界的值作为测试⽤例。
如输⼊范围为0~50,那么-1,0,1,49,50,51 2如果对取值的个数进⾏了限定,那么以最⼤个数,最⼩个数,⽐最⼤个数⼩1或⼤1,⽐最⼩个数⼩1或⼤1作为测试⽤例3对于输出条件,同样可以1,2条提到的原则来进⾏测试⽤例的设计。
4输⼊是⼀个有序集合,选取第⼀个和最后⼀个元素作为测试⽤例5考虑软件内部隐含的边界值情况,如2的乘⽅,ASCII码。
黑盒测试-边界值分析法和场景法边界值分析法:实验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位⾃然数,⽤边界值分析法补充可得以下⽤例:。
1. 边界条件测试边界条件是指软件计划的操作界限所在的边缘条件。
程序在处理大量中间数值时都是对的,但是可能在边界处出现错误。
比如数组的[0]元素的处理。
想要在Basic中定义一个10个元素的数组,如果使用Dim data(10) As Integer ,则定义的是一个11个元素的数组,在赋初值时再使用For i =1 to 10 ...来赋值,就会产生权限,因为程序忘记了处理i=0的0号元素。
数据类型:数值、字符、位置、数量、速度、地址、尺寸等,都会包含确定的边界。
应考虑的特征:第一个/最后一个、开始/完成、空/满、最慢/最快、相邻/最远、最小值/最大值、超过/在内、最短/最长、最早/最迟、最高/最低。
这些都是可能出现的边界条件。
根据边界来选择等价分配中包含的数据。
然而,仅仅测试边界线上的数据点往往不够充分。
提出边界条件时,一定要测试临近边界的合法数据,即测试最后一个可能合法的数据,以及刚超过边界的非法数据。
以下例子说明一下如何考虑所有可能的边界:--------------------------------------------------------------------------------如果文本输入域允许输入1-255个字符。
尝试:输入1个字符和255个字符(合法区间),也可以加入254个字符作为合法测试。
输入0个字符和256个字符作为非法区间。
--------------------------------------------------------------------------------如果程序读写软盘尝试:保存一个尺寸极小,甚至只有一项的文件。
然后保存一个很大的——刚好在软盘容量限制之内的文件。
保存空文件。
保存尺寸大于软盘容量的文件。
--------------------------------------------------------------------------------如果程序允许在一张纸上打印多个页面尝试:只打印一页打印允许的最多页面打印0页多于所允许的页面(如果可能的话)----------------------------------------------------------------------------------------------------------------------------------------------------------------2. 次边界条件测试上面所讲的是普通的边界条件,在产品说明书中有定义,或者在软件的过程中确定。
四、功能测试--边界值分析法
边界值分析法就是对输⼊或输出的边界值进⾏测试的⼀种⿊盒测试⽅法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试⽤例来⾃等价类的边界。
虽然边界值分析法是等价类划分法,但是这两种⽅法还有区别的。
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.现有一个学生标准化考试批阅试卷,产生成绩报告的程序。
其规格说明如下:程序的输入
文件由一些有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)试题分析报告。
按试题号排序,列出各题学生答对的百分比。
解答:分别考虑输入条件和输出条件,以及边界条件。
给出下表所示的输入条件及相应的测试用例。
输出条件及相应的测试用例表。
2.三角形问题的边界值分析测试用例
在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。
在此,我们将三角形每边边长的取范围值设值为[1, 100] 。
测试用例a b c预期输出
Test1 Test2 Test3 Test4 Test560
60
60
50
50
60
60
60
50
50
1
2
60
99
100
等腰三角形
等腰三角形
等边三角形
等腰三角形
非三角形
Test6 Test7 Test8 Test960
60
50
50
1
2
99
100
60
60
50
50
等腰三角形
等腰三角形
等腰三角形
非三角形
Test10 Test11 Test12 Test13
1
2
99
100
60
60
50
50
60
60
50
50
等腰三角形
等腰三角形
等腰三角形
非三角形
3.NextDate函数的边界值分析测试用例
在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050。
测试用例mouth day year预期输出
Test1 Test2 Test3 Test4 Test5 Test6 Test76
6
6
6
6
6
6
15
15
15
15
15
15
15
1911
1912
1913
1975
2049
2050
2051
1911.6.16
1912.6.16
1913.6.16
1975.6.16
2049.6.16
2050.6.16
2051.6.16
Test8 Test9 Test10 Test11 Test12 Test136
6
6
6
6
6
-1
1
2
30
31
32
2001
2001
2001
2001
2001
2001
day超出[1…31]
2001.6.2
2001.6.3
2001.7.1
输入日期超界
day超出[1…31]
Test14 Test15 Test16 Test17 Test18 Test19-1
1
2
11
12
13
15
15
15
15
15
15
2001
2001
2001
2001
2001
2001
Mouth超出[1…12]
2001.1.16
2001.2.16
2001.11.16
2001.12.16
Mouth超出[1…12]。