写点什么

你在过度测试你的软件吗?

  • 2015-07-16
  • 本文字数:1039 字

    阅读完需:约 3 分钟

发布候选测试需要花费很长时间,这是许多敏捷团队都面临的一个最大的挑战。但据 JavaWorld报道,许多公司都通过持续交付模型消除或极大地减少了发布候选测试,而且它们有一些共性:

  • 使用测试工具:有许多测试工具可以执行软件,贯穿软件的基本流程。因此,选择恰当的自动化检查工具非常关键,而其目标是降低风险,快速执行,减少手工维护的工作量。
  • 将工具钩连到构建系统:等待构建完成再手工执行检查会浪费大量的时间,而在每次构建时自动检查可以消除这种浪费,最好是有一个自动化的检出 / 构建 / 部署 / 测试 / 推广管道。
  • 从根本上消除回归错误:利用减少发布候选测试节省出的时间改进开发实践。
  • 开发可单独部署的组件:借助组件,每个变更都是相互隔离的。变更影响范围小,降低了部署风险,使得部署或回滚过程更可控。
  • 根据风险划分测试 / 部署策略:不同的功能可能需要不同的测试策略或过程,高风险、发布频率低的变更可能需要更严格的测试过程。 Zappos(Amazon 的一个部门)很久之前就采用了这种方式
  • 持续监控生产环境:缺陷代码在生产环境中存在的时间越长造成的损害越大。如果团队可以快速发现并修复缺陷,那么风险将大大降低。
  • 自动部署和回滚:通过几次点击就可以实现部署或回顾。
  • 配置标识:程序员在编码时将新特性封装在一个if()语句中,然后就可以通过将配置标识设置为“On”或“Off”来启用或关闭特性。感兴趣的读者可以阅读下这篇文章
  • 增量滚动发布:将配置标识与不同的用户关联,就可以实现为不同的客户提供不同的功能。感兴趣的读者可以看下微软的做法

当然,并不是在任何情况下都可以消除发布候选测试。在某些情况下,需要在测试时间和发布风险之间进行权衡。也就是说,要根据风险制定灵活的发布候选测试策略。

对于 JavaWorld 的报道,有网友提出了不同的意见。Steve Naidamast 认为:

这个消除或减少应用程序的建议跟实际的测试过程一样复杂,甚至更复杂……此外,由于能力的不足或工具的缺陷……,会引入新的问题……

而网友 Chris Riley 则认为该报道具有误导性:

第一,它没有建议我们减少测试,而只是将测试移到了管道中的不同位置。第二,持续交付并不适合所有人……这看上去是个不错的理想,但可能会误导 R&D 主管在没有备用计划的情况下错误地削减了 QA 职位。


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-07-16 08:562205
用户头像

发布了 1008 篇内容, 共 353.8 次阅读, 收获喜欢 332 次。

关注

评论

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

【JavaScript】巩固JS开发中十个常用功能/案例(11-20)

海底烧烤店ai

算法 前端 JavaScrip 9月月更

为何公司的业务都在往小程序化发展

Geek_99967b

小程序

4 分钟过一遍 ES12 的 5 个要点~

掘金安东尼

前端 9月月更

小程序与工业互联网能够相辅相成的原因

Geek_99967b

小程序

软件测试 | 测试开发 | 后端Web开发框架(Java)

测吧(北京)科技有限公司

测试

深入浅出带你走进 RocksDB

KaiwuDB

数据库 RocksDB

软件测试 | 测试开发 | Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | JavaScript脚本注入,完成Selenium 无法做到的那些事

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 |H5性能分析实战来啦~

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 大话JMeter4|不同的并发数可以自动化做压测吗?

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | JMeter 典型电商场景(下单/支付)的性能压测

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | web自动化总卡在文件上传和弹框处理上?

测吧(北京)科技有限公司

测试

开发者有话说|前路有光,初心莫忘,从编程小白,到如今小有所成,我这一路是如何走来的?

浅羽技术

个人成长 经验分享 自学java 开发者有话说 职场妙招

软件测试 | 测试开发 | 接口自动化测试框架 RESTAssured 实践(三):对 Response 结果导出

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 同样是断言,为何 Hamcrest 如此优秀?

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 如何做好性能压测(一):压测环境的设计和搭建

测吧(北京)科技有限公司

测试

赞!| 龙蜥及其理事分获“2022 OSCAR 尖峰开源社区及项目、尖峰开源人物”奖项

OpenAnolis小助手

开源 龙蜥社区 获奖 理事长 产业大会

哪种企业更需要低代码开发框架

力软低代码开发平台

一起瓜分20万奖金!第三届火焰杯软件测试大赛开始公开选拔!

霍格沃兹测试开发学社

软件测试 | 测试开发 | TestNG 与 Junit 对比,测试框架如何选择?

测吧(北京)科技有限公司

测试

使用 Apifox 自动通关"羊了个羊" 1 万次,牛逼大了

Liam

程序员 自动化测试 抓包

软件测试 | 测试开发 | 大话测试数据(一)

测吧(北京)科技有限公司

测试

嗨,程序员,你知道高级工程师用的搜索引擎吗?

梦想橡皮擦

9月月更

低代码对接腾讯云-阿里云短信平台

葡萄城技术团队

低代码

软件测试 | 测试开发 | 如何确保API 的稳定性与正确性?你只需要这一招

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 持续交付-Jenkinsfile 语法

测吧(北京)科技有限公司

软件测试 | 测试开发 | 学习Docker就应该掌握的dockerfile语法与指令

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 电商业务性能测试(二): Jmeter 参数化功能实现注册登录的数据驱动

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 一改测试步骤代码就全写?为什么不试试用 Yaml实现数据驱动?

测吧(北京)科技有限公司

测试

一加与oppo是什么关系?答案就在这里

Geek_8a195c

软件测试 | 测试开发 | 只需搞定Docker,环境问题再也不是测开路上的『坑』

测吧(北京)科技有限公司

测试

你在过度测试你的软件吗?_敏捷_谢丽_InfoQ精选文章