码迷,mamicode.com
首页 > 其他好文 > 详细

软件测试之白盒测试

时间:2015-04-19 17:48:32      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:

白盒测试

一、白盒测试定义

  白盒测试:又称结构测试,是在已知程序的内部工作过程的情况下,用来测试程序的内部结构,并判定其结果是否与预期的结果一致。

  一般说来,白盒测试相对简单,因为白盒测试是在已知程序的内部工作流程的情况下进行的。

  而且白盒测试不会直接根据源代码,而是根据程序流程图来设计测试用例和编写测试代码,所以进行白盒测试之前首先要画出程序流程图。

二、白盒测试目的

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

三、白盒测试种类及方法

  种类:主要有静态分析测试、语句分支覆盖测试

  方法:

    1.语句覆盖

      语句覆盖就是设计足够多的测试用例,使得被测试程序中的每条可执行语句至少被执行一次。

      例如:下面的几行代码

      {x=3, y=3}可以执行到action1

      {x=-3, y=0}可以执行到action2

      这样通过两个测试用例即可达到语句覆盖的要求。

if(x>0&&y>0)
  action1;
else
  action2;

    2.分支覆盖(判断覆盖)

      分支覆盖要求在软件测试中,每个分支都至少获得一次真/假取值的经历。

      简单来说就是设计足够多的测试用例,使得被测试程序中的每个判断语句的真假分支至少被执行一次

      例如:以下代码中有两个判断语句,分别是if(x>0&&y>0)和if(z<0)

      所以为了满足分支覆盖可使用以下测试用例

数据 if(x>0&&y>0) if(z<0)
 {x=3, y=3,z=1} T F
{x=-3, y=0, z=-1} F T
if(x>0&&y>0)
  action1;
else
  action2;
if(z<0)
  action3;
action4;

    3.谓词覆盖

      谓词覆盖有分为原子谓词覆盖、分支-谓词覆盖、复合谓词覆盖

      原子谓词覆盖:要求每个复合谓词所包含的每个原子谓词都至少获得一次“真”和一次“假”,也就是说要使每个判断中的每个条件的可能取值至少满足一次。

      分支-谓词覆盖:要求不仅每个复合谓词所包含的每个原子谓词都至少获得一次“真”和一次“假”,而且每个复合谓词本身也至少获得一次“真”和一次“假”。

      复合谓词覆盖:要求每个谓词中的条件的各种可能组合都至少出现一次。

      

四、白盒的测试用例

  1.保证一个模块中的所有独立路径至少被使用一次

  2.对所有逻辑值均需测试 true  false

  3·在上下边界及可操作范围内运行所有循环

  4·检查内部数据结构以确保其有效性

五、黑盒测试和白盒测试的区别

黑盒测试 白盒测试
不涉及程序结构 考察程序逻辑结构
用软件规格说明书生成测试用例 用程序结构信息生成测试用例
可适用于从单元测试到系统验收测试 主要适用于单元测试和集成测试
某些代码段得不到测试 对所有逻辑路径进行测试

 

 

软件测试之白盒测试

标签:

原文地址:http://www.cnblogs.com/zxx1994/p/4439364.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!