開発中のソフトウェアに潜む、修正漏れのリスク箇所を監視し、開発品質を高めるSiderscan の最新バージョン4.0 をリリース
株式会社Sider
従来の解析エンジンをさらに高速化・高精度化するとともに、チームで共有可能なコピペコード(注1) の管理機能を新規開発
ソフトウェア開発品質の向上にソースコード解析技術で取り組む、株式会社Sider(本社:東京都港区、代表取締役社長:三木 聡、以下:Sider)は、開発中のソフトウェアのプロジェクト管理下にあるソースコードで、主にコピーアンドペーストの結果生成される「コピペコード(注1)」の検出・解析を行う「Siderscan」のバージョン4.0 をリリースしました。
Siderscan商品紹介サイト(https://siderscan.com/)
コピペコードはソフトウェア品質において「ソフトウェアのあらゆる諸悪の根源(注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推奨)で閲覧可能です。これにより、コピペコードの時系列の増減や、修正漏れコードの対応状況をチーム全員で確認できます。
Sidersacn は、既存のツールや人間のコードレビューでは難しい、コピペコードに特化した分析を行います。あなたのプロジェクトの品質分析に、独自の視点を加えて下さい。1プロジェクトは商用・非商用にかかわらず、無償で使っていただけます。
(注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
株式会社Sider について
株式会社Siderは、ソフトウェアアクセラレーションサービスのグローバルリーダーである株式会社フィックスターズから、ソフトウェア開発分野における製品開発企業として、2019年にスピンオフされた会社です。フィックスターズは2002年の創業以来、自動運転、量子コンピューティング、医療機器、金融システム、コンピューターグラフィックスなど、様々な分野におけるグローバル企業・研究機関に強力なソフトウェア高速化ソリューションを提供してきました。これらのクライアントプロジェクトの経験を活かして、株式会社Siderは、ソフトウェア製品の品質向上のためのコピペ検知・改善ソリューションSiderscanを提供しています。