6. (C) Keizo Tatsumi 20086
参考文献
1) M. Grindal, J. Offutt, S. F. Andler, Combination Testing Strategies:
A Survey, GMU Technical Report ISE-TR-04-05, July 2004
2) 土屋 達弘, 菊野 亨, ペアワイズテスト, 電子情報通信学会論文誌 D,
Vol. J90-D, No.10, 2007
3) P. Ammann, J. Offutt, Introduction to Software Testing, Cambridge
University Press, 2008
Contents
Part 1 Overview
1 Introduction
Part 2 Coverage Criteria
2 Graph Coverage
3 Logic Coverage
4 Input Space Partitioning
5 Syntax-based Testing
Part 3 Applying Criteria in Practice
6 Practical Considerations
7 Engineering Criteria for Technologies
8 Building Testing Tools
9 Challenges in Testing Software
7. ? Ammann & Offutt 7Introduction to Software Testing (Ch 1), www.introsoftwaretesting.com
Old : Find a Graph and Cover It
? Tailored to:
– a particular software artifact
? code, design, specifications
– a particular phase of the lifecycle
? requirements, specification, design, implementation
? This viewpoint obscures underlying similarities
? Graphs do not characterize all testing techniques well
? Four abstract models suffice
「グラフを見たら、どうすべきか。
完全に網羅せよ!」
(ボーリス?バイザー)
8. ? Ammann & Offutt 8Introduction to Software Testing (Ch 1), www.introsoftwaretesting.com
New : Test Coverage Criteria
? Test Requirements : Specific things that must be satisfied or
covered during testing
? Test Criterion : A collection of rules and a process that define
test requirements
A tester’s job is simple : Define a model of the
software, then find ways
to cover it
Testing researchers have defined dozens of criteria, but they
are all really just a few criteria on four types of structures …
テスターの仕事はシンプル:
ソフトウェアをモデル化し網羅する方法をみつけよ
9. ? Ammann & Offutt 9Introduction to Software Testing (Ch 1), www.introsoftwaretesting.com
New : Criteria Based on Structures
1. Graphs
2. Logical Expressions
3. Input Domain
Characterization
4. Syntactic Structures
(not X or not Y) and A and B
if (x > y)
z = x - y;
else
z = 2 * x;
Structures : Four ways to model software
A: {0, 1, >1}
B: {600, 700, 800}
C: {swe, cs, isa, infs}
組み合わせテスト
10. ? Ammann & Offutt 10
Introduction to Software Testing (Ch 1), www.introsoftwaretesting.com
Coverage Overview
Four Structures for
Modeling Software
Graphs Logic Input Space Syntax
Use cases
Specs
Design
Source
Applied
to
DNFSpecs
FSMsSource
Applied to
Input
Models
Integ
Source
Applied
to
11. (C) Keizo Tatsumi 200811
組み合わせテストの網羅基準
基準 テストケース設定方法 テストケース例(*)
単純な入力空間
網羅基準
Each Choice (EC) 各因子の状態値が最低1回存在するように
テストケースを設定する。
(A,1,x)
(B,2,y)
(A,3,x)
組み合わせ網羅
基準
Pair-Wise (PW) 任意の2つの因子間で各々の状態値の組
み合わせが存在するようにテストケースを
設定する。
(A,1,x) (B,1,y)
(A,2,x) (B,2,y)
(A,3,x) (B,3,y)
(A,-,y) (B,-,x)
t-Wise (TW) t個の因子間で状態値の組み合わせが全
て存在するようにテストケースを設定する。
All Combinations
(AC)
全ての因子の状態値の組み合わせが存在
するようにテストケースを設定する。
対象ドメイン知識
を利用した基準
Base Choice (BC) 各因子の状態について基本的な値(例えば
利用者が通常使う値)を選択し、これを基
本テストケース(base choice)とする。以降、
一つの因子を除く他の因子の状態値を固
定して、対象の因子の状態値を変えてテス
トケースを設定する。
base choice : A, 1, x
(A,1,x)
(B,1,x)
(A,2,x)
(A,3,x)
(A,1,y)
Multiple Base Choice
(MBC)
base choiceを二つ以上定義し、各々base
choiceと同様にテストケースを設定する。
Ammann & Offutt による分類 (Introduction to Software Testing) (*) 各状態値は[A,B] [1,2,3] [x,y]
12. ? Ammann & Offutt 12Introduction to Software Testing (Ch 1-5), www.introsoftwaretesting.com
ISP Coverage Criteria Subsumption
Each Choice
Coverage
EC
All Combinations
Coverage
AC
T-Wise
Coverage
TW
Multiple Base
Choice Coverage
MBC
Pair-Wise
Coverage
PW
Base Choice
Coverage
BC
18. (C) Keizo Tatsumi 200818
要因分析 ~状態の分析~
? 同値分割、限界値/境界値分析の考え方を適用して、
各因子が取りうる値(状態値)を分析
① 連続する値や個数の場合
下限値-1、下限値、標準値、上限値、上限値+1
② 入力条件が選択形式の場合
すべての指定方法(省略を含む)、誤った指定方法
③ 列挙型の集合名や総称名形式の場合
各々の名称が意味する内容に、上記の原則を適用
④ 禁止事項、注意事項(「~ねばならない」など)の場合
その状態、そうでない状態
⑤ 出力結果の分析から入力条件を検討する
出力の境界条件の状態を引き起こす値
⑥ 上記の原則を他のケースにもあてはめる
19. (C) Keizo Tatsumi 200819
要因分析 ~要因分析表の記入例~
状
態
1
2
3
4
5
A B C D E F G
指定数 文字数
1個
2~9個
10個
0個
E
E
1文字
E
E
文字種別
英字
英字以外
11個以上
2~3文字
5文字
0文字
E
4文字
入力値の仕様
(1)指定数は1個以上10個以下
(2)文字数は1~4文字
(3)文字種別は英字のみ
最小値
最大値
無効同値クラス
有効同値クラス
注)実際には指定数が複数個の場合は、各々について文字数,文字種別の分析が必要
20. (C) Keizo Tatsumi 200820
テスト項目設定
?要因分析表に記入された状態を組み合わせて
テスト項目を作成
A B C D E
???-01
???
項目No
指定数 文字数 文字種別
???-02
???-03
???-04
1個 英字2~3文字
4文字1個 英字
0個 × ×
1個 5文字 英字
39. (C) Keizo Tatsumi 200839
おわりに
?「はじめて学ぶソフトウェアのテスト技法」(コープランド)
Pairwiseテストが有効であることを保証する「ソフトウェア欠陥物理学」
はありません。効果を知るには試してみるしかありません。
?"Pairwise Testing - A Best Practice That Isn't"(Bach,Shroeder)
Pairwise testing fails
? when you don't select the right values to test with.
? when you don't have a good enough oracle.
? when highly probable combinations get too little attention.
? when you don't know how the variables interact.
Develop Skill, Take Ownership, but Do Not Trust "Best Practice."
PictMaster/PICTやHAYST法を活用した結果を共有して
よりよいテスト技法に育てていきましょう。
ご静聴ありがとうございました。
(正しい値を選んでいないとき)
(テスト結果判定が不十分なとき)
(よくある組み合わせ
に注意しないとき)
(パラメタ間の関係を知らないとき)
(Pairwiseテストが失敗するのは、)