ソフトウェアテスト技法ドリル勉強会 第6回 #drill6

niftyさん、幹事、講師、演習担当、参加者のみなさん、ありがとうございました。
初参加だったのでひっそりとしていたました。

第6回「ソフトウェアテスト技法ドリル」勉強会 : ATND

宿題

コーヒー、紅茶、お茶、オレンジジュースを購入できる紙コップ型自動販売機の組合せテスト設計をしなさい。条件は以下の通り。
 ・ カップは、普通サイズと、大サイズの2つを選択できる
   → 全ての飲み物で普通サイズ:80円、大サイズ100円とする
 ・ 砂糖について、普通、少なめ、多め、無しを選択可能
   → ただし、お茶とジュースは対象外
 ・ クリームについて、普通、少なめ、多め、無しを選択可能
   → ただし、お茶とジュースは対象外
 ・ お湯増量ボタンがある
   → ただし、ジュースは対象外

こんな感じで、

# 投入金額 0, 10 以上 80 未満で何も選択できない場合とかは不要?
# 押下可能ボタンを光で知らせるというようなものではない? 選択できないものは光らせないとか。
#
投入金額: 80円以上100円未満, 100円以上
種類: コーヒー, 紅茶, お茶, オレンジジュース
カップ: 普通, 大
砂糖: 普通, 少なめ, 多め, 無し
クリーム: 普通, 少なめ, 多め, 無し
お湯増量: 増量, 無し
if([投入金額] = "80円以上100円未満") then ([カップ] = "普通");
if([種類] = "お茶" or [種類] = "オレンジジュース") then ([砂糖] = "無し");
if([種類] = "お茶" or [種類] = "オレンジジュース") then ([クリーム] = "無し");
if([種類] = "オレンジジュース") then ([お湯増量] = "無し");

こんな結果 ソフトウェアテスト技法ドリル勉強会 第6回 宿題 解答


だけど、投入金額は考えないみたい。質問してみれば良かった。
テストするタイミングが違うのかな?

講師発表

前半難しかった。理論分からなくても使えればいいや〜という姿勢でいたからな。

PICT の使い方

無効値: 水準の頭に ~。別因子に無効値がある場合、1 つのテストケースで出てくる無効値は 1 つになる。こんな話もあるみたい 無効値テストの最適化|組み合わせテストケース生成ツール 「PictMaster」 とソフトウェアテストの話題

PICT のコマンドラインオプション
  • /r[:N] ランダムシード。これを指定して、生成されるテストケースを変えたり、同じにしたりする。こういう用途があったのか!
  • /e:file 一度 PICT でテストケースを生成して実施中に、おかしなテストケース発見! 条件が間違っていたという場合。これまで実施したテストケースからおかしなテストケースを除外して、このオプションに与える。モデルファイルも修正しておく。これで既存のテストケース+不足するテストケースを生成してくれる。こいつは、なにものか全然分かっていなかった。
PICT のサブモデルの話

組み合わせテストをオールペア法でスピーディに!:第3回 PICTの機能説明と使用例 (前編)|gihyo.jp … 技術評論社 ここを読んでなんとなくわかったような気になっていた。
説明の中で、こんな書き方をするということで、それに対して秋山さんの指摘も入っていたけれど理解できなかった。

{A, B, C}@3
{D, E}@2

やりたかったことは、これだけでできるのかな〜と思ったけど、どうなんだろう?

{A, B, C}@3

演習 1

フラペチーノの組み合わせテスト。 フラペチーノR カスタマイズ | スターバックス コーヒー

品目を考えずにコーヒー、ミルク、カスタマイズだけで組み合わせを考えていたので、制約が書けなくなってタイムアップ。復習。

品目:アップル クランブル フラペチーノ,ダーク モカ チップ フラペチーノ, ダーク モカ チップ クリーム フラペチーノ, 抹茶 クリーム フラペチーノ, コーヒー ジェリー フラペチーノ, キャラメル フラペチーノ
コーヒー:少なめ, そのまま, 多め, なし
ミルク:ミルク, ローファットミルク, ノンファットミルク, Soy
カスタマイズ:変更しない, シナモンパウダー, ハチミツ, チョコレートソース, ノンホイップクリーム, ヘーゼルナッツシロップ, チョコレートチップ, ホワイトモカシロップ, キャラメルソース, エキストラホイップ, シナモンパウダー

if [品目] = "アップル クランブル フラペチーノ" then [コーヒー] <> "なし";
if [品目] = "アップル クランブル フラペチーノ" then [カスタマイズ] in { "変更しない", "シナモンパウダー", "ハチミツ" };
if [品目] = "ダーク モカ チップ フラペチーノ"  then [コーヒー] <> "なし";
if [品目] = "ダーク モカ チップ フラペチーノ"  then [カスタマイズ] in { "変更しない", "チョコレートソース", "ノンホイップクリーム", "ヘーゼルナッツシロップ" };
if [品目] = "ダーク モカ チップ クリーム フラペチーノ"  then [コーヒー] = "なし";
if [品目] = "ダーク モカ チップ クリーム フラペチーノ"  then [カスタマイズ] in { "変更しない", "チョコレートソース", "ノンホイップクリーム", "ヘーゼルナッツシロップ" };
if [品目] = "抹茶 クリーム フラペチーノ"  then [コーヒー] = "なし";
if [品目] = "抹茶 クリーム フラペチーノ"  then [カスタマイズ] in { "変更しない", "チョコレートチップ", "チョコレートソース", "ノンホイップクリーム" };
if [品目] = "コーヒー ジェリー フラペチーノ" then [コーヒー] <> "なし";
if [品目] = "コーヒー ジェリー フラペチーノ" then [カスタマイズ] in { "変更しない", "ノンホイップクリーム", "キャラメルソース", "ホワイトモカシロップ" };
if [品目] = "キャラメル フラペチーノ" then [コーヒー] <> "なし";
if [品目] = "キャラメル フラペチーノ" then [カスタマイズ] in { "変更しない", "エキストラホイップ", "シナモンパウダー", "ハチミツ" };

結果はこんな ソフトウェアテスト技法ドリル勉強会 第6回 演習1 解答
会の中で話に出ていたテストケースより多め。条件が何か違うような気がする。

演習 2

TestLink のレポート機能をテスト。
酷い! と言われそうだけど……。

こいつと

出力形式:HTML,MS Word
表示対象:Test Plan,Test Specification
TC related Requirements:Y,N
TC related Keywords:Y,N

こいつから

出力形式:HTML,MS Word
表示対象:Test Plan,Test Specification
Table of Contents:Y,N
Test Suite texts:Y,N
Test Case Summary:Y,N
Test Case Scenario:Y,N
Test Case AUthor:Y,N
Test results:Y,N
TC related Requirements:Y,N
TC related Keywords:Y,N

上の結果と下の結果をがっちゃんこ ソフトウェアテスト技法ドリル勉強会 第6回 演習2 解答


実際には、下の結果でもテストケースは 9 個だから全部やっちゃうな。