白盒测试
概览
白盒测试也叫透明盒测试,或者叫结构测试,是用来测试软件内部结构或者应用的工作情况的测试方法,在白盒测试中,设计测试用例时会用到对系统内部结构理解和一定的编程技巧。测试员需要选择合适的输入来覆盖路径,并决定合适的输出。
白盒测试可以应用在单元测试,集成测试和系统测试上。尽管传统测试者更倾向于在单元测试层面做白盒测试,但是现在白盒测试在集成测试和系统测试上的应用越来越频繁。白盒测试可以用于单元内的路径覆盖,集成测试时的单元间路径覆盖,或者在系统测试时子系统建的路径覆盖。虽然这种方法会发现许多错误和问题,但是却有可能遗漏说明书中提到的却没有实现或者遗漏的要求。
设计白盒测试的技术有以下几种覆盖标准:
控制流测试
数据流测试
分支测试
语句覆盖
决策覆盖
修改条件/判断覆盖
朴素路径测试
路径测试
基本步骤
白盒测试的基本过程需要测试者对所测代码有深层理解,程序猿必须十分熟悉应用,知道设计什么样的测试用例才能在覆盖所有的可见路径。当理解代码后,就要分析代码,并据此设计测试用例。以下是设计测试用例的几个基本步骤:
准备,收集不同类型的需求文档,功能说明书,详细设计文档,恰当的源代码,安全说明等。这些为白盒测试输入基本信息做准备
处理,需要进行分先分析,得出整个测试过程,合适的测试计划,执行测试用例,并对结果进行沟通。这是创建能够彻底测试应用并且能够记录相应的结果的测试用例的基本步骤。
输出,围绕这上面的准备和结果来写最终的测试报告。
优点
白盒测试是现如今广发使用的两大方法中的一种,主要有一下几种优点:
知道代码有利于彻底的测试代码
通过揭露隐藏的错误和消除可能的缺陷,能够优化代码
因为开发者需要仔细的描述新的实现,能够让程序猿得到反省
让代码有可回溯性,当代码改变时能够轻易的修改测试用例
易于自动化
从工程实践较多对测试终止条件给出了清晰的规则
缺点
尽管白盒测试有很多优点,但他并不是完美的,任然存在混多缺点:
白盒测试增大了测试的复杂度,因为测试者需要了解程序,甚至程序猿本人。因为白盒测试本身的复杂性,白盒测试在测试的时候需要测试者有很高的知识层次。
在有些场合,测试应用中不可能单独地测试所有的存在条件,有的条件也不会被测试到。
测试关注软件本身,可能会忽视功能性的缺陷。