您的位置:首页 > 其它

等价类

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

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

测试的目的是进行完备的测试,同时避免测试用例冗余

等价类是将集合划分成互不相交的一组子集,这些子集并不是整个集合

子集是由等价关系决定的,子集元素都有共同点

因此:

•利用子集表示了集合的完备性

•互不相交体现了无冗余性

等价类测试是通过每个等价类中的一个元素标识测试用例,降低测试用例的冗余性

等价类是指某个输入域的子集合

•− 在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其它值的测试

等价类的划分有两种丌同的情况:

•− 有效等价类:对于程序规格说明来说,是合理的,有意义的输入数据构成的集合

•− 无效等价类:对于程序规格说明来说,是丌合理的,无意义的输入数据构成的集合

设计测试用例时,要同时考虑有效等价类和无效等价类设计

等价类测试重复边界值测试的两个决定因素,即健壮性和单/多缺陷假设。

等价类测试的关键,就是选择确定的等价关系,必须区分弱和强等价类

划分的等价类特点

测试的内容相同

一个等价类中的某个测试可以发现缺陷,那么这个等价类的其他测试也能发现该缺陷。

如果一个等价类中的一个测试没有发现缺陷,这个等价类的其他测试也丌能发现缺陷。

测试用例的选择

为每一个等价类规定一个唯一的编号

设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直至所有的有效等价类都被覆盖过

设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直至所有的无效等价类都被覆盖为止

等价类划分是难点

(1)如果输入条件规定了取值范围,戒值的个数,则可以确立一个有效等价类和两个无效等价类。

•例如,在程序的规格说明中,对输入条件有一句话:“…… 项数可以从1到999 ……”,则有效等价类是“1≤项数≤999”两个无效等价类是“项数<1”戒“项数>999”。

(2)如果输入条件规定了输入值的集合,戒者是规定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类。

•例如,对变量标识符规定为“以字母打头的……串”。那么所有以字母打头的构成有效等价类,而不在此集合内(不以字母打头)的归于无效等价类。

(3)如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类

(4)如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理,这时可为每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合

•例如:在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做相应的处理,可以确定4个有效等价类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身分的人员的输入值的集合。

(5)如果规定了输入数据必须遵守的规则,则可确立一个有效等价类(符合规则)和若干个无效等价类

• 例如,规定“一个语句必须以分号';'结束”,这时,可以确定一个有效等价类“以';'结束”,若干个无效等价类“以':'结束”、“以','结束”、“以' '结束”、“以LF结束”等

等价类测试用例设计的步骤

分析需求描述

划分测试功能的粒度

确定每个测试功能的输入和输出

对输入/输出划分等价类

选择等价类的方法,计算测试用例数量

设计测试用例

等价类测试总结

等价类测试的弱形式不如强形式的测试全面

如果错误条件非常重要,有必要进行健壮形式的测试

如果输入数据以离散值区间和集合定义,则等价类测试是合适的

通过结合边界值测试,等价类测试可以得到加强

如果函数很复杂,需要做等价类测试

强等价类测试假设变量是独立的,相应的测试用例相乘会引起冗余问题。如果存在依赖关系,则常常会生成错误的测试用例

在确定合适的等价关系之前,可能需要进行多次尝试

强和弱形式的等价类测试之间的差别,有助于区分累进测试和回归测试

优缺点

  优点:避免了盲目或随机选取输入数据的布完整性和覆盖的不稳定性
  缺点:没有对组合情况进行充分的考虑,需要结合其他测试用例设计的方法进行补充

等价类测试方法:

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

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



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



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



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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  动态测试 等价类