2026-05-26 九州大学
九州大学(Kyushu University)大学院システム情報科学研究院の研究グループは、ソフトウェア開発で問題となる「不安定なテスト(Flaky Test)」が、単一プロジェクトを超えてエコシステム全体に波及していることを明らかにした。研究では、大規模クラウド基盤ソフトウェア群OpenStackを対象に、649プロジェクト、約2.9万件のコードレビュー、約7.4万件の修正案を解析した。その結果、OpenStackエコシステム内の約55%のプロジェクトが、複数プロジェクトにまたがる不安定なテストの影響を受けていることが判明した。また、1535件のクロスプロジェクト型Flaky Testと、同じテストでもプロジェクトごとに不安定性が異なる1105件の事例を確認した。不安定さの主因は、サーバ障害、同時実行タイミングのずれ、依存ソフト更新、CI設定差異などだった。さらに、この問題によりコードレビュー工程で合計1156日分の時間損失が発生していた。本成果は、Flaky Testの早期検知や自動原因分類技術開発につながり、社会インフラを支える大規模ソフトウェアの信頼性向上に寄与すると期待される。
<関連情報>
- https://www.kyushu-u.ac.jp/ja/researches/view/1484
- https://www.computer.org/csdl/journal/ts/5555/01/11540001/2gT4Y6AUrZe
プロジェクト横断的な不安定性:OpenStackエコシステムの事例研究 Cross-Project Flakiness: A Case Study of the OpenStack Ecosystem
Tao Xiao, Dong Wang, Shane McIntosh, Hideaki Hata, Yasutaka Kamei
IEEE Transactions on Software Engineering
DOI:https://doi.ieeecomputersociety.org/10.1109/TSE.2026.3685588
Abstract
Automated regression testing is a cornerstone of modern software development, often contributing directly to code review and Continuous Integration (CI). Yet some tests suffer from flakiness, where their outcomes vary non-deterministically. Flakiness erodes developer trust in test results, wastes computational resources, and undermines CI reliability. While prior research has examined test flakiness within individual projects, its broader ecosystem-wide impact remains largely unexplored. In this paper, we present an empirical study of test flakiness in the OpenStack ecosystem, which focuses on (1) cross-project flakiness, where flaky tests impact multiple projects, and (2) inconsistent flakiness, where a test exhibits flakiness in some projects but remains stable in others. By analyzing 649 OpenStack projects, we identify 1,535 cross-project flaky tests and 1,105 inconsistently flaky tests. We find that cross-project flakiness affects 55% of OpenStack projects and significantly increases both review time and computational costs. Surprisingly, 70% of unit tests exhibit cross-project flakiness, challenging the assumption that unit tests are inherently insulated from issues that span modules like integration and system-level tests. Through qualitative analysis, we observe that race conditions in CI, inconsistent build configurations, and dependency mismatches are the primary causes of inconsistent flakiness. These findings underline the need for better coordination across complex ecosystems, standardized CI configurations, and improved test isolation strategies.

