リポジトリを監視してコードのバグを自動検出、指摘してくれるツール「Sider Scan」。CI/CDに統合可能[PR]
開発プロジェクトのコードリポジトリを常駐監視し、まるでアンチウイルスツールのようにバグを発見してくれるツールが「Sider Scan」です。JenkinsやGitHub Actionsなどのツールに連携してソースコードを解析し、バグの恐れがあるコードを見つけると自動で通知してくれます。
対応言語はJava、JavaScript、TypeScript、PHP、C、C++、C#、Swift、Ruby、そして汎用GPUライブラリのCUDA。早い段階でバグを発見でき、既存のツールチェーンとの共存が容易なのが特徴です。
ソフトウェアは、CI/CDパイプラインに組み込みやすいDockerイメージで用意されています。今までの開発プロセスを変更せずに導入でき、ソースコードやバグの検出結果を外部に送信せずにバグをチェックきます。
リポジトリのスキャンとバグの検出はすべてローカルマシン内で行われるため、ソースコードやバグの検出結果が外部に流出することはありません。
どんなバグを検知してくれるのか?
Sider Scanには、世の中にあるさまざまなソースコード解析ツールと同様に得意分野が存在します。現時点でSider Scanが検出するのは、重複コードにおける変更漏れ、修正漏れです。
ソースコード内で何度も同じ処理を行う部分は基本的に関数などにまとめられるはずですが、現実のプログラミングの現場では、ほぼ同じような処理だけれど微妙に違うところがあるのでまとめられず、似たようなコードが何行も続く、あるいは何カ所かに出現することはよくあります。
例えば、変数「str1」と「str2」と「str3」があって、それぞれの変数の値を特定の計算式や条件に沿って設定する場合、str1のために書いたコードをコピペしてstr2とstr3用に書き換える、といった作業は新人プログラマからベテランプログラマまで、日常的に行っていることではないでしょうか。
このとき、もし後日に値を変更する計算式や条件が微妙に変更されたとしたらどうなるでしょう? 当然、str1とstr2とstr3の関連コードを漏れなく修正するべきですが、この3カ所がコード上の大きく離れた場所に分散していた場合、漏れなく作業できるでしょうか?
あるいは、もし担当が変わってstr1とstr2とstr3を別々のプログラマが担当することになった場合、str1を修正したことがちゃんと別のプログラマに伝わるでしょうか?
万が一、全部がちゃんと修正されなければ、修正されなかったところがバグとなって残るでしょう。
しかもやっかいなことに、修正したところはその後にテストされ、修正内容が確認されるとしても、修正されなかったところはテストされず、バグとして放置されてしまう可能性が高いのです。
Sider Scanはこうした重複コードで発生する変更や修正の漏れを検出してくれます。
実際にSider Scanの開発元である株式会社Siderは、オープンソースソフトウェアの修正漏れなどを検知してプルリクエストを送る活動をしています。既にGoogle V8、phpMyAdmin、Apache Kafka、Open JDKなどの著名なソフトで修正漏れを見つけています。
今後Sider Scanは重複コードの修正漏れ以外にも、ロジックのバグなど検知対象を広げるべく、搭載されているAIエンジンの機能拡大を図っていくとのことです。
リポジトリ数に関係なくユーザーあたりの月額制
Sider Scanは既存のソースコード解析ツールなどではあまり検出されにくい重複コードの修正漏れを検出してくれるため、すでに何らかのソースコード解析ツールを使っているプロジェクトでも、機能の重複や無駄なアラートが増えることなくSider Scanを導入することができるのではないでしょうか。
Sider Scanは最初の1カ月は無償で利用可能。それ以降は、監視対象リポジトリの開発をするユーザー人数ごとのサブスクリプション制です。価格は開発者20人分のコード監視が月額11万円から。詳細は個別見積もりとなっています。
人間では難しい重複コードを総チェックするバグ監視、まずは1カ月試してみてはいかがでしょうか。
(本記事はSider株式会社提供のタイアップ記事です)
あわせて読みたい
コンピュータサイエンス誌「bit」、1969年の創刊号から全386巻が電子復刻版としてAmazon Kindleで販売開始。1冊わずか198円
≪前の記事
VMware、vSphere上のアプリケーションを解析し、Dockerコンテナへ変換する「Application Transformer for VMware Tanzu」発表