• 软件质量保证与测试 白盒测试


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

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

    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 家族有哪些可以自行百度)

  • 相关阅读:
    [Oracle维护工程师手记]一次升级后运行变慢的分析
    [Oracle运维工程师手记] 如何从trace 文件,判断是否执行了并行
    Top Page
    Python 输出文件内容到网络端口
    [Spark][Streaming]Spark读取网络输入的例子
    [Spark]如何设置使得spark程序不输出 INFO级别的内容
    linux 利器
    C++ 资源大全
    Who is using Asio?
    服务器开发知识要点
  • 原文地址:https://www.cnblogs.com/yangf428/p/11171974.html
Copyright © 2020-2023  润新知