コードレビュータスク分類法とは、コードレビュー研究が何を測定しているのかを整理するために LLM 以前と LLM 時代におけるコードレビューのベンチマークと評価手法のサーベイ で提案された多階層の分類である。 この分類法は研究を 5 つの上位ドメイン — レビューの優先順位付け/選択(Review Prioritization/Selection)、 変更の理解と分析(Change Understanding and Analysis)、ピアレビュー(Peer Review)、レビューの評価と分析 (Review Assessment and Analysis)、コードの改善(Code Refinement)— に振り分け、さらにそれらを 18 の名前付き サブタスクに細分する。5 つのドメインはコードレビューのプロセスそのものの段階、すなわちどの変更がレビューに値するかを 決めるところから、フィードバックを受けてコードを修正するところまでに対応づけられている。そのため、あるベンチマークが 分類法のどこに位置するかによって、それがレビュアーの仕事のどの部分を試しているのかが示される。

用法

この分類法はまず、あるデータセットが実際に何を評価しているのかを問うために用いられ、またどのデータセットも カバーしていないレビュープロセスの部分を可視化するために用いられる。

5 つのドメインは、それぞれが消費する入力と生成する出力によって定義される。レビューの優先順位付け/選択は、 どの変更をどの順序でレビューすべきかを決めるもので、パッチの内容、開発者とレビュアーの履歴、テストのシグナルに基づく 予測またはランキングとして定式化される。そのサブタスクはレビューの優先順位付けと変更品質の予測である。変更の理解と 分析は、レビュアーが変更の意図・影響・構造を解釈するのを支援するもので、関連する変更の特定、影響分析、変更の分解、 可視化を含む。ピアレビューは、人間のレビュアー自身の判断を支援または模倣するタスクを扱い、問題箇所の特定、 レビューコメントの生成、問題のラベル付けと分類、リファクタリングの識別、欠陥のある変更の予測、セキュリティ上の問題の 検出を含む。レビューの評価と分析は検討の対象をレビューそのものに向けるもので、レビュー品質の評価、コメントと コードの整合性、レビューの要約、感情分析や有害性分析を含む。コードの改善はレビュー後の修正段階を扱い、 コードの修正とコードのリファクタリングに分かれる。

調査対象の文献全体に適用されたとき、この研究におけるこの枠組みの主な用途は比較である。大規模言語モデルの登場以前と 以後のデータセットに同じサブタスクのラベルを適用することで、分野が測定する対象の変化を数えられるようにしている。 その読み方に基づいて、情報源は、LLM 時代のデータセットのうちピアレビューが 60% 近くを占めるまでに増えた一方で、 変更の理解と分析は 14 のデータセットから 1 つに減り、変更の分解と影響分析は完全に姿を消したと報告している。

同じ研究は、この分類法を逆方向に — まだ存在しないベンチマークの仕様として — 用いることも提案している。 モデルのコード修正能力を単一の総合値として測定するのではなく、サブタスクごとにデータセットを整備することで、 リファクタリング、ドキュメントと可読性の改善、正しさの確保、性能の最適化といった能力を個別に採点できるようにすることを 提案している。

関連用語