2013年7月16日にシンガポールで開催された第一回アジア組み合わせテストワークショップ(1st Asian Workshop on Combinatorial Testing for Complex Computer Systems)で発表した"Combinatorial Testing in Japan"のスライドを日本語にしました(だいぶ遅くなりましたが)。
英語版はこちら
/Bugler/combinatorial-testing-injapan20130616
Timeline to the New Normal for Software TestingKeizo Tatsumi
?
The document provides a timeline of key technologies, methodologies, and trends in software development and testing from 1995 to 2018. It includes the rise of mobile/social media, cloud/big data analytics, agile/continuous development practices, test automation tools, and the growth of digital business models and IoT. Development has shifted to more iterative practices like agile, DevOps, and continuous delivery, while testing has evolved to continuous and automated approaches to keep pace with faster development cycles.
Introduction to the 10th IEEE International Conference on Software Testing, Verification and Validation (ICST 2017) held on 13-17 March, 2017 in Tokyo, Japan.
Test Automation - Past, Present and FutureKeizo Tatsumi
?
The document discusses the history and future of test automation. It covers test automation from its beginnings in the 1950s-1960s, through its growth in the 1970s-1990s driven by the software crisis and emergence of new technologies. The document then discusses the present state of test automation, including tools for web, mobile, and cloud testing. Finally, it discusses potential future research areas like cloud/SaaS testing and the role of the test automator in planning and implementing automation strategies and frameworks.
Software testing magazines in the worldKeizo Tatsumi
?
This document lists 9 software testing magazines from around the world, including Testing Experience, Tea-Time with Testers, Testing Circus, Software Test & Quality Assurance, NZTester/OZTester, Testing Trapeze, Professional Tester, Methods & Tools, and TEST Magazine. Each magazine website is provided as a resource for readers to learn more about software testing.
How to Learn The History of Software Testing Keizo Tatsumi
?
The document provides a history of software testing covering several topics:
1. It discusses the prehistory of software testing, noting that Ada Lovelace is considered the first programmer and suggesting she may have also been the first tester while working on Charles Babbage's Analytical Engine in the 19th century.
2. It outlines the evolution of computers, software engineering, and the growth of software testing from the 1950s to the present day. Key periods included the debugging, demonstration, destruction, evaluation, and prevention-oriented periods.
3. It describes some of the early testing techniques developed in the 1960s-1970s, including the concept of test control processes at IBM, equivalence partitioning, and boundary
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テストが失敗するのは、)