正交法
正交试验设计(Orthogonal experimentaldesign
)是研究多因素多⽔平的⼀种设计⽅法,它是根据正交性,由试验因素的全部⽔平组合中挑选出部分有代表性的点进⾏试验,通过对这部分试验结果的分析了 解全⾯试验的情况,找出最优的⽔平组合。正交试验设计是⼀种基于正交表的、⾼效率、快速、经济的试验。
正交表
如图最简单的正交表是
L
4
(
2
3
)
L4(2^3)
L4(23),含意如下:“L
”代表正交表;L
下⻆的数字“ 4
”表⽰有 4
横⾏,简称⾏,即要做四次试验;括号内的指数“3
”表⽰有 3
纵列,简称列,即最多允许安排的因素是 3
个;括号内的数“2
”表⽰表的主要部分只有 2
种数字,即因素有两种⽔平 1
与 2
。
- 因素:存在的条件
- 水平:因素的取值
特性:
- 每一列中,不同的数字出现的次数相同
- 任意两列中数字的排列方式齐全而且均衡
正交法的目的是为了减少用例数目。用尽量少的用例覆盖输入的两两组合
设计正交表
借助工具来实现正交表:allpairs
步骤:
-
根据需求,找出因素和水平
- 因素:姓名、电子邮箱、密码、确认密码、验证码
- 水平:填写、不填写
-
将因素和水平写入到
Excel
表格中(表格不需要保存)- 建议使用微软自带的
Excel
,不建议使用其他的Excel
工具
- 建议使用微软自带的
-
在
allparis.exe
同级文件夹下创建一个txt
文件,将Excel
表格中的内容复制到txt
文件中,不要有其他的操作,直接保存文件
如果不是用
Excel
直接粘贴到记事本里面,而是手动在txt
文件中编写因素和水平,使用命令生成正交表会存在格式校验错误的情况,allparis
工具对格式的要求非常严格
-
使用
allparis.exe
工具对txt
文件生成正交表文件- 在
pairs
目录中打开cmd
- 输入命令:
allparis.exe test01.txt > res-test01.txt
~
代表可以是任何选项(填写/不填写)allparis
工具生成的正交表和实际的正交表会有一定的出入,但是不影响整体的情况
- 在
-
根据生成好的正交表来编写测试用例,继续将重要的用例补全
- 姓名填写、电子邮箱填写、密码填写、确认密码填写、验证码填写
- 姓名填写、电子邮箱不填写、密码不填写、确认密码不填写、验证码不填写
- 姓名不填写、电子邮箱填写、密码不填写、确认密码填写、验证码不填写
- 姓名不填写、电子邮箱不填写、密码填写、确认密码不填写、验证码填写
- 姓名填写/不填写、电子邮箱填写、密码填写、确认密码不填写、验证码不填写
- 姓名填写/不填写、电子邮箱不填写、密码不填写、确认密码填写、验证码填写
- 姓名不填写、电子邮箱不填写、密码不填写、确认密码不填写、验证码不填写(自己补的,有全部填写,也有全部不填写)
判定表法
通过具体的⽅法能够将测试⽤例设计的更加完整和规范。需求中会存在各种各样的场景,现在我们把需求改成如下的要求:
- 用户输⼊的账号中包含
admin
字符,或者通过内部链接进⼊注册⻚⾯,然后提交注册按钮成为管理员⾝份;反之⽆管理员⾝份。
通过这个需求可以看出,不同的组合操作可能对应不同的结果。采⽤正交法⽆法解决这样的问题。⽽正交法能够解决需要考虑输⼊之间的组合关系对应不同结果的场景。
判定表
判定表是⼀种表达逻辑判断的⼯具,形如:
- 非常容易编写出测试用例(思路非常清晰)
- 没有判定表的话,写出来的用例组合就非常凌乱
- 感觉疲倦,也不感兴趣
- 感觉疲倦,但是感兴趣
- 不疲倦,感兴趣
- …
设计测试用例的步骤
根据判定表法设计测试用例的步骤:
-
确认需求中输入条件和输出条件
- 输入:账户包含
admin
字符,内部链接进入注册界面,提交注册按钮 - 输出:管理员/非管理员
- 输入:账户包含
-
找出输入条件和输出条件之间的关系
- 通过对输入条件的组合,找出不同组合对应的结果
-
画判定表
-
根据判定表编写测试用例
1. 账户包含admini
字符,提交注册按钮,成为管理员账号
2. 内部链接进入注册,提交注册按钮,称为管理员账号
3. …
错误猜测法
错误猜测法是对被测试软件设计的理解,过往经验以及个⼈直觉,推测出软件可能存在的缺陷,从⽽针对性地设计测试⽤例的⽅法。
这个⽅法强调的是对被测试软件的需求理解以及设计实现的细节把握,还有个⼈的经验和直觉。
错误推测法和⽬前流⾏的“探索式测试⽅法”的基本思想⼀致,这类⽅法在敏捷开发模式下的投⼊产出⽐很⾼,被⼴泛应⽤于测试。
当我们⼀提到某个⾮常熟悉的⼈的名字,脑海会⽴刻浮现对他的评价
- “武⼤郎”:憨厚,⽼实,为⼈坦诚,乐于助⼈
- “潘⾦莲”:美丽,“温柔”,“疼爱丈夫”,“善于交友”,“精通制⾐”
张三要去卖⽠
- ⽤例1:张三这⼈不实诚,⼩⼼他缺⽄少两
- ⽤例2:张三这⼈粗⼼,⼩⼼他的⽠被压坏了
- ⽤例3:张三这⼈⼩⽓,⼩⼼不要把他惹哭了
密码:是否加密,是否具备安全性
获取用户输入:是否存在 SQL 注入的情况
软件存在多版本:多个版本都要测试
活动每个月都存在,但是每个月的奖励不一样:兼容前面月份的奖励
测试文档
- 项目背景
- 项目功能
- 对项目进行测试
- 编写测试用例(用例截图放到这里)
- 执行测试(选取几个用例的步骤截图放到这里做展示)
- 测试总结(覆盖了多少个页面、用例是否全部执行通过、发现了多少个 bug?bug 出现的原因/涉及到的页面在哪里…)