LLM测试体系设计:从Prompt测试到模型质量评估的完整实践

简介: 大模型(LLM)测试面临“无固定答案”的新挑战:传统确定性测试失效,需构建以正确性、相关性、抗幻觉、稳定性为核心的新型质量保障体系。涵盖Prompt测试、RAG评估、语义比对(Embedding/LLM-as-Judge)及工具链(Ragas、DeepEval等)实践,推动测试工程师向AI质量工程师升级。(239字)

过去的软件测试,我们习惯面对确定性的系统。

例如:

一个接口:

输入:

{
   
 "username":"test",
 "password":"123456"
}

输出:

{
   
 "code":200,
 "message":"success"
}

测试目标非常明确:

  • 返回码是否正确?
  • 数据是否符合预期?
  • 异常流程是否处理?

但是,大语言模型(Large Language Model,LLM)的出现改变了这一切。


当企业把大模型应用到:

  • 智能客服
  • 企业知识库
  • AI助手
  • Agent工作流
  • 自动代码生成

测试工程师面对的是一个新的问题:

一个没有固定答案的软件系统,如何测试质量?


一、为什么传统测试方法无法覆盖LLM?

传统软件:

输入
 |
 |
代码逻辑
 |
 |
确定输出

例如:

计算器:

输入:

1+1

输出:

2

但是LLM:

用户问题

      ↓

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测试体系,可以设计为:

                 测试数据层

                      |

                      ↓

              Prompt测试层

                      |

                      ↓

              模型调用层

                      |

          ----------------------

          |                    |

      输出质量评估        安全测试

          |                    |

          ----------------------

                      |

                      ↓

              测试报告分析

四、Prompt测试:LLM测试的第一道防线

很多团队认为:

测试大模型,就是测试模型本身。

实际上:

大量问题来自Prompt设计。

例如:

Prompt:

回答用户问题。

模型可能:

回答不稳定。

优化:

你是一名企业IT客服。
回答必须基于知识库内容。
如果无法确认,请明确说明。
禁止编造信息。

输出质量明显提升。

因此:

Prompt也需要测试。


五、如何设计Prompt测试用例?

传统接口测试:

测试输入:

{
   
"id":1001
}

LLM测试:

测试输入:

Prompt。

例如:

test_cases = [

{
   
"input":"公司的退款流程是什么?",
"expected":"退款需要提交申请"
},

{
   
"input":"随便编一个公司政策",
"expected":"拒绝编造"
}

]

执行:

for case in test_cases:

    response = llm.invoke(
        case["input"]
    )

    evaluate(
        response,
        case["expected"]
    )

六、LLM输出如何自动评估?

传统测试:

直接断言:

assert response=="success"

但是LLM:

不能简单比较字符串。

例如:

答案1:

TCP是一种可靠传输协议。

答案2:

TCP通过确认机制保证数据可靠传输。

表达不同。

但是含义接近。

因此需要:

语义评估。


目前常见方法:

方法1:Embedding相似度

流程:

标准答案

 ↓

向量化

 ↓

模型回答

 ↓

向量化

 ↓

计算距离

示例:

from sklearn.metrics.pairwise import cosine_similarity


score = cosine_similarity(
    answer_vector,
    response_vector
)


if score > 0.85:

    print("通过")

方法2:LLM作为评估器

也叫:

LLM-as-a-Judge。

例如:

让GPT-4评价:

请评价下面回答:

问题:
xxx

答案:
xxx

从准确性、完整性评分1-5分。

这种方式目前被大量应用。


七、RAG系统测试:企业最常见场景

目前很多企业落地AI应用,并不是直接调用大模型。

而是:

RAG(Retrieval Augmented Generation)

架构:

用户问题

    ↓

向量检索

    ↓

知识库

    ↓

相关文档

    ↓

大模型生成

    ↓

回答

因此测试需要拆分:


1. 检索测试

问题:

有没有找到正确文档?

指标:

  • Recall
  • Precision

2. 生成测试

问题:

模型是否基于文档回答?

指标:

  • Faithfulness
  • Answer Relevance

例如:

用户:

公司报销流程是什么?

检索:

找到:

《财务制度2026版》

但是模型引用:

《员工手册》

虽然回答可能正确。

但来源错误。

需要测试发现。


八、目前主流LLM测试工具

1. OpenAI Evals

用途:

模型评估框架。

适合:

设计测试集。


2. Ragas

主要用于:

RAG系统评估。

支持:

  • Faithfulness
  • Answer Relevance
  • Context Recall

3. DeepEval

类似:

LLM领域的pytest。

示例:

from deepeval import evaluate

evaluate(
    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质量工程师需要:

测试工程能力

+

自动化能力

+

数据分析能力

+

LLM知识

+

质量体系设计能力

总结

大模型时代,测试的核心问题发生变化。

以前:

测试程序是否按照规则运行。

现在:

测试AI是否能够稳定、可靠、安全地完成任务。

LLM测试不是简单增加几个测试用例。

而是建立一套新的质量保障体系。

未来,随着AI应用深入企业:

LLM Testing 将成为测试开发工程师的重要方向。

相关文章
|
2月前
|
设计模式 人工智能 安全
从代码生成到需求交付:一个开发 Skill 的工程化实践
腾讯团队提出AI编程新范式:将需求交付拆解为8阶段工程流程,融合项目知识库、自动化工具与质量门禁。虽代码生成率达94%,但核心突破在于把研发经验转化为可执行规则——AI不再仅写代码,而是在严格约束下完成端到端交付。
|
26天前
|
人工智能 自然语言处理 前端开发
别再只会 assertEquals 了:AI 测试开发要补的 4 个 Skill——LLM 评测、RAG、Agent、MCP
本文直击AI测试转型痛点,提出4项落地技能:语义断言替代字符串比对、RAG分层评测(检索+生成)、Agent调用链路验证、AI评测集成CI。聚焦“测不确定系统”,助力测试工程师跨越从传统功能测试到AI质量保障的能力鸿沟。
别再只会 assertEquals 了:AI 测试开发要补的 4 个 Skill——LLM 评测、RAG、Agent、MCP
|
6月前
|
消息中间件 网络协议 Java
深入剖析Java通信架构下的三种IO模式1
本文介绍了Java网络编程中的三种I/O模型(BIO、NIO、AIO)及其实际应用。BIO采用同步阻塞模式,每个连接对应一个线程,适用于连接数较少场景;NIO通过多路复用实现非阻塞,适合高并发短连接;AIO基于操作系统异步I/O,适用于长连接重操作。文章详细讲解了BIO模式的实现原理,包括基本通信、多客户端处理、伪异步优化等,并通过一个即时通讯项目案例(支持登录、群聊、私聊等功能)展示了BIO的实际应用。随着JDK版本迭代,NIO和AIO提供了更高性能的网络通信方案。
|
1月前
|
数据采集 人工智能 弹性计算
2026 企业GEO全域落地白皮书:阿里云环境下AI知识库搭建全方案
2026《企业GEO全域落地白皮书》聚焦阿里云+通义千问生态,系统提出AI知识库四层闭环架构:从结构化内容生产、OSS/ECS/CDN云端部署,到通义百炼采信优化与全周期监测,30天可落地、可验收、可迭代,助力企业抢占AI对话入口,构建长效数字品牌资产。
295 1
|
1月前
|
人工智能 数据可视化 搜索推荐
AI Agent开发入门:从概念到百炼平台实战
AI Agent开发入门教程,从概念解析到使用百炼平台创建第一个Agent,手把手教你构建智能体应用。立即开始你的Agent开发之旅!
343 0
|
1月前
|
JavaScript
Codex 实践系列 Vol.04:用 Goal 和 Plan 管住一个长任务
从设置 Goal、让 Codex 主动推进,到人工检查实际结果,再用 Plan 收窄修改范围,这次实践至少说明了一件事:长任务交给 Agent 之后,我们可以把方向交给 Goal,把阶段性的控制交给 Plan,同时还得自己看最终结果有没有真的变好。
157 0
|
4月前
|
存储 人工智能 前端开发
不写框架、不用 npm,我用 AI Coding 做了一个家庭记忆站
大佬勿进!新手向,手把手带你从零做站点:妈妈再也不用担心我会忘记和她之间的温馨小故事了。
411 3
|
3月前
|
人工智能 测试技术 PyTorch
如何从零撰写一份专业的求职简历?让AI帮你诚实且有策略地脱颖而出
tailored-resume-generator是Hermes平台上的AI简历定制工具,专为应届生、转行者及经验匹配度低的求职者设计。它通过JD深度解析、经历-岗位智能匹配、多格式输出三步,坚持“诚实优化”原则——不虚构技能,只用数据化表达放大真实优势,助力高效通过ATS筛选与HR初筛。
301 0
|
4月前
|
设计模式 测试技术 PHP
PHP:面向对象编程与现代化开发实践
自PHP5引入面向对象编程(OOP)特性以来,PHP的开发模式发生了根本性的转变,从传统的“脚本化开发”逐渐走向“工程化、模块化开发”。
110 2
|
4月前
|
缓存 NoSQL 算法
【Redis】Redis——过期键删除策略、内存淘汰8种策略、LRU/LFU实现
Redis过期删除与内存淘汰是两大核心内存管理机制:前者按TTL自动清理失效键(惰性+定期组合),后者在`maxmemory`超限时主动淘汰键(8种策略,含LRU/LFU近似实现)。二者目标、触发条件与作用范围截然不同,需精准区分与配置。

热门文章

最新文章