一、等价类划分
定义:等价类划分是把所有可能输入的数据,即程序的输入域划分为若干个子部分(子集),然后从每个一个子集当中取少量的具有代表性的数据作为测试用例。
等价类划分是黑盒测试用例设计中最重要的一个方法。
等价类是指的某一个输入子集合,在该子集中,各个输入数据对于揭露程序的错误都是等效,并且
合理的假定;测试某个等价类的代表值就相当于测试这一类的其他值。因此,可以把全部输入数据合理
划分为若干等价类,在每一个等价类当中取一个数据作为输入条件,就能够用少量代表性的数据取得
很好的测试效果。
等价类划分可以分为有效等价类,无效等价类。
有效等价类:是指对于程序的规格说明书来说,是合理的,有意义的输入数据构成的集合。
利用有效等价类可以检验程序是否实现了规格说明书中规定的功能和性能。(应该做的)
无效等价类:是指对于程序来说,不合理的,无意义的输入的数据构成的集合。
对于具体的问题,无效等价类至少应该有一个,也可能多个。(不应该做的,拦截的)
划分标准:
1)完备测试,覆盖完全,避免冗余
2)划分等价类最重的是:集合的划分,划分为互不相交的组,子集,而子集的并不是整个集合
3)子集互不相交:保证无冗余
4)同一类标识(选择)一个测试用例,同一类等价中,往往处理时相同的,相同的处理映射的是"相同
的处理路径"。
使用步骤:
1、确定输入项(输入内容) : 需求/界面
2、确定每一项的输入条件 :需求/界面/查看源代码
3、根据条件确定等价类(有效、无效) : 选填项都是有效的
4、组织测试用例覆盖等价类
原则:有效等价类在一条测试用例当中尽可能的多覆盖,同一个条件下有多个有效值,每条用例覆盖一个
无效等价类在一条测试用例中只覆盖一个
二、边界值分析法
定义:边界值分析法就是对输入或者输出的边界值进行测试的一种黑盒测试用例设计方法,通常作为等价类划分的补充,如果等价类划分的时候存在长度,个数,大小,范围,时间
等等,需要使用边界值分析法进行补充。
与等价类的区别:
1)边界值分析不是从某个等价类中随便挑选一个作为代表,而是这个等价类的每个边界值作为测试条件
2)边界值不仅考虑输入的情况,还要考虑输出的情况,输出的时候会产生空间问题。
原理:大量的错误都是发生输入或者输出的边界值范围上的,而不是发生输入输出的范围内部,因此针对各个边界值的情况设计测试用例,可以检查出更多的问题(错误 bug)
边界值分类:
上点:边界上的点(刚刚等于)
离点:离边界值最近的点(一般都是取相差一个单位的点)
内点:在范围内任意取一点
例如: 用户名长度 6~ 18 位
上点: 6 ,18
离点:5,19
内点:7~17随意
如何确定离点?
如果是闭区间, [6,18] ,离点肯定是在区间之外 5,19
如果是开区间,(6,18),离点在区间之内,7,17
如果是 [6,18) ,离点 5,17
总结:闭区间离点在外,向外退一个单位,如果是开区间,向内一个单位。
三、 输入域测试:在等价类划分,边界值分析的基础上,考虑特殊值的输入和极限值(超大,超多,超长的)输入
例如: 特殊值输入 ,例如,界面上文本框输入:输入一串空格,然后提交或者保存
极限值输入:注册的时候,如果没有给出明确的长度限制,输入超长字符串(受存储空间的影响),跟数据库的设置有关系…
mysql 自以为是存最大的,Oracle 超出范围就报错,无法存储
四、状态迁移法:业务流程测试使用比较多
主要是面向:被测试软件或者系统功能抽象出若干个状态,并且明确每个状态转换的条件和路径。
实际工作中:电梯的系统测试,订票系统,电商平台的订单测试用的就是状态迁移法,非常严谨的测试。
使用步骤:
根据需求提取全部状态
绘制状态迁移图
根据状态迁移图确定迁移路径
根据迁移图的路径构造测试数据编写测试用例,覆盖迁移路径,一条路径一个测试用例
五、流程分析法:主要是针对业务流程测试使用
前提:非常熟悉被测试对象的业务流程(正常流程,异常流程)
流程分析法使用的步骤:
1、画出或者读懂流程图
2、确定测试路径
3、针对测试路径编写设计测试用例
流程分类:
基本流程:按照正确的时间实现的流程
备选流程:经历了波折但是最终达到目的地的流程
异常流程:操作不成功的流程
流程图的作用:提醒,参考,目的是将复杂的业务用简单明了的方式表达
但是只提醒大的功能点,只关注流程是否能走通,各个环节的细节功能点是不表达。
六、判定表驱动法
定义:判定表是分析和表达多逻辑条件执行不同操作的情况的工具
优点:能够将复杂的问题按照各种可能的情况全部列举出来,简单明了,避免遗漏,在一些数据处理问题中,
某些条件要组合,分别执行不同的操作,判定表特别适合处理这类问题。
判定表:
条件桩:判定表中列出所有的输入
条件项:所有输入取值真假的全排列组合
动作桩:判定表中列出所有可能输出
动作项:每一个条件对应的输出
条件:输入 动作:输出
使用步骤:
1、确定所有的输入项(条件)和输出的动作
2、将所有输入取值真假进行全排列组合(AB两个条件:AB都是真,AB都是假,A真B假,A假B真)
3、确定每一项条件对应的动作项,形成了各个规则,形成判定表(规则:一组条件与动作的组合,例如:
AB都是真,则输出......),每个规则对应一条测试用例
4、简化判定表
简化方法:1)去除无效的规则:输入中不可能出现的组合,没有对应的输出的规则
2)合并相似的规则:动作一样,输入中有一项不一样的可以进行合并
合并原理:输入和输出的取值没有关系
5、依据判定表输出测试用例
七、正交实验法(正交分析法)
正交分析法:适用于多条件组合查询测试和兼容性测试
正交表可以从全排列组合中自动筛选出若干组合
正交表概念:
因子:输入条件
状态:输入的取值
正交表可以在网上搜索:几因子几状态,不要自己生产;可以找一些专业的工具,输入条件和取值(因子和状态),
会自动生成正交表,及测试用例。
使用步骤:
1、明确有哪些输入条件需要进行组合(只有一个值的输入可以不需要组合)
2、选择合适的正交表
3、正交表为依据,编写测试用例
原理:正交表保证输入中任意两两组合输入的值的全排列,两两测试没问题,进而推导出更复杂的组合测试也问题不大。
如果恰好合适的正交表没有找到,选择因子根数与输入个相同的,因子的状态与输入取值个数接近的正交表进行拆分或者
替换。
与判定表的区别是:判定表法是人工对输入条件进行全排列组合,正交法是实验借助于教学工具,从全排列组合中选出组合组成的正交表。
备注:当正交表不是刚刚好,需要进行拆分或者替换
拆分:当正交表中因子的状态比实际输入的状态少,要进行拆分(即,增加状态,一定要拆分一列,然后把剩余的都补齐,再拆分下一列,再补齐,再拆分)
替换:当正交表中因子的状态数多于输入的状态数,在正交表进行替换,就近原则,随便近处都可以。
八、因果图法:辅助生产判定表的
定义:因果图法是一种利用图解分析来分析输入的各种组合情况,从而设计测试用例的方法。
与前面的等价类,边界值的区别:等价类,边界值都是着重看输入条件,但是对条件组合,输入条件之间相互制约没有
考虑的,因果图很好的解决了这个问题。
因果图法设计测试用例的步骤如下:
(1)分析所有可能的输入和可能的输出。
(2)找出输入与输出之间的对应关系。
(3)画出因果图。
(4)把因果图转换成判定表。
(5)把判定表对应到每一个测试用例。
九、输出域测试分析法
从输出的 角度看看覆盖等价类,边界值
输出等价类只有有效等价类,原因是:输入和输出并不是一一对应的线性关系