前回はテスト工程の最初の段階である単体テストについてご紹介しました。単体テストの次は統合テスト(結合テスト),システムテストと続いていきます。これらの工程でのテスト内容は,対象とするシステム形態やドメインによって異なってきます。
今回は,皆さんがユーザとして活用しているWebアプリケーションを対象に,統合テストやシステムテストで実施するテスト内容について紹介し,中でもアプリケーションの「機能」に着目したテストの観点について掘り下げて紹介します。
Webアプリケーションのテストの特徴
皆さんは普段の生活の中でもWebアプリケーションを利用する機会が多いと思います。情報ポータルサイト,検索サイト,オンラインショッピング,オンラインバンキング,掲示板,ブログ,SNSなどさまざまなWebアプリケーションを使っていることでしょう。また最近は,パソコンだけでなく携帯電話からも実行できるアプリケーションも増えており,今や仕事や趣味に欠かせないツールとなっています。
このようなWebアプリケーションには以下のような特徴があります。
- インターネット(またはイントラネット)を介した情報のやり取り
- さまざまなクライアント環境での画面表示
- 複数のWebページから構成される情報のリンク
- データベースと連携した内部処理
これらの特徴は,普段利用しているときにはあまり意識しないかもしれません。テストをする際は,こういった特徴に基づき,それがきちんと機能しているか,あるいはその特徴によって問題が発生していないかに注意する必要があります。
Webアプリケーションのテストの種類
それでは,こういった特徴を踏まえて,Webアプリケーションのテストの種類別に注意すべき観点を見てみましょう。
機能テスト
Webアプリケーションでは,画面への入力やボタン押下などのアクションの実行により,画面が遷移して処理結果が表示されます。その裏では,データベースが更新されたり,メールが送られたりといった処理が行われることがあります。これらがWebアプリケーションがもつメインの機能となりますので,ある入力やアクションに対して,表示される結果や実行される処理が正しいかどうかを確認する必要があります。
性能テスト
Webアプリケーションを使っていて,なかなか応答が返ってこないという経験は誰でも一度はあるのではないでしょうか。Webでは,よく「8秒ルール」などとも言われるように,ページ全体が表示されるのにあまり時間がかかるようでは,ユーザがストレスを感じてしまい,いくら正しく機能が実行されても,高品質なアプリケーションとは言えません。このようなレスポンスタイムをはじめとして,アプリケーションの性能(パフォーマンス)を測定し,その妥当性を確認するテストが必要になります。
負荷テスト
Webアプリケーションは不特定多数の人から大量のアクセスが集中する可能性があります。スポーツやコンサートのチケット購入サイトが大量のアクセスでダウンしてしまうことがしばしばあります。大量のアクセスに対応できるようにシステムを増強するにはコストがかかってしまいますので,決められたスペックの中で,どこまでの負荷に耐えられるかを把握しておき,その負荷を超えた場合にはシステムがダウンしないような対処をしておくことも必要になります。
ユーザビリティテスト
「人は見た目が9割」などという本が話題になりましたが,Webサイトも見た目が重要です。まずは,色づかいやレイアウトなどが見やすければ第一印象がよくなります。どんなによい情報や素晴らしい機能を提供していても,Webページの印象がよくないと,ユーザは使ってくれません。それに加えて,ユーザがそのサイトで欲しい情報ややりたいことにすぐたどり着けるようなナビゲーションがあったり,使い方が分からないときのためのヘルプが準備されているなどといった配慮も重要になります。
セキュリティテスト
Webアプリケーションを使っていていちばん怖いのは,ネットワーク上に情報が漏れてしまうことでしょう。オンラインショッピングサイトなどを使って,クレジットカードの情報が外に漏れて悪用されたら,ユーザは多大な損害を被ります。そしてそれが訴訟問題に発展すれば,システムを提供している会社や開発を担当した会社にまで損害が及びます。また,悪意のあるユーザがアプリケーションの脆弱性をついて,情報を盗み出したり,システムをダウンさせたりすることもあります。このようなことが起きないように,未然に対策を打っておく必要があります。
これらがWebアプリケーションに対する主なテストとなります。テストの種類としては一般的なテストと大きな違いはありませんが,その中で確認すべきことに関しては,Webアプリケーション特有の観点があることがおわかりいただけたでしょうか。
続いて,今回はこの中から機能テストを取り上げ,より詳細な観点についてご紹介します。

