跳转到内容

场景驱动 + 测试先行

场景驱动 + 测试先行是 OpenLogos 中最关键的原则。它通过结合两种互补的策略来保证准确性、可靠性和可维护性:

  1. 场景驱动:每个功能都被拆解为离散的场景(S01S02 …),从需求经设计一路追溯到实现。
  2. 测试先行:针对每个场景,在编写代码之前就设计出完整的测试套件,为 AI 提供「完成」的精确定义。

单个场景 ID(S01)贯穿全部三个阶段 —— 无需追溯矩阵,因为这个 ID 本身就是那条追溯链:

阶段S01 在此获得什么
Phase 1 · WHY痛点、验收标准(GIVEN/WHEN/THEN)
Phase 2 · WHAT交互规格、页面流程、原型
Phase 3 · HOW时序图 → API → 测试用例(UT-S01-001 …)→ 经过验证的代码

要改动 S01 的某条需求?你能精确知道哪些 API、测试和代码会受到影响。

不是传统的 TDD(写一个测试 → 写代码 → 重构)。OpenLogos 是先设计整个测试系统

层次范围示例
单元测试(UT)函数正确性UT-S01-001:用户名至少 2 个字符
场景测试(ST)跨模块集成ST-S01-001:完整的注册 → 任务查看
编排测试(OT)端到端 API 流程OT-S01-001:注册 → 登录 → 创建任务

然后 AI 在一个精确、可验证的目标下生成代码 —— 是「通过这 12 个带特定 ID 的测试用例」,而非含糊的「构建一个登录功能」。

当你告诉 AI「写一个注册功能」时,它只能猜测「完成」意味着什么。当你告诉 AI「写出能通过 UT-S01-001ST-S01-012 的代码」时,它就有了一个精确、可验证的目标。两者的输出质量差异非常显著。

Terminal window
openlogos verify

三层验证检查:

检查项描述
通过率全部测试通过
设计时覆盖率每个已定义的测试用例都被执行
AC 可追溯性需求 → 测试用例 → 结果相互关联

最终产出是一份 Gate 3.5 验收报告 —— 质量是一个数字,而非一种感觉。

{type}-S{scenario}-{number}
  • Type(类型)UT(单元)、ST(场景)、OT(编排)
  • Scenario(场景):两位数字的场景编号(S01S02 …)
  • Number(序号):场景内的顺序编号(001002 …)

所有测试结果均以 JSONL 格式上报。规格详见 测试结果格式


另见:交互式深入解读 —— 场景驱动 + 测试先行