zoukankan      html  css  js  c++  java
  • 软件质量保证与测试 白盒测试

    白盒测试:分析组件、系统的内部结构,并设计相应的测试用例进行的测试

    (结构测试、透明盒测试、逻辑驱动测试、基于代码的测试)

    1.为什么要引入白盒测试:

      对于行业严格要求的代码,比如军事、金融、医学等必须严格白盒测试

      可以洞察程序中的一切,往往可以进行比较完整的测试

    2.分类:

      静态白盒测试,动态白盒测试

      白盒测试方法:控制流分析、数据流分析、覆盖分析、路径分析、符号测试

    3.白盒测试应用范围:

      可以用于所有的系统开发阶段,包括单元测试、集成测试和系统测试。

      通常进行路径测试,可以测试单元内部。单元之间、子系统之间以及系统内部的各种执行路径。

    4.白盒测试的优缺点:

      优点:

        使程序员注意代码的自我审查,

        测试代码中每条分支路径,对代码的测试比较彻底,可以测试证明工作完整性。

        揭示隐藏在代码中的缺陷,保证程序中没有不该存在的代码

        根据内部结构进行最优化测试

      缺点:

        执行路径可能非常多,导致无法测试

        测试员必须会编程

        效率不高导致成本过高

    5.白盒测试过程:瞎掰掰easy

    6.静态白盒测试:评审:正式/非正式

      非正式:桌面审查 

                    聊天

                    伙伴测试

                    结对编程

      正式:  确定问题 -> 遵守规则 -> 准备 -> 编写报告

                   管理、技术评审

                   走查(答辩)

                   审查(专人报告)

                   审计

                (涉及编码标准和规范,通用代码审查清单、静态白盒测试工具C++ test  PC - Lint)

    7.动态白盒:

      ① 基于数据流的白盒测试(数据覆盖):查看代码中变量的定义和引用等情况,可判定软件可能存在的数据方面的隐患或者错误。

        变量被定义 + 变量被引用:变量必须先定义,再引用;被定义了就要被使用

        基于数据流的白盒测试已经非常成熟了

      ② 基于控制流的白盒测试(代码覆盖):测试程序的状态及其中的程序流程,设法进入和退出每个模块,执行每一个代码,追踪所有的逻辑和分支。

        (通常情况下进行彻底的数据流路径测试不现实)

        控制流图:节点 + 控制流线

                         节点:进程快 + 判定点 + 连接点(具体画法百度)

                        (具体由边和节点限定的范围被称为区域)啊哈!

                         特点:有唯一的入口节点(源节点代表开始),唯一的出口节点(中止接点代表结束),判定节点发出的边必须终止于一个节点

                         ※ 流程图化成控制流图

        测试覆盖标准:逻辑覆盖:语句覆盖、判定覆盖、条件覆盖、判定 / 条件覆盖、组合覆盖、路径覆盖(功能点覆盖率 和 结构覆盖率)

                                循环覆盖:

                                基本路径测试:(McCabe圈覆盖)

                                                           独立路径(多次出入每次都不完全一样)

                                                           环形复杂度:(也叫圈复杂度:程序模块独立路径数量,确保所有路径执行一次的下界  ※ 环形复杂度计算公式

                                                           基本路径测试方法:画程序流图 -> 计算环形复杂度,独立路径条数 -> 导出基本路径集 -> 设计测试用例输入数据和预期输出

                                几种不同的覆盖以及代码举例

    8.Foster的ESTCA覆盖准则:

    9:Xunit简介:

       白盒测试是主要的单元测试方法

       一般由开发人员实施白盒单元测试

       目前广泛使用的动态白盒测试工具是xUnit测试框架家族

    单元测试工具分为两类:

       自动化单元测试工具:C++ Test 、Visual Unit 自动产生用例,执行测试、生成测试报告等

       单元测试框架:提供类库和接口,用户自己编写测试代码来进行单元测试,如 xUnit 家族(xUnit 家族有哪些可以自行百度)

  • 相关阅读:
    HDU 2544 最短路
    HDU 3367 Pseudoforest
    USACO 2001 OPEN
    HDU 3371 Connect the Cities
    HDU 1301 Jungle Roads
    HDU 1879 继续畅通工程
    HDU 1233 还是畅通工程
    HDU 1162 Eddy's picture
    HDU 5745 La Vie en rose
    HDU 5744 Keep On Movin
  • 原文地址:https://www.cnblogs.com/yangf428/p/11171974.html
Copyright © 2011-2022 走看看