写点什么

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

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

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

关注

评论

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

元宇宙浪潮之下,数字身份至关重要

CECBC

Linux一学就会之Centos8系统进程管理 ps管理进程

学神来啦

Linux 运维 linux一学就会 uptime centos8

基于云的技术架构设计实践-第4篇

hackstoic

运维 云原生 签约计划第二季 业务运维

新思科技推动DevSecOps落地,帮助企业走出“安全孤岛”

InfoQ_434670063458

DevSecOps 新思科技 软件安全

你知道敏捷团队的迭代目标达成率该是多少吗?

爱吃鱼的小雨

Scrum 敏捷开发 研发管理 内容合集 迭代管理

和12岁小同志搞创客开发:手撕代码,做一款温湿度检测器

不脱发的程序猿

少儿编程 智能硬件 温度传感器 创客开发 Arduino

老电影和图片变清晰的秘密!分辨率提升400%的AI算法

百度大脑

人工智能

AfterShip APP 项目数据驱动的演进

AfterShip

数据库 数据 数据驱动

ReactiveNetwork库时如何实现网络状态监听的

Changing Lin

12月日更

【IT运维】公司内网服务器可以远程桌面连接吗?怎么连接?

行云管家

云计算 运维 IT运维 远程运维

底层逻辑:变化背后的不变

石云升

读书笔记 28天写作 12月日更

2022年,RPA的5大发展趋势

金小K

区块链 AI RPA 机器人流程自动化 人工智能「

如何避免产品Backlog的这七个常见错误

爱吃鱼的小雨

Scrum 敏捷开发 研发管理 需求管理 内容合集

Go语言学习查缺补漏ing Day5

恒生LIGHT云社区

golang 编程语言

架构训练营-模块一作业

伊静西蒙

以容器的方式运行极狐GitLab Runner

极狐GitLab

Docker runner 极狐GitLab

Web3.0时代的社交网络会有哪些新变化?

CECBC

元宇宙与电信运营商

CECBC

百度智能云与英特尔携手举办2021 EdgeX中国挑战赛成功落幕

百度大脑

人工智能

数据大屏rem适配方案

CRMEB

WAVE SUMMIT+2021为开发者准备的“小心思”,你get到了吗

科技热闻

五分钟,让你明白MySQL是怎么选择索引《死磕MySQL系列 六》

咔咔

MySQL MySQL高级 索引选择而

中科柏诚持续推进数字网络技术,蓄力元宇宙布局

联营汇聚

6000字,详解数据仓库明星产品背后的技术奥秘

百度开发者中心

数据库 大数据

MySQL锁的分析实战

卢卡多多

28天写作 MySQL 数据库 锁分析 签约计划第二季 12月日更

WePack —— 助力企业渐进式 DevOps 转型

CODING DevOps

统一管理 WePack 制品管理 研发构建产物 安全管控

开源demo| 智慧协同让企业更便利

anyRTC开发者

音视频 智慧协同 开源demo 远程协助 远程勘查

国产分布式数据库StarDB核心技术大揭秘 一:内核分解之数据分片

京东科技开发者

数据库

Camtasia混音教程

淋雨

Camtasia

消费医疗门诊的数字化运营

boshi

随笔杂谈

国产分布式数据库StarDB核心技术大揭秘二:智能运维管控

京东科技开发者

数据库

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