过去的软件测试我们习惯面对确定性的系统。例如一个接口输入json{username:test,password:123456}输出json{code:200,message:success}测试目标非常明确* 返回码是否正确* 数据是否符合预期* 异常流程是否处理但是大语言模型Large Language ModelLLM的出现改变了这一切。---当企业把大模型应用到* 智能客服* 企业知识库* AI助手* Agent工作流* 自动代码生成测试工程师面对的是一个新的问题 一个没有固定答案的软件系统如何测试质量---# 一、为什么传统测试方法无法覆盖LLM传统软件text输入||代码逻辑||确定输出例如计算器输入11输出2但是LLMtext用户问题↓Prompt↓模型推理↓上下文检索↓生成回答↓最终输出同一个问题可能产生不同回答。例如Prompt 什么是TCP协议模型A TCP是一种面向连接的传输层协议。模型B TCP负责保证网络通信可靠性。两个答案都可能正确。那么测试标准是什么这就是LLM测试最大的挑战。---# 二、LLM测试的核心目标目前企业进行LLM测试主要关注以下几个维度。---## 1. 正确性Correctness模型回答是否符合事实。例如企业知识库机器人。用户 公司年假是多少天正确答案 工作满1年至10年年休假5天。如果模型回答 所有员工都有15天年假。就是错误。---## 2. 相关性Relevance回答是否真正解决用户问题。例如用户 如何修改手机号模型回答 手机号修改需要进入账户设置。正确。如果回答 手机号的发展历史是什么虽然内容正确但是无关。---## 3. 幻觉Hallucination这是目前LLM测试最关注的问题。例如用户 请介绍一下不存在的某家公司。模型可能编造* 公司成立时间* 创始人* 产品信息测试需要发现模型是否产生虚假信息。---## 4. 稳定性Consistency同一个输入多次请求。结果是否稳定。例如Prompt 写一个Python排序算法。第一次生成冒泡排序。第二次生成快速排序。第三次生成错误代码。需要评估输出波动情况。---# 三、企业级LLM应用测试架构一个完整LLM测试体系可以设计为text测试数据层|↓Prompt测试层|↓模型调用层|----------------------| |输出质量评估 安全测试| |----------------------|↓测试报告分析---# 四、Prompt测试LLM测试的第一道防线很多团队认为测试大模型就是测试模型本身。实际上大量问题来自Prompt设计。例如Prompt回答用户问题。模型可能回答不稳定。优化你是一名企业IT客服。回答必须基于知识库内容。如果无法确认请明确说明。禁止编造信息。输出质量明显提升。因此Prompt也需要测试。---# 五、如何设计Prompt测试用例传统接口测试测试输入json{id:1001}LLM测试测试输入Prompt。例如pythontest_cases [{input:公司的退款流程是什么,expected:退款需要提交申请},{input:随便编一个公司政策,expected:拒绝编造}]执行pythonfor case in test_cases:response llm.invoke(case[input])evaluate(response,case[expected])---# 六、LLM输出如何自动评估传统测试直接断言pythonassert responsesuccess但是LLM不能简单比较字符串。例如答案1 TCP是一种可靠传输协议。答案2 TCP通过确认机制保证数据可靠传输。表达不同。但是含义接近。因此需要语义评估。---目前常见方法## 方法1Embedding相似度流程text标准答案↓向量化↓模型回答↓向量化↓计算距离示例pythonfrom sklearn.metrics.pairwise import cosine_similarityscore cosine_similarity(answer_vector,response_vector)if score 0.85:print(通过)---## 方法2LLM作为评估器也叫LLM-as-a-Judge。例如让GPT-4评价请评价下面回答问题xxx答案xxx从准确性、完整性评分1-5分。这种方式目前被大量应用。---# 七、RAG系统测试企业最常见场景目前很多企业落地AI应用并不是直接调用大模型。而是RAGRetrieval Augmented Generation架构text用户问题↓向量检索↓知识库↓相关文档↓大模型生成↓回答因此测试需要拆分---## 1. 检索测试问题有没有找到正确文档指标* Recall* Precision---## 2. 生成测试问题模型是否基于文档回答指标* Faithfulness* Answer Relevance---例如用户 公司报销流程是什么检索找到《财务制度2026版》但是模型引用《员工手册》虽然回答可能正确。但来源错误。需要测试发现。---# 八、目前主流LLM测试工具## 1. OpenAI Evals用途模型评估框架。适合设计测试集。---## 2. Ragas主要用于RAG系统评估。支持* Faithfulness* Answer Relevance* Context Recall---## 3. DeepEval类似LLM领域的pytest。示例pythonfrom deepeval import evaluateevaluate(test_cases)可以集成CI/CD。---## 4. Promptfoo用于Prompt测试。例如比较Prompt A和Prompt B哪个效果更好。---# 九、测试工程师如何进入LLM测试方向对于传统测试开发工程师不需要重新学习成为算法工程师。建议路线---## 第一阶段掌握LLM基础包括* Transformer基本概念* Token* Embedding* Prompt---## 第二阶段掌握LLM测试方法包括* Prompt测试* RAG测试* 幻觉测试* 安全测试---## 第三阶段掌握测试平台建设包括* 自动化评测* 测试数据管理* CI/CD集成---# 十、未来AI质量工程师的核心能力未来企业需要的不是“会调用ChatGPT的人”。而是能够保证AI系统可靠运行的人。AI质量工程师需要text测试工程能力自动化能力数据分析能力LLM知识质量体系设计能力---# 总结大模型时代测试的核心问题发生变化。以前测试程序是否按照规则运行。现在测试AI是否能够稳定、可靠、安全地完成任务。LLM测试不是简单增加几个测试用例。而是建立一套新的质量保障体系。未来随着AI应用深入企业LLM Testing 将成为测试开发工程师的重要方向。---# AI质量工程持续分享* LLM测试实践* AI Agent质量保障* RAG评测体系* 智能测试平台建设* AI时代质量工程方法论探索AI时代软件质量工程的新方向。---霍格沃兹测试开发学社隶属于测吧北京科技有限公司是一个专注软件测试、自动化测试、人工智能测试与测试开发的技术交流社区并参与高校测试实训、火焰杯赛事及工程化人才培养。