E6 · 出版卷 28
测试策略
单元、性质、黄金数据、视觉、集成与领域审查
*单元、性质、黄金数据、视觉、集成与领域审查*
学习目标
本课是通用、机构中立内容,不使用任何真实公司、个人、矿权、项目或可识别地点。通用角色只描述职责,SYN-ARCH 标识符明确表示合成教学证据。
- 界定由“单元、性质、黄金数据、视觉、集成与领域审查”治理的决定。
- 在选择实现前建立相关边界、状态与合同模型。
- 定义可测不变量、故障证据与安全发布后果。
- 基于合成证据产出一份连接风险并使用受控证据语料的测试组合并为其权衡辩护。
决策边界
从决定、风险、不变量与故障后果选择测试。单元测试隔离确定逻辑;性质测试检查应在大量输入上成立的陈述;受控语料保留已知样例与反例;视觉测试检测表示变化;集成测试运行真实边界;端到端测试跟随用户决定;领域审查判断软件无法独立决定的科学含义。任何一层都不能替代另一层。通过套件支持的是对声明版本与环境的有边界主张,而不是普遍正确。
核心概念
测试判定依据说明如何判断正确。确定性样例可使用精确期望值;当精确结果不可得或不合适时,使用不变量、变形关系、守恒规则与容差。受控黄金数据是带来源、目的与期望行为的版本化证据,不是失败后复制一份输出。视觉比较区分结构、几何、颜色与文字变化,并需要像素匹配之外的无障碍检查。领域审查记录问题、所检证据、审查角色、分歧与处置,而不是一个无文档批准点击。
系统模型与合同
维护从需求与风险到不变量、测试层级、夹具、判定依据、环境、结果与发布后果的追踪矩阵。语料包含最小正常情况、边界、畸形输入、缺失值、混合参考、重复身份、极端量级、拓扑缺陷、权限变化、部分故障与历史版本。每个夹具具有稳定身份、清单、生成或观测来源、许可或使用边界、预期发现与敏感类别。测试结果记录确切代码、合同、依赖与数据版本,以及复现故障所需制品。
不变量与验收标准
| 不变量 | 测试证据 | 发布后果 | |---|---|---| | 每项活动需求与高后果风险都追踪到充分测试证据。 | 合同测试与反例记录 | 阻止发布 | | 每个夹具都声明身份、来源、目的与期望行为。 | 回放比较与摘要检查 | 隔离制品 | | 黄金期望只能通过经过评审的证据改变。 | 基于角色的验收追踪 | 把决定返回为未解决 | | 容差与视觉比较保留声明的科学语义。 | 故障注入与恢复记录 | 保留上一已验证版本 | | 领域审查发现始终连接到确切候选发布。 | 依据声明证据的领域审查 | 记录明确评审发现 |
量化工程
需求覆盖率为 C_r=n_{tested}/n_{applicable};风险加权覆盖率为 C_w=(w_1I_1+w_2I_2+...+w_nI_n)/(w_1+w_2+...+w_n),其中权重与二元或分级证据指标均须声明。报告变异或故障检出证据、性质用例分布、不稳定率、视觉差异类别、边界覆盖与未解决审查发现。行覆盖率只说明哪些代码执行过,不能说明科学含义已检查。容差测试声明绝对、相对、空间与拓扑分量,并检查边界内外紧邻值。
数据质量、证据与不确定性
只有当失败不能通过未经评审地重生成期望值而被抹去时,测试证据才可信。黄金结果变化需要理由、前后比较、受影响不变量与独立处置。区分合成夹具与观测或策展参考材料,绝不把生成值称为现场事实。性质生成器记录种子与反例缩减历史。视觉基线保留视口、渲染设置、字体、颜色解释与参考数据。集成环境使用真实合同实现与存储边界;替代物必须标记,且不能关闭相应生产风险。
互操作性与版本
测试用例合同定义前置条件、夹具版本、动作、判定依据、容差、预期证据与清理。测试结果模式区分通过、失败、错误、跳过、隔离与无结论;只有有理由的政策才能把它们映射到发布决定。需要控制时间、随机源与外部依赖以实现复现时,接口提供确定性挂钩但不改变生产语义。视觉和数据快照使用内容摘要与经过评审的更新流程。领域审查表使用受控发现与自由解释,并把每项处置连接到确切候选发布。
安全与专业责任
使用最小权限身份与拒绝用例测试授权边界。夹具不包含未经批准的敏感数据、活动凭证或可执行恶意载荷;对抗结构被隔离并限制大小。测试日志与失败附件继承数据分类,并在广泛分发前脱敏。供应与构建证据验证用于接受发布的测试工具和依赖。测试专用绕过不能在生产路径启用;配置测试检测调试端点、预置账户或放宽政策。
运行流程与可观测性
按后果设置发布关口:即使数千项低风险测试通过,一个高风险不变量也可阻止发布。隔离不稳定测试时记录责任角色、原因、风险、补偿证据与到期,而不是静默重试到绿色。运行信号把新反例送入经过评审的语料。定期证明测试能检出植入故障,并确认退役测试不再连接活动义务。结果与发布清单一起归档,使调查能重建发布时已知、失败、豁免与评审内容。
集成检查点
把“测试策略”制品连接到本卷前面的架构。追踪一个合成对象从来源身份穿过新边界到达已审查输出,再把一个拒绝或故障追溯到最早被违反的不变量。更新架构决定记录,写明所选方案、备选方案、假设、证据、后果、责任角色、评审状态与重新考虑触发条件。只有另一位审查者无需口头说明即可重建成功路径与阻断路径,检查点才通过。
合成案例
SYN-ARCH-11 有许多通过的单元测试,却没有针对混合坐标参考瓦片导出的判定依据。一个合成边界夹具显示,两份几何自动缩放后视觉对齐,但世界坐标不同。测试组合加入参考性质、往返语料、带世界空间标记的视觉叠加、集成导出与领域审查问题。植入的轴顺序故障在三层被检出。该失败阻止发布,直到合同与变换被纠正;无关展示差异则单独分类。
练习与考核
- 每项科学与系统主张适合哪种判定依据?
- 哪些反例覆盖普通样本遗漏的边界?
- 如何区分合成、策展与观测测试数据?
- 哪些失败或无结论结果必须阻止发布?
考核制品:一份连接风险并使用受控证据语料的测试组合。提交时附来源清单、验收证据、未解决风险,并简要说明为何没有选择一个合理备选方案。
常见失败模式
- 把代码行覆盖率当成领域正确性证明。
- 未经独立评审就替换失败期望结果。
- 只测试顺利路径与便利数值范围。
- 把像素相等作为唯一视觉与无障碍判定依据。
- 让重复重试掩盖不稳定或非确定测试。
来源与延伸阅读
- ISO/IEC/IEEE 29119-2:2021 测试过程,定义治理、管理与实施软件测试的通用过程。
- ISO/IEC/IEEE 29119-4:2021 测试技术,定义系统实施测试设计的方法。
- ISO/IEC 25010:2023 产品质量模型,提供用于规定与评价产品质量的九类特征。
- ISO 19157-1:2023 地理数据质量,建立质量组成、评价程序与报告原则。
- NIST SP 800-218 安全软件开发框架 1.1,提供覆盖生命周期的高层安全开发实践。