有关正交实验法、场景图、错误推测法,可参考文章:??????????????软件测试-黑盒测试方法(二)—正交实验法、场景图、错误推测法
一、等价类划分
使用等价类划分最主要的原因就是穷举测试不可能。
定义:把所有可能输入的数据,分成若干部分(子集),在该子集合中,各个输入数据对于揭露程序中错误的作用都是等价的。
在子集合中,各个输入数据对于揭露程序中错误的作用都是等价的。因为无法保证完全等价,所以使用等价类测试后,不能完全保证软件没有缺陷。
应用场合:只要有数据输入的地方,都可以使用等价类划分法。使用最少的数据,尽可能达到最大的覆盖。
有效等价类:指对于程序的需求来说是合理的、有意义的输入数据构成的集合。程序接收到有效等价类数据,可以正确执行。
无效等价类:指对程序的需求是不合理的或无意义的输入数据所构成的集合。程序接收到无效等价类,应给出错误提示,或根本不让用户输入。
操作步骤:
(1)明确需求
(2)划分等价类,建立等价类表,确定有效和无效等价类
先找到有效等价类(需求中给出的输入条件)
按照条件相反,找到一部分无效等价类
再找特殊细节(中文、英文、小数、空格、空,具体情况具体再分析)
注意事项:
①找一些用户经常可能会使用的字符,那些不经常使用的可以不用添加到无效等价类中,比如数据类型:要考虑汉字、字母、特殊符 ;但是不用考虑:日语、西班牙语…..
②注意正数和负数的计算方法不一样,最好将其划分为两个有效等价类,以便更能满足等价类划分法的假设条件
(3)根据等价类表设计测试用例
在保证其它控件输入正确的情况下,逐一对某一个控件进行测试。
二、边界值 (对输入或输出的边界值进行测试)
作用:作为对等价类划分法的补充,其测试用例来自等价类的边界。大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。针对各种边界情况设计测试用例,可以查出更多的错误。
应用场合:只要有数据输入的地方,一般就可以使用边界值。
与等价类的区别:边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
边界取值规则:选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
操作步骤:
(1)明确需求,划分好有效等价类和无效等价类
(2)通常输入和输出等价类的边界,就是应着重测试的边界情况
(3)根据分析的数据设置测试用例
用例优化:
一条测试用例尽可能覆盖多的现在还有没有覆盖到的有效等价类,一条用例最多只能包含一条无效等价类。将所有的边界值,区分为有效等价类和无效等价类,区分好后,再按照上一句话进行用例的优化。
三、因果图(通过带箭头的线,将质量问题与原因之间的关系表示出来,是分析影响产品质量的诸因素之间关系的一种工具;根据输入条件的组合、约束关系与输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法。)
使用场合:有多个输入条件,输入条件之间可以进行组合,每种输入组合都有对应的一个输出结果。
因(输入条件)、果(输出条件)之间的关系:恒等、非、与、或
因与因之间的约束关系:互斥、包含、唯一、要求
果与果之间的约束关系:强制
操作步骤:
(1)分析需求,读懂需求
(2)找出所有的输入条件,并对所有条件进行统一编
(3)找出所有的输出结果,并对输出结果进行统一编
(4)明确所有输入条件之间的制约关系以及组合关系
哪些条件可以组合在一起,哪些不能
(5)根据输入条件的限制,绘制因果图
(6)找出什么样的输入条件组合会产生哪种输出结果,并根据组合关系绘制因果图
(7)根据因果图来设计测试用例
注意:因果图可以将种输入条件组合和对应的输出组合,单独绘制一张因果图,也可以将所有的组合绘制在一张图里面。可以添加中间状态,从而让因果图的可读性更强,如果输入控件太多,会导致因果图非常复杂,所以说这种情况下不建议使用因果图。
四、判定表(将所有的组合情况都会罗列出来,类似于穷举测试)
使用场景:和因果图的使用场合一样,一个功能,有多个输入条件,并且输入条件之间可以进行组合,每种输入条件的组合都有对应的输出结果。
相关概念:判定表也称决策表,能表示输入条件的组合,以及与每一输入组合对应的动作组合。判定表法主要侧重输入条件之间的逻辑关系。
条件桩:输入条件
条件项:输入条件的组合
动作桩:输出的结果
动作项:输出结果的组合
操作步骤:
(1)分析需求,列出条件桩和动作桩
(2)对所有条件项进行组合,把组合情况罗列出来
条件组合的数量2^n,n指输入条件的个数
(3)对所有输入组合进行检查,将不合理的输入组合删除
(4)明确每个组合对应的动作项,形成判定表
(5)根据判定表设计测试用例,每一列就是一条测试用例
简化(规则合并):
前提:同时满足①动作项完全一样②每个用例的条件只有一个不同
合并可能会存在漏测的风险:程序对于某个条件有不同的分支,若错误的将其合并,导致某条或某些路径没有被测试覆盖,造成漏测。(原因:条件类似且动作相同的路径,在程序内部可能有不同的分支,简化会丧失对某些程序分支的覆盖)。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!