zoukankan      html  css  js  c++  java
  • 白盒、黑盒、灰盒、动(静)态分析、人工(自动化)测试、覆盖率

    白盒测试

    单元测试:一般用白盒测试(依据《详细设计说明书》LLD)

    集成测试:一般用灰盒测试(依据《概要设计说明书》HLD)

    系统测试:一般用黑盒测试(依据《需求规格说明书》SRS)

    白盒测试:基于程序结构的逻辑驱动测试。(透明盒)

    为什么进行白盒测试?

    • 白盒测试在前期,使前期逻辑覆盖率达到一定指标,是软件内部逻辑结构问题能基本得到消除。
    • 保证逻辑结构达到一定覆盖程度,给予软件代码质量更大的保证
    • 白盒测试发现问题后解决成本较低

    白盒测试的常用技术

    白盒测试一般会用到静态分析和动态分析两类技术。常用的有:

    • 静态分析:控制流分析、数据流分析、信息流分析等
    • 动态分析:逻辑覆盖测试(分支测试、路径测试等)、程序插装等

    逻辑覆盖测试

    根据覆盖的对象不同,存在多种逻辑覆盖测试
    语句覆盖 :有百分之多少的语句被用例跑到
    判定覆盖
    条件覆盖
    判定一条件覆盖
    路径覆盖

    ................

    逻辑覆盖率的统计通过程序插装来实现

    程序插装

    插入一些打印语句

    黑盒测试

    ​ 黑盒测试针对的被测对象可以是一个系统、一个子系统、一个模块,一个子模块、一个函数等

    黑盒测试又可以被称为基于规格的测试。

    (黑盒测试主要就是测输入数据和输出数据)

    • 等价类划分法;
    • 边界值分析法;
    • 因果图分析法;
    • 判定表法;
    • 状态迁移法;

    不管是什么测试方法,都是为了减少测试时的测试用例数,都是为了用尽量少的测试用例去完成测试,去发现更多的问题。

    常见的黑盒测试类型

    • 功能性测试,一种是顺序测试每个程序特性或功能,另一种途径是一个模块一个模块的测试,即每个功能在其最先调用的地方被测试;
    • 容量测试,检测软件在处理海量数据时的局限性,能发现系统效率方面的问题;
    • 负载测试,检测系统在一个很短时间内处理-个巨大的数据量或执行许多功能调用上的能力;
    • 恢复性测试,主要保证系统在崩溃后能够恢复外部数据的能力;

    灰盒测试

    (灰盒测试主要就是测接口数据的)

    ​ 如果既利用被测对象的整体特性信息,又利用被测对象的内部具体实现信息,采用的就是灰盒测试方法。两种信息占的比例不同,相应的灰度就不同。完全是整体特性信息,就是黑盒测试,完全是内部具体实现信息,就是白盒测试

    三个盒测试的评估标准

    白盒测试:逻辑覆盖率

    黑河测试:需求规格覆盖率

    灰盒测试:接口覆盖率

    静态分析技术

    不用过执行程序来测试

    **主要有三种不同的程序测试可能性:*:

    • 规则考虑程序是否满足编码,语法上是否具有一-致性和完整性;
    • 考虑文档描述是否规范、准确、便于查阅;、
    • 考虑程序和文档之间的一致性

    动态分析技术

    对运行的程序进行分析

    常用动态分析工具功能

    动态分析类型 工具的功能
    测试覆盖率分析 测试对代码的检测范围
    跟踪 跟踪程序执行期间的所有路径,例如所有变量的值等
    调整 度量程序执行过程中使用 的资源
    模拟 模拟系统的一部分、例如、无法获得的代码和硬件
    断言检查 测试在复杂逻辑结构中是否某个条件已经被给出

    常用黑盒动态测试工具

    人工测试和自动化测试

    一般来说,需要一些智力的、值执行一次的、控制测试质量的需要人工测试

    重复多次、比较机械性的适用于自动化测试

    自动化测试的限制

    • 不能取代手工测试,自动化测试只能提高测试效率,不能提高测试有效性,即不可能发现跟多缺陷
    • 手工测试比自动化测试发现的缺陷更多
    • 对测试设计依赖性大,测试设计的不好会遗漏问题
    • 自动化测试对软件开发具有很大的依赖性,开发商出现变更可能导致前面的自动化测试完全失效
    • 工具本身并不具备想象力,工具不具有智能

    自动化常用的因素

    1. 测试进度:对于测试进度短的,没有必要自动化,因为自动化要大量时间来准备。
    2. 人力要求:自动化用例设计人员、自动化执行人员、自动化计划方案书写人员需要一定的保障,初期要投入大量的人
    3. 版本的稳定:测试脚本要根据软件的 版本迭代而更新,所以如果软件版本更新频繁,不适合写脚本
    4. 版本应用:如果后期软件不进行应用的扩展就不写脚本
    5. 自动化率:一般用例自动化率 > 20%才写自动化脚本
    6. 版本规模:测试用例小的时候就不需要考虑自动化

    覆盖率

    .覆盖率概念

    • 白盒覆盖率:语句、判定、条件、路径

    • 灰盒覆盖率:接口(函数)

    • 黑盒覆盖率:功能

    覆盖率 = (至少一次被执行的 item 数)/item 的总数

    item(项目数):指的是前面的语句、判定、接口等等

    • 测试用例设计不能一-味追求 覆盖率,因为测试成本随覆盖率的增加而增加。
  • 相关阅读:
    python学习--大数据与科学计算第三方库简介
    养生轴---茶轴
    MobaXterm的安装和使用
    如何解决RIP的问题
    评论博客时注意的地方
    回忆老师教学博客
    助教自我介绍
    《构建之法》读书笔记1
    插入排序
    总结之H3C汇聚层交换机认证在线人数展示系统
  • 原文地址:https://www.cnblogs.com/wanghuijie1/p/11984895.html
Copyright © 2011-2022 走看看