文章目录
- 概念
- 设计
- 正交法
- 判定表法
本篇总结的是测试用例的概念和设计方法
概念
测试用例是为了实施测试而向被测试的系统提供的一组集合,这个集合中包含的内容有测试环境,操作步骤,测试数据,预期结果等要素
在测试用例的设计中,一个原则是,测试用例要对于预期的结果做出定义,这样能够判断测试的结果是否符合最初的预期结果
设计
那如何进行测试用例的设计呢?
假设现在有一个门锁,如果要对门锁进行测试,那么该如何进行测试?
一个基本的设计思路是,功能测试+界面测试+性能测试+兼容性测试+易用性测试+安全测试
- 功能测试:就是去看它的功能和预期的结果是否相同,只要相同就说明它的功能是正常的
- 界面测试:这个也比较好理解,就是对于界面进行测试,去看它的整体元素布局是否和设计图相同
- 性能测试:项目的功能已经完备了,但是性能未必好,因此要在功能已经完备的基础上去看它的性能整体表现的怎么样
- 兼容性测试:例如,设计出的一个软件,能不能在PC端打开,能不能在移动端打开,而移动和PC又分为不同的操作系统,那对于这些操作系统的兼容性测试也是有必要的
- 易用性测试:易用性测试简单来说就是测试它的上手成本怎么样,如果上手难度小,那么用户就更容易使用,也就更容易被进行推广
- 安全测试:安全测试就是负责检测各种安全
具体设计
那下面,就依据上面的这六点,进行一次设计测试用例,比如现在要进行的是邮箱注册的这样的测试用例设计:
正交法
这里采用一个正交法的例子来进行补充
对于正常的测试用例来说,大概想到的就是排列组合,比如有a和b两个选项,那么排列组合就是四种情况,都填写,a填b不填,b不填a填,两个都不填
那如果是三个选项,就是8种情况,四个选项就是16种,五个就是32种…
而正交法的目的主要是为了减少测试用例的数目,用尽量少的测试用例覆盖输入的组合情况
正交试验设计(Orthogonal experimental design)是研究多因素多水平的一种设计方法,它是根据正交性,由试验因素的全部水平组合中挑选出部分有代表性的点进行试验,通过对这部分试验结果的分析了解全面试验的情况,找出最优的水平组合。正交试验设计是一种基于正交表的、高效率、快速、经济的试验。
正交表:
如图最简单的正交表是L(4)(2(3)),含意如下:“L”代表正交表;L下角的数字“4”表示有4横行,简称行,即要做四次试验;括号内的指数“3”表示有3纵列,简称列,即最多允许安排的因素是3个;括号内的数“2”表示表的主要部分只有2种数字,即因素有两种水平1与2。
正交表的构成:因素数、水平数、行数。
因素:对指标的影响条件,通常是正交表中的一列。
水平:因素对应的可选项。
正交表的性质:
- 每一列中,不同的数字出现的次数相等。
- 任意两列中数字的排列方式齐全而且均衡
正交法设计测试用例的步骤:
- 找到因素和水平
- 用allparis工具生成正交表
- 将因素和水平写入Excel表格中
- allparis目录下创建新的文本文件new.txt,复制Excel中的因素和水平,直接粘贴到文本文档保存并退出
- 使用allparis命令生成正交表:allparis.exe new.txt>zhengjiao.txt
- 根据正交表编写测试用例
- 补充遗漏的重要测试用例
继续以邮箱注册为例,采用正交法补全剩下的测试用例。
- 找到因素和水平
因素:姓名、电子邮箱、密码、确认密码、验证码
水平:填写、不填写 - 用allparis工具生成正交表
首先创建一个文本文件为:
姓名 电子邮箱 密码 确认密码 验证码
填写 填写 填写 填写 填写
不填写 不填写 不填写 不填写 不填写
其次进行生成:
TEST CASES
case 姓名 电子邮箱 密码 确认密码 验证码 pairings
1 填写 填写 填写 填写 填写 10
2 填写 不填写 不填写 不填写 不填写 10
3 不填写 填写 不填写 填写 不填写 8
4 不填写 不填写 填写 不填写 填写 8
5 ~填写 填写 填写 不填写 不填写 2
6 ~填写 不填写 不填写 填写 填写 2
PAIRING DETAILS
var1 var2 value1 value2 appearances cases
姓名 电子邮箱 填写 填写 2 1, 5
姓名 电子邮箱 填写 不填写 2 2, 6
姓名 电子邮箱 不填写 填写 1 3
姓名 电子邮箱 不填写 不填写 1 4
姓名 密码 填写 填写 2 1, 5
姓名 密码 填写 不填写 2 2, 6
姓名 密码 不填写 填写 1 4
姓名 密码 不填写 不填写 1 3
姓名 确认密码 填写 填写 2 1, 6
姓名 确认密码 填写 不填写 2 2, 5
姓名 确认密码 不填写 填写 1 3
姓名 确认密码 不填写 不填写 1 4
姓名 验证码 填写 填写 2 1, 6
姓名 验证码 填写 不填写 2 2, 5
姓名 验证码 不填写 填写 1 4
姓名 验证码 不填写 不填写 1 3
电子邮箱 密码 填写 填写 2 1, 5
电子邮箱 密码 填写 不填写 1 3
电子邮箱 密码 不填写 填写 1 4
电子邮箱 密码 不填写 不填写 2 2, 6
电子邮箱 确认密码 填写 填写 2 1, 3
电子邮箱 确认密码 填写 不填写 1 5
电子邮箱 确认密码 不填写 填写 1 6
电子邮箱 确认密码 不填写 不填写 2 2, 4
电子邮箱 验证码 填写 填写 1 1
电子邮箱 验证码 填写 不填写 2 3, 5
电子邮箱 验证码 不填写 填写 2 4, 6
电子邮箱 验证码 不填写 不填写 1 2
密码 确认密码 填写 填写 1 1
密码 确认密码 填写 不填写 2 4, 5
密码 确认密码 不填写 填写 2 3, 6
密码 确认密码 不填写 不填写 1 2
密码 验证码 填写 填写 2 1, 4
密码 验证码 填写 不填写 1 5
密码 验证码 不填写 填写 1 6
密码 验证码 不填写 不填写 2 2, 3
确认密码 验证码 填写 填写 2 1, 6
确认密码 验证码 填写 不填写 1 3
确认密码 验证码 不填写 填写 1 4
确认密码 验证码 不填写 不填写 2 2, 5
下面就可以根据正交表来写测试用例了,测试用例可能会有一些遗漏,手动补全即可
判定表法
通过具体的方法可以让测试用例设计的更加完整和规范
需求中会存在各种各样的场景,现在把需求改为下面的要求:用户输入的账号中包含admin字符,或者通过内部链接进入注册界面,提交注册按钮成为管理员身份,否则没有
那对于这样的需求来说,不同的组合会出现不同的结果,那使用正交法是无法解决这样的场景的,因此就要使用一下判定表法
使用判定表法的步骤
- 确认需求中输入条件和输出条件
- 找出输入条件和输出条件之间的关系
- 画判定表
- 根据判定表编写测试用例
输入条件:账号包含admin字符,内部注册链接,点击注册按钮
输出条件:管理员,无管理员
只有符合ac,bc,abc才是管理员,其他都是无管理员