魅力的なアプリケーションや便利なシステムを作ったとしても、不具合により正常に動作しなければ顧客満足には繋がりません。不具合を減らすには、適切なテスト計画のもとで、あらゆる動作をテストし正常に稼働するかを確かめることが効果的です。今回はテスト計画を立てるために不可欠な「テスト観点」について説明します。
テスト観点とは
テスト観点とは、アプリケーションやシステムが正しく動作するかを確認するために「どの部分で、どのようなテストを行うか」を可視化することをいいます。テストの方向性を決める要素となるため、システム設計段階までに決定しておくことが望ましいです。「テスト設計仕様書」と呼ばれるテストの指針や骨格を示した書類に一覧にして記載されます。
マッチングサービスの会員登録システムを例に上げると、
- 登録のボタンを押したときに、登録画面に遷移するか?
- 登録情報を入力するフォームに文字が入力できるか?
- 使用できないメールアドレスを入力した時に、指定したエラー画面が表示されるか?
- 新規登録後、登録内容が正しく保存されているか?
などがテスト観点として考えられます。
テスト観点はなぜ必要なのか
テスト観点は、正常な動作を保証するために確認するべき要素を整理することで、漏れをなくし、効率的にテストを行うために必要です。
テスト観点を整理しなければ、確認が必要な要素を手当たり次第にテストすることになるため(※)、多くのコストがかかったり、テスト内容に漏れが生じる恐れがあります。テストに漏れが生じることで、不具合の有無を確認できない箇所が生まれテストの意味が薄れてしまいます。
テスト観点を整理することで、事前にテストする要素やその視点を確定させ、テスト実行の際に効率よくテストできるようになります。
※:ヤンキーモンキーテストとも言われ、ダブルチェック時に使われる手法です。
システム開発者とテスト実行者が分かれている場合や、テスト実行者が複数人いる場合には、テストの目的や方向性を全体で統一するという意味でも、テスト観点は重要になります。
テスト観点をつくるポイント
テスト観点は、テストの目的や、対象とするアプリケーションやシステムの内容によって大きく異なります。
テスト観点をつくるためには、
- テストによって、どこまでの品質を担保したいか?
- テストに使える期間がどの程度あるか?
- システムの仕様はどのようにあるべきか?
を明確にすることが必要です。
担保したいシステム品質とテストに使える期間は、どこまで細かく観点を設定するか、どの範囲までテストを行うか、を決定するのに重要な指標となります。
・システムを最低限リリースできる程度の品質にするのか。
・不具合のほぼない完璧に近い品質を目指すのか。
によって観点の数や細かさが異なります。
Webページの画面検証を例に挙げると、
- 最低限の品質を目指すなら「文字表示に崩れがないか」を観点にする。
- 完璧に近い品質を目指すなら「文字の大きさや改行の位置などが、画面サイズやデバイスが変わっても適切に反映されているか」を観点にする。
という違いが生まれます。
完璧を目指したい場合でも、テストに使える期間が短ければ、詳細な観点全てを網羅したテストはできないため、期間に応じて観点を絞ることも必要になります。
システムの仕様を理解することは、具体的なテスト観点を設定するのに不可欠です。
仕様を知ることで、システム利用者がどのような手順でシステムを利用するか、を想定することができます。想定される行動を手順ごとに分割して、手順ごとに不具合がないかを確認できるような観点をつくることはテストにおいて必須です。
Webサイトの会員登録システムを例に挙げると、以下のような利用者の行動とそれに対応するテスト観点が考えられます。
利用者の行動 | 手順ごとのテスト観点例 |
---|---|
登録ボタンを押す | ・登録ボタンを押した際に、登録画面に遷移するか |
メールアドレス・ パスワードを入力する | ・入力フォームに入力ができるか、 ・条件に満たないパスワードを入力した時にエラー画面が表示されるか |
入力したメールアドレス宛てに 届いた確認番号を入力する (メールアドレスの本人確認) | ・入力されたメールアドレスにメールが自動で送信されるか ・送信した番号と入力された番号が一致しているかを判定できるか |
しかし、細部の不具合まで網羅したテスト観点を一からつくることは非常に難しいです。
テスト専門会社GENZのノウハウが詰まったテスト観点表が以下からダウンロードできます。
ぜひ参考にしてください!
テスト観点一覧[表示系]
テスト観点一覧[スマホアプリ系]
テスト観点一覧[Web系]
テスト観点一覧[API系]
GENZでは、徹底したヒアリングと積み重ねてきた1,000種類以上のテスト観点設定から、お客様に最適なテスト観点を提案させていただきます。「システム仕様で特に確認してほしい部分がある」などのお客様からの観点の提案も大歓迎です。テスト完了までお客様と一緒に進めていきます。
段階によるテスト観点の違い
同じシステムであっても、テストの進行段階によって違った観点が必要になります。
システムの概形が完成した後のテストは以下のような流れで行います。
「単体テスト」と「結合テスト」については、以下の記事も参考にしてみてください。
【ゼロからわかるシステムテスト入門】ー単体テストと結合テストの違いー
単体テスト、結合テスト、システムテストでは、それぞれテスト観点が以下のように異なります。Webサイトの会員登録システムを具体例に挙げます。
段階 | テスト観点 | 具体例 |
---|---|---|
単体テスト | 1つの画面・機能が正常か | 会員登録ボタンが押せるか |
結合テスト | 複数の画面・機能の連携が正常か | メールアドレスが入力された後、 入力されたメールアドレスに対して、 確認メールが自動で送信されるか |
システムテスト | システム全体が意図した通りに動くか | 会員登録の一連の動作が不具合なく動作するか |
システムテストを実施し工程が進むにつれて、テスト観点が細分化され、細かな不具合も発見できるようになります。工程ごとに適切な観点を設定することが不具合を効率的になくすことにつながります。
(GENZでは、各テスト工程に応じて、テスト観点を整理する事によりテスト効率向上及び抜け漏れの防止に努めています。)
まとめ
テスト観点とは、システムが正しく動作するかを確認するために「どの部分で、どのようなテストを行うか」を示したものです。
複雑なシステムであっても、各テスト段階ごとにテスト観点を整理することで、あらゆる動作をテストし正常に稼働するか確認することができます。
株式会社GENZでは、ソフトウェア品質テストを中心にITに関するお困りごとに幅広く対応しております。お客様のシステムにあったテスト観点についても、システムの構想段階からお客様と一緒に考えさせていただきます。社内でテストを計画、実施することが困難な場合に、少ないリソースでテストが行えるのもGENZの強みです。
ここまで長々と読んでしまったあなた、
心太(ところてん)には黒蜜か三杯酢どちらをかけますか?
あっ、しまった心太じゃなくて、寒天の話をしてた!!失礼しました。
ぜひGENZと一緒にテストを進めましょう!