コードレビューとは,ソフトウェア品质の向上を目的とした,ソフトウェアソースコードを体系的に検查し不具合を特定する作业です。组み込みシステムの开発における重要なタスクであり,特に,认证取得が必要な场合,欠かせない作业です。
通常,コードレビューはチームで行い,モデレータ,品质エンジニアかマネージャー,ソフトウェア开発者や,その他のメンバーから成るレビュアーとレビュイーで构成されます。主にチェックリストに基づき,设计仕様や,コード复雑性の评価や,MISRA-C / C ++等のコーディング规约への准拠の确认など,系统的にソフトウェアをレビューします。
コードレビューに重要な観点
效果的なコードレビューとは,设计仕様の达成度の确认,仕様抜け漏れのチェック,设计アーキテクチャやインターフェースなど,设计部分に注力してレビューします。
再现性に乏しいランタイムエラーや,単纯な欠陥の検出を目视で识别することは非常に困难であり,コードレビューでは效果的ではありません。また,プログラム制御を含む复雑な数式演算によるオーバーフローやアンダーフローは见逃されやすく,こうした典型的なバグやセキュリティホールは,コードレビュー前に,コードレビュー支援ツールを使うことで,作业を大幅に自动化,效率化することができます。
コードレビュー支援ツールのメリット
Polyspace®などのコードレビュー支援ツールを使うことで,以下のようなメリットがあります。
- 目视での発见が困难な,ランタイムエラー,并列处理问题,セキュリティ脆弱性およびその他の欠陥の検出
- MISRA®,JSF ++等のコーディング规约への准拠により,コーディングスタイルの一贯性を保ち,コードの可読性や保全性を向上
- 制御フロー及びデータフローの详细情报や,关数コール図表や,データディクショナリーによる変数の书き込み·読み取りの追迹により,ソフトウェア実行时の振舞いを理解可能
- コードメトリクスの生成とソフトウェア品质の监视
これにより,コードレビュー前に欠陥を発见,修正でき,テスト工数が削减されるため,エンジニアは重要な设计や要求仕様の改善に注力することができます。
目视ではなくツールを使用するメリットの一つとして,対象のコードが数百行でも,数十万行でも,同じように解析可能という点が挙げられます。また,ランタイムエラーが発生する可能性のあるコードと,ランタイムエラーがないことが证明されたコードを特定したレポートも自动生成可能であり,コードレビュープロセスでの成果物として利用することができます。
バグの早期発见による投资対效果
テスト段阶で発见されたバグは,コーディング段阶で発见されたバグよりも,修正に10倍多くコストがかかります。さらに,量产段阶でバグが発见されると,100倍コストがかかると言われています。2015年には,全世界で5000万台以上の自动车がリコール対象となり,これによる自动车业界の损失额は计り知れません。このため,开発の初期段阶でバグを発见することが非常に重要です。
Polyspaceによる开発初期段阶でのバグ検出
Polyspaceを使用すると,テスト工数を20%削减,コードレビューの时间を40%削减することができます。さらに,ソースコードにランタイムエラーがないことを证明できるため,コードレビュー前での活用により,コードの安全性の确认の负荷を低减でき,目视のコードレビューの前に多くの欠陥を指摘,修正することができます。
详しくは,Polyspaceの制品ページをご覧ください。