ドメイン分析テストの勉強会を開催しました
nagasaki-it-engineers.connpass.com
前回のWACATEにて扱われた、ドメイン分析テストに関する勉強会を開催しました!
WACATE2015 冬 プログラム内容 - WACATE (ソフトウェアテストワークショップ)
(前回のWACATEについては下記レポートをご覧ください)
資料はこちらにあげています。(ちょっと体裁崩れていましたので、修正しました)
当日の流れは、同値分割・境界値分析、ドメイン分析の簡単な説明をした後に演習を2問やりました。
演習にいく前に、スライド内でのInポイントに関するご指摘が。
- Inポイントは、少しずつ値をずらして指定すべき。なぜなら、Inポイントの値をずらさないと、傾きが異なっている場合にエラーが検出できないから。
図で描くとこういうことです。
確かに、Inポイントを全て同じ値にしてテストしてしまうと、傾きが異なっていたとしても検出することができませんね。
これに関して、後半のスライドを修正していますのでご確認ください。
第1問
第1問はこちら。
こちらの問題ですが、かなり議論が白熱しました。
そもそもこれは仕様が穴だらけなのですが、以下のような質問が出ました。
- レベルアップ前のレベルをXとおく?それとも、レベルアップ後のレベルをXとおくのか。(これは、レベルアップ前のレベルをXとおく、という仕様が書かれていませんでした。)
- そもそも何をテスト対象としている?「進化すること」をテストする場合と、「進化しない場合」 どちらをテストするのか。
- どこをテスト対象とするかはテストレベルによっても変わってくるのでは?
- 例えば、純粋に進化することのみをテストするのであればエラーケースである「Lv.100→Lv.101へのレベルアップ」はテストケースとして不要だと思う。
- 最近のスマホゲームやオンラインゲームなどでは、「レベルギャップを外す」という仕様変更が発生する場合がある。そういった場合は、「Lv.100→Lv.101へのレベルアップ」のようなテストケースが必要になってくる。
- 両方ともONポイントの場合はテストしないのか?→ドメイン分析テストではテストしない。
- そもそもドメイン分析テストってなんだ?
- ドメイン分析テストでは、不等式の結果をテストする。条件式が複数あるときに、領域のどちら側にあるんだ?というのをテストする。
「そもそも何をテスト対象としている?」 という疑問は、上の図で言うとどの領域をテスト対象としているのか?ということです。
テストするのが「進化すること」だけであれば、右上の重なった領域のみをテストすればいいわけですが、そうでなければその周りのL字型のドメインをテストする必要が出てきます。L字型ドメインは、さらに2分割してテストする必要が出てきます。
第2問
第2問はこちらです。
作った側としては、変数が3つになった分グラフに書きづらかったりして難しいのかな?と思ったのですが
みなさん、1問目と比べすんなりと解けたようです。
解答後のディスカッションでは、「実際にテストする場合は仕様上定義されている値の他に、最小値と最大値もテストするかもね」という話が出ました。また、「未満」と「以下」の表現が混じっているところにもツッコミが入りました。
こういった勉強会では様々なドメインで仕事をしている人が参加されるので、それぞれのテストのやり方や考え方が議論に現れるのがとても面白いです。
今回勉強会をやってみて、自分自身全然ドメイン分析テストが理解できていないなと感じました。まずは技法ドリルを読み直します…
テストアナリスト資格試験のシラバスにもドメイン分析というワードは出てきますが、まだまだ理解できていないところが多いです。今回も色々な方に教えていただきました。
改めて勉強し直そうと思います!
また、今回初めてワークショップ的な勉強会をやりましたが、問題作成の難しさやファシリテートの難しさも実感できてとても良い機会になりました。
追伸:参加者のブロッコリーさんがブログを書いてくれました!いつもありがとうございます。