不要测试

  做为一名测试人员,我们也许会问我们自己很多问题:

  ● 我们可以立即执行的最好的测试是什么?

  ● 我将要使用的测试方法是什么?

  ● 这是一个Bug吗?

  ● 我已经测试完成了吗?

  但是我们之中会有多少人提出以下的这些问题呢?

  ● 这个组件需要一直被测试到吗?

  ● 需要由我来测试它吗?

  ● 如果它不工作,谁会去在意它呢?

   在我看来,我们提出的问题中和以上三个问题类似的还远远不够。可能这是因为我们已经被告知要测试一切东西。甚至我们的一部分人会在其质量团队中有一个流 程,要求某个人把每一个组件都贴上“已测试”的标签。我们对待测试就像一个常规的工厂程序,我们甚至有时候引以自豪的说…

  “我是测试工程师。因此,所有的东西都需要被测试…由我来做…即使非测试人员已经测试过了…即使我已经知道它将会通过测试…即使需要一个程序员告诉我怎么去测试…我必须测试它,没有例外!”

  这类想法可能会让测试人员有一个坏名声。由于欠缺思考的过程导致它强调了测试的重要性,而不是给一些人提供最有价值信息的服务。

  James Bach 带着以下的测试观点出现:

  基本的观点:“如果它存在,我就要去测试它”

  正如前面内容和我经常发布的文章中,我不同意这个观点。尽管如此,我完全同意James 在2006年8月7日,他在博客发布的完整版本中关于这部分的介绍:

  “如果它存在,我就要去测试它(唯一的例外是我有更重要的事情要做)”

   第二句话是可以有很多的理解方式!为什么呢?因为我们经常会有更重要的事情去做,通常是另外的测试工作!不幸的是,重要性往往不是区分的很明显。所以与 其衡量重要性,我更喜欢提出上面的三个问题,去寻找那些可能不值得浪费我的时间去测试的东西。下面八个例子是我讨论的内容:

  1、不会在产品中出现的组件- 我的团队中在每次迭代中都有这些内容。例如增强功能中的错误记录表或者跟踪生产活动中的审查报告。在敏捷开发的团队中这些被归入开发者用户故事(Developer User Stories)。这些内容不会随便的在产品中出现并且由于其本质不会直接影响到用户。

  2、关键产品问题的补丁不会很糟糕– 一天下午客户给我们的技术支持打电话,由于我们的产品的一个阻塞性质的bug导致他们处于错过一个关键最后期限(DeadLine)的边缘。我们只有一个 小时交付修复的产品。程序员很快的修复了问题,由于当前的产品是无效的,所以对修复之后进一步的产品存在的风险来说这是微不足道的。想要当英雄吗?不要让 事情慢下来。快速的让产品通过测试。如果需要以后再去测试。

  3、界面问题修复要有适度的准备时间– 我们修复了一个在屏幕上出现的用户错误消息中的拼写错误。用户并没有察觉到拼写错误但是我们无论如何修复了问题。很快而且简单。触发这个错误消息需要30分钟的准备时间,值得吗?

  4、直接了当的配置改变– 去年我们产品开始偶尔出现很大的作业不能处理的问题。一个程序员尝试改变通用配置修复问题。但在QA的环境中没有一个简单的方法去创建一个足够大的作业超过这个临界值,很难去测试。我们在产品中修改了配置然后用户很高兴的为我们做了测试。

  5、技术性的需要非程序员的测试– 测试部分功能时需要实施某种行为而在代码中设置断点来复现竞态条件.有时测试人员与工具和程序员精通产品代码的知识并不匹配。讨论这个测试但是回避它。

  6、非测试人员借用– 如果团队中一个非测试人员帮忙去做测试工作,或者更重要的,想帮忙测试某一组件,让他去做吧。跟他分享测试的思路并且跟他要测试报告。如果你觉得满意,不需要再去测试它了。

  7、没有复现步骤- 程序员偶尔会尝试某些东西。经常会出现一些错误报告,但是没有人能对这些错误给出确切的重现步骤。我们也许想对修改的区域做回归测试,但是我们发布的时候不会阻止这种明显的修复,因为我们不知道它管不管用。

  8、不足的测试数据或硬件– 让我们面对它吧。在我们QA的环境中,根据产品中所需要,大部分情况我们没有足够多负载平衡服务器。当一个有效的测试需要的资源在产品使用环境之外不可用时,我们可能无法对其进行测试。

  很多人也许尝试想像上面这些如果不去测试会导致的问题。我也会做这些。记住,这些事情也许不值得花费我们的时间去测试。再次权衡你所做的事情,如果在不是很清楚的时候,去问问利益相关者。

  如果你选择不去测试某些东西,很重要的是,不能被我误导。这是在我的团队中使用到方法。在我们进行组件审查时,我们 的(测试人员)说,“我们将不会去测试这些”。如果有人反对,我们会改变我们的想法并且测试它。如果没有人反对,我们就“未经审查即批准(rubber stamping)”。即表明没有被测试就让它通过这样可以让他进入到最终产品。

  所以下次你发现你自己正在着手做的测试,感觉比其他你应该做的事情更不重要时,你应该需要考虑…不去测试它。逐渐的,你的团队将会尊重你的决定并受益于更少的瓶颈,以及在你实际增加的价值的地方增长的覆盖率。

本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

软件测试中不需要测试的八件事相关推荐

  1. 23岁产妇坐月子双腿险被截肢,产后绝对不能做这八件事!

    杭州一位产后1个星期的23岁女性,双腿出现肿胀和痛感,家人和她都以为是怀孕后出现的寻常下肢水肿,没想到却被医生诊断为全肢深静脉血栓. 更让这位产妇王纯感到后怕的是,医生告诉她,如果再拖一段时间来就诊, ...

  2. 人物传记——ANDI WHITE:正视自己,才是人生中最值得做的一件事

    人的一生中,总有那么几件值得做的事情.近日,星盟全球投资总经理ANDI WHITE表示:正视自己,是人生中最值得做的一件事. ANDI WHITE说:永远不要太高估你自己,因为被现实"毒打& ...

  3. 软件测试中的压力测试是什么?

    压力测试 压力测试是一种软件测试,用于验证软件应用程序的稳定性和可靠性.压力测试的目标是在极其沉重的负载条件下测量软件的健壮性和错误处理能力,并确保软件在危急情况下不会崩溃.它甚至可以测试超出正常工作 ...

  4. 吴军长文讲解算力:全球算力竞争中我们要做的三件事

    这两天看到吴军的一段访谈,绝对是在算力这个话题领域中最深入浅出的一篇讲解了,把算力的概念.演进趋势,再到与经济发展如何挂钩.中国算力产业的发展方向,做了一个非常完整的梳理. 其中,吴军提到了算力竞争中 ...

  5. 当了项目经理,最想知道的八件事!

    文 / 王不留(微信公众号:程序员生存指南) 2020年过得真快,一晃热闹的国庆节结束了.回顾这一年,印象最深的应该是这场疫情,其它时间可能是将一天的工作生活复制了180次. 作为一家软件公司,涉及实 ...

  6. 我的世界java堆肥桶配方,我的世界:别再傻傻的产骨粉了,关于堆肥桶,你可能不知道八件事...

    大家好我是玩了三年依旧是萌新的菜鸟-十方,欢迎来到本期的MC精彩内容分享. 对于喜欢生存的玩家来说,每个农场中都缺少不了堆肥桶的身影,今天就大家聊聊关于堆肥桶的一些事,可能有你知道的,也可能有你不知道 ...

  7. 办公室礼仪:在工作中永远不要说的5件事

    对于我们许多人而言,我们大部分时间都会在工作场所是度过.在一个地方花费这么多时间可能会让你放松警惕,忘记办公室礼节.这关系到你的事业,在工作中有朋友和知己是一件好事,但你必须记住在工作场所保持职业行为 ...

  8. 软件测试中的冲突测试

    转自:http://www.51testing.com/html/54/n-247254.html 摘要:本文介绍了我们公司内部的一种测试方法--冲突测试的含义,并就冲突测试在我司使用范围.冲突测试用 ...

  9. 在软件测试中如何搭建测试环境?

    去搭建测试环境是软件测试实施的一个重要阶段,测试环境适合与否会严重影响测试结果的真实性和正确性.测试环境包括硬件环境和软件环境,硬件环境指测试必需的服务器.客户端.网络连接设备,以及打印机/扫描仪等辅 ...

最新文章

  1. 中国首次纳米孔测序大会:不可错过的教学专场和技术诊断
  2. 关于Linux vi命令 vi命令一览表
  3. 从地理分类的计算机网格,第2章-地理空间象计算机表达(6-9学时).doc
  4. 计算机视觉开源库OpenCV之threshold()函数详解
  5. setuptools与distutils的区别
  6. .bashrc和.vimrc以及一些比较有用的linux命令
  7. 心事一件件的了掉,希望一切都能恢复到正常
  8. 62、剑指offer--二叉搜索树的第k个结点
  9. php url传递 加号,坑爹的URL编码-PHP正确处理URL中的加号(+)
  10. Android 配置SUPL
  11. 倾斜模型精细化处理_基于倾斜摄影三维建模的模型精细化修复方法研究
  12. 分享图片或链接到抖音
  13. Windows痕迹清除技术
  14. 智慧环保 | 云计算护航环保行业未来可期
  15. 这几款高格调的app,让你的人生妖艳起来!
  16. 软件测试实战(微软技术专家经验总结)--第九、十章(团队工作、个人管理)读书笔记
  17. 组态王如何让计算机关机,实用组态王命令语言
  18. python万里长征2(非教)
  19. HTML中em标签的用法
  20. 11、JavaWeb-download文件下载

热门文章

  1. gmat模考_第一次完整模考总结,GmatPrep~~
  2. pg 定时删除_定时删除网站文件
  3. 解决:git push error: failed to push some refs to
  4. mysql封装增删改查_jdbc封装一行代码实现增删改查
  5. 幼儿园案例经验迁移_共教研,促成长阳光天健城幼儿园9月份教研分享
  6. 单细胞----关于Seurat的一些知识
  7. 依赖倒置原则_C#教您一步步摆脱面向过程:依赖倒置
  8. nfs服务器_亿格瑞4K蓝光播放机怎么访问电脑上搭建的NFS服务器教程
  9. mysql padding_解决RGB模式下图片的padding(补边框)问题(含代码实现)
  10. Lynn/ Online digital filters for biological signals: some fast designs for a small computer