自動化されたAIコードレビューの影響
コードレビューは、開発プロセスの最も重要な側面の一つです。コードレビューは、コードをQAチームに渡す前の段階で、不具合を早期に発見するのに役立ちます。コードレビューは、開発者とその作業において有益であることに変わりはありませんが、その実施方法は過去10年間で大きく変わりました。以前は、数人の開発者がミーティングをスケジュールして、1時間ほど実装について議論し、フィードバックに基づき必要に応じてコードを変更していました。その後、プルリクエストによるコードレビューに移行し、大勢の開発者がバージョンコントロールシステムを使ってコードをレビューし、承認を得て変更点をメインブランチにマージしていました。
そして今、コードレビューの実施方法に新たなトレンドが生まれています。それは、人工知能(AI)の活用です。AIがコードレビューにどのような影響を与えているかを理解するために、まず現在、人間によるコードレビューにはどのような利点と問題点があるのかを紹介します。
人によるコードレビューの現状
コードレビューが不具合を早期に発見し、時間、コスト、労力を節約するのに役立つことはすでに知られています。しかし、人によるコードレビューにはどのような利点があるのでしょうか。
まず第一に、開発チームがあなたのコーディングスタイルを知ることができ、透明性を高めることができます。これは、信頼性を高め、新しいアプローチを学び、コーディング標準に慣れるための素晴らしい方法です。
次に、ソフトウェアのテスターが、開発者がどのように機能を実装しているかをよりよく理解することができます。テスターはプログラミング言語を学び、それに合わせてテストを計画することもできます。もちろん、コードレビューを実施する前に、コードがレビューできるほど安定していることを確認するために、さまざまなテストを実行する必要があります。これらのテストには、静的コード解析と自動化された単体テストが含まれる場合があります。
しかし、人によるコードレビューには欠点があります。それは、主観性が高いことです。ある調査結果(英文)によると、技術的な理由でプルリクエストが却下されるのは13%に過ぎません。若い開発者によってコーディングされたコードのプルリクエストは、経験豊富な開発者によるプルリクエストと比べて、却下されやすい傾向にあります。これは組織の問題もありますが、数十年前から開発チーム内ではよくあることです。
また、すべての開発者が他の経験豊富な開発者とコードについて話し合うのに十分な自信があるわけではありません。皆の前で、自身がおこなった作業を嘲笑されたり、批判されたりすることを恐れているのです。
AIはこれらの制限を最小限に抑えることができます
コードレビューにAIを適用することで、人間同士のやりとりに起因する主観的な問題を軽減することができます。また、AIは大量のコードをスキャンして洞察をすばやく提供できるため、開発者の時間を節約することができます。
近年、コードレビューにAIを適用するためのツールがいくつか登場しています。DeepCodeは、何千行ものコードをリアルタイムでスキャンし、すぐに結果を得ることができます。Java、JavaScript、C/C++、TypeScript、Pythonのコードをスキャンできます。このツールはこれまで、400万人以上の開発者のコードをスキャンし、コードリポジトリの50%以上に決定的な問題があり、その他のプルリクエストのすべてに修正すべき問題があることなど、さまざまな興味深い洞察を見つけています。
また、最近、Amazonは「CodeGuru」という独自のAI搭載コードレビュアーをリリースしました。このツールは、オープンソースアプリケーションに対して数百万行のコードをスキャンし、人では見つけにくい脆弱性を見つけるように学習されています。CodeGuruは、コードの品質を向上し、セキュリティの脆弱性を積極的に修正し、最もコストのかかるコード行を特定するための賢明な提案をおこなうことができます。これらの洞察により、組織はかなりのコストを節約することができます。現在、CodeGuruは、GitHub、GitHub Enterprise、Bitbucket、およびAWSCodeCommitリポジトリに保存されているJavaおよびPythonのコードをサポートしています。
次に何をすべきか?
コードレビューにおけるAIの活用は進化し続けています。ほとんどの人にとって初めてのことなので、これらのツールの結果を信頼できるかどうかはまだわかりません。しかし私たちは、人間は間違いを犯し、物事を見逃す可能性があることを知っています。したがって今後、既存のプロセスを補完するものとして、AIを活用したコードレビューの実施を試みるのもよいかもしれません。使えば使うほど、その性能や結果に確信が持てるようになるでしょう。
あらゆるものがAIで動くようになった今、コードレビューを賢くするためにこれらの技術を使い始めることは理にかなっていると思います。AIの進歩は、これが未来の波となるのに十分なほど有望です。抵抗するのではなく、その可能性を受け入れて前進していきましょう。
作者について:
Raj Subrameyerは、国際的な基調講演者、ライター、およびキャリアコーチであり、技術的なバックグラウンドを豊富に持っています。 彼のBlog(rajsubra.com/blog/)では、読者の生活に役立ち、インスピレーションを与えるニュース、リソースを投稿しています。
(この記事は、開発元 Ranorex 社 Blog 「The Impact of Automated AI Code Reviews」2021年6月16日の翻訳記事です。)