Electronics Information Service

組込みシステム技術者向け
オンライン・マガジン

MENU

SOLUTION

Siderが開発中のソフトウェアに潜む修正漏れのリスク箇所を監視し開発品質を高めるSiderscanの最新バージョン4.0リリース

2023.2.1  6:07 pm

従来の解析エンジンをさらに高速化・高精度化するとともに、チームで共有可能なコピペコードの管理機能を新規開発

ソフトウェア開発品質の向上にソースコード解析技術で取り組む、株式会社Sider(本社:東京都港区)は、開発中のソフトウェアのプロジェクト管理下にあるソースコードで、主にコピーアンドペーストの結果生成される「コピペコード(注1)」の検出・解析を行う「Siderscan」のバージョン4.0 をリリースしました。
      
コピペコードはソフトウェア品質において「ソフトウェアのあらゆる諸悪の根源(注2)」と説明されるほど解決困難な課題です。記述した時には問題なく機能していても、改修や機能追加時のコード修正漏れなどによってバグの原因になりやすく、人間によるコードレビューでは見逃されることも少なくありません。Siderscan を利用することで、コピペコードの現状解析や、コピペコードに起因する修正漏れなどのバグを検出できます。これにより、ソフトウェアの品質を大幅に向上することができます。
       
Siderscan は、コピペコードに起因する課題をソフトウェアの力で改善するために、東京大学情報理工学系研究科 千葉滋研究室との共同研究より開発され、その後も継続的にバージョンアップされてきました。約一年ぶりのメジャーアップデートとなるバージョン4.0 では、解析速度が大幅に向上しています。従来のツールでは解析を完了することも困難な、大規模なオープンソースプロジェクトでも、実用的な時間内に解析処理を終えることができます。一例として、AWS EC2 t3.medium (4GB RAM, 2 Core CPU)を使って、Linux kernel (https://github.com/torvalds/linux) を解析した場合、初回の全体解析の所要時間は56分でした。
        
また、コピペコードの検出や、コピペコードの修正漏れ検出の精度も上がっています。具体的には、問題となるコードの評価アルゴリズムを改善し、プロジェクトにとって技術的なリスクが高いものだけを検出、通知するようにしています。評価アルゴリズムの改善は今後も継続的に行っていきます。
        
さらにバージョン4.0 では、コピペコードや、コピペコードに起因するバグの情報を開発チーム内で共有するための管理インターフェースを備えています。管理インターフェースは、Web ベースで、一般的なブラウザ(Google Chrome推奨)で閲覧可能です。これにより、コピペコードの時系列の増減や、修正漏れコードの対応状況をチーム全員で確認できます。
      
Siderscan詳細
https://siderscan.com/

(注1) コピペコードとは
同じような機能でありながら、「関数」や「クラス」などに集約されずに複製されたコードブロックのことを、Siderではコピペコードと呼んでいます。専門的には、重複コード(Duplicate code)、コードクローン(Code clone)と呼ばれています。
一般的に、コピペコードは変更や拡張に弱いとされています。例えば、あるコピペコードでバグが発生し、それを修正する場合、直接対象となるコードを修正するだけではなく、コピペコードを漏れなく検索し、それら全てのコピペコードに対して同じ修正が必要か否か判断する必要があります。この際、一部のコピペコードに気づかず、修正せずにリリースしてしまうと、コピペコードの「修正漏れ」となり、このリスクは最終的にバグとして顕在化します。
(注2)
“Duplication may be the root of all evil in software.”, The Robert C. Martin Clean Code Collection, by Robert C. Martin