[论文解读] ChatGPT: A Study on its Utility for Ubiquitous Software Engineering Tasks
本文在 15 项软件工程任务上评估 ChatGPT,在许多任务上表现可信,但在其他任务上存在局限,与人类或最先进的基线相比。
ChatGPT (Chat Generative Pre-trained Transformer) is a chatbot launched by OpenAI on November 30, 2022. OpenAI's GPT-3 family of large language models serve as the foundation for ChatGPT. ChatGPT is fine-tuned with both supervised and reinforcement learning techniques and has received widespread attention for its articulate responses across diverse domains of knowledge. In this study, we explore how ChatGPT can be used to help with common software engineering tasks. Many of the ubiquitous tasks covering the breadth of software engineering such as ambiguity resolution in software requirements, method name suggestion, test case prioritization, code review, log summarization can potentially be performed using ChatGPT. In this study, we explore fifteen common software engineering tasks using ChatGPT. We juxtapose and analyze ChatGPT's answers with the respective state of the art outputs (where available) and/or human expert ground truth. Our experiments suggest that for many tasks, ChatGPT does perform credibly and the response from it is detailed and often better than the human expert output or the state of the art output. However, for a few other tasks, ChatGPT in its present form provides incorrect answers and hence is not suited for such tasks.
研究动机与目标
- 探索 ChatGPT 在涵盖开发、质量保证和维护等常见软件工程任务方面的有用性。
- 将 ChatGPT 的输出与人类专家基线和可用的最先进工具进行比较。
- 识别 ChatGPT 表现良好的任务与提供不正确或次优结果的任务。
提出的方法
- 与 ChatGPT(版本来自 2022 年 12 月 15 日和 2023 年 1 月 9 日)在每个任务最多 10 个样本上交互。
- 使用公开可用的数据集和现有的最先进工具或人类黄金集进行比较。
- 将准确性评估为输出与基线真值或最终开发者输出相符的比例。
- 提供定性观察和示例对话,以说明优点和弱点。
- 分析包括代码审查、日志摘要、方法名建议等在内的多样化任务。
实验结果
研究问题
- RQ1与最先进的工具或人类专家相比,ChatGPT 能否生成准确的方法名和简短的代码摘要?
- RQ2与基线相比,ChatGPT 在日志摘要、提交信息生成和重复的错误报告检测方面的表现如何?
- RQ3对于合并冲突解决、指代消解、代码审查、类型推断和数据框驱动的代码生成,ChatGPT 的可靠性如何?
- RQ4在漏洞检测、重构和测试 oracle 生成方面,ChatGPT 的局限性是什么?
主要发现
- ChatGPT 在 10 个方法中正确提出了 9 个方法名,通常比现有技术提供更具信息性的名称。
- ChatGPT 在所有 10 条日志的摘要上都比现有技术产生更好的日志摘要。
- ChatGPT 在 10 种情形中产生了正确的提交信息,其中三种情形有些多余内容。
- ChatGPT 展示了强大的指代消解性能,在所有 10 个需求中正确解决了前提。
- ChatGPT 匹配了 10 个基线测试 oracle 中的 6 个,并对断言给出合理解释。
- ChatGPT 在代码审查中识别了 10 项中的 4 项漏洞,并在一些低级别的 C 代码场景中遇到困难。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。