Generative AI for Test Driven Development: Preliminary Results

2024年05月17日
  • 简介
    测试驱动开发(TDD)是极限编程的主要实践之一,它通过增量测试和重构来触发代码开发。由于TDD需要开发更多的代码和经验丰富的开发人员,因此在工业界的应用有限。生成式人工智能(GenAI)可以减少TDD所带来的额外工作量。在这项工作中,我们介绍了一种采用GenAI自动化TDD的方法,可以采用协作交互模式或完全自动化模式。在协作交互模式中,开发人员在每个迭代过程中创建测试并监督AI生成,而在完全自动化模式中,开发人员只需在迭代结束时监督AI生成。我们使用ChatGPT进行了一项探索性实验,比较了交互模式和非AI TDD在测试和代码质量以及开发速度方面的差异。总的来说,我们发现,在我们的实验和设置中,GenAI可以有效地用于TDD,但需要监督所生成代码的质量。在某些情况下,它甚至可能误导非专业开发人员,并提出仅仅为了查询而提出的解决方案。
  • 图表
  • 解决问题
    论文探讨如何利用GenAI自动化TDD,以减少TDD对开发者的额外工作量,并提高测试和代码质量。
  • 关键思路
    利用GenAI实现TDD的自动化,可以在交互模式或完全自动化模式下使用。需要开发者对生成的代码质量进行监督。
  • 其它亮点
    论文通过使用ChatGPT进行了实验,比较了交互模式和非AI TDD在测试和代码质量以及开发速度方面的差异。研究发现,GenAI可以有效地用于TDD,但需要对生成的代码质量进行监督。
  • 相关研究
    在最近的相关研究中,也有一些关于利用AI自动化TDD的论文,如“Automated Test Generation for Android: Are We There Yet?”和“DeepRoad: GAN-based Metamorphic Testing and Input Validation Framework for Autonomous Driving Systems”。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论