WARAIのテスト技法勉強会に参加してみたの
■参加したぞ〜
昨日9月25日にWARAI(関西ソフトウェアテスト勉強会)のソフトウェアテスト技法勉強会に参加しました。
主催者のHOLLYさんはTwitterでフォローしているQA関係の方の一人で、以前テスト設計の勉強会を開きたいと言ったツイートをしていたので、「土日祝なら参加しま〜す」と意思表示をしてて、実際に開催が決まったので参加した形になります。
■デシジョンテーブルを使いこなす
今回はVol.1としてデシジョンテーブルを学ぶ回でした。
最初に「デシジョンテーブルとは」として、デシジョンテーブルの説明とJSTQBの各シラバスとソフトウェア標準用語集での記述の説明。
デシジョンテーブルと言う意味が意思決定表だと言うことは資料を見て初めて知りました。
大体デシジョンテーブルと聞くと、条件指定部には条件が成立するかしないかをYやNで書く方法がメインではないかと思いますが、
下記のように条件指定部分に直接数値や選択肢を記載する方法もあるとのことで、その場合のテーブルは拡張指定とも呼ばれているそうです。
こちらの拡張指定についてはつい数日前に仕事中に知ったばかりで、なおかつその直後に【この1冊でよくわかる】ソフトウェアテストの教科書[増補改訂 第2版]を読んでいた時にも出てきていたので、興味深く読みました。
個人的には拡張指定は仕様把握向けの要素が強い感じでした。
また、ALのシラバス内のデシジョンテーブルについての記述がいくつかピックアップされていたのですが、カバレッジ部分の
この技法の一般的なカバレッジ基準は、デシジョンテーブルの各ルールを 1 つのテストケースでカバーすることである。カバレッジは、テストスイートでカバーされたルールの数と、実行可能なルールの総数の割合として測定する。
特に拡張指定デシジョンテーブルの場合には、境界値分析と同値分割法は、デシジョンテーブル技法と組み合わせることができる。順序付けられた同値パーティションが条件にすべて含まれている場合、境界値はルールやテストケースの追加をもたらす追加項目として使用することができる。
この部分については、以前参加した「仕様把握のためのテスト設計入門」ワークショップを思い出しました。
なお、JSTQBでもシラバスによってと言うよりも、ファウンデーションレベルかアドヴァンスドレベルかによって、記載内容の綿密度が異なる印象を受けました。
自分はデシジョンテーブルの圧縮についてはまだまだ理解が出来ていない部分が正直あります。
ですが、仕様をまとめるには圧縮は効果的かもしれませんが、テストとしては圧縮した部分もきちんと確認した方がいい場合もあるので、圧縮は状況に応じて行う方が良さそうだなと思いました。
■テスト技法ツール
また、テスト技法ツールのGIHOZも紹介されていました。
確か以前HOLLYさんのツイートで紹介されていて、取り敢えず自宅のパソコンでブックマークして軽くいじってみたことがあります。
ペアワイズテスト
デシジョンテーブルテスト
状態遷移テスト
境界値分析
クラシフィケーションツリー法
上記5つのテスト技法を使用できるます。
デシジョンテーブルについては条件を入れて「組み合わせを作成」ボタンを押下すると組み合わせを自動作成してくれますが、圧縮については対応していないので、そこは手動で対応する形になります。
実務で使うかどうかは置いておいて、テスト技法を勉強するのにはいいツールだと思います。
■演習
演習問題は3つ用意されていましたが、時間の関係でその内の最初の2つを実際に行いました。
別途演習問題に合わせた資料も用意されていましたが、そこまで目を通す余裕がなく、プレゼン資料に記載されていた内容だけで作ろうとしたので、ちゃんと把握出来ているデシジョンテーブルが作成できたとは言い難いものでした。
DiscordでHOLLYさんがサンプル画像を添付してくださったのが動作に不明の項目を加えていたデシジョンテーブルでした。
仕様書漏れでその組み合わせではどんな挙動になるかわからない時などに不明にXを入れることでその部分が漏れていることを示せるので、これはいいアイデアだと思いました。
演習問題は仕様が曖昧な箇所があるなど、実際のテスト設計時にあるあるな状態を含んだ内容で、きちんと出来なかった部分も含めて復習したいと思いました。
■まとめ
同値分割や境界値分析はシンプルでわかり易い技法ですが、デシジョンテーブルについては一応基本的なことはわかるしシンプルな問題なら何とか解けると思いますが、今回出された演習問題については、まず条件部分をどうまとめるか四苦八苦しました。
※ついでに言えば、横スクロールしようとして操作ミスで何度も作成途中のテーブルを初期状態にしてしまうと言う現象も多発しました…😅
なかなか意識してテスト技法を使うことがないので、ソフトウェアテスト技法練習帳 ~知識を経験に変える40問~を使って勉強し直さないといけないなぁと反省。
■余談
デシジョンテーブルと言えば、前職で使用していたテストツールのCATでのテスト作成ではパターン(組み合わせ)のケースを作る際はパターン表と言うものを使ってパターンを作成しそれをCATのテストケースに展開してテストケースを作成していたのですが、そのパターン表はデシジョンテーブルをアレンジしたものだったと思います。
そこではテスト実行者だったので殆ど実行しかしていませんでしたが、とは言え実行者であってもパターン表の確認は出来たので、どんなパターンを組んだのか、特にテスト実行中にわかりにくいケースがあった時に確認していたものです。
デシジョンテーブルの指定部分にYやNやN/AやXを付けること自体は好きなのはその影響があるかもしれません。
とは言え、別の記号を使用していたので、そう言う意味では違和感がありますw
また、先述したように圧縮やパターンを削る作業が苦手なので、そこは何とか克服したいところです。
■参考資料
実際に使用した資料です。