等价类划分法
定义:
把所有可能的输入数据按照某种特征划分成若干部分,从每个部分中选取少数具有代表性的数据作为测试用例
针对穷举场景:
输入框、下拉列表、单选复选框
类型划分:
1、有效等价类-满足需求的数据集合-检验程序是否实现了要求的功能
2、无效等价类-不满足需求的数据集合-检验程序的健壮性和容错性
等价类:
指某个输入域的子集合,在该子集合中的数据对于揭露程序中的错误都是等效的,具有等价特性
步骤:
1、明确需求:要注意需求的隐藏条件;考虑情况;长度、类型、规则;特殊场景:为空
2、划分有效等价类和无效等价类
3、对每条等价类设计数据,编写测试用例
边界值分析法
定义:
对输入或输出边界值进行测试,通常作为等价类划分法的补充。测试用例来自等价类的边界
场景:
输入条件是一个取值范围;输入条件规定输入的数据是一个有序集台
与等价类划分法的区别:
等价类划分法可以挑选等价范围内任意一个数据作为代表,边界值分析法要求每个边界值都要作为测试条件;边界值分析法不仅考虑输入条件,同样考虑输出产生的测试情况
常见边界值--概念:
边界点(上点):输入范围的边界点
离点:离边界点最近的点
内点:输入范围内的任意一个点
常见边界值--边界值取法:
输入条件为取值范围:一般取稍高于和稍低于边界的数据以及边界值本身。条件为:20-99的整数;取值为:19,20,21,98,99,100
输入条件为有序售合:取售合第一个字符和最后一个字符。条件:6位a~z小写字母;不考虑长度边界取值:abcdez
步骤:
1、明确需求
2、划分有效等价类和无效等价类
3、明确输入条件中的边界值
4、设计数据,编写测试用例
因果图法
定义:
因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法。适用于检查程序输入条件的各种组合情况
特点:
1、考虑蝓入条件的相互制约及组合关系
2、考虑输出条件对输入条件的依赖关系
背景:
等价类划分法和边界值分析法都是着重考虑输入条件,但没有考虑输入条件的各种组合,输入条件的相互制约关系。这样,单个输入条件可能出错的情况考虑到了,但多个输入条件组合起来可能出错的情况就被忽视了。
核心:
因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合
步骤:
1、找出所有的原因,即输入条件或输入条件的等价类
2、找出所有结果,即输出条件
3、明确所有输入条件之间的制约关系以及组合关系。哪些可以组合到一起,哪些不可以组合到一起
4、明确所有输出条件之间的制约关系以及组合关系。哪些结果不能同时输出,哪些结果可以输出
5、找出什么样的输入条件组合会产生哪种输出结果
6、把因果图转换为判定表/决策表
7、为判定表/决策表中的每一列表示的情况设计测试用例
案例:
充值系统
错误推断法:
定义:
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法
基本思想:
根据经验,列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例
使用场景:
适用于项目时间比较短促,任务比较繁重的情况下,而且测试经验较多
正交表法:
定义:
也叫正交排列法。就是使用最小的测试过程集合获得最大的测试覆盖率
使用场景:
针对多个输入框的测试
使用工具生成正交表:
正交设计助手工具
判定表法:
定义:
判定表也称决策表,是分析和表达多逻辑条件下执行不同操作的工具。是因果图法的产物
使用场景:
适合于有多个输入和多个输出,输入和输出之间有相互组合的关系,输入输出之间有相互制约和依赖的关系
组成:
1、条件桩(输入)--列出问题的所有条件,次序无关紧要
2、动作桩(输出)--列出问题规定可能采取的操作,次序无关紧要
3、条件项--列出针对它左列条件的取值。在所有可能情况下的真假值
4、动作项--列出在条件下、项的各种取值情况下应该采取的动作
场景法:
定义:
从起点起,通过一系列操作步骤(事件),达成某一结果,到终点的过程测试
概念:
现在的软件几乎都是由事件触发来控制流程,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果形成事件流
使用场景:
冒烟测试
总结:
测试方法主要有等价类、边界值、场景法、判定表、因果图、错误推断法、正交表法,首先拿到需求文档时,我会先用场景法梳理清楚软件的基本流和备选流,再结合等价类、边界值分析测试用例;当输入与输出有对应关系的时候我会先画出判定表,再结合等价类、边界值分析;当然遇到那种特别复杂的,像网上提到的售货机的例子,我会先用因果图梳理出判定表。还有就是可以根据自己对软件错误的知识积累,采取错误推断法来测试,最后还有一种不是很常用的正交表法,主要是用于有水平关系,项目比较紧急时,采取抽样测试的方法进行的测试。