在软件开发过程中,代码不断演变,需要不断测试其质量和可维护性。这是回归测试的根源,在回归测试中,现有测试会重新运行,以确保修改后的代码继续按预期运行。
然而,回归测试可能非常耗时且复杂,并且经常会被其他优先事项所忽视。
Qodo(前身为 CodiumAI)表示,随着今天发布其全新的完全自主 AI 回归测试代理Qodo Cover ,它可以缓解这一过程中的麻烦。其代理创建验证套件,以确保软件应用程序本质上正常运行。这家成立两年半的初创公司在AWS re:Invent上宣布了其新工具,并在 AWS Unicorn Tank 竞赛中入围决赛。
Qodo 首席执行官 Itamar Friedman表示:“我们正在朝着这样一个方向发展:AI 不仅仅是编写代码——它通过证明代码运行正确来帮助解决大多数开发人员的工作量。”
支持软件开发的下一次重大飞跃
Qodo今年早些时候解释说,它正在以渐进的方式接近 AI 代理——与提供更多端到端套件的 Devin等竞争对手竞争。这家以色列初创公司提供许多小型代理,用于处理软件开发工作流程中的特定任务。
Qodo Cover 是其中最新的一款。这款完全自主的代理会分析源代码并执行回归测试,以验证其在整个生命周期中的变化。该平台确保每次测试都能成功运行、通过并增加其覆盖的代码量 — 并且只保留满足所有三个标准的代码。
据估计,企业开发人员每天实际编写代码的时间仅为一小时;其余时间则用于测试和审查等关键任务,弗里德曼指出。然而,“许多公司都在急于使用人工智能生成代码,专注于这一小时,而忽略了其他方面。”
他指出,传统的测试方法根本无法扩展,这可能会阻碍软件开发的下一次飞跃,届时人工智能可以可靠地生成 80% 或更多的高质量代码。“就像几十年前硬件验证彻底改变了芯片制造一样,我们现在在软件方面也处于类似的转折点。当 25% 或更多的代码是由人工智能生成的时,我们需要新的范例来确保可靠性。”
拥抱脸批准
Qodo Cover 完全自主生成的拉取请求最近被 Hugging Face 的PyTorch 图像模型存储库接受,这证明了其生成生产质量测试的能力。拉取请求是软件开发中的一种质量控制手段,允许协作者在将更改集成到代码库之前提出和审查更改。这可以将不良代码和错误排除在主代码库之外,以确保质量和一致性。
Hugging Face 的接受证明了 Qodo 产品的有效性,并将其展示给流行的机器学习 (ML) 存储库中的 40,000 多个项目。
“贡献被大型开源项目接受,表明人工智能代理在理解复杂代码库和保持高质量标准方面开始达到专业开发人员的水平,”弗里德曼说。“这让我们看到了软件开发将如何发展。”
基于元研究
Qodo Cover 建立在 Qodo 于 5 月启动的一个开源项目之上。该项目基于TestGen-LLM,这是 Meta 研究人员开发的一款工具,可完全自动化测试覆盖率。为了克服大型语言模型 (LLM) 生成的测试所带来的挑战,研究人员着手回答具体问题:
- 测试是否正确编译并运行?
- 测试是否会增加代码覆盖率?
弗里德曼在一篇博客文章中写道,一旦这些问题得到验证,就必须进行人工调查。这包括询问:
- 测试写得怎么样?
- 它实际上增加了多少价值?
- 它是否满足任何其他要求?
用户向 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 Gen 集成。
原创文章,作者:王 浩然,如若转载,请注明出处:https://www.dian8dian.com/qodo-de-wan-quan-zi-zhu-dai-li-jie-jue-le-hui-gui-ce-shi-de