第三章黑盒测试与用例设计---边界值分析法
- 格式:ppt
- 大小:1003.50 KB
- 文档页数:25
⿊盒测试⽅法——边界值分析(转)功能测试边界测试\越界测试技术详述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、等价类的分类 有效等价类:指符合《需求规格说明书》,输⼊合理的数据集合。
⽆效等价类:指不符合《需求规格说明书》,输⼊不合理的数据集合。
2、等价类思考步骤 (1)先确定有效和⽆效等价类 (2)有效等价类就是题⽬条件(两端的极值(边界值)要判断、中间随意⼀个值也要判断) (3)⽆效等价类先划分与条件相反的情况,再找到特殊情况(中⽂、英⽂、符号、空格、空)3、例题:A、测试QQ账号,账号的要求是 6---10位正整数。
B、⼿机号码1. 某城市的电话号码由三部分组成。
这三部分的名称和内容分别是地区码:空⽩或三位数字;前 缀:⾮’0’或’1’开头的三位数;后 缀:四位数字。
解:第⼀步:划分等价类,包括4个有效等价类,11个⽆效等价类。
第⼆步:确定调试⽤例。
对11个⽆效等价类,要选择11个调试⽤例,如下所⽰:3、等价类分类总结通过上⾯的案例,我们可以总结⼀下,当我们在测试⽂本框的程序可以考虑如下的情况:a:⽂本框要求输⼊的长度b:输⼊的类型c:组成规则d:是否为空e:是否重复---区分⼤⼩写,f:是否去除空格⼆、边界值分析1.什么是边界值分析法?边界条件,是指输⼊和输出等价类中那些恰好处于边界、或超过边界、或在边界⼀下的状态。
边界值分析法也是⼀种常⽤的⿊盒测试⽅法。
特别要注意的是:⼤量的错误是发⽣在输⼊或输出范围的边界上,⽽不是在输⼊范围的内部。
我们先来看⼀个例题,解释⼀下为什么要⽤边界值。
题⽬:输⼊的参数值必须⼤于0同时⼩于100的整数。
接下来我们来看程序员写的⼀段代码:number = int(input("输⼊的参数值必须⼤于0同时⼩于100的整数:"))if 100 >= number >= 18:print("输⼊的数据合法")else:print("输⼊的数据不符合要求")各位思考⼀下,这⾥⾯有什么问题呢。
⿊盒测试——等价类划分、边界值分析、因果图、状态图、场景、正交试验法⿊盒测试常⽤测试⽅法的选择:1⾸先采⽤等价类划分法来编写测试⽤例2必要时采⽤边界值分析法进⾏补充测试⽤例3采⽤错误推测法再追加测试⽤例4对照程序逻辑,检查⾃⼰设计出的测试⽤例逻辑覆盖程度,若覆盖不够,则需要再补充其他的测试⽤例5如果程序功能含有输⼊条件的组合情况,应⼀开始就采⽤因果图法6如果程序某功能适合⾃动测试,可以采⽤⾃动化测试及随机测试。
什么是⿊盒测试以及优缺点?定义:⿊盒测试把测试对象看做⼀个⿊盒⼦,不⽤考虑程序内部结构和内部特性,依据程序需求规格说明书,检查程序功能是否符合功能说明。
优缺点:优:1功能性测试与软件如何实现⽆关,如果实现发⽣变化,功能性测试仍然可⽤;2测试⽤例编写与软件开发同时进⾏,节省软件开发时间3通过软件的⽤例可⽤设计出⼤部分功能性测试⽤例缺:1测试⽤例数量⼤2测试⽤例可能产⽣很多冗余3功能性测试的覆盖范围不可能达到100%⿊盒测试⽤例设计⽅法?答:1等价类划分法(有意义,合理的输⼊数据组成集合检查是否符合产品需求;⽆意义,不合理的输⼊数据组成的集合推测不符合需求的地⽅)、2边界值分析法(输⼊的边界值进⾏测试)、3因果图法(分析和表达多逻辑条件下执⾏不同操作)、4状态图法(和产品需求反着来,⽐如要求输⼊数字,就输⼊字母,要求输⼊正数,就输⼊负数等)、5场景法(利⽤图解法分析输⼊的各种组合情况,即输⼊多个条件的各种组合及输出情况之间的相互制约关系)、6正交试验法(⽐如要进⾏18次测试,最终选择具有代表性的9次进⾏试验)7其他测试⽅法有:错误推测法、通过测试与失败测试、随机测试边界值划分法:考虑的边界数据类型如数值、速度、字符、地址、位置、尺⼨、数量;以及考虑条件的等价区间:默认、空⽩、空值、零值和⽆。
还要考虑:⾮法、错误、不正确和垃圾数据。
还要测试:程序的状态及切换。
次边界条件:。
黑盒测试用例设计方法
黑盒测试是一种基于功能需求进行测试的方法,测试人员只能看到程序的输入和输出,不能了解其内部的实现细节。
下面列举了几种常见的黑盒测试用例设计方法:
1. 等价类划分:将输入和输出的可能值划分为一些等价类,从每个等价类中选择一个测试用例进行测试。
这种方法可以有效地减少测试用例数量,同时覆盖各种不同的输入情况。
2. 边界值分析:在等价类的基础上,选择边界值进行测试。
边界值通常是最小或最大的合法值,以及小于或大于边界值的非法值。
测试这些边界值情况可以检测程序对边界条件的处理能力。
3. 错误推测:根据经验和直觉,预测程序中可能出现的错误,并设计测试用例来验证这些错误情况的处理能力。
例如,输入无效数据、缺失输入或重复输入等错误情况。
4. 决策表测试:将程序的输入和输出关系以决策表的形式列出,根据决策表设计对应的测试用例,确保测试覆盖所有的条件和动作。
5. 因果图测试:将程序中的输入、输出和各种条件之间的因果关系以因果图的方式表示,从因果图中选择测试用例进行测试,以覆盖各个因果路径。
6. 正交测试:将程序的输入条件按照不同的组合方式进行测试,以确定不同组合条件对程序的影响。
正交测试可以有效缩短测试用例的数量,并提高测试的覆盖率。
这些方法可以结合使用,根据具体的测试需求选择合适的方法来设计测试用例。
通过综合运用这些方法,可以提高黑盒测试的效率和有效性。
黑盒测试-边界值分析法和场景法边界值分析法:实验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 :下面是某高校选课系统的用例图,其“选课”用例的事件流描述如下:基本流:登录,选择课程,获取课程信息,选课,提交选课请求,显示选课结果。
黑盒测试的设计方法黑盒测试是一种测试方法,旨在测试软件系统的功能和用户需求是否符合预期。
与白盒测试相比,黑盒测试专注于测试系统的外部行为,而不关心系统的内部实现细节。
在黑盒测试中,测试人员没有访问系统源代码的权限,只能基于软件规约和需求文档进行测试。
为了设计有效的黑盒测试用例,以下是几种常用的黑盒测试设计方法:1. 等价类划分法:等价类划分法是黑盒测试中最常用的设计方法之一。
它将输入域划分为多个等价类,每个等价类代表一组具有相同功能或行为的输入。
通过选择其中的一个或几个测试用例进行测试,可以有效地覆盖输入域的多个情况。
例如,对于一个要求输入年龄的系统,可以将年龄划分为负数、0-17岁、18-60岁和大于60岁等等等价类。
2. 边界值分析法:边界值分析法是一种特殊的等价类划分方法,它关注输入域的边界条件。
根据输入域的边界条件设计测试用例,可以更好地发现潜在的问题。
例如,对于一个要求输入1-100之间的数字的系统,边界值分析法会测试输入1和100,以确保系统在边界条件下的正常工作。
3. 因果图法:因果图法是一种图形化的设计方法,通过对系统的功能和用户需求进行建模,以便更好地理解系统的逻辑关系。
通过使用因果图,测试人员可以发现功能之间的依赖关系,从而设计测试用例。
因果图法通常用于复杂系统,可以帮助测试人员更好地理解和覆盖系统的功能。
4. 判定表法:判定表法是一种以规则和条件为基础的测试设计方法。
在判定表中,规则和条件被列举出来,并使用真值表来确定特定条件下的期望结果。
通过设计测试用例来测试不同条件的组合,可以有效地发现系统的问题。
判定表法特别适用于决策较多的系统,可以帮助测试人员设计高效的测试用例。
5. 错误推测法:错误推测法是一种基于经验的测试设计方法。
测试人员根据以往的经验和知识,推测系统中可能存在的问题,并设计测试用例来验证这些问题。
错误推测法是一种质量保证团队经常使用的方法,可以帮助捕获一些开发团队容易忽略的问题。
测试用例设计中的边界值分析在软件开发过程中,测试用例设计是确保软件质量的重要环节之一。
其中,边界值分析是一种常用的测试技术,它通过分析输入和输出的边界值来设计测试用例,以发现潜在的错误和问题。
本文将详细介绍测试用例设计中的边界值分析方法,并提供一些实例说明。
边界值分析是一种黑盒测试技术,它基于一个简单的原理:错误往往发生在输入和输出的边界上。
在测试用例设计中,我们需要确定输入的最小值、最大值以及它们的邻近值,然后设计相应的测试用例。
通过这样的设计,我们可以覆盖更多的测试场景,提高测试效率。
我们需要确定输入的最小值和最大值。
以一个简单的整数输入为例,假设我们需要设计一个计算器程序,其中一个功能是求解两个整数的乘积。
根据边界值分析的原则,我们可以确定最小值为负无穷大,最大值为正无穷大。
因为计算器程序应该可以处理任意大小的整数,而不仅仅是在一个有限的范围内。
接下来,我们需要确定最小值和最大值的邻近值。
对于最小值来说,邻近值是最小值加一;对于最大值来说,邻近值是最大值减一。
在我们的例子中,最小值是负无穷大,邻近值就是负无穷大加一,即负无穷大加上任意一个负数。
最大值是正无穷大,邻近值就是正无穷大减一,即正无穷大减去任意一个正数。
有了最小值、最大值和它们的邻近值,我们现在可以设计一些测试用例来验证计算器程序的功能。
我们可以选择最小值作为输入,看计算结果是否正确。
我们可以选择最大值作为输入,同样地检查计算结果是否正确。
我们可以选择最小值的邻近值作为输入,检查计算结果的正确性。
我们可以选择最大值的邻近值作为输入,同样地检查计算结果。
除了最小值和最大值,边界值分析还需要考虑特殊情况下的输入。
以一个日期输入为例,假设我们需要设计一个日历程序,其中一个功能是判断某一天是一周的第几天(取值范围为1-7)。
根据边界值分析的原则,我们可以确定输入为1和7的情况,分别代表一周的第一天和最后一天。
进一步地,我们还可以选择其他的特殊情况作为输入,比如零和负数。
黑盒测试方法设计测试用例
为了设计黑盒测试用例,我们可以采用以下方法:
1. 等价类划分:将输入参数划分为等价类,并为每个等价类设计测试用例。
等价类是指具有相似特性、对系统行为具有相同影响的一组输入值。
例如,对于一个接受数字作为输入的功能,我们可以将输入划分为正数、负数和零三个等价类。
2. 边界值分析:测试输入的边界值和边界值附近的值。
边界值是指在输入范围的最小和最大值,以及比这些值稍微偏离的值。
例如,对于一个要求输入年龄的系统,我们可以测试输入0岁、1岁、99岁以及100岁来检查系统是否正确处理边界情况。
3. 错误推测:基于常见的错误类型和用户的典型操作,设计测试用例。
例如,常见的错误类型包括输入错误、格式错误、权限错误等。
4. 判定表测试设计方法:首先分析功能需求并提取相关条件和动作,然后构建一个判定表,记录每个条件的可能取值和相应的动作。
根据判定表,设计测试用例来覆盖不同的条件和动作的组合。
5. 边界图测试设计方法:根据功能需求,绘制边界图,表示系统的状态和状态转换。
然后根据边界图设计测试用例,覆盖不同的状态和状态转换。
6. 场景测试设计方法:通过分析用户的常用操作场景,设计测试用例来覆盖不同的场景。
场景测试设计方法重点在于测试不同的操作流程和系统交互。
通过以上方法的组合应用,可以设计出全面且有效的黑盒测试用例,以揭示系统中可能存在的问题和潜在缺陷。