关于黑盒测试用例设计方法的研究

时间:2022-06-27 10:14:23

关于黑盒测试用例设计方法的研究

摘要:软件测试是软件质量保证的重要途径,而测试用例是软件测试中核心内容,该文深入研究黑盒测试中常用的几种方法,并给出了边界值分析和判定表驱动法的测试用例设计过程。

关键词:黑盒测试;测试用例;边界值;判定表

中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)26-6406-03

Research of the Case Design Method Based on Black Box Testing

CHEN Han

(NanJing College of Chemical Technology Department of Information Technology, Nanjing 210048, China)

Abstract: Software testing is an important means of software quality, and test cases is the core of software testing. This paper presents a thorough study of the black box testing by several normal method, and give the process for test cases based on boundary value analysis and decision table.

Key words: Black-box testing; test cases; boundary value analysis; decision table

软件测试是软件生命周期中的一个重要阶段,它是软件质量保证的重要途径。软件测试用例是软件测试系统化、工程化的产物,近年来,随着软件规模的不断扩大,复杂程度的不断提高,软件测试的难度也不断提高,很难想象没有经过系统全方位测试的软件进入市场后的结果,因此,软件测试用例是软件测试中核心内容,是软件测试中必须遵守的准则。

据测试人员设计出的测试用例时是否涉及程序内部结构,可以把软件测试分为黑盒测试和白盒测试。所谓黑盒测试是把程序看成一个不能被找开的黑盒子,测试员不考虑程序的内部逻辑结构和处理过程,完全从软件使用者的角度出发,检验程序功能是否能够达到产品需要规格说明书的要求,这种测试一方面检查程序能否完成一切应该做的事情,另一方面要考察它能否拒绝一切不应该做的事情。 而白盒测试是把程序看成一个透明的白盒子,测试者对被测试程序的内部结构和处理过程完全清楚,它按照程序的内部逻辑结构测试程序,检查程序中每条路径是否都能按预定要求正确执行[1]。

常用的黑盒测试方法有:等价类划分、边界值分析、判定表、因果图、猜错法和随机测试法等,在实际测试中往往据不同情况选择其一或多种情况组合进行测试,以提高软件产品的功能测试点,本文对等价类划分、边界值测试、判定表和因果图四种重要方法进行深入研究,并给出对应的用例设计。

1 测试用例设计原则

上文提到的测试用例是软件测试的核心, 它应代表并覆盖各种合理的和不合理的、合法的和不合法的、边界的和越界的以及极限的输入数据、误操作和环境设置等各种情况[2],在设计测试用例时应遵循以下原则:

1) 正确性

正确性是测试用例编写中的最基本原则。测试者是基于测试用例对软件进行测试,一旦测试用例存在错误,直接影响测试判断的准确性,从而产生缺陷误报或缺陷遗漏。

2) 可读性

一个优秀的测试用例必须保证它不止被一人测试,要求能够让他人理解,不会因为表述上的问题产生歧义。

3) 完整性

完整性是对正确性要求的一个补充,完整性要求测试用例能够覆盖到整个软件项目的每个模块、每个功能、每个细节。正确性的缺失影响的通常是一个功能点,而完整性的缺失则会影响整个模块。

4) 可执行性

可执行性是指用户能够按照测试用例中的测试步骤描述,进行测试的执行。因此,测试用例步骤描述必须清晰完整,拆分设计也必须思路清晰,结构合理。

5) 一致性

一致性指依据测试用例的描述执行测试时,操作与产出结果应是一致的。测试用例应减少操作者的主观性,增加操作的确定性,避免因为测试者的变更,导致测试结果的改变。

2 黑盒测试用例设计方法

2.1 等价类划分

为保证软件产品的质量,我们需要对其进行完备彻底的测试,但这是不现实的做法,因为这要求测试员输入大量的数据,并且会产生大量的结果。

等价类划分法是把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据当作测试。在等价类划分法中,每一类的代表性数据在测试中的作用等价于这一类中的其他值,也就是说,如果某一类中的一个数据发现了程序中的某个错误,则这一等价类中的其他数据也能发现同样的错误;反之,如果某一类中的一个数据没有发现错误,则这一类中的其他数据也不会发现错误,这样就能以较少的具有代表性的数据进行测试来取得较好的测试效果[3]。

等价类划分可以分为有效等价类和无效等价类两种不同的情况,有效等价类对于程序的规格说明来说,是合理的、有意义的输入数据所构成的集合;无效等价类对于程序的规格说明来说,是不合理的、没有意义的输入数据所构成的集合。设计测试用例时,要同时考虑这两种等价类,因为,软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。

如一张3.5寸软盘,标准容量为1.44MB,实际容量为1.38MB,测试用例中可以将输入域分为 容量1.38三个等价类,其中0≤容量≤1.38是有效等价类,容量>1.38是无效等价类。

再比如将输入的选修科目限定在文学鉴赏,音乐,蓝球三门,则用例的有效等价类是这三门中的任意一门,无效等价类是三门之外的其它值。

2.2 边界值分析

边界值分析方法是对等价类划分方法的补充,长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。

边界值分析的基本思想是使用在最小值、略高于最小值、正常值、略低于最大值和最大值处取数据进行测试。边界值的选取也必须包括有效边界值和无效边界值。

边界值分析通常在等价类中选择边界值作为测试输入,步骤如下:

1)通过软件的任务书、需求规格说明或设计文档以及划分的等价类,找出所有的边界输入;

2)针对刚好大于边界值、刚好等于边界值和刚好小于边界值选择数据设计测试用例。

再以3.5寸软盘为例,可以将测试用例的边界值定为:0MB,0.1MB,1.38MB,1.37MB,1.39MB,再增加一个正常值如0.88MB。

2.3 判定表驱动法

判定表又叫决策表,在程序设计发展的初期,判定表被当作编写程序的辅助工具,它可以分析和表达多种逻辑条件并执行不同操作,可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。判定表的最突出优点是它能把复杂的问题按各种可能的情况一一列举出,简明而易于理解,也可以避免遗漏。它的不足之处在于,不能表达重复执行的动作,例如循环结构[2]。

判定表由条件桩,动作桩,条件项,动作项组成,组成结构如图1所示。

其中,条件桩列出问题的所有条件;动作桩列出可能采取的操作;条件项列出条件桩的取值;动作项列出条件项各种取值下应该采取的动作;判定表的具体实例见黑盒测试用例设计的应用。

2.4 因果图分析法

由于等价类划分方法和边界值分析方法着重考虑输入条件,并未考虑输入条件之间的相互组合关系,在设计测试用例时若考虑程序输入条件之间的相互组合,将会生成巨大量的测试用例,这无疑加大测试人员的工作负担,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图。

因果图是一种形式化语言,是一种组合逻辑网络图。它是把输入条件视为“因”,把输出或程序状态的改变视为“果”,将黑盒看成是从因到果的网络图,采用逻辑图的形式来表达功能说明书中输入条件的各种组合与输出的关系。因果图法的基本原理是通过因果图,把用自然语言描述的功能说明转换为判定表,然后为判定表的每一列设计一个测试用例。[4]

利用因果图设计测试用例过程如下:

1)分析程序规格说明的描述中,哪些是原因,哪些是结果,原因常常是输入条件或是输入条件的等价类,结果是输出条件;

2)分析程序规约的描述中语义的内容,并将其表示成连接各个原因与各个结果的“因果图”;

3)在因果图上使用若干个特殊的符号标明约束条件;

4)把因果图转换成判定表 ;

5)把判定表中每一列表示的情况写成测试用例。

3 黑盒测试用例设计的应用

设存在判断三角形为一般三角形、等腰三角形、等边三角形的程序,程序的输入条件是取三个正整数作为三边长,范围值为[1, 100]。为该程序设计测试用例。

解法(一)边界值分析法

据边界值分析法原理,三角形每边的取值可为1,2,100,99,50,测试用例数据目为4n+1,三角形问题(n=3),得到用例数为13,测试用例如表1所示。

解法(二) 判定表驱动法

根据以上判定表规则,列出判定表驱动法生成本程序的测试用例:

首先,利用首先根据软件规格说明列出所有的条件桩和动作桩;

其次,确定规则的个数;假如有n个条件,每个条件有两个取值(Y,N),则有2n 种规则;

接着,填入条件项;

接着,填入动作项,得到初始决策表,如表2所示;

最后,简化,合并相似规则(相同动作),如表3所示。

表2 判定表驱动法生成的初始决策表

表2中9至16列都为非三角形规则,可以合并以简化表,如表3所示。

表3 简化合并后的决策表

4 结束语

本文对黑盒测试中的几个常用测试方法进行深入研究,事实上软件测试是一门集编程方法、模型设计、统计方法、预测等多领域的综合学科,软件应用系统的多样性,决定了软件测试方法的多样性,在对软件进行实际测试时,需要将多种测试方法配合使用,形成一套测试用例设计综合策略。

参考文献:

[1] 苏亚丽.黑盒测试之等价类划分[J].玉溪师范学院学报,2009,8(25):49.

[2] 吴艳征,宋志强.浅谈黑盒测试用例设计方法[J].科技信息:学术研究,2008(16).

[3] 郑人杰,殷人昆,陶永雷,著.实用软件工程[M].2版.北京:清华大学出版社,1997.

[4] 软件测试_软件工程专家网[DB/OL]./category.asp?class=testnews.

上一篇:浅析Photoshop在数码图像后期中的应用 下一篇:C程序设计教学初探