『継続的デリバリー』 第9章 学習メモ
非機能テストの概観
1.はじめに
継続的デリバリーにおける、非機能テストについての調査記録です。
継続的デリバリーの中での、非機能テストについての概観を記載します。
『継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化』の第9章に対応します。
2.概要・目的
非機能要件の中でも、特に以下を重点として扱う。
- パフォーマンス:単一のトランザクションの処理に要する時間
- スループット:一定の期間内にシステムが処理できるトランザクションの数
- キャパシティ:一定の負荷がかかった状態で個々のリクエストを許容範囲のレスポンスでさばききれる最大のスループット
非機能要件は、ソフトウェアデリバリーに関する重大なリスクとなる。
非機能要件は、システム特性とも呼ぶ。
どの非機能要件が重要なのかをプロジェクトの開始時に見つけることが重要。
非機能要件をデリバリースケジュールの中で定期的に計測する。
3.対応概要
非機能要件の分析の観点は以下の通り。
4.対応詳細
キャパシティを確保するためのプログラミングの観点は以下の通り。
キャパシティの計測手法の観点は以下の通り。
キャパシティテストの観点は以下の通り。
- カナリアリリース戦略の一環として実行
- 受入テストを引用し、規模を拡大。成功条件を設定して、システムに負荷をかける
- アプリケーションの記録と再生
- UI経由でのキャパシティテストを避ける
- サービスや公開APIへのインタラクションの記録
- キャパシティテスト用スタブ
- デプロイメントパイプラインにキャパシティテストを追加
キャパシティテストシステムは、実験用のリソースとなる。
5.影響・作用
非機能要件とは、現実の要件として検討する必要があるが、利用するユーザの考える要件とは異なるもの。
問題の観察や分析が重要であり、これにより、非機能要件の受け入れ基準を、機能要件と同様に設定できるようになる。
受入テストを元にした、より広範囲なシナリオベースのテストで非機能要件を検証することで、システムの特性を包括的で保守可能な形式で維持することができる。
6.おわりに
以上が、継続的デリバリーの中での、非機能テストについての概観です。
7.参考文献
『継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化』 第9章 非機能要件をテストする