リポジトリを監視してコードのバグを自動検出、指摘してくれるツール「Sider Scan」。CI/CDに統合可能[PR]

2021年12月6日

開発プロジェクトのコードリポジトリを常駐監視し、まるでアンチウイルスツールのようにバグを発見してくれるツールが「Sider Scan」です。JenkinsやGitHub Actionsなどのツールに連携してソースコードを解析し、バグの恐れがあるコードを見つけると自動で通知してくれます。

対応言語はJava、JavaScript、TypeScript、PHP、C、C++、C#、Swift、Ruby、そして汎用GPUライブラリのCUDA。早い段階でバグを発見でき、既存のツールチェーンとの共存が容易なのが特徴です。

figSider ScanのWebサイト

ソフトウェアは、CI/CDパイプラインに組み込みやすいDockerイメージで用意されています。今までの開発プロセスを変更せずに導入でき、ソースコードやバグの検出結果を外部に送信せずにバグをチェックきます。

リポジトリのスキャンとバグの検出はすべてローカルマシン内で行われるため、ソースコードやバグの検出結果が外部に流出することはありません。

どんなバグを検知してくれるのか?

Sider Scanには、世の中にあるさまざまなソースコード解析ツールと同様に得意分野が存在します。現時点でSider Scanが検出するのは、重複コードにおける変更漏れ、修正漏れです。

ソースコード内で何度も同じ処理を行う部分は基本的に関数などにまとめられるはずですが、現実のプログラミングの現場では、ほぼ同じような処理だけれど微妙に違うところがあるのでまとめられず、似たようなコードが何行も続く、あるいは何カ所かに出現することはよくあります。

例えば、変数「str1」と「str2」と「str3」があって、それぞれの変数の値を特定の計算式や条件に沿って設定する場合、str1のために書いたコードをコピペしてstr2とstr3用に書き換える、といった作業は新人プログラマからベテランプログラマまで、日常的に行っていることではないでしょうか。

このとき、もし後日に値を変更する計算式や条件が微妙に変更されたとしたらどうなるでしょう? 当然、str1とstr2とstr3の関連コードを漏れなく修正するべきですが、この3カ所がコード上の大きく離れた場所に分散していた場合、漏れなく作業できるでしょうか?

あるいは、もし担当が変わってstr1とstr2とstr3を別々のプログラマが担当することになった場合、str1を修正したことがちゃんと別のプログラマに伝わるでしょうか?

万が一、全部がちゃんと修正されなければ、修正されなかったところがバグとなって残るでしょう。

しかもやっかいなことに、修正したところはその後にテストされ、修正内容が確認されるとしても、修正されなかったところはテストされず、バグとして放置されてしまう可能性が高いのです。

Sider Scanはこうした重複コードで発生する変更や修正の漏れを検出してくれます。

fig

実際にSider Scanの開発元である株式会社Siderは、オープンソースソフトウェアの修正漏れなどを検知してプルリクエストを送る活動をしています。既にGoogle V8phpMyAdminApache KafkaOpen JDKなどの著名なソフトで修正漏れを見つけています。

今後Sider Scanは重複コードの修正漏れ以外にも、ロジックのバグなど検知対象を広げるべく、搭載されているAIエンジンの機能拡大を図っていくとのことです。

リポジトリ数に関係なくユーザーあたりの月額制

Sider Scanは既存のソースコード解析ツールなどではあまり検出されにくい重複コードの修正漏れを検出してくれるため、すでに何らかのソースコード解析ツールを使っているプロジェクトでも、機能の重複や無駄なアラートが増えることなくSider Scanを導入することができるのではないでしょうか。

fig

Sider Scanは最初の1カ月は無償で利用可能。それ以降は、監視対象リポジトリの開発をするユーザー人数ごとのサブスクリプション制です。価格は開発者20人分のコード監視が月額11万円から。詳細は個別見積もりとなっています。

人間では難しい重複コードを総チェックするバグ監視、まずは1カ月試してみてはいかがでしょうか。

Sider Scan -- AIバグ監視システム --

(本記事はSider株式会社提供のタイアップ記事です)

あわせて読みたい

CI/CD ソフトウェアテスト・品質 プログラミング言語 PR




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本