最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

  • 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:001107

评论

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

EndNote 21 for Mac(文献管理软件) v21.0.1激活版

mac

苹果mac EndNoter 参考文献管理软件 Windows软件下载

【墨菲安全实验室】 Apache Airflow Drill Provider < 2.4.3 存在任意文件读取漏洞(CVE-2023-39553)

墨菲安全

Apache 网络安全 安全 漏洞 apache 社区

面部表情识别研究:解读情绪的密码

来自四九城儿

ByConity 首次 TPC-DS 测试结果发布 & 新活动邀请!

字节跳动开源

大数据 开源 字节跳动 数仓 社区

面部表情识别:心理学与计算机科学的交汇点

来自四九城儿

生成式AI:未来内容产业的变革力量

百度开发者中心

人工智能 百度文心一言

软件测试/测试开发丨Python 虚拟环境及pip环境管理

测试人

Python 程序员 软件测试 测试开发

生成式AI:人工智能新生产力

百度开发者中心

人工智能 百度文心一言

2023-08-14:用go语言写算法。给出两个长度相同的字符串 str1 和 str2 请你帮忙判断字符串 str1 能不能在 零次 或 多次 转化 后变成字符串 str2 每一次转化时,你可以将

福大大架构师每日一题

福大大架构师每日一题

鱼龙混杂的网络营销行业:入行新人如何规划职业

石头IT视角

使用FTP文件传输协议的潜在风险

镭速

文件传输协议

软件测试/测试开发丨Python 常用第三方库 yaml

测试人

Python 程序员 软件测试 测试开发

生成式AI发展前景展望:创新、应用与市场规模

百度开发者中心

人工智能 百度文心一言

NLP文本匹配任务Text Matching 有监督训练:PointWise(单塔)、DSSM(双塔)、Sentence BERT(双塔)项目实践

汀丶人工智能

人工智能 自然语言处理 文本匹配

面部表情识别技术的伦理问题与应对策略

来自四九城儿

React和Vue的区别,大家怎么看?

FinFish

Vue React 小程序容器 混合app

生成式AI在电信行业的有所为与有所不为

百度开发者中心

人工智能 文心一言

NLP文本匹配任务Text Matching 有监督训练:PointWise(单塔)、DSSM(双塔)、Sentence BERT(双塔)项目实践

汀丶人工智能

人工智能 自然语言处理 文本匹配算法

使用 Amazon MemoryDB for Redis 作为 JuiceFS 的元数据引擎

亚马逊云科技 (Amazon Web Services)

Amazon

基于低代码如何7天内开发一套应用管理系统?

这我可不懂

低代码 应用开发 JNPF

SpringBoot有几种获取Request对象的方法?

王磊

java面试

生成式AI助力人工智能下半场

百度开发者中心

人工智能 百度文心一言

RHG之人工智能漏洞挖掘

云起无垠

更方便的集成使用!IoTDB plugin 上线 Grafana 官网!

Apache IoTDB

质效提升 | QA不做业务需求测试,你怎么看?

laofo

DevOps cicd 研发效能 持续交付 质量赋能

OpenHarmony Meetup 广州站 OpenHarmony正当时—技术开源

OpenHarmony开发者

OpenHarmony

【墨菲安全实验室】Smartbi未授权设置Token回调地址获取管理员权限

墨菲安全

网络安全 安全 BI

学习Java 8 Stream,提升编码能力!

互联网工科生

Java stream Java11 Stream API

SaaS出海:黄粱易得,黄金难收

ToB行业头条

如何选择最佳的文件传输协议?(FTP、TFTP、Raysync)

镭速

文件传输协议

IT工程化,提升数科公司运营能力

用友BIP

数科公司

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