订阅我们的每日和每周新闻通讯,获取有关行业领先人工智能报道的最新更新和独家内容。了解更多
在软件开发过程中,代码不断演变,需要持续测试以确保质量和可维护性。这就是回归测试的根源,它重新运行现有测试以确保修改后的代码按预期继续运行。
然而,回归测试可能很耗时且复杂,并且经常会被其他优先事项所忽略。
Qodo(前身为 CodiumAI)表示,它可以通过今天发布的全新全自动 AI 回归测试代理 Qodo Cover 来缓解围绕该过程的难题。其代理创建验证套件以确保软件应用程序的行为正常。这家成立 2 年半的初创公司在 AWS re:Invent 上宣布了其新工具,并在 AWS Unicorn Tank 比赛中入围决赛。
“我们正在快速接近一个临界点,届时绝大多数代码将由 AI 生成,从根本上改变软件的构建方式,”Qodo 首席执行官 Itamar Friedman 说。“至关重要的是,我们必须通过利用 AI 不仅用于代码生成,还用于维护和提高代码质量来跟上步伐。”
Qodo 在今年早些时候的 VentureBeat Transform 上解释说,它正在以渐进的方式处理 AI 代理——接管 Devin 等竞争对手,后者提供更端到端的套件。这家以色列初创公司提供许多小型代理,这些代理处理软件开发工作流程中的特定任务。
Qodo Cover 是其中最新的一款。这个全自动代理分析源代码并执行回归测试以验证它在整个生命周期中的变化。该平台确保每个测试都能成功运行、通过并增加其覆盖的代码量——并且只保留满足所有三个标准的测试。
为了证明其生成生产级测试的能力,Qodo Cover 全自动生成的拉取请求最近被接受到 Hugging Face 的 PyTorch Image Models 存储库中。拉取请求是软件开发中的一种质量控制手段,允许协作者在将更改集成到代码库之前提出并审查更改。这可以将不良代码和错误排除在主代码库之外,以确保质量和一致性。
Hugging Face 的接受验证了 Qodo 的产品,并将其暴露给这个流行的机器学习 (ML) 存储库中的 40,000 多个项目。
“Qodo Cover 代表着朝着自主软件开发迈出的重要一步,它确保每段代码,无论是人工编写还是 AI 编写,都经过适当的测试和可维护性,”Friedman 说。
Qodo Cover 基于 Qodo 于 5 月启动的一个开源项目。该项目基于 TestGen-LLM,这是 Meta 研究人员开发的一种工具,用于完全自动化测试覆盖率。为了克服大型语言模型 (LLM) 生成的测试所面临的挑战,研究人员着手回答以下具体问题:
- 测试是否能正确编译和运行?
- 测试是否增加了代码覆盖率?
Friedman 在一篇博文中写道,一旦这些问题得到验证,重要的是进行手动调查。这包括询问:
- 测试编写得如何?
- 它实际上增加了多少价值?
- 它是否满足任何其他要求?
用户向 Qodo Cover 提供了几个输入,包括:
- 要测试的代码的源文件
- 现有的测试套件
- 覆盖率报告
- 构建和运行套件的命令
- 代码覆盖率目标和要运行的最大迭代次数
- 其他上下文和提示选项
然后,Qodo Cover 以相同的方式生成更多测试,使用运行时环境验证它们(即它们是否构建并通过?),审查指标(例如增加的代码覆盖率),并更新现有的测试套件和覆盖率报告。重复此过程,直到代码达到覆盖率阈值或最大迭代次数。
Qodo 的代理可以部署为一个全面的工具,分析完整的存储库以识别差距和不规则之处,并扩展测试套件。或者,它可以作为 GitHub 操作建立,自动创建拉取请求以建议对新更改的代码进行测试。Qodo 強调,开发人员可以完全控制,并能够审查和选择性地接受测试。每个拉取请求还包括详细的覆盖率进度报告。
Qodo Cover 支持所有流行的 AI 模型,包括 GPT-4o 和 Claude 3.5 Sonnet。该公司表示,它在十多种编程语言(包括 JavaScript、TypeScript、C++、C#、Ruby、Go 和 Rust)中提供了高质量的结果。它旨在与 Qodo Merge 集成,Qodo Merge 审查和处理拉取请求,以及编码工具 Qodo Gen。