边界值分析法+场景法
- 格式:doc
- 大小:295.50 KB
- 文档页数:9
软件功能测试中的边界值分析技术边界值分析技术在软件功能测试中扮演着重要的角色。
作为一种常见的测试方法之一,边界值分析可以帮助测试人员识别潜在的问题并提高测试效率。
本文将介绍边界值分析技术在软件功能测试中的应用,并探讨其优势和限制。
软件功能测试是一项旨在验证软件行为与预期功能相符合的活动。
通过边界值分析技术,测试人员能够确定输入值的边界,并对跨越边界的输入值进行测试。
这种方法基于边界值会引发软件错误的观点,并且注重处理输入值的边界情况。
边界值分析可以划分为三个不同的类别:上边界测试、中间值测试和下边界测试。
上边界测试是指对输入值的上限进行测试。
例如,在一个银行软件中,某用户的账户余额上限是100,000。
为了进行上边界测试,测试人员将测试输入值为100,000、100,001和100,002的情况。
这样的测试可以揭示在输入值接近或超过上边界时可能出现的潜在问题,例如溢出错误或系统异常。
中间值测试则是围绕输入值的中间范围进行的测试。
以银行软件为例,某函数的输入范围为1到100,000。
为了进行中间值测试,测试人员将选择一些代表性的中间值,如50,000和75,000。
通过这种测试,可以验证软件在处理中等大小的输入值时是否能够正确运行。
下边界测试是对输入值的下限进行测试。
在银行软件的例子中,某功能的输入下限是1。
为了进行下边界测试,测试人员将尝试输入1、0和-1等值。
这样的测试可以帮助测试人员发现当输入值位于下边界时可能出现的异常情况。
边界值分析技术在软件功能测试中有许多优势。
边界值分析能够最大程度地覆盖可能的输入范围,以有效地发现潜在的错误和缺陷。
边界值分析提供了一种集中测试资源的方法,因为测试人员可以仅关注边界情况而不需测试所有可能的输入值。
这样可以节省时间和资源,并提高测试效率。
边界值分析能够揭示在输入的边界处可能出现的异常情况,有助于改进软件的鲁棒性和稳定性。
然而,边界值分析技术也有一些限制。
黑盒测试的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和错误提⽰。
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)对16-bit 的整数而言32767 和-32768 是边界;
(2)屏幕上光标在最左上、最右下位置;
(3)报表的第一行和最后一行;
(4)数组元素的第一个和最后一个;
(5)循环的第0 次、第1 次和倒数第2 次、最后一次。
实例介绍边界值法一个软件无论实现怎样各种各样丰富的功能,其内部实现都不可避免的对各种各样的数据范围进行界定与判断,从而针对不同的数据范围进行所需的处理,从而实现软件的需求,而由于需求界定不准确、设计不严密、程序书写手误等等原因,对于这些数据范围边界的判断是软件极容易出错的地方,使软件做出错误的处理,从而无法满足软件需求。
针对于这种情况,软件测试中有一个测试方法叫做边界值法,这个方法也是经常被测试人员提到,我们下面来看看这个方法具体的操作方法。
首先来了解一下边界点的定义,边界点分为上点、内点和离点。
如图:结合上面的图示。
上点,就是边界上的点,不管它是开区间还是闭区间,就是说,如果该点是封闭的,那上点就在域范围内,如果该点是开放的,那上点就在域范围外;内点,就是在域范围内的任意一个点;离点,就是离上点最近的一个点,如果边界是封闭的,那离点就是域范围外离上点最近的点,如果边界是开放的,那离点就是域范围内离上点最近的点。
只要测到了这些点,就可以测出常见的一些错误,我们可以用实例来证明一下。
说明:蓝色表示测试通过,红色表示测试未通过。
实例1,闭区间边界值测试,需求是当输入数据是2-6(含2和6)之间的整数时,输出1,否则输入0。
实例2,开区间边界值测试,需求是当输入数据是2-6(不含2和6)之间的整数时,输出1,否则输入0从以上两例可以看出,不管是由于需求界定不准确、设计不严密、程序书写手误或者其他原因造成的语句编写错误,都可以用依据边界值法选出的测试点把它们抓出来。
边界值法多被应用于以上几个场景中:输入(输出)条件规定了取值范围输入(输出)条件规定了值的个数程序规格说明书中提到的输入或输出是一个有序的集合程序中使用了一个内部数据结构不管是哪种场景,边界值法的运用却没有太大的差别,首先都是要确定取值范围是属于开区间、闭区间还是半开半闭区间,然后再确定上点、离点、内点,分析预期结算,输出测试用例。
1 3 Sept. 2008©Neusoft Confidential 东软IT 人才实训中心功能测试技术—边界值分析法主要内容•边界值分析法的概念•常见的边界值•边界值分析法设计测试用例•标准性(一般性)测试•健壮性测试2边界值分析法•边界值分析法就是对输入的边界值进行测试的一种黑盒测试方法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
3为什么使用边界值分析法?•测试实践表明,大量的故障往往发生在输入定义域的边界上,而不是在其内部。
因此,针对各种边界情况设计测试用例,通常会取得很好的测试效果。
例如,一个循环条件为“≤”时,却错写成“<”;计数器发生少计数一次。
4怎样用边界值分析法设计测试用例?(1)首先确定边界情况通常边界就是应该着重测试的边界情况。
(2)选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。
5常见的边界值•对16-bit 的整数而言32767 和-32768 是边界•屏幕上光标在最左上、最右下位置•报表的第一行和最后一行•数组元素的第一个和最后一个•循环的第0 次、第1 次和倒数第2 次、最后一次6边界值分析法设计测试用例假设有两个变量x和y的程序F,x、y在下列范围内取值:Ya≤x≤b,c≤y≤d。
区间[a,b]和[c,d]是x、y的值域,程序F的输入定义域如图所示,即带阴影矩形中的任何点都是程序F的有效输入。
7标准性(一般性)测试对于一个含有n个变量的程序,保留其中一个变量,让其余的变量取正常值,被保留的变量依次取min、min+、nom、max-、max值,对每个变量都重复进行。
这样,对于一个有n个变量的程序,边界值分析测试程序会产生4n+1个测试用例。
边界值分析法是基于可靠性理论中称为“单故障”的假设,即有两个或两个以上故障同时出现而导致软件失效的情况很少,也就是说,软件失效基本上是由单故障引起的。
边界值分析法2篇边界值分析法是一种测试方法,用于确定输入变量的边界。
边界值分析法可确保测试用例覆盖所有可能的输入,同时保证测试用例数最小化。
在本篇文章中,我们将探讨边界值分析法的定义、原理、优点和缺点以及使用方法。
边界值分析法是指在测试中选择数据的边界值作为测试条件来引出潜在的错误或异常情况。
它是一种黑盒测试方法,在测试一个系统时,不需要关注系统的内部或实现细节,只需要依据输入和输出来测试系统的边界值。
边界值的范围包括以下几个方面:1. 最小值2. 最大值3. 少于最小值4. 多于最大值边界值分析法的目的是通过选择典型的边界数据来定义测试用例,用最小的测试用例集来覆盖所有可能的边界情况,同时避免测试用例过多。
边界值分析法的一般原理如下:1. 对每个输入或输出变量分别确定最小、最大和正常值范围。
2. 对于每个变量,确定测试数据的边界。
3. 分别选择最小、最大和边界值附近的测试数据。
4. 确定少于最小值和多于最大值的测试数据。
5. 确定测试数据和变量之间的有关关系和限制。
6. 确定测试数据的组合,并确定测试用例。
优点:1. 可用最小的测试用例数覆盖所有可能的输入,减少测试用例设计的工作量和测试的时间和成本。
2. 引出潜在的错误或异常情况,增强软件的可靠性和稳定性。
3. 容易理解和实施,适用于各种类型的软件测试。
缺点:1. 只能覆盖输入和输出变量的边界情况,无法覆盖完整的输入和输出空间。
2. 无法考虑变量之间的交互作用和依赖性,可能会漏掉一些重要的测试点。
3. 需要对每个输入或输出变量进行详细的定义和边界分析,对测试人员的能力和测试环境的要求较高。
使用方法:1. 确认测试变量和测试范围。
2. 对每个测试变量,确定最小、最大和正常值范围。
3. 对于每个变量,根据其类型和范围,确定测试数据的边界。
4. 选择最小、最大、边界值附近、少于最小值和多于最大值的测试数据。
5. 根据测试数据之间的关系和限制,确定测试数据的组合,并生成测试用例。
边界值分析方法一.方法简介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和错误提示。
探索测试的边界边界值分析与边界测试的实践探索测试的边界——边界值分析与边界测试的实践边界值分析(Boundary Value Analysis)和边界测试(Boundary Testing)是软件测试领域中一种重要的测试方法。
在本文中,我们将探索边界值分析及边界测试的实践应用。
一、边界值分析的原理边界值分析是一种黑盒测试方法,它基于一个简单的假设:软件缺陷常常出现在输入值的边界处。
边界值分析通过选取边界附近的测试用例,以确定是否有错误在边界处产生。
其原理如下:1. 上限边界:对于一个输入范围为x至y的数据,边界值分析选取x和y的值作为测试用例的边界。
通常情况下,还需要选择x-1和y+1的值来测试软件是否能正确处理边界之外的输入。
2. 下限边界:类似于上限边界,对于一个输入范围为x至y的数据,边界值分析选取x和y的值作为测试用例的边界。
还需要选取x+1和y-1的值来测试软件是否能正确处理边界之外的输入。
二、边界测试的目标边界测试是基于边界值分析的测试方法,其目标是发现软件边界处的缺陷。
边界测试关注以下几个方面:1. 边界处的错误处理:测试软件在边界值上和边界之外的输入时,是否能正确处理,避免出现溢出、越界等错误。
2. 边界值是否被正确利用:测试软件是否正确利用边界值对输入进行验证、计算和排列等操作。
3. 边界条件下的正确性:测试边界条件下软件的响应和结果是否符合预期。
三、边界测试的实践边界测试在软件测试的实践中具有广泛的应用。
下面将以一个订单金额计算软件的例子来进行边界测试的实践。
假设该软件用于计算订单金额,并根据金额的大小进行折扣。
根据产品需求,订单金额的范围为0至10000。
我们可以通过以下步骤进行边界测试:1. 上限边界测试:在此测试中,我们选取金额为10000的订单作为边界值。
确保软件能正确处理最大边界值,并给出正确的折扣。
2. 上限边界之外的测试:在此测试中,我们选取金额为10001或更大的订单作为边界值之外的输入。
⿊盒测试及⽅法1:定义: 在测试时,把程序看作⼀个不能打开的⿊盒⼦,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序进⾏测试,它只检查程序功能是否按照需求规格说明书的规定正常使⽤,程序是否能适当地接收输⼊数据⽽产⽣正确的输出信息,并且保持外部信息(如数据库或⽂件)的完整性,如图所⽰:2:⿊盒测试⽅法⿊盒测试设计⽤例的⽅法: 等价类,边界值(在⼯作中⽤的多) 场景法,状态迁移法(对整个流程书写⽤例) 判定表,因果图,正交表(复杂的组合情况编写⽤例) 经验:错误推测法,异常分析法,随机测试a)等价类划分:1:有效等价类 是有意义的、合理的输⼊数据构成的集合。
可检查程序是否实现了规格说明中所规定的功能和性能。
2:⽆效等价类 与有效等价类的定义恰巧相反注意要素:1、⽤最少的⽤例覆盖最多的有效等价类2、每⼀个⽆效等价类都是⼀个⽤例根据等价类创建测试⽤例的步骤:第⼀步:建⽴等价类表例:以年龄输⼊框为例输⼊条件有效等价类有效等价类取值⽆效等价类⽆效等价类取值20~99整数20<=年龄<=9988⼩于20 的正整数⼤于99的正整数⼩数负数中⽂字符英⽂字符特殊字符空格空(不输⼊任何字符)161001.2 ,88.9-9呵呵cxq@#¥%第⼆步:输出测试⽤例b)边界值: 边界值分析法就是对输⼊或输出的边界值进⾏测试的⼀种⿊盒测试⽅法。
通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试⽤例来⾃等价类的边界。
设计⽅法: 确定边界情况(输⼊或输出等价类的边界)选取正好等于、刚刚⼤于或刚刚⼩于边界值作为测试数据。
我们输⼊(输出)条件规定了值的个数,则⽤最⼤个数,最⼩个数,⽐最⼩个数少⼀,⽐最⼤个数多⼀的数作为测试数据例:以年龄输⼊框为例输⼊ 20~99整数输⼊条件涉及边界值的地⽅边界值分析取值20~99整数边界为20 和 99 19 ,20 ,21,98,99,100c)判定表:创建判定表的步骤:1)确定规则的个数:若有N个条件,每⼀个条件下有2个值,则有2^n种规则。
黑盒测试-边界值分析法和场景法边界值分析法:
实验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。