白盒黑盒灰盒动(静)态分析人工(自动化)测试

Posted wanghuijie1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了白盒黑盒灰盒动(静)态分析人工(自动化)测试相关的知识,希望对你有一定的参考价值。

白盒测试

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

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

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

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

为什么进行白盒测试?

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

白盒测试的常用技术

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

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

逻辑覆盖测试

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

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

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

程序插装

插入一些打印语句

黑盒测试

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

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

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

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

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

常见的黑盒测试类型

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

灰盒测试

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

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

三个盒测试的评估标准

白盒测试:逻辑覆盖率

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

灰盒测试:接口覆盖率

静态分析技术

不用过执行程序来测试

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

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

动态分析技术

对运行的程序进行分析

常用动态分析工具功能

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

常用黑盒动态测试工具

技术图片

人工测试和自动化测试

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

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

自动化测试的限制

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

自动化常用的因素

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

以上是关于白盒黑盒灰盒动(静)态分析人工(自动化)测试的主要内容,如果未能解决你的问题,请参考以下文章

软件测试|黑盒白盒灰盒测试的区别

小白学习测试的第一天!

动态测试一

金融软件工程作业Ⅷ:白盒黑盒测试

一文总结软件测试工程师面试前必背的面试题(持续更新中)

黑盒白盒和灰盒测试的区别