シナリオテストってよく分からなくないですか?実は、シナリオテストの悩みを解決するヒントが、演劇や映画などの「物語」にあります!
「演劇?映画?ソフトウェアテストに物語は何も関係ないのでは?」
と思われるかもしれません。しかし、「物語」の仕組みを紐解くと、「シナリオテスト」でどのようなシナリオをテストすれば良いのか、その考え方が分かります。なぜ、シナリオテストのヒントが演劇や映画の「物語」から得られるのか?シナリオテストでは、どのようなテストをすれば良いのか?シナリオテストのポイントを物語という面から解説いたします!
シナリオテストってよく分からなくないですか?
シナリオテストとは、その名の通り、シナリオで行うテストのことです。しかし、いざシナリオテストのテストケースを作成しようとすると、どのような「シナリオ」のテストを作成すれば良いのか分からず、戸惑ってしまいませんか?シナリオテストは、開発においてほぼ必ずと言って良いほど行われるテストであり、品質の良いシステムが開発出来ているか確認する重要なテストです。シナリオテストのことをよく分からないままテストを実行しても、良い品質には繋がりません・・・。
なぜ、良い品質に繋がらないのでしょう?その理由は、よく分からないままテストケースを作成しようとした時に出現する、ハマりやすいワナが存在しているからなのです。
シナリオテストでよく陥ってしまうワナ
では、シナリオテストには、どのようなワナが潜んでいるのでしょうか。シナリオテストは大事なテストです。そのため、よく分かっていないながらも、テストを担当する以上、しっかりとしたテストケースを作成しなければいけません。そうした場合、以下のような方法でテストケースを作成することが多いかと思います。
「前任者が作成したテストケースを真似して作成している」
「各機能のテストを順番に操作するように繋げている」
このような方法でテストケースを作成してしまうのは非常に良くないです。このふたつには、以下のような心理が働いているからです。
「(なんとなく・・・)前任者が作成したテストケースを真似して作成している(から、どうしてその内容で検証しなければいけないのかが分からない)。」
「(なんとなく・・・)検証する各機能を順番に繋げている(から、内容が機能テストと同じになってしまう。シナリオテストなのに機能テストと同じ内容を検証することになってしまうが良いのだろうか?)。」
つまり、よく分からないながらも、しっかりとしたテストケースを作成しようとしたのに、結局「なんとなく」テストケースを作成してしまったのです。なんとなくテストケースを作成してしまうと、「そのテストケースで何を検証したいのか」という意図がなくなります。よって、作成したテストケースがシナリオテストとして有効なのか示せなくなります。
「このテストケースは、シナリオテストとして本当に妥当なのだろうか・・・。」
結果、シナリオテストとして適切なのか分からなくなり、不安に駆られてしまうのです。不安に駆られないようにするためには、「シナリオテスト」とは何なのかを理解し、意図を持ってテストケースを作成できるようにならなければいけません。
テストの専門家が体系化した3つのメニューから構成された
ソフトウェアテストの教育サービス
ソフトウェア品質教育サービス「バルカレ」のご紹介
そもそも「シナリオ」って何?
「シナリオテスト」を理解するためには、「シナリオ」について知る必要があります。そもそも「シナリオ」とは何なのでしょうか?言葉の意味を調べてみると、「シナリオ」とは「台本」という意味です。つまり、「シナリオテスト」とは「台本に沿って行うテスト」とも言えますね。「台本」という言葉を聞くと、演劇や映画などを連想しませんか?「台本」は、舞台で繰り広げられる物語を、演劇や映画として表現するためにあります。
「台本は舞台で繰り広げられる物語を表現するためのもの」
実は、これはテストにおいても同じなのです。テストの舞台となるのは開発した「システム」や運用する「サービス」です。システムやサービスにも表現したい物語があり、それを実現するために台本(シナリオ)が必要となるのです。
台本(シナリオ)を用意するにはシステムの物語が必要!
「システムで実現したい物語」とは何なのか?これはとても単純で、「システムを使うことで達成したいこと」、つまりシステムの目的です。演劇や映画と同じように、「システム(舞台)があって、ロール、権限(登場人物)があって、システムを使って何か変化(イベント)が起こる」という物語が存在します。
物語の通りに進行するか、物語の進行を妨げる不具合が無いかを確認するのがシナリオテストなのです。
具体的な例として、ECサイトを物語風にまとめてみますと、以下のようになります。
・舞台(システム)
⇒ フロントエンド、バックエンドなど
・登場人物(ロール、権限など)
⇒ フロントエンド:エンドユーザー
バックエンド:管理者など
・物語(システムで達成したいことと、途中で起こるイベント)
舞台はフロントエンド。商品を購入したいエンドユーザーがその思いをかなえるため、ECサイトにアクセスする。欲しい商品を見つけられたものの、そのままでは購入できないようだ。エンドユーザーは愕然としたが、その瞬間目の前に会員登録が出現した。
「会員登録を行えば商品を購入することができるのか?」
目の前に出現した会員登録に、エンドユーザーは戸惑いを隠せなかったが、商品をどうしても購入したいため、会員登録を行うことを決意する。何か代償があるのでは無いかと覚悟したが、特に何もなく会員登録を終えられたのは幸いだった。会員登録をした結果、手間が掛かると思われた購入処理は円滑に進み、無事商品の購入に成功。購入した商品は無事翌日に届いたのであった。
購入した商品は何故無事に届いたのだろうか?実は裏(バックエンド)では、「エンドユーザーが商品を購入した」という情報が自動的に商品管理者の手に渡るようになっていたらしい。商品管理者はその情報から、エンドユーザーの元に商品が届くよう手配を行っていたことが後になって判明する。
台本(シナリオ)
- フロントエンドにアクセスする。
- 商品検索ページで商品Aを検索する。
- 検索結果に表示された商品Aを選択し、商品Aの詳細画面に遷移する。
- 商品Aをカートに入れた後、購入処理へ進む。
- 「会員登録をして購入する」ボタンから、会員情報入力画面に遷移する。
- 必要な情報を入力し、「会員登録」ボタンを押下し、会員情報入力確認画面へ遷移する。
- 「確定」ボタンを押下し、会員登録を完了させる。
- 会員登録を完了すると、購入確認画面に遷移する。
- 「購入確定」ボタンを押下して、購入を完了する。
- マイページへ移動する。
- 購入履歴に商品Aの購入が追加されていることを確認する。
- 「商品管理者」権限でバックエンドにアクセスする。
- 「商品A」のデータが「出荷手配完了」となっていることを確認する。
いかがでしょうか。台本(シナリオ)は物語がベースになっていることが分かるかと思います。
まとめ
「シナリオテストとは?物語の仕組みから考えてみる」と題して説明してまいりましたが、いかがでしたでしょうか?本記事のタイトルを見た時点では、「物語からシナリオテストのヒントを得る?そんなバカな・・・」と思われたかもしれません。しかし、シナリオテストが良く分からない理由やシナリオテストが難しい背景がわかり、有効なシナリオテストを行うためのポイントがご理解頂けたと思います。効果的なシナリオテストを作り上げるために、陥りがちなワナに気を付けて、システムの物語を考えてみましょう!
当サイトでは、テスト技法を学びたい方、アジャイル開発やマイグレーションのテスト手法について知りたい方、テストアウトソーシングサービスに興味のある方へ、ダウンロード資料を多数ご用意しております。ぜひダウンロードいただき、資料をご活用ください。