NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

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

关注

评论

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

码力全开!请查收HDC.Together 2023亮点日程

HarmonyOS开发者

HarmonyOS

低代码平台实际解决了哪些问题?

互联网工科生

软件开发 低代码 低代码平台 JNFP

一款介于无代码和低代码之间的数据可视化平台

高端章鱼哥

低代码 应用开发 JNPF 数据可视化平台

如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题?

java易二三

程序员 面试 计算机

LED显示屏在高温的状态下工作影响有多大

Dylan

企业 常识 LED显示屏 户外LED显示屏 led显示屏厂家

工程项目管理软件有哪些?

优秀

项目管理软件 工程管理

一文带你入门网络协议

高端章鱼哥

数据 网络协议 网络 协议

聆心智能Open Day发布CharacterGLM,共创超拟人大模型全“心”未来

硬科技星球

⻜桨⼤模型推理部署⾼性能优化

Baidu AICLOUD

大模型推理 AI 框架

MySQL事务隔离机制与实现原理详解(MySQL专栏启动)

java易二三

MySQL 数据库 程序员 计算机

ShareSDK 国内平台登陆返回参数

MobTech袤博科技

前端 APP开发 分享工具

生态伙伴 | 华秋硬创联合长虹创投,共同打造更优生态系统

华秋电子

三分钟白话RocketMQ系列—— 核心概念

互联网工科生

分布式 RocketMQ 消息中间件

活动回顾|阿里云 Serverless 技术实战与创新成都站回放&PPT下载

Serverless Devs

负载均衡 Serverless 云原生 弹性计算 FC

低代码平台技术分享官丨日志实时隔离,助力高效发布

inBuilder低代码平台

低代码 低代码平台

数据库行业需要什么样的人才?高校老师这样说

华为云开发者联盟

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

Mybatis-plus的批量插入真的不能用吗?

这我可不懂

MySQL Mybatis-Plus

远距离传输大型文件:如何应对不同地区的网络环境和带宽约束

镭速

ACM图灵大会开幕,王海峰解读文心大模型3.5最新进展

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

Flink SQL 优化实战 - 维表 JOIN 优化

腾讯云大数据

流计算 Oceanus

PoseiSwap:通过 RWA 的全新叙事,反哺 Nautilus Chain 生态

西柚子

聆心智能“超拟人”模型升级,助力AI实现“走心”突破

硬科技星球

晋级榜单揭晓!华秋第九届硬创大赛-华南分赛区路演成功举办

华秋电子

IPD(集成产品开发)与传统项目管理的区别

禅道项目管理

项目管理 IPD

建设数字工厂:MRP物料需求计划的逻辑原理与配置方法

华为云开发者联盟

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

如何在远距离传输大型文件时避免网络延迟和数据丢失

镭速

远距离传输大型文件 传输效率

MegEngine Python 层模块串讲(下)

MegEngineBot

深度学习 开源

NFTScan | 07.24~07.30 NFT 市场热点汇总

NFT Research

NFT\

需求太多处理不过来?MoSCoW模型帮你

敏捷开发

项目管理 需求处理 MoSCoW模型 排序优先级

IIOT -IPQ9574+IPQ8074-High Performance Router Motherboard-Support Wi-Fi 6 and Powerful Quad-Core Processor

wifi6-yiyi

wifi6 WiFi7

PoseiSwap:通过 RWA 的全新叙事,反哺 Nautilus Chain 生态

BlockChain先知

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