当前位置: 首页 > article >正文

测试四象限:构造支持团队的有效测试策略

测试四象限构造支持团队的有效测试策略一、测试金字塔的局限与测试四象限的价值很多人谈到测试策略第一反应是测试金字塔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 在一个较小的功能上下文中工作时生成的代码更精准测试也更容易通过。功能上下文的划分是整个测试策略落地的前提。最直接的划分方式是依据软件架构——架构中的每个组件天然对应一个功能上下文这也是下一步构造具体测试策略的起点。

相关文章:

测试四象限:构造支持团队的有效测试策略

测试四象限:构造支持团队的有效测试策略 一、测试金字塔的局限与测试四象限的价值 很多人谈到测试策略,第一反应是测试金字塔(Testing Pyramid)。这个由 Mike Cohn 在 2009 年提出的隐喻,用金字塔结构描述单元测试、服…...

3DS文件传输革新:多设备无线管理的终极解决方案

3DS文件传输革新:多设备无线管理的终极解决方案 【免费下载链接】3DS-FBI-Link Mac app to graphically push CIAs to FBI. Extra features over servefiles and Boop. 项目地址: https://gitcode.com/gh_mirrors/3d/3DS-FBI-Link 在自制软件爱好者的世界里&…...

深度学习中的多尺度与多粒度:别再傻傻分不清了!

深度学习中的多尺度与多粒度:别再傻傻分不清了! 在深度学习的浩瀚海洋中,多尺度和多粒度这两个概念常常让初学者感到困惑。它们看似相似,实则各有侧重,就像一对双胞胎,虽然长相相近,但性格迥异。…...

TSL2561光照传感器驱动开发与照度计算实战

1. TSL2561光照传感器库技术解析与嵌入式应用实践TSL2561 是由 TAOS(现为 AMS)推出的数字式环境光传感器(Ambient Light Sensor, ALS),采用 IC 接口,具备高动态范围(0.1–40,000 lux&#xff09…...

Linux 调度器中的等待队列:wait.c/swait.c 的同步原语实现

一、简介在Linux内核中,进程调度是操作系统的核心功能之一。当多个进程或线程需要协调执行顺序、共享资源或等待特定事件时,等待队列(Wait Queue)成为实现这种同步的基础机制。等待队列是Linux内核中用于管理进程睡眠和唤醒的核心…...

OpenClaw技能市场:nanobot镜像十大实用插件推荐

OpenClaw技能市场:nanobot镜像十大实用插件推荐 1. 为什么需要关注nanobot镜像的插件生态 作为一个长期使用OpenClaw的开发者,我最初只是把它当作一个简单的自动化工具。直到接触到nanobot这个超轻量级镜像后,才发现OpenClaw的插件生态才是…...

C99 vs C11 vs C23:手把手教你升级代码到最新标准

C99到C23:现代C语言标准迁移实战指南 当你在GitHub上看到一个十年前用C99编写的开源项目时,是否想过如何让它焕发新生?本文将带你深入现代C语言标准的演变脉络,从实战角度解析如何将遗留代码迁移至C23标准。这不是简单的特性罗列&…...

如何快速检测存储设备真实容量:F3工具的完整使用指南

如何快速检测存储设备真实容量:F3工具的完整使用指南 【免费下载链接】f3 F3 - Fight Flash Fraud 项目地址: https://gitcode.com/gh_mirrors/f3/f3 在数字时代,存储设备容量检测已成为保护数据安全的关键环节。面对市场上层出不穷的假冒U盘和虚…...

Mac NTFS读写技术解析:从原理到实战的全流程指南

Mac NTFS读写技术解析:从原理到实战的全流程指南 【免费下载链接】Free-NTFS-for-Mac Nigate,一款支持苹果芯片的Free NTFS for Mac小工具软件。NTFS R/W for macOS. Support Intel/Apple Silicon now. 项目地址: https://gitcode.com/gh_mirrors/fr/F…...

Vitis HLS Schedule Viewer保姆级使用指南:从看懂每一行代码到优化硬件时序

Vitis HLS Schedule Viewer深度解析:从代码到硬件的侦探式优化实战 当你第一次看到Vitis HLS将C代码转换为硬件描述时,是否感觉像在阅读天书?Schedule Viewer就是那把打开黑箱的钥匙。不同于传统IDE工具的功能介绍,本文将带你像侦…...

OpenWebUI隐藏功能大揭秘:如何用RAG技术打造你的私人开发助手

OpenWebUI隐藏功能大揭秘:如何用RAG技术打造你的私人开发助手 当代码量呈指数级增长,技术文档堆积如山时,每个开发者都渴望有个"最强大脑"般的助手——它不仅能理解你的技术需求,还能从海量文档中精准定位关键信息。Ope…...

Realistic Vision V5.1 模型推理加速:算法优化与GPU算力压榨技巧

Realistic Vision V5.1 模型推理加速:算法优化与GPU算力压榨技巧 最近在玩Stable Diffusion的Realistic Vision V5.1模型,生成的人像效果确实惊艳,但那个等待时间也真是让人有点着急。一张512x768的图片,动辄就要二三十秒&#x…...

探索高效本地图像检索:基于.NET8的千万级图库管理解决方案

探索高效本地图像检索:基于.NET8的千万级图库管理解决方案 【免费下载链接】ImageSearch 基于.NET8的本地硬盘千万级图库以图搜图案例Demo和图片exif信息移除小工具分享 项目地址: https://gitcode.com/gh_mirrors/im/ImageSearch 在数字时代,个人…...

WorkBuddy实测:小白也可以养虾啦!(附实操案例)

一、前言 最近养虾大战开始了,我们前段时间也发了2篇openclaw的部署的文章,还是有一定的门槛,大家可以前往往期的文章,查看具体的部署实操。 本地部署篇:实测|WSL2 从零部署 OpenClaw AI 助手&#xff1a…...

Yuzu模拟器性能调优:从新手到高手的进阶之路

Yuzu模拟器性能调优:从新手到高手的进阶之路 【免费下载链接】yuzu-downloads 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu-downloads 还在为Yuzu模拟器的卡顿问题烦恼吗?是否尝试过各种版本却依然找不到最佳配置?作为你…...

Umi-OCR Rapid引擎参数配置实战指南

Umi-OCR Rapid引擎参数配置实战指南 【免费下载链接】Umi-OCR Umi-OCR: 这是一个免费、开源、可批量处理的离线OCR软件,适用于Windows系统,支持截图OCR、批量OCR、二维码识别等功能。 项目地址: https://gitcode.com/GitHub_Trending/um/Umi-OCR …...

信号世界的“解码器”:一场基函数的华丽游戏

引言: 想象一下,我们面对的不是枯燥的数学公式,而是一部加密的宇宙语言。现实世界中的声音、图像、温度变化、股票涨跌...这些看似杂乱无章的信息流,本质上都是随时间或空间变化的信号。如何理解它们?如何提取其内在规…...

Unity新手必看:VideoPlayer组件全攻略,从基础配置到实战避坑

Unity新手必看:VideoPlayer组件全攻略,从基础配置到实战避坑 在游戏开发中,视频播放是一个常见但容易被忽视的功能需求。无论是开场动画、过场剧情还是UI中的视频元素,流畅的视频播放体验都能显著提升游戏品质。Unity内置的VideoP…...

边缘计算详解:云边端一体化中边的核心作用

边缘计算详解:云边端一体化中边的核心作用📚 本章学习目标:深入理解云边端一体化中边的核心作用的核心概念与实践方法,掌握关键技术要点,了解实际应用场景与最佳实践。本文属于《云原生、云边端一体化与算力基建&#…...

今天分享一款视频号下载工具,支持支持windows,macOS,linux三大平台使用,

软件获取地址 各大平台视频下载工具大全 软件介绍 Res-downloader是一款非常实用的网络资源下载工具,软件来自Github某大佬分享,软件操作简单好上手,不同于Fiddler等专业工具,小白也可以快速上手使用! 提供批量下载…...

LabVIEW与三菱PLC通讯实战:ActiveX控件配置技巧(以FX5U为例)

LabVIEW与三菱PLC通讯实战:ActiveX控件配置技巧(以FX5U为例) 在工业自动化领域,LabVIEW与PLC的通讯一直是工程师们关注的焦点。三菱FX5U系列PLC凭借其高性能和稳定性,成为众多自动化项目的首选。本文将深入探讨如何通过…...

海思Hi3516CV610图像调试避坑指南:PQStream连接失败排查大全(附SC4336P/SC500AI配置差异)

海思Hi3516CV610图像调试避坑指南:PQStream连接失败排查大全(附SC4336P/SC500AI配置差异) 当你在调试海思Hi3516CV610芯片的图像处理流程时,PQStream连接问题可能是最令人头疼的障碍之一。作为一名经历过无数次深夜调试的工程师&a…...

灰狼算法GWO优化随机森林分类预测建模方案:支持多分类任务,代码注释详尽且可直接替换数据快速投...

灰狼算法GWO优化随机森林做分类预测建模,可以做多分类建模,代码内注释详细替换数据就可以用,和替换数据, 调随机森林调得头大?凭感觉改nestimators、maxdepth、max_features,跑个十组八组模型,…...

U-Net架构革命:如何通过特征融合重新定义图像分割范式

U-Net架构革命:如何通过特征融合重新定义图像分割范式 【免费下载链接】unet unet for image segmentation 项目地址: https://gitcode.com/gh_mirrors/un/unet 在深度学习图像分割领域,U-Net架构以其创新的编码器-解码器对称结构和跨层级特征融合…...

【算法】有限状态机FSM:从理论到实战的完整解析

1. 有限状态机FSM基础概念 第一次听说"有限状态机"这个词时,我正盯着一个自动售货机的控制程序发呆。那会儿刚入行不久,看到同事用一堆if-else处理各种投币、选择商品、找零的逻辑,代码像意大利面条一样纠缠在一起。直到 mentor 拍…...

Vivado仿真与上电路径不一致?可能是你的寄存器初值没设对(避坑指南)

Vivado仿真与上电路径不一致?可能是你的寄存器初值没设对(避坑指南) 在FPGA开发中,最令人抓狂的莫过于仿真完美通过,但下载到板子上却出现随机启动失败或逻辑异常。这种"仿真通过,板上翻车"的现象…...

密码学开发实战:如何在Windows上快速搭建PBC+GMP开发环境

Windows密码学开发环境搭建:PBC与GMP库实战指南 密码学开发往往被视为Linux平台的专属领域,但现实开发中我们经常需要在Windows环境下工作。本文将手把手带你完成从零开始配置PBC(Pairing-Based Cryptography)和GMP(G…...

MySQL语句执行深度剖析:从连接到执行的全过程

执行流程图 MySQL 的架构可以大致划分为四个层次:连接层、服务层、存储引擎层和文件系统层。 连接层:负责对来自客户端的连接进行权限验证,并将连接信息存入连接池中,方便后续的连接复用。服务层:主要负责 SQL 语句的…...

城市内涝积水监测系统

城市道路、隧道、立交、低洼路段,是汛期积水内涝的高发区域,积水突袭易引发车辆熄火、人员被困、交通瘫痪等隐患,严重威胁群众出行安全与城市正常运转。城市积水监测系统,专为各类积水易发生场景量身打造,搭载LED双色显…...

GTE中文-large效果惊艳:中文网络流行语(如‘绝绝子’‘泰酷辣’)情感极性漂移追踪

GTE中文-large效果惊艳:中文网络流行语(如‘绝绝子’‘泰酷辣’)情感极性漂移追踪 你有没有发现,有些网络流行语用着用着,味道就变了? 比如“绝绝子”,一开始是极致的赞美,现在却常…...