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

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

ソフトウェア開発支援ソリューションの開発・提供をする株式会社Sider(本社:東京都港区、代表取締役社長:浅原明広、以下: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のサイトで試せるようになりました。ユーザー登録やアプリケーションのインストールをする前に、ブラウザだけで機能を体験できます。

*1 重複コードとは
同じような機能でありながら、「関数」や「クラス」などに集約されずに複製されたコードブロックのことを、Siderでは重複コードと呼んでいます。一般的に、重複コードは変更や拡張に弱いとされています。例えば、ある重複コードでバグが発生し、それを修正する場合、直接対象となるコードを修正するだけではなく、重複コードを漏れなく全て検索し、それら重複コードに対して同じ修正が必要か否か判断しなければならないからです。Sider Scanは修正優先度の高いバグ検知だけでなく、まだバグになっていない重複コードも検知・評価する機能も備えています。

株式会社Siderについて
株式会社Siderは、ソフトウェアアクセラレーションサービスのグローバルリーダーである株式会社フィックスターズから、ソフトウェア開発分野における製品開発企業として、2019年にスピンオフされた会社です。フィックスターズは2002年の創業以来、自動運転、量子コンピューティング、医療機器、金融システム、コンピューターグラフィクスなど、様々な分野におけるグローバル企業・研究機関に強力なソフトウェア高速化ソリューションを提供してきました。これらのクライアントプロジェクトの経験を活かして、株式会社Siderは、自動コードレビューサービスの「Sider」やプロジェクト管理アシスタントツール「Sider Team Insights」を提供しています。株式会社SiderはAIと人とが協調して開発する世界を実現し、あらゆるエンジニアの開発体験を向上させていきます。詳細はこちらをご参照ください(https://siderlabs.com/)。

リリース詳細
提供元: PR TIMES