
大模型在测试领域的探索
2024年3月4日大约 3 分钟
一些看法
大模型已抢占各类互联网大会、社区博客的头条,测试领域也已经有非常多的讨论。
我认为现处于探索>>实际落地的阶段,主要因为以下几个原因:
- 无法控制大模型的"涌现"能力:主流的技术路线 LangChain + RAG + Agent 可以快速上手并看到一些"效果"。但是,目前只看到了 demo 级别的成功,因为预期结果不够稳定 甚至无法预知,进而无法大规模落地。
- RAG 的数据质量:RAG 其实与大模型无关,主要是向量数据库的 topk 问题,他很大程度取决于训练数据结构、分词策略、embedding model、re-rank 策略等等,需要大量的实践经验。
- 代码生成有点鸡肋:代码生成的难点在于输入参数与业务的融合以及断言逻辑,与传统的单测/接口用例生成效果相比,大模型生成并没有很大的提升。各大厂商的 IDE 助手并没有很惊艳的感觉。
- GPT4 比开源模型更加强大:由于数据安全的考虑,在方案落地时需要选用开源本地大模型,避免数据泄露。而诸多的本地大模型的体验效果比 GPT4 还是会有较大差距(Qwen2 据说很不错,还没有试用)
- 大模型微调需要消耗大量的资源,以及有较高的技术门槛。
即便如此,我认为还是很有必要学习了解大模型的能力以及在测试领域的实践探索:
- 大模型也在发展迭代,会有越来越多令人惊喜的能力
- 大模型的出现不会彻底废弃现有的平台,更多情况可能是对现有能力的补足和加强,如何结合也许是一个思路
- 如果可以深入研究大模型,而不仅仅是做一个 Api boy,大模型的潜力会被更多的挖掘
有用的工具
大模型:ChatGpt | ChatGPT API | Ollama | HuggingFace
研发/测试场景: Copilot | Code-Review-GPT-Gitlab | Test-Agent | chatgpt-on-wechat| skyvern
评测: 司南
测试领域的实践
GPT4V 在 UI 自动化测试的应用
受 京东、GPT-4V-Act的一些启发,和前端完成了一些改造,以便于更好地融入我们已有的 UI 自动化中,用作定位方式之一。
主要流程
Step1. SoM/ui-automation 标记
通过 web/windows 端不同的元素识别能力,标识出页面元素
Step2. GPT4V 识别,返回下一步指令
{
"action":
}
Step3. 调用 Selenium/Ui-automation 完成具体操作
单元测试生成
工具
- 传统工具:squaretest
- AI 工具:Copilot、百度 Comate、腾讯、阿里、科大讯飞星火、
使用对比
通用能力
- JavaBean Mock
- 生成标准格式的单测单码
通用问题:
- 接口入参构造粗糙
- 断言有效性
解决思路:
- Text2SQL + Agent,通过多智能体不断优化参数
- Schema 校验
AI 问题:
- 无法自动生成文件(不额外借助其他 Agent 工具情况下),操作路径较复杂
- 由于 temporate 的问题,随机性较强
- 工具目前仅支持单方法生成,squaretest 支持文件级别的生成
需求生成测试用例
接口自动化生成
Swagger + RAG