几种常见的测试用例设计方法

一、等价类的划分

?定义:将所有输入数据合理划分为若干等价类,在每个等价类中取一个数据作为测试的输入条件,使用少量有代表性的测试数据,以获得较好的测试结果。等价类可以分为两种不同的情况:有效等价类和无效等价类。

1)确定等价类。

?有效等价类:满足输入条件

?无效的等价类:不能满足输入条件?超出范围值

空值

特殊字符

有空格(前、中、后)

2)生成测试用例

为每个等价类编写一个测试用例;

设计一个测试用例来覆盖尽可能多的有效等价类;

设计一个测试用例,覆盖尚未覆盖的无效等价类。

等价类划分的六个原则:

1)如果输入条件指定了值的范围或值的数量,则可以建立一个有效等价类和两个无效等价类。

例如,手机号码由11位数字组成。

有效:11位数字,符合电话号码规则。

无效:1,小于11位数;2、大于11的数字。

2)在输入条件指定输入值的集合或“必须如何”的条件下,可以建立有效等价类和无效等价类。

3)如果输入条件是布尔量,则可以确定有效等价类和无效等价类。布尔量是二进制枚举类型,布尔量有两种状态:真和假。

4)在输入数据的一组值被指定(假设n)并且程序必须分别处理每个输入值的条件下,可以建立n个有效等价类和一个无效等价类。

例如:

如果输入条件指示输入为中文、英文、数字中的一种,则这三个值分别作为三个有效等价类,除了这三个字符以外的任何字符都作为无效等价类。

5)在输入数据必须遵守规则的条件下,可以建立一个有效等价类(符合规则)和几个无效等价类(从不同角度违反规则)。

例如,输入条件表明每个学生可以选修1~3门课程。

有效:修1~3门课。

无效:1,无选修课。

2.选修课3门以上。

6)如果已知划分的等价类中的每个元素在程序处理中有不同的方式,那么等价类应该进一步划分为更小的等价类。

等价类划分要点:长度、类型、字母、汉字、特殊字符、空格、空格。

二、边值分析法

边界值分析法是等价类划分法的补充。

使用边界值分析法设计测试用例时,首先要确定边界条件。通常,输入和输出等价类之间的边界是重点测试边界的情况。选择恰好等于、刚好大于或刚好小于边界值的值作为测试数据,而不是选择等价类中的典型值或任意值作为测试数据。

1)如果输入条件指定了输入值的一个范围,那么测试用例应该针对该范围的边界进行设计,无效输入测试用例应该针对刚好超出边界的情况进行设计;

例如,需求指定输入数字在0~100范围内,测试数据应具有以下类别:

A.刚好等于边界:0,100;

b刚过边界:-1,101:;

C.刚好在范围内:1,99

2)如果输入条件指定了输入值的个数,那么测试用例应该针对输入值的最小个数,输入值的最大个数,一个小于最小个数,一个大于最大个数的情况来设计;

例1:输入手机号码如下:

a输入11位合法数字;b输入10位合法数字;c输入12个合法数字。

示例2:输入一个6-8位数的密码:

a输入6位数字;b输入8位数c输入5位数;d输入9位数。

3)如果程序输入或输出是有序序列,应特别注意序列的第一个和最后一个元素。

第三,错误的投机方法

错误推断法是根据经验和直觉推断程序中所有可能出现的错误,从而有针对性地设计测试用例的方法。需要多练习,在实践中积累更多的共性问题。

?错误推断法的基本思想:列出程序中所有可能出现的错误和容易出现错误的特殊情况,并据此选择测试用例——比如单元测试时模块中列出的很多常见错误——以往产品测试中发现的错误等。这些是经验总结。同样,当输入数据和输出数据都为0时。输入表为空或输入表只有一行-这些都是容易出错的情况。可以选择这些情况的例子作为测试用例。

四、因果图

因果图适用于描述各种输入条件组合的测试方法。(多步输入操作)

根据输入条件的组合,约束条件与输出条件之间的因果关系,分析输入条件的各种组合,从而设计一种测试用例方法,适用于检查程序输入条件所涉及的各种组合。

例:有一个自动售货机软件,处理单价1元5角的盒装饮料。如果投入1元50分,按下“可乐”、“雪碧”、“红茶”按钮,相应的饮料就会送来。如果你投入一枚两美元的硬币,当你送出饮料时,你将返回一枚五角硬币。

分析:

输入条件:a?放入1元50分?b?放入2元硬币

1?按下“可乐”按钮2?按下雪碧按钮?3?按下“红茶”按钮

中间状态:1?杜撰?2?按钮已按下。

输出结果:a?发可乐?b?发出雪碧c?送出红茶d?返回五十美分。

测试案例:

1)投币1元50,按下“可乐”按钮,送出可乐。

2)投币1元50,按下“雪碧”按钮,送出雪碧。

3)投币1元50分,按下“红茶”按钮,送出红茶。

4)投币2元,按“可乐”键,送出可乐,返还50美分。

5)投币2元,按“雪碧”键,送出雪碧,返还50美分。

6)投币2元,按“红茶”键,送出红茶,返还50分。

输入组合:抛硬币+按按钮。

结果组合:送饮料+退款。