$30 off During Our Annual Pro Sale. View Details »

【S2】明日から使えるテスト技法勉強会_5_CFD法

 【S2】明日から使えるテスト技法勉強会_5_CFD法

こちらはConnpassで開催した「明日から使えるテスト技法勉強会」シーズン2で使用された資料となります。合計7部ありますので、テスト技法にご興味を持つ方は、ぜひご活用いただければ幸いです。

また、本資料中使用されたツールGIHOZ(ギホーズ)は、各種テスト技法を手軽に利用できるクラウド型ツールです。
GIHOZはアカウント登録のみで、すぐに利用が可能です。高品質なテストを効率よく作成するために、熟練のテストエンジニアが利用しているさまざまなテスト技法を手軽に体感してください。

GIHOZに登録されたテスト技法はすべて無償でご利用いただけます。
詳細はこちらまでご確認ください。👉https://www.veriserve.co.jp/gihoz/

GIHOZ SUPPORT TEAM

January 19, 2023
Tweet

More Decks by GIHOZ SUPPORT TEAM

Other Decks in Education

Transcript

  1. 明日から使える 勉強会 #5
    テスト技法
    2023.1.18 19:00~20:00@Zoom

    CFD法って、なに?
    S
    2

    View Slide

  2. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 名前
    ◼ 谷﨑 浩一(たにざき こういち)
    ➢ 所属
    ◼ 株式会社ベリサーブ 研究企画開発部
    ➢ 経歴
    ◼ テスター歴:約14年
    ◆ プリンタ、デジカメ、PCアプリ、クラウドサービス
    ◆ 統合テスト・システムテストのテスト設計・実行・管理
    ◼ プロダクトオーナー歴:約5年
    ◆ ソフトウェアテストの設計をサポートするツール
    ◼ 博士(工学)
    自己紹介
    1

    View Slide

  3. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ GIHOZについて
    ➢ CFD法の解説
    ➢ GIHOZを使ったCFD法のハンズオン
    ➢ おわりに
    アジェンダ
    2

    View Slide

  4. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 3
    ➢ GIHOZについて

    View Slide

  5. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    GIHOZとは
    4
    ➢ 『GIHOZ』は、ベリサーブが開発したテスト技法ツールです
    ■各種テスト技法を使って、テストケースを効率よく作成できます
    ソフトウェア開発に関わる全ての人の
    テスト設計の「作業」をゼロにする
    手軽にテストケースを
    作成・利用
    目的に応じて
    テスト技法を選択
    ソフトウェア開発の
    効率化に貢献

    View Slide

  6. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    GIHOZがサポートするテスト技法
    5
    ペアワイズテスト
    デシジョンテーブル
    テスト
    クラシフィケーション
    ツリー法
    状態遷移テスト
    CFD法
    テスト設計者
    GIHOZなら6つのテスト技法を集約!
    ブラウザ上でどこからでも利用可能。
    境界値分析

    View Slide

  7. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 検索&アカウント登録(無料)
    GIHOZを使うには
    6
    GIHOZ
    名前の覚え方
    技法s(複数形) → ギホーズ → GIHOZ

    View Slide

  8. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 7
    ➢ CFD法の解説

    View Slide

  9. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 原因流れ図(Cause Flow Diagram)を作成して、そこからデシジョンテーブルを作成するテスト
    技法
    ◼ CFDはCause Flow Diagramの略
    ➢ 松尾谷 徹 氏が考案した、日本発祥のテスト技法
    ◼ 初出は第37回情報処理学会全国大会(1988年)と思われる
    ◆ 松尾谷 徹(1988), テストケース抽出の一方式 : 「原因流れ図」, 全国大会講演論文集, 第37回,
    768-769.
    ◼ 日本以外では「CFD」と言っても通じないかも
    CFD法とは
    8

    View Slide

  10. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 仕様と実装情報に基づき、原因流れ図を作成してデシジョンテーブルを作成する
    ➢ 原因流れ図を作成する際、同値分割法の考え方を使う
    CFD法の手順の概要
    9
    仕様
    実装情報
    同値分割
    原因
    流れ図
    デシジョン
    テーブル
    テスト
    ケース
    CFD法
    ※上図は以下の文献に記載の図を基に作成
    松尾谷 徹(2009),CFD法の極意(前編),ソフトウェア・テストPRESS Vol.8,98-107.

    View Slide

  11. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 入力データや入力条件の組み合わせに対する処理や出力結果をテーブルにまとめるもの
    ➢ ①条件記述部、②動作記述部、③条件指定部、④動作指定部の4象限からなる
    デシジョンテーブル
    10
    デシジョンテーブルの例




    View Slide

  12. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ テスト対象の動作に影響する「原因(条件)」と「結果(動作)」の関係を流れ図で表現するもの
    ➢ ソフトウェアの条件分岐・処理の流れを図式化したようなイメージ
    原因流れ図
    11
    原因流れ図の例
    「原因」を
    四角形で表す
    「結果」を
    円で表す
    処理の流れを
    矢印で表す

    View Slide

  13. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 「原因」は同値分割を図として表現している
    ◼ 同値分割図とか同値図と呼ばれる
    ➢ 同値分割図の中では、同値パーティション同士は排他とする
    ◼ 例:「年齢60歳以上」と「年齢60歳未満」 など
    ➢ 補集合も考慮する
    原因流れ図の要素:「原因」
    12
    全体集合 U
    部分集合 A
    補集合 Ā
    同値分割図は数学など
    で使うベン図と似ている
    全体は同値パーティション
    (同値クラス)の集合
    中の要素は同値パーティ
    ション(同値クラス)
    補集合

    View Slide

  14. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 「結果」は有効系の結果と無効系の結果の2種類を表現できる
    ◼ 有効系の結果:期待する処理が実行される
    ◼ 無効系の結果:期待する処理が実行されない(エラー処理など)
    ➢ GIHOZでは、有効系は白背景、無効系は灰色背景で表現する
    ➢ 無効系は円の下部を黒で塗りつぶす記法もある
    ◼ この表現のほうが一般的な模様
    原因流れ図の要素:「結果」
    13

    View Slide

  15. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 原因と原因、原因と結果を矢印でつないで、ソフトウェアの処理の流れを表現する
    ➢ 調べても厳密な記述ルールが見つからなかったので、ここではGIHOZでの記述ルールを解説する
    ◼ 矢印をつなげる向きは以下のみ。同値分割図や結果が矢印の根っこ側にはならない
    ◆ 同値パーティション・「その他」 → 同値分割図
    ◆ 同値パーティション・「その他」 → 結果
    ◆ 同値パーティション・「その他」 → 同値パーティション
    ◼ 以下のケースは基本的にはエラーになるか、正しいデシジョンテーブルを生成できない
    ◆ ループするように矢印をつなぐ
    ◆ 1つの同値パーティションから、複数の要素に向かって矢印をつなぐ
    原因流れ図の要素:「矢印(フロー)」
    14

    View Slide

  16. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 同値分割図・同値パーティション・結果と、結果につながる矢印がそれぞれ最低1つ必要
    ➢ GIHOZ独自のルールとして、特定の矢印を通るパターンをデシジョンテーブルに含めたい場合は、矢印に名称を
    付けることができる
    ◼ この記述ルールは某モデリングツールを参考にした
    原因流れ図の記述ルール
    15

    View Slide

  17. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 結果につながるように矢印を順に追いかけていくと、デシジョンテーブルを作成できる
    原因流れ図からデシジョンテーブルの作成
    16
    1
    2
    3
    4

    View Slide

  18. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ デシジョンテーブルを作成する際の網羅基準はいろいろ考えられる
    ◼ 矢印を全網羅
    ◼ 同値パーティションを全網羅
    ◼ 同値パーティションの組み合わせを全網羅
    ◼ 有効系の結果につながるフローは全組み合わせ、無効系の結果につながるフローは1個ずつ網羅
    ➢ GIHOZでは以下の2通りの網羅基準を選択できる
    ◼ 全組み合わせ・・・矢印が通っている同値パーティションの組み合わせをすべて網羅する
    ◼ 最小の組み合わせ・・・矢印が通っている同値パーティションを最低1回ずつ網羅する
    ➢ CFD法では網羅基準に特に決まりはないと思われる。どのような網羅基準でデシジョンテーブルを
    作成するかは都度検討する必要がある
    デシジョンテーブルを作成する際の網羅基準
    17

    View Slide

  19. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    「全組み合わせ」でデシジョンテーブルを作成した例
    18
    1
    2
    3
    4
    5
    6
    7

    View Slide

  20. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    「最小の組み合わせ」でデシジョンテーブルを作成した例
    19
    1
    2
    3
    4

    View Slide

  21. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    CFD法の位置付け
    20
    https://note.com/akiyama924/n/n072e24135964 より引用
    デシジョンテーブル・
    原因結果グラフと
    同じ位置

    View Slide

  22. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 原因結果グラフは、原因と結果の論理関係を整理する
    ◼ その点はCFD法も同じ
    ➢ 原因結果グラフを改良することを目指してCFD法が生まれた
    ◼ 同値分割に図式表現を取り入れた
    ◼ ソフトウェアの条件分岐の流れ(フロー)を図式化したほうが、ソフトウェア技術者には理解しやすい
    原因結果グラフとCFD法の違い
    21
    図はhttps://www.itmedia.co.jp/im/articles/1111/07/news199.htmlから引用
    原因結果グラフ 原因流れ図

    View Slide

  23. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ CFD法では、最初から圧縮したデシジョンテーブルを作成できる
    ➢ デシジョンテーブルを直接作成する場合、全組み合わせを作成してから圧縮を考えるなど、工夫が必要
    デシジョンテーブルを直接作成する方法とCFD法の違い
    22

    View Slide

  24. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ メリット
    ◼ 同値分割を図で直感的に分かりやすく表現できる
    ◼ 同値分割図の補集合を考えることで、「その他」の考慮漏れを減らすことができる
    ◼ 実装情報に基づいて処理の流れを整理することで、圧縮したデシジョンテーブルを作成でき、
    テストケースの件数を抑えることができる → GIHOZを使えば自動生成できます!
    ➢ 注意点
    ◼ 原因流れ図を作成するには、仕様だけでなく実装情報も必要になる
    ◆ 実装情報なしに原因流れ図を作成するとテスト漏れの可能性があるので注意
    CFD法のメリット・注意点
    23

    View Slide

  25. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 使いどころはデシジョンテーブルや原因結果グラフと基本的には同じだが、実装情報が分かる場合には
    CFD法を使うことができる
    ◼ 入力条件の組み合わせに応じて出力結果が変わるような処理(たとえば判定ロジックなど)を
    テストする場合に活用すると良い
    ➢ (ソフトウェアの実装前の)ロジックを設計するときにもCFD法を使うことができる
    ◼ 原因流れ図でロジックを整理することで、ロジックの問題点に気付きやすい
    ◼ 図式化されていてレビューしやすい
    ◼ CFD法の成果物を実装後のテストにも使うことができる
    CFD法の使いどころ
    24

    View Slide

  26. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 25
    ➢ GIHOZを使ったCFD法のハンズオン

    View Slide

  27. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    GIHOZのCFD法の使い方
    26
    原因流れ図を
    作成する
    デシジョンテーブル
    を生成する
    テストケース
    を生成する
    原因流れ図の作成時に
    同値分割も行う

    View Slide

  28. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ ベリサーブショッピングモールでは、買い物金額やシネマ鑑賞に応じて、駐車場の料金を割引きするサービスを
    提供しています
    ◼ <駐車場割引サービスの仕様>
    ➢ 割引サービスの判定システムの実装を確認したところ、条件判定はシネマ鑑賞、お買い物金額、曜日の順に実施
    していました
    ➢ このシステムの判定結果が正しいことを確認するためのテストケースを作成してください
    CFD法の例題
    27
    お買い物金額
    2,000円以上
    1時間無料
    お買い物金額
    5,000円以上
    2時間無料
    お買い物金額
    10,000円以上
    3時間無料
    ※平日限定
    シネマ鑑賞 3時間無料
    ※鑑賞本数・上映時間に関わらず上限3時間

    View Slide

  29. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ ベリサーブショッピングモールでは、買い物金額やシネマ鑑賞に応じて、駐車場の料金を割引きするサービスを
    提供しています
    ◼ <駐車場割引サービスの仕様>
    ➢ 割引サービスの判定システムの実装を確認したところ、条件判定はシネマ鑑賞、お買い物金額、曜日の順に実施
    していました
    ➢ このシステムの判定結果が正しいことを確認するためのテストケースを作成してください
    CFD法の例題:仕様と実装情報を読み取る
    28
    お買い物金額
    2,000円以上
    1時間無料
    お買い物金額
    5,000円以上
    2時間無料
    お買い物金額
    10,000円以上
    3時間無料
    ※平日限定
    シネマ鑑賞 3時間無料
    ※鑑賞本数・上映時間に関わらず上限3時間
    仕様
    実装情報

    View Slide

  30. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ ベリサーブショッピングモールでは、買い物金額やシネマ鑑賞に応じて、駐車場の料金を割引きするサービスを
    提供しています
    ◼ <駐車場割引サービスの仕様>
    ➢ 割引サービスの判定システムの実装を確認したところ、条件判定はシネマ鑑賞、お買い物金額、曜日の順に実施
    していました
    ➢ このシステムの判定結果が正しいことを確認するためのテストケースを作成してください
    CFD法の例題:仕様から原因と結果を読み取る
    29
    お買い物金額
    2,000円以上
    1時間無料
    お買い物金額
    5,000円以上
    2時間無料
    お買い物金額
    10,000円以上
    3時間無料
    ※平日限定
    シネマ鑑賞 3時間無料
    ※鑑賞本数・上映時間に関わらず上限3時間

    View Slide

  31. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 同値分割図を追加する
    原因流れ図を作成する
    30
    左側のパレットから
    右側の描画エリアに
    ドラッグアンドドロップする

    View Slide

  32. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 同値パーティションを追加する
    原因流れ図を作成する
    31
    三点アイコンを
    クリックする
    「同値パーティ
    ションを追加」を
    選択する
    文字列をダブル
    クリックして編集
    できる
    文字列をダブル
    クリックして編集
    できる

    View Slide

  33. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 「その他」を追加する
    原因流れ図を作成する
    32
    三点アイコンを
    クリックする
    「その他を追加」
    を選択する
    文字列をダブル
    クリックして編集
    できる

    View Slide

  34. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 原因流れ図の思想としては、補集合(「その他」)を含めて、すべての同値パーティションを網羅する
    形が好ましいと思われる
    ◼ 下図の例であれば、左側の図のほうが良さそう
    ➢ ただし、GIHOZとしてはどちらの表現でも構わない
    ◼ 後で生成されるデシジョンテーブルの形は若干変わるが、組み合わせパターンは同じものになる
    「同値パーティションを追加」するか、「その他を追加」するか
    33
    「なし」を補集合(その他)として表現 「なし」を同値パーティションとして表現

    View Slide

  35. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 原因を追加し終わった状態
    ◼ 同値分割できているか(MECEになっているか)を確認すると良い
    原因流れ図を作成する
    34
    「その他」は
    「土日祝日」などに
    編集しても良い
    移動したい場合は、
    「曜日」などの文字列の辺りを
    ドラッグアンドドロップする

    View Slide

  36. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 結果を追加する
    原因流れ図を作成する
    35
    左側のパレットから
    右側の描画エリアに
    ドラッグアンドドロップする

    View Slide

  37. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 結果を追加した状態
    ◼ 「割引なし」は「割引処理が実行されない」と考えて、無効系の結果(グレー背景の円)とした
    原因流れ図を作成する
    36
    文字列を
    ダブルクリックして
    編集できる
    移動したい場合は、「1時間無料」
    などの文字列のあたりをドラッグ
    アンドドロップする

    View Slide

  38. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ フロー(矢印)を追加する
    ◼ ソフトウェアの処理の流れを考慮して矢印を引く
    原因流れ図を作成する
    37
    同値パーティションまたは
    「その他」からドラッグアンド
    ドロップする 結果や同値分割図から
    ドラッグアンドドロップして
    も良い

    View Slide

  39. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 完成した状態
    原因流れ図を作成する
    38
    同値分割図・結果はドラッグアンドドロップ
    で移動できるので、線がごちゃごちゃ
    重ならないように適当に配置する

    View Slide

  40. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ 組み合わせ方法を選択して、デシジョンテーブルを自動生成する。生成後に手動で編集も可能。
    デシジョンテーブルを生成する
    39
    生成ボタンをクリックする
    今回の例題では、
    「最小の組み合わせ」・「全組み合わせ」の
    どちらでも同じデシジョンテーブルになる

    View Slide

  41. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ GIHOZではデシジョンテーブルからテストケースの生成ができる
    テストケースを生成する
    40
    条件の親階層が列名になる。
    「Y」を指定した条件の子階層の
    文字列がセルに入力される。
    「X」を指定した動作の文字列が
    セルに入力される
    生成ボタンをクリックする

    View Slide

  42. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 41
    ➢ おわりに

    View Slide

  43. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ https://gihoz.hatenablog.com/
    ◼ アップデート情報など随時更新中
    GIHOZ公式ブログの紹介
    42

    View Slide

  44. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    GIHOZの料金プラン
    43
    スターター ビジネス
    利用期間制限なし 最低5ユーザから
    年間払いのみ
    46,800円(税込み51,480円)~
    ✓ すべてのテスト技法
    ✓ テストケースのファイル数制限なし
    ✓ 4名までの非公開リポジトリ
    ✓ 人数制限なしの公開リポジトリ
    ✓ スターターのすべての機能
    ✓ オーガニゼーションの管理
    ✓ 5名以上の非公開リポジトリ
    ✓ IPアドレス制限
    1ユーザ 月額 780 円
    法人向け
    個人向け
    ※2022年9月以前からご利用中のお客様は、5名以上参加済みの非公開リポジトリを無料で継続してご利用いただけますが、
    新たなメンバーの追加はできません。
    無料

    View Slide

  45. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ビジネスプラン向けの機能
    44
    ✓ オーガニゼーションのリポジトリ
    オーガニゼーションのメンバーのみアクセス可能なリポジトリを作成できます。
    リポジトリをプロジェクト等の単位で作成することで、リポジトリごとにアクセス可能なメンバーを設定できます。
    ✓ オーガニゼーションのユーザ管理
    オーガニゼーション・リポジトリにアクセス可能なユーザおよび、その権限を管理できます。
    管理者権限で実施可能な操作:リポジトリ作成、メンバー招待、IPアドレス制限の設定、操作ログの閲覧など。
    ✓ 操作ログの記録
    オーガニゼーション内で行われた操作が自動で記録されます。(記録期間:1年間)
    ✓ IPアドレス制限
    オーガニゼーション・非公開リポジトリへのアクセスを、許可したIPアドレスからのみに制限できます。

    View Slide

  46. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    ➢ CFD法について解説&ハンズオンを行いました
    ◼ 原因流れ図(Cause Flow Diagram:CFD)からデシジョンテーブルを作成するテスト技法
    ◼ デシジョンテーブルを使える場面で、仕様だけでなく実装情報も分かる場合に活用できる
    ◼ GIHOZでは網羅基準を選択して原因流れ図からデシジョンテーブルを自動生成できる
    ➢ GIHOZを使って、CFD法を活用してもらえると嬉しいです!
    ◼ 業務ももちろん、勉強会での活用も大歓迎です
    ◼ 改善要望や気になった点などがあれば、ぜひフィードバックをお寄せください
    まとめ
    45

    View Slide

  47. © 2023 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    勉強会は以上で終了です。お疲れ様でした。
    46

    View Slide