测试四象限:构造支持团队的有效测试策略
测试四象限构造支持团队的有效测试策略一、测试金字塔的局限与测试四象限的价值很多人谈到测试策略第一反应是测试金字塔Testing Pyramid。这个由 Mike Cohn 在 2009 年提出的隐喻用金字塔结构描述单元测试、服务测试和 UI 测试的分布关系核心含义是能提供快速反馈的细粒度测试应占多数缓慢昂贵的粗粒度测试只应占少数。但测试金字塔有一个容易被忽略的核心隐喻每当上层测试失败必然有多个底层测试失败。下层测试撑起上层测试而不是两套毫无关联的测试。这意味着测试金字塔描述的是测试集合的健康状态而不是帮助我们设计测试策略的工具。真正用于设计测试策略的框架是测试四象限Agile Testing Quadrants由 Brian Marick 在 2003 年提出。它从两个维度划分测试测试目的支持团队Supporting Teamvs 评价产品Critique Product测试受众技术导向Technology Facingvs 业务导向Business Facing所谓支持团队是指测试的主要目的是为开发团队提供反馈评价产品则是指测试的目的是评估产品在不同维度上的表现。同一个测试如登录功能测试作为回归测试时目的是告诉团队功能是否被破坏作为 UAT 时目的是验证功能是否满足用户需要——目的完全不同。二、四个象限的含义与典型测试类型按照两个维度自然划分出四个象限Q1技术导向 支持团队为技术人员提供快速反馈在组件和子系统粒度上定位问题。典型测试类型包括单元测试Unit Testing和组件测试Component Testing。Q2业务导向 支持团队为交付团队提供关于业务的反馈根据验收条件Acceptance Criteria构造测试。功能测试Functional Testing、用户故事测试Story Testing、示例说明Specification by Example都属于此象限。需要注意这些测试对团队中所有人都重要而不只对业务人员有用。Q3业务导向 评价产品评价产品是否能提供业务价值从功能和用户交互维度评价。用户验收测试UAT、探索性测试Exploratory Testing、可用性测试Usability Testing属于此象限。Q4技术导向 评价产品评价产品的跨功能特性Cross Function Requirements如安全性、性能、容量、负载等。性能测试Performance Testing、安全测试Security Testing属于此象限。构造测试策略的过程就是选择恰当的测试类型、分别放入不同象限的过程。三、Q1 与 Q2 的关联测试策略的核心难点Q3 和 Q4 象限相对容易构造且彼此之间正交关联不深。真正困难的是支持团队的 Q1 和 Q2 象限因为它们之间存在更深的关联只有 Q2 测试时知道出了问题但不知道是哪个组件的问题只有 Q1 测试时知道组件出了问题但不知道会带来什么影响。因此单纯引入功能测试Q2和单元测试Q1并不能达到支持团队的效果。关键在于建立 Q1 和 Q2 之间的直接关联这需要两个工具验收条件和 TDD 的任务分解。验收条件是用户故事的重要组成部分每一个验收条件都可以对应一组功能测试Q2 测试。TDD 的任务分解则是将待开发任务分解为一组可测试的任务每一个可测试的任务都对应一组组件测试Q1 测试。通过任务分解得到的 Q1 和 Q2 测试必然存在内在关联当验收条件对应的测试失败时必然意味着某个功能上下文中的功能不满足预期该功能上下文中对应的 Q1 测试也必然失败。这样Q1 测试自然撑起了 Q2 测试完美契合测试金字塔的结构。四、测试四象限在 AI 辅助开发中的实践意义在与大语言模型LLM结对编程时构建支持团队的测试Q1 和 Q2 象限是保证质量的关键一步。Q2 象限的测试帮助验证 LLM 生成的代码是否满足验收条件的诉求Q1 象限的测试则帮助聚焦到某个具体的功能上下文中避免因 Token 限制带来的上下文丢失问题。当 LLM 在一个较小的功能上下文中工作时生成的代码更精准测试也更容易通过。功能上下文的划分是整个测试策略落地的前提。最直接的划分方式是依据软件架构——架构中的每个组件天然对应一个功能上下文这也是下一步构造具体测试策略的起点。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2445166.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!