浅析等价类划分技术设计测试用例

2020-11-13 12:04:54 浏览数 (1)

来源:http://www.51testing.com

 一、 等价类划分技术的研究背景和定义

  1.1 等价类划分技术的研究背景

  目前IT行业发展的如火如荼,软件测试也是风声水起,如何提高测试效率已经成为了当前软件测试行业共同关注的难题。既要保证测试覆盖率,又要节省软件测试的时间,保证软件项目的高效迭代。因此,软件测试用例的设计也成为关注的焦点。现在,已经开发了许多测试用例设计方法。常见的测试用例设计方法包括等效类划分,边界值分析以及因果图分析。

1.2 等价类划分技术的定义

  等价类划分法是一种非常典型的,并且是最基础的黑盒测试用例设计方法。测试工程师们采用等价类划分法来设计测试用例时,完全不需要考虑程序内部结构,采用等价类划分法设计用例的唯一依据是软件需求规格说明书。那么什么是等价类呢?等价类就是从每一个等价类子集中选取少数并且具有代表性的数据,从而生成测试用例。

确定等价类的原则:

  (1)当在软件需求规格书中指定了输入范围或编号时,可以建立一个有效的等效类(规格要求范围内的值)和两个无效的等效类(规格要求范围内的值)。

  (2)如果软件需求说明书中规定了某个输入域的集合,或者在必须怎么样的情况下,可以确定一个有效等价类(在说明书要求的域中的值)和一个无效等价类(不在说明书要求的域中的值)。

  (3)如果软件需求说明书中规定了某个输入必须为真或者为假的时候,可以确定一个有效等价类(和说明书要求相同的值)和一个无效等价类(和说明书要求不同的值)。

  (4)如果软件要求规范规定必须遵守某些规则,则一个有效的等效类(在规范要求的规则范围内的值)和多个无效的等效类(在规范要求的规则范围之外 )即可确定值。

二、 等价类划分技术的设计方法

  等价类又分为有效等价类和无效等价类,比如一个网页登录界面的软件需求说明要求登录密码不小于6位数字,并且不大于12位数字,那么这个有效等价类就是在6-12位数字取一个值,无效等价类就是在0-5位和大于12位数字取一个值,不需要把所有位数的密码都测一遍,那样太浪费时间了,无形中为软件测试节省了很多成本,缩短了项目周期。具体的步骤如下:

  (1) 我们首先需要确定两类等价类:有效等价类和无效等价类,有效等价类是符合软件说明书需求的正确值,而无效等价类则是不符合软件说明书需求的错误值。

  (2) 对等效类进行分类后,建立符合提交 / 要求的等效类表,列出每个输入条件对应的有效和无效等效类。举例说明,某应用登录界面有如下需求:用户账号需要输入不低于10位字母/数字,用户密码需要输入10-15位数字。如下表所示:

  (3) 编写新的测试用例,尽可能多地覆盖那些尚未被涵盖的有效等价类和无效等价类,在每个有效等价类子集和无效等价类子集中选取一个值,直到所有的有效等价类子集都被测试用例所覆盖完全。

三、 等价类划分技术的研究目的和意义

3.1 等价类划分技术的研究目的

  理想的测试是使用最少的测试输入(测试数据和时间等输入),达到最高的测试质量,而这个最少的测试数据,也就是测试子集需要我们去研究一种设计方法来达到在保证测试覆盖率的前提下,用最少的测试case,找出尽可能多的软件缺陷,当然也能随便发现很多硬件缺陷,我们也不能不管。通过有效等价类和无效等价类的划分可以实现将无穷的测试子集限定在有限的范围内,使用最少的测试用例去发现最多的bug。因此,等价类划分是黑盒测试最基本的方法。

3.2 等价类划分技术的研究意义

  在软件迭代速度日益增加的今天,软件测试的时间也在不断被压缩,在人力成本同步上升的同时,为了控制软件项目成本不超,只能将测试的资源压缩。在软件测试面临如此窘境的情况下,我们只能寻找方法在保证软件测试覆盖率不减的情况下,减少测试用例的数量,以保证在软件测试周期内保质保量地去完成所有的测试用例。

  等价类分区通常是一种方法,可以被有输入需求的测试对象使用。等价类分区减少了准备测试用例和执行测试用例的工作量,确保了高的测试效率和准确的测试结果,大大降低了项目的成本。

 四、 等价类划分技术的研究结论与不足

  虽然等价类划分的测试用例设计方法减少了穷举法带来的大量准备测试用例和执行测试用例的工作量,但是一般都是有输入性需求的被测对象才可以采用等价类划分的方法,输入与输入之间的关系考虑少,可能产生一些逻辑错误。还需要其他用例设计方法来补充测试。另外需要注意的是测试用例没有完美的,不是必须列到多少条才叫满分,再怎么测试都不可能找出所有bug。测试行为是一个精益求精的过程,满分是理想的状态,测试工程师以这个理想为目的,始终在朝拜它的路上,不问何时抵达,只求更接近一步。设计测试用例的目的,图的就是有逻辑得有规律得找出更多bug,那么就有理由认为,测试用例设计的越完整,逻辑性就越强,考虑得就越周到,就可以找出更多bug。

0 人点赞