软件测试中的白盒测试分析

Posted Python软件测试木子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试中的白盒测试分析相关的知识,希望对你有一定的参考价值。

伴随着软件测试技术的迅速发展,白盒和黑盒测试在测试行业中运用的越来越多。白盒测试相对于黑盒测试在很多地方是不同的,白盒趋向于对软件结构和代码进行测试,可以设计出测试用例。

可靠的软件白盒测试工程师可以通过白盒对软件内部的逻辑关系进行定义,对各种逻辑路径实现全面覆盖,这样在测试中就能检查各个点和部位程序状态,保证测试的实际与预期状态相一-致。本文将深入分析软件测试中的白盒测试方法,希望对软件测试提供帮助。

1.软件白盒测试的作用及效果

做过软件测试的人都了解白盒测试能够准确地产生出测试运用。

例如,这个用例的好处在哪里呢,本文认为其有以下作用:

一是,实现了测试模块中的每个路径都能被测试-次,而且对所有的逻辑值都能调用true和fa1se。

二是,在软件的上下界面以及可操作的范围内可以运行所有的循环,做到测试的全面性。

三是,可以自动检查内部数据的结构性以确保其可以有效的操作。因此,将测试程序当做一一个已经打开的盒子,那么测试人员只需要按照盒子中已经存在的逻辑结构信息,设计相应的测试用例,就可以实现全路径覆盖测试,检查程序的运行状态,从而确定实际状态与预期状态的差距。

与通常的黑盒测试相比较,白盒最显著的优势就是提高了路径代码的覆盖率,在测试中可以及时发现代码中存在的一些不确定问题。

但是,白盒测试缺点也是显而易见的,最主要的就是路径较为复杂,测试不能对每一条路径都测试,测试全部依赖代码,如果设计不够精确,会影响测试的准确度,同时如果系统很庞大,那么测试花费就会很高。

2软件白盒测试分析

2.1精确挑选白盒测试工具

从当前的白盒测试运用方向来看,其运用端主要集中在了军工、航空航天等高精端行业,但是伴随着测试活动的迅速增加,白盒测试的运用范围也开始变得更加多元化,主要是做好对白盒测试软件的选购。在选购中要做到代码深度覆盖、开发语言支持以及测试的全程可视化操作,这样在测试中就能做到安全性。

比如对于开发语言,白盒相对于黑盒主要是对源代码测试,根据测试的需求,要将重点放在静态的错误分析以及动态的测试等。目前,白盒测试支持的开发语言包含了C++、Java等,伴随着软件语言的多种化,支持的语言会越来越多。同时要检查测试硬件工作是否可以支持PCI/VME/CPCI总线等,因此,在选购软件白盒测试工具时,要综合考虑所软件的测试性能和测试标准差等,使测试得到的数据精准化。

2.2白盒基本路径测试法

白盒测试方法是比较丰富的,经常使用的有逻辑覆盖法、静态质量度量法等等,但是基于基础性测试的基本路径测试法是采用最多的测试方法,受到测试者的喜爱。基本路径测试法以程序控制流程图为基础,可以对结构控制的环路进行分析,最后导出局基本的可执行路径的集合,这对于测试用例的实施具有显著的帮助作用。

主要有4个过程:首先,设计出程序控制流程图,对程序的实施流程描述。其次,根据程序环路复杂程度导出程序基本路径,从而解决程序圈的复杂度。再次,对测试用例导出,根据程序结构和复杂度设计用例的输入和输出结果。

最后,将导出的测试用例进行实施,保证基本路径中的每一条路径都被执行,达到测试的整体性。在测试中,我们要将基本路径全部覆盖,在每个分支的汇集处应该有一个汇集点,这样测试数据就能集中反映该点的测试情况,让测试或者程序员一目了然

2.3白盒测试实例分析

结合具体的白盒测试实例,可以让分析过程变得更加合理,因此,在实际测试中,可以根据客户的要求,分别采用语句覆盖、判定覆盖及其设计测试用例。(1)语晌覆盖(StatementCoverage)。

选取足够的测试数据,让测试程序中的每个语句至少执行1次。(2)判定覆盖。判定覆盖主要是用来设计测试用例,保证设计的程序中的所有判定都能获得一次检验的机会,比如“真值”和“假值”,或者是“真”分支或者“假”分支,这样就能使测试比较全面。

使用白盒进行检测时,要经常检查程序中每条通路是否按预定的要求正常工作,要测试所有合法的输入与输出,发现路径或覆盖问题之后,要重新理解程序内部的逻辑结构,以测试所有逻辑路径,该循环对象可以同时在循环边界和运行边界上执行,以满足不同测试的需要。

同时在测试中也要检查未覆盖的白盒单位,这是因为未覆盖的逻辑单位通常对应未测试的等价类,从而找到遗漏的测试用例,让白盒测试做到全面化,实现测试工作的要求。

2.4白盒测试持续改进关键

白盒测试在初始阶段,企业内部只是进行零星的单元测试或集成测试实践,缺乏成功案例。企业测试人员常见对白盒测试缺乏概念,大概了解代码审查、单元测试以及集成测试怎么做,但是涉及到具体的场景时,尤其是模块单元测试或者跨模块、跨子系统实施集成测试时,就会变得无头绪。

伴随着各种测试工具的迅速出现,测试已经不再是测试人员的负担,主动测试也成为了测试工作者的一种态度,而且在流程开发中已经不限于白盒测试。

在持续改进的白盒测试技术中,测试与编程人员要做好沟通交流,积极地设计代码功能,同时在标准允许的情况下人工对设计用例进行设计,对白盒的覆盖率进行统计,从而实现最强的白盒测试能力,在持续改进中,最理想的覆盖率是100%的语句、标准、分支以及路径覆盖。

3结语

综上所述,白盒测试技术在软件测试中运用极为广泛,深受软件测试人员的喜爱,可以依照代码检测软件中的每条路径和分支,及时发现代码中的错误信息,从而达到最优化的测试。但是,白盒测试对遗漏路径测试不足同时数据敏感性也不强,导致测试时需要比对的内容多。

下一步,在软件白盒测试中,测试人员要持续改进测试方法和程序,提高标准覆盖、判定/标准覆盖、标准组合覆盖、修正判定/标准覆盖等测试的比重,从而优化测试路径,提高测试效率。

看了这篇内容后,坚信以下两件事,也会对你的自我提升有一定的帮助:

1、点赞,让更多人能看到,同时你的认可也会鼓励我创作更多优质内容。

2、要让自己变得更强:想想,假如你是要在测试这个行业长期做下去,你的工作经验和测试技术是绝对不够的,你需要提升,你需要丰富你的技术栈!还等什么!​​​​​​​


软件测试资料免费领取 100+ 名企测试内推资源倾情分享

 

以上是关于软件测试中的白盒测试分析的主要内容,如果未能解决你的问题,请参考以下文章

第四周 项目中的白盒测试

后台服务项目的白盒测试之旅

后台服务项目的白盒测试之旅

白盒测试用例设计方法笔记-白盒测试用例设计概述

框架搭建篇——白盒测试体系

白盒测试实践-任务完成