Mindmapを利用するシナリオ洗い出し。

More than 3 years have passed since last update.

こんにちは。

先の投稿にはシュード・コードでTCを設計する方法をしめしましたがそれはTDD(Test Driven Development)を狙って作ったものでした。

今度は開発者の観点ではなくて、上流工程のテスト設計をする方法の1つを紹介します。

上流工程なので、一応画面をみながらテスト設計を考えてみましょう。

c0081530_4f5ace2a9dde6.png

画面より考えられるテスト視点は二つです。

1. 環境と状況(Environment or Context)

2. Action


環境と状況(Environment or Context)
Action


上の画面はモバイル・アプリなので、環境また状況は次のように想定しました。
1. ネットワーク切れ、また反応が弱いネットワーク
2. 言語環境:日本語、中国語、英語
対象はログイン画面です。
ログイン画面で洗い出されるActionは次のようです。
1. メール・アドレスを入力する(また空欄に残る)
2. メール・アドレス欄でメール形式ではない文字を入力する。
3. 未登録メール・アドレスを入力する。
4. 暗証番号を入力する(また空欄に残る)
5. 間違い暗証番号を入力する
6. 「パスワードをお忘れ方」をクリックする
7. 「会員登録」をクリックする。

今までの整理をマインド・マップでしてみました

ここで注意すべくのは

Actionは「Yes」,「No」で分けられるように書く

です。こう整理するのが文章を明確にします。

mindmap1.png

これから ActionItem間の従属関係を考えてみましょう。

一応


  • 「ログイン」ボタンをクリック

  • 「パスワードをお忘れ方」をクリック

  • 「会員登録」をクリック

の間は従属関係が見えません。2、3番目は下位で小枝がないのでそれ自体がチェック項目になります。

1番目の「ログイン。。。」の下位項目たちを見ましょう。

「メール・アドレス欄で入力」と「メール・アドレス欄でメール形式ではない文字を入力する」を比べると

「メール・アドレス欄で入力」:Yes

の場合「メール・アドレス欄でメール形式ではない文字を入力する」が成立します。なので、「メール・アドレス欄でメール形式ではない文字を入力する」は「メール・アドレス欄に入力」で従属されてます。

mindmap2.png

「未登録メール・アドレスを入力する」と「メール・アドレス欄でメール形式ではない文字を入力する」の関係も従属関係です。メールアドレスの形式のみ登録されたのかを確認できるからです。

全部整理すればこうなります。

mindmap3.png

マップの枝より「Yes」を含めているルーツを選んでみましょう。



Path+して「ログイン」ボタンをクリック


1
メールアドレス欄で入力→(Yes)→メール・アドレス欄でメール形式ではない文字を入力する→(Yes)


2
メールアドレス欄で入力→(Yes)→メール・アドレス欄でメール形式ではない文字を入力する→(No)
→未登録メール・アドレスを入力する→(Yes)


3
メールアドレス欄で入力→(Yes)→メール・アドレス欄でメール形式ではない文字を入力する→(No)
→未登録メール・アドレスを入力する→(No)→暗証番号を入力する→(No)


4
メールアドレス欄で入力→(Yes)→メール・アドレス欄でメール形式ではない文字を入力する→(No)
→未登録メール・アドレスを入力する→(No)→暗証番号を入力する→(Yes)→間違い暗証番号を入力する
→(Yes)


5
メールアドレス欄で入力→(Yes)→メール・アドレス欄でメール形式ではない文字を入力する→(No)
→未登録メール・アドレスを入力する→(No)→暗証番号を入力する→(Yes)→間違い暗証番号を入力する
→(No)

各ケースを「ログイン1」〜「ログイン5」で名付けましょう。

Action、環境、状況はこれでまとめられます。


Action
ログイン1〜ログイン5


「パスワードをお忘れ方。。」をクリックする


「会員登録」をクリックする。


環境
言語:日本語


言語:中国語


言語:英語


状況
ネットワーク:切られる


ネットワーク:弱い


ネットワーク:正常

最後のテストケースはこの3つの組み合わせで洗い出したす。

組み合わせはPICTMasterというツールを使いました。

PICTMaster1.png

ここでイシューが一つあります。

組み合わせのオプションの中て Number of Combined Parameterをいくらにすればいいかなんです。それは環境状況の軽さに従います。もし言語があんまりミッション・クリッチカルじゃない場合はこの値を1ですればいいです。でも、もし言語がクリッチカルな意味がある場合はこの値を2以上にして、網羅性を高める必要はあります。

PICTMasterSetting.png

これはparameter=1の結果です。

PICTMaster2.png

これはparameter=2の結果です。

PICTMaster3.png

僕はParameter=2の方が合理的に見えるのでそれでケースを整理します。

結果を環境をプライマリー・キーで、状況をセカンダリー・キーでソーティングして整理しました。



Action Scenario


ログイン1
メールアドレス欄で入力→(Yes)→メール・アドレス欄でメール形式ではない文字を入力する→(Yes)


ログイン2
メールアドレス欄で入力→(Yes)→メール・アドレス欄でメール形式ではない文字を入力する→(No)
→未登録メール・アドレスを入力する→(Yes)


ログイン3
メールアドレス欄で入力→(Yes)→メール・アドレス欄でメール形式ではない文字を入力する→(No)
→未登録メール・アドレスを入力する→(No)→暗証番号を入力する→(No)


ログイン4
メールアドレス欄で入力→(Yes)→メール・アドレス欄でメール形式ではない文字を入力する→(No)
→未登録メール・アドレスを入力する→(No)→暗証番号を入力する→(Yes)→間違い暗証番号を入力する
→(Yes)


ログイン5
メールアドレス欄で入力→(Yes)→メール・アドレス欄でメール形式ではない文字を入力する→(No)
→未登録メール・アドレスを入力する→(No)→暗証番号を入力する→(Yes)→間違い暗証番号を入力する
→(No)


No
Action Scenario
状況(ネットワーク)
環境(言語)


1
ログイン5
弱い
中国語


2
ログイン1
弱い
中国語


3
ログイン3
切られる
中国語


4
ログイン2
正常
中国語


5
ログイン4
正常
中国語


6
ログイン3
弱い
英語


7
ログイン1
切られる
英語


8
ログイン2
切られる
英語


9
ログイン4
切られる
英語


10
ログイン5
正常
英語


11
ログイン2
弱い
日本語


12
ログイン4
弱い
日本語


13
ログイン5
切られる
日本語


14
ログイン3
正常
日本語


15
ログイン1
正常
日本語