随着ChatGPT、Claude、通义千问、豆包等大模型应用快速落地,软件测试领域正在出现一个新的方向:
大模型测试(LLM Testing)
过去测试工程师关注:
- 页面是否正常
- 接口是否返回正确
- 功能流程是否符合需求
而现在,需要验证:
- AI回答是否准确?
- 是否产生幻觉?
- 多次回答是否稳定?
- 是否泄露敏感信息?
- 模型升级后效果有没有下降?
测试对象从传统软件:
变成了一个拥有“不确定输出”的智能系统。
但是很多测试工程师忽略了一个问题:
当测试规模扩大以后,大模型测试首先面对的不是模型问题。
而是:
海量测试数据如何管理?
这时候,一个基础数据结构:
哈希表(Hash Table)
开始发挥重要作用。
一、什么是哈希表?
简单理解:
哈希表是一种通过“映射关系”快速存储和查询数据的数据结构。
普通列表查询:
例如:
有100万个测试问题:
问题1
问题2
问题3
......
问题1000000
现在需要判断:
“这个问题之前有没有测试过?”
如果逐个比较:
需要遍历大量数据。
数据越多:
效率越低。
哈希表的思路:
给每个数据生成一个唯一标识。
例如:
用户输入:
如何申请退款?
经过Hash计算:
得到:
a83fd92x
存储:
a83fd92x
↓
如何申请退款?
下一次测试:
同样的问题再次出现。
系统直接计算Hash值。
如果存在:
说明已经测试过。
查询效率大幅提升。
二、大模型测试场景1:测试数据去重
这是LLM测试中非常常见的问题。
假设企业测试自己的智能客服模型。
准备了:
100万个测试问题。
来源包括:
- 用户历史聊天记录
- 工单数据
- FAQ知识库
- 人工设计测试案例
但是这些数据里面:
可能存在大量重复。
例如:
用户:
“怎么退款?”
“我要退款怎么办?”
“退款流程是什么?”
语义接近。
如果全部测试:
不仅浪费模型调用成本。
还会影响测试效率。
测试平台可以利用Hash思想:
第一步:
对输入数据生成唯一标识。
第二步:
检查是否已经存在。
第三步:
过滤重复测试。
例如:
question_hash = hash(question)
if question_hash not in test_pool:
add(question)
这样可以减少:
- GPU调用成本
- API调用费用
- 测试执行时间
三、大模型评测为什么需要Hash?
很多团队做LLM评测时,会保存大量数据:
一次模型测试可能产生:
输入:
Prompt
↓
模型:
Response
↓
评测:
Score
↓
人工反馈
例如:
{
"prompt":"解释什么是TCP",
"answer":"......",
"score":9
}
随着模型不断迭代:
每天可能产生几十万条评测记录。
问题来了:
如何判断:
模型升级后:
哪些问题重新测试?
哪些结果发生变化?
可以通过Hash建立版本关联。
例如:
Prompt:
什么是HTTP协议?
生成:
prompt_hash=xxxxx
模型V1:
输出结果A
模型V2:
输出结果B
系统发现:
同一个Hash对应不同结果。
说明:
模型行为发生变化。
测试人员重点分析。
四、大模型幻觉测试中的Hash应用
大模型最大的风险之一:
幻觉(Hallucination)
例如:
用户问:
“某公司2028年的财务数据是多少?”
模型可能:
生成一个不存在的数据。
测试系统需要大量验证:
哪些问题:
- 稳定回答
- 错误回答
- 随机回答
可以建立:
问题库Hash索引。
例如:
高风险问题:
金融
医疗
法律
安全
每个问题建立:
唯一ID。
模型每次测试:
快速定位:
历史表现。
发现:
以前正确。
现在错误。
触发质量告警。
五、AI Agent测试中的Hash应用
未来AI测试不仅测试模型回答。
还要测试Agent行为。
例如:
一个智能助手:
任务:
“帮我查询订单并退款”
执行:
调用订单接口
↓
验证用户身份
↓
调用退款接口
测试过程中:
可能产生大量执行轨迹。
例如:
Agent Path:
A-B-C-D
A-B-E-D
A-C-D
如何判断:
是否出现重复路径?
是否覆盖新的行为?
可以利用Hash:
给每条执行路径生成唯一标识。
例如:
Path Hash:
8af32xx
如果出现:
相同路径。
说明:
Agent重复执行。
如果出现:
新Hash。
说明:
发现新行为。
六、为什么测试工程师需要理解哈希?
很多测试工程师认为:
“哈希是开发的事情。”
实际上:
高级测试开发岗位越来越需要理解底层技术。
因为未来测试系统面对的问题:
不是:
10个接口。
100条用例。
而是:
百万级测试数据。
千万级模型调用。
复杂AI行为。
没有数据处理能力:
很难建设智能测试平台。
七、从自动化测试到AI质量工程,能力发生变化
传统测试开发:
重点:
- 自动化框架
- 接口测试
- CI/CD
AI质量工程:
增加:
- 数据处理
- 模型评测
- Prompt测试
- Agent测试
- AI安全测试
其中:
数据结构和算法思想,
成为连接两者的重要能力。
八、测试工程师应该如何学习哈希?
不需要像算法工程师一样研究复杂实现。
重点理解:
三个能力:
1. 去重
解决:
重复测试数据。
2. 快速查询
解决:
海量测试记录定位。
3. 唯一标识
解决:
模型版本变化分析。
掌握这些思想,
已经足够应用到AI测试场景。
结语
AI时代,测试工程师面对的最大变化:
不是工具变化。
而是测试对象变化。
以前:
测试代码。
现在:
测试模型。
未来:
测试智能系统。
而智能系统背后:
离不开大量数据管理和分析。
哈希表只是一个基础数据结构。
但它体现了一种重要能力:
用工程方法管理复杂数据。
这也是测试工程师走向:
AI质量工程师
必须补齐的一项基础能力。
AI质量工程持续分享:
关注:
- 大模型测试
- LLM评测体系
- AI Agent质量保障
- 测试开发技术
- 软件质量工程实践
一起探索AI时代测试技术的新方向。