关于测试的若干误解

2011 年 7 月 07 日

本文中所表达的观点仅代表 Liam O’Connor 个人意见,与其雇主(NICTA)无关。

如果说你我之间有什么相似之处的话,那就是你可能阅读过大量文章,在其中作者主张测试驱动开发(TDD,Test-Driven Development)或者其他涵盖了广泛测试(无论是单元测试还是集成测试层面上)的开发实践。我认为,关于这些实践的许多主张缺乏实际项目经验,很难让人相信他们的观点。事实上,当我们把这些非常严格的测试实践应用于大型项目上时,通常它们根本无法顺利工作。

在本文中,我将说明一些关于测试的常见误解。我希望,如果你在编写测试时也存在这样的误解,那么本文能帮助你和你的团队来判断何时适合测试,何时不适合测试。

误解一:测试可以表明我的代码是正确的!

虽然这种误解在直觉上是正确的,但是你确实无法依赖测试来建立任何形式的具有严格正确性的标准。每当你编写了一个测试,你就已经测试了程序中的一种可能情况。当程序中存在许多单元时,或许存在无限多种(或是多得难以应付的)可能的情况需要测试时,那么测试所有可能情况是不可行的——因此,典型的对策是测试一些出错情况、边界情况以及若干恰好确保一切正常的“常规”情况。

如果你的目标是正确性,那么上面谈到内容还远不足以满足要求。尽管程序仍存在许多 bug,但是开发一套总是可以通过的测试还是相当容易的。然而有些 bug 根本不可能通过测试检查出来——其中竞争条件和包括并发性在内的其他错误都是经典的例证,即使你已经对调度程序进行控制,然而可能的交错操作的数量增长是如此之快,以至于可靠地测试很快成为了不可能完成的任务。

原文链接:【 https://www.infoq.cn/article/testing-misconceptions 】。未经作者许可,禁止转载。

登录后可解锁全站优质内容

免费畅享技术公开课、顶尖技术团队访谈、一线互联网大厂技术实践

文章
视频
电子书
研究报告
立即登录
2011 年 7 月 07 日 00:00 2959
用户头像

发布了 0 篇内容,共 156402 次阅读,收获喜欢 0 次。

关注

评论

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

「架构师训练营」第 4 周作业 - 总结

森林

互联网系统面临怎样的挑战?

ashuai1106

架构师 极客大学架构师训练营

<<架构师训练营>>第四周作业

0x12FD16B

<<架构师训练营>>第四周总结

0x12FD16B

互联网技术方案

allen

系统架构知识-常识YES,能力NO

飞雪

第四周学习总结

麻辣

第04周 设计系统架构 命题作业

Jaye

【架构思维 - 学习总结】week04

chun1123

架构 学习笔记

大型互联网应用架构中的主要技术,与其对应的业务问题

Ph0rse

作业04-互联网架构演化

梦子说

课程作业

架构师训练营第四周课后作业

Cloud.

【架构思维学习】 week04

chun1123

架构 技术

基于维基百科的网站架构分析

莫莫大人

极客大学架构师训练营

第四周总结

changtai

极客大学架构师训练营

课堂作业 week4

Dennis

「架构师训练营」第 4 周作业 - 互联网技术

森林

架构师训练营 第四周【学习总结】

小K

系统架构演化

王胜贤

架构师0期第四周命题作业

何伟敏

架构师训练营第四周

陌生人

第四周学习总结

iHai

极客大学架构师训练营

架构师训练营第四周作业

草原上的奔跑

架构师训练营 W4 作业

telliex

架构师训练营0期-Week4总结

Ph0rse

Week 04- 作业二:学习总结

dean

极客大学架构师训练营

架构师训练营第四周 - 作业

人世间

极客大学架构师训练营

架构师训练营第四周心得

努力努力再努力m

极客大学架构师训练营

第 04 周作业

Jeremy

架构师训练营 W4 心得

telliex

架构师0期第四周总结

何伟敏

关于测试的若干误解-InfoQ