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. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  名前  谷﨑 浩一(たにざき

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

    ソフトウェア開発に関わる全ての人の テスト設計の「作業」をゼロにする 手軽にテストケースを 作成・利用 目的に応じて テスト技法を選択 ソフトウェア開発の 効率化に貢献
  3. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 基本的な使い方の流れ 6 ログインする リポジトリを 選ぶ/作る

    テスト技法を選んで テストケースを 作成する/保存する 他のユーザを リポジトリに招待する テストケースを ダウンロードする/ Excel等へコピーする アカウントを 登録する
  4. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 リポジトリを選ぶ/作る 7 ①初期状態では 「MyRepository」のみ 自動で作成されている

    ②「リポジトリ作成」を押す ③アルファベット・数字・アンダーバーで入力 ④説明は任意で入力 ⑤実際の業務で使う場合は、基本的には「非公開」を選択。 「公開」を選ぶと、URLを知っている人は テストケースを閲覧できるようになるので、選ぶときは注意
  5. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  コピー先のリポジトリを選択してコピーを作成できます テストケースを丸ごとコピーする 10 ①行をクリックして選択

    ※CtrlキーやShiftキーを押しながら クリックで複数選択も可能 ②コピーアイコンを クリック ③コピー先のリポジトリを 選択してコピーを作成
  6. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  原因流れ図(Cause Flow Diagram)を作成して、そこからデシジョンテーブルを作成するテスト 技法

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

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

    同値分割図の中では、同値パーティション同士は排他とする  例:「年齢60歳以上」と「年齢60歳未満」 など  補集合も考慮する 原因流れ図の要素:「原因」 17 全体集合 U 部分集合 A 補集合 Ā 同値分割図は数学など で使うベン図と似ている 全体は同値パーティション (同値クラス)の集合 中の要素は同値パーティ ション(同値クラス) 補集合
  9. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  「結果」は有効系の結果と無効系の結果の2種類を表現できる  有効系の結果:期待する処理が実行される 

    無効系の結果:期待する処理が実行されない(エラー処理など)  GIHOZでは、有効系は白背景、無効系は灰色背景で表現する  無効系は円の下部を黒で塗りつぶす記法もある  この表現のほうが一般的な模様 原因流れ図の要素:「結果」 18
  10. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  原因と原因、原因と結果を矢印でつないで、ソフトウェアの処理の流れを表現する  調べても厳密な記述ルールが見つからなかったので、ここではGIHOZでの記述ルールを解説する 

    矢印をつなげる向きは以下のみ。同値分割図や結果が矢印の根っこ側にはならない  同値パーティション・「その他」 → 同値分割図  同値パーティション・「その他」 → 結果  同値パーティション・「その他」 → 同値パーティション  以下のケースは基本的にはエラーになるか、正しいデシジョンテーブルを生成できない  ループするように矢印をつなぐ  1つの同値パーティションから、複数の要素に向かって矢印をつなぐ 原因流れ図の要素:「矢印(フロー)」 19
  11. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  デシジョンテーブルを作成する際の網羅基準はいろいろ考えられる  矢印を全網羅 

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

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

    同値分割図の補集合を考えることで、「その他」の考慮漏れを減らすことができる  実装情報に基づいて処理の流れを整理することで、圧縮したデシジョンテーブルを作成でき、 テストケースの件数を抑えることができる → GIHOZを使えば自動生成できます!  注意点  原因流れ図を作成するには、仕様だけでなく実装情報も必要になる  実装情報なしに原因流れ図を作成するとテスト漏れの可能性があるので注意 CFD法のメリット・注意点 28
  14. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  使いどころはデシジョンテーブルや原因結果グラフと基本的には同じだが、実装情報が分かる場合には CFD法を使うことができる  入力条件の組み合わせに応じて出力結果が変わるような処理(たとえば判定ロジックなど)を

    テストする場合に活用すると良い  (ソフトウェアの実装前の)ロジックを設計するときにもCFD法を使うことができる  原因流れ図でロジックを整理することで、ロジックの問題点に気付きやすい  図式化されていてレビューしやすい  CFD法の成果物を実装後のテストにも使うことができる CFD法の使いどころ 29
  15. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  ベリサーブショッピングモールでは、買い物金額やシネマ鑑賞に応じて、駐車場の料金を割引きするサービスを 提供しています  <駐車場割引サービスの仕様>

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

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

     割引サービスの判定システムの実装を確認したところ、条件判定はシネマ鑑賞、お買い物金額、曜日の順に実施 していました  このシステムの判定結果が正しいことを確認するためのテストケースを作成してください CFD法の例題:仕様から原因と結果を読み取る 34 お買い物金額 2,000円以上 1時間無料 お買い物金額 5,000円以上 2時間無料 お買い物金額 10,000円以上 3時間無料 ※平日限定 シネマ鑑賞 3時間無料 ※鑑賞本数・上映時間に関わらず上限3時間
  18. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  同値パーティションを追加する 原因流れ図を作成する 36 三点アイコンを

    クリックする 「同値パーティ ションを追加」を 選択する 文字列をダブル クリックして編集 できる 文字列をダブル クリックして編集 できる
  19. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  原因流れ図の思想としては、補集合(「その他」)を含めて、すべての同値パーティションを網羅する 形が好ましいと思われる  下図の例であれば、左側の図のほうが良さそう

     ただし、GIHOZとしてはどちらの表現でも構わない  後で生成されるデシジョンテーブルの形は若干変わるが、組み合わせパターンは同じものになる 「同値パーティションを追加」するか、「その他を追加」するか 38 「なし」を補集合(その他)として表現 「なし」を同値パーティションとして表現
  20. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  フロー(矢印)を追加する  ソフトウェアの処理の流れを考慮して矢印を引く 原因流れ図を作成する

    42 同値パーティションまたは 「その他」からドラッグアンド ドロップする 結果や同値分割図から ドラッグアンドドロップして も良い
  21. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  GIHOZではデシジョンテーブルからテストケースの生成ができる テストケースを生成する 45 条件の親階層が列名になる。

    「Y」を指定した条件の子階層の 文字列がセルに入力される。 「X」を指定した動作の文字列が セルに入力される 生成ボタンをクリックする
  22. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  CFD法について解説&ハンズオンを行いました  原因流れ図(Cause Flow

    Diagram:CFD)からデシジョンテーブルを作成するテスト技法  デシジョンテーブルを使える場面で、仕様だけでなく実装情報も分かる場合に活用できる  GIHOZでは網羅基準を選択して原因流れ図からデシジョンテーブルを自動生成できる  GIHOZを使って、CFD法を活用してもらえると嬉しいです!  業務ももちろん、勉強会での活用も大歓迎です  改善要望や気になった点などがあれば、ぜひフィードバックをお寄せください まとめ 48