システムテスト自動化カンファレンス2013
@オラクル青山センター

テスト自動化の
これまで と これから
辰巳 敬三
2013年12月1日
1

(C) Keizo Tatsumi 2013
自己紹介
 経歴

1976年 富士通入社、ソフトウェア事業部検査部
~1990年 メインフレームOS の製品検査、品質保証
~1999年 UNIX/PC のソフトウェア製品の検査、品質保証
~2009年 社内システム支援、サービスビジネス、知財・特許
2009年~ 高度情報通信人材育成支援センターに出向

 活動(昔)
富士通のソフトウェア品質保証活動(共著)(1987年)
Conceptual Support for Test Case Design(COMPSAC'87)
Test Case Design Support System(ICQC’87)
富士通におけるソフトウェア品質保証の実際(共著)(1989年)
ソフトウェア品質管理ガイドブック(共著)(1990年)
ソフトウェア品質管理事例集(共著)(1990年)

 活動(最近)
ソフトウェア品質知識体系ガイド(SQuBOK)(共著)(2007年)
ソフトウェアテスト・ヒストリー[テストPRESS Vol.8](2009年)
続ソフトウェアテスト・ヒストリー[テストPRESS Vol.9](2009年)
100人のプロが選んだソフトウェア開発の名著(共著)(2012年)
執筆タイトル : ソフトウェアテストにはライフワークの価値がある

Combinatorial Testing in Japan(AWCT2013)
2

[Blog]

A Lifelong Software Tester
http://a-lifelong-tester.cocolog-nifty.com/

(C) Keizo Tatsumi 2013
何故、私がここに?
 TEF メーリングリスト 2011年7月24日
[swtest 11944] <紹介> テスト自動化知識体系 Test Automation
Body of Knowledge (TABOK)
辰巳です。
米国のATI(Automated Testing Institute)
http://www.automatedtestinginstitute.com/
という組織が、テスト自動化の知識体系として
Test Automation Body of Knowledge (TABOK) Guidebook
を作成し公開していましたので紹介します(先月、後述の
Verify/ATI 2011 Conferenceの開催案内メールで知りました)。
About TABOK
http://www.tabok.automatedtestinginstitute.com/
・・・

 テスト自動化研究会(STAR) アドバイザ

3

(C) Keizo Tatsumi 2013
目次
I. テスト自動化の これまで
1.
2.
3.
4.

テスト自動化の事始め
1970年代
1970年代~1980年代
1980年代中~1990年代

II. テスト自動化の ( 今 )
III.テスト自動化の これから
1. テスト自動化の研究の状況
2. Test Automator への期待
4

(C) Keizo Tatsumi 2013
I. テスト自動化の これまで
1.
2.
3.
4.

テスト自動化の事始め
1970年代
1970年代~1980年代
1980年代中~1990年代

5

(C) Keizo Tatsumi 2013
テスト自動化の事始め
 テスト自動化の最初(?)の論文
1962年 Automatic Program Testing (Renfer、IBMカナダ)
Program Testing Packageによるテスト手順の標準化と計算機時間効率化
内容 : ファイル生成機能 (テープ、ディスク)
印刷機能 (メモリ、メモリ・スナップショット、テープ)
トレース (ディスクファイル、ブランチトレース)
プログラマが用意した操作指示カードから操作指示書の生成
1950

1955

▲
EDSAC(最初のノイマン型コンピュータ)
▲
UNIVAC1(世界初の商用コンピュータ)
▲
▲
IBM 701 IBM 704
(科学演算用)

1960

▲
DEC PDP-1

1965
▲
IBM System/360
▲
DEC PDP-8

1970

1975

▲
IBM System/370

1980

▲
Cray-1(スパコン)
▲
Apple PC

▲
IBM PC

▲
Intel 4004MPU
●

1961年 Computer Programming Fundamentals (Sun Microsyste
(Apple社設立)
▲
▲
▲
▲
(Leeds & Weinberg)
OS/360
UNIX
CP/M
MS-DOS
(4004MPU用OS)
•IBM社のLeedsとWeinbergが書いたコンピュータ
▲
▲
プログラミングの書籍 C言語
PL/I
▲
Smalltalk-72
Smalltalk-80
•初めて"Program Testing"の章が設けられた書籍

1957年 Digital Computer Programming
(McRacken)
•最も初期のプログラミング教科書
▲ ▲
▲
▲
▲
SpeedCode FORTRAN FORTRAN
COBOL
LISP
•”Program Checkout”の章でデバッグや
▲
ALGOL
開発開始
テストを説明
FLOW-MATIC
6

●
(Microsoft社設立)
(C) Keizo Tatsumi 2013
テスト自動化

-1970年代-

ソフトウェア危機
1968年,1969年 NATO Software Engineering
ソフトウェア開発(Production)におけるToolsも主検討テーマ

テストに関する自動化の取り組み
1972年 Program Test Methods
最初のテストのシンポジウム、最初のテストの書籍
テストの自動化に関する論文
 Automated Software Quality Assurance (TRW)
 A Software Testing Control System (IBM)

自動検証システム (Automated verification system)
PACE (Product Assurance Confidence Evaluator) [TRW社,1972]
PET (Program Evaluater and Tester) [McDonnell Douglas社,1972]
RXVP [General Research社,1974]
7

(C) Keizo Tatsumi 2013
テスト自動化

-1970年代-

最初のツールのリスト (D. Reifer)
1975年 Automated Aids for Reliable Software
1977年 A Glossary of Software Tools & Techniques

テスト実行時ツール
Automated Test Generator
NASA ATDG
Automated Verification System
RXVP, PET, PACE
Environment simulator
Test Drivers, Scripts, Data Generators
Test-Results Processor

8

(C) Keizo Tatsumi 2013
テスト自動化

-1970年~1980年代-

メインフレーム・ソフトウェア検査部門のテストツール

(筆者の所属部門の例、1990年頃の一覧で大小合わせて約70種のツール)

シミュレータ

負荷/ストレス

MTS (Multi Terminal Simulator)
多端末(数,種類,プロトコル)、キャプチャリプレイ

HTS (Hardware Trouble Simulator)
ハードウェア障害の疑似発生

リグレッションテスト自動化
テストプログラムの蓄積・管理・実行
修正に応じたテストプログラムの抽出

テストデータ、データベース生成
テスト結果判定
正解集との比較
メッセージ/完了コード判定

メモリ占有、割り込み発生
システム操作コマンドの発行

システム状況表示/編集
メモリ/ディスク使用状況表示
ログ、トレース編集

製品機能の利用
ジョブ制御文(JCL)マクロ
トレース(I/O、ネットワーク)
自動運転機能

その他
障害レポート管理(発行,回答,修正)
媒体形式チェック

テスト生成
コンパイラテストの自動生成
テスト項目設計支援システム(ATAF)
9

(C) Keizo Tatsumi 2013
テスト自動化

-1980年代中盤~-

UNIX、PC、オープン化、更にインターネット/Webへ
1985年 AutoTester社 (Randy & Linda Hayes)
最初のPC上のテスト自動化ツールAutoTesterを開発

1986年 Performance Awareness社

(1997年にRationalが買収)
preVue 出荷 (capture-replay, 性能測定、multi-user testingなど)

1989年 Mercury Interactive社

(2006年にHPが買収)

1991年に最初の製品を出荷
1970

1975

▲
IBM System/370

▲
Cray-1(スパコン)
▲
Apple PC

▲
Intel 4004MPU
●
(Apple社設立)
▲
UNIX

▲
CP/M
(4004MPU用OS)
▲
C言語
Smalltalk-72
●
(Microsoft社設立)

1980

1985

▲
▲
IBM PC ▲ Apple Macintosh
Sun-1
▲
Sun SPARC
●
(Sun Microsystems社設立)
▲
▲
MS-DOS UNIX System V
Netware
▲
▲
C++
▲
Smalltalk-80
Eiffel
●
(Free Software Foundation)

10

1990

1995

2000

▲
Intel Pentium Pro

▲
Linux

▲
Windows NT

▲
Windows 3.1

▲
▲
▲
J2EE
.NET
Java
▲ ▲Internet Explorer
▲
Netscape
▲
HTML/HTTP/WWW
XML ●
(Apache Software Foundation)
(C) Keizo Tatsumi 2013
テスト自動化

-1990年代~-

商用ツールの増加
1991年 CAST Report (Graham)
CAST : Computer Aided Software Testing Tools
利用可能なテストツールの一覧と解説を記載

Mercury Interactive社の場合
1991年 XRunner
1993年 WinRunner, LoadRunner
1996年 WebTest
1999年 QuickTest

1994年 Software Test Technologies Report (Daich)
米国空軍系のSTSC (Software Technology Support Center)の報告書
レポート中にテストツールの一覧と解説を記載
207社/421製品が掲載 (メインフレーム/プロプライアタリは約50製品)
11

(C) Keizo Tatsumi 2013
テスト自動化

-1990年代~-

テストツールのタイプ別本数
Software Test Technologies Report (1994) より
テストツールのタイプ

概要

本数

Auditor

監査ツール

53

Capture-Replay Tool

キャプチャ・リプレイ・ツール

58

Comparator

比較ツール

22

Complexity Measurer

複雑度測定ツール

76

Coverage/Frequency Analyzer

網羅率・頻度解析ツール

62

Cross Referencing Tool

相互参照ツール

93

Defect/Change Tracker

欠陥・変更追跡ツール

41

Performance/Timing Analyzer

性能・タイミング解析ツール

74

Requirements-Based Test Case Generator

要求ベーステストケース生成ツール

9

Run-Time Error Checker

実行時エラーチェッカー

25

Size Measurer

規模測定ツール

58

Structure Checker

構造チェッカー

125

Syntax & Semantics Analyzer

文法・意味解析ツール

81

Test Execution Manager

テスト実行管理ツール

68

注)複数の機能(タイプ)をもつ製品はそれぞれのタイプで重複してカウントしている

12

(C) Keizo Tatsumi 2013
テスト自動化

-1990年代~-

テスト自動化の書籍

1995年 Automated Testing Handbook
(Linda Hayes)
最初のテスト自動化の書籍と言われている

1996年 Automating Specification-Based
Software Testing
(Poston)
1999年 Automated Software Testing
(Dustin et al.)
2002年に翻訳版が出版(ピアソンエデュケーション)

1999年 Software Test Automation
(Fewster & Graham)
13

(C) Keizo Tatsumi 2013
II. テスト自動化の ( 今 )

14

(C) Keizo Tatsumi 2013
テスト自動化の歴史のおさらい
テスト自動化ツールの対象の変遷
メインフレーム
1980

1985

▲
▲
IBM PC ▲ Apple Macintosh
Sun-1
▲
Sun SPARC
●
(Sun Microsystems社設立)
▲
▲
MS-DOS UNIX System V
Netware
▲
▲
C++
▲
Smalltalk-80
Eiffel

CompuServe
(商用オンラインサービス)

UNIX, GUI

WEB

(OSSツール)

PC GUI

PC DOS
1990

1995

2000

▲
1998
Bugzilla
▲
Intel Pentium Pro

▲
Linux

▲
Windows NT

▲
Windows 3.1

▲
J2EE

Mobile

2005

2010

▲
▲ ・・・
2001
2004
▲
Jmeter
Selenium iPhone
OpenSTA
▲
2002
JIRA
TDD/xUnit
▲
.NET

▲
iPad

▲
Android

▲
▲
Java
▲ Ajax
▲ ▲Internet Explorer
Ruby on Rails
▲
Netscape
▲
▲
●
HTML/HTTP/WWW
XML ●
SOAP ●
(Free Software Foundation)
(Apache Software Foundation) (Eclipse Foundation)
●
●
▲
▲
America Online
Amazon.com
Amazon Web Services Amazon EC2
●
●
Google Docs & Spreadsheets
Yahoo!
Google
☆クラウド・コンピューティング
●
●
●
●
Salesforce.com
eBay
Facebook Twitter

15
ところで、
Seleniumの名前の由来をご存知ですか?
Selenium
セレン, セレニウム:原子番号34の非金属元素(記号:Se)
水銀の毒性を軽減する効果があると言われている

水銀中毒
英語で Mercury poisoning

Jason Huggins

(Seleniumの開発者)

Mercury Interactive社のQuickTest Professional を代替す
るソフトウェアとして名前を考えていた時、Seleniumが水銀
中毒(mercury poisoning)の治療に使われることから命名
したそうです。
<出典> Wikipedia http://en.wikipedia.org/wiki/Selenium_(software)
http://news.techworld.com/applications/3272444/open-source-selenium-web-app-test-suite-to-support-iphone-and-android/

16

(C) Keizo Tatsumi 2013
III. テスト自動化の これから
1. テスト自動化の研究の状況
2.

Test Automatorへの期待

17

(C) Keizo Tatsumi 2013
テスト自動化の研究の状況
AST

(International Workshop on Automation of Software Test)

ICSE併設のワークショップ
2006年に第1回開催
2009年から2日間

STA

(International Workshop on Software Test Automation)

COMPSAC併設のワークショップ
2009年に第1回開催 ICSE : International Conference on Software Engineering

COMPSAC : International Computer Software & Applications Conference
18

(C) Keizo Tatsumi 2013
テスト自動化の研究テーマ (ASTの場合)
テーマ&トピックス

(Call for papersより)

方法論 (Methodology)
各種のソフトウェア開発方法論におけるテスト自動化

技法 (Technology)
テストに関する活動や各種ソフトウェアのテストの自動化の方法

テストツールと環境 (Tools and environments)
テストツールの開発・運用・保守・改良、開発や保守ツールとの連携

実験/実証報告 (Experiments, empirical studies and experience reports)
企業でのテスト自動化の実験・実証報告

課題/将来ビジョン (Identification of problems and visions of the future)

19

(C) Keizo Tatsumi 2013
テスト自動化の研究テーマ (ASTの場合)
特別テーマ

(2008年から毎回特別テーマを設定)

2008年
2009年
2010年
2011年
2012年
2013年

Model-Based Testing for Test Automation
Testing Web Services
Integration Testing
Relating Software Design to Test Automation
Automation of Security Test
Testing of Software as a Service
/ Test-as-a-Service (TaaS)
※Testing as a Service (TaaS)
Cloudにおける新ビジネス、サービスモデル cf. SaaS, IaaS, PaaS
最近は「Cloudのテスト」に加えて「Cloudを使ったテスト」も含む概念
ISSTA 2013でもTesting the Cloud (TTC 2013)のワークショップが
開催、 ICST 2014で第2回 TTC 2014開催予定
20

(C) Keizo Tatsumi 2013
Cloud Testing, TaaS
 Cloud Testing
クラウド技術とソリューションを活用して、クラウドの環境やインフラ上でテストと
測定を行う活動。4つの主要な目標を持つ(Gao)
クラウド上のアプリケーションの品質保証 Testing a SaaS in a cloud
クラウド環境のサービス(SaaS)の妥当性確認 Tesing of a cloud
クラウドサービス機能(プロビジョニングなど)のチェック Testing inside a cloud
SaaSやアプリケーション間の互換性や相互運用性の確認 Testing over clouds

 TaaS (Testing as a Service)
TaaSの概念は2009年にデンマークのTieto社が最初に提唱(Gao)
要求に応じていつでもクラウド中/上/間で静的/動的なテストサービスを提供
サービス提供会社の例
SOASTA http://www.soasta.com/
ITKO (2011年にCA社が買収) http://www.itko.com/solutions/cloud.jsp
IBM – Cloud Application Management – Cloud Testing Services
HP Application Lifecycle Management (ALM) on SaaS
<参考文献>
Jerry Gao et al., "Cloud-Testing - Issues, Challenges, Needs and Practice," 2011 http://seij.dce.edu/Paper%201.pdf
Sergiy Vilkomir, "Cloud Testing: A State-of-the-Art Review," 2012 http://www.it4sec.org/node/3146
21

(C) Keizo Tatsumi 2013
III. テスト自動化の これから
1.

テスト自動化の研究の状況

2. Test Automatorへの期待

22

(C) Keizo Tatsumi 2013
Test Automatorの位置付け
TABOKにおける役割定義
役割名称

テスト自動化における役割

Test Lead

• テストチームの全体管理に責任をもつ
• テスト自動化実装計画(自動化フレームワークの開発)の策定
• 自動化の担当者の配置

Test Engineer

• 通常、直接は自動化作業に関与せず手動テストに責任をもつ
• よりよい自動化のために自動化エンジニアと一緒に何を自動
化するかを検討したり、テスト手順の修正を検討する。

Lead Automation
Architect

• 自動化フレームワークの維持や構成管理に責任をもつ
• 通常、テストツールやフレームワークの専門家が役割を担う

Cross Coverage
Coordinator

• 自動化の作業の同期や整合性の確保に責任をもつ
• 版管理ソフトウェアの適切な使用、再利用可能コンポーネント
の利用提案、自動化技法の適用提案など

Automation Engineer
(Test Automator)

• 担当するアプリケーションのテスト自動化に責任をもつ
• 担当アプリケーションの機能やテスト作業をフレームワークの
中で自動化することが主たる役割
23

(C) Keizo Tatsumi 2013
Test Automatorの位置付け
ISTQBの認定パス

<出典> Certified Tester Advanced Level Overview, Version 2012, ISTQB

24

(C) Keizo Tatsumi 2013
Test Automatorの責務
Capgemini社の求人ページ
仕事と責務

(22項目)
テスト計画、テスト戦略策定への参画
テスト自動化計画の維持と承認取得
メトリクスの作成、及び状況の報告
各種プロジェクトのテスト自動化
自動テストソリューションの提供
新しい技術やツールの評価

Capgemini:
フランスに本社がある、コンサルティング及び
ITサービス会社、44ヶ国で13万人以上の従業員

エンドツーエンドの自動テストの提供
テスト要求の技術アーキテクチャの理解
メトリクスの作成、及び状況の報告
自動化のレベルや時期の定義
手動テスト、自動テストの作業の統合 etc.

経験
3年以上のテスト分析の経験

必要な知識
欠陥管理
テスト管理
テスト技法
開発方法論の知識と理解
テストツールの専門知識(例えばHPや
IBM Rationalのテストツール群)
25

(C) Keizo Tatsumi 2013
Test Automatorの責務
ソフトウェア製品

(参考)
ISO25010
品質モデル

影響

ソフトウェア製品の効果

影響

プロセス品質

影響

内部特徴

外部特徴

依存

依存

依存

システム/ソフトウェア製品品質の特性
‒ 保守性
‒ 機能適合性 ‒ 互換性 ‒ 信頼性
‒ 性能効率性 ‒ 使用性 ‒ セキュリティ ‒ 移植性

 テストの品質(検討中)

テスト開発
プロセス品質

テストの実行(資材)

実行形式のテスト資材 など
- テストスィート(script, program, etc.), 自動テスト など

Test Automator

影響
内部特徴

依存

利用時の品質の特性
‒ 満足性
‒ 利用状況
‒ リスク回避性
網羅性

テスト(結果)の効果

テスト仕様書/設計書/報告書 など
- テスト要求/アーキテクチャ/詳細設計の成果物など)

影響

‒ 有効性
‒ 効率性

テスト

テストの内容

Test Engineer

利用時の品質

外部特徴

影響

依存
テスト自動化
プロセス品質

テストの内容の品質特性(STAを参考)
- Effectiveness (有効性) : バグ検出/修正、信頼度
- Thoroughness (徹底性) : 網羅度合い

影響

影響
内部特徴

依存

依存

外部特徴

テスト結果
利用時の品質

依存

テストの実行資材の品質特性 (TABOKの例)
- 保守性 - 柔軟性 - 拡張性 - 使用性
- 移植性 - 頑健性 - 信頼性 - 性能

26

テスト結果の利用時の特性

(C) Keizo Tatsumi 2013

( ?? )
世界のTest Automatorの人数は?
LinkedIn登録ユーザの検索結果
Software Engineer : 3,531,260人
検索キーワード
Software Engineer
Software Engineer "Test Engineer"

ヒット件数(=人数)
3,531,260

-

(2003年11月20日時点)

(全LinkedInユーザは4000万人(推定))
備考
"Software Engineer"では1,666,591件ヒット

149,267

4.2%

Software Engineer "Software Tester"

18,857

0.5%

Software Engineer Tester

86,896

2.5%

Software Engineer "Test Manager"

21,365

0.6%

Software Engineer "Test Analyst"

16,843

0.5%

"Test Analyst"だけでは62,915件ヒット

509

0.0%

"Technical Test Analyst"だけでは1,218件ヒット

4,023

0.1%

838

0.0%

Software Engineer "Test Automator"

58

0.0%

"Test Automator"だけでは119件ヒット

Software Engineer "test automation"

135,662

3.8%

"test automation"だけでは220,089件ヒット

41,019

1.2%

Software Engineer "Technical Test Analyst"
Software Engineer "Test Consultant"

Software Engineer "Test Designer"

Software Engineer "Test Engineer" "test automation"

"Software Tester"だけでは51,722件ヒット

今からでもTest Automatorの先駆者になれます\(^^)/
27

(C) Keizo Tatsumi 2013
まとめ

28

(C) Keizo Tatsumi 2013
まとめ
テスト自動化の歴史は古いが、専門化され始めてか
らは10~15年程度
自動化はテスト技術者の必須知識。何より、ツール
を使いこなしたり、ツール開発に関わることで「開発」
の一端に触れるのはよい経験
単にツールを使うだけでなく、自動化ノウハウを方法
論としてまとめたり、新たなツール開発に挑戦して世
界に打って出ませんか
⇒それには、テスト自動化研究会などのコミュニティ
で議論したり情報共有を図るのがお薦めです
29
Thank You !

30

(C) Keizo Tatsumi 2013

テスト自動化のこれまでとこれから