写点什么

没有自动化测试的应用应该如何测试?

  • 2010-07-17
  • 本文字数:1263 字

    阅读完需:约 4 分钟

敏捷推荐围绕应用建立足够的单元测试和验收测试,以构建足够强壮的测试套件。然而,实际情况是:不是所有的应用都有配套的测试套件。敏捷测试讨论组中有一个有趣的讨论,提到如何为没有任何自动化测试的应用进行测试,成员们提出了多种方法。

Asad Safari 发起了这个讨论,他说他的一个应用没有任何测试,团队中的开发人员不熟悉单元测试,距离截止日期也只有3 个星期的时间供团队测试。他希望得到一些建议,指导如何在这样的约束条件下测试。

Phlip 回应道:他曾多次处于类似环境,并推荐以下建议:

  • 加入一个可选模块,能够通过任意或是指定的输入来驱动应用;
  • 向程序中加入日志,把错误信息和断言存入日志文件中;
  • 编写一个大单元测试,调用你所有的程序,提供前面提到的输入,然后梳理日志;
  • 编写一个大的断言,在其中指出日志应该没有任何错误;
  • 现在开始一个一个排错。每次去掉一个错误,去掉对它的异常处理。

Phlip 指明:在这个大测试保护伞之下,如果时间允许,团队可以开始编写小规模的、目的更明确的测试。他还指出:虽然团队可以在接下来的三个星期等待上面的做法产生效果,编写和运行更小的单元测试应该马上开始

Adam Sroka 同意 Phlip 的建议,并补充道:

没错,很多团队碰到质量低劣的代码时,会放慢速度,产出的价值也会减少,而这对于质量没有任何好处。我们需要更实用的解决方案……如果没有从一开始就加入测试,那么就很难完全把测试做好,这是没问题的。但是就此认为测试没有价值,这是错误的看法。测试虽然不完美,但仍有其价值所在。

Brian Spears 却没有被他们说服,他认为敏捷不是魔法,在三周时间内恐怕没法产生什么好解决方案。他说:

敏捷不是魔法,对这种紧急情况的解决方案,如果有的话,就是要投入很多很多时间,这明显不是敏捷的做法。

Adam 反对这个看法,指出有很多团队如果进入类似境况,都采用了敏捷。这是团队变得有实效的机会,也是让软件变得更好的启动之旅。

Annette 认为:这种情况最应该做的就是用很多很多时间做手工测试,因为到了这个阶段,自动化测试就太费时间了。推荐从重要的和与收入相关的功能开始测试。Annette 也推荐了Lisa Crispin 和Janet Gregory 合著的 Agile Testing 一书。

Charles Bradley 提出了类似的建议,不过他指出还要获得一个有条件的承诺。他说:

你的时间很有限,所以从业务角度来看,将 ROI 最大化是最佳选择。就使出吃奶的劲头做手工测试吧!但是要从你的老板那里得到承诺:他们无论如何也不会再让你的团队这么做了……他们应该先规划好时间和金钱完成自动化测试……着手下一个发布工作时就应该马上开始,甚至更早,比如开始修复当前版本的 bug 时。

因此,编写完整的测试套件,也许不是最适合当前情形的做法,团队最好开始手工测试。而这并不能削弱在一有机会时就编写适当的测试套件的做法。正如 Jonathan Rasmusson 指出的:

你所能做的就是修复 bug,然后在上线之前尽一切可能完成手工测试。这就是你到这个时候还能做的事情。更大、更重要的问题,是你在三周截止日期到达之后要做什么。

查看英文原文: Testing Techniques for Applications With Zero Tests

2010-07-17 23:442819
用户头像

发布了 479 篇内容, 共 162.9 次阅读, 收获喜欢 52 次。

关注

评论

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

【ELT.ZIP】《CCF开源高校行第一期》观后感

ELT.ZIP

Linux LVS OpenHarmony ELT.ZIP CCF开源高校行

BFF治理与优化实践

码猿外

架构 微服务 BFF 软件架构治理

怒肝 JavaScript 数据结构 — 数组篇(二)

杨成功

JavaScript 数据结构 4月月更

对话达梦副总经理冯源 | 假如你身处被“科技制裁”的俄罗斯-墨天轮专访

墨天轮

数据库 oracle 国产数据库 达梦

百度智能云天工边云融合物联网平台,助力设备高效上云

百度开发者中心

【ELT.ZIP】OpenHarmony啃论文俱乐部——细数生活中的压缩点滴

ELT.ZIP

OpenHarmony 数据压缩 ELT.ZIP

招聘|欢迎加入非凸,学习Rust,了解内存和线程安全问题

非凸科技

K8S Pod 新安全策略 Pod Security Admission 介绍 | K8S Internals 系列第一期

BoCloud博云

Kubernetes Pod Security Policy Pod Security Admission

社区文章|MOSN 社区性能分析利器——Holmes 原理浅析

SOFAStack

golang GitHub 开源 SOFA

Ben Fisch等联创爆出道德、法律丑闻,Espresso Systems风雨飘摇

BlockChain先知

企业为什么需要文档协同

小炮

文档协同 团队协同

张国荣《热·情》演唱会再现荧幕:AI修复解锁的经典与视听生活

脑极体

什么是数据库?5分钟深入理解数据库原理。

喀拉峻

数据库 网络安全

系统性能分析从入门到进阶

阿里巴巴中间件

云计算 阿里云 云原生 中间件

我和TiDB的故事 | 毫无准备地不期而遇,却想说与你相遇好幸运

TiDB 社区干货传送门

被你质疑价值的混沌工程,阿里巴巴已落地实践了9年

阿里巴巴中间件

阿里云 云原生 中间件 混沌工程

能直接调试的开放API?这个API Hub绝了

Liam

Jmeter Postman API swagger Mock

今晚7点直播!聊一聊“进击的开源操作系统”

OpenAnolis小助手

InfoQ 龙蜥社区 CentOS停服 开源操作系统 今晚直播

后端开发【干货知识】—Redis,Memcached,Nginx网络组件

Linux服务器开发

reactor 中间件 后端开发 组件 Linux后台开发

漏洞挖掘之目录遍历漏洞

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

如何画好流程图

Hockor

前端 流程图

Go Error 最佳实践

宇宙之一粟

Go 语言 Error 4月月更

淘特 Flutter 流畅度优化实践 · 二期

阿里巴巴终端技术

flutter

多批爱心物资驰援,妙可蓝多助力上海抗疫

科技新消息

单线程的 JavaScript 是怎么实现异步的?

CRMEB

当东数西算变成一场西游记……

脑极体

数字化转型-信息技术引发的系统性变革

Geek_XOXO

企业数字化转型

IP(定位数据库)地理位置查找真的能有效帮助阻止网络攻击吗?

郑州埃文科技

IP定位 IP数据库

集合去重的境界

flyhero

Java 程序员 后端 4月月更

湖仓一体架构解析

五分钟学大数据

数据湖 4月月更

SkyWalking 分布式系统追踪

Rubble

4月日更

没有自动化测试的应用应该如何测试?_研发效能_Vikas Hazrati_InfoQ精选文章