边界值分析法+场景法
软件功能测试中的边界值分析技术

软件功能测试中的边界值分析技术边界值分析技术在软件功能测试中扮演着重要的角色。
作为一种常见的测试方法之一,边界值分析可以帮助测试人员识别潜在的问题并提高测试效率。
本文将介绍边界值分析技术在软件功能测试中的应用,并探讨其优势和限制。
软件功能测试是一项旨在验证软件行为与预期功能相符合的活动。
通过边界值分析技术,测试人员能够确定输入值的边界,并对跨越边界的输入值进行测试。
这种方法基于边界值会引发软件错误的观点,并且注重处理输入值的边界情况。
边界值分析可以划分为三个不同的类别:上边界测试、中间值测试和下边界测试。
上边界测试是指对输入值的上限进行测试。
例如,在一个银行软件中,某用户的账户余额上限是100,000。
为了进行上边界测试,测试人员将测试输入值为100,000、100,001和100,002的情况。
这样的测试可以揭示在输入值接近或超过上边界时可能出现的潜在问题,例如溢出错误或系统异常。
中间值测试则是围绕输入值的中间范围进行的测试。
以银行软件为例,某函数的输入范围为1到100,000。
为了进行中间值测试,测试人员将选择一些代表性的中间值,如50,000和75,000。
通过这种测试,可以验证软件在处理中等大小的输入值时是否能够正确运行。
下边界测试是对输入值的下限进行测试。
在银行软件的例子中,某功能的输入下限是1。
为了进行下边界测试,测试人员将尝试输入1、0和-1等值。
这样的测试可以帮助测试人员发现当输入值位于下边界时可能出现的异常情况。
边界值分析技术在软件功能测试中有许多优势。
边界值分析能够最大程度地覆盖可能的输入范围,以有效地发现潜在的错误和缺陷。
边界值分析提供了一种集中测试资源的方法,因为测试人员可以仅关注边界情况而不需测试所有可能的输入值。
这样可以节省时间和资源,并提高测试效率。
边界值分析能够揭示在输入的边界处可能出现的异常情况,有助于改进软件的鲁棒性和稳定性。
然而,边界值分析技术也有一些限制。
第02章_边界值分析法

学习目标
边界值与边界值分析法 边界值分析选取测试数据 ★ 常见的边界值类型 边界条件设计测试用例的步骤 边界条件测试用例设计法 ★
边界值分析法
边界值分析法: 是对输入或输出的边界值进行测试的一种黑 盒测试方法。 是作为对等价类划分法的补充,这种情况下, 其测试用例来自等价类的边界。
4
100
100
100
等边三角形
5
100
100
199
非三角形
6
100
100
200
等腰三角形
7
100
100
201
c超过取值范围
8
100
0
100
b超过取值范围
9
100
1
100
等腰三角形
10
100
2
100
等腰三角形
注:a取边界值
11
100
199
100
等腰三角形
的测试用例未
12
100
200
100
非三角形
13
100
测试用例 TC1 TC2 TC3 TC4 TC5 TC6 TC7 TC8 TC9 TC10 TC11 TC12 TC13 TC14 TC15 TC16 TC17 TC18 TC19
第1题参考答案
x
y
z
1
10
10
2
10
10
3
10
10
10
10
10
19
10
10
20
10
10
21
10
黑盒测试的7种测试方法

黑盒测试的7种测试方法黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。
很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
黑盒测试有7种测试方法分别是等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、功能图法、正交实验法。
下面将一一介绍。
等价类划分法等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
该方法是一种重要的,常用的黑盒测试用例设计方法。
1、划分等价类:等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。
并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。
因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。
取得较好的测试结果。
等价类划分可有两种不同的情况:有效等价类和无效等价类。
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。
利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:与有效等价类的定义恰巧相反。
设计测试用例时,要同时考虑这两种等价类。
因为,软件不仅要能接收合理的数据,也要能经受意外的考验。
这样的测试才能确保软件具有更高的可靠性。
2、划分等价类的方法:下面给出六条确定等价类的原则。
①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。
白盒测试用例设计方式

白盒测试用例设计方式:常常利用的黑盒测试用例设计方式有等价类划分法、边界值测试法、决策表法、错误猜想法和场景法,在进展黑盒测试用例设计时的主要依据是软件系统规格说明书,因此在进展黑盒测试之前必需保证软件系统规格说明书是通过审核的,若是未经审核,那么需要进展探索式测试。
等价类划分法是指将输入数据进展等价类划分,划分依据为系统的预期结果,隶属于同一个等价类的输入数据会引发一样的预期结果,而且吻合一样的输入标准。
边界值测试法是对等价类划分法的一种补充,对于每一个等价类来讲,都会存在类的边缘,经研究证明,边缘的数据更易在系统运行中产生问题,因此边界值方式是一种超级必要的方式。
决策表方式适合于解决多个逻辑条件的组合。
判定表包括条件桩、条件项、动作桩、动作项。
条件桩中列出所有执行条件,顺序无关;条件项中列出所对应条件的所有可能情况下的取值;动作桩中列出可能采取的操作,顺序无关;动作项中列出条件项各类取值情况下采取的操作。
错误推测法概念:基于经历和直觉推测程序中所有可能存在的各类错误, 从而有针对性的设计测试用例的方式。
错误推测方式的根本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,按照他们选择测试用例。
场景法:ERP系统本身是一种业务流程很复杂,单据报表众多,逻辑性很强的系统,质量保证方面很宝贵到严格的控制的软件系统,在测试进程中常常会出现测试设计遗漏、测试执行遗漏等问题发生,一般的ERP系统设计可能包括以下几方面:、业务流程测试、数据逻辑测试、接口测试、兼容性测试、、易用性测试、用户体验测试等等;在针对ERP系统的测试进程中,必需具有清楚的测试设计思路,搭建根本的测试设计框架;其次熟悉所要设计的系统或模块的业务,所要实现的功能;然后灵活运用常常利用的测试设计方式〔等价类、边界值、错误猜想、路径分析法、场景法、正交验证法……用例设计方式〕;最后运用比拟合理统一的风格和模板进展设计测试用例;“业务场景、业务流程、数据逻辑〞是关键,业务理解清楚是做好ERP测试的根底;ERP系统测试用例分为几类来写比拟好:功能用例、业务流程用例、数据逻辑用例、接口用例,最好是把功能与流程类的测试用例分开来写;就个人而言,设计覆盖率高、冗余度低的测试用例应该从以下几个方面入手:一、功能用例设计:相对而言比拟简单,按照需求规格说明书、界面原型提取测试功能点/项,运用等价类、边界值、错误猜想、正交表等根本用例设计方式来设计,结合经历积累完善用例设计就可以够弄定,难度不大;需要按照文档/功能点/业务的转变进展修订/细化用例,提高功能用例的覆盖度;关于功能用例设计的方式和有很多,都可以借鉴和参考增加自身的经历积累和和知识沉淀。
黑盒测试方法

黑盒测试是一种基于证明功能需求和用户最终需求的测试方法,设计黑盒测试用例的方法有如下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和错误提⽰。
边界值法分析法

2.2 边界值分析法
使用边界值分析方法设计测试用例
• 首先应确定边界情况 – 通常输入和输出等价类的边界,就是应着重 测试的边界情况。
• 应当选取正好等于,刚刚大于或刚刚小于边界 的值作为测试数据,而不是选取等价类中的典 型值或任意值作为测试数据。
2.2 边界值分析法 使用边界值分析方法设计测试用例
2.2 边界值分析法
(Boundary Value Analysis,BVA)
• 长期的测试工作经验告诉 我们,大量的错误是发生 在输入或输出范围的边界 上,而不是发生在输入输 出范围的内部。因此针对 各种边界情况设计测试用 例,可以查出更多的错误。
• 美国陆军对其软件进行了 研究,令人吃惊地发现, 大量缺陷都是边界值缺陷。
2.2 边界值分析法
定义:
• 边界值分析法 对输入或输出的边界值进行测试的一种黑盒测试方法。
通常边界值分析法是作为对等价类划分法的补充, 这种情况下,其测试用例来自等价类的边界。
边界值分析方法和等价类划分法的区别: – BVA不是选择等价类的任何元素,而是选择 等价类边界的测试用例 – BVA不仅注重于输入条件,而且也从输出域 导出测试用例。
• 第一个/最后一个 • 开始/完成 • 空/满 • 最慢/最快 • 最大/最小 • 相邻/最远
3.2.2-边界值分析法举例

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、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
黑盒测试-边界值分析法和场景法边界值分析法:
实验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 :下面是某高校选课系统的用例图,其“选课”用例的事件流描述如下:
基本流:登录,选择课程,获取课程信息,选课,提交选课请求,显示选课结果。
备选流:学生无法识别(学生学号和密码无效时,会产生错误提示) 退出:(允许学生在选课过程中退出)
不满足选修条件,选课人数已满,和课程时间冲突
选课已经结束
要求:基于基本流和备选流,构造场景,并设计测试用例
实验2:有一个处理单价为5角钱的饮料的自动售货机,只允许投入5角或1元的硬币,其相应的规格说明书描述如下。
① 若投入5角钱或1元钱的硬币,按下【橙汁】或【啤酒】的按钮,则相应的饮料就送出来。
(每次只投入一个硬币,只按下一种饮料的按钮。
)
② 如投入5角的硬币,按下按钮后,总有饮料送出。
③若售货机没有零钱找,则【零钱找完】的红灯会亮,这时再投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来。
④若有零钱找,则【零钱找完】的红灯不会亮,若投入1元硬币及按饮料按钮,则送出饮料的同时找回5角硬币。
要求:(1)找出基本流和备选流
(2)构造场景
(3)设计测试用例
场景法:参考答案:
实验1:
根据事件流描述,构造事件流图
根据事件流图,构造场景覆盖从用例开始到结束的路径
《软件测试方法和应用》3-70
《软件测试方法和应用》
实验2 参考答案
(1)分析基本流和备选流
基本流:投入5角钱,按下【橙汁】或【啤酒】的按钮,则相应的饮料就送出来。
备选流:
①备选流1:【零钱找完】的红灯没亮,若投入1元硬币及按饮料按钮,则送出饮料的同时找回5角硬币。
②备选流2:【零钱找完】的红灯亮,这时投入1元硬币并按下按钮后,饮料不送出来且1元硬币也退出来。
(2)分析场景
场景1:基本流
场景2:备选流1
场景3:备选流2。