白盒測试和黑盒測试往往是项目中最受争议的两种測试类型,每一个人偏爱各不同。现实生活中行业人员大多喜欢白盒測试而忽视黑盒測试,那么项目中又应该怎样平衡这两类測试呢?我们先来看两个案例。

案例一:

某移动互联网企业项目正在匆忙的进行中。由于项目的需求,须要招聘若干測试project师,当中小张由于白盒測试经验丰富而被录取。项目进行过程中,小张搭建了非常完好的白盒測试框架而且用例覆盖度也非常高,自信满满的等待着项目圆满结束。项目结束后,合作的客户企业以及用户拿到软件之后大为惊讶,产品功能和界面有多处与需求不符,故项目终于失败告终。

案例二:

某企业大型ERP系统因新需求须要又一次定制。整个项目过程中,多名測试project师均仅採取黑盒測试的方式,项目终于因系统定制非常人性化而圆满告终。但好景不长,系统在正式使用的过程中遭遇了多次数据处理错误或崩溃,原因正由于測试过程中并没有覆盖到各种实际场景,终于这套系统也因此而不得不又一次开发。

上面两个案例或许比較极端,但却在实际项目中常常发生。在一个项目中黑盒和白盒并没有一个绝对的比例,也没有优劣之分,须要依据详细项目的背景或不同的阶段选择合适的測试策略。

在项目产品拥有非常多模块,而每一个模块处于刚刚开发的阶段的时候,产品模块并不具有界面或完整暴露的接口,从而开发者开发完成仅仅能通过白盒測试进行自測。此时的測试很多其它的会覆盖到模块中每段代码的逻辑以及推断路径,从而在代码结构内部保证了质量。

产品达到一定完毕度之后,能够通过黑盒測试对于产品的界面以及模块合并之后的功能进行測试。黑盒測试側重点则更关心产品的界面显示、功能是否与需求说明书相符,操作体验是否人性化。非常多产品界面显示是否友好远远比功能重要的多。

使用黑盒白盒的策略除了与项目阶段有关,还有项目背景有关。一些相对来讲用户群非常大,产品集成成本并不大的项目,黑盒測试占的比例相对就会非常大。比方各种平台的应用程序、企业系统等。而相对来讲一些大型项目,比方航空航天,白盒測试就不可缺少,而且颗粒度须要更细,而黑盒占的比例就会对应降低,同一时候大大降低了測试的成本。

SWTBOK測试实践系列(4) -- 软件測试技术的黑白之道的更多相关文章

  1. SWTBOK測试实践系列(1) -- 測试在项眼下期的评审投入划算吗?

    測试策略:静态測试还是动态測试? [对话场景] 成功公布某个软件版本号之后,项目团队召开了项目的经验教训总结大会.在会议期间,项目经理小项和測试经理小測进行了例如以下的对话: 小项:"小測, ...

  2. SWTBOK測试实践系列(5) -- 项目中使用手动和自己主动化的策略

    手动測试和自己主动化測试永远是一个非常热门的话题.自己主动化也一直被人们捧上神坛.自己主动化測试和手动測试从技术上来说本质事实上都是測试用例设计.仅仅只是终于形式一个是人工运行,一个是代码运行罢了.这 ...

  3. 软件測试系统文章(文件夹&链接在此)

    前言 我会在此账号上写一系列关于软件測试的文章,故在此置顶软件測试系列文章的文件夹和链接,以方便大家阅读! 文件夹 软件測试系列之入门篇(一) 软件測试系列之了解篇(二) 软件測试系列之黑白盒(三) ...

  4. 移动App測试实战:顶级互联网企业软件測试和质量提升最佳实践

    这篇是计算机类的优质预售推荐>>>><移动App測试实战:顶级互联网企业软件測试和质量提升最佳实践> 国内顶级互联网公司測试实战经验总结.阿里.腾讯.京东.携程.百 ...

  5. James Whittaker的软件測试戒律(二)

    摘录自<探索式软件測试>(注:作者模仿了圣经十诫的语气和内容编写了软件測试戒律) 1.汝应用大量输入重复锤炼汝之应用程序 2.汝应贪图汝之邻居的应用程序 3.汝应亲自寻找睿智的预言家 4. ...

  6. 软件測试、ios中的測试概念以及步骤

    软件測试: 软件測试的目标是应该服务于软件项目的目标,能够通过建议反馈使用更加高效的方法和工具,提升软件开发效率以及软件开发质量.同一时候还能够通过过一些手段,更早.更快.很多其它地发现缺陷.从容减少 ...

  7. atitit.jndi的架构与原理以及资源配置and单元測试实践

    atitit.jndi的架构与原理以及资源配置and单元測试实践 1. jndi架构 1 2. jndi实现原理 3 3. jndi资源配置 3 3.1. resin  <database> ...

  8. (4.5.4)Android測试TestCase单元(Unit test)測试和instrumentationCase单元測试

    Android单元和instrumentation单元測试 Developing Android unit and instrumentation tests Android的单元測试是基于JUnit ...

  9. 新手学測试----Unit Test(单元測试)

    在程序猿做项目的过程中,每当完毕一个功能,首先自己须要对完毕的功能进行測试.我如今正在做的项目用的工具是VS2012.那么接下来,就说一说在VS2012中是怎样创建单元測试的. 怎样创建单元測试? 在 ...

随机推荐

  1. CentOS6.7 下安装git

    在CentOS5的时代,由于yum源中没有git,所以需要预先安装一系列的依赖包.但在CentOS6的yum源中已经有git的版本了,可以直接使用yum源进行安装. $ sudo yum instal ...

  2. F# 既能解释执行,也能编译执行

    F# 除了是函数式语言和面向对象语言之外,还有个突出的特点是:既能解释执行,也能编译执行.   一般说来,一种语言只能选择其一种.比如说C++.C#是编译执行,不能解释执行,象Matlab.R是解释执 ...

  3. Asp.Net WebApi+Microsoft.AspNet.WebApi.Core 启用CORS跨域访问

    WebApi中启用CORS跨域访问 1.安装 Nugget包Microsoft.AspNet.WebApi.Cors This package contains the components to e ...

  4. java 连接sql server2008配置

    Java 应用程序连接SQL Server2008 (Eclipse+JDK7.0+jdbc4.0.jar+Sql Server2008) 假设应用端的连接语句为: String url = &quo ...

  5. cocos2dx SpriteBatchNode 精灵的渲染优化类

    用处是减少对精灵的渲染次数,用法如下 SpriteFrameCache::getInstance()->addSpriteFramesWithFile("person.plist&qu ...

  6. reason: 'Could not instantiate class named MKMapView'

    详细原因: 拖入MapView直接运行,结果报错 解决:在Xcode导入MapKit.framework既可

  7. OpenCV——改变图像大小

    , , int interpolation=INTER_LINEAR ) dsize与fx和fy必须不能同时为零,也就是说要么dsize不为零而fx与fy同时可以为0,要么dsize为0而fx与fy不 ...

  8. [Mugeda HTML5技术教程之11]Mugeda API简介

    一.API 概述 Mugeda API 提供了一个简单的,结构化的方法来实时动态管理Mugeda内容.它提供了一下方法: •访问Mugeda内容中的对象. •获取和设置对象属性,如位置.旋转.比例.不 ...

  9. js动态给table添加行(tr)

    html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> < ...

  10. C语言基础学习基本数据类型-变量和常量

    变量和常量 什么是变量和常量?有些数据在程序运行前就预先设定,并在运行过程中不发生变化,称之为常量:有些数据在程序运行中可能发生变化或被赋值,称之为变量. 使用变量前必须先声明一个变量.变量定义的语法 ...