【软件测试-方法与技术】03-黑盒/白盒测试概览

        白盒方法就是能够看清楚事物的内部的方法,即了解事物的内部结构和运行机制,通过剖析事物的内部结构和运行机制来处理和解决问题。如果没有办法或不去了解事物的内部结构和运行机制,而把整个事物看成一个黑盒子,通过分析事物的输入、输出以及周边条件来分析和处理问题,这种方法就是黑盒方法。

1.白盒测试

        白盒测试也称为结构化测试或逻辑驱动测试,也就是已知产品的内部工作过程,清楚最终生成软件产品的计算机程序结构及其语句,按照程序内部的结构测试程序,测试程序内部的变量状态、逻辑结构、运行路径等,检验程序中的每条通路是否都能按预定要求正确工作,检查程序内部动作或运行是否符合设计规格要求,所有内部成分是否按规定正常进行,如图2-9所示。

        白盒测试不仅可以应用在程序的单元测试,覆盖程序的语句、分支或逻辑路径,而且可以扩展到更高层次的控制流路径(如业务流程路径和数据流路径等)的覆盖。一旦将这些流程图绘制出来,就可以设计足够的测试用例来覆盖其分支、条件、条件组合或基本路径等,从而比较容易衡量测试的覆盖率,以判断测试是否充分、是否达到相应的软件产品测试要求。白盒测试的基本原则如下。

(1)在执行测试时,先考虑代码行和分支被覆盖;

(2)再考虑完成所有逻辑条件分别为真值(True)和假值(False)的测试;

(3)如果有更高的质量要求,测试对象流程图中所有独立路径至少被运行一次;

(4)检查内部数据结构,注意上下文的影响,以确保其测试的有效性。

        白盒测试法试图穷举路径测试,但几乎不可能,因为贯穿一定规模的系统程序的独立路径数可能是一个天文数字。企图遍历所有的路径是很难做到的,即使每条路径都测试了,覆盖率达到100%程序仍可能出错。

(1)穷举路径测试绝不能查出程序违反了设计规范,即程序在实现一个不是用户需要的

(2)穷举路径测试不可能查出程序中因遗漏路径而出错。

(3)穷举路径测试可能发现不了一些与数据相关的异常错误。

2.黑盒测试

        黑盒测试方法也称为数据驱动测试方法或基于需求规格的测试。在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试人员针对软件直接进行测试,如图2-10所示,检查系统功能是否按照需求规格说明书的规定正常使用、是否能适当地接收输入数据而输出正确的结果等,检查相应的文档是否采用了正确的模板、是否满足规范要求。

        黑盒测试方法不关注软件内部结构,而是着眼于程序外部用户界面,关注软件的输入和输出,关注用户的需求,直接获得用户体验,从用户的角度或扮演用户角色来验证软件功能,验证产品每个功能是否都能正常使用,评估软件的使用质量。过去,人们常常把等价类划分法、边界值分析法、错误推测法等具体方法归为黑盒测试方法,这是不够恰当的。例如,边界值分析方法可以在系统外部输入中运用,也可以在代码内部变量测试中运用,前者归为黑盒测试方法,后者归为白盒测试方法。所以某种方法是否为黑盒测试方法,关键还是看是针对被测对象内部结构还是针对被测对象的整体来进行测试。黑盒测试方法常用于发现以下缺陷。

(1)有错误的功能或遗漏了某项功能;

(2)不能正确地接收输入数据,输出错误的结果;

(3)功能操作逻辑不合理、不够方便;

(4)界面出错、扭曲或不美观;

(5)安装过程中出现问题,安装步骤不清晰、不够灵活;

(6)系统初始化问题等。

        使用黑盒测试方法时,穷举测试也是不可能的,即不可能完成所有的输入条件及其组合的测试,黑盒测试法的覆盖率有时比较难以测定或达到一定水平时就难以提高,这是它的局限性。所以,在实际测试工作中,还要结合白盒测试方法,进行条件、逻辑和路径等方面的测试。

        在实际工作中,可以根据需要,综合运用不同的测试方式、方法,以达到良好的测试效果。例如,将静态测试、动态测试和白盒测试、黑盒测试组合成4种基本的测试方式,如表2-1所示,以满足不同被测试对象的测试要求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值