写点什么

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

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

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

关注

评论

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

架构实战营-模块四-千万级学生管理系统考试试卷存储方案

娜酱

#架构实战营

如何用研发效能搞垮一个团队

CODING DevOps

团队协作 研发效能 CIF 峰会

从简历被拒,再到斩获阿里offer,这份PDF功不可没

Java 程序员 架构 编程语言

架构实战营模块9作业

zlz

六面天猫,已拿offer,我的面经复盘总结,大厂真的有那么难进吗?

Java spring 架构 java面试

成本直降50% | 阿里云发布云原生网关,开启下一代网关新进程

阿里巴巴云原生

阿里云 云原生 网关 升级

源码大咖炼成记:阿里淘系技术专家首推《源码探索笔记》实属精品

Java 架构 面试 程序人生 编程语言

对象存储手把手教六 | CORS 入门讲解

QingStor分布式存储

索信达:商业银行监管评级办法,新一代数据治理解决方案出炉

索信达控股

金融科技 数据治理 银行

干货满满!龙蜥社区Meetup走进龙芯圆满结束,5大技术分享精彩回顾

OpenAnolis小助手

Linux 开源社区 国产操作系统 国产芯片

WebRTC 的本地视频预览播放器

liuzhen007

音视频 引航计划 领航计划

开源应用中心|五分钟教你搭建一个基于Laravel开发博客的应用

开源 开源社区 开源软件

5分钟实现用docker搭建Redis集群模式和哨兵模式

Java redis 架构 分布式 后端

不愧是阿里Springboot项目笔记,在Github上已标星85.4K

Java 程序员 架构 后端 springboot

Opus从入门到精通(五)OggOpus封装器全解析

轻口味

音视频 9月日更

JVM g1 gc学习笔记一

风翱

GC 9月日更

【得物技术】深入理解synchronzied底层原理

得物技术

Java 原理 编译 synchronized 底层原理

阿里云容器服务全面升级为 ACK Anywhere,让云的边界拓展至企业需要的每个场景

阿里巴巴云原生

阿里云 容器 云原生 ACK Anywhere

中国已进入财富6.0时代!数字人民币大爆发

CECBC

Coffee架构实战 005 千万级学生管理系统的试卷存储方案

咖啡

「Python数据分析系列」1. 数据科学基本介绍

Databri_AI

Python 人工智能 数据分析

读《第一次把事情做对》有感

孙叫兽

工作 引航计划 第一次 做对

音频和视频流最佳选择?SRT 协议解析及报文识别

声网

音视频 协议 流媒体开发

公司应该如何招人?

石云升

团队管理 管理 引航计划 内容合集 9月日更

工信部:六大措施推动区块链技术广泛应用

CECBC

使用Python实现视频Logo消除处理

老猿Python

音视频 Moviepy 引航计划 Python编程语言 视频剪辑处理

001云原生之概念

穿过生命散发芬芳

云原生 9月日更

一文教你全方位揭秘Ajax指南

孙叫兽

ajax 大前端 引航计划

WebRTC如何在网页端添加硬水印

liuzhen007

音视频 引航计划 领航计划

GraphQL 快速入门【5】GraphQL 示例

码语者

Rest graphql

2022eact面试题附答案

buchila11

React

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