This website (all pages under https://www.kyushu-u.ac.jp/ja/) is automatically translated.
Please note that pages of academic units linked from this site, as well as external websites, are not subject to automatic translation.
To revert to the original Japanese while automatic translation is active, please click "Automatic Translation."
Please be aware that automatic translation is a mechanical process and may not accurately convey the intended meaning. In addition, images and charts may not be translated.
For accurate information, please refer to the Japanese version.
For some articles, an English version translated by our specialist staff is available. To view it, click "English" in the upper right corner of the screen.
本サイト(https://www.kyushu-u.ac.jp/ja/ 配下のページ)では自動翻訳システムを使用しています。
本サイト内からリンクされている部局のページや外部サイトについては、自動翻訳の対象外となります。
翻訳適用中に、「Automatic Translation」をクリックすると元の日本語表示に戻ります。
自動翻訳は機械的に変換を行うため、意図が正確に反映されない場合や、画像・図表が翻訳されない場合があります。あらかじめご了承ください。
正確な情報については日本語表示の状態でご確認ください。
なお、一部の記事については、専門スタッフが翻訳した英語版もご用意していますので、画面右上の「English」をクリックしてご覧ください。
Research Results 研究成果
ポイント
概要

図1:新技術「MV-SZZ」の概要
大阪大学大学院情報科学研究科の近藤偉成さん(博士前期課程)、肥後芳樹教授(コンピュータサイエンス専攻ソフトウェア工学講座)、九州大学大学院システム情報科学研究院の近藤将成助教、亀井靖高教授(情報理工学専攻)、およびカナダビクトリア大学のDaniel M. German教授の研究グループは、ソフトウェア開発において、不具合(バグ)の原因になった変更(バグ混入コミット)を高精度に特定する新技術「MV-SZZ」を開発しました。
ソフトウェア開発では、不具合が「いつ」・「どの変更によって」混入されたのかを特定することが、品質向上や開発効率の改善において極めて重要です。これまでにもバグ混入コミットを特定する技術は提案されてきましたが、精度面に課題がありました。
今回の新技術「MV-SZZ」は、ソフトウェアのソースコード※3をトークンの列として捉え、その変更(開発)履歴を詳細に追跡します。さらに、複数のバグ混入コミットの候補を発見した場合には、多数決に基づく仕組みを用いて、最も妥当と思われる変更をバグ混入コミットとして選択します。これにより、従来手法で問題となっていたバグ混入コミットの見逃しや誤検出を大幅に抑制し、高精度な特定を可能にしました。
この技術は、実用面ではソフトウェア開発現場におおける開発コスト削減と品質向上に貢献します。また研究面では、バグ混入およびバグ修正に関する高品質なデータセットの構築を可能にし、AI時代における学習データ整備に大きく貢献します。これにより、バグ予測やバグ自動修正といった研究分野のさらなる発展が期待されます。
本研究成果は、米国科学誌「Transactions on Software Engineering」に、2026年5月1日(金)(日本時間)にオンライン公開されました。
用語解説
※1 バグ混入コミット
ソフトウェアは多数のコミットを積み重ねて進化していくため、不具合の原因を調べる際には、どのコミットが不具合を引き起こしたのかを特定することが重要となる。本研究で扱うバグ混入コミットとは、そのような履歴の中で不具合の原因となったコミットを指す。
コミットとは、ソフトウェア開発において、プログラムの変更内容をひとまとまりとして記録する単位のこと。開発者は、機能の追加や不具合の修正などを行うたびに、その変更内容を「コミット」として履歴に保存する。各コミットには、「いつ」「誰が」「どのファイルを」「どのように変更したか」といった情報が記録されており、ソフトウェアの開発過程を時系列で振り返ることができる。これにより、過去の状態に戻したり、変更の理由を確認したりすることが可能になる。
※2 トークン
トークンとは、ソースコードを構成する最小単位の要素のこと。プログラムの中では、変数名や数値、演算子、記号(かっこやセミコロンなど)がそれぞれ意味を持っており、これら一つ一つがトークンとして扱われる。例えば、1行のプログラムであっても、内部的には複数のトークンに分解できる。ソースコードをトークン単位で捉えることで、「行全体」ではなく、「どの要素がどのように変化したか」をより細かく分析することが可能になる。
※3 ソースコード
ソースコードとは、ソフトウェアの動作内容を人間が理解できる形で記述したプログラムの設計図のこと。ソフトウェア開発者は、プログラミング言語を用いてソースコードを書き、それをコンピュータが実行できる形に変換することでソフトウェアを動かしている。
ソースコードには、計算処理の手順だけでなく、条件分岐やデータの扱い方など、ソフトウェアの振る舞いに関するすべての情報が含まれている。そのため、ソフトウェアの不具合(バグ)は、ソースコード中の記述ミスや設計上の問題として現れる。
本研究では、このソースコードがどのような変更履歴(コミット)を経て現在の形になったのかに注目し、過去のソースコードの変更を分析することで、不具合の原因となった変更を特定する技術を対象としている。
論文情報
雑誌名:Transactions on Software Engineering」
タイトル:“MV-SZZ: A Majority Voting-Based SZZ Method”
著者名:Inase Kondo, Masanari Kondo, Daniel M. German, Yasutaka Kamei and Yoshiki Higo
DOI:10.1109/TSE.2026.3688089
お問い合わせ先