what's the 灰盒测试

  灰盒测试的概念:是一种综合测试的方法,他将白盒测试和黑盒测试结合在一起,构成一种无缝测试技术。

  灰盒测试的思想:是基于程序运行时的外部表现又结合程序内部逻辑结构来设计测试用例,执行程序并采集程序路径执行信息和外部用户接口结果的测试技术。灰盒测试法旨在验证软件满足外部指标以及软件的所有通道或路径都进行了检验。

灰盒测试的特性:

  1. 灰盒测试同黑盒测试一样,也是根据需求文档来进行测试用例的设计。
  2. 灰盒测试通常在程序员做完白盒测试之后,在功能测试人员进行大规模集成测试之前。
  3. 灰盒测试需要了解代码工程的实现。
  4. 灰盒测试是通过类似白盒测试的方法进行的,是通过编写代码、调用函数或者封装好的接口进行,但无需关心程序内部的实现细节,依然可把它当成一个黑盒。
  5. 灰盒测试是有测试人员进行的。

灰盒测试的优点:

  1. 能够进行基于需求的覆盖测试和基于程序路径覆盖的测试。
  2. 测试结果可以对应到程序内部路径,便于bug的定位、分析、解决。
  3. 能够保证设计的黑盒测试用例的完整性,防止遗漏软件的一些不常用的功能或功能组合。
  4. 能避免需求或设计不详细或不完整对测试造成的影响。

灰盒测试的不足:

  1. 投入的时间比黑盒测试大概多20%-40%。
  2. 对测试人员的要求比黑盒测试高。
  3. 灰盒测试要求测试人员清楚内部系统结构由哪些模块组成,模块之间如何协作。
  4. 不如白盒测试深入。
  5. 不是用于简单系统。

灰盒测试的步骤:

  1. 确定程序的所有输入和输出。
  2. 确定程序所有状态。
  3. 确定程序主路径。
  4. 确定程序的功能。
  5. 产生实验子功能X的输入。
  6. 制定验证子功能的X的输出。
  7. 执行测试用例X的软件。
  8. 检验测试用例X的结果正确性。
  9. 对其余子功能,重复7和8.
  10. 重复4--8,然后进行9.进行回归测试。

参考:https://blog.csdn.net/celiabj/article/details/48750253

what's the 灰盒测试的更多相关文章

  1. XSS(跨站脚本攻击)的最全总结

    从OWASP的官网意译过来,加上自己的理解,算是比较全面的介绍.有兴趣的可私下交流. XSS 跨站脚本攻击 ============================================== ...

  2. 第二次团队作业 -- 预则立&&他山之石

    我说的都队 031402304 陈燊 031402342 许玲玲 031402337 胡心颖 031402203 陈齐民 031402209 黄伟炜 031402233 郑扬涛 一.团队任务计划 周数 ...

  3. 第三次个人作业—“K米”评测

    第一部分 调研,评测 评测 1.上手体验: 软件欢迎界面,色彩对比鲜明,前三图深色调,最后一条则充满了艳丽的色彩,让人对这个产品突然充满了期待. 软件界面加载速度慢,很多地方点击进去要等好久才能出现界 ...

  4. chapter1 渗透测试与metasploit

    网络对抗技术课程学习 chapter1 渗透测试与metasploit 一.读书笔记 二.渗透测试 通过模拟恶意攻击者的技术与方法进行攻击,挫败目标系统安全控制措施,取得访问控制权,并发现具备业务影响 ...

  5. 模糊测试——强制发掘安全漏洞的利器(Jolt 大奖精选丛书)

    模糊测试——强制发掘安全漏洞的利器(Jolt 大奖精选丛书) [美]Sutton, M.Greene, A.Amini, P. 著 段念赵勇译 ISBN 978-7-121-21083-9 2013年 ...

  6. Testing - 测试基础 - 分类

    对软件内部结构的深入程度 黑盒测试:又叫功能测试.数据驱动测试或基于需求规格说明书的功能测试. 白盒测试:又称结构测试.逻辑驱动测试或基于程序代码内部构成的测试. 灰盒测试:包含性能测试.自动化测试. ...

  7. Testing - 测试基础 - 方法

    选择和使用测试方法和工具 按照测试需求用途(或测试技巧)选择 在软件开发生命周期和软件测试流程中适当地选择 按照测试人员实际技能选择 选择可提供的和可执行的 测试方法 类别及技巧 目标 使用方法 举例 ...

  8. 开发人员看测试之TDD和BDD

    前言: 已经数月没有来园子了,写博客贵在坚持,一旦松懈了,断掉了,就很难再拾起来.但是每每看到自己博客里的博文的浏览量每天都在增加,都在无形当中给了我继续写博客的动力.最近这两天有听到Jbehave这 ...

  9. 安卓下如何使用JUnit进行软件测试

    软件测试作为程序员必备的一项技能是决定软件开发周期长短以及软件运行成败的关键,可以说好的软件不是代码写得好而是有效的测试决定的.本文将介绍在android下利用eclipse进行开发时如何使用JUni ...

随机推荐

  1. vue源码分析之目录架构(一)

    compiler compiler 目录包含 Vue.js 所有编译相关的代码.它包括把模板解析成 ast 语法树,ast 语法树优化,代码生成等功能 core core 目录包含了 Vue.js 的 ...

  2. numpy的索引-【老鱼学numpy】

    简单的索引值 import numpy as np a = np.arange(3, 15).reshape(3, 4) print("a=") print(a) print(&q ...

  3. react组件生命周期

    1. Mounting/组建挂载相关 (1)componentWillMount 组件将要挂载.在render之前执行,但仅执行一次,即使多次重复渲染该组件或者改变了组件的state (2)compo ...

  4. 必须知道的Linux内核常识详解

    一.内核功能.内核发行版 1.到底什么是操作系统 (1)linux.windows.android.ucos就是操作系统: (2)操作系统本质上是一个程序,由很多个源文件构成,需要编译连接成操作系统程 ...

  5. git更新Activemq在远程github上指定版本的源码步骤

    第一步:根据地址克隆源码 (activemq-5.9) $  git  clone   https://github.com/apache/activemq.git 第二步:查看远程源码的版本清单 ( ...

  6. JavaScript之扑朔迷离的this

    JavaScript这门语言中,最令人迷惑的地方有三个,闭包.this.原型.针对大多数人,可以利用词法作用域等避开this的坑,但是我们不能一直生活在舒适区,要敢于打破砂锅问到底,对我们来说也是一种 ...

  7. 在Linux下用gcc编译hello world

    1. 确保Linux系统里已经装好了gcc 测试:输入gcc后是如下的结果就说明已经安装成功 2. 创建HelloWorld.c 使用 touch 创建一个空文件; 用vim编辑 按下A或者I 插入 ...

  8. angularjs 设置全局变量(constant)

    转:angularjs自身有二种,设置全局变量的方法,在加上js的设置全局变量的方法,总共有三种.要实现的功能是,在ng-app中定义的全局变量,在不同的ng-controller里都可以使用. 1, ...

  9. FC105 FC106 Scale功能块使用说明

    有一点不明白,这个跟传感器本身的分辨率什么关系? 为什么定死 极性和非极性的值是7648 和27648 FC105是处理模拟量(1~5V.4~20MA等信号)输入的功能块: 其中管脚的定义如下:IN- ...

  10. centos6.5安装ganglia-gmond

    安装过程借鉴许多博客,最后得出没有出错的流程. 一.安装依赖包: yum -y install gccglibc glibc-common rrdtool rrdtool-devel apr apr- ...