写点什么

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

  • 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:562913
用户头像

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

关注

评论

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

启科量子可视化量子编程——QuComposer

启科量子开发者官方号

量子计算 可视化开发 启科量子

Go | 基本数据类型的相互转换

甜点cc

golang 学习笔记 10月月更

LF AI & Data AICon 2022—AI工程化回顾

星策开源社区

机器学习 微软 AI工程化 人工智能’ AICon

启科量子 QuBranch 正式开源

启科量子开发者官方号

量子计算 编程工具 启科量子

CDC ChangeLog Stream实时流入CLICKHOUSE最佳姿势

水滴

实时数仓 Clickhouse CDC Flink CDC Debezium

企业如何从0到1搭建BI系统

葡萄城技术团队

BI 仪表盘识别 可视化数据

Java的一维数组和二维数组

陌上

数据结构 Java、 10月月更

华为云桌面,助力企业扬帆起航

科技怪授

华为云 桌面云 华为云桌面

纵享丝滑,华为云CDN加速服务的极致体验

路过的憨憨

华为

汽车云服务应用场景系列报告——自动驾驶仿真测试云服务行业图谱

易观分析

云服务 汽车

代码规范以及commit扫描代码

甜点cc

前端 代码规范 React Native 10月月更

现代化SDLC与架构评审

I

安全架构设计 SSDLC

助力企业高效率办公,华为云桌面必不可少

科技怪授

华为云 桌面云 云桌面

分布式事务-消息队列实现分布式事务

zarmnosaj

10月月更

个人和初创企业想要搭建网站,如何挑选一台便宜合适的云主机?

京东科技开发者

云主机 网站搭建 测评 性能评测

独家!【隐秘而伟大】这群神秘的程序员,干了票大的

博文视点Broadview

从 Traefik 到 APISIX,汽车智能计算平台公司「地平线」在 Ingress Controller 的探索和实践

API7.ai 技术团队

开源 AI 网关 APISIX Ingress Controller

Java | static和不可变关键字final

陌上

编程 Java、 10月月更

Baklib产品知识库|为什么说客户体验非常重要?

Baklib

闻道Go语言,6月龄必知必会

有态度的马甲

换行符不一致问题终极处理方案——gitattributes

甜点cc

JavaScript 前端 代码规范 10月月更

一文带你更了解Java中的方法

陌上

Java、 编程、 10月月更

招聘软件哪个最好用?

优秀

招聘系统

华为云ECS,如何赋能企业开展云上业务?

路过的憨憨

华为

鸿蒙开发实例|对象关系映射数据库

TiAmo

华为 华为云 10月月更

跨库分页

zarmnosaj

10月月更

华为云桌面,随时随地助力企业轻松办公

科技怪授

华为云 桌面云 云桌面

办公无界,看华为云桌面如何助企业上“云”

科技怪授

华为云 桌面云 云桌面

知识分享|To B产品的帮助中心页面制作方法

Baklib

你在过度测试你的软件吗?_研发效能_谢丽_InfoQ精选文章