等价类

来源:互联网 发布:如何检查网络是否丢包 编辑:程序博客网 时间:2024/05/22 05:24

动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。这种方法由三部分组成:构造测试用例执行程序、分析程序的输出结果。

静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序结构分析流程图分析、符号执行来找错。


测试的目的是进行完备的测试,同时避免测试用例冗余
等价类是将集合划分成互不相交的一组子集,这些子集并不是整个集合
子集是由等价关系决定的,子集元素都有共同点
因此:
•利用子集表示了集合的完备性
•互不相交体现了无冗余性
等价类测试是通过每个等价类中的一个元素标识测试用例,降低测试用例的冗余性

等价类是指某个输入域的子集合
•− 在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其它值的测试
等价类的划分有两种丌同的情况:
•− 有效等价类:对于程序规格说明来说,是合理的,有意义的输入数据构成的集合
•− 无效等价类:对于程序规格说明来说,是丌合理的,无意义的输入数据构成的集合
设计测试用例时,要同时考虑有效等价类和无效等价类设计

等价类测试重复边界值测试的两个决定因素,即健壮性和单/多缺陷假设。
等价类测试的关键,就是选择确定的等价关系,必须区分弱和强等价类

划分的等价类特点
测试的内容相同
一个等价类中的某个测试可以发现缺陷,那么这个等价类的其他测试也能发现该缺陷。
如果一个等价类中的一个测试没有发现缺陷,这个等价类的其他测试也丌能发现缺陷。

测试用例的选择
为每一个等价类规定一个唯一的编号
设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直至所有的有效等价类都被覆盖过
设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直至所有的无效等价类都被覆盖为止

等价类划分是难点
(1)如果输入条件规定了取值范围,戒值的个数,则可以确立一个有效等价类和两个无效等价类。
•例如,在程序的规格说明中,对输入条件有一句话:“…… 项数可以从1到999 ……”,则有效等价类是“1≤项数≤999”两个无效等价类是“项数<1”戒“项数>999”。
(2)如果输入条件规定了输入值的集合,戒者是规定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类。
•例如,对变量标识符规定为“以字母打头的……串”。那么所有以字母打头的构成有效等价类,而不在此集合内(不以字母打头)的归于无效等价类。
(3)如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类
(4)如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理,这时可为每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合
•例如:在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做相应的处理,可以确定4个有效等价类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身分的人员的输入值的集合。
(5)如果规定了输入数据必须遵守的规则,则可确立一个有效等价类(符合规则)和若干个无效等价类
• 例如,规定“一个语句必须以分号';'结束”,这时,可以确定一个有效等价类“以';'结束”,若干个无效等价类“以':'结束”、“以','结束”、“以' '结束”、“以LF结束”等

等价类测试用例设计的步骤
分析需求描述
划分测试功能的粒度
确定每个测试功能的输入和输出
对输入/输出划分等价类
选择等价类的方法,计算测试用例数量
设计测试用例

等价类测试总结
等价类测试的弱形式不如强形式的测试全面
如果错误条件非常重要,有必要进行健壮形式的测试
如果输入数据以离散值区间和集合定义,则等价类测试是合适的
通过结合边界值测试,等价类测试可以得到加强
如果函数很复杂,需要做等价类测试
强等价类测试假设变量是独立的,相应的测试用例相乘会引起冗余问题。如果存在依赖关系,则常常会生成错误的测试用例
在确定合适的等价关系之前,可能需要进行多次尝试
强和弱形式的等价类测试之间的差别,有助于区分累进测试和回归测试

优缺点

  优点:避免了盲目或随机选取输入数据的布完整性和覆盖的不稳定性

  缺点:没有对组合情况进行充分的考虑,需要结合其他测试用例设计的方法进行补充


等价类测试方法:

在等价类测试当中,强指的是多缺陷假设,而弱指的是单缺陷假设,前者表明了一个笛卡尔乘积的概念;一般指的就是正常值,即不需要考虑异常者,而健壮性则刚好相反,即需要考虑异常者。

弱一般等价类:单缺陷假设,不讨论异常区域


强一般等价类:多缺陷假设,不考虑异常区域


弱健壮等价类:单缺陷假设,要考虑异常区域


强健壮等价类:多缺陷假设,要考虑异常区域;即一个全笛卡尔乘积


0 0