产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

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

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

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

关注

评论

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

Django查询、删除、更新数据

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

测试

智能化生产应用搭建的实战案例

华为云开发者联盟

后端 物联网 华为云 华为云开发者联盟 企业号 5 月 PK 榜

硬核!阿里最新出品架构核心场景实战手册,解决99%的架构问题

Java你猿哥

【5.05-5.12】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

软件测试是青春饭吗?

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

测试

如何解决由于TLS版本不兼容导致的问题

JefferLiu

Java TLS

BATM面试Java岗:精选200+面试题及答案、6大重点规划和经验总结

Java你猿哥

Java MySQL JVM 多线程 java面试

阿里云李钟:弹性计算控制系统团队的提效之路

云布道师

阿里云 弹性计算

Java Web实战 | JDBC案例:实现图书管理

TiAmo

JDBC DAO JavaBean

详解集群级备份恢复:物理细粒度备份恢复

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

2023 开源之夏来啦!报名 MegEngine 项目,赢取万元奖金!

MegEngineBot

深度学习 开源之夏 MegEngine 学生比赛 奖金

以数据思维和技能提升数据应用测试实践 | 京东云技术团队

京东科技开发者

测试 测试覆盖率 数据思维 应用安全测试 企业号 5 月 PK 榜

Django基本数据访问

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

测试

Java面试通关:阿里内部实战模拟面试精讲题库,竟被上传GitHub!

Java你猿哥

Java 数据库 微服务 Spring Boot java面试

中国20强(上市)游戏公司2022年财报分析:营收结构优化,市场竞争进入白热化

易观分析

公司 游戏

mac上哪款系统仪表板好用?实用软件推荐~

真大的脸盆

Mac Mac 软件 系统监测 仪表盘工具

智慧园区移动应用发展面临瓶颈,如何解决?

没有用户名丶

数据治理三大模式详解,治理新范式释放数据潜能

袋鼠云数栈

数据治理

京东短网址高可用提升最佳实践 | 京东云技术团队

京东科技开发者

最佳实践 高可用设计 企业号 5 月 PK 榜 短网址

Alibaba技术专家倾心五年打造!Java工程师成神之路(基础篇)

做梦都在改BUG

Java

《 Istio 权威指南 》新著重磅发行!华为云云原生团队匠心力作

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

GreatSQL社区月报 | 2023.04

GreatSQL

greatsql社区

开发中关于HTTPS不得不规避的2个大坑

北桥苏

https TCP/IP ssl

【开发点滴】在vscode的python调试中,如何让调试程序以sudo方式运行?

无人之路

Python vscode ChatGPT

一种KV存储的GC优化实践

vivo互联网技术

KV存储 GC设计

软件测试 | admin后台管理

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

测试

Java 是如何毁掉你的编程思维的?

Java你猿哥

Java 程序员 ssm

Java 8 之后的新特性都是鸡肋吗?

Java你猿哥

Java ssm API Java 8 java 8 的新特性

穿越数据智能“海峡”,企业更需要什么样的数智底座?

用友BIP

夺冠秘诀?华为软件精英挑战赛两届冠军这样复盘比赛经验

华为云开发者联盟

云计算 华为云 华为云开发者联盟 企业号 5 月 PK 榜

面试官:说说 WebSocket 和 Socket 及 Http 的区别?

Java你猿哥

Java TCP ssm HTTP webSock

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