软件测试中的白盒测试

来源:互联网 发布:淘宝人像摄影教程 编辑:程序博客网 时间:2024/04/30 03:00

什么是白盒测试?

       白盒测试是一种典型的测试方法,是一种按照程序内部逻辑结构和编码结构设计测试数据并完成测试的测试方法,因此又称为结构测试或逻辑驱动测试,如上图所示。它是基于程序代码的内部逻辑知识,测试覆盖全部代码、分支、路径和条件。它利用查看代码功能和实现方式得到的信息来确定哪些需要测试、哪些不需要测试、如何开展测试。

白盒测试一般分为静态测试和动态测试,静态测试不实际运行软件,主要是对软件的编程格式、结构等方面进行评估,采用的是代码走查、代码审查、程序结构分析、控制流分析、数据流测试及信息流分析等;而动态测试需要实际运行软件,并使用设计的测试用例去探测软件缺陷。

白盒测试的特点主要有:

(1)可以构成测试数据,使特定程序部分得到测试;

(2)有一定的充分性度量手段;

(3)可获得较多工具支持;

(4)通常只用于单元测试。

       需要注意的是,白盒测试是单元测试阶段常用的测试方法,但不能将单元测试和白盒测试等同起来。因为单元测试是一个测试阶段,是和集成测试、确认测试、系统测试、验收测试并列的测试阶段,在单元测试阶段,常用到的测试方法是白盒测试,但在单元测试阶段,也可以使用黑盒测试方法进行测试,例如针对不知道程序内部结构的动态链接库DLL接口的测试,就属于单元测试中的黑盒测试。

白盒测试的内容有:

(1)对程序模块的所有独立执行路径至少测试一次;

(2)对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;

(3)在循环的边界和运行的边界限内执行循环体;
(4)测试内部结构的有效性。

白盒测试的目的:

通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。

实施步骤:
1.测试计划阶段:根据需求说明书,制定测试进度。
2.测试设计阶段:依据程序设计说明书,按照一定规范化的方法进行软件结构划分和设计测试用例。
3.测试执行阶段:输入测试用例,得到测试结果。
4.测试总结阶段:对比测试的结果和代码的预期结果,分析错误原因,找到并解决错误。

优点:

1.迫使测试人员去仔细思考软件的实现
2.可以检测代码中的每条分支和路径
3.揭示隐藏在代码中的错误
4.对代码的测试比较彻底
5.最优化
  缺点:
1.昂贵
2.无法检测代码中遗漏的路径和数据敏感性错误
3.不验证规格的正确性

局限性:

但即使每条路径都测试了仍然可能有错误。可能出现的情况如下:

1.穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。

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

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


 

0 0