Webアプリケーションの負荷テストツールが、なぜ普及しつつあるのか? Part 1
10月に、『アプリケーションの機能テスト自動化が、なぜ進んでいないのか?』というシリーズを書かせて頂きました。
2009/10/05 アプリケーションの機能テスト自動化が、なぜ進んでいないのか?
2009/10/06 アプリケーションの機能テスト自動化が、なぜ進んでいないのか? Part 2
2009/10/07 アプリケーションの機能テスト自動化が、なぜ進んでいないのか? Part 3
2009/10/13 アプリケーションの機能テスト自動化が、なぜ進んでいないのか? Part 4
2009/10/19 アプリケーションの機能テスト自動化が、なぜ進んでいないのか? Part 5
--
今回は、掲題の通り、『Webアプリケーションの負荷テストツールが、なぜ普及しつつあるのか?』をテーマにお送りしたいと思います。
機能テストツールにおいては、普及しない理由(仮説)として、
- 技術・品質レベルが高い=商用テストツール不要論
- テストツールは使いたいけど使えない=高い、難しい、手間がかかる
を挙げさせて頂きましたが、Webアプリケーションを対象とした負荷テストツールに対しては、この2点について、
- 技術・品質レベルが高くとも、負荷テストをツール無しで行う事は容易ではない
- テストツールを使うことで、人的には対応できない過負荷の発生、計測データの収集が可能になる(高い、難しい、手間がかかる については後述します。)
ということで、機能テストツールの普及が進んでいない理由は、そのままでは該当せずに、導入が進みつつある前提が、整いつつあると考えています。
--
実際のところ、負荷を発生させるだけの自前ツールを作ることも可能かと思いますが、頻繁には行っていないレスポンスタイムの計測、各種サーバ・ミドルウェアなどのアプリケーション以外の外部環境リソースの取得、リアルタイムグラフ表示をさせるといった事を開発して維持することはかなりの時間とコストを要することとなり、テストツールを導入する重要なモチベーションになっているかと思います。
多拠点・複数台のコンピュータに分散させてテストを実施するような自前ツールを開発することも、かなりの手間とコストが掛ることでしょう。
1台の標準的なPCで数10~数100もの仮想的なユーザで負荷を掛けるために、仮想ユーザ毎に消費するPCのリソース(CPUやメモリ)を最小化させることも、大変かと思います。
--
歴史的には、商用の負荷テストツールが数10ユーザの負荷で500万円以上のライセンス料が必要で、実際に必要と思われる数100~数1000ユーザの負荷を掛ける為には、かなり高額なライセンス費用が必要だったことで、1994年からの当初10年間は、かなり限られた企業やプロジェクトでのみ、負荷テストツールが導入および活用されていたかと思います。
その後、フリーのツールや廉価な負荷テストツールが徐々に広まり、ここ5年をみると、負荷テストツールは、無償・有償を合わせて、従来の何倍・何10倍もの普及がなされていることでしょう。
次に、利用シーンです。
- サーバ・ネットワークのサイジング時
- アプリケーション開発のカットオーバー直前
- 運用中のバージョンアップリリース毎
というタイミングでの使用が想定されますが、機能テストのように、複雑なテストパスを設計・作成・実行を繰り返す必要もあまりなく、正常系のあるパターンでの過負荷発生を想定して実施するだけでも、負荷テストの目的としては、かなりのウェイトを達成できるので、あとは、「やる」か「やらない」かを判断し、人員・予算および対象のアプリケーションに応じてツールを選定することで、非常に短時間・短期間で、負荷テストを実施できてしまいます。
この「短時間・短期間」で実施できることが、1つの重要な普及の要素となっていると思われます。
ツール選定において、フリーのツールを使用している場合、エキスパートが使いこなして、限定的な要素はあるものの、一定の負荷テストを実現していることでしょう。
また、フリーのツールを使用した経験がありながら、あるいは、使用を検討している段階で、「商用ツールにしよう!」と決定する主な理由としては、当社のお客様の声を聞くと、
- テスト実施までに時間が短くて、習得に時間が掛りそう
- 社内標準化が難しい(サポートが受けられないことを含む)
- 複数のツールで検証することで、確からしさを図りたい
- 対象のアプリケーションで、うまくテストができなかった
といったことが挙げられます。
--
以上のような背景を踏まえて、数回にわたってWebアプリケーションの負荷テストツール導入が進みつつある理由をお伝えしたいと思います。