低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

持续测试的益处

2015 年 5 月 03 日

自从 2006 年 Unruly 公司成立以来,其团队就开始采用极限敏捷(XP)实践并沿用至今。Unruly 的软件开发项目是由多个小型团队完成的,没有设立专职的测试人员。这些团队在开发代码时遵从测试优先原则,并且投入了大量的精力以实现能够在真实环境运行的自动化检测,而不依赖于在预发布环境中进行手工测试。

Rachel Davies 是 Unruly 的敏捷教练,她在敏捷测试日2015 年荷兰大会上进行了关于持续测试的主题演讲。InfoQ 有幸对Davies 进行了采访,内容涉及以持续化方式进行测试的重要性、这种方式是如何演变的,以及它为Unruly 所带来的商业优势。

InfoQ:能否请你解释一下,为什么自动化测试对你的团队如此重要?

Davies:它的重要性是因为自动化测试比起手工检测软件速度更快、也更加可靠。手工测试是一件很烦人的工作。我们希望做到,在销售人员提出某些产品变更需求的当天就能够立即部署。为了实现这一点,我们对部署脚本进行了自动化,并且通过脚本运行自动测试。机器比人类运行重复性步骤要快得多,因此自动化能够帮助我们更快地交付有价值的解决方案。

InfoQ:你能否为我们举一些例子,让我们了解自动化测试是如何帮助 Unruly的团队交付商业价值的?

Davies:销售人员可以对运行中的系统提出某种变更的需求,而我们能够在几个小时、而不是几天内让这个变更生效。我们有一个与众不同的地方,就是我们没有搭建任何临时的预发布环境,强制代码必须在这些环境上进行检验。我们的做法是直接将变更发布到生产环境中,因为这样可以更快地交付价值。虽然新的代码直接部署了到新的生产环境中,但我们可以通过某些手段让在线系统的用户不会直接看到这些变更。我们的做法是使用多个可部署的小步骤,通过自动化测试检测行为是否符合我们的需求。如果在测试中出现了速度缓慢或是经常出错的情况,那么在团队的回顾会议中会进行讨论。

InfoQ:经过这么多年对持续测试的投入,你觉得为什么值得这样做,持续测试能够为你带来什么益处?

Davies:通过采取测试优先的开发方式,我们实现了良好的代码覆盖率,以帮助我们检测产品的特性是否按期望的方式工作。如果有任何变更破坏了现有的自动化测试,我们能够迅速地发现问题。通过对在线服务进行自动化监控,也能够帮助我们指出是否出现了哪种我们没有预料到的情况。以测试驱动我们的产品开发,这种方式也帮助我们团队专注于所需交付的价值,并不断发展前进。

InfoQ:在敏捷测试日荷兰大会上,你谈到了在生产环境中运行某些持续性的检测以进行持续测试。你能否描述一下这种方式是如何实现的?

Davies:我们配置了 Nagios 警报系统,它会根据在线服务的不同情况对团队发出通知。如果出现问题,我们将通过短信方式获得通知。我们也在开发团队的区域摆放了几台大屏幕,以显示我们的在线系统的软件负载及性能。也许你会有兴趣读一下我们的开发者所写的一个博客,其中提到了监控检测中的坏味道

InfoQ:你能否详细阐述一下自动化测试这几年间在 Unruly是如何演变的吗?

Davies:公司是于 2006 年成立的,我们当时就采用了 XP 实践当中的 TDD,因此从一开始测试就是自动化的。经过几年的发展,我们必须将这些测试扩展到浏览器与设备测试上(因为浏览器和移动平台的新功能也在不断涌现)。产品的功能也扩展了,并且在技术上产生了很大的转变,转为能够适应桌面电脑、平板和移动设备的“响应式”网站。而在 2006 时平板电脑并非我们所考虑支持的设备。

我们并没有采用让非技术人员也能够阅读的 BDD 风格的测试,这是因为我们早先在使用 FiTnesse 进行自动化验收测试时的体验很糟糕。我们的开发者直接与项目干系人进行对话,而不是业务分析师。所有的测试都是由开发者使用与应用代码相同的编程语言进行编写和维护的,因此使用示例型 BDD 的风格对于我们来说没有多少益处。

InfoQ:你在演讲中提到在测试中使用了 chaos monkeys技术,你是否详细说明一下?

Davies:这一点是受到 Netflix 的基础设施 chaos monkeys 的启发,因此我们也开发了特定于我们领域的“monkeys”,在生产环境中的应用级别注入一些潜在的错误,例如在对于延迟非常敏感的应用中产生服务无响应的错误。这种方式能够帮助我们找到并修复那些在测试环境中不会出现的问题。我们的一位开发者 Alex Wilson 在一篇博客帖子中就提到了如何在生产环境中注入应用级的错误

InfoQ:有没有什么新的测试技术是看起来很有前途的,并且你们团队也打算尝试的?

Davies:我们或许能够在手工探索性测试方面投入更多时间。对于这种测试,经典的定义是“同时进行测试设计与测试执行,同时进一步学习系统”,这一定义来自于由 Cem Kaner、James Bach 与 Bret Pettichord 在 2002 年共同出版的名作《软件测试经验与教训》(Lessons Learned in Software Testing)。这种方式与自动化检测不同,而是积极地探索系统的各种行为,在不使用脚本的情况下学习系统会表现出哪些未预料的行为。

InfoQ:如果有其它组织打算实施持续测试,你能否为他们提供些建议?

Davies:首先将所有的回归测试都实现自动化,并且不要将注意力分散到 BDD 上。从基础的健康状况检测开始自动化,例如冒烟测试,并逐渐改善测试覆盖率。从最重要的业务逻辑,或是最容易出错的地方开始。

查看英文原文: Benefits of Continuous Testing

2015 年 5 月 03 日 05:351947
用户头像

发布了 428 篇内容, 共 151.2 次阅读, 收获喜欢 23 次。

关注

评论

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

3种缓存读写策略都不了解?面试很难让你通过啊兄弟!

Java架构师迁哥

iOS逆向学习(arm64汇编入门)

ios 汇编

ChaosBlade x SkyWalking 微服务高可用实践

阿里巴巴云原生

微服务 云原生 监控 混沌工程 CloudNative

性能之巅:定位和优化程序CPU、内存、IO瓶颈

华为云开发者社区

性能 cpu 优化

金九银十Android热点知识!架构师花费近一年时间整理出来的安卓核心知识,送大厂面经一份!

欢喜学安卓

程序员 面试 编程开发 Android进阶 Android开发

Alibaba Java面试题大揭秘,把这些知识点吃透去面试成功率高达100%

Java架构之路

Java 程序员 架构 面试 编程语言

《算法问题整理》​.pdf

田维常

Swift性能优化分析

ios swift

架构师训练营第一期 - 第十一周学习总结

卖猪肉的大叔

极客大学架构师训练营

六度空间软件系统开发|六度空间APP开发

开發I852946OIIO

系统开发

浅谈ToB市场精细化运营

Linkflow

营销数字化 客户数据平台 CDP 精细化运营

GitHub标星17K,超火的SpringBoot +Vue实战项目,文档视频贼全

Java成神之路

Java 程序员 架构 面试 编程语言

刷完这两份pdf轻松拿下了蚂蚁金服、头条、小米等大厂的offer。

Java架构之路

Java 程序员 架构 面试 编程语言

在阿里巴巴内网找到的一份《Java核心宝典》简直太细了,如获至宝!

Java架构之路

Java 程序员 架构 面试 编程语言

二层交换机和三层交换机之间VLAN的区别

足不出户带你体验专业实验室,技术实现不在话下

华为云开发者社区

体验 平台 实验

阿里P8大牛的建议,工作1-5年的Java工程师如何让自己变得更值钱

Java成神之路

Java 程序员 架构 面试 编程语言

一个优秀的程序员,不仅要会编写程序,更要会编写高质量的程序

Java成神之路

Java 程序员 架构 面试 编程语言

Nginx做web服务器linux内核参数优化

赖猫

c++ Linux 编程 后台开发 内核

MySQL最全整理(面试题+笔记+导图),面试大厂不再被MySql难倒

Java成神之路

Java 程序员 架构 面试 编程语言

安卓开发不得不会!啃下这些Framework技术笔记,成功入职阿里

欢喜学安卓

android 程序员 编程开发 Android进阶

不为人知的网络编程(十):深入操作系统,从内核理解网络包的接收过程(Linux篇)

JackJiang

Linux 网络编程 TCP/IP

架构师训练营 1 期 -- 第十二周总结

曾彪彪

极客大学架构师训练营

Kubernetes 1.20发布,Release Logo变成一只猫

晓川

大厂iOS面试题全面讲解(上)

ios 面试

如何通过易观Argo,免费快速搭起精细化运营平台?

易观大数据

TRX波场智能合约APP系统开发|TRX波场智能合约软件开发

开發I852946OIIO

系统开发

linux命令:查询占用端口文件所在位置

梁小航航

Linux

mybatis快速入门,so easy啦

田维常

mybatis

你敢信?就是这个Netty的网络框架差点把我整疯了,哭jj

996小迁

Java 架构 面试 Netty 面试程序人生

可以秒杀全场的SpringCloud微服务电商实战项目,文档贼全

Java成神之路

Java 程序员 架构 面试 编程语言

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

持续测试的益处-InfoQ