打造自己的 AI QA 助手 — 自动化测试理解,使用 LangChain 与 OpenAI
Source: Dev.to
为什么要这样做?
作为 QA 工程师,我们经常处理 JSON 或 Jira/Xray 中的测试用例、.feature 文件中的 BDD 规范、Markdown 需求、.txt 与 .html 格式的日志、Allure 报告以及 PDF——这些文件分散在不同的工具和文件夹中。跨所有文件搜索既慢又重复,还容易出错。
解决方案: 一个 AI 驱动的机器人,能够理解所有测试制品并用自然语言回答问题,像真正的助理一样工作。
机器人能做什么
- 提问 如:
- “TC‑002 的测试步骤是什么?”
- “总结登录测试用例。”
- “PDF 中关于边缘情况的内容是什么?”
- 支持的文件类型:
.json– 结构化测试用例.feature– BDD 场景.md,.txt,.html– 需求、日志、报告.pdf,.docx– 规格文档
- 工作原理:
- 将内容拆分成可搜索的块。
- 创建语义嵌入。
- 将其存入 FAISS 向量数据库。
- 使用 OpenAI 生成自然语言响应。
技术栈
- LangChain – 负责数据加载、块划分和检索编排。
- OpenAI – 生成适合 QA 的答案。
- FAISS – 快速的语义向量搜索。
- Python – 实现语言。
使用方法
1. 克隆仓库
git clone https://github.com/aiqualitylab/AI-QA-Assistant-Bot.git
cd AI-QA-Assistant-Bot
2. 安装依赖
pip install -r requirements.txt
3. 设置 OpenAI API 密钥
在项目根目录创建 .env 文件:
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
你可以在 OpenAI 平台 获取 API 密钥。
4. 运行助理
python bot.py
首次运行时会对文档进行索引;后续运行会复用已保存的索引。你会看到:
🤖 QA Assistant Ready! Ask anything (type 'exit' to quit')
现在可以开始提问,实时获得 AI 驱动的答案。
示例用例
- “TC‑003 包含什么?”
- “总结所有关于结账的测试用例。”
- “日志中关于支付错误的内容是什么?”
- “给我登录时使用无效凭证的测试步骤。”
工作原理细节
- 来自
langchain_community.loaders的 文档加载器 支持多种格式。 - 递归块划分 将大文本拆分为有重叠的片段。
- OpenAIEmbeddings 将块转换为向量。
- FAISS 对向量进行索引并进行语义搜索。
- RetrievalQA 将你的问题与最佳匹配的文档进行匹配并生成答案。
为什么重要
QA 工程师不再需要:
- 在数百行代码中使用 Ctrl + F。
- 在 Jira、Confluence、Allure、Git 等之间切换。
- 手动关联日志和测试用例。
助理让你工作更聪明,而不是更辛苦。
演示可用
在本地使用自己的测试制品进行尝试。克隆仓库 👉 https://github.com/aiqualitylab/AI-QA-Assistant-Bot
QA Assistant Bot 概览
一个为 QA 工程师打造的 AI 助手,使用 OpenAI + LangChain 来回答来自测试用例、特性文件、日志、规格等的自然语言问题。
目标
- 提出自然语言问题,如 “TC‑001 的步骤是什么?” 或 “列出登录的测试用例”。
- 快速了解测试规格和日志。
- 跨多种格式(JSON、Markdown、PDF 等)搜索。
- 自动化文档理解,降低手动工作量。
支持的文件类型
将文件放入 data/ 文件夹。机器人可以读取并建立索引的类型包括:
.json– 测试用例.feature– BDD 规格.md– 需求文档.txt– 日志文件.html– 报告.pdf– 测试文档.docx– Word 规格
安装
1. 克隆仓库
git clone https://github.com/aiqualitylab/AI-QA-Assistant-Bot.git
cd qa-bot
2. 设置 Python 环境
确保已安装 Python 3.10+,然后安装依赖:
pip install -r requirements.txt
3. 创建 .env
按照前文描述添加你的 OpenAI 密钥。