标签:测试分类
论测试的多样化和奇妙形式
关于测试组合应该是金字塔形还是蜂窝状,一直存在争议。我对这种争论的第二大意见是,由于人们不清楚单元测试和集成测试之间的区别,因此这种争论变得模糊不清。
面向业务的测试
面向业务的测试是一种测试,旨在用作与开发团队中非编程成员(如客户、用户、业务分析师等)进行沟通的辅助工具。在自动化时,它们使用面向领域的术语来描述系统,而忽略系统本身的组件架构。面向业务的测试通常用作验收标准,此类测试通过表明系统提供了客户期望的功能。
契约测试
使用测试替身的最常见情况之一是与外部服务通信时。通常,此类服务由不同的团队维护,它们可能会受到网络缓慢和不可靠的影响,并且自身也可能不可靠。这就是测试替身很方便的原因,它可以防止您自己的测试变得缓慢和不可靠。但是,针对替身进行测试总是会引发一个问题,即替身是否确实准确地表示了外部服务,以及如果外部服务更改了其契约会发生什么?
集成测试
集成测试确定独立开发的软件单元在相互连接时是否能正常工作。即使按照软件行业分散的标准,这个术语也变得模糊不清,因此我一直避免在我的写作中使用它。特别是,许多人认为集成测试的范围必然很广,而实际上可以通过更窄的范围更有效地完成集成测试。
皮下测试
我使用皮下测试来表示在应用程序 UI 下运行的测试。这在对应用程序进行功能测试时特别有用:当您想要测试端到端行为,但很难通过 UI 本身进行测试时。
单元测试
单元测试在软件开发中经常被提及,并且是我在编写程序的整个过程中都熟悉的一个术语。然而,就像大多数软件开发术语一样,它的定义非常不明确,而且我发现,当人们认为它的定义比实际更严格时,经常会出现混淆。