测试随笔(五):设计好的测试用例
1.一个“好的”测试用例,必须具备以下三个特征。
- 整体完备性: “好的”测试用例一定是一个完备的整体,是有效测试用例组成的集合,能够完全覆盖测试需求。
- 等价类划分的准确性: 指的是对于每个等价类都能保证只要其中一个输入测试通过,其他输入也一定测试通过。
- 等价类集合的完备性: 需要保证所有可能的边界值和边界条件都已经正确识别。
2.测试设计方法
等价类划分法、边界值分析法、错误推测方法、因果图方法、判定表驱动分析法、正交实验设计方法、功能图分析方法、场景设计方法、形式化方法、扩展有限状态机方法
3、实际案例
学生信息系统中有一个“考试成绩”的输入项,成绩的取值范围是 0~100 之间的整数,考试成绩及格的分数线是 60。
-
等价类划分
有效等价类 1:0~59 之间的任意整数;
有效等价类 2:59~100 之间的任意整数;
无效等价类 1:小于 0 的负数;
无效等价类 2:大于 100 的整数;
无效等价类 3:0~100 之间的任何浮点数;
无效等价类 4:其他任意非数字字符。 -
边界值分析法
通常选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。
选取的边界值数据应该包括:-1,0,1,59,60,61,99,100,101。 -
错误推断法
错误推测方法是指基于对被测试软件系统设计的理解、过往经验以及个人直觉,推测出软件可能存在的缺陷,从而有针对性地设计测试用例的方法。
Web 界面的 GUI 功能测试,需要考虑浏览器在有缓存和没有缓存下的表现;Web Service 的 API 测试,需要考虑被测 API 所依赖的第三方 API 出错下的处理逻辑;
对于代码级的单元测试,需要考虑被测函数的输入参数为空情况下的内部处理逻辑等等。
4、在具体的用例设计时
1)首先需要搞清楚每一个业务需求所对应的多个软件功能需求点,
2)然后分析出每个软件功能需求点对应的多个测试需求点,
3)最后再针对每个测试需求点设计测试用例。
5、具体的测试用例本身的设计
- 从软件功能需求出发,全面地、无遗漏地识别出测试需求是至关重要的,这将直接关系到用例的测试覆盖率。
- 对于识别出的每个测试需求点,需要综合运用等价类划分、边界值分析和错误推测方法来全面地设计测试用例
案例:以“用户登录”的功能性测试需求为例
1)首先应该对“用户名”和“密码”这两个输入项分别进行等价类划分,列出对应的有效等价类和无效等价类
2)对于无效等价类的识别可以采用错误猜测法(比如,用户名包含特殊字符等),然后基于两者可能的组合,设计出第一批测试用例。
3)等价类划分完后,你需要补充“用户名”和“密码”这两个输入项的边界值的测试用例,比如用户名为空(NULL)、用户名长度刚刚大于允许长度等。
6、总结
1、“好的”测试用例一定是一个完备的集合,它能够覆盖所有等价类以及各种边界值
2、“好的”测试用例在设计时,需要从软件功能需求出发,全面地、无遗漏地识别出测试需求至关重要。
3、设计测试用例的方法有很多种,但综合运用等价类划分、边界值分析和错误推测方法,可以满足绝大多数软件测试用例设计的需求。
4、必须要深入理解被测软件的架构设计,深入软件内部的处理逻辑,需求覆盖率和代码覆盖率这两个指标可以帮你衡量测试执行的完备性
用例管理工具:常用的用例管理工具JIRA,Testlink,还有重量级的ALM等