カオスエンジニアリング
Chaos Engineering
かおすえんじにありんぐ
本番システムに意図的に障害を注入し、システムの耐障害性を検証するプラクティス。Netflixが提唱したChaos Monkeyが有名。定常状態の仮説を立て、実験を行い、差異を観測して改善に繋げる。分散システムの信頼性向上に活用される。
システムアーキテクチャ > 高信頼化設計
関連キーワードの用語
SA可用性
システムが必要なときに利用可能な状態にある度合い。稼働率で定量化され、99.99%(フォーナイン)のように表現する。冗長化、フェールオーバー、計画的保守などにより向上させる。
SA決定表(デシジョンテーブル)
条件の組み合わせと、それに対応する処理(アクション)を表形式で整理する技法。複雑な条件分岐をもれなく網羅的に記述でき、仕様の漏れや矛盾を発見するのに有効。テスト設計にも活用される。
SAウォッチドッグタイマ
システムの暴走を検知するためのハードウェアタイマ。正常動作中はソフトウェアが定期的にタイマをリセットし、リセットが行われない場合(暴走時)にシステムを再起動する。組込みシステムの信頼性確保に不可欠。
SAブラックボックステスト
内部構造を考慮せず、入力と出力の関係からテストケースを設計する手法。同値分割、境界値分析、デシジョンテーブル、状態遷移テストなどの技法がある。機能仕様に基づいてテストする。
SAホワイトボックステスト
プログラムの内部構造(制御フロー、データフロー)に基づいてテストケースを設計する手法。命令網羅、分岐網羅、条件網羅、パス網羅などのカバレッジ基準がある。ロジックの正確性を検証する。
SAテストカバレッジ
テストによってどの程度のプログラムコードが実行されたかを示す指標。命令網羅率(C0)、分岐網羅率(C1)、条件網羅率(C2)などがある。カバレッジ100%でも完全な品質保証にはならない点に注意が必要。