第286回: 「ALTAのテキストをつくろう」41 (ユースケーステスト/前編)
◀前の記事へ 次の記事へ▶︎
≡ はじめに
前回は、「3. テスト技法」の「3.2 ブラックボックステスト技法」の「3.2.6 ペアワイズテスト」の後編として、「ペアワイズテストのカバレッジ、検出できる欠陥の種類」について書きました。
前回の復習は以下で模擬試験問題の確認を通して行います。
今回はJSTQBのALTAシラバスの「3.2.7 ユースケーステスト」の前編として、「ユースケーステストの定義」について書きます。
≡ 前回の復習
以下は前回出題したJSTQB ALTAの模擬試験問題を𝕏にポストした結果です。
投票の結果、選択肢1の「2つのパラメーターの値の組み合わせに関連する欠陥」が76.9%と最も多く、正解も1です。
他の選択肢については、それぞれ別のテスト技法が得意な「欠陥のタイプ」なのですが、わかりますでしょうか。
「2. 特定の条件の組み合わせに基づく論理的な処理が正しく行われず想定外の結果となる欠陥」はデシジョンテーブルテスト、「3. 提示された条件の誤った処理」は今回からのユースケーステスト、「4. 正しくないイベントタイプまたは値」は状態遷移テストです。消去法でも正解に辿り着くことができそうですね。
選択肢2を選んだ方が19.2%いらしたのですが「有則」(デシジョンテーブルテスト)と「無則」(ペアワイズテスト)で区別されると良いと思います。
正答率が高かったので、復習は以上とし、今回のnoteのテーマに移ります。
≡ ユースケーステストの定義
JSTQBのALTAシラバスより該当箇所の全文を引用します。
用語集も引いてみます。シナリオテストが同義語となっています。
したがってユースケーステストとシナリオテストが同義語というのはちょっと無理があるのですが、後で述べる使用者のユースケースのテストはシナリオ形式で作ることが多いことを言っているものと思います。
それで、シラバスの解説ですが、すでに知っている人にしかわからないざっくりとした説明ですよね。
ALでわからなくなったときには、FLのシラバスを読み返してみるといいのですが、FL 4.0からは「ユースケーステスト」が無くなってしまっています。
仕方がないので、前のバージョンの方を読みます。(FLシラバスの「Version 2018V3.1.J03」は、まだ公開中ですので、手元に保存しておくことをお勧めします)
以下は以前のFLの記載です。
こちらの方が詳しく書いてありますので、初級者の方にも参考になると思います。
ちなみに、UMLに興味を持たれた方は以下の書籍がおすすめです。
旧シラバスの話に戻ります。
大事な点は、太字にした、「各ユースケースは、1つのサブジェクトと1つ以上のアクターとの相互作用による振る舞いを明確にする」と、「ユースケースには、基本的な振る舞いのバリエーションである、例外的な振る舞いおよびエラー処理を含むことができる」の所です。
ユースケースと混同しやすいユーザーストーリーのほうには、「誰がどんなことを達成したいのか」を書きます。ユーザーストーリーの関心ごとは「要求を知ろう!」ということだからです。
たまに、ユーザーストーリーを「機能を連鎖したシナリオっぽいもの」で書く人もいますが、ユーザーストーリーを書くときには機能を考えずに、純粋に「(ユーザーが)何をしたいのか」を理解することに焦点を当てるほうが良いです。要求工学の本に書いてあったと思います。
一方でユースケースの方はユーザーストーリーと同じく要求(要件)を理解するためのものですが、太字にした「サブジェクト」(つくるもの、システムとユーザーとの境界)を考えている点が異なります。
利用者の要求を、これから開発するもので、どう叶えるのかについて明らかにするもの(難しく書けばモデル)がユースケースです。
二つ目の太字部分の「ユースケースには、基本的な振る舞いのバリエーションである、例外的な振る舞いおよびエラー処理を含むことができる」というのは、ユーザーの要求はしたいことが中心に語られるけど、例外処理とかエラー処理も必要ということです。
さて、「ユースケーステストの定義」に話を戻しますと、ユースケースを確認するテストがユースケーステストです。
広いと言うことを説明する絵がこちらです。コーバーンという人が言い始めたものです。たぶん『ユースケース実践ガイド』という本にも書いてあると思います。
ユースケースにも色々あるということを示す絵と表です。同じものを意味していますので、表の方で説明します。
まず、レイヤーに違いがあります。ビジネスの話をしているユースケースなのか、使用者がシステムを動かすユースケースなのか、一つひとつの機能の使い方の話なのか、機能を作っている部品の話なのかの軸がレイヤーと言っているものです。
また、もう一つの軸として抽象的なものなのか、具体的なものなのかの軸があります。
一般的にユースケーステストと言えば、使用者のレイヤーで、できるだけ具体化したもの、絵では「船」🚢を対象としたものとなります。
ただし、ときには具体化出来ていない「波」🌊もユースケーステストしなければならないこともありますし、隣接したビジネスや機能のレイヤーのユースケーステストをすることもあります。
その場合でも、できるだけ「船」に近づける努力をする方がいいです。
≡ JSTQB ALTA試験対策
いつものことですが、まずは、「学習の目的」を確認します。
「K4」なので「理解」して「適用」できるだけではなく「分析」まで求められる重要な項目ということです。試験問題には、ユースケーステストをつくることができるかどうか、あるいは、(定義が広いので)ユースケーステストではないものを選ばせる問題が出ると思います。
答えは次回に書きます。
≡ おわりに
今回は、「ユースケーステストの定義」がテーマでした。
定義と言っても「ユースケースを確認するテストがユースケーステスト」といったものなので、「ユースケースって何?」が分かればOKですし、ユーザーシナリオテストとかユーザーストーリーレビューとの違いを理解してもらえると更に良いです。
次回は、「3.2.7 ユースケーステスト」の中編として、「ユースケーステストの適用、制限/注意事項」について書きます。
この記事が気に入ったらサポートをしてみませんか?