概述
- 概念
黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检验每个功能都是否能够正常使用。
在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试人员进行直接测试,检查系统功能是否按照需求规格说明书的规定正常使用、是否能适当的接收输入数据而输出正确的结果等,检查相应的文档是否采用了正确的模板、是否满足规范需求。
黑盒测试是把测试对象看做一个黑盒子,利用黑盒测试法进行动态测试时,需要测试软件产品已经实现的功能是否符合功能设计要求,不需测试软件产品的内部结构和处理过程。
黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。黑盒测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。
- 黑盒测试试图发现以下类型的错误:
- 功能错误或遗漏;
- 界面错误;
- 数据结构或外部数据库访问错误;
- 性能错误;
- 初始化和终止错误。
- 黑盒测试设计测试用例方法
(1)等价类划分法
(2)边界值分析法
(3)因果图法
(4)判定表
(5)正交排列法
(6)场景法
黑盒测试设计测试用例方法
等价类划分法
- 概念
等价类划分法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例;该方法是一种重要的,常用的黑盒测试用例设计方法。 - 适用场景
只要有数据输入的地方,就可以使用等价类划分法,挑选少量的代表数据进行测试。
- 划分等价类:
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:与有效等价类的定义恰巧相反。
设计测试用例时,要同时考虑这两种等价类。因为,软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。
-
等价类的划分步骤
1.先考虑输入数据的类型(合法型和非法型)
2.再考虑数据范围(合法型中的合法区间和非法区间)
3.画出示意图,区分等价类
4.为每个等价类编号
5.考虑输出,进行补充。 -
设计测试用例(将等价类转化成测试用例):
在确立了等价类后,可建立等价类表,列出所有划分出的等价类:
然后从划分出的等价类中按以下三个原则设计测试用例:
① 为每一个等价类规定一个唯一的编号。
② 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步。直到所有的有效等价类都被覆盖为止。
③ 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步。直到所有的无效等价类都被覆盖为止。 -
案例:加法器
- 步骤1:分析需求,划分等价类(初步划分,第二部还要细化
需求:第一个数和第二数的要求都是-99—99之间的整数,不能为空。
有效等价类:[-99,99]
无效等价类:<-99的整数;>99的整数;非整数;为空:“”,“ ”
- 步骤2:细化等价类,依据是数据的类型和格式进行等价类的细化
通常对有效等价类的数据分成正整数和负整数的测试,而无效等价类数据一般不需细化。
- 步骤3:将划分好的等价类填入《等价类表》中(excel表中)
- 步骤4:编写测试用例。 从每个等价类中挑选至少1个代表数据进行测试
边界值分析法
- 引入边界值测试的原因:
因为数据的边界在程序中是最容易出错的(高危),所以数据的边界应该重点测试。 - 应用场合
有数据输入的地方,常常会使用边界值法
边界值法常和等价类划分法一起用,形成一套较完善的测试方案。
注意:等价类和边界值虽然常常一起使用,但并不是必须的。 - 边界值点
在有效等价类和无效等价类之间的分界点叫边界值(最大值,最小值)。 - 次边界值:
边界值两边的点是次边界,共四个值。分别为
无效最小次边界、
有效最小次边界、
有效最大次边界、
无效最大次边界。
要优先测边界值点(最大值,最小值),次边界可以有时间再测。 - 重要说明
边界值数据本质上就是属于某个等价类的范畴,虽是一种冗余,但必须要单独测。为了更好的测试质量,必要的冗余是必须接受的。 - 等价类划分+边界值法的综合应用
因果图和判定表法
-
概念
因果图法借助图形,着重分析输入条件的各种组合,每种组合条件就是“因”,它必然有一个输出结果,这就是“果“。
因果图是一种形式化的图形语言,由自然写成的规范转换而成,这种形式化的语言实际上一种简化记号表示数组逻辑图,不仅能发现输入输出中的错误,还能指出程序规范中的不完成性和二义性。
因果图方法最终生成的就是判断表,它适合于检查程序输入条件的各种组合情况。 -
因果图法的应用场合
在界面中有多个控件,控件之间有组合或者限制关系,不同的控件输入组合会产生不同的输出结果,为了搞清楚输入组合会产生怎样的输出结果,可以使用因果图/判定表法。
-
因果图法的技术基础
- 因果图概念
因(原因):输入条件
果(结果):输出结果
因果图法:就是通过画图的方式表达输入条件和输出结果之间的关系。 - 因果图中的图形符号(9个)
1)基本图形符号—表示因-果之间的关系(因果图的标识)
①恒等:若C1是1,则E1也是1;否则E1为0。
②非:若C1是1,则E1是0;否则E1是1。
③或:若c1或c2是1,则E1是1;否则E1为0。
④与:若c1和c2都是1,则E1为1;否则E1为0。
2)因果图约束
A.输入条件的约束有以下4类:
① E约束(互斥/异):a和b中至多有一个可能为1,即a和b不能同时为1。
② I约束(或):a、b和c中至少有一个必须是1,即 a、b 和c不能同时为0。
③ O约束(唯一);a和b必须有一个,且仅有1个为1。
B.输出条件约束类型
输出条件的约束只有M约束(屏蔽/强制):若结果a是1,则结果b强制为0。
- 因果图法的具体操作步骤
- 步骤1:找出所有的输入条件(因)
- 步骤2:找出所有的输出结果(果)
将找出的因果填入到《判定表》中(excel)
- 步骤3:找出输入条件的组合和限制关系。
- 步骤4:明确每组输入组合对应的输出结果,画因果图,填写判定表。(实际工作中可以只填判定表,省略画因果图)
- 步骤5:编写测试用例:以判定表为分析结果,每列代表一种情况,编写1条测试用例
判定表驱动分析方法
-
判定表通常由四个部分组成。
条件桩(ConDItion STub):列出了问题得所有条件。通常认为列出得条件的次序无关紧要。
动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值。
动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。
规则:任何一个条件组合的特定取值及其相应要执行的操作。在判定表中贯穿条件项和动作项的一列就是一条规则。显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列。 -
判定表的建立步骤:(根据软件规格说明)
① 确定规则的个数。假如有n个条件。每个条件有两个取值(0,1),故有种规则。
② 列出所有的条件桩和动作桩。
③ 填入条件项。
④ 填入动作项。等到初始判定表。
⑤ 简化、合并相似规则(相同动作)。
B.Beizer 指出了适合使用判定表设计测试用例的条件:
① 规格说明以判定表形式给出,或很容易转换成判定表。
② 条件的排列顺序不会也不影响执行哪些操作。
③ 规则的排列顺序不会也不影响执行哪些操作。
④ 每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
⑤ 如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。
正交排列法
- 应用场合
界面中有多个控件,每个控件有多个取值,测试时要考虑不同控件不同取值间的组合,若组合数量较大(一般>20种),没必要全测试,可使用正交排列法从所有组合中挑选最少、最优的组合进行测试(正交表),获得最大的测试覆盖率。
-
正交试验设计:
是研究多因素多水平的一种设计方法,它是根据正交性从全面实验中挑选出部分有代表性的点进行实验,这些有代表性的点具备了“均匀分散,齐整可比”的特点,正交试验设计是一种基于正交表的、高效率、快速、经济的试验设计方法。 -
说明:正交表是数学中统计学的研究理论
作为测试人员:
1)要会选择合适的正交表
2)要会应用正交表到测试领域中
-
正交排列法和判定表法的异同
1.都能测试控件的组合情况
2.判定表更适合组合情况较少的(一般<20种)
3.正交排列法适合组合情况较多的(一般>20种)
4.正交排列法无需考虑控件间的限制关系,而判定表法要考
虑控件间的组合和限制关系。 -
正交表详解
-
正交排列法的测试步骤
- 步骤1:分析需求,列出所有需要组合的控件和每个控件的取值(列在Excel表格中)
- 步骤2:选择合适的正交表。选择正交表就是确定m和k的值
- 步骤3:应用正交表。
(1)控件名称和正交表的列标题映射(替换)
(2)控件值和正交表列中对应的取值映射
- 步骤4:编写测试用例,一行就是一种组合,对应一个测试用例
- 正交表的总结
- 正交表是采用最少的测试数据(理论上也是最优的),达到了好的测试效果,但是毕竟遗漏了一些组合没测,有可能有遗漏缺陷的风险,所以如果时间允许可以适当补充。
- 正交表的局限:
1)要求每个控件中的取值个数要相等,这在实际应用中很 难遇到。
- 正交表的个数有限(9个)
- 正交表的特征(特性)
1)每列中不同数字出现的次数均等。
2)任意两列中,每一行两个数字会形成1个有序数对
则,每个有序数对出现的次数是均等的。 - 没有现成的正交排列怎么办?
学习正交排列法的测试思想:从所有组合集合中选取测试数据时,应该均匀的选取其中的组合作为测试用例,而不要只在某个局部选取数据。
- 正交表的总结
1.如果有多余的列,可以删除
2.把每一列能映射的值先映射好
3.把每一列多出的机会,尽量均匀的分配给该列的各个取值
4.最后检查是否有完全一样的组合,如果有适当的处理(要么改—建议,要么删除)
5.最优先的是正好可以匹配的正交表,如果没有就优先选择最为接近的(稍大一点的)
场景法
- 应用场景
- 界面特点:没有太多填写项,主要通过鼠标的点击、双击、拖拽等完成操作。
- 把自己当做最终用户,使用软件时可能会遇到哪些情形(场景)
- 主要目的:测试软件的主要业务流程、主要功能的正确性和主要的异常处理能力。
- 重点模拟用户的两类操作:
(1)用户正确的业务操作:验证软件业务功能能否正确实现
(2)用户错误的业务操作:验证软件的异常处理能力(健壮性)
*:模拟用户操作软件时的各种场景,场景法是基于软件业务的测试方法,测试人员对于软件业务要熟练。大多数业务比较复杂的软件系统都适合使用场景法。
- 使用场景法的思路
场景法主要测试软件的业务逻辑和业务流程。
当拿到一个测试任务时:
(1)先关注软件主要功能和业务流程是否正确实现:用场景法测试。
(2)再关注某个控件的细节(如:等价类+边界值,判定表等)是否满足要求。
*:当业务流程测试即主要功能没问题,再重点利用等价类、边界值、判定表等方法对控件细节进行测试(先整体后细节)。
- 场景法的核心概念
-
基本流(有效流、正确流):模拟用户正确的业务操作流程。软件功能按照正确的事件流,中间无任何差错,从开始直接执行到结束的一条正确流程。
目的:验证软件的业务流程和主要功能 -
备选流(无效流、错误流):模拟用户错误的操作流程。软件功能在执行过程中,除了基本流之外可能遇到的各种情况,是包含可能存在问题的各支流。
目的:验证软件的错误处理能力
- 场景法场景法的基本设计步骤
- 步骤一:根据说明,描绘出基本流和备选流
- 根据基本流和备选流生成场景。
在Excel中生成场景表
V-Valid 有效的 I-Invalid 无效的
5. 根据场景设计测试用例
扩展了解自动化测试工具自动化测试工具