目录
1. 基于需求的设计方法
基于需求的设计方法也是总的设计测试用例的方法,在工作中,我们需要参考需求文档/产品规格说明书来设计测试用例。
测试人员接到需求之后,要对需求进行分析和验证,从合理的需求中进一步分析细化需求,从细化的需求中找出测试点,根据这些测试点再去设计测试用例。
以该注册邮箱账号需求为例,我们来设计测试用例。
1.明确需求中的功能点
- 账号注册,账号登陆
2.结合万能公式设计测试点
上面叫做根据需求文档先设计初步的测试用例,而部分用例还需要细化 ,就需要借助具体的设计方法。
2. 具体的设计方法
2.1 等价类
- 上述设计的测试用例,存在用例还未完全设计完成,“姓名必填,6~15位的字符类型”,这样⼀个具体的需求该如何来设计测试用例呢?
- 测试的时候通过穷举法来测试6位、7位、8位......14位,15位是否测试通过,这样的方法能够满足测试的要求吗?若此时把范围从“6~15位”改成“6~150位呢”?试想一下这样一个简单的测试点需要测试多久呢,显然是不符合企业测试要求的。
- 而等价类法的出现就解决了穷举法不能解决的问题。
依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。
等价类分类:
- 有效等价类:对于程序的规格说明书是合理的、有意义的输入数据构成的集合,利用有效等价类验证程序是否实现了规格说明中所规定的功能和性能
- 无效等价类:根据需求说明书,不满足需求的集合。
根据等价类设计测试用例的方式:
1.确定有效等价类和无效等价类
2.编写测试用例,设计具体测试数据,例如:
缺点:等价类只考虑输入域的分类,没有考虑输入域的组合,需要其他的设计方法和补充。
2.2 边界值
边界值分析法就是对输入或输出的边界值进行测试的⼀种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
边界值包含:边界值+次边界值
🌴例如:
1. 有效的范围是 [6,15]
- 边界值:6 15(有效)
- 次边界值:5 6(无效)
2. 有效的范围是(6,15)
- 边界值:6 15(无效)
- 次边界值:7 14(有效)
边界值即给定返回的左数据和右数据;
选择次边界值的时候需要根据边界值的有效无效情况来定:
- 若边界值为有效等价类中的数据,则次边界值为无效等价类中的边界
- 若边界值为无效等价类中的数据,则次边界值为有效等价类中的边界
我们继续将上述用例通过边界值来补充完整:
2.3 正交法
- 通过等价类和边界值方法我们完成了部分用例的补充
- 当前还剩下一个场景的用例未补充完成,“只填写部分选项”,这里到底要设计多少测试用例呢?通常来说,为了保证系统的测试覆盖率,我们首先能够想到的就是排列组合。
- 假如当前有两个选项A和B,可以设计出都填写、都不填写、填写A、填写B四个测试用例(2²)。
- 假如当前有三个选项A、B、C,通过设计可以得到8个测试用例(2³)
- ......
- 当前可选的选项是5个,分别是,姓名、电⼦邮箱、密码、确认密码、验证码。按照排列组合设计出来的用例是32个.....
🍒正交法的目的是为了减少用例数目。用尽量少的用例覆盖输入的两两组合。
正交试验设计(Orthogonal experimentaldesign)是研究多因素多水平的⼀种设计方法,它是根据正交性,由试验因素的全部水平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析了解全面试验的情况,找出最优的水平组合。正交试验设计是⼀种基于正交表的、高效率、快速、经济的试验。
正交表:
如图最简单的正交表是L(4)(2(3)),含意如下:“L”代表正交表;L 下角的数字“4”表示有 4 横行,简称行,即要做四次试验;括号内的指数“3”表示有3 纵列,简称列,即最多允许安排的因素是3 个;括号内的数“2”表示表的主要部分只有2 种数字,即因素有两种水平1与2。
正交表的构成:因素数、水平数、行数。
因素:对指标的影响条件,通常是正交表中的⼀列。
水平:因素对应的可选项。
正交表的性质:
- 每一列中,不同的数字出现的次数相等。
- 任意两列中数字的排列方式齐全而且均衡。
正交法设计测试用例的步骤:
1. 找到因素和水平
2. 用allparis工具生成正交表
- 将因素和水平写入Excel表格中
- allparis目录下创建新的文本文件new.txt,复制Excel中的因素和水平,直接粘贴到文本中保存并退出
- 使用allparis命令生成正交表:allparis.exe new.txt > zhengjiao.txt
3. 根据正交表编写测试用例
4. 补充遗漏的重要测试用例
我们继续以邮箱注册为例, 采用正交法补全剩下的测试用例:
1. 找到因素和水平
- 因素:姓名、电子邮箱、密码、确认密码、验证码
- 水平:填写、不填写
2. 用allparis工具生成正交表
- 将因素和水平写入Excel表格中(使用 excel 表格可以保证格式是正确的,表格不需要保存)
- 在 allparis 同级目录下创建一个新的txt文件,复制Excel中的因素和水平,直接粘贴到文本中保存并退出
- 使用allparis命令生成正交表:allparis.exe text01.txt > text02.txt(将生成的正交表数据放入text02.txt文件中)
3. 根据正交表编写测试用例
4. 补充遗漏的重要测试用例
注意:使用 allparis 生成的正交表和预期有出入,但是不影响我们用来设计测试用例。
2.4 判定表法
通过具体的方法能够将测试用例设计的更加完整和规范。
需求中会存在各种各样的场景,现在我们把需求改成如下的要求:
用户输入的账号中包含admin字符,或者通过内部链接进入注册页面,提交注册按钮成为管理员身份;反之无管理员身份。
通过这个需求可以看出,不同的组合操作可能对应不同的结果。采用正交法是无法解决这样的问题的,这个时候就需要用到判定表法了。
判定表是一种表达逻辑判断的工具,形如:
通过该图,可以把所有条件对应的结果清晰的表达出来。我们就可以借助该表来清晰的写出测试用例。
根据判定表法设计测试用例的步骤:
- 确认需求中输入条件和输出条件
- 找出输入条件和输出条件之间的关系
- 画判定表
- 根据判定表编写测试用例
确认了步骤后,我们使用判定表法进一步对上述需求进行测试用例的设计:
1. 确认需求中输入条件和输出条件
- 输入条件:账号包含admin字符(a)、内部注册链接(b)、点击注册按钮(c)
- 输出条件:管理员(1)、无管理员(2)
2. 找出输入条件和输出条件之间的关系
3. 画判定表
4. 根据判定表编写测试用例
- 账号包含admin,非内部注册链接,点击注册按钮,为管理员身份
- 账号包含admin,内部注册链接,不点击注册按钮,非管理员身份
- 账号不包含admin,内部注册链接,点击注册按钮,为管理员身份
- 账号包含admin,内部注册链接,点击注册按钮,为管理员身份
- 账号包含admin,非内部注册链接,不点击注册按钮,非管理员身份
- 账号不包含admin,非内部注册链接,点击注册按钮,非管理员身份
- 账号不包含admin,非内部注册链接,不点击注册按钮,非管理员身份
2.4 场景法
场景法就是一个常规的流程中,某些阶段可能会出现一些意想不到的情况,常规流程是基本流,从阶段中分析出来的不同情况被称之为备选流。
下面是以逛街买衣服为例,场景法的使用方法。
该方法可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,使测试用例更容易理解和执行。
典型的应用是是用业务流把各个孤立的功能点串起来,为测试人员建立整体业务感觉,从而避免陷入功能细节忽视业务流程要点的错误倾向。
案例:
还是根据邮箱账号注册的案例,根据场景法来设计测试用例
根据场景法设计测试用例的步骤:
- 确定基本流
- 确定备选流
- 根据备选流补充测试用例
- 编写测试用例
编写测试用例:
- 输入正确的账号密码,点击注册后系统发出确认邮件并在24H内确认,注册成功。
- 不输入账号密码,点击注册,提示重新输入
- 只输入账号,不输入密码,点击注册,提示重新输入
- ......
2.5 错误猜测法
错误猜测法是对被测试软件设计的理解,过往经验以及个人直觉,推测出软件可能存在的缺陷,从而针对性地设计测试用例的方法。
这个方法强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个人的经验和直觉。
错误推测法和目前流行的“探索式测试方法”的基本思想一致,这类方法在敏捷开发模式下的投入产出比很高,被广泛应用于测试。
缺点:难以系统化,并且过度依赖个人能力。
🌳案例:
【以邮箱账号注册为例】
- 校验中特殊字符空格的处理?
- 密码校验中的大小写?
- 姓名中的特殊字符?
- 密码发送是否明文?