基于结构化软件测试方法探究

发表于:2012-10-31 11:31

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:崔赛英    来源:51Testing软件测试网采编

  3、白盒测试

  3.1 白盒测试概念

  白盒测试又称为结构测试、逻辑测试和基于程序的测试,其目的是发现程序编码过程中的错误。它知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,来检验程序中的每条通路是否都能按预定要求正确工作,而不顾它的功能是怎样的。

  3.2 白盒测试的原理、方法及功能

  白盒测试把程序看成是一个打开透明的盒子,是对软件设计过程的细节进行细致的检查。测试人员必须清楚程序的内部结构,利用程序内部的逻辑结构和其他相关信息,设计或选择相应的测试用例,对程序所有逻辑路径进行测试,然后再不同点检查程序状态,确定实际状态是否与预期目标完全一致。

  软件测试人员使用白盒测试主要对程序功能模块进行检测,主要体现在以下几方面:对程序模块的所有独立的执行路径至少测试1次;对所有的逻辑判定“真”与“假”的两种取值至少测试1次;在循环的边界和运行界限内执行循环体;测试内部数据结构的有效性等。

  常用白盒测试方法有语句覆盖、条件覆盖、判定覆盖、条件组合覆盖、判定/条件覆盖、路径覆盖等,其中路径覆盖是最强的逻辑覆盖标准,它保证程序中的每一条可能的路径至少执行一次,因而这样设计的测试用例更具有代表性,暴露程序错误的能力也最强。

  3.3 白盒测试可行性研究

  白盒测试在了解系统整体设计与实现和对源代码进行审核的基础上进行,能尽早发现问题,测试效果好等优点,用盒测试技术应用于单元测试, 集成测试也会涉及一些。但是,白盒测试起点高,不能确保系统与软件需求的一致性,测试代价远远高于黑盒测试,侧重于实现,注重局部,对过程进行测试。

  常用的白盒测试工具有PR公司的PRQA 软件、Telelogic 公司的Lo2giscope 软件、Macabe 公司的Macabe、 Rational 公司的Purify、 Compuware公司的DevPartner 软件、Numega 中的BounceChecker等系列。其中Logiscope是一种软件质量保证工具,它可以通过自动进行代码检查和对容易出错的模块的鉴定与检测来帮助扩大测试范围,从而达到保证质量和完成软件测试的目的。Purify工具能自动定位内存相关错误,在错误发生并造成破坏之前进行修正,这些错误包括非法指针操作、数组越界检测、内存分配错误以及内存泄漏、未初始化内存访问等。

  4、实用测试策略

  为提高软件的测试策略,要尽可能把无限的测试变成有限的测试,以较小的代价暴露较多的程序错误,降低测试的效率成本。在实际高水平的测试中,往往需要综合使用各种方法,即采用白盒测试与黑盒测试相结合,静态测试与动态测试相结合,机器测试与人工测试相结合,以有效的提高测试效率和测试覆盖度。测试用例的设计方法有如下的实用测试策略:使用边界值分析设计测试用例,测试边界容易出错之处;使用等价划分设计测试用例,测试软件的主要错误;必要时结合人工测试的错误推测方法设计测试用例作弥补;使用逻辑覆盖涉及测试用例作为测试补充;若检查程序输入条件和各种组合情况或输入条件和输出结果存在因果联系,使用因果图法和判定表驱动法;软件存在着多个输入参数且每个输入参数的有多种取值的情况,使用正交试验法;利用功能图法通过不同时期条件的有效性设计不同的测试用例;对于业务流清晰的软件,利用场景法贯穿整个测试案例设计过程,在案例中综合使用各种测试方法。

  5、测试原则

  不论使用什么测试方法设计测试用例,都必须保证软件的有限测试,测试人员在进行软件测试时应遵行如下的测试原则:一是软件要尽早测试和不断测试,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难,甚至造成严重的后果;二是预先预定软件的测试结果;三是尽量避免测试自己编写的程序,测试工作应该由独立的专业的软件测试机构来完成;四是测试要兼顾合法输入和不合法数据的输入;五是测试要以软件需求规格说明书为标准;六是对测试错误结果一定要有一个确认的过程,要明确找到的新错与找到的旧错成正比;七是测试是相对的,不可能穷尽所有测试,要根据人力物力安排测试,并选择好的测试用例和测试方法;八是测试用例留作测试报告与以后的反复测试用,重新验证纠错的程序是否有错。

  总之,黑盒测试和白盒测试是软件测试重要技术,用来发现软件缺陷与错误,是对软件质量进行度量和评估,以提高软件的质量的关键技术。任何软件项目都可以使用白盒测试和黑盒测试,在使用时不存在技术含量的谁高谁低的问题,只是两者的偏重不同,使用的技术也不同。从以往经验总结来看,软件工程师进行软件测试时,主要以黑盒测试为主,白盒测试为辅,必要时根据需要选择合适的测试工具,降低软件测试的工作量和复杂度,保证软件的质量,提高软件测试和软件开发的效率。

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号