arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2406.07765cs.SEcs.AIcs.CY
收藏

在实践中使用基于AI的编码助手:现状、认知与前进方向

Using AI-Based Coding Assistants in Practice: State of Affairs, Perceptions, and Ways Forward

JetBrains Research(JetBrains研究院);University of California, Irvine(加利福尼亚大学欧文分校)

Agnia Sergeyuk, Yaroslav Golubev, Timofey Bryksin, Iftekhar Ahmed

AI总结:

本研究通过481名程序员的调查,分析了AI编码助手在软件开发各阶段的使用现状、原因及改进方向,发现测试和自然语言工件编写最受委托,信任和项目上下文是关键障碍。

摘要:

背景。过去几年见证了代码AI助手的出现——即软件工程中多用途的基于AI的辅助工具。随着它们在软件开发的各个方面变得无处不在,理解它们的使用模式变得至关重要。目标。我们旨在更好地理解开发者具体如何使用AI助手,为什么他们在开发工作流程的某些部分不使用它们,以及未来需要改进什么。方法。在这项工作中,我们进行了一项大规模调查,旨在了解AI助手的使用方式,重点关注特定的软件开发活动和阶段。我们收集了481名程序员对五个广泛活动的意见:(a)实现新功能,(b)编写测试,(c)缺陷分诊,(d)重构,以及(e)编写自然语言工件,以及它们的各个阶段。结果。我们的结果提供了对AI助手使用不同阶段的新颖比较,既全面又详细。它突出了开发者觉得不太愉快并希望委托给AI助手的特定活动,例如编写测试和自然语言工件。我们还确定了使用AI助手的更细粒度阶段,例如生成测试和生成文档字符串,以及工作流程中较少研究的部分,例如生成测试数据。在不使用助手的原因中,有一般性方面,如信任和公司政策,以及更具体的问题,如缺乏项目规模上下文,这可以成为未来研究的重点。结论。所提供的分析突出了开发者希望委托且已经流行使用AI助手的软件开发阶段,这可以成为旨在立即帮助开发者的功能的好焦点。不使用AI助手的主要原因可以作为未来工作的指南。

英文摘要:

Context. The last several years saw the emergence of AI assistants for code - multi-purpose AI-based helpers in software engineering. As they become omnipresent in all aspects of software development, it becomes critical to understand their usage patterns. Objective. We aim to better understand how specifically developers are using AI assistants, why they are not using them in certain parts of their development workflow, and what needs to be improved in the future. Methods. In this work, we carried out a large-scale survey aimed at how AI assistants are used, focusing on specific software development activities and stages. We collected opinions of 481 programmers on five broad activities: (a) implementing new features, (b) writing tests, (c) bug triaging, (d) refactoring, and (e) writing natural-language artifacts, as well as their individual stages. Results. Our results provide a novel comparison of different stages where AI assistants are used that is both comprehensive and detailed. It highlights specific activities that developers find less enjoyable and want to delegate to an AI assistant, e.g., writing tests and natural-language artifacts. We also determine more granular stages where AI assistants are used, such as generating tests and generating docstrings, as well as less studied parts of the workflow, such as generating test data. Among the reasons for not using assistants, there are general aspects like trust and company policies, as well as more concrete issues like the lack of project-size context, which can be the focus of the future research. Conclusion. The provided analysis highlights stages of software development that developers want to delegate and that are already popular for using AI assistants, which can be a good focus for features aimed to help developers right now. The main reasons for not using AI assistants can serve as a guideline for future work.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑