Upgrade to Pro — share decks privately, control downloads, hide ads and more …

明日から使えるテスト技法勉強会_4_CFD法

 明日から使えるテスト技法勉強会_4_CFD法

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

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

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

GIHOZ SUPPORT TEAM

September 01, 2022
Tweet

More Decks by GIHOZ SUPPORT TEAM

Other Decks in Education

Transcript

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

    CFD法って、なに?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  7. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    基本的な使い方の流れ
    6
    ログインする
    リポジトリを
    選ぶ/作る
    テスト技法を選んで
    テストケースを
    作成する/保存する
    他のユーザを
    リポジトリに招待する
    テストケースを
    ダウンロードする/
    Excel等へコピーする
    アカウントを
    登録する

    View Slide

  8. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    リポジトリを選ぶ/作る
    7
    ①初期状態では
    「MyRepository」のみ
    自動で作成されている
    ②「リポジトリ作成」を押す
    ③アルファベット・数字・アンダーバーで入力
    ④説明は任意で入力
    ⑤実際の業務で使う場合は、基本的には「非公開」を選択。
    「公開」を選ぶと、URLを知っている人は
    テストケースを閲覧できるようになるので、選ぶときは注意

    View Slide

  9. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    テスト技法を選んでテストケースを作成する/保存する
    8
    ①「新規作成」を押す
    ②使いたいテスト技法の「作成」を押す

    View Slide

  10. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
     各テスト技法の使い方は後ほど説明します
    テスト技法を選んでテストケースを作成する/保存する
    9
    ②自動保存ではないため、
    「保存」ボタンを押すのを忘れないように注意
    ①任意の名前を入力
    ③「一覧」を押すと
    テストケース一覧に戻る

    View Slide

  11. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
     コピー先のリポジトリを選択してコピーを作成できます
    テストケースを丸ごとコピーする
    10
    ①行をクリックして選択
    ※CtrlキーやShiftキーを押しながら
    クリックで複数選択も可能
    ②コピーアイコンを
    クリック
    ③コピー先のリポジトリを
    選択してコピーを作成

    View Slide

  12. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
     保存済みのテストケースに対して、レビュー結果やテスト設計の意図などをコメントすることができます
    テストケースにコメントを投稿する
    11
    ①吹き出し型の
    アイコンを押す
    ②コメントを書いて
    「投稿」を押す

    View Slide

  13. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 12
     CFD法の解説

    View Slide

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

    View Slide

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

    View Slide

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




    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  47. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 46
     おわりに

    View Slide

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

    View Slide

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

    View Slide

  50. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。
    【当社問い合わせ窓口】
    お問い合わせフォーム:https://contact.veriserve.co.jp/public/application/add/2187
    メール:[email protected]
    お問い合わせ対応時間:10時~17時
    GIHOZ 検索
    ご閲覧ありがとうございました。
    本資料に関するお問い合わせは下記までご連絡ください。

    View Slide