使用 pytest 为LLM应用添加回归测试
回归测试的必要性
基于 LLM 的 Chat 应用大量依赖了 Prompt Engineering,而用户的输入又千奇百怪,调整了 Prompt 模板,很可能会有意想不到的效果:满足了新需求,却破坏了旧功能。
因此,LLM应用比任何时候都需要回归测试,确保在迭代过程中,不破坏旧功能、不让已修复的bug复现。
而回归测试,当然是自动化执行效率才高。本文交分享如何使用 pytest 对 LLM 应用进行自动化的回归测试。
基于 LLM 的 Chat 应用大量依赖了 Prompt Engineering,而用户的输入又千奇百怪,调整了 Prompt 模板,很可能会有意想不到的效果:满足了新需求,却破坏了旧功能。
因此,LLM应用比任何时候都需要回归测试,确保在迭代过程中,不破坏旧功能、不让已修复的bug复现。
而回归测试,当然是自动化执行效率才高。本文交分享如何使用 pytest 对 LLM 应用进行自动化的回归测试。
本文将借助 RestAssured 工具,向大家介绍如何进行 API 测试,从而在团队中开启接口自动化之路。
本文的示例代码使用的是 Java 语言。尽管本文的首要读者是 Java 研发人员,但道理是相通的,其他语言的研发人员也能从中受益。
什么是 API 测试?简单来说,可以认为是针对 Controller 层的测试,但不是 Mock,而是会真实地处理请求,与数据库或外部服务进行交互。
为什么要做 API 测试呢?
Playwright 是微软于 2020 年发布的一款 E2E testing 工具,跟社区成熟的 Cypress 相比,稍显年轻。然而 Playwright 的主要优势有:
另外,Playwright 的安装没什么门槛,不像 Cypress 可能需要黑魔法。
写端对端测试代码的最大好处就是,把相关的用例变成可执行的代码,成为项目的资产;结合CI系统,可在后续研发维护过程中,将一部分测试过程自动化,减少重复的手工劳动,既保障质量,又提高效率。
谁来写呢?本文的目标读者是前端研发人员,因而相关测试代码是由前端同学去编写的。
文档齐全,生态好,对 JavaScript 友好,可简单上手。更多详见:why-cypress