OpenStack エコシステムの約 55% に波及し、1,156 日分の時間ロスが発生
システム情報科学研究院
亀井靖高 教授
ポイント
・クラウドや社会インフラを支えるソフトウェアでは、テストの不安定さが開発の遅れにつながっています。
・本研究では、不安定なテスト(※1)が1つのプロジェクトにとどまらず、エコシステム(※2)内の複数プロジェクトに広がる現象を確認しました。
・今回の成果は、開発時間の短縮、計算資源の削減、信頼できるソフトウェア基盤の実現に貢献すると期待されます。
概要
ソフトウェアは、クラウド、金融、通信、行政サービスなど、私たちの生活や産業を支える重要な基盤です。こうした開発では、プログラムを変更するたびに、自動テスト(※3)で不具合の有無を確認します。しかし実際には、同じプログラムでも成功したり失敗したりする不安定なテストがあり、開発の遅れや計算資源の無駄を招いています。これまで、この問題は主に1つのプロジェクトの中で調べられてきましたが、多くのプロジェクトがコードやテスト環境を共有する現在、その影響がどこまで広がるかは十分に明らかになっていませんでした。
本研究では、不安定なテストが1つのプロジェクトにとどまらず、複数のプロジェクトに広がることを明らかにしました。さらに、同じテストでも、あるプロジェクトでは不安定になり、別のプロジェクトでは安定して動く現象も確認しました。これは、テストの不安定さが個別の開発だけではなく、ソフトウェア群全体で捉えるべき課題であることを示しています。
九州大学大学院システム情報科学研究院の亀井靖高教授らの国際共同研究グループは、大規模なクラウド基盤ソフトウェア群であるOpenStackのエコシステムを対象に、649プロジェクト、29,175件のコードレビュー(※4)、73,707件のパッチセット(修正案)を分析しました。その結果、Zuul CI(※5)を採用するOpenStackエコシステム内のプロジェクトの約55%が、複数プロジェクトに広がる不安定なテストの影響を受けていることがわかりました。また、複数のプロジェクトに影響する不安定なテストを1,535件、同じテストでもプロジェクトによって起き方が異なるものを1,105件確認しました。
さらに、小さな部品を確認する基本的なテスト(単体テスト)の約7割が、複数のプロジェクトにまたがる不安定さを示しました。不安定さの主な原因は、サーバの一時的な障害や同時実行のずれ、依存ソフトの変化、CI(※5)設定の食い違いでした。加えて、この問題によって、コード確認の過程で合計1,156日分の時間が失われていました。今回の成果は、不安定なテストを早く見つける仕組みや、原因を自動で整理する仕組みの開発につながり、大規模ソフトウェアや社会インフラを支えるシステムの信頼性向上に役立つと期待されます。
本研究成果は、米国の雑誌「IEEE Transactions on Software Engineering」(オンライン)に2026年5月26日(火)(日本時間)に掲載されました。
研究者からひとこと
不安定なテスト(Flaky Test)は、開発者の時間と計算資源を奪う見えにくい問題です。本研究では、その不安定さが1つのプロジェクトの枠を超えて拡散し、エコシステム全体に波及している実態を明らかにしました。今回の成果を、より信頼できるソフトウェア開発環境の実現につなげたいと考えています。(亀井靖高)
用語解説
(※1) 不安定なテスト
同じプログラムを同じ条件で実行しても、成功したり失敗したりするテストです。 英語では「Flaky Test」と呼ばれます。
(※2) エコシステム
複数のソフトウェアや開発者・組織が、共通の部品やルールを共有しながら互いに依存し合い、ひとつの集合体として進化していく開発環境のことです。OpenStack のように、多数のプロジェクトが連携して開発される仕組みを指します。
(※3) 自動テスト
ソフトウェアが正しく動くかを、プログラムで自動的に確認する仕組みです。 人が毎回確認する手間を減らし、開発の速度と品質を高めます。
(※4) コードレビュー
プログラムを書いた本人以外の開発者が、変更内容を確認し、不具合や改善点を指摘する仕組みです。品質や安全性を保つために多くのソフトウェア開発で実施されています。
(※5) CI/Zuul CI
CI(Continuous Integretion)はプログラムに変更が加えられるたびに、自動テストやビルドを行い、不具合を早期に発見する仕組みです。Zuul CIは OpenStack 開発で使われている代表的な CI ツールの一つで、本研究の分析対象になっています。
詳細
本件の詳細についてはこちら





