哪些类型的架构或架构层不适合自动化测试?
What types of architecture or architecture layers are not suitable for automated testing?
我最近的任务是为我公司的一个遗留应用程序开发自动化构建和发布管道。经过一些调查后,我不断从经理和其他开发人员那里听到某些应用程序层和架构不适合自动化,尤其是自动化测试。因此,通常建议我不应该尝试应用 DevOps 原则和 AT,除非我想重新构建整个应用程序。
常见的引用示例是 PL/SQL 后端或单体架构。我问为什么这些不合适,但从未得到真正明确的答案。有没有人知道什么时候不应该使用自动化测试来支持抛弃旧架构并重新开始?
简短 答案 - 存在可测试性问题。
为了更深入一点,让我们首先承认许多软件系统是不可测试的,或者不是立即可测试的。所以,
的努力
trying to apply DevOps principles and AT
远 大于 ROI。这种臭名昭著的例子是 Google 的 ReCAPTCHA,它给自动化测试人员(比如我)带来了一些痛苦。开发者说得对
re-architect the whole app
journey,因为可测试性与其他关键软件质量高度相关,例如封装、耦合、内聚和冗余。
common cited example would be PL/SQL backends or monolithic architectures
现在,完全不是这种情况。第一个更以数据为中心,需要更深入的理解,但也有solutions to that。至于单层软件应用程序——有人可能会争辩说,与 mSOA 相比,单体应用程序更容易调试和测试。由于单体应用程序是一个不可分割的单元,您可以 运行 端到端测试很多 faster/easier。
简而言之 - 如果您的应用程序具有高度可测试性,则具有很高的可用性。以防万一,架构和设计与非常非常具体的公司需求保持一致——难怪,只能在一定程度上使用。
我最近的任务是为我公司的一个遗留应用程序开发自动化构建和发布管道。经过一些调查后,我不断从经理和其他开发人员那里听到某些应用程序层和架构不适合自动化,尤其是自动化测试。因此,通常建议我不应该尝试应用 DevOps 原则和 AT,除非我想重新构建整个应用程序。
常见的引用示例是 PL/SQL 后端或单体架构。我问为什么这些不合适,但从未得到真正明确的答案。有没有人知道什么时候不应该使用自动化测试来支持抛弃旧架构并重新开始?
简短 答案 - 存在可测试性问题。
为了更深入一点,让我们首先承认许多软件系统是不可测试的,或者不是立即可测试的。所以,
的努力trying to apply DevOps principles and AT
远 大于 ROI。这种臭名昭著的例子是 Google 的 ReCAPTCHA,它给自动化测试人员(比如我)带来了一些痛苦。开发者说得对
re-architect the whole app
journey,因为可测试性与其他关键软件质量高度相关,例如封装、耦合、内聚和冗余。
common cited example would be PL/SQL backends or monolithic architectures
现在,完全不是这种情况。第一个更以数据为中心,需要更深入的理解,但也有solutions to that。至于单层软件应用程序——有人可能会争辩说,与 mSOA 相比,单体应用程序更容易调试和测试。由于单体应用程序是一个不可分割的单元,您可以 运行 端到端测试很多 faster/easier。
简而言之 - 如果您的应用程序具有高度可测试性,则具有很高的可用性。以防万一,架构和设计与非常非常具体的公司需求保持一致——难怪,只能在一定程度上使用。