For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
测试金字塔模型是程序员在学习软件测试技术的时候需要重点掌握的一个软件测试技术知识点,而本文我们就通过案例分析来了解一下,测试金字塔模型概念与用法分析。
金字塔模型旨在传达好的测试方法应该涉及许多不同的层。专注于极端可能会导致测试太慢,或者无法为软件开发带来任何信心。也就是说,人们往往以为单元测试的投资回报率高。
更高层次的测试尽管为软件开发带来更多的信心,但通常终会变得缓慢、难以维护或过于广泛而无法包含在快节奏的开发流程中。这就是为什么在大多数情况下,此类测试由专门的QA专家单独维护,编写它们通常不被认为是开发人员的工作。
集成测试是介于单元测试和完整端到端测试之间的部分,通常被完全忽略:因为不清楚在哪个级别上进行集成,以及如何构建和组织这样的测试,或者担心它们可能会失控。许多开发人员宁愿避免它们,而倾向于选择更明确的单元测试。
由于这些原因,在开发期间完成的所有测试通常都位于金字塔的底部。事实上,这种情况非常普遍,以至于测试和单元测试现在实际上是彼此的同义词。而且这种概念的混淆会通过会议演讲、博客文章、书籍甚至一些IDE进一步传播。
有些应用程序可能有很多业务逻辑(例如工资系统),有些可能几乎没有(例如CRUD应用程序),大多数介于两者之间。我个人从事的大多数项目都不必进行广泛的单测覆盖,但另一方面,项目中往往有很多不同的组件,故相比单元测试,集成测试会更有帮助。
理想中,人们会评估项目的背景并提出适合手头工作的测试方法。然而,实际上,大多数开发人员根本没有时间或不会去仔细考虑它,而是盲目地按照佳实践一头扎进堆积成山的单元测试。
总体来说,测试金字塔提供的模型过于简单化。从测试金字塔底部到顶部,测试所带来的对软件开发的信心越多,测试的可维护性与速度的损耗也越多。单单考虑测试金字塔底部与顶部两个极端,结论可能是正确的,但对于介于两者之间的部分,就不一定如此了。
它也没有说明这样一个事实,即隔离本身是有代价的,而不是能够通过“避免”外部交互来实现。考虑到编写和维护Mock需要付出巨大的努力,一个不太孤立的测试可能更容易实现测试目标,而且为软件开发带来更多的信心,尽管运行速度稍慢。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。