郭 芊
浅谈白盒测试技术在动态软件测试中的应用
郭 芊
广州广电运通金融电子股份有限公司,广东 广州 510000
为增强动态软件测试的精准度跟使用效率,大量运用白盒测试技术,准确且高效地将软件代码里存在的问题及错误点及时找出来,再进一步进行改善,来开发出高品质水准的软件系统。
白盒测试技术;动态软件测试;应用
随着科技发展,很多由软件及硬件合并发展衍生成的软件测试成了目前市场中很重要的一个检验方式。软件测试是高质量、高水平软件的重要保证,而软件测试的目的是为了及时发现软件系统中可能或已经存在的漏洞,保障软件的安全完整性。[1]大部分公司开始重视这一环节的工作,甚至对软件测试这一方面加大投放力度。在软件测试中最基本的一个测试方式就是白盒测试,它的主要任务就是测试被测单元内部是怎么进行运作的。
白盒测试主要就被测单元内部怎样运作进行检测的一种基础性测试方法。它依照程序控制组织结构对导出测试用例进行规划设计,适合对象主要是那些软件程序,对其进行技术检测。白盒测试又可以称为透明盒测试跟逻辑驱动测试。[2]
白盒测试其中一个任务就是找出程序编码工作过程中存在的错误点。在编写程序代码时,程序员是否拥有着长期编程经验,是否对软件开始所使用的工具有足够了解,是否有着良好的工作状态,这些都是很重要的决定因素,它决定了程序员会不会在编写软件代码的过程中出现错误。针对那些语言方面上产生的错误,检测调试时还是可以进行改正的,但是对于一些运算、路径处理等技术上的问题一时发生就很难再发现并修改了。[3]
其实在进行白盒测试时,我们可以把被测试软件程序当作一个已经打开的小盒子,测试人员通过观察盒子里的东西来分析软件程序内部组织结构。而在对白盒测试进行运用时,必须事先对程序内部组织及运行结构有清楚的了解,再对所有程序中的逻辑路径进行科学的测试,可以说这是一种非常时期运用的手段。当企业确定运用这种方法时,软件测试人员一定要对程序内部结构进行详细检查,再根据检查程序中存在逻辑结构开始,慢慢总结出软件测试结果的数据资料。
白盒测试里已逐渐形成了一系列较为成熟的方法,这些方法相对而言也是比较常用的。其中,代表性方法就是覆盖率测试用例设计方法,以此向外展开,形成一个完整性方法体系,包括语句覆盖法、判定覆盖法等。下文选其中两个方法进行简要分析:
2.1 语句覆盖法
这是最常用、最常见的一种覆盖方式,就是度量被测代码中每个可执行语句是否被执行到了。它的作用主要体现在如果程序应用语句覆盖法在测试过程中,可以保障所有执行语句都可以运用到并可以进行路径测试,完成最后的语句覆盖。语句覆盖常常被人指责为“最弱的覆盖”,它只管覆盖代码中的执行语句,却不考虑各种分支的组合等。假如只要求达到语句覆盖,那么换来的确实测试效果不明显,很难更多地发现代码中的问题。
2.2 判定覆盖法
判定覆盖法又可以称为分支覆盖法。所谓判定覆盖,就是设计若干个测试用例,运行被测程序,使得程序中每个判定条件的取真分支和取假分支至少评价一次。与语句覆盖法相比较,其测试效果会比较明显。而这种方法的具体运用原理就是针对软件程序中每个用例,对其进行实际运用并测试,以此保证程序中所有程序路径都可以得到检验,都有一个“真值”或“假值”的判断。
3.1 测试软件具体功能需求分析
从图1我们可以看到,所有的测试人员在动态软件测试中通过白盒测试技术进行操作之前都是需要事先设计规划好一个程序流程图的,一个个划分好操作模块,以此来达到软件功能所需要的要求,运用“+、-、X、/”这四个功能键对被测软件对象整个软件运作过程进行检测。而具体如何操作,测试人员只要在整个测试过程中把具体数字一个个输入到对应的t1、t2的小文本框里,运用“+、-、X、/”这四个功能键对其进行数字运算,而最终结果会自己自然而然地出现在t3的文本框中,从整体操作来看并不太复杂,相对来说还是比较简单的,但最主要靠的还是仔细。
图1 程序流程图
3.2 白盒测试技术实际测试应用分析
当动态软件在运用白盒测试技术进行测试之前,最重要的一个必要条件就是软件中所有路径必须达到覆盖要求,否则将无法进行准确的检测。可以将程序简单地分成4部分,软件测试人员需要根据软件的实际需要在对应的对话框中输入对应的数值(如d1=99,d2=25与d1=99,d2=abc),通过这个来对软件程序中第一个部分里两个分支进行覆盖。接着再运用“+、-、X、/”这四个功能键对软件程序中第二个部分中的4个分支进行完整覆盖。而软件的第三部分可以通过输入d2=1,d2=25来对其进行完美覆盖。至于最后一个软件的最4部分则需要利用到循环方式进行分支覆盖,通常来说只需要进行一次路径覆盖方式下循环运行,来对第四部分的软件程序进行循环体检验就可以了。对于上述这四个软件程序分支点的操作,必须做到全部覆盖才能够有效通过路径验证,才可以精准地检验出软件系统中是不是真的存在潜在漏洞与不足,企业才可能及时纠正,防止错误的发生。
从上述所有分析来看,我们可以了解到市场上所有新开发产生的软件系统在生产之前都是经过严格的检验测试环节的,而整个测试过程中所使用的测试方式也多种多样。对于动态软件的测试一般是需要白盒测试技术来对软件系统进行严格技术检测的,白盒测试技术是一项相对基础性的测试方法,它能够检测出新软件中一些隐性的漏洞问题,可以比较精确地知道该软件是不是符合生产的标准,是否是一个合格品。当然,白盒测试技术也不是完美的,也会有一定的不足之处需要我们改善,它也是需要借助黑盒测试技术来协作完成软件系统的测试与验证。
[1]毛志雄.软件测试理论与实践[M].北京:中国铁道出版社,2008.
[2]贺平.软件测试教程[M].北京:电子工业出版社,2007.
[3]佟伟光.软件测试技术[M].北京:人民邮电出版社,2005.
The Application of White Box Testing Technology in Dynamic Software Testing
Guo Qian
Guangzhou radio and television financial electronic Limited by Share Ltd, Guangzhou, Guangdong 510000
To enhance dynamic software testing precision and use efficiency, extensive use of white box testing technique, accurate and efficient to the software code in the presence of the problems and errors in the little time to find out and further improved, to develop a high level of software system.
white box testing technology; dynamic software testing; application
TP311.52
A
1009-6434(2016)6-0152-02