软件测试———白盒测试、黑盒测试与灰盒测试

时间:2024-03-05 07:22:41

  软件测试是一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。其的目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求、预先定义的不一致性,即为了在软件中发现尽可能多的缺陷和不足的地方。

  对于软件测试分类,最被大家熟悉的是根据软件结构与算法的角度来分类的:白盒测试、黑盒测试与灰盒测试。

  白盒测试又被称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试,是对软件的过程性细节做细致的检查。对于白盒测试,测试员必须要全面了解程序的内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。

白盒测试主要是想对程序模块进行如下检查:

1、对程序模块的所有独立的执行路径至少测试一遍。

2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。

3、在循环的边界和运行的界限内执行循环体。

4、测试内部数据结构的有效性。

  黑盒测试也称功能测试,是通过测试来检测每个功能是否都能正常使用。是已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。在黑盒测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

黑盒测试主要是为了发现以下几类错误:

1、是否有不正确或遗漏的功能。

2、在接口上,输入是否能正确的接受?能否输出正确的结果。

3、是否有数据结构错误或外部信息(例如数据文件)访问错误。

4、性能上是否能够满足要求。

5、是否有初始化或终止性错误。

  灰盒测试,则是介于白盒测试与黑盒测试之间的,灰盒测试关注输出对于输入的正确性,但同时也关注内部表现,不过这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。