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

26,722 views

Published on

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

Published in: Technology

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

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

×