一般定义:分析用户所有可能的输入,并将其划分为若干份,然后从每一份中提取具有代表性的数据当做测试用例,这种测试方法称为等价类划分法。
它将不能穷举的测试过程进行合理的分类,从而保证设计出来的测试用例具有完整性和代表性。
在有限的测试资源的情况下,用少量有代表性的数据得到比较好的测试效果。
等价类划分分为(基本概念):
-
有效等价类,指符合《需求规格说明书》,输入合理的数据集合。
-
无效等价类,指不符合《需求规格说明书》,输入不合理的数据集合。
等价类思考步骤:
-
首先确定有效等价类和无效等价类
-
有效等价类就是一目了然的题目条件(比如在0~20之间测试),要考虑到两端的极值(边界值)和中间值。
-
无效等价类先划分与条件相反的情况(比如不在0~20范围内),再去找特殊情况,如中英文,符号、空格、空等。
边界值
概念:考虑的是输入两边的极值情况,一般搭配等价类划分法来完善测试用例
确定边界值的一般思路:选取正好等于、刚刚大于、刚刚小于边界值作为测试数据
因果图
楔子:
在等价类和边界值中,我们更多的是考虑输入及输入的边界情况,但不太考虑多个输入条件之间的组合情况和制约情况
因果图(Cause-Effect Graph)法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适用于检查程序输入条件的各种组合情况。 因果图法的特点
-
考虑输入条件的相互制约及组合关系
-
考虑输出条件对输入条件的依赖关系
因果图的核心
-
因果图法适用于输入条件较多的情况,测试所有输入条件的排列组合。因果图所谓的因就是输入,而果就是出。
-
因果图之
因
,即输入条件。 -
因果图之
果
,即输出结果。
-
因果图法要注意考虑的要点
-
所有输入/输出条件的相互制约关系及组合关系。
-
输出结果对输入条件的依赖关系,也就是什么样的输入组合会产生怎样的输出结果,即
因果关系
。
因果图中的基本符号:C
表示原因,E
表示结果
-
恒等,有因有果,无因无果。
-
与(且),条件都为真,结果才为真,如果其中一个条件为假,则结果为假。
-
或,有一个条件为真,则结果为真,条件都为假,结果才为假。
-
非,取反的意思,有因无果,无因有果。
因果图法基本步骤
利用因果图导出测试用例需要经过以下几个步骤:
-
找出所有的原因,原因即是输入条件或输入条件的等价类。
-
找出所有的结果,结果即输出条件。
-
明确所有输入条件之间的制约关系及组合关系。比如,哪些条件可以组合到一起,哪些条件不能组合到一起。
-
明确所有输出条件之间的制约关系以及组合关系。比如,哪些输出结果可以同时输出,哪些输出结果不能同时输出。
-
找出什么样的输入条件组合会产生哪种输出结果。
-
把因果图转换成判定表/决策表。
-
为判定表/决策表中的每一列表示的情况设计测试用例。
判定表
因果图只是一种辅助工具,我们通过因果图分析出一个表,这个表就是判定表,然后通过判定表编写测试用例。但是有的时候,画因果图非常麻烦,影响测试效率,所以,我们很多时候都是直接写判定表,进而编写测试用例。
判定表的组成
-
条件桩:问题的所有条件,即所有的条件组合。
-
动作桩:问题的所有输出,即所有的输出组合。
-
条件项:针对条件桩的取值。
-
动作项:条件项的各种取值情况下的输出结果。
判定表制作步骤
-
列出所有的条件桩和动作桩。
-
填入条件项与动作项,得到初始判定表。
-
简化判定表(合并相似规则(相同动作))。
合并使用-,表示无关条件,选什么都不影响结果。虽然在一定程度上,减少了表格列举数量,但是-
带来了条件模糊的情况,所以,尽量还是按照原来的表格一一列举,这有助于用例的编写。
错误推测法
错误推测法是指利用直觉和经验猜测出出错的可能类型,有针对性的列举出程序中所有可能的错误和容易发生错误的地方。它是骨灰级测试大佬喜欢使用的一种测试用例设计方法。
基本思想
基本思想是列举出可能犯的错误或错误易发生的清单,然后根据清单编写测试用例;这种方法很大程度上是凭经验进行的,即凭人们对过去所作测试结果的分析,对所揭示缺陷的规律性作直觉的推测来发现缺陷。
采用错误推测法,最重要的是要思考和分析测试对象的各个方面,多参考以前发现的Bug的相关数据、总结的经验,个人多考虑异常的情况、反面的情况、特殊的输入,以一个攻击者的态度对待程序,才能够设计出比较完善的测试用例。
场景法
场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。
-
当接到一个测试任务时,我们并不关注某个控制的边界值,等价类是否满足要求。而是要关注它的主要功能和业务流程是否正确实现,这就需要使用场景法来完成测试。
-
当业务流程没问题时,即软件的主要功能没有问题时,我们再重新从边界值、等价类方面对软件进行测试。
在冒烟测试时也主要采用场景法进行测试。
用例场景定义
在场景法中有两个重要的概念:
-
基本流:按照正确的业务流程来实现一条操作路径,即模拟正确的操作流程。
-
备选流:导致程序出现错误的操作流程,即模拟错误的操作流程。
用例场景使用来描述流经用例路径的过程,这个过程从开始到结束遍历用例中所有的基本流和备选流。
用例场景产生的背景
现在的软件几乎都是由事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件因不同的触发顺序和处理结果形成事件流。
将这种在软件设计方面的思想引入到软件测试中,生动的描绘出时间触发时的情景,有利于测试设计者测试用例,同时测试用例也更容易得到理解和执行。
-
在使用场景法设计测试用例时,需要覆盖系统用例中的主成功场景和扩展场景。并且需要适当补充各种正反面的测试用例和考虑出异常场景的情形。
-
当使用场景测试软件没有问题时,可以再使用边界值、等价类划分法等测试方法对软件进行更加细致、完整的测试。
流程分析法
流程分析法主要是针对测试场景类型,属于流程测试场景的测试项下的一个测试子项进行设计。是从白盒测试设计方法中的路径覆盖分析法借鉴过来的一种方法。
-
在白盒测试中,路径就是指函数代码的某个分支组合,路径覆盖法需要构造足够的用例,以覆盖函数的所有代码路径。
-
在黑盒测试中,若将软件系统的某个流程看成路径的话,则可以针对该路径使用路径分析法设计测试用例。
优点
-
降低了测试用例的设计难度,只要搞清楚各种流程,就可以设计出高质量的测试用例来,而不需要太多测试方面的经验。
-
在测试时间较为紧迫的情况下,可以有的放矢的选择测试用例,而不用完全根据经验来取舍。
流程分析法的实施步骤
-
详细了解需求。
-
根据需求说明或界面原型,找出业务流程的各个页面以及各个页面之间的流转关系。
-
画出业务流程,由产品经理使用Axure软件制作。
-
写用例,覆盖所有的路径分支。
正交测试法
什么是正交表
在正式介绍正交测试法,我们先来了解两个概念:
-
什么是因素(Factor):在一项实验中,凡欲考察的变量称为因素(变量)。
-
什么是水平(位级,Level):在实验范围内,因素被考察的值称为水平(变量的取值)。
正交表是一个二维表格,它的构成如下:
-
行数(Runs):正交表中行的个数,即实验的次数(用例)。
-
因素数(Factors):正交表中列的个数。
-
水平数(Levels):任何单个因素能够取得的值的最大个数。正交表中包含的值为从0到水平数减一或从1到水平数。
-
n是表的行数,也就是需要测试组合的次数。
-
k是表的列数,表示控件的个数(因素数或因子数)。
-
m是每个控件包含的取值个数(各因素的水平数,即各因素的状态数)。
-
例如我们之前的字体属性程序的需求中
-
-
有4个控件。
-
每个控件有3个取值。
-
9为需要测试的组合个数。
-
也称为4因素3水平。
正交试验设计方法是一种研究多因素多水平的实验设计方法,它根据正交性从全面实验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了均匀分散,齐整可比的特点。
正交试验设计方法一般使用已经造好了的正交表格来安排实验并进行数据分析。
正交测试法与正交实验设计方法类似,也使用了已经造好的正交表格来生成测试用例。它简单易行,应用性较好。
正交表测试法的适用范围
正交表测试法适用于输入条件相互独立,并且需要对输入的各种组合进行测试的场合。
正交表的正交性
-
整齐可比性:在同一张正交表中,每个因素的每个水平出现的次数是完全相同的。由于在实验中每个因素的每个水平与其它因素的每个水平参与实验的几率是完全相同的,这就保证了在各水平中最大程度的排除了其他因素水平的干扰。因而能有效的进行比较和作出展望。
-
均衡分散性:在同一张正交表中,任意两列(两个因素)的水平搭配(横向形成的数字对)是完全相同的。这就保证了实验条件均衡的分散在因素水平的完全组合中,因而具有很强的代表性。
正交测试用例设计步骤
-
根据所测程序中控件的个数(因素)以及每个控件的取值个数(水平),选取一个合适的正交排列表。
-
将控件及其取值列举出来,并对其进行编号。
-
将控件及其取值映射到正交排列表中。
-
把正交排列表中的ABCD(因子)分别替换成4个控件。
-
把每列中的1,2,3(状态)分别换成这个控件的3个取值(水平),排列顺序要按照表中给出的顺序。
-
-
根据映射好的正交排列表编写测试用例。
如何选择正交表
如果遇到没有合适的正交表的,就选择比我们需求的大一号的正交表
正交表生成工具注意事项
-
整理txt文档注意事项,如下图,最后要有一个tab,来代替最有一个空值
-
使用allpairs工具在生成时候,生成命令:
allpairs.exe input.txt > output.txt
注意生成的目标文件是txt类型
-
将生成的txt文件内容可以拷贝到Excel表中,避免出现乱码问题