测试基础 testdev daily work - llmcase v3

zhangbp · February 26, 2026 · 1800 hits

一个测开老兵的 26 年个人成就计划


2026 年测试智能化升级技术实现方案 v3

1. 核心背景与重构目标

本项目 llmcase-v3 旨在通过最先进的 RAG(检索增强生成)与 Multi-Agent(多智能体)代理技术,对老旧的线性流水线进行彻底重构。

1.1 核心攻关痛点

  • 幻觉问题:生成内容脱离需求文档。
  • 逻辑浅薄:生成的测试用例缺乏深度业务逻辑覆盖。
  • 不可观测:无法追踪 Agent 内部推理过程,难以调试。
  • 评估滞后:缺乏自动化的量化评估体系。

1.2 核心目标

  • 构建基于 LangGraph 的循环自愈工作流。
  • 集成 Ragas 实现全自动质量闭环。
  • 引入 LangSmith 提供工业级可观测性。
  • 存量复用:深度吸收并重构现有成熟的实体提取、测试要点生成逻辑,避免重复造轮子。

2. 总体架构设计 (Technical Stack)

层次 选型 作用
应用编排 (Orchestration) LangChain & LangGraph 管理复杂的状态流转与· Agent 协作。
知识检索 (RAG) FAISS / Milvus 存储文档片段与历史用例,提供上下文。
可观测性 (Obs.) LangSmith 链路追踪、调试、数据集沉淀、Prompt 管理。
质量评估 (Eval) Ragas & Legacy Scorer 量化计算 Faithfulness 等指标,辅以规则校验。
模型引擎 (LLM) doubao / qwen 强逻辑推理,核心生成引擎。

2.2 技术选型与判定逻辑 (Technology Selection Logic)

基于 demos/ 目录下的技术验证,制定了以下选型与判定逻辑,作为本案的实施基石:

  1. 文档解析与加载提取 (Data Loader)

    • 文本解析 (Word/PDF): 选用 Docx2txtLoader,它在保真度与轻量化之间取得了良好的平衡(详单见 demos/rag_01_data_loader.py),能高效提取需求文档内容。
    • 历史用例解析 (Excel): 弃用传统的纯文本读取,改用 Pandas 对已有 .xlsx 进行结构化解析(处理 NaN 空缺),从而应对各异的表头(如 "操作步骤" 与 "* 测试步聚" 等变体),并将关键字段(如所属模块、测试点)结构化地存储至 Documentmetadata 中以供精确检索。
  2. 文档分块策略 (Chunking Strategy)

    • 判定依据: 经过 demos/rag_02_text_splitter.py 的验证,对于需求文档这种强上下文相关的数据,固定长度切分容易导致语义截断。
    • 最终选型: 优先考虑采用 SemanticChunker(语义相似度分块),它能在主题发生切换时才切分段落,从而保持逻辑的完整性。
  3. 检索架构 (Retrieval Architecture)

    • 双路召回 (Dual-Path Strategy): 将 “需求文档知识(Context)” 与 “历史用例示例(Few-Shot Examples)” 分开检索。在 demos/rag_04_langgraph.py 的验证中,通过 metadata={"row": index} 进行精准匹配,成功分离了背景知识获取与特定样本参考的逻辑,大幅提升了 Prompt 中少样本学习的关联度。

2.3 逻辑架构图 (LangGraph Flow)

graph TD
    User([需求文档 Word/Text]) -->|Input| Start((开始))

    subgraph "知识层 (Knowledge Base)"
        History[历史 Excel 用例] -->|ETL| VectorStore[(向量数据库)]
        Doc[当前需求] -->|Loader| VectorStore
    end

    subgraph "智能体层 (LangGraph Core)"
        Start --> Entity[实体提取 Agent]
        Entity --> Point[测试要点生成 Agent]
        Point --> Case[测试用例生成 Agent]

        VectorStore -.->|Few-Shot Samples| Point
        VectorStore -.->|Context Metadata| Case

        Case --> Eval[Ragas 评估 Agent]
        Eval -->|分数 < 0.8| Opt[重构优化 Agent]
        Opt -->|改进建议| Case
        Eval -->|分数 >= 0.8| Output[最终测试方案]
    end

    LangGraph -->|全链路 Trace| LangSmith
    Output -->|Result| User

3. 详细模块实现方案

3.1 闭环 RAG Pipeline 实现

  1. 加载器 (Data Loader):
    • 需求文档:使用 Docx2txtLoader 实现 Word 对 Markdown 的高保真保留。
    • 历史库:使用 Pandas 对已有 .xlsx 用例进行清洗,提取 (测试点, 步骤, 预期) 作为元数据。
  2. 动态分块 (Chunking):
    • 采用 SemanticChunker(语义分块)减少上下文断裂。
    • 备选方案:RecursiveCharacterTextSplitter(500/50 overlap)。
  3. 高级检索流程 (Advanced Retrieval Flow):
    • 预检索 (Pre-retrieval):
      • Query Rewriting: 利用 LLM 将用户需求扩展为更具搜索性的测试点描述。
    • 检索 (Retrieval):
      • Dual-Path Strategy: 需求背景检索与历史用例检索。
    • 检索后处理 (Post-processing):
      • Reranking: 使用重排序模型过滤噪声。
      • Context Compression: 仅保留核心片段,节省 Token。

3.2 现有功能逻辑复用 (Legacy Logic Integration)

3.3 LangGraph 状态机与自愈机制

3.4 LangSmith 增强功能

3.5 Few-Shot 详细设计实现机制

为了确保 生成 Agent 能够输出高可用、格式标准的测试用例,我们基于演示验证 (demos/rag_04_langgraph.py) 设计了 Few-Shot 的专门处理与应用机制:


4. 实施阶段 (Roadmap)

  1. Phase 1: 基础设施搭建与 Legacy 逻辑原子化封装。
  2. Phase 2: 构建 RAG 知识库与两路检索链路。
  3. Phase 3: 实现 LangGraph 闭环并集成 Ragas + LangSmith。

5. 核心拓展方案设计评估 (Extensions)

5.1 输入内容定义机制评估

考虑到不同用户角色的使用习惯及诉求,方案定义了 “三核触发模式”:

  1. 主流程(用户提供 docx 策划文档)
    • 提取文档内容并进行 RAG 动态分块存入当前上下文。
    • LangGraph 隐式利用 docx 提取的内容结合 Few-shot(从历史知识库召回)完成全量测试操作与用例生成。
  2. 知识库底座录入(用户提供 excel 策划文档)
    • 不作为即时生成触发器,而是作为 few-shot 提取的依据库。
    • 对上传的 Excel 历史用例进行 ETL 后结构化入库(向量库),为生成提供高质量标准对齐参考。
  3. 即时探索流程(不录入文档直接提问)
    • 跳过 Context Loader,直接提取用户指令里的 Query 开启 LangGraph 流程。
    • 利用通用 LLM 推理结合向量库中的类似功能历史记忆作答,适合轻量级验证与探索。

5.2 动态分块与多模态处理方案评估

结合实际带有配图的需求文档,形成如下处理链路:

  • 略 ### 5.3 模型环境配置策略

5.4 全链路详细节点与数据流转设计 (Detailed Implementation Flow)

- 略

6. 实施现状与后续工作规划 (Implementation Status & Future Planning)

6.1 当前落实情况 (v3.0 Release State)

在当前版本的优化中采取了 “技术思想先行,轻量化落地” 的策略。具体应用如下:

  • LangChain (深度应用):已通过 FAISSHuggingFaceEmbeddings 实现了 RAG 检索(Few-shot 召回),显著提升了测试用例的生成深度。
  • LangGraph (逻辑对齐):按照 v3 设计的 Node 1-5 序贯逻辑重构了后端服务。目前由后端 Service 状态机驱动,尚未引入 .graph 状态机文件。
  • Ragas (算法对齐):在 evaluator 模块中手动实现了 Ragas 的核心评价逻辑(Faithfulness, Relevance),完成了质量评估闭环。
  • LangSmith (日志化对齐):全链路通过规范化的 logger 追踪推理过程,模仿了 Trace 逻辑,确保过程可观测。
No Reply at the moment.
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up