Web アプリケーションのテストの方法とテスト・ツールのまとめ
Web アプリケーションのテストの方法
この記事で Web アプリケーションと言う場合、ブラウザーを介してアクセスされるアプリケーションすべてを指します。このセクションでは、Web アプリケーションのテストに使用する方法について概説します。
ユーザビリティーのテスト
アプリケーションが有効なものであるためには、そのアプリケーションのユーザー・インターフェースが標準に準拠している必要があります。可能な限り、世界的に受け入れられている規則に従う必要があります。例えば色を使い分ける場合の規則として、赤はプロセスの停止に使用され、緑はプロセスの起動に使用されます。
人の手を介したタスクを容易にするために設計されたアプリケーションでは、ユーザビリティーのテストが極めて重要な役割を果たします。アプリケーションはアクセシビリティーの標準に準拠する必要があります。例えば、広く使用されている Captcha コードには、視覚に障害のある人達を考慮した綴り方のオプションがあります。
ユーザビリティーをテストする場合には、以下のガイドラインを守るように心がけてください。
- Web ページ間を適切に移動できるようにする。
- 必ずサイト・マップを用意する。
- 色を組み合わせる場合には適切な組み合わせとなるようにし、また色に関するベスト・プラクティスに従う。
- コンテンツが密になり過ぎないようにする。
- 初心者から専門家に至るまで、あらゆるタイプのユーザーにとって使いやすいものにする。
- 身体に障害のある人へのサポートを提供する。
ユーザー・アクセプタンス・テスト
ユーザー・アクセプタンス・テストの目的は、アプリケーションがユーザーの期待を満たすかどうかを確認することです。ユーザー・アクセプタンス・テストを実行することで、確実にアプリケーションがデプロイされて有効に使用される状態にすることができます。ユーザー・アクセプタンス・テストのためのヒントを以下に挙げます。
- ブラウザーとの互換性を確認する。
- フォームの必須フィールドに確実にデータが入力されるようにする。
- タイムアウトとフィールドの幅が適切かどうかをチェックする。
- データをフィードするために適切なコントロールが使用されることを確実にする。例えば、性別を要求する場合にはオプション・ボタンを使用するようにします。
ユーザー・アクセプタンス・テストには、アルファ・テストとベータ・テストという 2 つのタイプがあります。
- アルファ・テスト
- 開発環境で開発者によってテストが行われます。
- ベータ・テスト
- デプロイメント環境またはクライアント環境でエンド・ユーザーによってテストが行われます。
パフォーマンス・テスト
Web アプリケーションのパフォーマンス・テストでは、さまざまなシナリオでパフォーマンスの測定をします。パフォーマンス・テストには以下のような種類があります。
- ストレス・テスト
- アプリケーションが発揮できる最大のパフォーマンスの限界を判定します。
- スケーラビリティー・テスト
- ソフトウェアとハードウェアの変更に対してアプリケーションがどの程度対応可能かどうかを判定します。
- 負荷テスト
- 負荷が重たいときのアプリケーションの動作を把握します。このテストによって得られる情報には、メモリー使用量や CPU 使用率などに関する詳細が含まれます。
セキュリティー・テスト
データの漏洩や変更が許容されない場合、アプリケーションのセキュリティー・テストは非常に重要です。例えば大学のアプリケーションに学生の成績が含まれる場合であれば、システムをハッキングできないことをセキュリティー・テストによって確認する必要があります。E コマース・アプリケーションには銀行取引が含まれる場合がありますが、そうしたアプリケーションにはセキュリティー・テストが不可欠です。またセキュリティー・テストにより、認証と承認のためのメカニズムが適格であることを確認する必要があります。
セキュリティー・テストには静的なテストと動的なテストがあります。
- 静的なテスト
- 静的なテストでは、静的なコード分析を行い、脆弱性がないかどうかをチェックします。目標は、コード全体を調べてコードのフローを理解し、セキュリティーの脅威がないかどうかをチェックすることです。
- 動的なテスト
- 動的なテストでは、アプリケーションを実行し、リクエストに対する応答が想定どおりかどうかを確認します。このテストはブラックボックス・テストと非常によく似ています。
機能テスト
機能テストでは、個々の機能が適切に動作しているかどうかを確認します。テスト・ケースでは、確実に境界条件がテストされるようにします。入力が無効な場合には適切なエラー・メッセージが表示されるようにする必要があります。
Web アプリケーションの機能テストは、リンクが有効かどうかのテストから、ユーザーが Web ページに加えた変更がデータベースに反映されるかどうかに至るまで、非常に幅があります。Web アプリケーションの機能テストとしては、以下のような例が考えられます。
- データベースのテスト
- 構成のテスト
- 互換性のテスト
- フローのテスト
インターフェース・テスト
インターフェース・テストを行うことで、個々のコンポーネントが適切に接続されているかどうかを確認します。モジュールの出力は、目的のモジュールに何ら問題なく提供される必要があります。複数のプラットフォームで動作するように開発されたアプリケーションでは、インターフェース・テストが重要な役割を担います。インターフェース・テストを行う場合には以下のような点を考慮します。
- 1 つのアプリケーションの中でも複数のアプリケーションの間でも、想定どおりデータがスムーズに流れるかどうかを確認します。
- コンポーネントによって公開されるインターフェースが汎用的で拡張可能かどうかを確認します。コンポーネントによって公開されるインターフェースは、コンポーネントに対する変更に対応できる必要がある一方、後方互換性を維持する必要があります。
Web アプリケーションのテスト・ツール
このセクションでは、Web アプリケーション技術のテストに使用できるテスト手法やテスト・ツール全体の概要について説明します。この記事で取り上げるツールに関しては「参考文献」のリンクを参照してください。
HTML (HyperText Markup Language)
主に HTML コンテンツを含む基本的な Web アプリケーションのテストには、以下のようなツールを使用することができます。
JavaScript
検証を適切に行う上で、クライアント・サイドのスクリプトのテストは不可欠です。JavaScript のテストには以下のようなツールを使用することができます。
Dojo のテスト
Dojo の場合、コマンドラインとブラウザーの両方で DOH (Dojo Objective Harness) テストを実行することができます。DOH は柔軟かつ簡単に使用することができます。
Adobe Flex
Flex など、RIA ベースのアプリケーションのテストには、以下のようなツールを使用することができます。
HTML のリンク
Web サイトの HTML リンクをテストし、どのリンクも切れていないことを確認する必要があります。このタイプのテストに使用できるツールには、オンラインのものもオフラインものも数多くあります。以下にその一例を挙げます。
サーバー・サイドのスクリプト
サーバー・サイド・スクリプト (PHP、ASP、JSP など) で使用可能なテスト・フレームワークがあります。以下にその一例を挙げます。
Web アプリケーションのセキュリティー・テスト
Web サイトはハッキングや DoS 攻撃に耐える必要があります。セキュリティーの脅威には、SQL インジェクション、コマンド・インジェクション、クロスサイト・スクリプティング、サーバー構成エラーなどがあります。セキュリティー・テストに利用できるツールは数多くあり、以下に挙げるのはその一例です。
ブラウザー間の互換性のテスト
サイトの Web コンテンツがすべてのブラウザーで同じように表示されるかどうかを確認します。一部の機能はブラウザーによって動作が異なることに注意してください。ユーザーは自分が使っているブラウザーに特有の機能が使えることを期待するはずです。ブラウザーを使ったテストに利用できるツールには、以下に挙げるようなものがあります。
ダウンロード可能なリソース
関連トピック
- Rational Functional Tester の機能と利点についての資料を読んでください。
- Web アプリケーションのテストを自動化する Selenium ツール・スイートについて学んでください。
- Jspec (JavaScript テスト・フレームワーク) の概要を理解してください。
- RhinoUnit に関する資料を読んでください。
- Dojo テスト・フレームワークの概要、その他 Dojo に関するドキュメントを読んでください。
- FlexMonkey は Flex と AIR をベースとするアプリケーションをテストするための Adobe AIR アプリケーションです。
- FlexUISelenium によるテストの例を見てください。
- WebLight により、XML サイト・マップを維持することができ、またマークアップや CSS、リンクの問題を検出できるため、エラーのない、完全に索引付けされたサイトを維持することができます。
- LinkTiger を使用してリンク切れを検出してください。
- PHPUnit を使用したユニット・テストについての資料を読んでください。
- Cactus を使用して JSP をテストする方法を学んでください。
- JUnit のアーキテクチャーをベースにしたユニット・テスト・フレームワーク、ASPUnit についての資料を読んでください。
- Nikto の使い方を学んでください。Nikto はオープンソース (GPL) の Web サーバー・スキャナーであり、Web サーバーのさまざまな項目に対して総合的なテストを実行することができます。
- Rational AppScan について学んでください。Rational AppScan により、アプリケーション開発のあらゆる段階で、静的および動的なセキュリティー・テストを実行することができます。
- Adobe BrowserLab はクロスブラウザー・テストに役立ちます。
- Microsoft Expression Web に関する詳細を学んでください。
- Selenium をダウンロードしてください。
- RhinoUnit をダウンロードしてください。
- IBM 製品の評価版をダウンロードするか、あるいは IBM SOA Sandbox のオンライン試用版で、DB2®、Lotus®、Rational®、Tivoli®、WebSphere® などが提供するアプリケーション開発ツールやミドルウェア製品を試してみてください。
この記事にはコメントがありません