软件测试价值观-SMBT新理念

作者:张元礼

http://blog.csdn.net/vincetest

近年来有不少软件测试同行不少有些困惑-软件测试人员的价值在哪里?我们怎么才能做好软件测试?怎么才能让自己的价值在团队中得到最佳的体现?在这里SMBT理念会给你答案,你所有的困惑将会迎刃而解。

一、SMBT是什么?

SMBT是Shortest time、Most
bug、Best bug、Track bug这几个单词的缩写,其含义就是“测试人员要在最短的时间内发现最多最有价值的Bug,并将Bug跟踪到底”,这就是我们测试人员追求的最高价值。其核心包括:一个宗旨、四个关键域。

附:SMBT图示

二、SMBT宗旨

以产品成败为出发点,站在整个项目团队的立场上思考问题、解决问题,而不是单一的从测试团队或者个人为出发点。

在这点我想说明的是:在一些企业里面的某些产品团队因为或多或少的原因导致产品失败,最后影响整个产品团队的考核,这个时候必然会有一部分测试人员跳出来说我们测试做的挺好的,产品失败和我们没什么关系,为什么给我们也考核得那么差。这时我想对那些测试人员或者主管测试的负责人说,你们真的错了,你们是为整个产品团队服务的,虽然产品失败的因素可能会很多、可能和你没直接关系,试想一下难道真的和你一点关系都没有么?如果现在用SMBT的宗旨来看待这个问题,你势必会找到你错在了哪里!我们不能有本位主义的思想来禁锢自己,我们一切要为整个产品团队出发,只有这样你才能在整个产品研发过程中充分发挥你的才能为整个产品服务,而不是单单的测试活动,因为单单的测试活动是远远不够的,这是传统的测试理念和思维给我们带来的弊端,也是SMBT产生的根本。

三、SMBT关键域

1.         Shortest time:最短时间、尽早、尽快

一方面Bug无限,时间有限,这个道理大家都知道,我们在测试工作中测试的时间是有限的,我们的每一项测试的时间都不可能很充足,随着互联网行业的竞争越来越大,产品更新换代的周期日益缩小,企业稍微慢一步,整个产品就完全没有竞争优势,势必会被竞争对手抢占先机,即使你有创新的想法,但没有最快的速度上市,也难得商机。不管是互联网行业还是其他行业,现在都是快鱼吃慢鱼的时代,在这种环境下,对我们的研发团队、我们的测试人员提出更高的要求,那就是快-快-快,一点都不能慢。测试时间长了即使你产品的质量再好,因为时间关系错失商机、流失用户,我们所有的付出都将白费。

另一方面从研发模式来讲,现在很多企业都比较推崇敏捷研发模式,这也是追求快速响应的一个途径,然而对于测试来讲,我们一定要尽早的发现Bug,让开发人员尽早的修改,或者让产品人员调整需求,而不是到了产品最后某些本应该前期发现的Bug结果到了产品快上线的时候才发现,一旦这个时间出现比较严重的Bug,这将会对整个产品的研发进度造成严重的影响,同时因为这个Bug的修复势必会对本来感觉已经稳定的系统带来重大的质量干扰,因为修复Bug在很大程度上必然会带来新的Bug,至于修复Bug的难度那就更不用说了。特别是在产品研发的后期发现需求流程上的问题,这将是灾难性的后果!

2.         Most bug:最多Bug

量变到质变是事物的变化规律,测试也如此,只有Bug的量上去了,产品的质量才能有所改观,如果Bug在数量上上不去,这对测试活动有信心谈何容易,一旦遇到这种情况测试经理们就头痛起来了,因为这必定是一个危险的信号,我们的信心将会荡然无存,除非系统质量足够的好,测试手段足够的高超,否则我们将会面临产品上市后的最大危机。

3.         Best bug:最有价值Bug

之前谈到我们尽早发现Bug、发现最多的Bug,难道这样就可以了么,很显然特别的片面,进一步的说我们还要发现有价值的Bug。那么什么样的Bug才算有价值呢?直白一点就是最影响系统使用、对系统功能模块有严重影响或者破坏作用的Bug,最能决定研发周期的Bug,比如说如果事先能把需求类的Bug在需求阶段提出来解决而不是等研发末期提出来,还有就是影响系统架构的Bug以及一些隐藏很深修复难度及波及面广的Bug,所有这些都是从量变到质变的过程。

4.         Track bug:跟踪Bug

经常会遇到一些项目在项目末期了才去关注以前提交的Bug,测试人员尽管很早就提出了很多严重的Bug,没有引起开发人员的注意或者测试人员跟进不给力,在这个时候需求类Bug提交的早、也提交的多、并且也很有价值,甚至有些直到产品发布上线运营了有客户投诉或者在运营过程中再次暴露的时候才引起关注,此类情况的发生直接说明前期所做的测试工作算是白做了,根本没有对产品质量做保证和提升嘛。也就是说我们测试人员缺乏明显的跟进,只发现Bug而不跟进Bug修改这是测试人员最大的悲哀,反之如果测试人员做到了这点也是测试人员的最大价值体现,我们找到Bug不算什么,关键还是要让Bug得到解决,这样才能对整个产品负责,也只有这样测试人员的价值才能得到真正的发挥和体现。

四、SMBT运用

1.         领会SMBT的宗旨,建立良好的心态,做一个有责任心的测试人员,明确自己的工作不仅仅是测试工作,而是为整个产品团队服务的工作,当然这得根据自己的精力和能力来限定范围,不能什么都抓什么都做。

2.         如何实现Shortest time

1)        尽早介入到产品研发活动中,特别是产品需求阶段是很容易被忽略的,有问题尽早发现;

2)        对测试活动及相关的安排进行合理的部署,测试策略、测试方法及测试工具的选择对测试效率的影响至关重要。

3.         如何实现Most bug、Best
bug

1)        加强测试设计的能力,提升测试技术基础势在必行,剖析被测对象的内在,而不仅是表象。

2)        站在产品用户的立场思考问题做好测试设计、深入挖掘用户行为和心理、深入理解系统运行机制及实现原理,这些都做到了,还做不到Most
bug、Best bug真的很难。

3)        不能单一的追求Most bug或Best
bug,要两者兼顾,要在Most的基础上Best。

4.         如何实现Track bug

1)        以主人翁的心态对待每一个Bug,我们不仅负责测试出Bug,还要将这个Bug的修改情况负责跟踪到底,直到最终解决不再复现为此,也只有这样我们的测试工作才算完成。另外还要以积极的心态高效的跟进,不能有半点耽误和延迟。

2)        不光要配合Bug修改,更重要的是要起到督促的作用,测试人员的行为要为整个项目负责。

领会SMBT宗旨,将SMBT四个关键域融会贯通、运用自如,此乃测试最高境界也!

PS:坦诚的讲,鄙人自知对SMBT的理解或许存在一些不完善的地方,在此也算是起到抛砖引玉的作用吧。希望测试界的广大同仁及读者能够对SMBT进行完美的补充,让SMBT更加完善,理念更加深入透彻。也希望测试工作者能够灵活运用到企业中,更好的改进测试工作,提升测试价值,保持测试行业的绝对竞争优势!

欢迎转载此文,转载时请注明文章来源:张元礼的博客 http://blog.csdn.net/vincetest

软件测试价值观-SMBT新理念的更多相关文章

  1. 阿里云发布CloudOps白皮书,ECS自动化运维套件新升级

    12月10 日,2021云上架构与运维峰会上,阿里云发布业界首部<云上自动化运维白皮书>(简称CloudOps白皮书),并在其中提出了CloudOps成熟度模型.同时,阿里云还宣布了ECS ...

  2. Progressive web app理念及发展前景

    前一段时间微信推出微信小程序进行公测,着实火了一把,博得了大众的眼球,不明真相的吃瓜观众们纷纷围观,所谓的“微信小程序”,通俗的讲就是一种不需要下载安装即可使用的应用程序,脱离于app商店依托于浏览器 ...

  3. DevOps:从理念到实施

    转载自:http://os.51cto.com/art/201404/436794.htm DevOps这个新理念的出现,是为了应对IT环境中普遍面临的一些挑战.开发团队要求的不断满足新的客户需求,并 ...

  4. 个人博客作业-week5-敏捷开发方法读后感

    满篇英文对一个非单词狂魔来说真的是很吃力啊… 敏捷软件开发方法是一种从1990年代开始逐渐引起广发关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力,他们的具体名称.理念.过程.术 ...

  5. CPS(Cyber-Physical Systems)白皮书-摘选

    <中国制造2025>提出,“基于信息物理系统的智能装备.智能工厂等智能制造正在引领制造方式变革”,要围绕控制系统.工业软件.工业网络.工业云服务和工业大数据平台等,加强信息物理系统的研发与 ...

  6. CMDB内功心法,助我登上运维之巅

    很多70.80后甚至90后都在金庸.古龙.梁羽生先生等武林大家熏陶下成长的,这么多年过去了,我的武侠梦依然不曾散去.曾几何,梦想有一天练就一身绝学,搂着小师妹花前月下,仗剑走天涯,快意人生.可每次的酣 ...

  7. Scrum敏捷开发过程

    首先来说一下什么是敏捷开发: 敏捷开发(Agile Development)是一种以人为核心.迭代.循序渐进的开发方法. 怎么理解呢?首先,我们要理解它不是一门技术,它是一种开发方法,也就是一种软件开 ...

  8. 成为一个高效的web开发人员,只需要三步

    想成为一名专业的web开发人员并不像你想象的那么容易,开发人员在开发自己的web项目时常常需要牢记很多东西,他们要不断寻找新理念,新创意,在特定时间内开发出高质量的产品,一名优秀的程序员必须明白时间的 ...

  9. 国外有哪些比较好的IT社区

    作者:匿名用户链接:https://www.zhihu.com/question/35373320/answer/114468522来源:知乎著作权归作者所有,转载请联系作者获得授权. Github ...

随机推荐

  1. Proe 导出PDF Vb.net

    Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSt ...

  2. 14 微服务电商【黑马乐优商城】:day06-使用nginx反向代理并掌握cors解决跨域

    本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) day02-springcloud(理论篇一) ...

  3. tmp == emg.经典+47

    zw.Y3s3{ttqtf**9q+{xx//up qm+Y3#9t%sfsfqtf+&* hh-Y@15zq&zf51"qt3+x>y ====== 城隍庙 经典景点 ...

  4. 在维护项目中的UUID工具类

    import java.util.UUID; /** * <p> * Title:uuID生成器 * </p> * <p> * Description:UUID 标 ...

  5. 吴裕雄--天生自然python学习笔记:python 用pygame模块制作一个音效播放器

    用 Sound 对象制作一个音效播放器. 应用程序总览 程序在执行后默认会把 WAV 音频文件加载到清单中,单击“播放”按钮可开始 播放,同时显示 “正在播放 xxx 音效”的信息 . 播放过程中,可 ...

  6. RHEL7在线安装rvm(ruby管理包)

    ttp://blog.csdn.net/lixwjava/article/details/50408070 安装curl sudo yum install curl 然后在在终端中输入命令 curl  ...

  7. 如何查看Linux系统下程序运行时使用的库?

    Linux系统下程序运行会实时的用到相关动态库,某些场景下,比如需要裁剪不必要的动态库时,就需要查看哪些动态库被用到了. 以运行VLC为例. VLC开始运行后,首先查看vlc的PID,比如这次查到的V ...

  8. Struts2加载自定义库注意事项

    新建Struts2项目,添加Struts2的jar包时,往往通过导入自定义库的方式,导入自定义库时,有个地方必须要设置,否则项目无法正常执行,如图所示: 必须要按照上述方式对自定义库进行加载!

  9. python学习笔记(8)迭代器和生成器

    迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式. 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退 ...

  10. Integer 中的缓存类 IntegerCache

    我们先看一段代码: public class TestAutoBoxing { public static void main(String[] args) { //-128到127之间 Intege ...