PR

効果を最大化するアドホックテストの実行方法

 アドホックテストはテスト担当者ごとの結果のばらつきが大きい。同じソフトウエアを対象にして数十個の不具合を摘出できる人もいれば、1つも摘出できない人もいる。違いは「テスト観点」にある。テスト観点とはソフトウエアが正確に動くかどうかを確認するために、何をどのようにテストするかを表す項目のことだ。アドホックテストでは仕様書に記載されづらいテスト項目が必要となる。以下に筆者が用いる観点の一部を紹介する。これを適切に使いこなせるとアドホックテストの効果は大きくなる。

アドホックテスト特有のテスト観点(特殊観点チェックシート)
観点説明
ブラウザーバック/更新画面遷移中や検索中にブラウザ―バック(戻るボタンやBackspaceキーなどで前のページに戻る)を行った場合の無影響の検証
長押し登録ボタンなどを長押しした場合の無影響の検証
マルチタップ(2本以上の指による同時操作)タッチパネルのマルチタップ操作による無影響の検証
連続更新連続した更新処理を行った場合の反映状況と無影響の検証
ダブルサブミット二重更新の際の無影響の検証
バックグラウンド動作一度アプリをバックグラウンドに落として再度アプリを起動した際の動作の検証
微弱動作携帯電話の電波が弱い場合の動作の検証
金額・カンマ区切りの金額項目に対して(例:1,000円)、手動でカンマを入力した場合の無影響の検証(カンマ入力すると1円になってしまうシステムもあり)
・カンマ区切りの金額項目に対して(例:1,000円)、カンマを二重で入力(例:1,,000円)した場合の影響の検証
直URLページ数など可変の値をURLで保持しているソフトウエアに対して、限界値・境界値を入力した場合の影響の検証
登録後登録画面で登録後にF5押下(リロード)による無影響の検証

 これらのテスト観点を用いると、どのような不具合を検出できるのか。筆者が過去に経験した3つの事例を通じて解説しよう。

 1つめはある企業のECサイトにおける実例だ。このECサイトではログイン画面でユーザーIDとパスワードを入力すると、成人かどうかを確認する同意画面に遷移する。その後、同意にチェックをすると、ECサイトの商品購入画面に遷移する仕様だった。この動作の正常性を結合テストで検証する場合、一般に考えられるテストケースは以下のようになる。

結合テストのテストケース
No工程画面名/確認場所実施手順期待値
1ログイン前ログイン画面ユーザーID、パスワードを入力する同意画面に遷移すること
2ログイン前同意画面20歳以上である旨のチェックを付ける「ENTER」ボタンが活性化されること
3ログイン前同意画面「ENTER」ボタンを押下する商品購入画面に遷移すること

 このテストケースでは、アドホックテストのテスト観点として紹介した「ブラウザーバック」というテスト観点がない。そして、同意画面でチェックを付けずにブラウザーの戻るボタンをクリックすると、商品購入画面に遷移できてしまうという不具合があった。このケースではアドホックテストで不具合を検出できたが、アドホックテストを実施していないとそのままリリースしていた可能性があった。

 2つめは「長押し」というテスト観点に関わる事例。ある企業の証券システムで、株式の取引画面で板情報の手動更新ボタンを長押しすると、メンテナンス中というメッセージを表示する画面に遷移する不具合があった。通常の結合テストでは「手動で更新すると板情報が最新に更新されること」といったテストケースが想定される。この結合テストのテストケースに、ボタンの長押しのような仕様書にない操作を記載することはまずない。こうした不具合は結合テストではなく、アドホックテストでないと摘出できない事項といえる。

 3つめはスマホアプリの事例だ。登録、キャンセルの2つのボタンを出すダイアログ画面で、登録ボタンとキャンセルボタンを同時にタップするとアプリが異常終了する不具合があった。こうした相対する(true、false)処理のマルチタップ(2本以上の指による同時操作)というテスト観点も、通常の結合テストのテストケースで見かけることはまずない。アドホックテストを実施しないとなかなか摘出できない。