SlideShare a Scribd company logo
Software Test Technique
ソフトウェア開発の理想と現実
• 理想的な状況で開発できてる??
ソフトウェア開発の理想と現実
• 理想は「トレードオフトライアングルがバランス」
ソフトウェア開発の理想と現実
• 現実は「増える工数、減る工期」
ソフトウェア開発の理想と現実
• もっとひどいと「コストカット…」
ソフトウェア開発の理想と現実
• 削られたスコープ(設計、実装、テスト)は…?
ソフトウェア開発の理想と現実
• 「テスト」
「テスト」が削られがち
効率的で精度の高いテスト実施が必要
• 少ない工数で効率的にバグを見つける必要がある
本日の目次
• デシジョンテーブルテスト
• 組み合せテスト
デシジョンテーブルテスト
デシジョンテーブルとは
• 複数の条件によって決定されるソフトフェアの動作を
一覧するための表
ルール (Y: Yes / N: No)
1 2 3 4 5 6 7 …
条
件
キャンペーン Y Y Y Y Y Y Y …
会員 Y Y Y Y N N N …
学生 Y Y N N Y Y N …
書籍 Y N Y N Y N Y …
ア
ク
シ
ョ
ン
20%OFF Y …
10%OFF Y Y Y …
通常料金 Y Y Y …
サンプル
• 密林ショップ 配送料 の仕様
– 通常配送料、350円
– お急ぎ便指定の場合、360円
– 2000円以上お買い上げの場合、通常配送無料
– プライム会員はお急ぎ便指定の配送料無料
ケース洗い出し方法
1. 「条件」と「アクション」を抜き出し
2. 「条件」のルールを埋める
3. ルールを適用した際の「アクション」を埋める
ケース洗い出し方法
1. 「条件」と「アクション」を抜き出し
項目 内容
条件
プライム会員
2000円以上購入
お急ぎ便
アクション
配送料 = 360円
配送料 = 350円
配送料 = 無料
ケース洗い出し方法
2. 「条件」のルールを埋める
ルール (Y: Yes / N: No)
1 2 3 4 5 6 7 8
条
件
プライム会員 Y Y Y Y N N N N
2000円以上 Y Y N N Y Y N N
お急ぎ便 Y N Y N Y N Y N
ア
ク
シ
ョ
ン
配送料無料
配送料350円
配送料360円
Y, N は機械的に交互に入れていき
整理は後で行う
ケース洗い出し方法
3. ルールを適用した際の「アクション」を埋める
ルール (Y: Yes / N: No)
1 2 3 4 5 6 7 8
条
件
プライム会員 Y Y Y Y N N N N
2000円以上 Y Y N N Y Y N N
お急ぎ便 Y N Y N Y N Y N
ア
ク
シ
ョ
ン
配送料無料 Y Y Y Y Y
配送料350円 Y
配送料360円 Y Y
デシジョンテーブルの整理
• 以下の4つの手法で整理する
– 矛盾条件の削除
– 簡略化(類似条件の集約)
– 表の分割
– 3値以上の条件
デシジョンテーブルの整理(矛盾条件の削除)
• 矛盾する条件のアクションには
「N/A」(Not Applicable)を記載
ルール (Y: Yes / N: No)
1 2 3 4 5 6 7 8
条
件
18歳以下 Y Y Y Y N N N N
65歳以上 Y Y N N Y Y N N
旧作 Y N Y N Y N Y N
ア
ク
シ
ョ
ン
10%OFF N/A N/A Y
20%OFF N/A N/A Y
50%OFF N/A N/A Y Y Y
割引なし N/A N/A Y
DVDレンタル料金の割引のデシジョンテーブル
デシジョンテーブルの整理(簡略化)
• 複数ルールを1つにまとめて簡略化
ルール (Y: Yes / N: No)
1 2 3 4 5 6 7 8
条
件
18歳以下 Y Y Y Y N N N N
65歳以上 Y Y N N Y Y N N
旧作 Y N Y N Y N Y N
ア
ク
シ
ョ
ン
10%OFF N/A N/A Y
20%OFF N/A N/A Y
50%OFF N/A N/A Y Y Y
割引なし N/A N/A Y
DVDレンタル料金の割引のデシジョンテーブル
「旧作」かどうかに関わらず
「アクション」は「N/A」
デシジョンテーブルの整理(簡略化)
• 複数ルールを1つにまとめて簡略化
ルール (Y: Yes / N: No)
1 2 3 4 5 6 7
条
件
18歳以下 Y Y Y N N N N
65歳以上 Y N N Y Y N N
旧作 - Y N Y N Y N
ア
ク
シ
ョ
ン
10%OFF N/A Y
20%OFF N/A Y
50%OFF N/A Y Y Y
割引なし N/A Y
DVDレンタル料金の割引のデシジョンテーブル
「-」(どちらでもよい)
としてまとめる
デシジョンテーブルの整理(簡略化)
• 複数ルールを1つにまとめて簡略化
ルール (Y: Yes / N: No)
1 2 3 4 5 6 7
条
件
18歳以下 Y Y Y N N N N
65歳以上 Y N N Y Y N N
旧作 - Y N Y N Y N
ア
ク
シ
ョ
ン
10%OFF N/A Y
20%OFF N/A Y
50%OFF N/A Y Y Y
割引なし N/A Y
DVDレンタル料金の割引のデシジョンテーブル
まとめたからテストケースが減る
という訳ではない
デシジョンテーブルの整理(分割)
• 条件の中で関連性の弱いもの(独立性が高いもの)は
別表へ分割する
ルール (Y: Yes / N: No)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
条
件
18歳以下 Y Y Y Y Y Y Y Y N N N N N N N N
65歳以上 Y Y Y Y N N N N Y Y Y Y N N N N
旧作 Y Y N N Y Y N N Y Y N N Y Y N N
毎月1日 Y N Y N Y N Y N Y N Y N Y N Y N
ア
ク
シ
ョ
ン
10%OFF N/A N/A N/A N/A Y
20%OFF N/A N/A N/A N/A Y
50%OFF N/A N/A N/A N/A Y Y Y Y Y Y Y Y Y
割引なし N/A N/A N/A N/A Y
DVDレンタル料金の割引のデシジョンテーブル
条件が1つ増えると
ケースは2倍になる
デシジョンテーブルの整理(分割)
• 条件の中で関連性の弱いもの(独立性が高いもの)は
別表へ分割する
ルール (Y: Yes / N: No)
1 2 3 4 5 6 7 8 9
条
件
18歳以下 Y Y Y Y N N N N -
65歳以上 Y Y N N Y Y N N -
旧作 Y Y Y N Y N Y N -
毎月1日 N N N N N N N N Y
ア
ク
シ
ョ
ン
10%OFF N/A N/A Y
20%OFF N/A N/A Y
50%OFF N/A N/A Y Y Y
割引なし N/A N/A Y
別表1 N/A N/A Y
DVDレンタル料金の割引のデシジョンテーブル
独立性が高いものは1つへ集約
デシジョンテーブルの整理(分割)
• 条件の中で関連性の弱いもの(独立性が高いもの)は
別表へ分割する
ルール (Y: Yes / N: No)
1 2 3 4 5 6 7 8 9
条
件
18歳以下 Y Y Y Y N N N N -
65歳以上 Y Y N N Y Y N N -
旧作 Y Y Y N Y N Y N -
毎月1日 N N N N N N N N Y
ア
ク
シ
ョ
ン
10%OFF N/A N/A Y
20%OFF N/A N/A Y
50%OFF N/A N/A Y Y Y
割引なし N/A N/A Y
別表1 N/A N/A Y
DVDレンタル料金の割引のデシジョンテーブル
別表へ飛ばす
デシジョンテーブルの整理(分割)
• 条件の中で関連性の弱いもの(独立性が高いもの)は
別表へ分割する
ルール (Y: Yes / N: No)
1 2 3 4 5 6 7 8 9
条
件
18歳以下 Y Y Y Y N N N N -
65歳以上 Y Y N N Y Y N N -
旧作 Y Y Y N Y N Y N -
毎月1日 N N N N N N N N Y
ア
ク
シ
ョ
ン
10%OFF N/A N/A Y
20%OFF N/A N/A Y
50%OFF N/A N/A Y Y Y
割引なし N/A N/A Y
別表1 N/A N/A Y
DVDレンタル料金の割引のデシジョンテーブル
ルール (Y: Yes / N: No)
1 2 3 4 5 6 7 8
条
件
18歳以下 Y Y Y Y Y Y Y Y
65歳以上 Y Y Y Y N N N N
旧作 Y Y N N Y Y N N
ア
ク
シ
ョ
ン
10%OFF
20%OFF
50%OFF Y Y Y Y Y Y Y Y
割引なし
デシジョンテーブルの整理(3値以上の条件)
• 同値クラスの考え方を用いて条件/アクションを設定
ルール (Y: Yes / N: No)
1 2 3 4 5 6 7 8
条
件
18歳以下 Y Y Y Y N N N N
65歳以上 Y Y N N Y Y N N
旧作 Y N Y N Y N Y N
ア
ク
シ
ョ
ン
10%OFF N/A N/A Y
20%OFF N/A N/A Y
50%OFF N/A N/A Y Y Y
割引なし N/A N/A Y
DVDレンタル料金の割引のデシジョンテーブル
「年齢」で同値クラスが作れる
「割引率」で同値クラスが作れる
デシジョンテーブルの整理(3値以上の条件)
• 同値クラスの考え方を用いて条件/アクションを設定
ルール (Y: Yes / N: No)
1 2 3 4 5 6
条
件
年齢(y) y≧65 y≧65 65>y>18 65>y>18 18≧y 18≧y
旧作 Y N Y N Y N
ア
ク
シ
ョ
ン
割引率 50%OFF 20%OFF 50%OFF 0% 50%OFF 10%OFF
DVDレンタル料金の割引のデシジョンテーブル
組み合せテスト
因子と水準
• 因子
– テスト対象の機能名や設定項目名など
• 水準
– 因子が持つ選択肢や設定値など
因子と水準
• 因子
– テスト対象の機能名や設定項目名など
• 水準
– 因子が持つ選択肢や設定値など
年齢 新旧 日付
65≦y 新作 1日
18<y<65 旧作 1日以外
y≦18
DVDレンタル料金の因子水準一覧
因子
水準
因子間網羅
• 「考えられるすべての組合せを網羅する」方法
– 全網羅
• 「2つの因子間の組合せをすべて網羅する」方法
– 2因子間網羅
• All-Pairs法
• 直行表
因子間網羅
• 「考えられるすべての組合せを網羅する」方法
– 全網羅 (=12パターン)
• 「2つの因子間の組合せをすべて網羅する」方法
– 2因子間網羅
• All-Pairs法 (=6パターン)
• 直行表 (=8パターン)
年齢 新旧 日付
65≦y 新作 1日
18<y<65 旧作 1日以外
y≦18
DVDレンタル料金の因子水準一覧
手法によって
ケース数が変わる
PictMasterを用いたケース洗い出し方法(準備)
1. 必要ファイルのダウンロード
2. 「pict33.msi」をインストール
3. 「PictMaster 7.0.2J.zip」を解凍
4. 必要ファイルを「PICT」フォルダへコピー
PictMasterを用いたケース洗い出し方法(準備)
1. ダウンロード
– https://ja.osdn.net/projects/pictmaster/
– http://download.microsoft.com/download/f/5/5/f55484df-8494-
48fa-8dbd-8c6f76cc014b/pict33.msi
PictMasterを用いたケース洗い出し方法(準備)
1. ダウンロード
– https://ja.osdn.net/projects/pictmaster/
– http://download.microsoft.com/download/f/5/5/f55484df-8494-
48fa-8dbd-8c6f76cc014b/pict33.msi
ここからダウンロード
PictMasterを用いたケース洗い出し方法(準備)
2. 「pict33.msi」をインストール
PictMasterを用いたケース洗い出し方法(準備)
3. 「PictMaster 7.0.2J.zip」を解凍
PictMasterを用いたケース洗い出し方法(準備)
4. 以下のファイルを「PICT」フォルダへコピー
– nkf.exe
– oalib
– oalibmix
PictMasterを用いたケース洗い出し方法(設定)
• 環境設定
PictMasterを用いたケース洗い出し方法(設定)
• 環境設定
PictMasterを用いたケース洗い出し方法(設定)
• 環境設定
All-Pairs法(ペアワイズ法)
の場合は何因子網羅にするか設定
生成方法を選択
PictMasterを用いたケース洗い出し方法(作成)
• 因子と水準を設定
因子を記述 水準をカンマ区切りで記述
PictMasterを用いたケース洗い出し方法(作成)
• 「実行」ボタン押下
PictMasterを用いたケース洗い出し方法(作成)
• 「実行」ボタン押下
組み合わせ表を作成する際の注意点
• 適切な因子水準の選択
• 禁則回避
• 重要な組み合わせの追加
• 無理して組み合わせテストを行わない
適切な因子水準の選択
• すべての因子水準を選べばよいわけではない
⇒ケースが膨大になる
• テスト目的「何をテストするのか」を踏まえて
因子水準を選択する
禁則回避
• 「禁止になっている組合せ」「不可能な組合せ」を回避
– 2因子を1因子に見立てる方法
– 禁則行をコピーして置換する方法
– 禁則を除外した因子水準表で作成する方法
禁則回避
• 「禁止になっている組合せ」「不可能な組合せ」を回避
– 2因子を1因子に見立てる方法
– 禁則行をコピーして置換する方法
– 禁則を除外した因子水準表で作成する方法
禁則関係にある因子水準を1つの因子に見立てて
因子水準表を作成、ケース作成を行う方法
重要な組み合わせの追加
• 2因子網羅は完ぺきではない
重要な組合せがある場合、そのケースを追加実施する
• 機能の重要度でN因子網羅を変更することも検討する
無理して組み合わせテストを行わない
• 以下のようなケースでは無理に組合せテストを行わない
– テストの期待結果を確認できない
– 禁則が多すぎる
まとめ
テスト技法
• デシジョンテーブルは以下の方法で整理する
– 矛盾条件の削除
– 簡略化(類似条件の集約)
– 表の分割
– 3値以上の条件
• 組み合せはPictMaster使って作成
– ペアワイズ
– 2因子網羅100%
Software Test Technique

More Related Content

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 

Software Test Technique