なぜパフォーマンステストを行うのか:ステークホルダー別目的を見極める
パフォーマンステストを依頼する担当者は、自分たちが何を知りたいのかをまるで分かっていないことが多い。
至ってシンプルな質問をタイトルにしてみた。答えもごくシンプルにまとめられる。
「さまざまな条件の下でさまざまなパフォーマンス特性を判定、評価するため」
だが、実際にテストを行うに当たっては、「どのパフォーマンス特性にどのステークホルダーがどのような理由で関心を持つか」まで踏み込んで理解していなければ、この答えはほとんど意味を成さない。しかも困ったことに、大抵の場合、われわれベンダーにパフォーマンステストを依頼する担当者は、自分たちが何を知りたいのか、また、われわれが何を適切に提供できるのかをまるで分かっていない。さらに、こうした担当者は、テスト結果の利用目的が、われわれがどのテストを行うか、それらをどのように設計するかを大きく左右することを理解していない。
わたしの経験では、ステークホルダーにパフォーマンステストの実施目的を尋ねると、3つの答えのどれかが返ってくるのが通例だ。
- あなたはパフォーマンステスターなのだから、こちらこそ目的を教えてほしい
- 本番運用でどれだけのユーザー、注文、顧客に対応できるか知りたい
- システムが十分な速度で動くことを確認したい
もちろん、1つ目の答えは、冒頭のわたしの答えと同様に意味を成さないが、ほかの2つで挙げられていることも実際には不可能だ。パフォーマンステストの際に、これらを信頼できるレベルで行えるだけのデータや機器が使えることはほとんどないからだ。しかし、「ほとんど意味を成さない」と「実際上不可能」の間に、パフォーマンステストの多様な目的がある。そもそもそうした有意義で実現可能な目的(ステークホルダーがそれらを最初から意識していてくれればいいのだが)がなければ、われわれはパフォーマンステストを行っていないだろう。
わたしはそれらの目的を整理して検討するための分類モデルを考え付いた。そのきっかけは、パフォーマンステストを「テスト」と考えるのをやめ、「ビジネス業務」と考えるようにしたことだ。そう頭を切り替えたら、パフォーマンステストに求める目的がそれぞれ異なる4つの一般的なステークホルダーグループがあることにすぐに気が付いた。それ以来実感しているのだが、その分類モデルを踏まえて話し合い、パフォーマンステストの目的に優先順位を付けることでステークホルダーとの議論の質が根本的に変わり、パフォーマンステストの成果が向上する。また、そうすることで、「テストを設計して実施し、一連の結果を収集した後で、ステークホルダーがまったく違うテストの結果を求めていたことが判明」といった無駄も省ける。この無駄は、ステークホルダーが期待に沿わないテスト結果を実際に目にするまで、求めているテスト結果を明確に伝えられなかったということだ。
一般的な4つのステークホルダーグループは、ビジネスステークホルダー、開発者、エンドユーザー、規制コンプライアンス担当者だ。複数のステークホルダーに同時に役立つパフォーマンステストを行うのが一般的ではあるが、各ステークホルダーが求める目的がそれぞれどのように違うか見てみよう。
ビジネスステークホルダーにとって優先的な目的は以下の通り。
- キャパシティーとスケーラビリティの評価
- 競合他社や現行のシステムとの比較
- ユーザー満足度の予測
- 高くつく、あるいは厄介なトラブルが発生する可能性の予測(と可能性を軽減するための参考情報の入手)
- コンプライアンス評価
- システムの立ち上げに関する意思決定の改善に役立てられるほかの情報の入手
開発者にとって優先的な目的は以下の通り。
- ビルド間のパフォーマンスの傾向
- アーキテクチャと設計モデルの検証
- 構成オプションの比較
- 負荷が掛かった状態でのリソース使用パターンの把握
- 開発者がソフトウェアの開発過程でパフォーマンスの評価と向上に役立てられるほかの情報の入手
エンドユーザーにとって優先的な目的は以下の通り。
- 負荷にかかわらず、確保される応答時間の許容度と一貫性の評価
- 負荷にかかわらず、確保される安定性と機能の完全性の評価
- 推奨クライアントハードウェア/ソフトウェア/構成のパフォーマンス許容度の評価
- エンドユーザーから見て、質の低下につながりそうなほかのパフォーマンス特性の評価
規制コンプライアンス担当者にとって優先的な目的は以下の通り。
- 重要な標準の順守状況の検証と文書化
- 重要な基準の順守状況の評価
- 規制コンプライアンステストを模したテストの開発と実行
- 規制コンプライアンス基準を満たすためのサポートの調整
パフォーマンステストの目的についてステークホルダーと話すときは、上記のような情報を参考にすれば、これまでより実りある話し合いができるだろう。
究極的には、パフォーマンステストを行う目的は1つに帰着する。つまり、ステークホルダーに価値を提供することだ。その認識に立って議論を重ねることによってのみ、パフォーマンステストで提供する価値を高めることができる。
本稿筆者のスコット・バーバー氏は、PerfTestPlusのチーフテクノロジスト。Association for Software Testingのオペレーション担当副社長兼エグゼクティブディレクターも務め、Workshop on Performance and Reliabilityの共同創設者でもある。
Copyright © ITmedia, Inc. All Rights Reserved.