tabok skill category2解説

17
+ テテテテテテTABOK テテテ Skill Category 2 : Test Automation Types and Interfaces テテテ テテテテ (@kjstylepp)

Upload: kinji-akemine

Post on 14-Jun-2015

732 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: TABOK Skill Category2解説

+

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

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

Page 2: TABOK Skill Category2解説

2+Skill Category 2 導入

テスト自動化には多様な分野・種類が存在 異なる種類同士の違いを理解することで得られる

メリット 知識・技術の体系化できる 組織間のコミュニケーションが円滑になる 新技術の成熟が促進される

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

Page 3: TABOK Skill Category2解説

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

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

Page 4: TABOK Skill Category2解説

+

2.1Test Automation Types

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

Page 5: TABOK Skill Category2解説

5+2.1 概要

テスト自動化は一般的に以下の 4 種類に分類できる1. ユニットテスト自動化2. 統合テスト自動化3. 機能システムテスト自動化4. パフォーマンステスト自動化

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

ユニットテス

統合テスト

機能システムテスト

パフォーマンステスト

V 字モデルの右側のイメージ

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

ホワイトボックステスト扱い

は一般的か?

Page 6: TABOK Skill Category2解説

6+2.1.1 Unit Test Automation(1)

ユニットテスト テスト可能な最小単位の振る舞いをテスト

テスト時はドライバ/スタブを利用 コード変更時の問題(≒デグレ)早期発見に有効

ビルド時に自動実行されると効力が最大化

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

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

定義は人によってまちまち

ユニットテスト自動化

Page 7: TABOK Skill Category2解説

7+2.1.1 Unit Test Automation(2)

ユニットテスト自動化 テストコードはたいていプロダクトコードと同じ

言語で実現( ex. Java -> JUnit )

プロダクトコードより前、または同時に書くのが理想 構成管理もプロダクトコードと同等に実施 プロダクトコード開発者がテストコードも書くの

が一般的 方法論によっては、テスト専門家がシナリオを作成を支

援 テストハーネス等を用いて、複数のユニットテス

トをまとめて定期的に実行可能

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

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

Page 8: TABOK Skill Category2解説

8+2.1.2 Integration Test Automation統合テスト

ユニットを統合して振る舞いをテスト

統合テスト自動化 自動化のアプローチはユニットテストと一緒 2 つの統合していく順序の方針

1. トップダウン 呼び出し階層が上位のユニットから順に統合 ドライバが減るがスタブが増える

2. ボトムアップ統合 呼び出し階層が下位のユニットから順に統合 スタブが減るがドライバが増える

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

どっちがいいかはCase by Case?

Page 9: TABOK Skill Category2解説

9+2.1.3 Functional System Test Automation機能システムテスト

機能テスト、かつ、システムテスト 完全に統合されたアプリケーションに対し、ブラック

ボックスアプローチで振る舞いをテスト 本書では簡単のため「 functional test 」と表記

たいていテスト自動化の対象はこの工程

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

にすることが多い

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

Page 10: TABOK Skill Category2解説

10+2.1.4 Performance Test Automation(1)パフォーマンステスト

レスポンスタイムのボトルネックを特定/スループットを測定

システム機能テストが完了した段階で実施するのが理想

手動での実施は困難 多数のユーザによる同時利用などの場合、人手不足とな

る 正確な測定が難しい

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

理想すぎやしないか?

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

Page 11: TABOK Skill Category2解説

11+2.1.4 Performance Test Automation(2)パフォーマンステスト自動化

仮想ユーザによる同時多数接続、データ量とパフォーマンスの相関算出などを実施

ボトルネック発見時はレイヤーを切り分けて詳細に原因究明 レイヤーごとに有識者を確保する必要あり

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

レイヤー 原因の例

プレゼンテーション層

効率の悪いアルゴリズム

DB 層 効率の悪いクエリ

OS 層 リソース不足

ネットワーク層 狭い帯域

Page 12: TABOK Skill Category2解説

12+2.1.4 Performance Test Automation(3)パフォーマンステストと似たテスト

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

ストレステスト 上限を超えて、実際にアプリケーションが正常に動作し

なくなるまで実施するのが特徴

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

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

Page 13: TABOK Skill Category2解説

+

2.2Application Interfaces

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

Page 14: TABOK Skill Category2解説

14+2.2 概要

テスト自動化に適したアプリケーションインタフェースは以下の 4 つである1. CLI2. API3. GUI4. Webサービス・インタフェース

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

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

テスト実装がしやすい

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

Page 15: TABOK Skill Category2解説

15+2.2 各インタフェースについて (1)

Command Line Interface コマンドを効率よくやり取りするテキストベースのメ

カニズム たいていのスクリプト言語はコマンドラインインタプ

リタを実現可能なため、これを用いてテスト自動化を実現可能

Application Programming Interface プログラム呼び出し等で利用可能なアプリケーション再利用メカニズム

たいていのスクリプト言語は外部プログラム呼び出しが可能なため、これを用いてテスト自動化を実現可能

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

なぜスクリプト言語限定?

Page 16: TABOK Skill Category2解説

16+2.2 各インタフェースについて (2)

Graphical User Interface アイコンなどの操作によりアプリケーションを利用可能と

するメカニズム UI の変更時、内部構造の変更時に比べて自動テスト資産の

保守性の維持が困難 しかし、直感的な自動化のため需要は多く、たいていの取

り組みは GUI アプリケーションが対象

Web Service Interface ネットワークごしに利用可能なアプリケーション再利用メ

カニズム メッセージベースのオープンなプロトコルによる利用を想

定してるため、これを再現することでテスト自動化を実現可能

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

Page 17: TABOK Skill Category2解説

+ご清聴ありがとうございました