写点什么

从动物觅食学到的测试经验

  • 2018-01-15
  • 本文字数:1773 字

    阅读完需:约 6 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

James Bach 说,我们可以通过动物如何觅食来学习如何更好地理解测试。随着时间的推移,测试人员会发现产品中哪里有 bug,但是测试人员偶尔随意在其它地方探索可能会更高效。不要再期望自动化可以让你解脱,学习如何去寻找 bug 吧。

James Bach 是一名资深软件测试人员,在 2017 秋季在线测试大会(Fall Online Testing Conference 2017)上发表了主题为“When Animals Test”的演讲。InfoQ 正以问答采访、总结和文章的形式展现这次大会的内容。

InfoQ 采访了 Bach 关于如何高效地发现缺陷、如何决定需要多少计划或规则以及如何提高测试人员的技术等问题。

InfoQ:测试和动物觅食之间的相似之处是什么?

James Bach:这两种活动都涉及在一个大型的复杂空间中搜索一些稀少的有价值的东西。对于测试人员而言,意味着发现 bug。对于动物而言,意味着寻找食物。通过自然选择演变机制(即,达尔文进化论),动物发展出不需要消耗太多能量就可以发现食物的策略。这些策略也许可以帮助我们更好地理解测试。以大黄蜂搜索它们的领地周围来寻找花蜜为例。首先,它们花费大量体力随意乱飞。一段时间后,它们就知道了哪里有花朵,这和测试人员了解产品中哪里有 bug 的方式很相似。最有趣的是,蜜蜂在优化了它们的采蜜路线之后,仍然会偶尔朝着随机方向乱飞,这使得它们能够发现新的花朵。它们有时候高效地采集食物,有时候到处乱飞。测试人员面临同样的权衡问题。

InfoQ:我们可以从中学习到什么?

Bach:我们可以从中学到的一件事是,不要再推进那些动物都知道不会有用的测试方法。动物知道,搜索是一个开放的充满随机性的过程。蜘蛛使用不断调整织网范围的方案来解决食物搜寻问题。因此,对于我们来说,编写大量无法自适应的测试用例可能并不是发现 bug 的最好方法。

不要再期望自动化会让你解脱。你必须学会搜寻 bug。搜寻是一个动态的过程。我们确实可以用自动化来帮助我们测试,但是我们应该使用自动化来强化我们的感知和能力,而不是用了自动化之后我们就可以去睡大觉了。

InfoQ:规划的价值是什么?我们如何发现我们规划了太多或者设立了太多规则?

Bach:规划的目的是配置我们的工具、资源和活动来高效地实现我们的目标;规划花费宝贵的时间和能量;一个好的规划所需的数据和技能通常来自过去糟糕的规划经历。因此,答案是:“我们总是在忘记或摒弃过去经历中不好的部分,不断进行探索和适应,在这个过程中我们会发现规划并没有我们预期中那么有用”。

虽然规则的成本很高,但却是对我们有好处的东西。通过不断的试验和突变来寻求遵循旧规则和探索新规则之间的权衡。那就是动物的行为方式。

InfoQ:如果我们的规则过多了,我们如何摒弃其中一些规则?我们如何决定哪些规则应该保留,哪些规则应该摒弃?

Bach:这就是缺乏纪律、年轻气盛和健忘的价值所在,它们都有助于调整和适应。这些品质并不一定是我们成长过程中坏的方面。正如我想说的:如果你想对一个坏的流程品头论足,那至少你不要那么做就好了。

换句话说,你也许没必要去摒弃那些多余的规则了,因为可能已经没有人会遵循这些规则了。

InfoQ:你对测试人员有哪些建议来提升他们的能力?

Bach:观察你自己是怎么工作的。观察别人是怎么工作的。时不时地认真地做些笔记,例如,问题解决的时候记录下问题是怎么解决的,任务完成的时候记录下任务是如何完成的。

这是其它动物不擅长做的事情。

例如,我有一次给自己录了一段自己测试时的 7 分钟的视频,对其中每 2 秒的时间段进行了分析。我以为会发现自己将潜在事实验证作为测试工作的一部分并在做许多这方面的工作,结果也确实如此。但令我惊讶的是,有大约 25% 的时间我用来做了一项严格来说既不是测试也不是事实验证的特殊活动,即意义构建(sensemaking)。意义构建是构建一套理论来解释一些你经历的事情。我一直没有意识到意义构建在我工作中的突出作用,直到我花了 3 个小时认真挑选并分析了 7 分钟的测试工作。在做了许多意义构建之后,我意识到自己可以开发一些锻炼方法和探索方法来系统性地完善它。

查看英文原文: Testing Lessons from Animals


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2018-01-15 18:001185

评论

发布
暂无评论
发现更多内容

APP自动化之Toast识别

霍格沃兹测试开发学社

星火大模型 VS FuncGPT(慧函数), 谁更胜一筹?

SoFlu软件机器人

智能多通道系统实现消息推送更智能更高效

MobTech袤博科技

前端 前端开发 消息推送 APP开发

App自动化控件定位

霍格沃兹测试开发学社

人机协作的交融:语音标注平台的秘密

来自四九城儿

2023-08-18:用go写算法。你会得到一个字符串 text, 你应该把它分成 k 个子字符串 (subtext1, subtext2,…, subtextk)。 要求满足: subtexti 是

福大大架构师每日一题

福大大架构师每日一题

自动化测试之模拟器控制

霍格沃兹测试开发学社

web自动化解决文件上传和弹框

霍格沃兹测试开发学社

K8s 常见面试题

互联网工科生

Kubernetes k8s

Docker 容器技术与常用命令

霍格沃兹测试开发学社

小灯塔系列-中小企业数字化转型系列研究——MICE测评报告

向量智库

Andriod微信小程序自动化测试

霍格沃兹测试开发学社

慧函数生成代码应用到IDEA遇到依赖包问题怎么办?

SoFlu软件机器人

语音技术的催化剂:语音标注平台的崛起

来自四九城儿

LCR 089. 打家劫舍

红袖添香

动态规划 力扣 打家劫舍

Docker 搭建Web服务器nginx

霍格沃兹测试开发学社

计算机网络知识,一文搞定

霍格沃兹测试开发学社

APP自动化如何使用参数化用例

霍格沃兹测试开发学社

Trapcode Particular for Mac(AE 3D粒子系统插件) 5.0.3激活版

mac

AE插件 苹果mac Windows软件下载 Trapcode Particular

软件测试/测试开发丨Python 模块与包 学习笔记

测试人

Python 程序员 软件测试 自动化测试 测试开发

开放原子开源基金会六、七月新增捐赠人

开放原子开源基金会

开源

软件测试/测试开发丨Python 错误与异常 学习笔记

测试人

Python 程序员 软件测试 自动化测试 测试开发

mutex vs atomic

Geek_44385e

Atomic mutex 互斥锁

Serverless 应用托管助力企业加速创新

阿里巴巴云原生

阿里云 Serverless 云原生

OpenCloudOS WOW 活动上线啦!千份社区好礼等你来拿!

OpenCloudOS

操作系统

LLM 落地电商行业的最佳实践来了?Zilliz X AWS 有话说

Zilliz

AWS Zilliz 向量数据库 电商行业 大模型落地

Appium WebView 技术原理

霍格沃兹测试开发学社

借助 AI 工具,真的能成为 10x 工程师?

SoFlu软件机器人

使用appuploader工具发布证书和描述性文件教程

雪奈椰子

腾讯云 CODING 荣获 TiD 质量竞争力大会 2023 软件研发优秀案例

CODING DevOps

从动物觅食学到的测试经验_语言 & 开发_Ben Linders_InfoQ精选文章