发布时间:2020-06-15
在白盒测试方法中,测试人员已经了解了系统内部的构造,并清晰地知道系统是如何实现的。 软件测试人员利用这些知识去开发测试用例,以用来检查控制流,信息流,数据流,异常和错误处理和系统的编码实践等,这种方法称为白盒测试。
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。“白盒”法全面了解程序内部逻辑结构,对所有逻辑路径进行测试。
白盒测试工具一般是针对代码进行测试,测试中发现的缺陷可以定位到代码级,根据测试工具原理的不同,又可以分为静态测试工具和动态测试工具。静态测试工具直接对代码进行分析,不需要运行代码,也不需要对代码编译链接,生成可执行文件。
静态测试工具一般是对代码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调用关系图等;动态测试工具与静态测试工具不同,动态测试工具的一般采用“插桩”的方式,向代码生成的可执行文件中插入一些监测代码,用来统计程序运行时的数据。其与静态测试工具最大的不同就是动态测试工具要求被测系统实际运行。
评估一个测试工具的好坏,采用评估标准不同,所站的角度不同,评估结果大相径庭。所谓每个人的心中都有杆称,让测试人员选工具,他会站在测试的角度去选择,会更注重白盒测试能做得下去,之后才有兴趣深入去做,如果让质量人员去选,他会侧重于质量保障环节,比如非常看重覆盖率评估、测试报告提交等,但如果让企业老板选工具,恐怕他首先考虑的是这个工具的价格。所以,测试工具的选型过程,必然是各种因素综合考虑的权衡过程。进行公正的工具选型首要问题是:如何选择评估要素并赋予不同的权重,套用一句规范术语,我们先建模,确定评估模型,再按条目打分作决策。
由于白盒工具的核心功能比较确定,都离不开写脚本做测试,要打桩、构造测试数据、看覆盖率等,所以,鉴于本领域的特殊性,我们不必按功能逐项评估,只需评价这些功能服务于“测试效率提升”、“工具易用性”、“对质量保证的促进”的能力如何就可以了。
常用的白盒测试工具汇总:
Jtest:是一个代码分析和动态类、组件测试工具,是一个集成的、易于使用和自动化的Java单元测试工具。它增强代码的稳定性,防止软件错误。
Jcontract:Jcontract在系统级验证类/部件是否正确工作并被正确使用。Jcontract 是个独立工具,在功能上是Jtest 的补充。可以用Jcontract插装按DbC注解的Java代码。当您将类/部件组装成系统时,Jcontract 在运行时监视并报告错用和功能性问题。Jcontract 帮助每个开发人员有效地考核类/部件的系统级行为。
CodeWizard 代码静态分析工具,先进的C/C++源代码分析工具,使用超过500 个编码规范自动化地标明危险的,但是编译器不能检查到的代码结构。
Insure++是一个基于C/C++的自动化的内存错误、内存泄漏的精确检测工具。 Insure++能够可视化实时内存操作,准确检测出内存泄漏产生的根源。Insure++还能执行覆盖性分析,清楚地指示那些代码已经测试过。
BoundsChecker Visual C++ Edition 是针对Visual C++开发人员的首选的运行时的错误检测和调试工具。它通过驻留在Visual C++ 开发环境内部的自动调试处理程序来加速应用程序的开发,缩短产品发布的时间。BoundsChecker 对于编程中的错误,大多数是 C++中特有的提供了清晰的详细的分析。它能够检测和诊断出在静态,堆栈内存中的错误以及内存和资源泄漏问题。在运行状态下,BoundsChecker 验证超过 8,700 APIs 和 OLE 方法,包括最新的 Windows APIs, ODBC,ActiveX,DirectX, COM 和 Internet APIs。
CodeAnalyzer(简称CA)是上海泽众软件科技有限公司自主研发的专业代码质量管理的代码审查软件,用于实现静态分析、代码走查、代码规范检查以及代码潜在错误分析的白盒测试工具,它是一种脱离编译器的代码静态分析软件产品。
推荐阅读:
您的信息已成功提交!
我们的客服人员稍后会与您联系