测试用例的设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景图法等。
不过在实际项目中,最常用到的还是等价类、边界值和错误推测方法,如果能在实际的测试工作中,把这三种方法掌握完全并且熟练组合进行运用,测试工作应该就没什么问题
一、等价类
等价类划分方法,是将所有可能的输入数据划分成若干个子集,在每个子集中,如果任意一个输入数据对于揭露程序中潜在错误都具有同等效果,那么这样的子集就构成了一个等价类。后续只要从每个等价类中任意选取一个值进行测试,就可以用少量具有代表性的测试输入取得较好的测试覆盖结果
二、边界值
边界值分析方法,是选取输入、输出的边界值进行测试。因为通常大量的软件错误是发生在输入或输出范围的边界上,所以需要对边界值进行重点测试,通常选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。
比如说登录模块,需求是输入11位的电话号码和数字、字母和符号任意2中组合的6位数,
测试这个板块,先分析有效等价类
账号:
- 11位数字、整数
- 手机号格式正确
密码:
- 大于等于6位数
- 必须为2种类型的字符组合
那有效等价类就为:
账号是以188或者175等数字开头的整数组合的11位数
密码为数字、字母和符号任意2中组合,并达到6位数以上
无效等价类
- 手机号格式不正确
- 手机号为空
- 手机号包含小数
- 手机号包含其他特殊字符
- 密码纯数字
- 密码纯字母
- 密码纯符号
边界值测试:
手机号不足11位、手机号大于11位,手机号刚好11位
密码两种类型组合但不足6位,两种类型组合超过了6位,1种类型组合超过了6位
然后通过等价类和边界值组合对登录板块进行测试(不过只测这两种方法也不够,还需要配合其他的测试方法)
三、错误推测方法
错误推测方法是指基于对被测试软件系统设计的理解、过往经验以及个人直觉,推测出软件可能存在的缺陷,从而有针对性地设计测试用例的方法
一般来说是非常熟悉需求后,根据业务的场景来进行反向推测,比如正常业务应该是怎样,然后思考异常的情况下,是否会显示异常,是否会有相关提示,然后测试的时候也要弄清楚开发编写代码的逻辑来进行反向推测
一般来说是等价类、边界值和错误推测方法三种测试用例方法来进行组合使用,可以用来测试大部分的需求
四、判定表法
又称为策略表,基于策略表的测试,是功能测试中最严密的测试方法。该方法适合于逻辑判断复杂的场景,通过穷极条件获得结果,对结果再进行优化合并,会得到一个判断清晰的策略表
例如上传文档时的表单,需求是标题、标签必填,墨值必选(免墨值和设定墨值)、简介非必填、是否保密、所属公司做出如下表格
1 | 2 | 3 | 4 | 5 | 6 | ||
---|---|---|---|---|---|---|---|
条件 | 标题必填 | y | y | y | y | y | n |
标签必填 | y | y | y | y | n | n | |
mz选择 | y | y | y | n | n | n | |
保密 | y | y | n | n | n | n | |
公司 | y | n | n | n | n | n | |
结果 | 可发布 | y | - | y | y | - | - |
无法发布 | - | n | - | - | n | n |
根据表格得出如下结果,一共有6种组合测试方法(避免出现重复条件测试),在实际使用场景中使用最多的就是这四种方法。我觉得对于提高测试用例设计能力,除了必备的技术能力,个人学习能力,还需要平时多积累,对常见的缺陷模式、典型的错误类型以及遇到过的缺陷,要不断地总结、归纳,才能逐渐形成体系化的用例设计思维。