学习周记 #02 | 2026 年 AI + 测试开发实战:用 LangChain + 大模型自动生成测试用例(测试必看)
·
前言
大家好,上周我用 LangChain 做了一个 RAG 知识库问答系统,效果还不错。这周结合自己的本职工作(测试开发),尝试把 AI 用到测试流程中。
测试日常最耗时的环节之一就是写测试用例。如果能让大模型根据需求文档、接口定义、代码注释等自动生成高质量测试用例,就能极大提升效率。
今天我们就来实战:基于需求文档自动生成结构化测试用例。
一、为什么测开需要 AI?
- 测试用例编写重复性高、容易遗漏
- 需求频繁变更,手动维护成本高
- AI 可以快速生成覆盖正例、边界、异常场景的用例
- 2026 年,AI 辅助测试已经是很多团队的标配
二、环境准备(沿用上篇)
使用上周已经搭建好的 LangChain + Ollama 环境即可。
三、核心实现思路
- 读取需求文档(支持 PDF、Markdown、纯文本)
- 使用 RAG 增强上下文(让模型更懂你的业务)
- 精心设计 Prompt,让模型按标准化格式输出测试用例
- 输出 Excel 或 Markdown 格式,方便直接导入测试平台
四、完整代码实战
Python
from langchain_community.document_loaders import PyPDFLoader, TextLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_chroma import Chroma
from langchain_ollama import OllamaEmbeddings, ChatOllama
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
# 1. 加载需求文档
loader = PyPDFLoader("需求文档.pdf") # 或 TextLoader("需求.md")
docs = loader.load()
text_splitter = RecursiveCharacterTextSplitter(chunk_size=800, chunk_overlap=100)
splits = text_splitter.split_documents(docs)
# 2. 创建向量库
embeddings = OllamaEmbeddings(model="qwen2.5:14b")
vectorstore = Chroma.from_documents(documents=splits, embedding=embeddings, persist_directory="./test_rag_db")
retriever = vectorstore.as_retriever(search_kwargs={"k": 5})
# 3. 设计测试用例生成 Prompt(这个是灵魂!)
template = """你是一位资深测试开发工程师,请根据以下需求文档生成完整的测试用例。
需求内容:
{context}
请严格按照以下格式输出(Markdown 表格形式):
### 测试用例列表
| 用例ID | 测试模块 | 测试场景 | 前置条件 | 操作步骤 | 预期结果 | 用例类型 | 优先级 |
|--------|----------|----------|----------|----------|----------|----------|--------|
要求:
- 生成至少 15 条测试用例
- 必须包含:正常场景、边界值、异常场景、权限验证
- 用例类型:功能/边界/异常/性能/安全
- 优先级:P0/P1/P2
- 语言要专业、清晰、可直接执行
现在开始生成:
"""
prompt = ChatPromptTemplate.from_template(template)
llm = ChatOllama(model="qwen2.5:14b", temperature=0.2)
test_chain = (
{"context": retriever | (lambda docs: "\n\n".join(doc.page_content for doc in docs)),
"question": lambda x: x}
| prompt
| llm
| StrOutputParser()
)
# 4. 执行生成
result = test_chain.invoke("请帮我生成这个需求的测试用例")
print(result)
五、实际效果评估(我跑完后的真实感受)
优点:
- 5 分钟内能生成 20+ 条结构化用例,大幅节省时间
- 边界和异常场景覆盖比手动更全面
- 可以反复迭代(改 Prompt 就能优化)
当前局限:
- 生成的用例有时过于“模板化”,需要人工二次审查和补充
- 对业务理解深度依赖 RAG 质量(建议把历史 Bug 单、接口文档也扔进去)
- 复杂交互逻辑(如多页面流程)目前生成效果一般
我的改进建议(测试视角):
- 把 Swagger/OpenAPI 接口定义也喂给模型
- 增加“历史 Bug 库 RAG”,让模型优先覆盖高风险点
- 最终还是人 + AI 结合,AI 生成初稿,人做 Review 和补充
六、今日感悟
作为测试,我越来越觉得未来的测试开发不是被 AI 替代,而是学会如何更好地和 AI 协作。 谁能把 AI 工具链熟练融入测试流程(用例生成 → 自动化脚本生成 → 缺陷分析 → 测试报告),谁就能在团队里更有竞争力。
更多推荐




所有评论(0)