• 软件测试之白盒测试


    白盒测试

    一、白盒测试定义

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

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

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

    二、白盒测试目的

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

    三、白盒测试种类及方法

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

      方法:

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

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

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

     

  • 相关阅读:
    X oracle move lob 字段到另外的表空间
    X CentOS7使用firewalld打开关闭防火墙与端口
    X ftpd服务常见配置总结(/etc/vsftpd/vsftpd.conf) 【附参数文件】
    P1853 投资的最大效益
    P1466 [USACO2.2]集合 Subset Sums
    小A点菜
    NASA的食物计划
    动态规划入门笔记
    数字三角形 Number Triangles
    P1825 [USACO11OPEN]Corn Maze S
  • 原文地址:https://www.cnblogs.com/zxx1994/p/4439364.html
Copyright © 2020-2023  润新知