Web開発において、RIA(リッチ・インターネット・アプリケーション)技術の利用が増えている。Ajax(JavaScript)、Adobe Flex、Silverlight、HTML5、こういった技術により、Webはより動的になり、より豊かな表現力を獲得している。それに伴い、テストや品質管理においても、より新しい実用的な手法が必要とされている。
RIA環境ではブラウザ駆動型の負荷テストが有効
本セッションでは、マイクロフォーカスが実現するテストツールでの開発ライフサイクル全般の品質向上をもとに、前半ではRIA開発におけるテストの注意点などが具体的に、そして後半ではテスト管理ツールの重要性が語られた。また、クラウドを利用した負荷テストなど新しいトピックも取り上げられた。
高橋氏はまず、RIA技術の普及によって、アプリケーションの画面数も多くなり、テストにかける工数も増えているという現状認識を示した。これはリッチなUIを実装できるために、より直感的なアプリを作成しようとしたり、サーバーサイドでやっていた処理までRIAで実行しようとしているためである。
RIA環境での性能(負荷)テストで重要なことは、AjaxなどRIA環境では非同期のHTTP通信が含まれることだ。このため従来のようなHTTPプロトコルベースでテストスクリプトを作成すると、画面中に実行されない箇所ができたり、それに対応するためにスクリプトにウェイトを入れて同期の調整を行わなければならない。
これに効率的に対応するため、ブラウザ駆動型の負荷テストという考え方が出てきた。ブラウザ自体をコントロールし、HTTPプロトコルベースではなく、ブラウザ上で起きる「リンク先をクリックする」といったイベントを記録し、イベントベースのスクリプトを作成・実行するというものだ。
マイクロフォーカス製品では、これを再現するために「Ajaxブラウザ」を組み込み、このブラウザでイベントを記録し、記録したイベントを仮想ユーザーの分だけ再生するということを行う。
また、こういった問題は機能テストでも同様に起きるため、機能テストにおいても、同期の問題に自動的に対応しているツールを選択することが重要だという。
品質管理としてのテストの管理手法
セッションの後半ではテストの管理手法について述べ、テスト管理ツールの重要性について強調されたが、その前に数年前から言葉としてはよく耳にするようになってきたが、なかなか浸透していないテスト手法として、リスクベースドテストを取り上げた。
とくにRIAの環境では、インターフェイスが複雑になるためテストの項目数も増加しており、すべてをテストすることが難しくなっている。そこで、優先順位を決めてテストを実施する考え方がリスクベースドテストである。
テストを実施しなかったときに、どの程度の確率でどのような欠陥が発生し、それがどの程度の重要度かといったことを指標化し、リスクが高いテストから実施する。つまり効果的にリスクを削減できるテストを優先して実行することで、テストをどこまで行えばよいかも判然とする
この際、重要なことはリスク指数を決めることであり、はじめて導入するときには、できるならツールを活用することが効果的だという。ここでテスト管理ツールについてだが、導入すると次のような利点がある。
- テストの実施状況・結果を把握
- テスト担当者の割り当て・管理
- 自動化テストや手動テストを一元管理
- テストケースの標準化・再利用が可能
- 指定したPCでテストの自動実行
- 関連したテストの順次実行の管理
- 要件定義システムやバグ管理システムとの連携
- ノウハウの蓄積・共有・駆使が可能
RIAの性能テストやテストの管理手法を活用することにより、テスト工程やテスト管理の見通しがよくなり、マネージャーやテストエンジニアが実務に集中できる。これがなにより最大の利点であり、それによってノウハウが蓄積できるところが最も重要なメリットだという。