zoukankan      html  css  js  c++  java
  • 软件测试之白盒测试

    白盒测试

    一、白盒测试定义

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

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

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

    二、白盒测试目的

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

    三、白盒测试种类及方法

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

      方法:

        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·检查内部数据结构以确保其有效性

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

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

     

  • 相关阅读:
    IntelliJ IDEA生成 Serializable 序列化 UID 的快捷键
    spring boot rabbitmq 多MQ配置 自动 创建 队列 RPC
    JAVA使用并行流(ParallelStream)时要注意的一些问题
    深入浅出Stream和parallelStream
    JAVA8 十大新特性详解
    redis客户端连接,最大连接数查询与设置
    如何在Java 8中愉快地处理日期和时间
    Jenkins:使用Git Parameter插件实现tag或分支的选择性构建
    Java正确获取客户端真实IP方法整理
    redis问题接囧办法及经验
  • 原文地址:https://www.cnblogs.com/zxx1994/p/4439364.html
Copyright © 2011-2022 走看看