Your SlideShare is downloading. ×
  • Like
テスト自動化のこれまでとこれから
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

  • 13,539 views
Published

2013年12月1日に開催されたシステムテスト自動化カンファレンス2013の講演資料です。 …

2013年12月1日に開催されたシステムテスト自動化カンファレンス2013の講演資料です。
https://sites.google.com/site/testautomationresearch/event

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
13,539
On SlideShare
0
From Embeds
0
Number of Embeds
11

Actions

Shares
Downloads
82
Comments
0
Likes
27

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. システムテスト自動化カンファレンス2013 @オラクル青山センター テスト自動化の これまで と これから 辰巳 敬三 2013年12月1日 1 (C) Keizo Tatsumi 2013
  • 2. 自己紹介  経歴 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
  • 3. 何故、私がここに?  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
  • 4. 目次 I. テスト自動化の これまで 1. 2. 3. 4. テスト自動化の事始め 1970年代 1970年代~1980年代 1980年代中~1990年代 II. テスト自動化の ( 今 ) III.テスト自動化の これから 1. テスト自動化の研究の状況 2. Test Automator への期待 4 (C) Keizo Tatsumi 2013
  • 5. I. テスト自動化の これまで 1. 2. 3. 4. テスト自動化の事始め 1970年代 1970年代~1980年代 1980年代中~1990年代 5 (C) Keizo Tatsumi 2013
  • 6. テスト自動化の事始め  テスト自動化の最初(?)の論文 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
  • 7. テスト自動化 -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
  • 8. テスト自動化 -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
  • 9. テスト自動化 -1970年~1980年代- メインフレーム・ソフトウェア検査部門のテストツール (筆者の所属部門の例、1990年頃の一覧で大小合わせて約70種のツール) シミュレータ 負荷/ストレス MTS (Multi Terminal Simulator) 多端末(数,種類,プロトコル)、キャプチャリプレイ HTS (Hardware Trouble Simulator) ハードウェア障害の疑似発生 リグレッションテスト自動化 テストプログラムの蓄積・管理・実行 修正に応じたテストプログラムの抽出 テストデータ、データベース生成 テスト結果判定 正解集との比較 メッセージ/完了コード判定 メモリ占有、割り込み発生 システム操作コマンドの発行 システム状況表示/編集 メモリ/ディスク使用状況表示 ログ、トレース編集 製品機能の利用 ジョブ制御文(JCL)マクロ トレース(I/O、ネットワーク) 自動運転機能 その他 障害レポート管理(発行,回答,修正) 媒体形式チェック テスト生成 コンパイラテストの自動生成 テスト項目設計支援システム(ATAF) 9 (C) Keizo Tatsumi 2013
  • 10. テスト自動化 -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
  • 11. テスト自動化 -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
  • 12. テスト自動化 -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
  • 13. テスト自動化 -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
  • 14. II. テスト自動化の ( 今 ) 14 (C) Keizo Tatsumi 2013
  • 15. テスト自動化の歴史のおさらい テスト自動化ツールの対象の変遷 メインフレーム 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
  • 16. ところで、 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
  • 17. III. テスト自動化の これから 1. テスト自動化の研究の状況 2. Test Automatorへの期待 17 (C) Keizo Tatsumi 2013
  • 18. テスト自動化の研究の状況 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
  • 19. テスト自動化の研究テーマ (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
  • 20. テスト自動化の研究テーマ (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
  • 21. 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
  • 22. III. テスト自動化の これから 1. テスト自動化の研究の状況 2. Test Automatorへの期待 22 (C) Keizo Tatsumi 2013
  • 23. Test Automatorの位置付け TABOKにおける役割定義 役割名称 テスト自動化における役割 Test Lead • テストチームの全体管理に責任をもつ • テスト自動化実装計画(自動化フレームワークの開発)の策定 • 自動化の担当者の配置 Test Engineer • 通常、直接は自動化作業に関与せず手動テストに責任をもつ • よりよい自動化のために自動化エンジニアと一緒に何を自動 化するかを検討したり、テスト手順の修正を検討する。 Lead Automation Architect • 自動化フレームワークの維持や構成管理に責任をもつ • 通常、テストツールやフレームワークの専門家が役割を担う Cross Coverage Coordinator • 自動化の作業の同期や整合性の確保に責任をもつ • 版管理ソフトウェアの適切な使用、再利用可能コンポーネント の利用提案、自動化技法の適用提案など Automation Engineer (Test Automator) • 担当するアプリケーションのテスト自動化に責任をもつ • 担当アプリケーションの機能やテスト作業をフレームワークの 中で自動化することが主たる役割 23 (C) Keizo Tatsumi 2013
  • 24. Test Automatorの位置付け ISTQBの認定パス <出典> Certified Tester Advanced Level Overview, Version 2012, ISTQB 24 (C) Keizo Tatsumi 2013
  • 25. Test Automatorの責務 Capgemini社の求人ページ 仕事と責務 (22項目) テスト計画、テスト戦略策定への参画 テスト自動化計画の維持と承認取得 メトリクスの作成、及び状況の報告 各種プロジェクトのテスト自動化 自動テストソリューションの提供 新しい技術やツールの評価 Capgemini: フランスに本社がある、コンサルティング及び ITサービス会社、44ヶ国で13万人以上の従業員 エンドツーエンドの自動テストの提供 テスト要求の技術アーキテクチャの理解 メトリクスの作成、及び状況の報告 自動化のレベルや時期の定義 手動テスト、自動テストの作業の統合 etc. 経験 3年以上のテスト分析の経験 必要な知識 欠陥管理 テスト管理 テスト技法 開発方法論の知識と理解 テストツールの専門知識(例えばHPや IBM Rationalのテストツール群) 25 (C) Keizo Tatsumi 2013
  • 26. Test Automatorの責務 ソフトウェア製品 (参考) ISO25010 品質モデル 影響 ソフトウェア製品の効果 影響 プロセス品質 影響 内部特徴 外部特徴 依存 依存 依存 システム/ソフトウェア製品品質の特性 ‒ 保守性 ‒ 機能適合性 ‒ 互換性 ‒ 信頼性 ‒ 性能効率性 ‒ 使用性 ‒ セキュリティ ‒ 移植性  テストの品質(検討中) テスト開発 プロセス品質 テストの実行(資材) 実行形式のテスト資材 など - テストスィート(script, program, etc.), 自動テスト など Test Automator 影響 内部特徴 依存 利用時の品質の特性 ‒ 満足性 ‒ 利用状況 ‒ リスク回避性 網羅性 テスト(結果)の効果 テスト仕様書/設計書/報告書 など - テスト要求/アーキテクチャ/詳細設計の成果物など) 影響 ‒ 有効性 ‒ 効率性 テスト テストの内容 Test Engineer 利用時の品質 外部特徴 影響 依存 テスト自動化 プロセス品質 テストの内容の品質特性(STAを参考) - Effectiveness (有効性) : バグ検出/修正、信頼度 - Thoroughness (徹底性) : 網羅度合い 影響 影響 内部特徴 依存 依存 外部特徴 テスト結果 利用時の品質 依存 テストの実行資材の品質特性 (TABOKの例) - 保守性 - 柔軟性 - 拡張性 - 使用性 - 移植性 - 頑健性 - 信頼性 - 性能 26 テスト結果の利用時の特性 (C) Keizo Tatsumi 2013 ( ?? )
  • 27. 世界の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. まとめ 28 (C) Keizo Tatsumi 2013
  • 29. まとめ テスト自動化の歴史は古いが、専門化され始めてか らは10~15年程度 自動化はテスト技術者の必須知識。何より、ツール を使いこなしたり、ツール開発に関わることで「開発」 の一端に触れるのはよい経験 単にツールを使うだけでなく、自動化ノウハウを方法 論としてまとめたり、新たなツール開発に挑戦して世 界に打って出ませんか ⇒それには、テスト自動化研究会などのコミュニティ で議論したり情報共有を図るのがお薦めです 29
  • 30. Thank You ! 30 (C) Keizo Tatsumi 2013