快捷搜索:  汽车  科技

软件测试几种用例设计方法(全程软件测试十九)

软件测试几种用例设计方法(全程软件测试十九)在设计测试用例时,需要同时考虑上述两种等价类。因为软件不仅要能接收有效的数据,也要能对无效的数据做出相应的反应。这样的测试才能确保软件具有更高的可靠性。无效等价类:与有效等价类定义相反。任何一个软件都不可能只接收有效的、合理的数据。软件在实际使用时输入数据千变万化,即可能遇到无效、不合理的输入数据,因此需要软件可接收无效、不合理的数据,并进行相应的操作,如此才能具备较高的可靠性。综上所述,在划分等价类时,需要考虑有效等价类和无效等价类两种等价类。有效等价类:符合程序规格说明书,合理的、有意义的输入数据集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。

软件测试几种用例设计方法(全程软件测试十九)(1)

等价类划分概述

等价类划分是将程序的输入域划分为若干个互不相交的部分,即等价类,然后从每个等价类中选取少数代表性数据来设计测试用例。

每个等价类的代表性数据在测试中的作用等价于类中的其他值,即若某类中的代表性数据揭露了错误,则此等价类中的其他数据也能引发同样的错误;反之,若某类中的代表性数据没有揭露错误,则此类中的其他数据也不会引发错误(除非等价类中的某些数据属于另一等价类,因为不同的等价类是可能相交的)。

使用这一方法设计测试用例,必须在分析需求规格说明书的基础上划分等价类,列出等价类表。

划分等价类的步骤

1.划分等价类和列出等价类表

任何一个软件都不可能只接收有效的、合理的数据。软件在实际使用时输入数据千变万化,即可能遇到无效、不合理的输入数据,因此需要软件可接收无效、不合理的数据,并进行相应的操作,如此才能具备较高的可靠性。

综上所述,在划分等价类时,需要考虑有效等价类无效等价类两种等价类。

有效等价类:符合程序规格说明书,合理的、有意义的输入数据集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。

无效等价类:与有效等价类定义相反。

在设计测试用例时,需要同时考虑上述两种等价类。因为软件不仅要能接收有效的数据,也要能对无效的数据做出相应的反应。这样的测试才能确保软件具有更高的可靠性。

等价类的确定有一定的原则,具体如下所示:

(1)在输入条件规定了取值范围或值的个数的情况下,可确立1个有效等价类和2个无效等价类。

(2)在输入条件规定了输入值的集合或规定了“必须如何”的条件的情况下,可确立1个有效等价类和1个无效等价类。

(3)在输入条件是一个布尔值的情况下,可确立1个有效等价类和1个无效等价类。

(4)在规定了输入数据的一组值(假定n个)且程序将对每个输入值分别处理的情况下,可确立n个有效等价类和1个无效等价类。

(5)在规定了输入数据必须遵守的规则的情况下,可确立1个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

(6)如果确知已划分的等价类中各元素在程序处理中的方式不同,则应将该等价类再进一步划分为更小的等价类。

在确立了等价类之后,接下来建立等价类表,将所有划分出的等价类列出来,如下表所示。

软件测试几种用例设计方法(全程软件测试十九)(2)

等价类表

2.确定测试用例根据等价类表,确定测试用例。

具体步骤如下。

(1)为每个等价类编号(唯一编号)。

(2)设计编写新测试用例,使此用例尽可能多地覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有有效等价类均被测试用例覆盖。

(3)设计编写新测试用例,使此用例只覆盖一个无效等价类,重复这一步骤,直到所有无效等价类均被覆盖。

例: 一个程序读入3个整数,把这3个数值看作一个三角形的3条边的长度值。这个程序需要判断这个三角形是不等边的、等腰的还是等边的,并输出结果。

据此利用等价类划分方法设计测试用例。

可设三角形的3条边长分别为A、B、C。若A、B、C能够构成三角形,则必须满足下列条件:A>0 B>0 C>0且A B>C B C>A A C>B。若能构成等腰三角形,还需要满足条件A=B或B=C或A=C。若能构成等边三角形,则需要满足条件A=B且B=C且A=C。

根据上述内容,列出等价类表,如下表所示。

软件测试几种用例设计方法(全程软件测试十九)(3)

等价类表

设计测试用例:输入顺序为A、B、C,如下表所示。

软件测试几种用例设计方法(全程软件测试十九)(4)

测试用例

软件测试几种用例设计方法(全程软件测试十九)(5)

测试用例

等价类划分的目的是将测试用例组合尽可能地缩减到刚刚满足测试需求。等价类划分属于不完全测试,需要承担一定的风险,因此在选择分类时需要谨慎仔细。

在软件测试中,测试用例的设计是一件比较困难的工作,因为不同的测试人员就同一个功能点所编写的测试用例不尽相同。

造成这种情况的主要原因有三个:每个测试人员看待问题的着眼点不一样;测试人员的经验不同会导致编写出的测试用例良好程度不同;每个测试人员都有自己的逻辑思维,导致编写的测试用例差异化。

在测试工作中,有些测试人员编写的测试用例简单明了,而有些人编写的测试用例却复杂冗长。出现这种情况也在情理之中,因为测试用例本身的设计方法与技巧等都需要从经验中获取,有些形成了理论,而有些还形成不了能够指导测试活动的理论。

等价类划分法就有赖于软件测试人员经验的积累,经验越丰富划分越快速准确,并且还可以提高测试的效率。

猜您喜欢: