SlideShare ist ein Scribd-Unternehmen logo
1 von 17
+




       テスト自動化・TABOK研究会
    Skill Category 2 : Test Automation Types and Interfaces

                             担当者:朱峰錦司(@kjstylepp)
+                                    2

    Skill Category 2 導入

     テスト自動化には多様な分野・種類が存在
      異なる種類同士の違いを理解することで得られる
      メリット
         知識・技術の体系化できる
         組織間のコミュニケーションが円滑になる
         新技術の成熟が促進される




テスト自動化・TABOK研究会                 12/05/13
+                                                     3

    目次

     2.1   Test Automation Types
      2.1.1 Unit Test Automation
      2.1.2 Integration Test Automation
      2.1.3 Functional System Test Automation
      2.1.4 Performance Test Automation

     2.2 Application   Interfaces




テスト自動化・TABOK研究会                                  12/05/13
+




    2.1
    Test Automation Types

    テスト自動化・TABOK研究会     12/05/13
+                                                    5

    2.1 概要

     テスト自動化は一般的に以下の4種類に分類
    できる
    1.    ユニットテスト自動化
    2.    統合テスト自動化           V字モデルの右側のイメージ

    3.    機能システムテスト自動化         機能システム       パフォーマンス
    4.    パフォーマンステスト自動化         テスト           テスト



            非機能要件代表                  統合
         ※他は自動化の必要なし or 困難           テスト


                               ユニッ         ホワイトボックス
                               トテス          テスト扱い
                                ト           は一般的か?


テスト自動化・TABOK研究会                                 12/05/13
+                                           6

    2.1.1 Unit Test Automation(1)
                        定義は人によってまちまち
     ユニットテスト
      テスト可能な最小単位の振る舞いをテスト
         テスト時はドライバ/スタブを利用
         コード変更時の問題(≒デグレ)早期発見に有効
           ビルド時に自動実行されると効力が最大化



      手動+目視確認でも実施可能だが、コードが複雑
      になるにつれて厳しくなる
         カバレッジの確保が大変
         実施が退屈

             ユニットテスト自動化
テスト自動化・TABOK研究会                        12/05/13
+                                           7

    2.1.1 Unit Test Automation(2)

     ユニットテスト自動化
      テストコードはたいていプロダクトコードと同じ
      言語で実現(ex. Java -> JUnit)
         プロダクトコードより前、または同時に書くのが理想
      構成管理もプロダクトコードと同等に実施
      プロダクトコード開発者がテストコードも書くの
      が一般的
         方法論によっては、テスト専門家がシナリオを作成を支援
      テストハーネス等を用いて、複数のユニットテス
      トをまとめて定期的に実行可能

     テスト実装・実施環境などを含んだフレームワーク
                  ※詳細はISTQBを参照のこと

テスト自動化・TABOK研究会                        12/05/13
+                                                    8

    2.1.2 Integration Test Automation
     統合テスト
      ユニットを統合して振る舞いをテスト



     統合テスト自動化
      自動化のアプローチはユニットテストと一緒
      2つの統合していく順序の方針
                                      どっちがいいかは
      1.       トップダウン                  Case by Case?
              呼び出し階層が上位のユニットから順に統合
              ドライバが減るがスタブが増える
      2.       ボトムアップ統合
              呼び出し階層が下位のユニットから順に統合
              スタブが減るがドライバが増える

テスト自動化・TABOK研究会                                 12/05/13
+ 2.1.3 Functional System Test Automation        9




   機能システムテスト
     機能テスト、かつ、システムテスト
         完全に統合されたアプリケーションに対し、ブラックボッ
          クスアプローチで振る舞いをテスト
         本書では簡単のため「functional test」と表記
     たいていテスト自動化の対象はこの工程



   機能システムテスト自動化
     GUIアプリケーションに対する回帰テストを対象
      にすることが多い


テスト自動化・TABOK研究会                             12/05/13
+ 2.1.4 Performance Test Automation(1)       10




   パフォーマンステスト
     レスポンスタイムのボトルネックを特定/スルー
      プットを測定
     システム機能テストが完了した段階で実施するの
      が理想              理想すぎやしないか?


     手動での実施は困難
         多数のユーザによる同時利用などの場合、人手不足となる
         正確な測定が難しい

             パフォーマンステスト自動化

テスト自動化・TABOK研究会                          12/05/13
+ 2.1.4 Performance Test Automation(2)       11




   パフォーマンステスト自動化
     仮想ユーザによる同時多数接続、データ量とパ
      フォーマンスの相関算出などを実施
     ボトルネック発見時はレイヤーを切り分けて詳細
      に原因究明
         レイヤーごとに有識者を確保する必要あり

                    レイヤー      原因の例
              プレゼンテーション層 効率の悪いアルゴリズム
              DB層          効率の悪いクエリ
              OS層          リソース不足
              ネットワーク層      狭い帯域


テスト自動化・TABOK研究会                          12/05/13
+ 2.1.4 Performance Test Automation(3)         12




   パフォーマンステストと似たテスト
     ロードテスト
         基本的にはパフォーマンステストと一緒
         上限に向けて徐々にデータ量を増やしていくのが特徴


     ストレステスト
         上限を超えて、実際にアプリケーションが正常に動作しな
          くなるまで実施するのが特徴


                  パフォーマンステストの定義が明確でないため、
                      差異がよくわかっていません…



テスト自動化・TABOK研究会                            12/05/13
+




    2.2
    Application Interfaces

    テスト自動化・TABOK研究会          12/05/13
+                                            14

    2.2 概要

     テスト自動化に適したアプリケーションイン
     タフェースは以下の4つである
     1.   CLI
                テスト実装がしやすい
     2.   API
     3.   GUI
     4.   Webサービス・インタフェース

    ユーザの操作の再現という点で一番相性がよい



            ※@snskさんのブログでの説明のニュアンスはちょっと違うかも?
            ※「CUI」は和製英語なので英語圏で使うとかっこわるいかも?

テスト自動化・TABOK研究会                          12/05/13
+                                                      15

    2.2 各インタフェースについて(1)
     Command     Line Interface
        コマンドを効率よくやり取りするテキストベースのメ
         カニズム
        たいていのスクリプト言語はコマンドラインインタプ
         リタを実現可能なため、これを用いてテスト自動化を
         実現可能
                                        なぜスクリプト言語限定?


     Application   Programming Interface
        プログラム呼び出し等で利用可能なアプリケーション
         再利用メカニズム
        たいていのスクリプト言語は外部プログラム呼び出し
         が可能なため、これを用いてテスト自動化を実現可能
テスト自動化・TABOK研究会                                   12/05/13
+                                      16

    2.2 各インタフェースについて(2)
     Graphical   User Interface
      アイコンなどの操作によりアプリケーションを利用可
       能とするメカニズム
      UIの変更時、内部構造の変更時に比べて自動テスト資
       産の保守性の維持が困難
      しかし、直感的な自動化のため需要は多く、たいてい
       の取り組みはGUIアプリケーションが対象


     Web   Service Interface
      ネットワークごしに利用可能なアプリケーション再利
       用メカニズム
      メッセージベースのオープンなプロトコルによる利用
       を想定してるため、これを再現することでテスト自動
       化を実現可能

テスト自動化・TABOK研究会                    12/05/13
+
    ご清聴ありがとうございました

Weitere ähnliche Inhalte

Was ist angesagt?

Agileツール適合化分科会(テスト自動化ツール)
Agileツール適合化分科会(テスト自動化ツール)Agileツール適合化分科会(テスト自動化ツール)
Agileツール適合化分科会(テスト自動化ツール)
masanori kataoka
 
アジャイル開発におけるシステムテストの自動化
アジャイル開発におけるシステムテストの自動化アジャイル開発におけるシステムテストの自動化
アジャイル開発におけるシステムテストの自動化
Toru Koido
 
システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料
Masatoshi Itoh
 
アジャイル×テスト開発を考える
アジャイル×テスト開発を考えるアジャイル×テスト開発を考える
アジャイル×テスト開発を考える
yasuohosotani
 
システムテスト自動化標準ガイド第6章
システムテスト自動化標準ガイド第6章システムテスト自動化標準ガイド第6章
システムテスト自動化標準ガイド第6章
nihon buson
 

Was ist angesagt? (20)

組み込み開発でのシステムテスト自動化の一つの考え方(STAC)
組み込み開発でのシステムテスト自動化の一つの考え方(STAC)組み込み開発でのシステムテスト自動化の一つの考え方(STAC)
組み込み開発でのシステムテスト自動化の一つの考え方(STAC)
 
Agileツール適合化分科会(テスト自動化ツール)
Agileツール適合化分科会(テスト自動化ツール)Agileツール適合化分科会(テスト自動化ツール)
Agileツール適合化分科会(テスト自動化ツール)
 
異業種でのテスト自動化の実際
異業種でのテスト自動化の実際異業種でのテスト自動化の実際
異業種でのテスト自動化の実際
 
GUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるにはGUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるには
 
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
 
EMTEを使って自動化の費用対効果をわかりやすく表現する
EMTEを使って自動化の費用対効果をわかりやすく表現するEMTEを使って自動化の費用対効果をわかりやすく表現する
EMTEを使って自動化の費用対効果をわかりやすく表現する
 
テストの極みを目指して ~さあ、理想に近づくための一歩を踏み出そう!~
テストの極みを目指して ~さあ、理想に近づくための一歩を踏み出そう!~テストの極みを目指して ~さあ、理想に近づくための一歩を踏み出そう!~
テストの極みを目指して ~さあ、理想に近づくための一歩を踏み出そう!~
 
アジャイル開発におけるシステムテストの自動化
アジャイル開発におけるシステムテストの自動化アジャイル開発におけるシステムテストの自動化
アジャイル開発におけるシステムテストの自動化
 
Wacate2015summer_report
Wacate2015summer_reportWacate2015summer_report
Wacate2015summer_report
 
システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料
 
自動テストの品質とテストパターン
自動テストの品質とテストパターン自動テストの品質とテストパターン
自動テストの品質とテストパターン
 
アジャイル×テスト開発を考える
アジャイル×テスト開発を考えるアジャイル×テスト開発を考える
アジャイル×テスト開発を考える
 
事例から見るテスト自動化のポイント
事例から見るテスト自動化のポイント事例から見るテスト自動化のポイント
事例から見るテスト自動化のポイント
 
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
モデルベースドテスト入門 -テスト詳細設計を自動化しよう- #stac2013
 
テスト自動化とアーキテクチャ
テスト自動化とアーキテクチャテスト自動化とアーキテクチャ
テスト自動化とアーキテクチャ
 
システムテスト自動化標準ガイド第6章
システムテスト自動化標準ガイド第6章システムテスト自動化標準ガイド第6章
システムテスト自動化標準ガイド第6章
 
自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介
 
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
 
「トピックモデル」を使った「バグチケットの自動タグ付け」
「トピックモデル」を使った「バグチケットの自動タグ付け」「トピックモデル」を使った「バグチケットの自動タグ付け」
「トピックモデル」を使った「バグチケットの自動タグ付け」
 
アジャイルテストを、壮絶に、考える。
アジャイルテストを、壮絶に、考える。アジャイルテストを、壮絶に、考える。
アジャイルテストを、壮絶に、考える。
 

Ähnlich wie TABOK Skill Category2解説

Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめJenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
atsushi_tmx
 
Continuous delivery chapter4
Continuous delivery chapter4Continuous delivery chapter4
Continuous delivery chapter4
favril1
 
継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ
Yasutomo Arai
 
第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー
Tomoyuki Sato
 
テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門
Satoshi Watanabe
 

Ähnlich wie TABOK Skill Category2解説 (20)

ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
 
SGT2013 技術トークス「アジャイルテスティング」
SGT2013 技術トークス「アジャイルテスティング」SGT2013 技術トークス「アジャイルテスティング」
SGT2013 技術トークス「アジャイルテスティング」
 
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストJUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
 
ソフトウェアテスト入門
ソフトウェアテスト入門ソフトウェアテスト入門
ソフトウェアテスト入門
 
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ
 
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テストはこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テスト
 
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめJenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
Jenkins ユーザ・カンファレンス 2012 東京 S406-4/マルチステージ型継続的インテグレーションのすすめ
 
【JaSST'11 Tokyo】 テスト イノベーション
【JaSST'11 Tokyo】 テスト イノベーション【JaSST'11 Tokyo】 テスト イノベーション
【JaSST'11 Tokyo】 テスト イノベーション
 
Continuous delivery chapter4
Continuous delivery chapter4Continuous delivery chapter4
Continuous delivery chapter4
 
Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化
 
継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ継続的デリバリー読書会 第 7 章 コミットステージ
継続的デリバリー読書会 第 7 章 コミットステージ
 
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
 
Automation test.ssf alpha
Automation test.ssf alphaAutomation test.ssf alpha
Automation test.ssf alpha
 
第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー
 
ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略ぼくのかんがえた iOSテスト戦略
ぼくのかんがえた iOSテスト戦略
 
テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門
 
【Agile Conference tokyo 2011】 継続的フィードバック
【Agile Conference tokyo 2011】 継続的フィードバック【Agile Conference tokyo 2011】 継続的フィードバック
【Agile Conference tokyo 2011】 継続的フィードバック
 
How to introduce test automation in VeriServe Test Automation Talk #2
How to introduce test automation in VeriServe Test Automation Talk #2How to introduce test automation in VeriServe Test Automation Talk #2
How to introduce test automation in VeriServe Test Automation Talk #2
 
Gamedevenvstudy1
Gamedevenvstudy1Gamedevenvstudy1
Gamedevenvstudy1
 
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテスト
 

Mehr von Kinji Akemine (7)

WACATE2018冬 45分で講師になれそうな気になるASTERセミナー標準テキスト #wacate
WACATE2018冬 45分で講師になれそうな気になるASTERセミナー標準テキスト #wacateWACATE2018冬 45分で講師になれそうな気になるASTERセミナー標準テキスト #wacate
WACATE2018冬 45分で講師になれそうな気になるASTERセミナー標準テキスト #wacate
 
テストの視点からのモデリング(公開用) #wacate
テストの視点からのモデリング(公開用) #wacateテストの視点からのモデリング(公開用) #wacate
テストの視点からのモデリング(公開用) #wacate
 
#wacate 2017 冬 ISONO:REBOOT -評価することにこだわろう-
#wacate 2017 冬 ISONO:REBOOT -評価することにこだわろう-#wacate 2017 冬 ISONO:REBOOT -評価することにこだわろう-
#wacate 2017 冬 ISONO:REBOOT -評価することにこだわろう-
 
ICST 2015 まるわかりDay! -Model
ICST 2015 まるわかりDay! -ModelICST 2015 まるわかりDay! -Model
ICST 2015 まるわかりDay! -Model
 
第1回キーワード駆動テスト勉強会
第1回キーワード駆動テスト勉強会第1回キーワード駆動テスト勉強会
第1回キーワード駆動テスト勉強会
 
Astahプラグイン開発勉強会
Astahプラグイン開発勉強会Astahプラグイン開発勉強会
Astahプラグイン開発勉強会
 
Beginning Java EE 6 勉強会(2) #bje_study
Beginning Java EE 6 勉強会(2) #bje_studyBeginning Java EE 6 勉強会(2) #bje_study
Beginning Java EE 6 勉強会(2) #bje_study
 

Kürzlich hochgeladen

Kürzlich hochgeladen (12)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 

TABOK Skill Category2解説

  • 1. + テスト自動化・TABOK研究会 Skill Category 2 : Test Automation Types and Interfaces 担当者:朱峰錦司(@kjstylepp)
  • 2. + 2 Skill Category 2 導入  テスト自動化には多様な分野・種類が存在  異なる種類同士の違いを理解することで得られる メリット  知識・技術の体系化できる  組織間のコミュニケーションが円滑になる  新技術の成熟が促進される テスト自動化・TABOK研究会 12/05/13
  • 3. + 3 目次  2.1 Test Automation Types  2.1.1 Unit Test Automation  2.1.2 Integration Test Automation  2.1.3 Functional System Test Automation  2.1.4 Performance Test Automation  2.2 Application Interfaces テスト自動化・TABOK研究会 12/05/13
  • 4. + 2.1 Test Automation Types テスト自動化・TABOK研究会 12/05/13
  • 5. + 5 2.1 概要  テスト自動化は一般的に以下の4種類に分類 できる 1. ユニットテスト自動化 2. 統合テスト自動化 V字モデルの右側のイメージ 3. 機能システムテスト自動化 機能システム パフォーマンス 4. パフォーマンステスト自動化 テスト テスト 非機能要件代表 統合 ※他は自動化の必要なし or 困難 テスト ユニッ ホワイトボックス トテス テスト扱い ト は一般的か? テスト自動化・TABOK研究会 12/05/13
  • 6. + 6 2.1.1 Unit Test Automation(1) 定義は人によってまちまち  ユニットテスト  テスト可能な最小単位の振る舞いをテスト  テスト時はドライバ/スタブを利用  コード変更時の問題(≒デグレ)早期発見に有効  ビルド時に自動実行されると効力が最大化  手動+目視確認でも実施可能だが、コードが複雑 になるにつれて厳しくなる  カバレッジの確保が大変  実施が退屈 ユニットテスト自動化 テスト自動化・TABOK研究会 12/05/13
  • 7. + 7 2.1.1 Unit Test Automation(2)  ユニットテスト自動化  テストコードはたいていプロダクトコードと同じ 言語で実現(ex. Java -> JUnit)  プロダクトコードより前、または同時に書くのが理想  構成管理もプロダクトコードと同等に実施  プロダクトコード開発者がテストコードも書くの が一般的  方法論によっては、テスト専門家がシナリオを作成を支援  テストハーネス等を用いて、複数のユニットテス トをまとめて定期的に実行可能 テスト実装・実施環境などを含んだフレームワーク ※詳細はISTQBを参照のこと テスト自動化・TABOK研究会 12/05/13
  • 8. + 8 2.1.2 Integration Test Automation  統合テスト  ユニットを統合して振る舞いをテスト  統合テスト自動化  自動化のアプローチはユニットテストと一緒  2つの統合していく順序の方針 どっちがいいかは 1. トップダウン Case by Case?  呼び出し階層が上位のユニットから順に統合  ドライバが減るがスタブが増える 2. ボトムアップ統合  呼び出し階層が下位のユニットから順に統合  スタブが減るがドライバが増える テスト自動化・TABOK研究会 12/05/13
  • 9. + 2.1.3 Functional System Test Automation 9  機能システムテスト  機能テスト、かつ、システムテスト  完全に統合されたアプリケーションに対し、ブラックボッ クスアプローチで振る舞いをテスト  本書では簡単のため「functional test」と表記  たいていテスト自動化の対象はこの工程  機能システムテスト自動化  GUIアプリケーションに対する回帰テストを対象 にすることが多い テスト自動化・TABOK研究会 12/05/13
  • 10. + 2.1.4 Performance Test Automation(1) 10  パフォーマンステスト  レスポンスタイムのボトルネックを特定/スルー プットを測定  システム機能テストが完了した段階で実施するの が理想 理想すぎやしないか?  手動での実施は困難  多数のユーザによる同時利用などの場合、人手不足となる  正確な測定が難しい パフォーマンステスト自動化 テスト自動化・TABOK研究会 12/05/13
  • 11. + 2.1.4 Performance Test Automation(2) 11  パフォーマンステスト自動化  仮想ユーザによる同時多数接続、データ量とパ フォーマンスの相関算出などを実施  ボトルネック発見時はレイヤーを切り分けて詳細 に原因究明  レイヤーごとに有識者を確保する必要あり レイヤー 原因の例 プレゼンテーション層 効率の悪いアルゴリズム DB層 効率の悪いクエリ OS層 リソース不足 ネットワーク層 狭い帯域 テスト自動化・TABOK研究会 12/05/13
  • 12. + 2.1.4 Performance Test Automation(3) 12  パフォーマンステストと似たテスト  ロードテスト  基本的にはパフォーマンステストと一緒  上限に向けて徐々にデータ量を増やしていくのが特徴  ストレステスト  上限を超えて、実際にアプリケーションが正常に動作しな くなるまで実施するのが特徴 パフォーマンステストの定義が明確でないため、 差異がよくわかっていません… テスト自動化・TABOK研究会 12/05/13
  • 13. + 2.2 Application Interfaces テスト自動化・TABOK研究会 12/05/13
  • 14. + 14 2.2 概要  テスト自動化に適したアプリケーションイン タフェースは以下の4つである 1. CLI テスト実装がしやすい 2. API 3. GUI 4. Webサービス・インタフェース ユーザの操作の再現という点で一番相性がよい ※@snskさんのブログでの説明のニュアンスはちょっと違うかも? ※「CUI」は和製英語なので英語圏で使うとかっこわるいかも? テスト自動化・TABOK研究会 12/05/13
  • 15. + 15 2.2 各インタフェースについて(1)  Command Line Interface  コマンドを効率よくやり取りするテキストベースのメ カニズム  たいていのスクリプト言語はコマンドラインインタプ リタを実現可能なため、これを用いてテスト自動化を 実現可能 なぜスクリプト言語限定?  Application Programming Interface  プログラム呼び出し等で利用可能なアプリケーション 再利用メカニズム  たいていのスクリプト言語は外部プログラム呼び出し が可能なため、これを用いてテスト自動化を実現可能 テスト自動化・TABOK研究会 12/05/13
  • 16. + 16 2.2 各インタフェースについて(2)  Graphical User Interface  アイコンなどの操作によりアプリケーションを利用可 能とするメカニズム  UIの変更時、内部構造の変更時に比べて自動テスト資 産の保守性の維持が困難  しかし、直感的な自動化のため需要は多く、たいてい の取り組みはGUIアプリケーションが対象  Web Service Interface  ネットワークごしに利用可能なアプリケーション再利 用メカニズム  メッセージベースのオープンなプロトコルによる利用 を想定してるため、これを再現することでテスト自動 化を実現可能 テスト自動化・TABOK研究会 12/05/13
  • 17. + ご清聴ありがとうございました