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