边界值分析法实例
- 格式:docx
- 大小:13.50 KB
- 文档页数:3
软件测试中的边界值分析法作者:流河建伟来源:《电脑报》2022年第40期不管是在少儿编程软件,还是在传统编程语言的判断语句中,边界的判断都是特别容易出错的地方。
什么是边界呢?边界就是程序判断的临界点。
比如:百分制中输入得分判断是否及格,大于60分就及格,否則不及格。
程序如图1:因为60分是确定是否及格的标准,所以这里的60就是程序判断的临界点——边界。
如果不认真,写成图2的代码,当我们输入60时,程序就会说不及格,判断就会出现错误(图2)。
程序判断的错误往往发生在输入或输出范围的边界上,而不是出现在输入范围的内部。
如何防止这种问题发生呢?除了要求在编程时仔细认真,还须应用科学的测试方法,这种方法就叫作边界值分析法。
边界值分析法就是对输入或输出的边界值进行测试的一种测试方法。
首先确定边界,然后选取“正好等于”“刚刚大于”“刚刚小于”边界的值作为测试数据。
这就需要用边界值分析法。
如上面的例子,在Scratch编程的询问框中分别依次输入60(正好等于)、61(刚刚大于)、59(刚刚小于)三个值进行测试。
1. 输入60和61的时候程序显示“及格”。
2. 输入59的时候显示“不及格”。
3. 再随机地输入几个分数,比如:输入23,显示“不及格”。
输入98显示“及格”。
输入66,显示“及格”。
4. 输入102,显示“及格”。
输入-1,显示“不及格”。
我们是不是又发现了新的问题?百分制是没有102分的,得分也不会有负数。
所以,逻辑中的相关数值就是边界,逻辑的上限(100)和下限(0)也是边界。
通过这个例子,我们确定了三个边界,即60、0、100。
需要重新编写代码并测试(图3)。
现在我们找到0、60、100三个边界。
对应“正好等于”“刚刚大于”“刚刚小于”的值,对应0的测试数据应为-1、0、1,对应60的测试数据应为59、60、61,对应100的测试数据为99、100、101。
下面就具体用边界值分析法进行测试。
1. 输入-1,程序返回“分数不能小于0”,输入0,返回“不及格”,输入1返回“不及格”。
功能测试技术—边界值分析法东软IT人才实训中心3 Sept. 2008© Neusoft Confidential1主要内容•边界值分析法的概念•常见的边界值•边界值分析法设计测试用例•标准性(一般性)测试•健壮性测试2边界值分析法进行测试的种黑盒测•边界值分析法就是对输入的边界值进行测试的一种黑盒测试方法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
3为什么使用边界值分析法?•测试实践表明,大量的故障往往发生在输入定义域的边界上,而不是在其内部。
因此,针对各种边界情况设计测试用例,通常会取得很好的测试效果。
例如,一个循环条件为“”时,却错写成“”例个循环条件为≤时却错写成<;计数器发生少计数一次。
4怎样用边界值分析法设计测试用例?怎样用边界值分析法设计测试用例(1)首先确定边界情况通常边界就是应该着重测试的边界情况。
(2)选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。
5常见的边界值•对16-bit的整数而言32767和-32768是边界•屏幕上光标在最左上、最右下位置•报表的第一行和最后一行•数组元素的第一个和最后一个次、最后一次•循环的第0次、第1次和倒数第2次、最后次67一般性标准性(般性)测试对于个含有n个变量的程序,保留其中个变量,让其余的变对于一个含有保留其中一个变量,让其余的变量取正常值,被保留的变量依次取min、min+、nom、max-、max值,对每个变量都重复进行。
这样,对于个有n个变量的程值,对每个变量都重复进行。
这样,对于一个有序,边界值分析测试程序会产生4n+1个测试用例。
边界值分析法是基于可靠性理论中称为“单故障”的假设,即有两个或两个以上故障同时出现而导致软件失效的情况很少,也就是说,软件失效基本上是由单故障引起的。
89实战演练•有二元函数f(x,y),其中x∈[1,12],y∈[1,31]。
边界值分析方法一.方法简介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.运用“边界值分析法”进行教学时,教师首先应把握好教学目标,设置好相应的边界值,以保证教学活动能够顺利开展,从而确保教学活动达到预期效果。
例如,在解答函数综合题的教学中,根据已知条件,设置如图1所示的函数图象上确切的位置及对应的数值,然后对照解析式表格,将函数值带入题中,通过判断是否符合边界值条件来判断所求结果是否正确,得出结论,并指导学生进行验证。
由于边界值的限制,学生很容易抓住两点之间直线最短的原则解题,从而大大减少解题的计算量,简化解题思路。
2.“边界值分析法”具体操作步骤:(1)确定分析对象,即以分析对象(例如某个平面图形、函数图像)为基础,根据需要选取或设定相应的边界值;(2)设定适当的变量及观察值,如果分析的对象较多,就设立观察值(z),它代表某些变量,这些变量之间有一定的关系;(3)确定具体解题策略,并画出流程图;(4)经过反复验证,修改流程图;(5)再次画出流程图,检验变量之间的关系是否合理。
此方法由于不仅能清楚地展示知识的形成过程而且也突出了问题关键,因此非常适合于复杂的、关系比较复杂的问题的分析与处理,但也存在一些不足:(1)复杂的问题,其变量之间的关系比较复杂,这给学生理解造成了一定困难,同时也会加大教师对学生讲解的难度,因此在具体教学实践中还需要教师适当降低要求;(2)教师在确定具体解题策略时往往只考虑该问题的结论,忽略了该问题产生的过程,导致学生分析问题的深度不够,进而影响解题速度。
(4)再次整理,形成算法步骤。
这里需要注意的是,应用边界值分析法进行教学是为了快速、准确地找到问题的结论,而不是为了进行精细的解题过程分析。
20 14 — 20 15 学年第 2 学期软件测试技术课程
实验报告
学院:计算机科学技术
专业:软件工程
班级:软件一班
姓名:马文龙
学号: 041240139
任课教师:刘玉宝
实验日期:2015年 4 月 23 日
实验步骤:
1 分析边界值。
2 运用健壮性边界条件法设计测试用例,得到测试用例表(测试用例表格式同实验1)。
3 执行测试,填写软件缺陷报告(软件缺陷报告格式同实验1)。
实验步骤:
通过假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。
假定此商店的货币面值只包括:50元(N50)、10元(N10)、 5元(N5)、1元(N1) 四种。
1.用例编号说明表格式如下:
用例编号N50 N10 N5 N1 找零张数
1 2 0 0 0 0
2 2 0 0 1 Error
3 0 100 0 0 0
4 0 0 20 0 0
5 0 0 0 100 0
6 0 101 0 0 Error。
边界值问题的定义及求解方法边界值问题(Boundary Value Problem,简称BVP)是数学中经典问题之一,它被广泛应用于各种科学和工程领域的模型分析和数值计算中。
本文将为您介绍边界值问题的定义、求解方法以及应用实例。
一、边界值问题的定义边界值问题是一类微分方程求解问题,它要求在某个区域内已知微分方程的解,以及在区域边界上给出解的初值或者边界值条件,求解微分方程在整个区域内的解。
边界值问题一般分为两种:Dirichlet问题和Neumann问题。
Dirichlet问题即在区域边界上给出解的值,而Neumann问题则是在区域边界上给出解的导数值。
二、边界值问题的求解方法1. 差分法差分法是一种常见的数值解法,它利用微分方程的一阶或者高阶差分逼近微分算子,将微分方程转化为代数方程组。
然后采用迭代或者直接求解代数方程组的办法得到微分方程的解。
2. 有限元法有限元法是一种求解偏微分方程的数值计算方法,它使用有限维函数空间来逼近实际问题的解。
将区域分割成若干个单元,建立有限元函数空间,然后根据偏微分方程和边界条件构造代数方程组,最后采用数值计算方法求解。
3. 辛普森法辛普森法是一种求解积分的数值方法,利用区间端点、抛物线顶点和中点构成的近似抛物线来逼近被积函数,从而得到积分的近似值。
三、边界值问题的应用实例1. 电路问题电路问题是一种常见的边界值问题,求解电路问题可以将电路看作一个带有边界条件的微分方程模型。
通过差分法或者有限元法求解该微分方程,可以得到电路中电流、电压等物理量的数值解。
2. 热传导问题热传导问题是一种边界值问题,它描述了物体中的温度分布问题。
通过差分法或者有限元法求解该方程,可以得到物体中温度的分布以及热流分布,为物体的热力学分析提供了重要的数值计算方法。
3. 声波传播问题声波传播问题也是一种边界值问题,它描述了声波在介质中的传播。
通过有限元法求解该方程,可以得到声波的传播路径以及声压分布,为声学分析提供了重要的数值计算方法。
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、边界值分析法原理和思想2.1边界值分析法的基本原理错误更可能出现在输⼊变量的极值附近。
失效极少由两个(或多个)缺陷的同时发⽣引起的。
2.2边界值分析法的基本思想选取正好等于,刚刚⼤于或刚刚⼩于边界的值作为测试数据,⽽不是选取等价类中的典型值或任意值作为测试数据。
表⽰⽅法:最⼩值min,略⾼于最⼩值min+,正常值nom,略低于最⼤值max-,最⼤值max3、单缺陷假设和多缺陷假设单缺陷假设是边界值分析的关键假设。
单缺陷假设指“失效极少是由两个或两个以上的缺陷同时发⽣引起的”。
在边界值分析中,单缺陷假设即选取测试⽤例时仅仅使得⼀个变量取极值,其他变量均取正常值。
多缺陷假设则是指“失效是由两个或两个以上缺陷同时作⽤引起的”,要求在选取测试⽤例时同时让多个变量取极值。
4、边界值测试数据类型类型包括:数值、速度、字符、地址、位置、尺⼨、数量、空间……项边界值测试⽤例的设计思路字符起始-1个字符/结束+1个字符假设⼀个⽂本输⼊区域允许输⼊1个到255个字符,输⼊1个和255个字符作为有效等价类;输⼊0个和256个字符作为⽆效等价类,这⼏个数值都属于边界条件值。
四、功能测试--边界值分析法
边界值分析法就是对输⼊或输出的边界值进⾏测试的⼀种⿊盒测试⽅法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试⽤例来⾃等价类的边界。
虽然边界值分析法是等价类划分法,但是这两种⽅法还有区别的。
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。
实例:
“某一为学生考试试卷评分和成绩统计的程序,其规格说明指出了对程序的要求:
程序的输入文件由80个字符的一些记录组成,这些记录分为三组:
(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,等等题的解答。
然后是学生乙的答案记录。
若学生最多为200人,输入数据的形式如下图所示:
该程序应给出4个输出报告,即:
按学生学号排序,每个学生的成绩(答对的百分比)和等级报告。
按学生得分排序,每个学生的成绩。
平均分数,最高与最低分之差。
按题号排序,每题学生答对的百分比。
以下两个表分别针对输入条件和输出条件,根据其边界值设置了测试用例。
(共43个测试用例)
输入条件测试用例
输入文件空输入文件
标题无标题记录
只有1个字符的标题
具有80个字符的标题
出题个数出了1个题
出了50个题
出了51个题
出了100个题
出了999个题
没有出题
题目数是非数值量
答案记录标题记录后没有标准答案记录
标准答案记录多1个
标准答案记录少1个
学生人数学生人数为0
学生人数为1
学生人数为200
学生人数为201
学
生答题某学生只有1个答卷记录,但有2个标准答案记录该学生是文件中的第1个学生
该学生是文件中的最后1个学生
学生答题某学生有2个答卷记录,但仅有1个标准答案记录该学生是文件中的第1个学生
该学生是文件中最后1个学生
输出条件测试用例
学生得分所有学生得分相同
所有学生得分都不同
一些学生(不是全部)得分相同(用以检查等级计算)
1个学生得分0分
1个学生得分是100分
输出报告
(1)(2)1个学生编号最小(检查排序)
1个学生编号最大
学生数恰好使报告印满1页(检查打印)
学生人数使报告1页打印不够,尚多1人
输出报告
(3)平均值最大值(所有学生均得满分)
平均值为0(所有学生都得0分)
标准偏差取最大值(1学生得0分,1学生得100分)
标准偏差为0(所有学生得分相同)输出报告
(4)所有学生都答对第1题
所有学生都答错第1题
所有学生都答对最后1题
所有学生都答错最后1题
报告打印完1页后,恰剩1题未打题数恰好使得报告打印在1页上。