最新新闻
为您推荐

强化学习成为软件开发中单元测试的变革者

作者Brian KoomeBrian Koome 3 分钟阅读
AI
  • 大型语言模型(LLM)在生成准确的单元测试时存在“幻觉”问题。
  • 强化学习作为一种试错方法,正成为自动化编写单元测试的更优解决方案。
  • Diffblue Cover 利用强化学习自主创建单元测试,在复杂测试任务中表现优于 LLM。

在软件开发领域,精确和准确性至关重要。编写健壮的单元测试是确保软件应用程序可靠性和功能性的关键步骤。虽然像LLMs这样的大型语言模型(如ChatGPT)以其语言实力让人工智能社区惊叹,但在复杂的单元测试任务中,一个新的竞争者作为更准确且更具成本效益的解决方案脱颖而出:强化学习。

大型语言模型幻觉的挑战

大型语言模型确实彻底改变了自然语言处理,提供了高度流畅且上下文相关的响应。然而,它们并非没有局限性。困扰大型语言模型的关键问题之一是幻觉现象,即它们生成的文本虽然在语法上正确且语义上合理,但最终却是错误或无意义的。这一局限性引起了专家们的担忧。

强化学习与大型语言模型

关于强化学习与大型语言模型在解决单元测试挑战方面的有效性的争论一直在进行。一些专家,包括OpenAI的伊利亚·苏茨克弗,认为强化学习与人类反馈相结合,有可能消除大型语言模型的幻觉。然而,其他人,如Meta的杨立昆(Yann LeCun)和前谷歌的杰弗里·辛顿(Geoff Hinton),则认为大型语言模型的根本缺陷使它们不太适合这项任务。

单元测试是软件开发的关键方面,确保软件应用程序的各个组件按预期运行。它不仅保证了代码的准确性,还节省了时间并提高了生产力。虽然大型语言模型可以建议用于测试的代码片段,但它们通常优先考虑泛化而非准确性,留给开发人员去验证生成代码的有效性。

GitHub的Copilot由OpenAI的GPT-3衍生产品提供支持,提供单元测试的代码建议,但不明确生成单元测试。它为开发人员提供用于测试各种场景的代码片段,作为编写全面单元测试的有价值起点。然而,Copilot不能替代全面的测试策略,因为人类监督仍然必不可少。

介绍TiCoder

为了解决单元测试的挑战,来自微软研究院、宾夕法尼亚大学和加利福尼亚大学圣地亚哥分校的研究人员开发了TiCoder(测试驱动交互式编码器)。这款创新工具利用自然语言处理和机器学习算法来协助开发人员生成单元测试。

TiCoder通过提问与开发人员互动,以完善其对开发人员意图的理解。然后,它根据代码的上下文、语法和语言提供建议和自动完成选项。此外,TiCoder生成测试用例并建议断言,从而促进单元测试过程。

Copilot和TiCoder以及其他基于大型语言模型的工具都加速了单元测试的创建。然而,它们作为人类编码者的AI助手,必须验证和完善他们的工作。这些工具提高了生产力,但并没有取代软件开发过程中的人类专业知识。

最近离开谷歌的AI知名人物杰弗里·辛顿(Geoffrey Hinton)强调通过试错学习的重要性。他将此与个人学习打篮球等运动的方式相提并论——通过练习和实验。强化学习是一种强大的人工智能技术,与这一概念相符,并在游戏-playing等任务中表现出卓越的性能。

Diffblue Cover:强化学习的先驱

强化学习在行动中的一个显著例子是Diffblue Cover。这款创新产品采用强化学习来自主生成可执行的单元测试,无需人工干预。它有可能大规模自动化复杂且容易出错的测试任务。

Diffblue Cover的方法涉及搜索庞大的可能测试方法空间,为每种方法自动编写测试代码,并根据各种标准(包括测试覆盖率和编码风格)选择最合适的测试。这种人工智能驱动的工具可以在几秒钟内为每种方法创建测试,并在一到两分钟内为代码单元提供最佳测试。

Diffblue Cover的方法类似于AlphaGo,即DeepMind用于玩围棋的系统。这两个系统都在庞大的搜索空间中标识关键区域,并采用强化学习来做出明智的决策。在Diffblue Cover的情况下,这涉及生成单元测试方法并通过系统化过程选择最有效的测试。

大型语言模型的局限性

在自动化为复杂程序编写数千个单元测试等任务中,强化学习优于大型语言模型。尽管大型语言模型具有语言实力,但它们缺乏在如此规模下进行有效人类监督和纠正的能力。增加大型语言模型的复杂性并不能解决这一根本问题。

虽然像ChatGPT这样的大型语言模型因其流畅性和知识而受到关注,但它们可能不是软件开发中单元测试等精确任务的理想选择。强化学习已成为更准确且更具成本效益的解决方案,展示了其彻底改变该领域的潜力。 

随着对软件可靠性需求的不断增长,将强化学习整合到测试过程中可能标志着软件开发领域的一次重大进步。

不要只是阅读加密货币新闻,要真正理解它。订阅我们的通讯。 免费。

分享本文

免责声明。 本文提供的信息不构成交易建议。 Cryptopolitan.com 对于基于本页信息进行的任何投资,我们不承担任何责任。我们强烈建议在进行任何投资决策之前,进行独立研究或咨询合格的专业人士。

Brian Koome

Brian Koome

Brian Koome 在区块链和加密货币报道领域拥有超过七年的经验,自 2017 年起便活跃于该行业。他曾为多家领先媒体撰稿,包括 BlockToday.com。此外,他在加入 Cryptopolitan 担任全职作家之前,还为 BitDegree.org 开发了以太坊入门课程。Brian 专注于撰写常青指南(EGs)、深度报道、访谈以及价格分析。他对 DeFi、区块链创新及新兴加密项目的关注深受读者喜爱。

更多新闻…