SlideShare a Scribd company logo
原因結果 グラフ技法 を学 んでみよう!
            使 ってみよう!

2010 年 7 月 2 日  加瀬正樹( ニフティ株式会社)
はじめに
   原因結果グラフ技法を学ぼう
       まずは「原因結果グラフ」について解説します
       例題を使って「原因結果グラフ」を描いてみます
   演習問題のグラフを作ってみよう
       まずは一人で描いてみよう
       近くの人とグラフの違いを見比べてみよう
   ツールを使って使ってみよう
       支援ツール「 CEGTest 」を使って、演習問題を解いてみよう
       デシジョンテーブルについても少し解説します
       解答を発表してみよう
                             途中 で
                             休憩 をいれます


2                        ソフトウェアテストシンポジウム 2010 四国
自己紹介
名前     加瀬 正樹
所属     ニフティ株式会社
        http://www.nifty.co.jp/
        会員向けのメールサービスのシステム開発
        や迷惑メール対策への取り組み
主な活動
       WACATE
        http://wacate.jp/
        若手テストエンジニアをターゲットにした
        ソフトウェアテストワークショップ

       TEF 勉強会
        http://www.swtest.jp/wiki/index.php
3       主にテスト技法をテーマにしたオフライン
                    ソフトウェアテストシンポジウム 2010 四国
原因結果グラフ技法の解説




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

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

    技法の     直交表              デシジョンテーブル
    種類                       原因結果グラフ技法
            HAYST 法 ®
                             CFD 法
            All-Pair 法
    効用      入力条件がそれぞれ無       入力条件が複雑な関係性を
            関係と思われるテスト       持つテスト対象に適用し、
            対象に適用し、関係が       論理関係が正しいことを確
            ないことを確認する        認する

5                            ソフトウェアテストシンポジウム 2010 四国
原因結果グラフ技法の効果
   仕様バグを見つけたり、仕様自体の見直しができる



        見直 し

               見直 し
   論理関係の網羅性が高いテスト条件を作れる
                      カバレッジ表 を用 い
                      て
                      効率的 にテスト条件
                      が
                      作 れます


6                     ソフトウェアテストシンポジウム 2010 四国
原因結果グラフ技法の手順
① 原因結果 グラフを作                             ② デシジョンテーブルを作成
成
                                                        #   #    #
      毎時 0                                              1   2    3
                 ∨                       原因
E     分              定刻                       毎時 0 分    T    F    F
      毎時 30 分             ∧
                              音が鳴る            毎時 30 分   F   T    F
                                              通知設定
                                                        T   F    T
      通知設定
                                         中間   定刻
                                                        T   T    F
                                         結果   音が鳴る
                                                        T   F    F
③ テストケースを作
成
      テストケース                         期待結果
No
                                     音が鳴る
1-1   通知設定をして 0 時 0 分
                                     音は鳴らない
2-1   通知設定をせず 1 時 30 分
                                     音は鳴らない
3-1   通知設定をして 2 時 1 分
                                     音は鳴らない
3-2   通知設定をして 11 時 59 分

…     …                              …


7                                        ソフトウェアテストシンポジウム 2010 四国
原因結果グラフの作成




8         ソフトウェアテストシンポジウム 2010 四国
例題
例  ATM の手数料
  ATM では引出、預入、振込の機能があり、夜 23 時~翌朝 8 時までは手
  数料が発生する。ただし、優遇会員の場合は、終日手数料がかからない
  。




9                     ソフトウェアテストシンポジウム 2010 四国
原因結果グラフの描き方(1 / 3)
   仕様から原因・結果を見つける
        「結果」とはテストで確認したいこと!             手数料 がかかる
        仕様書をボールペンで汚してみよう!              かどうか

例  ATM の手数料
  ATM では引出、預入、振込の機能があり、夜 23 時~翌朝 8 時までは手
  数料が発生する。ただし、優遇会員の場合は、終日手数料がかからない
  。


    手数料あり                                 手数料なし
                    振込     夜 23 時~朝 8
                           時
               預入
                         優遇会員
          引出                              手数料あり でない


10                              ソフトウェアテストシンポジウム 2010 四国
原因結果グラフの描き方(2 / 3)
   原因と結果を結び付ける
        「 IF ~ THEN ~」が見つかれば、論理関係がある!
        仕様を言い換えてみる!

例  ATM の手数料
   ATM では引出、預入、振込の機能があり、夜 23 時~翌朝 8 時までは手
   数料が発生する。ただし、優遇会員の場合は、終日手数料がかからない
   。
夜 23 時~朝 8   優遇会員      ATM 利用
        かつ      以外で       なら 手数料あり
時
                     または    または 振込
                  引出     預入


IF          ∧¬      ∧       THEN
   夜 23 時~朝 8  優遇会員    ATM 利用           手数料あり
   時
IF     ∨    ∨     THEN
   引出     預入  振込        ATM 利用

11                         ソフトウェアテストシンポジウム 2010 四国
原因結果グラフの描き方(2 / 3)
   原因と結果を結び付ける


                     OR 条件 で
       引出            結 び付 ける

       預入           ∨ ATM 利用

       振込                         ∧ 手数料あり


       夜 23 時~朝 8                AND 条件
       時                         で
                       ~ は否定 を   結 び付 ける
       優遇会員            表す
12                      ソフトウェアテストシンポジウム 2010 四国
原因結果グラフの描き方(3 / 3)
   制約を見つける
        ありえない組合せを除去するために制約を考える!


例  ATM の手数料
  ATM では引出、預入、振込の機能があり、夜 23 時~翌朝 8 時までは手
  数料が発生する。ただし、優遇会員の場合は、終日手数料がかからない
  。




引出   預入   振込
   と    と    はいずれか1つだけ利用可能 ⇒          ONE




13                     ソフトウェアテストシンポジウム 2010 四国
原因結果グラフの描き方(3 / 3)
   制約を見つける
        ありえない組合せを除去するために制約を考える!

ONE 制約 を書 きこむ
           引出


ONE        預入           ∨ ATM 利用

           振込                          ∧ 手数料あり


           夜 23 時~朝 8
           時

           優遇会員

14                           ソフトウェアテストシンポジウム 2010 四国
(参考)原因結果グラフの制約
     ONE 制約
       唯一つだけが真( T )となる制約
       例)男性、女性
         勝ち、負け、引き分け


     EXCL 制約
       高々一つが真( T )となる制約
       例)小学生、中学生、高校生
          PowerUser 、 AdminUser


     INCL 制約
       少なくとも一つが真( T )となる制約
       例) JaSST 四国を知った経緯
         テストで興味のある分野


15                   ソフトウェアテストシンポジウム 2010 四国
(参考)原因結果グラフの制約
     REQ 制約
       A が真( T )であるためには B 、 C が真( T )でな
       ければならない
       例)ランプが点灯するには電源が必要



     MASK 制約
       A が真( T )ならば B 、 C の真偽は確認できない
       (M)
       例)全スライド印刷ならば、ページ指定は disable




16                ソフトウェアテストシンポジウム 2010 四国
原因結果グラフの完成!
例  ATM の手数料
  ATM では引出、預入、振込の機能があり、夜 23 時~翌朝 8 時までは手
  数料が発生する。ただし、優遇会員の場合は、終日手数料がかからない
  。

      引出


ONE   預入           ∨ ATM 利用

      振込                          ∧ 手数料あり


      夜 23 時~朝 8
      時

      優遇会員

17                      ソフトウェアテストシンポジウム 2010 四国
それでは、個人演習スタート!




          紙 とペンを使 って
          原因結果 グラフを描 こう!


18            ソフトウェアテストシンポジウム 2010 四国
演習 1  FTPクライアントソフト
接続ボタンをクリックすると設定されたサーバにログイン
する。パスワードが誤りの場合は、エラーが表示される。
また、パスワードが未設定の場合も同様。閉じるボタンを
クリックして FTP ソフトは終了する。




19            ソフトウェアテストシンポジウム 2010 四国
演習 2  メモ帳の保存
メモ帳でファイルを保存するには「上書保存 (S) 」「名前
を付けて保存 (A) 」の 2 通りある。「名前を付けて保存
(A) 」の場合、ダイアログが表示される。新規ファイルの
場合はいずれの場合もダイアログ表示。




20               ソフトウェアテストシンポジウム 2010 四国
CEGTest を使ってグラフを描こう!




            ノート PC をお持 ちの方 は
            ツールのご用意 を


21               ソフトウェアテストシンポジウム 2010 四国
支援ツール「 CEGTest (セグテスト)」
   ブラウザベース( JavaScript )のテスト設計支援
    ツール




22                  ソフトウェアテストシンポジウム 2010 四国
支援ツール「 CEGTest (セグテスト)」
   マウス操作で原因結果グラフが描ける!
   編集しながら、デシジョンテーブルも自動更新!
   インポート・エクスポートが可能!




             IE 、 Firefox 、 Chrome 、 S
             afari 、 Opera で動作 します


23                   ソフトウェアテストシンポジウム 2010 四国
(参考)デシジョンテーブルとは?
   論理関係を表形式で整理するためのツールで、行方
    向に条件と動作、列方向にルールの組合せる
                      #1   #2   #3   #4   #5

     条件 テストに興味がある
                      T     F    F    F   T
          品質に興味がある    -                   -
                        T        F    F
          会社の指示       - -                 -
                                T     F
          予定があいている
                      T    T    T    T     F
     動作
          JaSST に参加   T    T    T     F    F
             「 テストに興味 がある 」 かつ 「予定 があいてい
             る」
             ⇒  「 JaSST に参加」
24                         ソフトウェアテストシンポジウム 2010 四国
演習 3   ToDo リストアプリの表示テスト
ToDo リストアプリがあり、一覧
表示は以下の条件で強調される
。
                                             ×
   •期限切れ:赤字・太字
                     日付     タイトル        状態
   •期限当日:太字
                     6/30   PPT 作成      変更▼
また、タスク重要度( A > B >
                     7/2    テスト仕様書 …    変更▼
C )が C のときは強調されず、完
                     7/5    メンテ作業       変更▼
了タスクは一覧表示されない
                     7/6    資料チェック      変更▼

                                ▽next



                                        B▼
                            年   月   日   追加


25               ソフトウェアテストシンポジウム 2010 四国
最後にまとめです




         演習 お疲 れ様 でし
         た!

26        ソフトウェアテストシンポジウム 2010 四国
今日の演習を今後につなげよう
   原因結果グラフを作ってみました
       仕様バグを見つけたり、仕様の見直しに役立てよう!
       論理関係のバグ探しが効率的になるよ!
   CEGTest を使ってみました
       気軽に CEG をテスト設計に使ってみよう!
       CEGTest マスターになろう!


    CEGTest
    http://softest.cocolog-nifty.com/blog/cegtest.html
    お問い合わせ
    kase.masaki@gmail.com

27                                 ソフトウェアテストシンポジウム 2010 四国
3 時間お疲れ様でした!




28          ソフトウェアテストシンポジウム 2010 四国

More Related Content

More from Masaki Kase (7)

WACATE2018 夏 原因結果グラフ解説
WACATE2018 夏 原因結果グラフ解説WACATE2018 夏 原因結果グラフ解説
WACATE2018 夏 原因結果グラフ解説
 
WACATE2018 夏 原因結果グラフ演習問題 解答例
WACATE2018 夏 原因結果グラフ演習問題 解答例WACATE2018 夏 原因結果グラフ演習問題 解答例
WACATE2018 夏 原因結果グラフ演習問題 解答例
 
WACATE2018 夏 原因結果グラフ演習問題
WACATE2018 夏 原因結果グラフ演習問題WACATE2018 夏 原因結果グラフ演習問題
WACATE2018 夏 原因結果グラフ演習問題
 
ISPにおける迷惑メール対策と法律
ISPにおける迷惑メール対策と法律ISPにおける迷惑メール対策と法律
ISPにおける迷惑メール対策と法律
 
WACATE2010w テスト技法ワーク_スライド
WACATE2010w テスト技法ワーク_スライドWACATE2010w テスト技法ワーク_スライド
WACATE2010w テスト技法ワーク_スライド
 
20120624 wacate2012 s_イブニングセッション(当日用)
20120624 wacate2012 s_イブニングセッション(当日用)20120624 wacate2012 s_イブニングセッション(当日用)
20120624 wacate2012 s_イブニングセッション(当日用)
 
20101130 南東京iphone開発3
20101130 南東京iphone開発320101130 南東京iphone開発3
20101130 南東京iphone開発3
 

JaSST'10 Shikoku 公開資料

  • 1. 原因結果 グラフ技法 を学 んでみよう! 使 ってみよう! 2010 年 7 月 2 日  加瀬正樹( ニフティ株式会社)
  • 2. はじめに  原因結果グラフ技法を学ぼう  まずは「原因結果グラフ」について解説します  例題を使って「原因結果グラフ」を描いてみます  演習問題のグラフを作ってみよう  まずは一人で描いてみよう  近くの人とグラフの違いを見比べてみよう  ツールを使って使ってみよう  支援ツール「 CEGTest 」を使って、演習問題を解いてみよう  デシジョンテーブルについても少し解説します  解答を発表してみよう 途中 で 休憩 をいれます 2 ソフトウェアテストシンポジウム 2010 四国
  • 3. 自己紹介 名前 加瀬 正樹 所属 ニフティ株式会社 http://www.nifty.co.jp/ 会員向けのメールサービスのシステム開発 や迷惑メール対策への取り組み 主な活動 WACATE http://wacate.jp/ 若手テストエンジニアをターゲットにした ソフトウェアテストワークショップ TEF 勉強会 http://www.swtest.jp/wiki/index.php 3 主にテスト技法をテーマにしたオフライン ソフトウェアテストシンポジウム 2010 四国
  • 4. 原因結果グラフ技法の解説 4 ソフトウェアテストシンポジウム 2010 四国
  • 5. 原因結果グラフ技法とは  Cause-Effect Graph ( CEG )  複雑な仕様を持つテスト対象の入力やイベント (= 原因 ) の組合せと、出力 (= 結果 ) との論理関係 をグラフ化し、 デシジョンテーブルを作成する組合せテスト設計技法 直交表系 デシジョンテーブル系 技法の 直交表 デシジョンテーブル 種類 原因結果グラフ技法 HAYST 法 ® CFD 法 All-Pair 法 効用 入力条件がそれぞれ無 入力条件が複雑な関係性を 関係と思われるテスト 持つテスト対象に適用し、 対象に適用し、関係が 論理関係が正しいことを確 ないことを確認する 認する 5 ソフトウェアテストシンポジウム 2010 四国
  • 6. 原因結果グラフ技法の効果  仕様バグを見つけたり、仕様自体の見直しができる 見直 し 見直 し  論理関係の網羅性が高いテスト条件を作れる カバレッジ表 を用 い て 効率的 にテスト条件 が 作 れます 6 ソフトウェアテストシンポジウム 2010 四国
  • 7. 原因結果グラフ技法の手順 ① 原因結果 グラフを作 ② デシジョンテーブルを作成 成 # # # 毎時 0 1 2 3 ∨ 原因 E 分 定刻 毎時 0 分 T F F 毎時 30 分 ∧ 音が鳴る 毎時 30 分 F T F 通知設定 T F T 通知設定 中間 定刻 T T F 結果 音が鳴る T F F ③ テストケースを作 成 テストケース 期待結果 No 音が鳴る 1-1 通知設定をして 0 時 0 分 音は鳴らない 2-1 通知設定をせず 1 時 30 分 音は鳴らない 3-1 通知設定をして 2 時 1 分 音は鳴らない 3-2 通知設定をして 11 時 59 分 … … … 7 ソフトウェアテストシンポジウム 2010 四国
  • 8. 原因結果グラフの作成 8 ソフトウェアテストシンポジウム 2010 四国
  • 9. 例題 例  ATM の手数料 ATM では引出、預入、振込の機能があり、夜 23 時~翌朝 8 時までは手 数料が発生する。ただし、優遇会員の場合は、終日手数料がかからない 。 9 ソフトウェアテストシンポジウム 2010 四国
  • 10. 原因結果グラフの描き方(1 / 3)  仕様から原因・結果を見つける  「結果」とはテストで確認したいこと! 手数料 がかかる  仕様書をボールペンで汚してみよう! かどうか 例  ATM の手数料 ATM では引出、預入、振込の機能があり、夜 23 時~翌朝 8 時までは手 数料が発生する。ただし、優遇会員の場合は、終日手数料がかからない 。 手数料あり 手数料なし 振込 夜 23 時~朝 8 時 預入 優遇会員 引出 手数料あり でない 10 ソフトウェアテストシンポジウム 2010 四国
  • 11. 原因結果グラフの描き方(2 / 3)  原因と結果を結び付ける  「 IF ~ THEN ~」が見つかれば、論理関係がある!  仕様を言い換えてみる! 例  ATM の手数料 ATM では引出、預入、振込の機能があり、夜 23 時~翌朝 8 時までは手 数料が発生する。ただし、優遇会員の場合は、終日手数料がかからない 。 夜 23 時~朝 8 優遇会員 ATM 利用         かつ      以外で       なら 手数料あり 時    または    または 振込 引出 預入 IF          ∧¬      ∧       THEN 夜 23 時~朝 8 優遇会員 ATM 利用 手数料あり 時 IF     ∨    ∨     THEN 引出 預入 振込 ATM 利用 11 ソフトウェアテストシンポジウム 2010 四国
  • 12. 原因結果グラフの描き方(2 / 3)  原因と結果を結び付ける OR 条件 で 引出 結 び付 ける 預入 ∨ ATM 利用 振込 ∧ 手数料あり 夜 23 時~朝 8 AND 条件 時 で ~ は否定 を 結 び付 ける 優遇会員 表す 12 ソフトウェアテストシンポジウム 2010 四国
  • 13. 原因結果グラフの描き方(3 / 3)  制約を見つける  ありえない組合せを除去するために制約を考える! 例  ATM の手数料 ATM では引出、預入、振込の機能があり、夜 23 時~翌朝 8 時までは手 数料が発生する。ただし、優遇会員の場合は、終日手数料がかからない 。 引出 預入 振込    と    と    はいずれか1つだけ利用可能 ⇒ ONE 13 ソフトウェアテストシンポジウム 2010 四国
  • 14. 原因結果グラフの描き方(3 / 3)  制約を見つける  ありえない組合せを除去するために制約を考える! ONE 制約 を書 きこむ 引出 ONE 預入 ∨ ATM 利用 振込 ∧ 手数料あり 夜 23 時~朝 8 時 優遇会員 14 ソフトウェアテストシンポジウム 2010 四国
  • 15. (参考)原因結果グラフの制約 ONE 制約 唯一つだけが真( T )となる制約 例)男性、女性   勝ち、負け、引き分け EXCL 制約 高々一つが真( T )となる制約 例)小学生、中学生、高校生    PowerUser 、 AdminUser INCL 制約 少なくとも一つが真( T )となる制約 例) JaSST 四国を知った経緯   テストで興味のある分野 15 ソフトウェアテストシンポジウム 2010 四国
  • 16. (参考)原因結果グラフの制約 REQ 制約 A が真( T )であるためには B 、 C が真( T )でな ければならない 例)ランプが点灯するには電源が必要 MASK 制約 A が真( T )ならば B 、 C の真偽は確認できない (M) 例)全スライド印刷ならば、ページ指定は disable 16 ソフトウェアテストシンポジウム 2010 四国
  • 17. 原因結果グラフの完成! 例  ATM の手数料 ATM では引出、預入、振込の機能があり、夜 23 時~翌朝 8 時までは手 数料が発生する。ただし、優遇会員の場合は、終日手数料がかからない 。 引出 ONE 預入 ∨ ATM 利用 振込 ∧ 手数料あり 夜 23 時~朝 8 時 優遇会員 17 ソフトウェアテストシンポジウム 2010 四国
  • 18. それでは、個人演習スタート! 紙 とペンを使 って 原因結果 グラフを描 こう! 18 ソフトウェアテストシンポジウム 2010 四国
  • 20. 演習 2  メモ帳の保存 メモ帳でファイルを保存するには「上書保存 (S) 」「名前 を付けて保存 (A) 」の 2 通りある。「名前を付けて保存 (A) 」の場合、ダイアログが表示される。新規ファイルの 場合はいずれの場合もダイアログ表示。 20 ソフトウェアテストシンポジウム 2010 四国
  • 21. CEGTest を使ってグラフを描こう! ノート PC をお持 ちの方 は ツールのご用意 を 21 ソフトウェアテストシンポジウム 2010 四国
  • 22. 支援ツール「 CEGTest (セグテスト)」  ブラウザベース( JavaScript )のテスト設計支援 ツール 22 ソフトウェアテストシンポジウム 2010 四国
  • 23. 支援ツール「 CEGTest (セグテスト)」  マウス操作で原因結果グラフが描ける!  編集しながら、デシジョンテーブルも自動更新!  インポート・エクスポートが可能! IE 、 Firefox 、 Chrome 、 S afari 、 Opera で動作 します 23 ソフトウェアテストシンポジウム 2010 四国
  • 24. (参考)デシジョンテーブルとは?  論理関係を表形式で整理するためのツールで、行方 向に条件と動作、列方向にルールの組合せる #1 #2 #3 #4 #5 条件 テストに興味がある T F F F T 品質に興味がある - - T F F 会社の指示 - - - T F 予定があいている T T T T F 動作 JaSST に参加 T T T F F 「 テストに興味 がある 」 かつ 「予定 があいてい る」 ⇒  「 JaSST に参加」 24 ソフトウェアテストシンポジウム 2010 四国
  • 25. 演習 3   ToDo リストアプリの表示テスト ToDo リストアプリがあり、一覧 表示は以下の条件で強調される 。 × •期限切れ:赤字・太字 日付 タイトル 状態 •期限当日:太字 6/30 PPT 作成 変更▼ また、タスク重要度( A > B > 7/2 テスト仕様書 … 変更▼ C )が C のときは強調されず、完 7/5 メンテ作業 変更▼ 了タスクは一覧表示されない 7/6 資料チェック 変更▼ ▽next B▼ 年   月   日 追加 25 ソフトウェアテストシンポジウム 2010 四国
  • 26. 最後にまとめです 演習 お疲 れ様 でし た! 26 ソフトウェアテストシンポジウム 2010 四国
  • 27. 今日の演習を今後につなげよう  原因結果グラフを作ってみました  仕様バグを見つけたり、仕様の見直しに役立てよう!  論理関係のバグ探しが効率的になるよ!  CEGTest を使ってみました  気軽に CEG をテスト設計に使ってみよう!  CEGTest マスターになろう! CEGTest http://softest.cocolog-nifty.com/blog/cegtest.html お問い合わせ kase.masaki@gmail.com 27 ソフトウェアテストシンポジウム 2010 四国
  • 28. 3 時間お疲れ様でした! 28 ソフトウェアテストシンポジウム 2010 四国