[論文レビュー] On The Effect Of Code Review On Code Smells
本研究では、7つのJavaオープンソースプロジェクトからの21,879件のコードレビューを用いて、コードレビューがコードスモールの深刻度に与える影響を調査している。アクティブで参加的なコードレビューは、コードスモールの深刻度を顕著に低減することが分かったが、これは通常、関連のないコード変更の副産物であり、意図的な設計改善の結果ではないことが判明した。
Code smells are symptoms of poor design quality. Since code review is a process that also aims at improving code quality, we investigate whether and how code review influences the severity of code smells. In this study, we analyze more than 21,000 code reviews belonging to seven Java open-source projects; we find that active and participated code reviews have a significant influence on the likelihood of reducing the severity of code smells. This result seems to confirm the expectations around code review's influence on code quality. However, by manually investigating 365 cases in which the severity of a code smell in a file was reduced with a review, we found that-in 95% of the cases-the reduction was a side effect of changes that reviewers requested on matters unrelated to code smells. Data and materials [https://doi.org/10.5281/zenodo.3588501].
研究の動機と目的
- ソフトウェアシステムにおけるコードスモールの深刻度に、コードレビューが影響を与えるかどうか、そしてどのように影響を与えるかを調査すること。
- コードレビュー活動(例:参加者数、コメント数)がコードスモールの深刻度低下と相関するかどうかを特定すること。
- 特定のコードスモールが他のものと比較して、コードレビュー中に深刻度が低減されやすいかどうかを理解すること。
- コードスモールの深刻度低下の背後にある根本的原因を分析し、それが意図的な設計討論の結果か、それとも無関係な変更の副産物かを評価すること。
- 開発者による認識のギャップやコードレビューツールのサポートの欠如を特定し、今後のツール開発や実践の改善に役立てるための情報提供を行うこと。
提案手法
- バージョン管理およびイシュートラッキングデータを用いて、7つのオープンソースJavaプロジェクトから21,879件のコードレビューを収集・分析した。
- 6つの代表的なコードスモールを用いて、各コードレビューの前後におけるファイル単位でのコードスモール深刻度を測定した。
- コードレビュー活動(例:レビュー担当者数、コメント数)とコードスモール深刻度の変化の関係を評価するために、統計解析を実施した。
- コードスモール深刻度が低下した365件のケースを手動で検査し、低下の根本原因を分類した。
- 集計レベルの交絡要因を避けるために、細かく分類されたファイル単位の比較を用いて、コードレビューがコードスモール深刻度に与える影響を隔離した。
- 深刻度低下の背後にある原因を分類し、意図的な設計改善と付随的な変更の違いを明確にした。
実験結果
リサーチクエスチョン
- RQ1アクティブで参加的なコードレビューは、レビュー対象ファイルのコードスモール深刻度をどの程度低減するか?
- RQ2どの特定のコードスモールがコードレビュー中に深刻度が低減されやすいか?
- RQ3コードスモール深刻度の低減は、主に設計品質に関する意図的な議論の結果であるか、それとも無関係な変更の付随的副産物であるか?
- RQ4コードレビューの特徴(例:レビュー担当者数、コメント数)は、コードスモール深刻度の変化とどの程度相関するか?
- RQ5コードレビュー中に観察されたコードスモール深刻度低下の主な原因は何か?
主な発見
- アクティブで参加的なコードレビューは、レビュー対象ファイルのコードスモール深刻度低減の可能性を顕著に高める。
- コードスモール深刻度が低下した95%のケースにおいて、低下はコードスモールとは関係のない理由で要求された変更の副産物であった。
- 本研究では、先行研究で報告されたコードスモールの深刻度の「重要度」(重要視度)と、コードレビュー中にその深刻度が低減される可能性との間に強い相関は見いだせなかった。
- コードスモール深刻度の低下は、設計品質に関する直接的な議論によって引き起こされておらず、開発者の設計品質の認識不足や優先順位の低さを示している。
- 結果から、現在のコードレビューツールはコードスモールを十分に強調していないことが判明し、意図的なリファクタリングの機会を逃している可能性がある。
- コードスモールの改善のわずかな割合しか、明確な設計議論の結果として得られていないことから、コードレビューワークフローにおけるより良いツール化と可視化の必要性が浮き彫りになった。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。