堅牢性テスト (英: robustness testing)は、ソフトウェアの堅牢性のテストに焦点を当てた品質保証方法である。堅牢性テストは、テストプロセスにおけるテストケースの堅牢性(つまり正確性)を検証するプロセスを説明するためにも使用されている。

ANSIとIEEEでは、堅牢性を、無効な入力またはストレスの多い環境条件が存在する場合にシステムまたはコンポーネントが正しく機能できる程度として定義している"Standard Glossary of Software Engineering Terminology (ANSI)". The Institute of Electrical and Electronics Engineers Inc. 1991.。

「堅牢性テスト」という用語は、カーネギーメロン大学のバリスタプロジェクトで最初に使用された。彼らは、POSIX APIのデータ型に基づいてオペレーティングシステムの信頼性のテストを実行し、一部のシステムで完全なシステムクラッシュを引き起こしたKropp, Koopman, Siewiorek. 1998. Automated Robustness Testing of Off-the_Shelf Software Components. Proceedings of FTCS'98. http://www.ece.cmu.edu/~koopman/ballista/ftcs98/ftcs98.pdf。 この用語は、ソフトウェアセキュリティテストの文脈で、PROTOSプロジェクトに参加しているOUSPGとVTTの研究者によっても使用されたKaksonen, Rauli. 2001. A Functional Method for Assessing Protocol Implementation Security (Licentiate thesis). Espoo. Technical Research Centre of Finland, VTT Publications 448. 128 p. + app. 15 p. (soft back ed.) (on-line ed.). https://www.ee.oulu.fi/research/ouspg/PROTOS_VTT2001-functional。 最終的に、ファジングという用語(セキュリティ担当者が主に非インテリジェントでランダムな堅牢性テストに使用する)は、モデルベースの堅牢性テストもカバーするように拡張された。

手法

フォールトインジェクション フォールトインジェクションは、システムの堅牢性をチェックするために使用できるテスト方法である。これはシステムに障害を注入し、システムの回復力を観察する Moradi, Mehrdad, Bentley James Oakes, Mustafa Saraoglu, Andrey Morozov, Klaus Janschek, and Joachim Denil. "Exploring Fault Parameter Space Using Reinforcement Learning-based Fault Injection." (2020).。

関連項目

ロバストネス (コンピュータ) フォールトインジェクション

脚注