一.等价类划分法
有效等价类
有效等价类: 指代表了一组有效的输入数据的集合,对于这组输入数据,系统应该有相同的输出行为。在测试时,只需选择一个代表性的输入数据进行测试即可。
无效等价类
无效等价类:指代表了一组无效的输入数据的集合,对于这组输入数据,系统应该有相同的错误处理。在测试时,至少需要选择一个代表性的无效输入数据进行测试,以验证系统是否正确地处理这些无效输入。
有效、无效等价类列子
如果程序规定了输入域的取值范围,则可以确定 1 个有效等价类和 2 个无效等价类。
例如:程序要求输入的数值是 50 到 100,那么 1 个有效等价类就是 50~100,而 2 个无效等价类就是小于 50,大于 100 的区域数据。
使用等价类划分法设计测试用例的步骤
1. 分析程序的要求说明,划分有效、无效等价类并列出有效、无效等价类表;
输入条件 | 有效等价类 | 编号 | 无效等价类 | 编号 |
2. 列出输入条件中可能的组合输入情况;
3. 选取合适的数据,编写测试用例。
等价类划分法案例:
某网站用户申请注册时,要求必须输入“用户名”、“密码”及“确认密码”,如下图所示。对每一项输入有如下要求:
- 用户名要求:3~12 位,只能使用英文字母、数字、中划线-、下划线_,这 4 种字符或 4 种字符的组合。并且首字符必须为字母或数字。
- 密码要求:6~20 位,只能使用英文字母、数字、中划线-、下划线_,这 4 种字符或 4 种字符的组合。
- 确认密码:与密码相同,并且区分大小写。
现在使用等价类划分法设计其测试用例。
注册等价类分析表
注册类等价组合表
选择测试数据
总结:
有效等价类和无效等价类,其实就是相反的。有效等价类代表正确的数据,而无效等价类代表错误的数据(做有效、无效等价类分析表时可以根据一推多来写,即根据一个有效等价类推出多个无效等价类)。
二.边界值分析法
一、上点、离点、内点的确定
-
上点:边界上的点,区间的终点值。
-
离点:离上点最近的点称为离点。开区间的离点,就是开区间中 上点 内侧紧邻的点。闭区间的离点,就是闭区间中 上点 外侧紧邻的点。
-
内点:上点之间(域范围内)的任意一点。
1.闭区间(闭区间边界两个值包括在内,如 [a,b])
-
离点(外点):紧邻上点范围之外的第一对点,如下图所示:
2.开区间(开区间边界的两个值不包括在内,如(a,b))
-
离点(外点):上点内部范围内紧邻的一对点,如下图所示:
3.半开半闭区间(闭区间一边的值包括在内,开区间一边的值不包括在内,如(a,b])
-
离点(外点):开区间一侧是上点内部范围内紧邻的点,闭区间一侧是上点外部范围内紧邻的点,如下图所示:
二、边界值划分法应用步骤
第 1 步:根据等价类划分有效及无效等价类,确定上点、离点及内点,每个点统一编号。
第 2 步:设计一个新的测试用例,使其尽可能覆盖所有尚未覆盖的有效等价类,直到所有有效等价类完全覆盖。
第 3 步:设计一个新的测试用例,使其仅覆盖一个无效等价类,直到所有无效等价类完全覆盖。
三、边界值划分法案例
如有一个用户名输入框,取值范围是:用户名在 6-18 位之间。那么:
-
上点:区间的端点值,6、18
-
内点:边界上有效范围内的任意一点,10
-
离点:离上点最近的点,根据上述情况也分为3种,如下:
三.场景法
【场景法概念】
场景法 就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。软件操作是由事件触发来控制流程的,事件触发时的情景就形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。
场景法一般包含 基本流 和 备选流 ,从一个流程开始,通过描述经过的路径来确定测试用例的过程,经过遍历所有的基本流和备选流来完成整个场景。
-
基本流:也叫有效流或正确流,主要是模拟正确的业务操作过程的情景。
-
备选流:也叫无效流或错误流,主要是模拟无效的业务操作过程的情景。
四.正交法
【正交实验法概念】
正交实验法是一种基于正交表的、高效率、快速、经济的实验设计方法,它研究“多因素多水平”的情况,然后套用正交表来随机地产生用例(用例之间没有主次之分),是一种提高测试覆盖率的简单易用的方法。
-
因素(Factor):在一项实验中,凡是被考查的变量就称为因素。(因素你要填内容的名字)
-
水平(Level):在实验范围内,因素被考查的值称为水平。(水平就是你要填的内容)
-
正交表的表现形式可描述如下:
也可以简单的写成:L行数(“水平”的“因素”次方)。
如: L4(2 的 3 次方)是指有 3 个因素,每个因素最多有 2 个水平(取值),根据正交表,共可以设计 4 条测试用例。
-
常用的正交表请参考如下链接:
第十五届蓝桥杯(软件测试)模拟赛 2 期题目_蓝桥杯 - 蓝桥云课
五.判定表法
【判定表法概念】
判定表,是一种表格状的图形工具,适用于处理判断条件较多,各条件又相互组合、
有多种决策方案的情况。由于判定表可以把复杂的逻辑关系和多种条件组合的情况表
达的既具体又明确,因此在程序设计发展的初期,判定表就经常被当做编写程序的辅
助工具。
判定表通常由 4 个部分组成:
任何一个条件组合的特定取值及其相应要执行的操作称为一条规则,在判定表中贯穿
条件项和动作项的一列就是一条规则。显然,判定表中条件有多少组合取值,也就有
多少条规则。
总结:
动作桩:你要操作的功能
动作项:操作成功/操作失败
条件桩:操作功能里面的条件
条件项:输入的内容是否正确
根据软件规格说明,建立判定表的步骤如下:
第 1 步:分析需求,列出所有的条件桩和条件项;
第 2 步:分析需求,列出所有的动作桩和动作项;
第 3 步:根据规则,设计初始判定表;
第 4 步:简化判定表,合并相似规则,设计测试用例
六.因果图法
因果图法是从程序规格说明描述中,找出原因(输入条件)和结果(输出或程序状态的改变)。根据原因和结果之间的关系画出关系图,然后转换为特定的判定表的黑盒测试方法。
使用因果图设计测试用例的步骤如下:
-
第 1 步:分析待测系统的规格说明,找出原因与结果。
-
第 2 步:明确所有原因和结果之间的制约关系以及组合关系,画出因果图。
-
第 3 步:在因果图上标记约束条件。
-
第 4 步:跟踪因果图中的状态条件,把因果图转换为判定表。
-
第 5 步:将判定表中的每一列作为依据,生成测试用例。
软件的规格说明中对登录名输入包含这样的要求:
输入的第一个字符必须是”$”或英文字母,
第二个字符必须是一个数字,在此情况下进入第二个窗口;
但如果第一个字符不正确,则给出信息 M;
如果第二个字符不是数字,则给出信息 N。
【解析】:
分析程序的规格说明,列出原因和结果。如下表所示。
将原因和结果之间因果关系用逻辑符号连接起来,得到因果图,如下图所示。
图中 c12为中间节点,是导出结果的进一步原因。
在因果图上标记约束条件。
因为 c1和 c2不可能同时为 1,即第一个字符不可能既是 c1又是 c2,所以在因果图上对其施加 E 约束,得到具有约束的因果图。如下图所示。
将因果图转换成判定表,如下表所示:
设计测试用例。
表中的前 2 种情况,因为 c1和 c2不可能同时为 1,所以排除。根据判定表,设计出 6 个测试用例,如下表所示。
用例编号 输入数据 预期输出 TC-001 $5 进入第 2 个窗口 TC-002 $a 给出信息 N TC-003 a9 进入第 2 个窗口 TC-004 cb 给出信息 N TC-005 42 给出信息 M TC-006 @% 给出信息 M 和信息 N(是否会弹出信息 N,具体要看程序是否有 M 约束屏蔽发生)