JaSST'11 Kyushu 配布資料(スライド)

33
実実CEGTest 実実実実実実実実実実実実実実実 実実 実実 実実実実実実実実実 () JaSST’11 Kyushu 実実実実実実実

Transcript of JaSST'11 Kyushu 配布資料(スライド)

Page 1: JaSST'11 Kyushu 配布資料(スライド)

実践! CEGTestで原因結果グラフを作ってみよう

加瀬 正樹(ニフティ株式会社)

JaSST’11 Kyushu チュートリアル

Page 2: 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 四国『原因結果グラフ技法を学んでみよう!使ってみよう!』

Page 3: JaSST'11 Kyushu 配布資料(スライド)

本日のタイムテーブル

JaSST’11 Kyushu3

20分 原因結果グラフを解説技法の特徴と説明CEGTestの紹介、描き方

30分 CEGTestを動かしてみるツールに触れて、使い方を覚えようデモもします

60分 演習問題に挑戦3問用意しています

10分 おさらい今日のまとめ・振り返り

Page 4: JaSST'11 Kyushu 配布資料(スライド)

JaSST’11 Kyushu4

原因結果グラフの解説

CEGはじめの一歩

Page 5: JaSST'11 Kyushu 配布資料(スライド)

原因結果グラフとは

JaSST’11 Kyushu5

Cause-Effect Graph( CEG) 複雑な仕様を持つテスト対象の入力やイベント (=原因 )の組合せと、出力 (=結果 )との論理関係をグラフ化し、デシジョンテーブルを作成する組合せテスト設計技法

直交表系 デシジョンテーブル系

技法の種類

直交表HAYST法 ®

All-Pair法

デシジョンテーブル原因結果グラフ技法CFD法

効用 入力条件がそれぞれ無関係と思われるテスト対象に適用し、関係がないことを確認する

入力条件が複雑な関係性を持つテスト対象に適用し、論理関係が正しいことを確認する

Page 6: JaSST'11 Kyushu 配布資料(スライド)

原因結果グラフの特徴

JaSST’11 Kyushu6

長所 図式化・整理し、網羅的なテスト条件を作成できる 仕様の矛盾を見つけたり、設計の単純化をしやすくする

短所 仕様からグラフを作成する難しさ (分析・制約 ) グラフからデシジョンテーブルへ変換する難しさ

見直し

Page 7: JaSST'11 Kyushu 配布資料(スライド)

CEGTestとは

JaSST’11 Kyushu7

ブラウザで操作可能な原因結果グラフ描画ツール グラフをサクサク作成することができます グラフからデシジョンテーブルを自動生成します

http://softest.cocolog-nifty.com/labo/CEGTest/

原因結果グラフ

デシジョンテーブル

カバレッジ表

Page 8: JaSST'11 Kyushu 配布資料(スライド)

CEGTestのきほん

JaSST’11 Kyushu8

基本要素(ノード ,リンク) 論理関係( AND, OR) 否定( NOT) 制約( ONE, EXCL, INCL)

その他の制約( REQ, MASK)

http://softest.cocolog-nifty.com/labo/CEGTest/

Page 9: JaSST'11 Kyushu 配布資料(スライド)

原因結果グラフの描き方(1)

JaSST’11 Kyushu9

仕様をノードとリンクと論理関係で表現する 【例】 「この車両は通勤時間帯、女性専用車両です」

論理演算子

ノードは…左側に原因、右側に結果を配置するノードは…命題形式( Yes か No )で表現するノードは…リンクと論理演算子で結ばれるノードは…結果ノードから見つけるとよい

原因ノード

結果ノード

リンク

Page 10: JaSST'11 Kyushu 配布資料(スライド)

原因結果グラフの描き方(2)

JaSST’11 Kyushu10

論理演算子は AND(∧)と OR(∨)の 2種類論理演算子 グラフの例 キーワード

AND(かつ)

Xかつ Y

Xであり、 Y

Xと Yすべて…

OR(または)

Xまたは Y

X あるいは、 Y

Xと Yのいずれか…

Page 11: JaSST'11 Kyushu 配布資料(スライド)

原因結果グラフの描き方(3)

JaSST’11 Kyushu11

グラフは多段の階層化で描ける 【例】 「女性専用車両は車いすの方も乗車可能です」

「女性・車いす」は女性または車いすの方

女性・車いすの方は、通勤時間帯のときは

乗車可能

一番左は原因ノード、一番右は結果ノード間にあるノードは中間ノード

Page 12: JaSST'11 Kyushu 配布資料(スライド)

原因結果グラフの描き方(4)

JaSST’11 Kyushu12

リンクを否定( NOT)で表現する 【例】 「 7時~ 9時、土日・祝日以外が通勤時間帯」

否定記号( NOT)

通勤時間帯は、午前 7時~ 9時か

つ土日・祝日ではない

否定は…リンクに波線(Nの文字)を重ねて表現一般的に、ノード名は肯定文がわかりやすい否定は…例外条件を表すノードにつくことが多い

Page 13: JaSST'11 Kyushu 配布資料(スライド)

原因結果グラフの描き方(5)

JaSST’11 Kyushu13

制約をつける 原因ノードや中間ノードのありえない組合せを見つけて、原因結果グラフに記載する

制約は、複雑な論理関係を簡単に表現したもの制約がないとテストできない組合せがでてきてしまう順序系の制約( REQ、MASK)はちょっと難しい

集合系の制約 順序系の制約ONE制約 REQ制約EXCL制約 MASK制約INCL制約

Page 14: JaSST'11 Kyushu 配布資料(スライド)

原因結果グラフの描き方(6)

JaSST’11 Kyushu14

ONE EXCL(exclusive) INCL(inclusive)

唯一つが真( True)【例】 {男性、女性} { Play、 Stop、 Pause } など

高々一つが真( True)【例】 { 6 歳以下、 65 歳以上} {電車通勤、バス通勤} など

少なくとも一つが真( True)【例】 チェックボックスなど

ONEと EXCLの違いは、全て偽が成立するかどうかテストの目的によって ONE か EXCL を選択する

Page 15: JaSST'11 Kyushu 配布資料(スライド)

参考: REQと MASK

JaSST’11 Kyushu15

REQ(required) MASK(masked)

Aが真になるためには、 Bが真であることが必要商品ボタンは、在庫があって、お金を投入することで表示される。ボタンが表示されて初めて、「ボタン押下」が可能になる。

REQ制約がないと商品ボタンが表示されないのにボタン押下をするテスト条件がでてきてしまう。

Aが真であれば、 Bの真偽がわからない( M)である

クリップボードにデータがなければ、右クリックメニューの「貼り付け( P)」は disableになっている。

ただし、 disableであることを確認したい場合は、 MASKをつけない

Page 16: JaSST'11 Kyushu 配布資料(スライド)

JaSST’11 Kyushu16

CEGTestを動かしてみる

講師と一緒に使ってみよう

Page 17: JaSST'11 Kyushu 配布資料(スライド)

CEGTestの基本操作

JaSST’11 Kyushu17

ノードを配置・編集する リンクを作成・編集する 制約を作成・編集する 位置を移動する エクスポート インポート 編集操作(クリア、リンクの削除)

練習問題

デモ

http://softest.cocolog-nifty.com/labo/CEGTest/

Page 18: JaSST'11 Kyushu 配布資料(スライド)

練習1

JaSST’11 Kyushu18

ここまでに登場したグラフを CEGTestで作ってみよう例

ノードを配置・編集する リンクを作成・編集する 位置を移動する

Page 19: JaSST'11 Kyushu 配布資料(スライド)

練習2

JaSST’11 Kyushu19

以下の原因結果グラフを描いてみよう例

制約を作成・編集する 位置を移動する

Page 20: JaSST'11 Kyushu 配布資料(スライド)

デモ

JaSST’11 Kyushu20

エクスポート インポート 編集操作(クリア、リンクの削除)

Page 21: JaSST'11 Kyushu 配布資料(スライド)

JaSST’11 Kyushu21

演習問題に挑戦

できる問題に挑戦しよう

Page 22: JaSST'11 Kyushu 配布資料(スライド)

演習1(難易度★☆☆)

JaSST’11 Kyushu22

この入園料の仕様を原因結果グラフに表現せよ。

 動物園の入園料は、以下の条件で割引となる。 ・ 6 歳以下で地元住民 ・ 65 歳以上

Page 23: JaSST'11 Kyushu 配布資料(スライド)

演習2(難易度★★☆)

JaSST’11 Kyushu23

以下の仕様について原因結果グラフを作成せよ。

映画館の入場料金について

※レイトショーは、 1,000 円※ 障がい者割引は、 1,000 円

ユナイテッド・シネマ キャナルシティ 13(改変)

大人 1,800 円大学生・高校生 1,500 円中学生以下 1,000 円シニア( 60 歳以上) 1,000 円

Page 24: JaSST'11 Kyushu 配布資料(スライド)

演習3(難易度★★★)

JaSST’11 Kyushu24

会員費が請求されるかどうかの原因結果グラフを作成せよ。

プレミアム会員は月額料金のサービスです。会員費は、登録月は無料ですが、登録した月の途中で解除した場合は 1か月分の会員費が請求されます。また、解除した日付にかかわらず、その月 1か月分の会員費が請求されます(日割り計算はしません)。

引用  http://help.yahoo.co.jp/help/jp/premium/premium-03.html

Page 25: JaSST'11 Kyushu 配布資料(スライド)

JaSST’11 Kyushu25

演習問題の解答

Page 26: JaSST'11 Kyushu 配布資料(スライド)

演習1(難易度★☆☆)

JaSST’11 Kyushu26

この入園料の仕様を原因結果グラフに表現せよ。

 動物園の入園料は、以下の条件で割引となる。 ・ 6 歳以下で地元住民 ・ 65 歳以上

「どちらか」っぽいで→かつ

制約は?

Page 27: JaSST'11 Kyushu 配布資料(スライド)

演習2(難易度★★☆)

JaSST’11 Kyushu27

以下の仕様について原因結果グラフを作成せよ。映画館の入場料金について

※レイトショーは、 1,000 円※ 障がい者割引は、 1,000 円

ユナイテッド・シネマ キャナルシティ 13(改変)

大人 1,800 円大学生・高校生 1,500 円中学生以下 1,000 円シニア( 60 歳以上) 1,000 円

これが結果

原因っぽい

Page 28: JaSST'11 Kyushu 配布資料(スライド)

演習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月に会員費請求

☆ ☆ ☆

☆ ▼

☆ ▼

▼▼

会員費請求は☆(利用している月)

▼(解約した月)のいずれか

Page 29: JaSST'11 Kyushu 配布資料(スライド)

演習3(難易度★★★)

JaSST’11 Kyushu29

会員費が請求されるかどうかの原因結果グラフを作成せよ。

プレミアム会員は月額料金のサービスです。会員費は、登録月は無料ですが、登録した月の途中で解除した場合は 1か月分の会員費が請求されます。また、解除した日付にかかわらず、その月 1か月分の会員費が請求されます(日割り計算はしません)。

引用  http://help.yahoo.co.jp/help/jp/premium/premium-03.html

テストしたい目的はここ

プレミアム会員ならば、解除日が今月かどうかは不明

Page 30: JaSST'11 Kyushu 配布資料(スライド)

JaSST’11 Kyushu30

まとめ

Page 31: JaSST'11 Kyushu 配布資料(スライド)

今日のチュートリアルのまとめ

JaSST’11 Kyushu31

原因結果グラフは論理関係のテスト技法のひとつ DTや CFDよりも難しいのでツールが必要

CEGTestはグラフ作成の無償ツール テスト技法でもあり、仕様・設計の整理も可能

CEGTestを使った個人演習 グラフ(ノード・リンク・制約)の基本的な描き方 仕様・設計を読み解いて、整理する思考 グラフの修正、追記、見直し

目の前のドキュメントの論理関係が見えてきます テスト技法も有効な場面で使わないと効果がでません CEG 以外のテスト技法の使い方も振り返ってみよう

Page 32: JaSST'11 Kyushu 配布資料(スライド)

参考情報

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

Page 33: JaSST'11 Kyushu 配布資料(スライド)

JaSST’11 Kyushu33

2時間お疲れ様でした