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

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

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

     

  • 相关阅读:
    209. Minimum Size Subarray Sum
    208. Implement Trie (Prefix Tree)
    207. Course Schedule
    206. Reverse Linked List
    205. Isomorphic Strings
    204. Count Primes
    203. Remove Linked List Elements
    201. Bitwise AND of Numbers Range
    199. Binary Tree Right Side View
    ArcGIS API for JavaScript 4.2学习笔记[8] 2D与3D视图同步
  • 原文地址:https://www.cnblogs.com/zxx1994/p/4439364.html
Copyright © 2011-2022 走看看