[論文レビュー] Comparing Software Developers with ChatGPT: An Empirical Investigation
本研究は、LeetCode 上で ChatGPT が生成したコードを、経験豊富なプログラマーおよび初心者プログラマーのコードと経験的に比較し、パフォーマンスとメモリ効率に焦点を当て、人間とAI の協働によるコーディング作業の評価を行う。
The advent of automation in particular Software Engineering (SE) tasks has transitioned from theory to reality. Numerous scholarly articles have documented the successful application of Artificial Intelligence to address issues in areas such as project management, modeling, testing, and development. A recent innovation is the introduction of ChatGPT, an ML-infused chatbot, touted as a resource proficient in generating programming codes and formulating software testing strategies for developers and testers respectively. Although there is speculation that AI-based computation can increase productivity and even substitute software engineers in software development, there is currently a lack of empirical evidence to verify this. Moreover, despite the primary focus on enhancing the accuracy of AI systems, non-functional requirements including energy efficiency, vulnerability, fairness (i.e., human bias), and safety frequently receive insufficient attention. This paper posits that a comprehensive comparison of software engineers and AI-based solutions, considering various evaluation criteria, is pivotal in fostering human-machine collaboration, enhancing the reliability of AI-based methods, and understanding task suitability for humans or AI. Furthermore, it facilitates the effective implementation of cooperative work structures and human-in-the-loop processes. This paper conducts an empirical investigation, contrasting the performance of software engineers and AI systems, like ChatGPT, across different evaluation metrics. The empirical study includes a case of assessing ChatGPT-generated code versus code produced by developers and uploaded in Leetcode.
研究の動機と目的
- 非機能的基準全般にわたり、人間の開発者とともにAIベースのコーディングツールを評価する必要性を喚起する。
- 難易度の異なるコーディング問題において ChatGPT が人間のプログラマーより優れているかを検証する。
- 性能とメモリ効率、およびヒューマンインザループ型ソフトウェア工学タスクにおける潜在的なタスク割り当てを評価する。
提案手法
- 最近の LeetCode コンテストの易しい・中程度・難しい問題に対して ChatGPT-4 を用いて C++ 解を生成する。
- LeetCode の指標で、ChatGPT の解を経験豊富なプログラマーと初心者の解と比較する。
- 統計的検定(t統計量、0.01 の有意性)を適用して性能とメモリ効率の差を評価する。
- 生成された解の時間計算量と空間計算量を分析し、問題間のばらつきを観察する。
- データセットの出所や以前の解の再利用の可能性を含む妥当性への脅威について論じる。
実験結果
リサーチクエスチョン
- RQ1RQ1: ChatGPT は易しい/中程度/難しい問題で、経験豊富なコンテストプログラマーと比較して実行時間の性能を向上させるか。
- RQ2RQ2: ChatGPT は易しい/中程度/難しい問題で、経験豊富なコンテストプログラマーと比較してメモリ効率を向上させるか。
- RQ3RQ3: ChatGPT は易しい/中程度/難しい問題で、初心者のコンテストプログラマーと比較して性能を向上させるか。
- RQ4RQ4: ChatGPT は易しい/中程度/難しい問題で、初心者のプログラマーと比較してメモリ効率を向上させるか。
主な発見
- 易および中程度の問題において、ChatGPT の解は初心者プログラマーを上回る。
- 中程度の問題で ChatGPT の解は初心者よりメモリ効率が優れている。
- パフォーマンス面で ChatGPT が経験豊富なコンテストプログラマーを上回る強いエビデンスはない。
- 難問では、ChatGPT は経験豊富なプログラマーを確実に上回らず、いくつかの問題は全グループで解けなかった。
- 問題を横断して、ChatGPT は実行時間とメモリの点で過去の解に対して相対的に高い位置を占めたが、問題特性やプラットフォーム評価に起因するばらつきがある。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。