集成测试与测试覆盖范围



我的公司有一条规则可以按单位或通过集成测试达到75%的测试覆盖范围。由于整个系统的复杂性,开发人员倾向于编写集成测试(例如,使用Selenium Webdriver对运行应用程序使用),而不是嘲笑依赖服务/类的负担。

我不是那个朋友,想知道I检验的测试覆盖数据实际上是什么意思:

我认为,测试应定义预期行为并进行测试。如果I测试深入应用程序,通过许多服务,可能是DB层,然后再返回,它将涵盖很多行,但绝对不清楚此类涵盖的行的预期行为是什么。因此,覆盖范围数据的质量值得怀疑,而且 - 更糟糕的是,增加了维护工作。

那POV正确吗?与管理层讨论时,我该如何支持?

关于测试覆盖的盲百分比规则并不理想。集成测试是一个完美的例子。如果有什么破裂,您能确切地告诉什么破裂?如果您有多个集成点(例如,单个请求访问数据库,Web服务并发送电子邮件)怎么办?在那里进行的测试太多了,无法真正具有意义。

您可以在不测试所有可能的结果的情况下获得100%的覆盖范围吗?您能否编写10,000次测试,但仍然无法涵盖一件软件中最重要的课程?盲指标不好,对质量没有真正的结果。

通常,进行较小,更离散的测试更有价值。我们通过将集成点放置并在测试中嘲笑它们来做到这一点。然后,您可以设置场景:"如果数据库执行此操作,那么我的代码会这样做。"这种类型的问题要比设置数据库在可重复的情况下进行确切的事情要容易得多。您如何自动化服务器断开连接的集成测试?这很难。固定数据库处理,特定的SQL异常非常容易且可重复。

如果您在截止日期之前或即使到达截止日期之前,将会发生什么情况,其余的25%,因此您的公司不集中精力获得一个不太明显的缺陷的产品,而不是专注于测试覆盖范围的百分比。尽管您使用了硒或所谓的任何东西,但以可靠的方式来解释您的方法。

最新更新