黑盒测试方法和综合策略的研究.doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date黑盒测试方法和综合策略的研究英汉习语的翻译策略黑盒测试方法和综合策略的研究摘要:黑盒测试技术作为传统的软件测试技术已经得到了广泛的应用。多种黑盒测试用例的设计方法也应运而生,实际应用中各种方法的取舍成为一个测试用例设计人员的难题。经过对现有成熟而常用的方法的研究,给出了各个测试方法的优缺点,并结合实际工作经验提出了制定测试用例的综合策略。关键词:黑盒测试;测试方法;综合策略一、黑盒测试概述黑盒测试技术是软件测试的主要方法之一。黑盒测试又称为数据驱动测试或者基于规格说明的测试。黑盒测试把程序看做一个不能打开的盒子,不考虑程序的内部逻辑结构和内部特性,直接测试程序的功能。测试人员只在软件的接口处进行测试,只检查程序功能是否能够按照规格说明书的规定正常使用、程序是否能接收合理的输入数据而产生正确的输出,接收不合理的数据而有相关提示,及性能是否能够满足最终用户的需求。通过黑盒测试可以检查软件的每个功能是否都能正常运行,因此,黑盒测试也称为从用户观点和需求的角度进行的测试。由于黑盒测试不考虑程序的内部结构和具体实现,而只关心软件实现的功能,所以许多高层的测试(如系统测试、验收测试)都采用黑盒测试。事实证明,穷举输入测试是无法实现的,因此研究可行而高效的测试方法,通过有限的测试用例,最大限度地提高发现的问题的数量以取得最好的测试效果,成为软件测试领域一个重要的研究课题。二、黑盒测试方法介绍目前常用的比较成熟的黑盒测试的方法主要有:等价类划分法、边界值分析法、因果图法和错误推测法。下面对这几种方法加以介绍并指出其优缺点。(一)等价类划分法等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据划分为若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例。测试用例由有效等价类和无效等价类的代表数据组成,从而保证测试用例具有完整性和代表性。使用该方法设计测试用例主要有两个步骤:(1)确定等价类;(2)生成测试用例。2.确定等价类等价类是指被测软件的一个输入数据的集合,该集合中的任一元素对于揭露被测程序中的错误而言是等价的,即若该集合中的一个元素测试程序发现不了某类功能上明显的错误,那么其它元素测试该程序也发现不了这种错误。确定等价类是将每一个输入条件划分为有效等价类和无效等价类。有效等价类指程序规格说明书中规定的、合理的、有意义的输入数据。通过测试有效等价类中的数据可以测试被测软件是否实现了规格说明书中预先规定的功能和性能。无效等价类是有效等价类的补集,指软件规格说明书中没有规定的、没有意义的、不合理的输入数据集合。2.生成测试用例为每一个等价类设置一个唯一的编号。设计新的测试用例,尽可能多地覆盖那些尚未被覆盖的有效等价类,直到所有的有效等价类都被测试用例所覆盖(包含进去)。设计新的测试用例,覆盖一个仅一个尚未被覆盖的无效等价类,直到所有的无效等价类都被测试用例所覆盖。(二)边界值分析法边界值分析法是对程序输入或输出的边界值进行测试的一种黑盒测试方法。实际的测试工作证明,考虑了边界条件的测试用例比那些没有考虑边界条件的测试用例具有更高的测试回报率。这里所说的边界条件,是指输入和输入等价类中那些恰好处于边界、或超过边界、或在边界以下的状态。利用边界值分析法设计测试用例的原则:1.如果输入条件规定了值的范围,那么应针对范围的边界设计有效的等价类测试用例,针对刚刚越界的情况设计无效等价类输入测试用例。2.如果输入条件规定了输入值的数量(包括个数的多少,时间的长短),则应对该数量的最大值、最小值及比最大值小一、比最小值大一的情况分别设计有效的输入测试用例。3.如果程序中使用了一个内部数据结构,则应该内部数据机构的边界值设计测试用例。4.如果程序的规格说明给出的输入域或输出域是有序集合,则应该取集合的第一个元素和最后一个元素设计测试用例。(三)因果图法因果图法也是较常用的一种黑盒测试方法,是一种简化了的逻辑图。因果图能直观地表明输入条件和输出动作之间的因果关系,能帮助测试人员把注意力集中到与程序功能有关的输入组合上。因果图法是一种适合于描述对于多种输入条件组合的测试方法,根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。利用因果图法设计测试用例的步骤:1.将规格说明分解为可执行的片段。该步骤必不可少,因为因果图不善于处理较大的规格说明。2.分析并确定可执行片段中哪些是原因,哪些是结果。原因是指输入条件或者输入条件的等价类,而结果指输出条件。3.为每一个原因和结果赋予唯一的标号,并根据规格说明书中的描述,画出因果图。4.通过仔细地跟踪图中的状态变化情况,将因果图转换成一个有限项的判定表。表中的每一列代表一个测试用例。(四)错误推测法错误推测法是基于以往的经验和直觉,参照以往的软件系统出现的错误,推测当前被测程序中可能存在的缺陷和错误,有针对性地设计测试用例。用错误推测法设计测试用例的基本思想是:列举出程序中可能犯出现的错误或容易发生错误的特殊情况的清单,然后根据清单和已经设计好的测试用例来编写特定的测试用例。例如,程序中出现的输入数据为“0”或者字符为空就是一种错误易发情况;在出现输入或输出的数量不定的地方,数量为“没有”和“一个”也是错误易发情况。特别需要注意的是,在阅读规格说明时联系程序员可能做的假设来确定测试用例,测试人员要站在用户的角度来考虑输入信息,而不必去管这些信息对于被测程序是合理还是不合理的输入。三、黑盒测试方法的比较(一)等价类划分法核心:“分类”及代表值优点:通过把输入数据和输出数据进行分类,选用分类中的代表值,在保证了测试覆盖的情况下大大减少了测试用例的数量,使测试工作变得简单高效。缺陷:若无清晰的需求分类,可能造成覆盖泄露。(二)边界值分析法核心:边界值和边界两边的邻值优点:大量的程序错误往往发现在输入的边界上,考虑了边界值的测试用例能更高效的发现程序中的错误和缺陷。缺陷:此方法的目的性过强,导致其注定只能完成测试的一部分,单独使用时,整体覆盖率得不到保证。(三)因果图法核心:测试元素逻辑关系图,即因果图优点:该方法擅于处理逻辑事务的测试目标,协助用例设计人员搭建用例整体框架,实现从上至下的用例设计理念。缺陷:适用范围有限制,需结合其他方法才能得到最终用例(四)错误推测法核心:测试人员的经验和敏锐性优点:测验人员依据自己已有的测试经验,针对现在被测软件,设计有针对性的测试用例,能够发现系统隐蔽的不易被发现的潜在错误和缺陷。缺陷:该方法依赖于测试人员的测试经验和测试的敏锐嗅觉,没有通用的可以遵循的规则。四、测试策略以上研究的每一种方法都可以提供一组具体的有用的测试用例,但是都不能单独提供一个完整的测试用例集。针对该问题,结合实际工作的经验,提出了以下测试策略:1.测试用例的设计方法不是互斥的,也不存在相互取代的关系,具体到每个测试项目里都会综合运用多种方法。2.首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试,这是减少工作量和提高测试效率最有效的方法。3.如果程序的规格说明中含有输入条件的组合情况,应考虑使用因果图法来补充测试用例。4.在任何情况下都应该使用边界值分析法。需要注意的是,边界值分析可以产生一系列补充的测试因子,但是,多数甚至全部因子都可以被整合到因果图分析中。该方法设计出来的测试用例对发现程序中的错误非常高效。5.可以使用错误推测法追加一些测试用例,这需要测试工程师的智慧和经验。6.对照程序逻辑,检查已设计的测试用例的逻辑覆盖程度。如果它没有达到要求的覆盖标准,则应增加足够数量的测试用例,以使覆盖准侧得到满足。7.不论采用何种方法,必须确保测试用例的正确性,在此基础上考虑测试点的组合测试,减少测试用例数量,提高测试效率。五、结束语本文对黑盒测试的常用方法进行了总结,并指出了各种方法的优缺点及使用场合,对测试工作有一定的实际意义。结合实际工作给出了测试用例设计的综合策略,有助于读者设计合理、高效、全面的的测试用例。参考文献:1william e.perry.effective methods for softwaretestingm.second edition.john wiley&sons,inc,1999:20-302(美)梅尔斯(myers,g.j.)等著,王峰,陈杰译.软件测试的艺术.北京:机械工业出版社,2006.13pfleeger s l. software engineering theory and practice.prentice-hall,20014万琳.软件自动测试方法研究.博士论文.装甲兵工程学院,20035古乐,史九林编著.软件测试技术概论.北京:清华大学出版社,2004-