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

ソフトウェアテスト 最初の一歩 〜テスト設計技法をワークで体験しながら学ぶ〜 #JaSSTTo...

ソフトウェアテスト 最初の一歩 〜テスト設計技法をワークで体験しながら学ぶ〜 #JaSSTTokyo / SoftwareTestingFirstStep

JaSST'25 Tokyoでの発表の一部抜粋資料です。

JSTQB(ソフトウェアテスト技術者資格認定)のFoundation Levelで学習範囲となっているブラックボックステスト技法のうち、状態遷移テストを除く3つ(同値分割法、境界値分析、デシジョンテーブルテスト)を、WACATE流に作成手順も含めて説明している資料となります。

イベント当日に行っていたワークについては非公開としています。

テスト設計技法を普段の業務で行う際の参考にしてください。

Avatar for nihonbuson

nihonbuson

May 12, 2025
Tweet

More Decks by nihonbuson

Other Decks in Technology

Transcript

  1. Copyright (C) 2025 WACATE All rights reserved Agenda 本セッションの主催について •

    WACATEというコミュニティが主催 • 企業、営利団体ではありません • 転職、就職等のお話はありません • 何かあれば実行委員まで 2
  2. Copyright (C) 2025 WACATE All rights reserved Agenda お約束 3

    ▪ この資料・お話する内容は、 個人の見解です。 ▪ 所属する組織、団体の公式見解と 異なる場合があります。
  3. Copyright (C) 2025 WACATE All rights reserved Agenda Agenda 1.

    自己紹介 2. その前に 3. サマリー 4. なぜ? 5. いろいろなテスト設計技法 • 同値分割 • 境界値分析 • デシジョンテーブル 6. 今後の勉強に向けて・まとめ 7. WACATEの紹介 4
  4. Copyright (C) 2025 WACATE All rights reserved 自己紹介 6 •

    風間 裕也(ブロッコリー) • X(旧Twitter):@nihonbuson • 所属 ◦ 株式会社10X 品質管理チーム ◦ B-Testing(個人事業主) ◦ WACATE(実行委員長) ◦ JaSST Review(実行委員長) ◦ ソフトウェアレビューを エンジニアリングっぽく捉える会
  5. Copyright (C) 2025 WACATE All rights reserved Agenda 少し質問(1) ◆

    どこから来ましたか? a. 東京都内 b. 関東圏 c. 東日本 d. 西日本 e. その他 8
  6. Copyright (C) 2025 WACATE All rights reserved Agenda 少し質問(2) 9

    IT系のワークショップの参加回数は? a. はじめて b. 数回 c. 10回以上 d. その他
  7. Copyright (C) 2025 WACATE All rights reserved Agenda 少し質問(3) WACATE(ワカテ)を知っていますか?

    a. 参加したことがある b. 参加を検討したことがある c. 名前を知っている d. はじめて聞いた e. その他 10
  8. Copyright (C) 2025 WACATE All rights reserved Agenda 本セッションのサマリー 目的:セッションでテスト設計技法の一部を説明する

    1. なぜテスト設計技法を使うかを考えてもらう 2. いろいろなテスト設計技法があることを知る 3. ミニワークにより実際にやってみる 12
  9. Copyright (C) 2025 WACATE All rights reserved Agenda 本セッションの進め方 1.

    テスト設計技法をなぜ使うか? 2. テスト設計技法(一部)の説明・ワーク  (時間の関係からミニワーク) 3. 元資料の解説・今後の勉強に向けて・まとめ 13 なぜ? 座学・ミニワーク 今後の勉強に
  10. Copyright (C) 2025 WACATE All rights reserved Agenda なぜテスト設計技法を使うのか •

    テストに利用できる要員、機材、時間は有限 • 全ての入出力をテストするのは非現実的 15 現実的な手数で効率的・効果的に バグを検出していく必要がある
  11. Copyright (C) 2025 WACATE All rights reserved Agenda なぜテスト設計技法を使うのか •

    テスト設計技法を使わない場合のあるある • たくさんテストをしてもなかなかバグが見つからない • 同じところを何度もテストしている 16 テストした箇所 バグがある箇所 凡例 Point
  12. Copyright (C) 2025 WACATE All rights reserved Agenda なぜテスト設計技法を使うのか •

    現実的な手数で・・・ • 効率的・効果的に・・・ 17 現実的な手数で効率的・効果的に バグを検出していく必要がある テストケースを減らして バグがあるところを狙って ダブらず広い範囲を
  13. Copyright (C) 2025 WACATE All rights reserved テスト設計技法のリスク 19 •

    テストケースを減らすということは、 減らした分だけ確認しない箇所があるということ • 適切にテスト設計技法を適用しないと 必要なテストが漏れたり、 無駄な箇所ばかりテストすることに・・・
  14. Copyright (C) 2025 WACATE All rights reserved さまざまなテスト設計技法 21 SQuBOK

    Guide ▪経験および直観に基づいた技法 アドホックテスト 探索的テスト ▪仕様に基づいた技法 ブラックボックステスト 同値分割 境界値分析/境界値テスト デシジョンテーブルによるテスト 原因結果グラフによるテスト 状態遷移テスト ランダムテスト モデルベースドテスト 要因分析技法【富士通】 CFD技法 ▪コードに基づいた技法 ホワイトボックステスト 制御フローテスト データフローテスト トランザクションフローテスト フォールトに基づいた技法 エラー推測テスト ミューテーションテスト ▪利用に基づいた技法 運用プロファイルによるテスト ローカライゼーションテスト ユーザー環境シミュレーションテスト 整合性確認テスト ▪ソフトウェアの形態に基づいた技法 オブジェクト指向テスト Webシステムのテスト GUIテスト サーバーサイドのテスト データベーステスト 並行プログラムのテスト プロトコル適格性テスト 実時間のテスト モバイルアプリケーションのテスト ▪組合せの技法 直行配列表(実験計画法)を用いたテスト All-pair法を用いたテスト ▪リスクに基づいた技法 テストマネジメントにおけるリスクベースドテスト テスト設計におけるリスクベースドテスト ▪仕様ベースの技法 同値分割法 境界値分析 デシジョンテーブル 原因結果グラフ法 状態遷移テスト 組み合わせテスト技法 ユースケーステスト ユーザストーリーテスト ドメイン分析 ▪欠陥ベースの技法 欠陥分類法 ▪経験ベースの技法 エラー推測 チェックリストベースドテスト 探索的テスト ▪Structure-Based Testing Introduction Condition Testing Decision Condition Testing Modified Condition/Decision Coverage (MC/DC) Testing Multiple Condition Testing Path Testing API Testing ▪Quality Characteristics for Technical Testing Security Testing Reliability Testing Performance Testing Resource Utilization Maintainability Testing Portability Testing JSTQB/ISTQB EQUIVALENCE PARTITIONING BOUNDARY VALUE ANALYSIS STATE TRANSITION TESTING CAUSE-EFFECT GRAPHING SYNTAX TESTING STATEMENT TESTING BRANCH/DECISION TESTING DATA FLOW TESTING BRANCH CONDITION TESTING BRANCH CONDITION COMBINATION TESTING MODIFIED CONDITION DECISION TESTING LCSAJ TESTING RANDOM TESTING BS7925 ▪Specification-Based Test Design Techniques Equivalence Partitioning Classification Tree Method Boundary Value Analysis Syntax Testing Combinatorial Test Design Techniques Decision Table Testing Cause-Effect Graphing State Transition Testing Scenario Testing Random Testing ▪Structure-Based Test Design Techniques Statement Testing Branch Testing Decision Testing Branch Condition Testing Branch Condition Combination Testing Modified Condition Decision Coverage (MCDC) Testing Data Flow Testing ▪Experience-Based Test Design Techniques Error Guessing ISO/IEC/IEEE 29119
  15. Copyright (C) 2025 WACATE All rights reserved 今回とりあげるテスト設計技法 22 •

    仕様ベースの技法から以下をご紹介 • 同値分割 • 境界値分析 • デシジョンテーブル • 状態遷移テスト • ユースケーステスト • 組み合わせテスト技法 • ドメイン分析 今回は ココを紹介 今回は 省略
  16. Copyright (C) 2025 WACATE All rights reserved Attention! 23 •

    仕様ベースの技法では基本的に「Failure」や「Problem」 を見つけますが、本セッション中は「バグ」という表現を 使用しています。 Defect Fault Failure コード等に記述された誤り 既定された処理の 実行能力の欠如 Failureによって生じる 困難や不確実性 IEEE1044-2009 Problem 不正な文字コードの指定 文字化けした表示 読めない
  17. Copyright (C) 2025 WACATE All rights reserved Attention! 24 •

    これから各技法の説明で例を提示します。 • 実在する施設・団体・商品等とは一切関係ございません。
  18. Copyright (C) 2025 WACATE All rights reserved 同値分割 26 •

    同値分割とは • 沢山ある入力値や出力値を【同値パーティション】に分けること • 同値パーティションとは • システムによって同じように扱われる(と思われる)値の セットや範囲 • 同値パーティション内の値は、 全て同じように扱われるはずなので、 テストケースを減らすことができる • 同値パーティション毎に1つの値を確認すればOK
  19. Copyright (C) 2025 WACATE All rights reserved 同値分割 27 例題

    過去のJaSSTに参加したことがある場合、 リピート割が適用される。 このとき、以下のアンケート項目を同値分割しなさい。
  20. Copyright (C) 2025 WACATE All rights reserved 同値分割 28 1.

    有効パーティションと無効パーティションを見つける 有効パーティション • JaSST東京参加済 • 他の地域JaSST参加済 • JaSST東京にも 他の地域JaSSTにも参加済 無効パーティション • はじめての参加
  21. Copyright (C) 2025 WACATE All rights reserved 同値分割 29 2.

    最もそのパーティションの特性を表す代表値を選ぶ  最頻値、平均値、中央値など… 有効パーティション • JaSST東京参加済 • 他の地域JaSST参加済 • JaSST東京にも 他の地域JaSSTにも参加済 無効パーティション • はじめての参加
  22. Copyright (C) 2025 WACATE All rights reserved 同値分割 30 3.期待結果を決定してテストケースにする

    # 選択した項目(入力値) リピート割(期待結果) 1 JaSST東京に参加したことがある。 適用される 2 今回がはじめての参加である。 適用されない
  23. Copyright (C) 2025 WACATE All rights reserved 同値分割 31 •

    同値分割の使いどころ • 基本的な動作を確認したいとき • 細かいテストの前にそもそもそれなりに動くのか (有効値と無効値を1個ずつとか) • 異常系の細かいテストを全てパスした後で 普通の正常系でエラーになったらショック大きいですよね! • ユーザー受入テストなど通常の使い方で問題がないか • ビルド後に想定外の影響がないかスモークテストとか • 他のテスト設計技法を適用する準備や合わせ技
  24. Copyright (C) 2025 WACATE All rights reserved 同値分割 32 •

    同値分割の注意点 ◦ 漏れなく被りなく分割する必要あり ▪ 「東京都」「関東圏」「東日本」の分割は不適切 ◦ 無効同値パーティションは仕様に明示されない場合あり ▪ 暗黙の了解だったり、思考漏れだったり… ◦ テストの目的が曖昧な場合、値だけで 同じ同値パーティションか判断することはできない ▪ どのような関係をテストしたいのか、 も明らかにする必要がある
  25. Copyright (C) 2025 WACATE All rights reserved 境界値分析 36 境界値分析(BVA)は、順序付けられた

    同値パーティションの境界上に存在する値を 適切に処理していることをテストするために使用する。 引用:ISTQBテスト技術者資格制度Advanced Level シラバス日本語版 テストアナリスト Version 3.1.1.J03
  26. Copyright (C) 2025 WACATE All rights reserved 境界値分析 37 境界値分析(BVA)は、順序付けられた

    同値パーティションの境界上に存在する値を 適切に処理していることをテストするために使用する。 引用:ISTQBテスト技術者資格制度Advanced Level シラバス日本語版 テストアナリスト Version 3.1.1.J03 数直線などで 表現できる まずは同値分割を 行って考える
  27. Copyright (C) 2025 WACATE All rights reserved 境界値分析 38 例題

    8文字以上45文字以下のパスワードは設定できる
  28. Copyright (C) 2025 WACATE All rights reserved 境界値分析 40 2.

    同値分割をする 8 45 設定できない 文字数 設定できる 文字数 設定できない 文字数
  29. Copyright (C) 2025 WACATE All rights reserved 3. 仕様で言及がない境界の値を記載する 境界値分析

    41 8 45 設定できない 文字数 設定できる 文字数 設定できない 文字数 7 46
  30. Copyright (C) 2025 WACATE All rights reserved 境界値分析 42 「パスワードが8文字以上」の場合、

    なぜ7と8をテストするのか? if( x < 7 ){ return “入力したパスワードが短いです”; } ...
  31. Copyright (C) 2025 WACATE All rights reserved 境界値分析 43 「パスワードが8文字以上」の場合、

    なぜ7と8をテストするのか? if( x < 7 ){ return “入力したパスワードが短いです”; } ...
  32. Copyright (C) 2025 WACATE All rights reserved 境界値分析 44 「パスワードが8文字以上」の場合、

    なぜ7と8をテストするのか? 不等号のミスによる不具合を発見できるのは、7の時だけ! if( x <= 7 ){ return “入力したパスワードが短いです”; } ...
  33. Copyright (C) 2025 WACATE All rights reserved 4. システム上の境界値も考える 境界値分析

    45 設定 できない 文字数 設定 できない 文字数 8 45 7 46 設定できる 文字数
  34. Copyright (C) 2025 WACATE All rights reserved 境界値分析 46 設定

    できない 文字数 設定 できない 文字数 8 45 7 46 設定できる 文字数 入力 できない 文字数 入力 できない 文字数 0 -1 4. システム上の境界値も考える
  35. Copyright (C) 2025 WACATE All rights reserved 境界値分析 47 5.テストケースにする

    # 文字数 (入力値) 設定可否 (期待結果) 1 -1文字 入力できない 2 0文字 設定できない 3 7文字 設定できない 4 8文字 設定できる # 文字数 (入力値) 設定可否 (期待結果) 5 45文字 設定できる 6 46文字 設定できない 7 256文字 設定できない 8 257文字 入力できない
  36. Copyright (C) 2025 WACATE All rights reserved 境界値分析 48 7

    8 7 8 9 45 46 45 46 44 20 • 境界値分析の弱点 • 「8≦x≦45」を「x=8 or x=45」と実装されると バグを検出できない • 境界値は極端な値。境界値ばかり攻めてると 普通のケースでバグを見逃すことに・・・ • 対策 • 同値分割と組み合わせる • 3点の境界値をテストする
  37. Copyright (C) 2025 WACATE All rights reserved 境界値分析 49 自然言語でも境界値分析を使う場合あり

    例)20人のクラスで背の順に並んだ時、   前から10人目までは組体操で上に登る人、   前から11人目以降は組体操で下で土台になる人 何らかのルールで順序付けができれば、 数値でなくても境界値分析は適用可能
  38. Copyright (C) 2025 WACATE All rights reserved 境界値分析 50 自然言語は境界が曖昧

    「以上、以下」「から、まで」などの単語に注目 例 稼働時間…8:00から22:00まで 休止時間…22:00から8:00まで 8:00ちょうどや22:00ちょうどは稼働時間?休止時間?
  39. Copyright (C) 2025 WACATE All rights reserved 境界値分析 51 例.東海道新幹線で名古屋駅から新横浜駅まで乗車した

    • 東海道新幹線で乗車していた駅は図の通り • 境界値は「岐阜羽島と名古屋」「新横浜と品川」 • このときの「新横浜駅まで」は、新横浜駅を含む
  40. Copyright (C) 2025 WACATE All rights reserved 境界値分析 52 例.東海道新幹線の“のぞみ”は名古屋駅を出ると

      新横浜駅まで停車しません • “こだま”が止まって“のぞみ”が止まらない駅は図の通り • 境界値は「名古屋と三河安城」「小田原と新横浜」 • このときの「新横浜駅まで」は、新横浜駅を含まない
  41. Copyright (C) 2025 WACATE All rights reserved 同値分割・境界値分析 55 •

    いかがでしたか? • 思ったより手が動かなかった人もいるのでは? • やさしいものでも、結構考えるところがあります • 実際の仕事は、もっと難しい・複雑ですよね • 解りやすい同値分割でも、実は怪しい場面が
  42. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 57 •

    デシジョンテーブルとは • 複数の条件によって決まる動作を表形式で整理する • カタカナで書くと格好良いけど日本語(JIS X0125) だと『決定表』です。 • 複数の条件の組み合わせの不整合や考慮もれなど バグがありそうなところを狙う設計技法です。 • 複雑な論理(ロジック)を網羅的に確認します。
  43. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 58 例題

    とあるECサイトでは配送時に配送料がかかります。 • 合計10,000円以上購入すると無料 • 通常荷物の場合は500円、大型荷物の場合は1500円 ◦ 大型荷物が1つでも含まれていたら大型荷物の配送料となる • 通常荷物は、配送地域によって値段が変わる ◦ 四国・九州・北海道への配送料は+100円 ◦ 離島への配送料は+200円 • 離島へ大型荷物を配送することはできない このときの配送料について考えてみよう。
  44. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 59 1.

    条件を洗い出す • 購入額の同値パーティション ◦ 10,000円以上、10,000円未満 • 荷物の種類の同値パーティション ◦ 大型荷物を含む、大型荷物を含まない • 配送先の同値パーティション ◦ 本州、四国・九州・北海道、離島
  45. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 60 1.

    条件を洗い出す • 購入額の同値パーティション ◦ 10,000円以上、10,000円未満 • 荷物の種類の同値パーティション ◦ 大型荷物を含む、大型荷物を含まない • 配送先の同値パーティション ◦ 本州、四国・九州・北海道、離島 配送先は 日本国内限定?
  46. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 61 2.デシジョンテーブルの

     条件部分に  書き出す 条件 購入額 10,000円以上 10,000円未満 大型荷物 含む 含まない 配送先 本州 四国・九州・北海道 離島
  47. Copyright (C) 2025 WACATE All rights reserved 1 2 条

    件 購入額 10,000円以上 ◯ 10,000円未満 ◯ 大型荷物 含む ◯ 含まない ◯ 配送先 本州 四国・九州・北海道 ◯ 離島 ◯ デシジョンテーブル 62 まずは10,000円以上で 大型荷物を四国に 配送する場合は… 次に10,000円未満で 通常荷物を離島に 配送する場合は…
  48. Copyright (C) 2025 WACATE All rights reserved 1 2 条

    件 購入額 10,000円以上 ◯ 10,000円未満 ◯ 大型荷物 含む ◯ 含まない ◯ 配送先 本州 四国・九州・北海道 ◯ 離島 ◯ デシジョンテーブル 63 まずは10,000円以上で 大型荷物を四国に 配送する場合は… 次に10,000円未満で 通常荷物を離島に 配送する場合は… ちょっと待って! そうじゃないんだ!
  49. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 64 •

    思いついた組み合わせで列を足していく 「足し算」の考え方は行わない ◦ 思いつかなかった組み合わせが漏れてしまう • 最初に全ての条件の組み合わせを「掛け算」で用意し、 テストできないものを削る「引き算」の考え方を用いる
  50. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 65 3.条件の掛け算をして、

     全体のルール数を算出する 今回の場合、 購入額のルール数(2通り)×荷物種類のルール数(2通り) ×配送先のルール数(3通り) =12通り つまり、12列分作成する
  51. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 66 1

    2 3 4 5 6 7 8 9 10 11 12 条件 購入額 10,000円以上 10,000円未満 大型荷物 含む 含まない 配送先 本州 四国・九州・北海道 離島
  52. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 67 3.機械的にルールを埋めていく

    全体の数(12通り)÷購入額のルール数(2通り)=6なの で、 購入額の行は6つずつ割り当てる
  53. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 68 1

    2 3 4 5 6 7 8 9 10 11 12 条件 購入額 10,000円以上 ◯ ◯ ◯ ◯ ◯ ◯ 10,000円未満 大型荷物 含む 含まない 配送先 本州 四国・九州・北海道 離島
  54. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 69 1

    2 3 4 5 6 7 8 9 10 11 12 条件 購入額 10,000円以上 ◯ ◯ ◯ ◯ ◯ ◯ 10,000円未満 ◯ ◯ ◯ ◯ ◯ ◯ 大型荷物 含む 含まない 配送先 本州 四国・九州・北海道 離島
  55. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 70 3.機械的にルールを埋めていく

    購入額の条件1つあたりに割り当てた数(6つ) ÷大型荷物のルール数(2通り)=3なので、 大型荷物のルール数の行は3つずつ割り当てる
  56. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 71 1

    2 3 4 5 6 7 8 9 10 11 12 条件 購入額 10,000円以上 ◯ ◯ ◯ ◯ ◯ ◯ 10,000円未満 ◯ ◯ ◯ ◯ ◯ ◯ 大型荷物 含む ◯ ◯ ◯ 含まない ◯ ◯ ◯ 配送先 本州 四国・九州・北海道 離島
  57. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 72 1

    2 3 4 5 6 7 8 9 10 11 12 条件 購入額 10,000円以上 ◯ ◯ ◯ ◯ ◯ ◯ 10,000円未満 ◯ ◯ ◯ ◯ ◯ ◯ 大型荷物 含む ◯ ◯ ◯ ◯ ◯ ◯ 含まない ◯ ◯ ◯ ◯ ◯ ◯ 配送先 本州 四国・九州・北海道 離島
  58. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 73 3.機械的にルールを埋めていく

    大型荷物の条件1つあたりに割り当てた数(3つ) ÷配送先のルール数(3通り)=1なので、 配送先のルール数の行は1つずつ割り当てる
  59. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 74 1

    2 3 4 5 6 7 8 9 10 11 12 条件 購入額 10,000円以上 ◯ ◯ ◯ ◯ ◯ ◯ 10,000円未満 ◯ ◯ ◯ ◯ ◯ ◯ 大型荷物 含む ◯ ◯ ◯ ◯ ◯ ◯ 含まない ◯ ◯ ◯ ◯ ◯ ◯ 配送先 本州 ◯ 四国・九州・北海道 ◯ 離島 ◯
  60. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 75 1

    2 3 4 5 6 7 8 9 10 11 12 条件 購入額 10,000円以上 ◯ ◯ ◯ ◯ ◯ ◯ 10,000円未満 ◯ ◯ ◯ ◯ ◯ ◯ 大型荷物 含む ◯ ◯ ◯ ◯ ◯ ◯ 含まない ◯ ◯ ◯ ◯ ◯ ◯ 配送先 本州 ◯ ◯ ◯ ◯ 四国・九州・北海道 ◯ ◯ ◯ ◯ 離島 ◯ ◯ ◯ ◯
  61. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 76 4.ルール1列ずつに対して、動作を考える

    例. 「購入額が10,000円以上」かつ「大型荷物を含む」   かつ「配送先が本州」の場合は0円
  62. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 77 1

    2 3 4 5 6 7 8 9 10 11 12 条件 購入額 10,000円以上 ◯ ◯ ◯ ◯ ◯ ◯ 10,000円未満 ◯ ◯ ◯ ◯ ◯ ◯ 大型荷物 含む ◯ ◯ ◯ ◯ ◯ ◯ 含まない ◯ ◯ ◯ ◯ ◯ ◯ 配送先 本州 ◯ ◯ ◯ ◯ 四国・九州・北海道 ◯ ◯ ◯ ◯ 離島 ◯ ◯ ◯ ◯ 動作 配送料 0円 X 500円 600円 700円 1,500円
  63. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 78 1

    2 3 4 5 6 7 8 9 10 11 12 条件 購入額 10,000円以上 ◯ ◯ ◯ ◯ ◯ ◯ 10,000円未満 ◯ ◯ ◯ ◯ ◯ ◯ 大型荷物 含む ◯ ◯ ◯ ◯ ◯ ◯ 含まない ◯ ◯ ◯ ◯ ◯ ◯ 配送先 本州 ◯ ◯ ◯ ◯ 四国・九州・北海道 ◯ ◯ ◯ ◯ 離島 ◯ ◯ ◯ ◯ 動作 配送料 0円 X X X X X 500円 X 600円 X 700円 X 1,500円 X X
  64. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 79 5.ルール上、あり得ない組み合わせ(禁則)を削除する

    例. 「購入額が10,000円以上」かつ「大型荷物を含む」   かつ「配送先が離島」の場合は禁則
  65. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 80 1

    2 3 4 5 6 7 8 9 10 11 12 条件 購入額 10,000円以上 ◯ ◯ ◯ ◯ ◯ ◯ 10,000円未満 ◯ ◯ ◯ ◯ ◯ ◯ 大型荷物 含む ◯ ◯ ◯ ◯ ◯ ◯ 含まない ◯ ◯ ◯ ◯ ◯ ◯ 配送先 本州 ◯ ◯ ◯ ◯ 四国・九州・北海道 ◯ ◯ ◯ ◯ 離島 ◯ ◯ ◯ ◯ 動作 配送料 0円 X X X X X 500円 X 600円 X 700円 X 1,500円 X X
  66. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 81 あり得ない

    組み合わせを 削除した結果 1 2 3 4 5 6 7 8 9 10 条件 購入額 10,000円以上 ◯ ◯ ◯ ◯ ◯ 10,000円未満 ◯ ◯ ◯ ◯ ◯ 大型荷物 含む ◯ ◯ ◯ ◯ 含まない ◯ ◯ ◯ ◯ ◯ ◯ 配送先 本州 ◯ ◯ ◯ ◯ 四国・九州・北海道 ◯ ◯ ◯ ◯ 離島 ◯ ◯ 動作 配送料 0円 X X X X X 500円 X 600円 X 700円 X 1,500円 X X
  67. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 82 6.判定に無関係なルールを「ー」で明示して1列にまとめる

     (簡単化) 例「購入額が10,000円以上」かつ「大型荷物を含まない」は   配送先が「本州」「四国・九州・北海道」「離島」の   いずれの場合でも、配送料は「0円」   (配送先が判定に無関係)
  68. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 83 購入額が

    10,000円以上 かつ 大型荷物を 含まない は、配送先が 配送料に無関係 (必ず0円) 1 2 3 4 5 6 7 8 9 10 条件 購入額 10,000円以上 ◯ ◯ ◯ ◯ ◯ 10,000円未満 ◯ ◯ ◯ ◯ ◯ 大型荷物 含む ◯ ◯ ◯ ◯ 含まない ◯ ◯ ◯ ◯ ◯ ◯ 配送先 本州 ◯ ◯ ◯ ◯ 四国・九州・北海道 ◯ ◯ ◯ ◯ 離島 ◯ ◯ 動作 配送料 0円 X X X X X 500円 X 600円 X 700円 X 1,500円 X X
  69. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 84 購入額が

    10,000円以上 かつ 大型荷物を 含まない は、配送先が 配送料に無関係 (必ず0円) 1 2 3 4 5 6 7 8 9 10 条件 購入額 10,000円以上 ◯ ◯ ◯ 10,000円未満 ◯ ◯ ◯ ◯ ◯ 大型荷物 含む ◯ ◯ ◯ ◯ 含まない ◯ ◯ ◯ ◯ 配送先 本州 ◯ ー ◯ ◯ 四国・九州・北海道 ◯ ー ◯ ◯ 離島 ー ◯ 動作 配送料 0円 X X X 500円 X 600円 X 700円 X 1,500円 X X
  70. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 85 購入額が

    10,000円以上かつ 大型荷物を含む は、配送先が 配送料に無関係 (必ず0円) ※離島は禁則のため  考慮しなくてOK 1 2 3 4 5 6 7 8 条件 購入額 10,000円以上 ◯ ◯ ◯ 10,000円未満 ◯ ◯ ◯ ◯ ◯ 大型荷物 含む ◯ ◯ ◯ ◯ 含まない ◯ ◯ ◯ ◯ 配送先 本州 ◯ ー ◯ ◯ 四国・九州・北海道 ◯ ー ◯ ◯ 離島 ー ◯ 動作 配送料 0円 X X X 500円 X 600円 X 700円 X 1,500円 X X
  71. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 86 購入額が

    10,000円以上かつ 大型荷物を含む は、配送先が 配送料に無関係 (必ず0円) ※離島は禁則のため  考慮しなくてOK 1 2 3 4 5 6 7 8 条件 購入額 10,000円以上 ◯ ◯ 10,000円未満 ◯ ◯ ◯ ◯ ◯ 大型荷物 含む ◯ ◯ ◯ 含まない ◯ ◯ ◯ ◯ 配送先 本州 ー ー ◯ ◯ 四国・九州・北海道 ー ー ◯ ◯ 離島 ー ◯ 動作 配送料 0円 X X 500円 X 600円 X 700円 X 1,500円 X X
  72. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 87 購入額が

    10,000円未満かつ 大型荷物を含む は、配送先が 配送料に無関係 (必ず1,500円) ※離島は禁則のため  考慮しなくてOK 1 2 3 4 5 6 7 条件 購入額 10,000円以上 ◯ ◯ 10,000円未満 ◯ ◯ ◯ ◯ ◯ 大型荷物 含む ◯ ◯ ◯ 含まない ◯ ◯ ◯ ◯ 配送先 本州 ー ー ◯ ◯ 四国・九州・北海道 ー ー ◯ ◯ 離島 ー ◯ 動作 配送料 0円 X X 500円 X 600円 X 700円 X 1,500円 X X
  73. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 88 購入額が

    10,000円未満かつ 大型荷物を含む は、配送先が 配送料に無関係 (必ず1,500円) ※離島は禁則のため  考慮しなくてOK 1 2 3 4 5 6 7 条件 購入額 10,000円以上 ◯ ◯ 10,000円未満 ◯ ◯ ◯ ◯ 大型荷物 含む ◯ ◯ 含まない ◯ ◯ ◯ ◯ 配送先 本州 ー ー ー ◯ 四国・九州・北海道 ー ー ー ◯ 離島 ー ◯ 動作 配送料 0円 X X 500円 X 600円 X 700円 X 1,500円 X
  74. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 89 購入額が

    10,000円以上は、 大型荷物や配送先が 配送料に無関係 (必ず0円) ※大型荷物かつ離島は  禁則のため  考慮しなくてOK 1 2 3 4 5 6 条件 購入額 10,000円以上 ◯ ◯ 10,000円未満 ◯ ◯ ◯ ◯ 大型荷物 含む ◯ ◯ 含まない ◯ ◯ ◯ ◯ 配送先 本州 ー ー ー ◯ 四国・九州・北海道 ー ー ー ◯ 離島 ー ◯ 動作 配送料 0円 X X 500円 X 600円 X 700円 X 1,500円 X
  75. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 90 購入額が

    10,000円以上は、 大型荷物や配送先が 配送料に無関係 (必ず0円) ※大型荷物かつ離島は  禁則のため  考慮しなくてOK 1 2 3 4 5 6 条件 購入額 10,000円以上 ◯ 10,000円未満 ◯ ◯ ◯ ◯ 大型荷物 含む ー ◯ 含まない ー ◯ ◯ ◯ 配送先 本州 ー ー ◯ 四国・九州・北海道 ー ー ◯ 離島 ー ◯ 動作 配送料 0円 X 500円 X 600円 X 700円 X 1,500円 X
  76. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 91 デシジョンテーブルの使い方

    1. 同値分割で条件を洗い出す 2. 最初に全ての組み合わせを用意する 3. テストできない組み合わせを削る(禁則の削除) 4. 動作の決定に無関係な条件をまとめる(簡単化)
  77. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 92  全パターン…12通り

    →禁則の削除…10通り →簡単化  …5通り 1 2 3 4 5 条件 購入額 10,000円以上 ◯ 10,000円未満 ◯ ◯ ◯ ◯ 大型荷物 含む ー ◯ 含まない ー ◯ ◯ ◯ 配送先 本州 ー ー ◯ 四国・九州・北海道 ー ー ◯ 離島 ー ◯ 動作 配送料 0円 X 500円 X 600円 X 700円 X 1,500円 X
  78. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 93 •

    「削る」「まとめる」は慎重に! ◦ 本当はテストできるのでは? ◦ 無関係と言える根拠は? ◦ ケースを減らしたい気持ちが先行すると失敗するかも
  79. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 94 1

    2 3 4 5 6 7 8 9 10 11 12 条件 購入額 10,000円以上 ◯ ◯ ◯ ◯ ◯ ◯ 10,000円未満 ◯ ◯ ◯ ◯ ◯ ◯ 大型荷物 含む ◯ ◯ ◯ ◯ ◯ ◯ 含まない ◯ ◯ ◯ ◯ ◯ ◯ 配送先 本州 ◯ ◯ ◯ ◯ 四国・九州・北海道 ◯ ◯ ◯ ◯ 離島 ◯ ◯ ◯ ◯ 動作 配送料 0円 X X X X X 500円 X 600円 X 700円 X 1,500円 X X 大型荷物かつ離島は 間違って 設定できちゃうかも しれないから 念のため テストしよう
  80. Copyright (C) 2025 WACATE All rights reserved デシジョンテーブル 95 •

    議論の土台にするためにデシジョンテーブルを活用する ◦ デシジョンテーブルで作成した結果が絶対解ではない ◦ デシジョンテーブルを示すことで、 どのように削れば良いか議論できる • 削減前のデシジョンテーブルも残しておく ◦ 削った結果なのか、パターン漏れなのか判別したいため
  81. Copyright (C) 2025 WACATE All rights reserved スライドにたどりつくには? 103 A)

    ググる「テスト設計技法」+「WACATE」 B) 2次元バーコード C) WACATEサイトのリンク WACATE 公開資料 のリンク
  82. Copyright (C) 2025 WACATE All rights reserved 他にもたくさん 104 •

    WACATEの「テスト設計技法」に関連する公開資料 100セッション以上 資料公開中!
  83. Copyright (C) 2025 WACATE All rights reserved まとめ • なぜ、テスト設計技法を使うか

    • テスト設計技法 ◦ いろいろとある ◦ 一部を説明 同値分割/境界値分析/デシジョンテーブル • 実際に手を動かす ◦ 同値分割と境界値分析のミニワークを実施 • 勉強用の資料 105
  84. Copyright (C) 2025 WACATE All rights reserved Agenda コミュニティの概要 1.

    WACATE ワカテと読みます 2. 活動 • 自主的なコミュニティ • 1年に夏・冬の2回 • 1泊2日の合宿 3. 内容 • 主にソフトウェアテストの勉強会 • ワークショップがメイン • 参加者間の交流も深める 4. ターゲット • 若手でテストに興味がある人 • 特に年齢制限はない 107 https://wacate.jp
  85. Copyright (C) 2025 WACATE All rights reserved Agenda 外部の方の登壇も多数 ▪

    なかなか聞けない話も • 成長につながる話 • 参加者と距離の近さ 109
  86. Copyright (C) 2025 WACATE All rights reserved Agenda 夏と冬の違い 110

    狭く深く 夏 広く浅く 冬 一つのテーマを掘り下げどっぷりつかる二日間 様々なトピックに触れ新しい発見を得る二日間
  87. Copyright (C) 2025 WACATE All rights reserved 20年近くの実績がある 111 2007年より開催

    第1回目は上野の 「水月ホテル鷗外荘」 にて開催されました 写真はホテルホームページより
  88. Copyright (C) 2025 WACATE All rights reserved Agenda いろいろ扱ってきました 112

    BOK 29119 CFD SaPID PFD TOC・CLR Wモデル TPI NEXT インシデントレポート キャリアプラン インシデント分析 クラシフィケーション・ツリー データ分析 コミュニケーション デシジョンテーブル テストの基本 テストケースの再利用 テストを語る テスト教育 テスト海外動向 テスト計画 テスト設計 テスト条件 テスト導出 テスト分析(ゆもつよメソッド) テスト分析 テスト分析・設計~テストケース作成までを一気通関で バグ票 テスト条件 プレゼンテーション メトリクス プロセス モチベーション リスクベースドテスト モデル検査 レビュー 英語 ワールドカフェ 技法 情報探索 見積もり 状態遷移テスト 人間関係 心・態度・習慣 組み合わせテスト 伝える 探索的テスト 同値分割・境界値分析 品質管理 品質 報告書 論文 ※大きさ、色に意図はありません
  89. Copyright (C) 2025 WACATE All rights reserved 最近は 40名前後 の参加

    Agenda 参加者数の推移 113 オンライン開催
  90. Copyright (C) 2025 WACATE All rights reserved Agenda 2日間のスケジュール 119

    ◆ 学び・経験・交流もあるテスト漬けの2日間 ◆ 前泊も可能(終電で来る方も) セッション セッション セッション セッション 朝食 夕食 昼食 昼食 休憩:自室 分科会 休憩 10:00 12:10 13:10 17:20 19:00 21:20 7:00 9:00 13:10 12:10 16:40 2日目 1日目 解散
  91. Copyright (C) 2025 WACATE All rights reserved Agenda 次回 6/28,29

    開催概要 120 テーマ 未定 サブタイトル 未定 主催 WACATE実行委員会 日時 2025年 6月28日(土)  9:30 受付開始 2025年 6月29日(日) 17:00頃 終了予定 (1泊2日 4食付き) 会場 トーセイホテル&セミナー幕張 JR京葉線 新習志野駅 徒歩約2分 合宿費 3万円前後の予定(宿泊費、4食の食事代含む) 35歳以下は数千円安くなる予定 申し込み方法 WACATEサイト上より
  92. Copyright (C) 2025 WACATE All rights reserved Agenda WACATEのターゲット •

    テストの勉強を最近始めた • 業務の経験が短い • 広い視野を持ちたい • 若手世代同士で交流したい • ベテランとも交流したい • エンジニアとして元気を得たい • 周りの方にも紹介いただけると幸いです ◦ 同期、後輩、先輩、部下、上司・・・ 122
  93. Copyright (C) 2025 WACATE All rights reserved Agenda ぜひ次回WACATEに ▪

    他のセミナーでは得られないものがたくさん 123