浅谈数据驱动测试设计方法
摘要:软件测试的核心是测试用例的编写,所以测试用例的编写对于软件测试的过程来说是十分重要的,也是每个测试人员必须掌握的技能。本文主要介绍了数据驱动测试的测试方法。尤其重点介绍了数据驱动测试中的逻辑覆盖。并结合实例给出具体说明。
关键词: 测试用例;数据驱动测试;逻辑覆盖
软件测试是软件开发过程中必不可少的部分。从根本上说,测试过程的质量决定了软件测试的质量和有效性。软件测试作为软件生存周期的一个重要组成部分,受到重视程度越来越高。软件测试的本质是针对要测试的内容确定一组测试用例。测试用例是测试工作的指导,是软件测试的必须遵守的准则。更是软件测试质量稳定的根本保障。所以对于软件测试的过程来讲,测试用例的设计是其中最关键的环节。软件测试分功能性测试和结构性测试。功能性测试又称黑盒测试,结构性测试又称白盒测试。下面仅详细介绍功能性测试用例的设计方法。
一、数据驱动测试用例设计
功能性测试又称黑盒测试(Black-box Testing)或数据驱动测试,是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序有功能需求的输入条件。
黑盒测试试图发现以下类型的错误:
1、功能错误或遗漏;
2、界面错误;
3、数据结构或外部数据库访问错误;
4、性能错误;
5、初始化和终止错误。
二、数据驱动测试的测试用例设计方法
数据驱动测试的测试用例设计方法一般有等价类划分方法,边界值分析方法,错误推测方法,因果图方法,判定表驱动分析方法,正交实验设计方法,功能图分析方法几种。下面详细介绍几种比较重要的黑盒测试方法。
1、等价类划分。
是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。
(1)划分等价类: 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。
(2)有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
(3)无效等价类:与有效等价类的定义恰巧相反。
设计测试用例时,要同时考虑这两种等价类。因为,软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。
2、边界值分析法。
边界值分析方法是对等价类划分方法的补充。
长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
基于边界值分析方法选择测试用例的原则:
(1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
(2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。
(3)根据规格说明的每个输出条件,使用前面的原则1)。
(4)根据规格说明的每个输出条件,应用前面的原则2)。
(5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
(6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
(7)分析规格说明,找出其它可能的边界条件
3、错误推测法。
错误推测法: 基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法。
错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。 例如, 在单元测试时曾列出的许多在模块中常见的错误。 以前产品测试中曾经发现的错误等, 这些就是经验的总结。 还有,输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行。 这些都是容易发生错误的情况。 可选择这些情况下的例子作为测试用例。
综上所述,测试用例的编写对于计算机测试人员来说是一项必须掌握的能力。但有效的设计和熟练的编写却是一个十分复杂的技术,它需要测试人员对整个软件不管从业务还是从功能上都有一个明晰的把握。需要测试人员在实践中不断总结经验,然后结合测试理论,这样才能设计出更加有效的测试用例。
[参考文献]
[1]周文莱,马珊国,最新实用软件测试过程[M],北京,机械工业出版社,2008第一版
[2]温凤飞,杨大伟,实用软件工程设计[M],北京:长城出版社,2009第一版
[3]孙燕燕,软件使用中应注意的三个问题[J],计算机光盘软件与应用,2009,(11)