白盒测试技术在动态软件测试中的应用研究
2014-07-02王春平
王春平
摘 要:为了提高动态软件测试的效率及精准度,因而大力推行将白盒测试技术应用在动态软件测试中,以高效率地查找出软件代码中的错误或不足,进而促进软件系统开发达到高质量的标准。在此,本文将对白盒测试技术在动态软件测试中的应用进行重点研究。
关键词:白盒测试技术;动态软件测试;覆盖;应用
软件测试是任何软件系统开发过程中的一个重要的环节,对任一软件系统进行科学、严格的测试,这是确保软件系统达到高质量、高可靠性标准的一个有效途径。而为了提高动态软件测试的效率及精准度,所以大力推行将白盒测试技术应用在动态软件测试中,高效率的查找出软件代码中的错误或不足,以促进软件系统开发的高质量。
1 白盒测试及其常用方法
1.1 白盒测试
白盒测试,又叫透明盒测试或逻辑驱动测试。这是一种有效的测试方法与技术,其主要功能是全面了解程序内部的逻辑结构;验证软件程序;检测单元内部的工作情况;测试软件程序所有的逻辑路径。测试者通过运用白盒测试方法与技术来检查软件程序的逻辑结构、内部结构等,从中得出相应的检测数据,而后测试者根据这些数据来判断被测软件系统是否达到相应的标准,测试该软件系统是否还存在代码错误,最终确定该软件系统能够投入到具体的应用中。
1.2 白盒测试的常用方法
在白盒测试技术中已形成了一些较为成熟的常用方法,其中以覆蓋率测试用例设计方法为主要代表,且构成了一系列完整的方法体系,如语句覆盖法、判定覆盖法等都是该方法的组成要素。下面将通过一个具体程序实例来介绍语句覆盖法与判定覆盖法,例子程序的内容包括:①IF[(A<2)and(B=1)]then;②y=y/A;③IF[(C>2)and(X>1)]then;④z=z+1;⑤结束。如图1与图2,这是上述程序的流程图以及流图。
⑴语句覆盖法。当程序应用语句覆盖法进行测试时,其能够保证任何一个执行语句均可得到执行及路径测试,并完成语句覆盖。如上述的程序实例,根据图2可知程序中的①②③④⑤语句的执行路径为B、C、E、F,在测试用例过程中,只需满足A=1,B=1,C=3,X=2则完成了语句的执行与覆盖,通过了语句执行路径的测试。
⑵判定覆盖。判定覆盖法,又称分支覆盖法,这种方法与语句覆盖法相比,其测试效果更为强大。该方法的测试原理是对程序中所有用例进行执行与测试,从而确保每一个程序路径都经历了一次“真值”与“假值”的判定。如上述的程序实例,只有程序中的①③语句在测试用例过程中获得了一次“真值”与“假值”的判定时,该程序才能完成覆盖测试的判定。
2 白盒测试技术在动态软件测试中的应用
2.1 软件功能需求
如图3所示,在应用白盒测试技术在具体的动态软件测试操作之前,测试者需要设计一个程序流程图,并编写模块,以满足软件功能的需求。见图3,用户可通过t1、t2、t3三个文本框来实现数据的输入,利用“+、-、×、/”四个功能选项按钮来完成对软件程序的测试。在测试过程中,测试者只需要将数字输入到t1、t2的文本框中,通过“+、-、×、/”功能按钮来进行运算,其结果会在t3文本框中显示。
2.2 具体的测试应用
动态软件测试在应用白盒测试技术的操作之前,需要确保程序中的每条路径满足了覆盖。根据图3可将程序测试分为四个分支节点,测试者依据具体需求输入相应的数值(如d1=99,d2=25与d1=99,d2=abc)以覆盖程序第一个分支节点中的两个分支。而后,通过“+、-、×、/”来覆盖第二个分支节点中的四个分支。对于第三个分支节点的覆盖,可输入d2=1、d2=25来完成两个分支的覆盖。而在第四个分支节点中,以循环的形式来完成分支覆盖,一般只进行一次路径覆盖的循环执行,以完成对程序循环体的验证。只有当软件程序中的四个分支节点都满足了覆盖,并通过了路径验证,这时软件系统是否存在隐藏错误都可被检测出来。
3 结语
任意一个新开发出来的软件系统都需要经历软件测试与验证的阶段,在这测试过程中动态软件测试需要应用白盒测试技术来完成软件系统运行的验证,以判定被测试软件系统是否存在隐藏的错误,是否达到统一的程序标准。不过,白盒测试技术在动态软件测试中还存在不足,因而需要借助黑盒测试技术来协作完成对软件系统的测试与验证。
[参考文献]
[1]巨志斌.面向对象的白盒测试技术的研究与分析[J].软件工程师,2010(5):56-57.
[2]刘洋.白盒测试技术概述[J].广西大学学报(自然科学版),2008,33(Z1);70-75.