自动化开发者测试的目标与实践
1. 测试寓言
设想有两位程序员在完成相同的任务。他们技能相当、魅力十足且工作积极,都希望尽快高质量地完成任务。此任务不算简单,但也并非极其复杂,比如是关于新用户注册网站并输入相关信息的功能。
第一位开发者叫 Ernie,他觉得这很简单,且自己之前做过,所以无需编写测试。仅用五分钟,他就完成了一个可验证的方法。
另一位开发者 Bert 则认为需要编写测试。他花了五分钟编写了一个针对新功能的可靠测试,又过了五分钟,他也完成了可验证的方法。在这个故事中,假设 Ernie 排斥自动化测试,而 Bert 不愿手动在浏览器中运行应用进行测试。
起初,尽管 Bert 编写方法花费的时间更多,但他编写的代码更可能正确、健壮且易于维护。而且,Bert 很可能比 Ernie 先完成任务。
具体情况如下:
| 阶段 | Ernie 用时 | Bert 用时 |
| ---- | ---- | ---- |
| 编写方法 | 5 分钟 | 10 分钟 |
| 首次验证(3 次尝试) | 3 分钟 | 0.5 分钟 |
| 午餐后新任务(编写测试及 3 次尝试) | - | 2 分钟 |
| 重构(3 次尝试) | 6 分钟 | 0.5 分钟 |
从上述表格可以看出,虽然前期 Bert 花费时间较多,但随着任务推进和验证、重构的进行,Bert 凭借自动化测试的高效,最终比 Ernie 提前 3.5 分钟完成整个任务。
这个故事简化了实际情况,但说明了自动化测试多次验证代码通常比手动检查更快,且随着代码复杂度增加,这种优势会更明显。准确的
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



