jasst'11 kyushu 配布資料(スライド)
TRANSCRIPT
実践! CEGTestで原因結果グラフを作ってみよう
加瀬 正樹(ニフティ株式会社)
JaSST’11 Kyushu チュートリアル
自己紹介
JaSST’11 Kyushu2
名前 加瀬 正樹(@softest)所属 ニフティ株式会社
http://www.nifty.co.jp/メールサービスのシステム開発・運用迷惑メール対策への取り組み
主な活動 WACATEhttp://wacate.jp/若手テストエンジニアをターゲットにしたソフトウェアテストワークショップ
TEF勉強会http://www.swtest.jp/wiki/index.php主にテスト技法をテーマにしたオフライン勉強会を不定期開催
JaSSTJaSST’10 四国『原因結果グラフ技法を学んでみよう!使ってみよう!』
本日のタイムテーブル
JaSST’11 Kyushu3
20分 原因結果グラフを解説技法の特徴と説明CEGTestの紹介、描き方
30分 CEGTestを動かしてみるツールに触れて、使い方を覚えようデモもします
60分 演習問題に挑戦3問用意しています
10分 おさらい今日のまとめ・振り返り
JaSST’11 Kyushu4
原因結果グラフの解説
CEGはじめの一歩
原因結果グラフとは
JaSST’11 Kyushu5
Cause-Effect Graph( CEG) 複雑な仕様を持つテスト対象の入力やイベント (=原因 )の組合せと、出力 (=結果 )との論理関係をグラフ化し、デシジョンテーブルを作成する組合せテスト設計技法
直交表系 デシジョンテーブル系
技法の種類
直交表HAYST法 ®
All-Pair法
デシジョンテーブル原因結果グラフ技法CFD法
効用 入力条件がそれぞれ無関係と思われるテスト対象に適用し、関係がないことを確認する
入力条件が複雑な関係性を持つテスト対象に適用し、論理関係が正しいことを確認する
原因結果グラフの特徴
JaSST’11 Kyushu6
長所 図式化・整理し、網羅的なテスト条件を作成できる 仕様の矛盾を見つけたり、設計の単純化をしやすくする
短所 仕様からグラフを作成する難しさ (分析・制約 ) グラフからデシジョンテーブルへ変換する難しさ
見直し
CEGTestとは
JaSST’11 Kyushu7
ブラウザで操作可能な原因結果グラフ描画ツール グラフをサクサク作成することができます グラフからデシジョンテーブルを自動生成します
http://softest.cocolog-nifty.com/labo/CEGTest/
原因結果グラフ
デシジョンテーブル
カバレッジ表
CEGTestのきほん
JaSST’11 Kyushu8
基本要素(ノード ,リンク) 論理関係( AND, OR) 否定( NOT) 制約( ONE, EXCL, INCL)
その他の制約( REQ, MASK)
http://softest.cocolog-nifty.com/labo/CEGTest/
原因結果グラフの描き方(1)
JaSST’11 Kyushu9
仕様をノードとリンクと論理関係で表現する 【例】 「この車両は通勤時間帯、女性専用車両です」
論理演算子
ノードは…左側に原因、右側に結果を配置するノードは…命題形式( Yes か No )で表現するノードは…リンクと論理演算子で結ばれるノードは…結果ノードから見つけるとよい
原因ノード
結果ノード
リンク
原因結果グラフの描き方(2)
JaSST’11 Kyushu10
論理演算子は AND(∧)と OR(∨)の 2種類論理演算子 グラフの例 キーワード
AND(かつ)
Xかつ Y
Xであり、 Y
Xと Yすべて…
OR(または)
Xまたは Y
X あるいは、 Y
Xと Yのいずれか…
原因結果グラフの描き方(3)
JaSST’11 Kyushu11
グラフは多段の階層化で描ける 【例】 「女性専用車両は車いすの方も乗車可能です」
「女性・車いす」は女性または車いすの方
女性・車いすの方は、通勤時間帯のときは
乗車可能
一番左は原因ノード、一番右は結果ノード間にあるノードは中間ノード
原因結果グラフの描き方(4)
JaSST’11 Kyushu12
リンクを否定( NOT)で表現する 【例】 「 7時~ 9時、土日・祝日以外が通勤時間帯」
否定記号( NOT)
通勤時間帯は、午前 7時~ 9時か
つ土日・祝日ではない
否定は…リンクに波線(Nの文字)を重ねて表現一般的に、ノード名は肯定文がわかりやすい否定は…例外条件を表すノードにつくことが多い
原因結果グラフの描き方(5)
JaSST’11 Kyushu13
制約をつける 原因ノードや中間ノードのありえない組合せを見つけて、原因結果グラフに記載する
制約は、複雑な論理関係を簡単に表現したもの制約がないとテストできない組合せがでてきてしまう順序系の制約( REQ、MASK)はちょっと難しい
集合系の制約 順序系の制約ONE制約 REQ制約EXCL制約 MASK制約INCL制約
原因結果グラフの描き方(6)
JaSST’11 Kyushu14
ONE EXCL(exclusive) INCL(inclusive)
唯一つが真( True)【例】 {男性、女性} { Play、 Stop、 Pause } など
高々一つが真( True)【例】 { 6 歳以下、 65 歳以上} {電車通勤、バス通勤} など
少なくとも一つが真( True)【例】 チェックボックスなど
ONEと EXCLの違いは、全て偽が成立するかどうかテストの目的によって ONE か EXCL を選択する
参考: REQと MASK
JaSST’11 Kyushu15
REQ(required) MASK(masked)
Aが真になるためには、 Bが真であることが必要商品ボタンは、在庫があって、お金を投入することで表示される。ボタンが表示されて初めて、「ボタン押下」が可能になる。
REQ制約がないと商品ボタンが表示されないのにボタン押下をするテスト条件がでてきてしまう。
Aが真であれば、 Bの真偽がわからない( M)である
クリップボードにデータがなければ、右クリックメニューの「貼り付け( P)」は disableになっている。
ただし、 disableであることを確認したい場合は、 MASKをつけない
JaSST’11 Kyushu16
CEGTestを動かしてみる
講師と一緒に使ってみよう
CEGTestの基本操作
JaSST’11 Kyushu17
ノードを配置・編集する リンクを作成・編集する 制約を作成・編集する 位置を移動する エクスポート インポート 編集操作(クリア、リンクの削除)
練習問題
デモ
http://softest.cocolog-nifty.com/labo/CEGTest/
練習1
JaSST’11 Kyushu18
ここまでに登場したグラフを CEGTestで作ってみよう例
ノードを配置・編集する リンクを作成・編集する 位置を移動する
練習2
JaSST’11 Kyushu19
以下の原因結果グラフを描いてみよう例
制約を作成・編集する 位置を移動する
デモ
JaSST’11 Kyushu20
エクスポート インポート 編集操作(クリア、リンクの削除)
JaSST’11 Kyushu21
演習問題に挑戦
できる問題に挑戦しよう
演習1(難易度★☆☆)
JaSST’11 Kyushu22
この入園料の仕様を原因結果グラフに表現せよ。
動物園の入園料は、以下の条件で割引となる。 ・ 6 歳以下で地元住民 ・ 65 歳以上
演習2(難易度★★☆)
JaSST’11 Kyushu23
以下の仕様について原因結果グラフを作成せよ。
映画館の入場料金について
※レイトショーは、 1,000 円※ 障がい者割引は、 1,000 円
ユナイテッド・シネマ キャナルシティ 13(改変)
大人 1,800 円大学生・高校生 1,500 円中学生以下 1,000 円シニア( 60 歳以上) 1,000 円
演習3(難易度★★★)
JaSST’11 Kyushu24
会員費が請求されるかどうかの原因結果グラフを作成せよ。
プレミアム会員は月額料金のサービスです。会員費は、登録月は無料ですが、登録した月の途中で解除した場合は 1か月分の会員費が請求されます。また、解除した日付にかかわらず、その月 1か月分の会員費が請求されます(日割り計算はしません)。
引用 http://help.yahoo.co.jp/help/jp/premium/premium-03.html
JaSST’11 Kyushu25
演習問題の解答
演習1(難易度★☆☆)
JaSST’11 Kyushu26
この入園料の仕様を原因結果グラフに表現せよ。
動物園の入園料は、以下の条件で割引となる。 ・ 6 歳以下で地元住民 ・ 65 歳以上
「どちらか」っぽいで→かつ
制約は?
演習2(難易度★★☆)
JaSST’11 Kyushu27
以下の仕様について原因結果グラフを作成せよ。映画館の入場料金について
※レイトショーは、 1,000 円※ 障がい者割引は、 1,000 円
ユナイテッド・シネマ キャナルシティ 13(改変)
大人 1,800 円大学生・高校生 1,500 円中学生以下 1,000 円シニア( 60 歳以上) 1,000 円
これが結果
原因っぽい
演習3(難易度★★★)
JaSST’11 Kyushu28
会員費が請求されるかどうかの原因結果グラフを作成せよ。
プレミアム会員は月額料金のサービスです。会員費は、登録月は無料ですが、登録した月の途中で解除した場合は 1か月分の会員費が請求されます。また、解除した日付にかかわらず、その月 1か月分の会員費が請求されます(日割り計算はしません)。
引用 http://help.yahoo.co.jp/help/jp/premium/premium-03.html
テストしたい目的はここ
6 月、 7 月、 8 月に会員費請求
7 月、 8 月に会員費請求
7 月、 8 月に会員費請求
6月に会員費請求
7月に会員費請求
8月に会員費請求
☆ ☆ ☆
☆ ▼
☆ ▼
▼
▼▼
会員費請求は☆(利用している月)
▼(解約した月)のいずれか
演習3(難易度★★★)
JaSST’11 Kyushu29
会員費が請求されるかどうかの原因結果グラフを作成せよ。
プレミアム会員は月額料金のサービスです。会員費は、登録月は無料ですが、登録した月の途中で解除した場合は 1か月分の会員費が請求されます。また、解除した日付にかかわらず、その月 1か月分の会員費が請求されます(日割り計算はしません)。
引用 http://help.yahoo.co.jp/help/jp/premium/premium-03.html
テストしたい目的はここ
プレミアム会員ならば、解除日が今月かどうかは不明
JaSST’11 Kyushu30
まとめ
今日のチュートリアルのまとめ
JaSST’11 Kyushu31
原因結果グラフは論理関係のテスト技法のひとつ DTや CFDよりも難しいのでツールが必要
CEGTestはグラフ作成の無償ツール テスト技法でもあり、仕様・設計の整理も可能
CEGTestを使った個人演習 グラフ(ノード・リンク・制約)の基本的な描き方 仕様・設計を読み解いて、整理する思考 グラフの修正、追記、見直し
目の前のドキュメントの論理関係が見えてきます テスト技法も有効な場面で使わないと効果がでません CEG 以外のテスト技法の使い方も振り返ってみよう
参考情報
JaSST’11 Kyushu32
「ソフトウェアテスト技法ドリル」,秋山 浩一著 http://www.amazon.co.jp/dp/4817193603/
原因結果グラフによるテスト設計支援ツール – CEGTest http://softest.cocolog-nifty.com/blog/cegtest.html 連絡先 [email protected]
TEF主催勉強会資料( 2011 年 2 月 7日) http://www.swtest.jp/wiki/index.php?TEF
%2FStudyMeeting%2F20110207 http://togetter.com/li/98166
JaSST’11 Kyushu33
2時間お疲れ様でした