等价类法和边界值分析法,这两种方法只考虑了单个的输入条件,并未考虑输入条件的各种组合、输入条件之间的相互制约关系的场景。基于此短板,因果图法和判定表法应运而生。
主要包含五部分:
| 方法 | 因果图法/判定表法 |
|---|---|
| 核心 | 考虑输出条件对输入条件的信赖关系,即因果关系 |
| 优点 | a.有助于用一个系统的方法选择出高效的测试用例集;b.通过将规格说明转换为布尔逻辑网络,就可以指出规格说明的不完整和不明确之处 |
| 缺点 | a.针对条件组合数量庞大的场景,会产生大量的测试用例;b.通常它不能生成全部应该被确定的有效测试用例。 |
| 适用场景 | 在界面中有多个控件,控件之间有组合或限制关系,不同的输入组合会对应不同的输出场景 |
因果图和判定表法在变量值很多、排列组合数量极大的场景下,会生成非常庞大且冗余的测试用例,此时我们很难对所有组合场景进行全量测试用例覆盖,基于此短板,正交试验法应运而生。
使用PICT生成正交试验测试用例
因果图、判定表、正交试验主要是针对于不同条件输入输出的组合进行测试,但在实际需求中,也常会遇到需要对被测对象的状态流转进行验证的情况,此时前面几种方法将不再适用,对于这种状态转换类问题,功能图法则可大展身手。
抽象出待测系统的若干状态以及状态之间的转换条件和转换路径,然后从状态迁移路径覆盖的角度设计测试用例。
1)分析需求,明确状态节点,具体关注以下几个信息
| 适用场景 | a.由于某种条件成立导致发生状态改变的情况;b.主要关注状态转移的正确性 |
|---|---|
| 优点 | a.通过状态图可以清晰掌握系统的整个交互过程;b.可保证每个状态的所有可达状态都覆盖到;c.通过验证给定条件内是否能够产生需要的状态变化,可检验出是否存在不可达的状态、不必要的状态或其他非法状态,以及非法的状态转移 |
| 缺点 | 针对有效输入输出进行设计,所以无法覆盖无效路径和非法输入 |
| 注意事项 | a.每种状态至少需要访问一次;b.重点测试最常见、最普遍的状态转换;c.其次测试最不常用的状态转换路径;c.单个状态之间的转换可通过结合其他用例设计方法保证覆盖全面;5.添加非法测试路径进行测试。(异常输入、状态和条件的非法组合) |
场景法是一种通过使用事件触发流程,对系统的功能点或业务流程进行描述的方法。对于同一事件不同的触发顺序和处理结果,可以形成不同的场景。
在日常工作中,针对同一业务需求可以模拟出不同场景,测试用例中对所有功能点及业务流程的覆盖,有利于测试人员设计测试用例,从而提高测试效果,使测试用例更容易理解和执行。
1)业务层面:需熟悉需求业务逻辑,并针对当前需求进行发散性思考。
2)技术层面:需分析出基本流和备选流,通过遍历所有基本流和备选流,可以覆盖完整的业务场景。
在前面几篇文章中,为大家介绍的都是系统的方法论,但在实际需求测试的过程当中,受到外部环境及业务逻辑的影响,比如涉及多需求耦合、浏览器缓存堆积等情况,仅针对当前需求设计出的测试用例就会有覆盖不全的问题,此时就需要借助以往的经验进行反向错误推测,辅助其他方法对测试用例进行完善。在本篇文章中,首先会对错误推测法的思路进行介绍,并对本系列文章中讲解的所有测试用例设计方法进行归纳总结,给出具体的可应用业务场景,便于大家在遇到同类场景时可快速筛选出适用的方法,将测试用例设计方法论真正落地到日常工作中。
是基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法。
| 方法 | 错误推测法 |
|---|---|
| 优点 | 充分发挥热的直觉和经验;集思广益;方便使用;快速切入 |
| 缺点 | 难以知道测试的覆盖率;可能丢失大量位置的区域;带有主观性且难以复制;只能作为测试设计的补充,不能单独用来设计测试用例 |
| 适用场景 | 先用其他方法设计测试用例,再使用错误猜测法补充用例 |