Skip to main content
Corgea Code Quality Scannerは、コードベースの保守性、可読性、パフォーマンス、正確性に関する問題を特定するAI搭載コードレビューツールです。セキュリティ脅威に焦点を当てるセキュリティ脆弱性スキャナーとは異なり、熟練したソフトウェアエンジニアのようにコードをレビューし、品質基準の維持と技術的負債の防止を支援します。

機能

コード品質スキャナーはソースコードを分析し、コードベースの長期的な健全性に影響する具体的な問題を特定します。経験豊富なシニアエンジニアがすべてのファイルをレビューするように、手動レビューで見落とされがちな問題を検出し、実際に対応可能な改善に焦点を当てます。

主な機能

  • 自動コードレビュー:コードを詳細に分析し、保守性に影響する一般的な品質問題を確認
  • 言語対応の分析:プログラミング言語ごとのコンテキストと慣習を理解
  • フレームワーク検出:一般的なフレームワークを認識し、固有のベストプラクティスを適用
  • 重大度分類:影響(High、Medium、Low)に基づいて問題を優先順位付け
  • CWEマッピング:標準化された分類のため、問題をCommon Weakness Enumeration(CWE)にマッピング

見つけられるもの

コード品質スキャナーは、幅広いコード品質の問題を特定します。一貫した分類を行うため、すべての検出結果をにマッピングします。
  • コードコメント、変数名、文字列内のタイプミスやスペルミス (CWE-1078)
  • 実際のコード動作と矛盾する、または古い可能性のある不正確または誤解を招くコメント (CWE-1116)
example.js
  • 目的のない空のコードブロック (CWE-1071)
  • 未使用変数、インポート、コードベースを混乱させるデッドコード (CWE-563、CWE-1041)
  • エラーを握りつぶす空の例外ブロック (CWE-1069、CWE-390)
  • 実行されることのない到達不能コード (CWE-561)
example.py
  • 共有関数にリファクタリングすべき重複コード (CWE-1041)
  • オブジェクト内の重複キーやリテラル、および定数にすべきマジックナンバー (CWE-1078)
  • 原則に反するコード - 保守の負担を増やす重複ロジック
  • パフォーマンスを低下させるループ内の文字列連結 (CWE-1046)
  • 非効率な処理 および不必要なリソース消費(CWE-1050)
  • 頻繁に実行されるコードパスのパフォーマンスボトルネック
Example.java
  • パラメーターが多すぎる関数(6個以上のパラメーター)など、設計上の問題を示すコード(CWE-1064)
  • 正しく使うのが難しい過度に複雑な関数シグネチャ
  • モジュール間の循環依存関係 (CWE-1047)
  • 分かりやすくするために分解すべき複雑な1行の文 (CWE-1120)
  • 理解しづらい過剰な分岐を伴う深くネストされたロジック
  • 意図が不明確になるほど汎用的なヘルパー関数
  • KISS原則
  • コードの理解を難しくする一貫性のない命名規則 (CWE-1099)
  • 「obj」「x」「data」などの汎用的で記述的でない変数名
  • 同じコードベース内でのcamelCaseとsnake_caseの混在
  • 誤った挙動を引き起こす論理エラー (CWE-670)
  • 誤った結果を生み出す不正確なデータ処理
  • 実装ミスにより意図どおりに動作しないコード
  • TODOコメント およびプレースホルダーコード(CWE-1071)
  • 問題を引き起こす可能性のある未完成の機能
  • 対応が必要な未完了の実装

仕組み

1. ファイル解析

スキャナーはコードベースの各ファイルを個別に処理し、ファイル構造、言語、検出されたフレームワークのコンテキストを踏まえてソースコード全体を分析します。

2. AI搭載レビュー

コードレビュー用に訓練された高度な言語モデルを使用し、確立されたソフトウェアエンジニアリングの原則とベストプラクティスに照らしてコードを検証します。AIは次の要素を理解します。
  • 言語固有の慣用句と慣習
  • フレームワークパターンとベストプラクティス
  • コード複雑さおよび保守性の指標
  • 業界標準のソフトウェア設計原則

3. 問題の特定

潜在的な問題が見つかった場合、スキャナーは次の処理を行います。
  • 関与するコードの正確な行を特定
  • CWE基準を用いて問題タイプを分類
  • 適切な重大度レベルを割り当てる
  • 問題とその影響について明確な説明を生成する

4. 高信頼度の検出

  • スキャナーは、信頼度が90%以上の問題だけを報告します。この高いしきい値により、推測ではなく、正確で対応可能な検出結果だけを提示します。
  • 90%信頼度の閾値はノイズや誤検知を大幅に減らし、報告された問題が対応すべき内容であると判断できます。

誤検知抑制

コード品質スキャナーには、意味があり対応可能な検出結果だけを提示するための高度な誤検知抑制機能があります。

内蔵フィルター

セキュリティ問題排除:スキャナーはセキュリティ脆弱性(SQLインジェクション、XSS、認証問題など)を明確に除外します。これらはCorgeaの専用のセキュリティスキャナーが処理しているからです。これにより、コードの品質とセキュリティ検出結果の重複や混乱を防ぎます。
スタイル上の好みを除外:波かっこの配置、インデント、空白など、軽微なスタイル上の違いは報告しません。スキャナーはフォーマットの好みではなく、実質的な品質問題に焦点を当てます。

コンテキストの理解

スキャナーは誤検知を避けるためにコードコンテキストを把握します:
  • 「空」ブロックが意図的であること(例:プレースホルダー実装)を認識します
  • 問題に見えるかもしれないフレームワーク固有のパターンを理解する
  • 特定のプログラミング言語で許容される言語イディオムを考慮する

自動修復

コード品質の問題が特定された場合、Corgeaは迅速かつ一貫して問題を解決するための 自動修復機能 を提供します:

何が修復されるのか

自動修復システムは、以下を含む多くの一般的なコード品質問題を修正できます:
  • 未使用変数やインポートの除去
  • マジックナンバーを命名定数に変換する
  • 変数名やコメントの誤字修正

修復の仕組み

  1. 問題のコンテキスト:問題のあるコードだけでなく、コードベース全体におけるその役割も含めて、各問題のコンテキストを分析します
  2. 安全な修正:自動修正は安全であり、既存の機能を維持するよう設計されています
  3. コードスタイルの維持:既存のコードスタイルと慣習に合わせて修正します
  4. 適用前のレビュー:どの修正を適用するかをユーザーが完全に制御できます

脆弱性スキャンとは別物

コード品質スキャナーはCorgeaの セキュリティ脆弱性スキャン 機能とは完全に別物です。

主な違い

なぜ両方が重要なのか

  • セキュリティ:アプリケーションを攻撃者から保護
  • コード品質:コードベースの保守性、パフォーマンス、信頼性を維持
どちらも健全なソフトウェアプロジェクトに不可欠ですが、異なる課題に対応しています。コードベースは安全でも保守が難しい場合もあれば、よく構成されているが脆弱であることもあります。Corgeaは両方を提供し、コードの健全性を完全に把握できます。

重大度レベルの説明

クラッシュ、深刻なパフォーマンス問題、重大なバグを引き起こす問題:
  • エラーを隠す空のキャッチブロック
  • 無限ループ
  • 常に失敗する論理
  • 重大なパフォーマンスボトルネック
アクション:直ちに修正

はじめに

コード品質スキャナーは開発ワークフローにシームレスに統合されます:
1

リポジトリを接続

GitHubGitLabAzure DevOps、またはBitbucketを使用してコードリポジトリをCorgeaに接続します。
2

自動スキャン

スキャナーは自動的にファイルを分析します
3

検出結果を確認

プロジェクトダッシュボードで、明確な説明と重大度が付いた問題を確認します。
4

修正を適用する

自動修復を使用するか、問題を手動で修正します。
5

進捗を追跡

コード品質が時間の経過とともに改善しているかを確認します。

関連ドキュメント

AIネイティブ SAST

Corgeaのセキュリティ脆弱性スキャン機能

自動修正

すべてのスキャンタイプにおける自動修復の仕組み

誤検知管理

誤検知を効果的に管理・抑制する

問題管理

プロジェクト全体の問題を追跡・管理できます

サポート

ご支援が必要な場合は、support@corgea.comまでお問い合わせください。