Electronics Information Service

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

MENU

SOLUTION

Siderが重複コードの分析で“バグ”を検知する「Sider Scan」をベータリリース

2021.6.2  12:18 pm

Siderが重複コードの分析で“バグ”を検知する「Sider Scan」をベータリリース

Windows / Macのローカルアプリケーションとして提供開始

ソフトウェア開発支援ソリューションの開発・提供をする株式会社Sider(東京都港区)は2021年6月1日、プログラムコードの修正漏れ等による“バグ”を検知するアプリケーション「Sider Scan」をベータリリースしました。Windows 10やmacOSのPCにインストールして使えます。Linux用も提供を予定しています。
   
「Sider Scan」ダウンロードサイト(https://siderlabs.com/scan/beta-download/
   
Sider Scanは、重複コード※1を検知して評価するローカルアプリケーションです。日々のソフトウェア開発で変化するコードを独自のアルゴリズムで分析することで、コードの修正漏れなどを検知し、バグであるかを評価して修正案を提示します。バックグラウンド解析を定期実行してバグを検知をすることで、ソフトウェア開発のデバッグプロセスを効率化し、開発工数が想定以上に急増してしまう“炎上”の予防に貢献します。ベータ版は機能の制限なく、30日間お試しいただけます。
   
・重複コードの修正漏れによるバグ
重複コードとは、ソースコード内にある同一部分や類似部分のコードブロックのことです。こうした重複コードは、プログラムへの機能追加などの改変時に一部を修正し忘れるなどして、バグの原因になりえます。Sider Scanは、複製したコードの変数名や関数名などに多少の変更が加えられていても、ロジックが同じであれば重複コードとして検出できます。
   
検知した重複コードは独自のアルゴリズムで評価し、バグの可能性が高いものを開発者に通知します。本機能は東京大学 情報理工学系研究科創造情報学専攻 千葉滋研究室との共同研究により開発できました。
   

・著名なオープンソースプロジェクトでの実績
ベータリリースに先立ち、本機能を使って著名なオープンソースプロジェクトのリポジトリを対象に分析し、多くのバグを発見しました。修正の提案をした結果、既にいくつかはプロジェクト管理者が修正すべき提案と確認しています。以下に例を示します。

  • JavaベースのWebアプリケーションフレームワーク「Vaadin Flow」において関数引数の名称の一貫性の欠如を検出。修正案を提出後、反映される。
  • Javaで記述されたコンピュータ翻訳支援ツール「OmegaT」において、引数として与える変数が適切でないバグを検出。修正案を提出後、反映される。
  • Googleが開発するC++で記述されたオープンソースのJavaScriptエンジン「V8」において、変数の型の一貫性の欠如を検出。V8開発者に報告後、修正提案を出すことを薦められ提出。現在レビュー中。

Siderでは、サイト「Sider Labs」 (https://siderlabs.com/labs)で新機能を先行公開しています。従来の重複コードの検知機能に加えて、Sider Scanの修正漏れなどによるバグ検知機能もSider Labsのサイトで試せるようになりました。ユーザー登録やアプリケーションのインストールをする前に、ブラウザだけで機能を体験できます。