SlideShare a Scribd company logo
ISTQB Certified Tester Advanced Level Syllabus Test
Automation Engineer
約10分にまとめてみた
Sadaaki Emura
2
Purpose of Test Automation
■WHY is automation?
• テスト効率改善
• テストカバレッジを上げる
• テストコストを下げる
• パフォーマンステスト
• テスト速度を上げる
• テスト(リリース)サイクルを上げる
直接的に“品質を上げる”と記載
されてないんだw
■WHERE is suitable?
• テスト環境の構築(データ作成等)
• テストの実行
• テスト結果と期待値の比較(Validation)
• 実施結果のレポーティング
テスト実施環境の構築は思った以
上に時間節約できる!
3
Purpose of Test Automation
■automation merit
作業品質が上がる
■automation demerit
• 追加コストが発生する
• 自動化のスキルが要求される
• 本来の自動化の目的を忘れる傾向がある
• テストが複雑になりうる
カバレッジは目的ではない!
• テストサイクルを増やせる
• マニュアルで厳しい・複雑なテストの実施
• テスト実行が早く、フィードバックが早まる
• 人手によるミスがなくなる
• リソースの効率化が図れる
• テストの一貫性が上がり、信頼性が上がる
4
Success Factors in Test Automation
• テストレベル(Unit, IT ..)によって自動化のアプローチは異なる
• システムのアーキテクチャ (IF , 開発言語 ..)によって自動化のアーキテクチャは異なる
• システムの複雑さ (外部連携も含む) によって自動化の構成は異なる
Unit Test
Integration Test
phpUnit
Selenium,appium
GUI
Selenium,appium
SoapUI
テスト自動化導入時に念頭に入れる事
V字モデル
5
Design for Testability and Automation
• Observability: システムの状態を判断できるI/Fを提供。
• Control(ability): システムを操作するI/Fを提供
• Clearly defined architecture: 上記I/Fを一意に判別でき
る
テスタビリティとは?
• 機械(自動化)が合否を判断できる仕組みが必要
• 機械が操作できる手段(I/F , Object)が必要
• 機械が操作する手段を特定できることが必要
Button A
Button B
Button C
Process is success!
Text text text
GUI
Validateが
しやすい
操作でき
る
Objectを
一意に特
定できる
6
The Generic Test Automation Architecture
テスト自動化アーキテクチャの構成
Test Generation Layer
Test Definition Layer
Test Execution Layer
Test Adaption Layer
Manual
Design
Test
Models
Test
Conditions
Test
Cases
Test
Procedures
Test Data , Library
Test Execution
Test Logging Test Reporting
GUI API
Proto
cols
Data
base
Simul
ator
• テストハーネスの制御
• システムのモニタリング
• システムのシミュレーション/エミュレーション
• テストケースの自動実行
• テストケース実行のロギング
• テスト結果のレポート
•テストケース、テストデータ、手順を定義
•テストケース実行のテストSCRIPTを定義
•テストライブラリ(キーワード駆動)の利用
• マニュアルでテストケースの設計
• テストデータの生成、取得
• モデルから自動でテストケースを作成
※ほとんどの自動化は下のlayerから検討、実装していくが全体像を考慮する必要がある
7
The Generic Test Automation Architecture
テスト自動化アーキテクチャの活動
1. 自動化の目的(要求)をクリアにする → どのテストプロセス、レベル、タイプ?
2. 自動化アプローチの比較
3. 抽象度の検討(キーワード駆動) → 保守性、拡張性等を考慮
4. システムとの接続方法の検討 → システムを動かすトリガを明確化
5. テスト環境の検討
6. 自動化の工数見積もり
7. 自動化の運用に求められる要素の洗い出し → 使いやすさ、レポート、フィードバック機能
8
Approaches for Automating Test Cases
Method concept pros cons
capture & playback ユーザーが操作した手順を記録、それ
を再実施する
Ex. Selenium IDE
• GUI, APIに利用可能
• 簡単
• 保守性が低い
• システムがないと実装できない
Linear scripting Capture & playbackと類似
ユーザー操作を実施し、その手順を
SCRIPTに出力する
Ex. Ranorex
• 簡単
• プログラムスキルが不要(あると
better)
• テスト手順分、SCRIPTが増える
• SCRIPTはプログラムスキルがないと読
めない
Structured scripting Linear scripting + library化 • 共通機能のライブラリ化で保守性が
上がる
• 初期コストが高い
• プログラムスキルが必要
Data driven Dataと処理を分離する
Dataをinputとしてscriptを再利用する
• バリエーションテストに効果 • テストデータの管理が追加で必要にな
る
Keyword driven 非自動化エンジニアでも理解できる
SCRIPT
キーワードの中に処理が隠蔽される
• 保守性が上がる
• 非エンジニアでも操作ができる
• キーワードのSCRIPT工数が大きい
Process driven Keyword drivenからさらにhigh levelな
もの
• テストケースがワークフローに合わ
せて定義できる
• テスト対象のプロセスの理解性が下が
る
Model driven SCRIPTから抽出したモデルで定義す
る
• テストの本質に集中できる • モデリングの技術が求められる
主な自動化scripting手法
9
Test Automation Solution Development
テスト自動化のアクティビティは開発projectと同等である。
そのため、以下の点を考慮する
• テスト自動化にもSDLCがある
• テスト対象との互換性を保つ → 開発ツール等との互換性
• テスト対象のversionとの同期を保つ → テスト対象に修正が入れば、自動化も修正する
• テスト自動化の再利用を検討 → 保守性を考慮
10
Selection of Test Automation Approach and Planning of Deployment/Rollout
pilot
deploy
初めて自動化を導入するときの流れ
• 自動化するprojectの選定(大きすぎず、小さすぎず)
• 自動化の実施
• 自動化の効果測定
• 他プロジェクトへ展開
• (開発、リリース)プロセス、ガイドライン、育成への展開
• 自動化のメトリックスの可視化
11
Risk Assessment and Mitigation Strategies
自動化導入によるリスク
• プロジェクトリリースの遅延
• 自動化エンジニアのリソース確保
• 自動化導入の遅延
• テスト自動化の失敗リスク
• 異なる環境での実施エラー
• 新しい機能リリース時、自動化テストエラー
• リソース、スケジュールの確保
• 自動化テストの実行時間の考慮
• システムに追従して自動化の更新
• 更新前にテスト実施、パフォーマンスの確認
• 自動化の新、既存機能のテスト
12
Test Automation Maintenance
テスト自動化の保守のタイプ
• テストカバレッジ向上(様々なテストタイプ、バージョンの保証)
• テスト自動化の不具合修正(システム変更等による)
• テスト自動化のパフォーマンス(実行時間等)の改善
• 新しい標準、要求、法律等への追従
13
Selection of Test Automation System Metrics
External metrics : テスト自動化がほかの活動へ与える影響度を測る
• 自動化のROI(自動化による工数削減、自動化構築工数、維持工数等)
• 自動化の処理時間(パフォーマンス)
• 自動化の精度(失敗率、偽陰性、偽陽性等)
Internal metrics : テスト自動化の効果、効率を測る
• 自動化Scripting工数
• 自動化Scripting欠陥密度
• 自動化の処理効率(パフォーマンス)
テスト自動化戦略、効果や効率をモニタリングするためのメトリックス
14
Test Automation Logging and Reporting
自動化のログは以下のようなものがあり、様々な分析に利用される
• 自動化の現在のステータス、実行結果
• 実行ステップの詳細ログ、スクリーンショット、テストデータ(特にエラー時)
• システム側のログ(クラッシュダンプ、スタックトレース等)
自動化のレポートは受信側に応じたフォーマットを用意する
Content of the reports : テスト失敗時の分析に必要な情報を要する
Publishing the reports : テストの実行可否を知るための情報を要する
15
Criteria for Automation
マニュアルテストを自動化にするための基準を設けたほうが良い
• ROI (利用頻度、自動化工数)
• スキルレベル(ツールのサポート、テストプロセスへの追従可能、成熟度)
• テスト自動化環境の整備 (自動化環境の持続可能性、テスト対象の制御可能性)
テスト自動化の導入効果を測る前に、以下の課題を対処する必要がある
• チーム体制(育成体制、役割の明確化)
• テスト環境整備(ツールの利用可能、データの正確性)
• テスタビリティ(開発と協調)
16
Identify Steps Needed to Implement Automation within Regression Testing
リグレッションテストを自動化するとき、考慮すべき点
• テストの実行頻度、時間 (繰り返しの実行による定期的な機能確認、すばやいフィードバック)
• テストの重複実行(マニュアルテストの重複実施の見直し)
• テストの依存性(前処理、後処理等)
• カバレッジの定義(自動化がなにをカバーしているのかをクリアにする)
• マニュアルテストの妥当性(間違ったマニュアルテストフローを自動化してはいけない)
17
Verifying Automated Test Environment Components, Test suite
自動化環境、実施テストスイートの妥当性を維持、検証するためにすること
1. テスト環境のSetup、setup自体の自動化 、異なる環境も保証
2. テストSCRIPTが正しく動くところ、失敗するところを把握
3. テスト自動化の設定方法などのドキュメンテーション
4. テスト自動化自身のテスト
5. テストスイートが正しく、最新のバージョンを保つ
6. 繰り返しのテストでは、基本同じ結果をだすこと
7. 検証結果、ログを残す
18
Continuous Improvement
以下のような自動化を改善し続けることにより、プロジェクトへ良き影響を与える
1. スクリプトの改善(共通化、非ハードコード、エラー自動復旧性)
2. 実行時間の改善(重複処理の回避、処理分割)
3. 前処理、後処理の実装(共通性の高いもの)
4. 自動化の付加価値(レポーティング、ログ、他システムとの連携)
5. 変更に対する影響の確認(実行処理、パフォーマンス)
6. システムの変更への追従
Istqb : Test automation Engineer
Ad

More Related Content

What's hot (20)

システムテスト自動化標準ガイド第7章
システムテスト自動化標準ガイド第7章システムテスト自動化標準ガイド第7章
システムテスト自動化標準ガイド第7章
nihon buson
 
システムテスト自動化標準ガイド第6章
システムテスト自動化標準ガイド第6章システムテスト自動化標準ガイド第6章
システムテスト自動化標準ガイド第6章
nihon buson
 
キーワード駆動によるシステムテストの自動化について 2015
キーワード駆動によるシステムテストの自動化について 2015キーワード駆動によるシステムテストの自動化について 2015
キーワード駆動によるシステムテストの自動化について 2015
Toru Koido
 
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
Kotaro Ogino
 
EMTEを使って自動化の費用対効果をわかりやすく表現する
EMTEを使って自動化の費用対効果をわかりやすく表現するEMTEを使って自動化の費用対効果をわかりやすく表現する
EMTEを使って自動化の費用対効果をわかりやすく表現する
JYERUEY
 
Unit testで定時帰宅!
Unit testで定時帰宅!Unit testで定時帰宅!
Unit testで定時帰宅!
Funato Takashi
 
テスト管理への期待
テスト管理への期待テスト管理への期待
テスト管理への期待
友隆 浅黄
 
reg-suitとQA Wolfを活用したVisual Regression Test
reg-suitとQA Wolfを活用したVisual Regression Testreg-suitとQA Wolfを活用したVisual Regression Test
reg-suitとQA Wolfを活用したVisual Regression Test
Kazuyuki Tsuzisaki
 
事例から見るテスト自動化のポイント
事例から見るテスト自動化のポイント事例から見るテスト自動化のポイント
事例から見るテスト自動化のポイント
Hiroshi Maekawa
 
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
Nozomi Ito
 
Jasst'18 kansai_challenge_to_convincing_test_design_by_test_design_contest
Jasst'18 kansai_challenge_to_convincing_test_design_by_test_design_contestJasst'18 kansai_challenge_to_convincing_test_design_by_test_design_contest
Jasst'18 kansai_challenge_to_convincing_test_design_by_test_design_contest
tomohiro odan
 
20150418 システムテスト自動化 第一章
20150418 システムテスト自動化 第一章20150418 システムテスト自動化 第一章
20150418 システムテスト自動化 第一章
Yuki Fujisawa
 
異業種でのテスト自動化の実際
異業種でのテスト自動化の実際異業種でのテスト自動化の実際
異業種でのテスト自動化の実際
Satsuki Urayama
 
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
kyon mm
 
システムテスト自動化標準ガイド 読書会 第8章
システムテスト自動化標準ガイド 読書会 第8章システムテスト自動化標準ガイド 読書会 第8章
システムテスト自動化標準ガイド 読書会 第8章
mirer
 
Azureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめようAzureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめよう
Naoya Kojima
 
自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介
Shinsuke Matsuki
 
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
Kotaro Ogino
 
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
Kotaro Ogino
 
ノンプログラマのためのSelenium de DDTはじめの一歩
ノンプログラマのためのSelenium de DDTはじめの一歩ノンプログラマのためのSelenium de DDTはじめの一歩
ノンプログラマのためのSelenium de DDTはじめの一歩
Satsuki Urayama
 
システムテスト自動化標準ガイド第7章
システムテスト自動化標準ガイド第7章システムテスト自動化標準ガイド第7章
システムテスト自動化標準ガイド第7章
nihon buson
 
システムテスト自動化標準ガイド第6章
システムテスト自動化標準ガイド第6章システムテスト自動化標準ガイド第6章
システムテスト自動化標準ガイド第6章
nihon buson
 
キーワード駆動によるシステムテストの自動化について 2015
キーワード駆動によるシステムテストの自動化について 2015キーワード駆動によるシステムテストの自動化について 2015
キーワード駆動によるシステムテストの自動化について 2015
Toru Koido
 
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
Kotaro Ogino
 
EMTEを使って自動化の費用対効果をわかりやすく表現する
EMTEを使って自動化の費用対効果をわかりやすく表現するEMTEを使って自動化の費用対効果をわかりやすく表現する
EMTEを使って自動化の費用対効果をわかりやすく表現する
JYERUEY
 
Unit testで定時帰宅!
Unit testで定時帰宅!Unit testで定時帰宅!
Unit testで定時帰宅!
Funato Takashi
 
テスト管理への期待
テスト管理への期待テスト管理への期待
テスト管理への期待
友隆 浅黄
 
reg-suitとQA Wolfを活用したVisual Regression Test
reg-suitとQA Wolfを活用したVisual Regression Testreg-suitとQA Wolfを活用したVisual Regression Test
reg-suitとQA Wolfを活用したVisual Regression Test
Kazuyuki Tsuzisaki
 
事例から見るテスト自動化のポイント
事例から見るテスト自動化のポイント事例から見るテスト自動化のポイント
事例から見るテスト自動化のポイント
Hiroshi Maekawa
 
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
Nozomi Ito
 
Jasst'18 kansai_challenge_to_convincing_test_design_by_test_design_contest
Jasst'18 kansai_challenge_to_convincing_test_design_by_test_design_contestJasst'18 kansai_challenge_to_convincing_test_design_by_test_design_contest
Jasst'18 kansai_challenge_to_convincing_test_design_by_test_design_contest
tomohiro odan
 
20150418 システムテスト自動化 第一章
20150418 システムテスト自動化 第一章20150418 システムテスト自動化 第一章
20150418 システムテスト自動化 第一章
Yuki Fujisawa
 
異業種でのテスト自動化の実際
異業種でのテスト自動化の実際異業種でのテスト自動化の実際
異業種でのテスト自動化の実際
Satsuki Urayama
 
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
kyon mm
 
システムテスト自動化標準ガイド 読書会 第8章
システムテスト自動化標準ガイド 読書会 第8章システムテスト自動化標準ガイド 読書会 第8章
システムテスト自動化標準ガイド 読書会 第8章
mirer
 
Azureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめようAzureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめよう
Naoya Kojima
 
自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介
Shinsuke Matsuki
 
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
Kotaro Ogino
 
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
Kotaro Ogino
 
ノンプログラマのためのSelenium de DDTはじめの一歩
ノンプログラマのためのSelenium de DDTはじめの一歩ノンプログラマのためのSelenium de DDTはじめの一歩
ノンプログラマのためのSelenium de DDTはじめの一歩
Satsuki Urayama
 

Similar to Istqb : Test automation Engineer (20)

Provisioning & Deploy on AWS
Provisioning & Deploy on AWSProvisioning & Deploy on AWS
Provisioning & Deploy on AWS
Amazon Web Services Japan
 
テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!
Kenji Okumura
 
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
Ryutaro YOSHIBA
 
19-B-4 開発品質向上のための、ASQ/ALMソリューション
19-B-4 開発品質向上のための、ASQ/ALMソリューション19-B-4 開発品質向上のための、ASQ/ALMソリューション
19-B-4 開発品質向上のための、ASQ/ALMソリューション
Developers Summit
 
Agile at salesforce
Agile at salesforceAgile at salesforce
Agile at salesforce
Ryoji Osawa
 
開発品質向上のための、ASQ/ALMソリューション ~品質向上策・活用していないのは何故ですか?~
開発品質向上のための、ASQ/ALMソリューション ~品質向上策・活用していないのは何故ですか?~開発品質向上のための、ASQ/ALMソリューション ~品質向上策・活用していないのは何故ですか?~
開発品質向上のための、ASQ/ALMソリューション ~品質向上策・活用していないのは何故ですか?~
mafujiwara
 
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
Takuma SHIRAISHI
 
Continuous delivery-9
Continuous delivery-9Continuous delivery-9
Continuous delivery-9
LagerKorone
 
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
Satoshi Masuda
 
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】 Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
智治 長沢
 
TDDはじめる前に
TDDはじめる前にTDDはじめる前に
TDDはじめる前に
Yasui Tsutomu
 
QA組織とiOSのテスト
QA組織とiOSのテストQA組織とiOSのテスト
QA組織とiOSのテスト
LINE Corporation
 
Gui自動テストツール基本
Gui自動テストツール基本Gui自動テストツール基本
Gui自動テストツール基本
Tsuyoshi Yumoto
 
20190424 q ameetup-m -publish
20190424 q ameetup-m -publish20190424 q ameetup-m -publish
20190424 q ameetup-m -publish
Sadaaki Emura
 
アジャイル×テスト開発を考える
アジャイル×テスト開発を考えるアジャイル×テスト開発を考える
アジャイル×テスト開発を考える
yasuohosotani
 
20220527_JaSST'22 Tohoku
20220527_JaSST'22 Tohoku20220527_JaSST'22 Tohoku
20220527_JaSST'22 Tohoku
Sadaaki Emura
 
テストとの上手な付き合い方
テストとの上手な付き合い方テストとの上手な付き合い方
テストとの上手な付き合い方
Akira Suenami
 
非開発者のためのアジャイル開発入門
非開発者のためのアジャイル開発入門非開発者のためのアジャイル開発入門
非開発者のためのアジャイル開発入門
Kiro Harada
 
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
Hironori Washizaki
 
テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!
Kenji Okumura
 
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
Ryutaro YOSHIBA
 
19-B-4 開発品質向上のための、ASQ/ALMソリューション
19-B-4 開発品質向上のための、ASQ/ALMソリューション19-B-4 開発品質向上のための、ASQ/ALMソリューション
19-B-4 開発品質向上のための、ASQ/ALMソリューション
Developers Summit
 
Agile at salesforce
Agile at salesforceAgile at salesforce
Agile at salesforce
Ryoji Osawa
 
開発品質向上のための、ASQ/ALMソリューション ~品質向上策・活用していないのは何故ですか?~
開発品質向上のための、ASQ/ALMソリューション ~品質向上策・活用していないのは何故ですか?~開発品質向上のための、ASQ/ALMソリューション ~品質向上策・活用していないのは何故ですか?~
開発品質向上のための、ASQ/ALMソリューション ~品質向上策・活用していないのは何故ですか?~
mafujiwara
 
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
継続的デリバリー読書会 第 5 章 デプロイメントパイプラインの解剖学
Takuma SHIRAISHI
 
Continuous delivery-9
Continuous delivery-9Continuous delivery-9
Continuous delivery-9
LagerKorone
 
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-アジャイルテスト  -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
Satoshi Masuda
 
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】 Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
智治 長沢
 
TDDはじめる前に
TDDはじめる前にTDDはじめる前に
TDDはじめる前に
Yasui Tsutomu
 
QA組織とiOSのテスト
QA組織とiOSのテストQA組織とiOSのテスト
QA組織とiOSのテスト
LINE Corporation
 
Gui自動テストツール基本
Gui自動テストツール基本Gui自動テストツール基本
Gui自動テストツール基本
Tsuyoshi Yumoto
 
20190424 q ameetup-m -publish
20190424 q ameetup-m -publish20190424 q ameetup-m -publish
20190424 q ameetup-m -publish
Sadaaki Emura
 
アジャイル×テスト開発を考える
アジャイル×テスト開発を考えるアジャイル×テスト開発を考える
アジャイル×テスト開発を考える
yasuohosotani
 
20220527_JaSST'22 Tohoku
20220527_JaSST'22 Tohoku20220527_JaSST'22 Tohoku
20220527_JaSST'22 Tohoku
Sadaaki Emura
 
テストとの上手な付き合い方
テストとの上手な付き合い方テストとの上手な付き合い方
テストとの上手な付き合い方
Akira Suenami
 
非開発者のためのアジャイル開発入門
非開発者のためのアジャイル開発入門非開発者のためのアジャイル開発入門
非開発者のためのアジャイル開発入門
Kiro Harada
 
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
Hironori Washizaki
 
Ad

More from Sadaaki Emura (13)

Test Automation Journey 2023 useful knowledge to start test automation
Test Automation Journey  2023 useful knowledge to start test automationTest Automation Journey  2023 useful knowledge to start test automation
Test Automation Journey 2023 useful knowledge to start test automation
Sadaaki Emura
 
What is Unit Testing
What is Unit TestingWhat is Unit Testing
What is Unit Testing
Sadaaki Emura
 
Test automation engineer
Test automation engineerTest automation engineer
Test automation engineer
Sadaaki Emura
 
Test Automation Improvement by Machine Learning Jasst'21 Tokyo
Test Automation Improvement by Machine Learning Jasst'21 TokyoTest Automation Improvement by Machine Learning Jasst'21 Tokyo
Test Automation Improvement by Machine Learning Jasst'21 Tokyo
Sadaaki Emura
 
20200630 Rakuten QA meetup #2 "Improve test automation operation"
20200630 Rakuten QA meetup #2 "Improve test automation operation"20200630 Rakuten QA meetup #2 "Improve test automation operation"
20200630 Rakuten QA meetup #2 "Improve test automation operation"
Sadaaki Emura
 
20191029 automation struggle
20191029 automation struggle 20191029 automation struggle
20191029 automation struggle
Sadaaki Emura
 
Test automation lesson
Test automation lessonTest automation lesson
Test automation lesson
Sadaaki Emura
 
basic of Test automation installation
basic of Test automation installation basic of Test automation installation
basic of Test automation installation
Sadaaki Emura
 
20190531 jasst19 tohoku
20190531 jasst19 tohoku20190531 jasst19 tohoku
20190531 jasst19 tohoku
Sadaaki Emura
 
Struggles and Challenges in STLC in Ques No.13
Struggles and Challenges in STLC in Ques No.13Struggles and Challenges in STLC in Ques No.13
Struggles and Challenges in STLC in Ques No.13
Sadaaki Emura
 
20181211 QA meetup in office
20181211 QA meetup in office20181211 QA meetup in office
20181211 QA meetup in office
Sadaaki Emura
 
JaSST'18 Hokkaido Improve Automation Testing
JaSST'18 Hokkaido Improve Automation TestingJaSST'18 Hokkaido Improve Automation Testing
JaSST'18 Hokkaido Improve Automation Testing
Sadaaki Emura
 
20180828 QA meetup
20180828 QA meetup20180828 QA meetup
20180828 QA meetup
Sadaaki Emura
 
Test Automation Journey 2023 useful knowledge to start test automation
Test Automation Journey  2023 useful knowledge to start test automationTest Automation Journey  2023 useful knowledge to start test automation
Test Automation Journey 2023 useful knowledge to start test automation
Sadaaki Emura
 
What is Unit Testing
What is Unit TestingWhat is Unit Testing
What is Unit Testing
Sadaaki Emura
 
Test automation engineer
Test automation engineerTest automation engineer
Test automation engineer
Sadaaki Emura
 
Test Automation Improvement by Machine Learning Jasst'21 Tokyo
Test Automation Improvement by Machine Learning Jasst'21 TokyoTest Automation Improvement by Machine Learning Jasst'21 Tokyo
Test Automation Improvement by Machine Learning Jasst'21 Tokyo
Sadaaki Emura
 
20200630 Rakuten QA meetup #2 "Improve test automation operation"
20200630 Rakuten QA meetup #2 "Improve test automation operation"20200630 Rakuten QA meetup #2 "Improve test automation operation"
20200630 Rakuten QA meetup #2 "Improve test automation operation"
Sadaaki Emura
 
20191029 automation struggle
20191029 automation struggle 20191029 automation struggle
20191029 automation struggle
Sadaaki Emura
 
Test automation lesson
Test automation lessonTest automation lesson
Test automation lesson
Sadaaki Emura
 
basic of Test automation installation
basic of Test automation installation basic of Test automation installation
basic of Test automation installation
Sadaaki Emura
 
20190531 jasst19 tohoku
20190531 jasst19 tohoku20190531 jasst19 tohoku
20190531 jasst19 tohoku
Sadaaki Emura
 
Struggles and Challenges in STLC in Ques No.13
Struggles and Challenges in STLC in Ques No.13Struggles and Challenges in STLC in Ques No.13
Struggles and Challenges in STLC in Ques No.13
Sadaaki Emura
 
20181211 QA meetup in office
20181211 QA meetup in office20181211 QA meetup in office
20181211 QA meetup in office
Sadaaki Emura
 
JaSST'18 Hokkaido Improve Automation Testing
JaSST'18 Hokkaido Improve Automation TestingJaSST'18 Hokkaido Improve Automation Testing
JaSST'18 Hokkaido Improve Automation Testing
Sadaaki Emura
 
Ad

Istqb : Test automation Engineer

  • 1. ISTQB Certified Tester Advanced Level Syllabus Test Automation Engineer 約10分にまとめてみた Sadaaki Emura
  • 2. 2 Purpose of Test Automation ■WHY is automation? • テスト効率改善 • テストカバレッジを上げる • テストコストを下げる • パフォーマンステスト • テスト速度を上げる • テスト(リリース)サイクルを上げる 直接的に“品質を上げる”と記載 されてないんだw ■WHERE is suitable? • テスト環境の構築(データ作成等) • テストの実行 • テスト結果と期待値の比較(Validation) • 実施結果のレポーティング テスト実施環境の構築は思った以 上に時間節約できる!
  • 3. 3 Purpose of Test Automation ■automation merit 作業品質が上がる ■automation demerit • 追加コストが発生する • 自動化のスキルが要求される • 本来の自動化の目的を忘れる傾向がある • テストが複雑になりうる カバレッジは目的ではない! • テストサイクルを増やせる • マニュアルで厳しい・複雑なテストの実施 • テスト実行が早く、フィードバックが早まる • 人手によるミスがなくなる • リソースの効率化が図れる • テストの一貫性が上がり、信頼性が上がる
  • 4. 4 Success Factors in Test Automation • テストレベル(Unit, IT ..)によって自動化のアプローチは異なる • システムのアーキテクチャ (IF , 開発言語 ..)によって自動化のアーキテクチャは異なる • システムの複雑さ (外部連携も含む) によって自動化の構成は異なる Unit Test Integration Test phpUnit Selenium,appium GUI Selenium,appium SoapUI テスト自動化導入時に念頭に入れる事 V字モデル
  • 5. 5 Design for Testability and Automation • Observability: システムの状態を判断できるI/Fを提供。 • Control(ability): システムを操作するI/Fを提供 • Clearly defined architecture: 上記I/Fを一意に判別でき る テスタビリティとは? • 機械(自動化)が合否を判断できる仕組みが必要 • 機械が操作できる手段(I/F , Object)が必要 • 機械が操作する手段を特定できることが必要 Button A Button B Button C Process is success! Text text text GUI Validateが しやすい 操作でき る Objectを 一意に特 定できる
  • 6. 6 The Generic Test Automation Architecture テスト自動化アーキテクチャの構成 Test Generation Layer Test Definition Layer Test Execution Layer Test Adaption Layer Manual Design Test Models Test Conditions Test Cases Test Procedures Test Data , Library Test Execution Test Logging Test Reporting GUI API Proto cols Data base Simul ator • テストハーネスの制御 • システムのモニタリング • システムのシミュレーション/エミュレーション • テストケースの自動実行 • テストケース実行のロギング • テスト結果のレポート •テストケース、テストデータ、手順を定義 •テストケース実行のテストSCRIPTを定義 •テストライブラリ(キーワード駆動)の利用 • マニュアルでテストケースの設計 • テストデータの生成、取得 • モデルから自動でテストケースを作成 ※ほとんどの自動化は下のlayerから検討、実装していくが全体像を考慮する必要がある
  • 7. 7 The Generic Test Automation Architecture テスト自動化アーキテクチャの活動 1. 自動化の目的(要求)をクリアにする → どのテストプロセス、レベル、タイプ? 2. 自動化アプローチの比較 3. 抽象度の検討(キーワード駆動) → 保守性、拡張性等を考慮 4. システムとの接続方法の検討 → システムを動かすトリガを明確化 5. テスト環境の検討 6. 自動化の工数見積もり 7. 自動化の運用に求められる要素の洗い出し → 使いやすさ、レポート、フィードバック機能
  • 8. 8 Approaches for Automating Test Cases Method concept pros cons capture & playback ユーザーが操作した手順を記録、それ を再実施する Ex. Selenium IDE • GUI, APIに利用可能 • 簡単 • 保守性が低い • システムがないと実装できない Linear scripting Capture & playbackと類似 ユーザー操作を実施し、その手順を SCRIPTに出力する Ex. Ranorex • 簡単 • プログラムスキルが不要(あると better) • テスト手順分、SCRIPTが増える • SCRIPTはプログラムスキルがないと読 めない Structured scripting Linear scripting + library化 • 共通機能のライブラリ化で保守性が 上がる • 初期コストが高い • プログラムスキルが必要 Data driven Dataと処理を分離する Dataをinputとしてscriptを再利用する • バリエーションテストに効果 • テストデータの管理が追加で必要にな る Keyword driven 非自動化エンジニアでも理解できる SCRIPT キーワードの中に処理が隠蔽される • 保守性が上がる • 非エンジニアでも操作ができる • キーワードのSCRIPT工数が大きい Process driven Keyword drivenからさらにhigh levelな もの • テストケースがワークフローに合わ せて定義できる • テスト対象のプロセスの理解性が下が る Model driven SCRIPTから抽出したモデルで定義す る • テストの本質に集中できる • モデリングの技術が求められる 主な自動化scripting手法
  • 9. 9 Test Automation Solution Development テスト自動化のアクティビティは開発projectと同等である。 そのため、以下の点を考慮する • テスト自動化にもSDLCがある • テスト対象との互換性を保つ → 開発ツール等との互換性 • テスト対象のversionとの同期を保つ → テスト対象に修正が入れば、自動化も修正する • テスト自動化の再利用を検討 → 保守性を考慮
  • 10. 10 Selection of Test Automation Approach and Planning of Deployment/Rollout pilot deploy 初めて自動化を導入するときの流れ • 自動化するprojectの選定(大きすぎず、小さすぎず) • 自動化の実施 • 自動化の効果測定 • 他プロジェクトへ展開 • (開発、リリース)プロセス、ガイドライン、育成への展開 • 自動化のメトリックスの可視化
  • 11. 11 Risk Assessment and Mitigation Strategies 自動化導入によるリスク • プロジェクトリリースの遅延 • 自動化エンジニアのリソース確保 • 自動化導入の遅延 • テスト自動化の失敗リスク • 異なる環境での実施エラー • 新しい機能リリース時、自動化テストエラー • リソース、スケジュールの確保 • 自動化テストの実行時間の考慮 • システムに追従して自動化の更新 • 更新前にテスト実施、パフォーマンスの確認 • 自動化の新、既存機能のテスト
  • 12. 12 Test Automation Maintenance テスト自動化の保守のタイプ • テストカバレッジ向上(様々なテストタイプ、バージョンの保証) • テスト自動化の不具合修正(システム変更等による) • テスト自動化のパフォーマンス(実行時間等)の改善 • 新しい標準、要求、法律等への追従
  • 13. 13 Selection of Test Automation System Metrics External metrics : テスト自動化がほかの活動へ与える影響度を測る • 自動化のROI(自動化による工数削減、自動化構築工数、維持工数等) • 自動化の処理時間(パフォーマンス) • 自動化の精度(失敗率、偽陰性、偽陽性等) Internal metrics : テスト自動化の効果、効率を測る • 自動化Scripting工数 • 自動化Scripting欠陥密度 • 自動化の処理効率(パフォーマンス) テスト自動化戦略、効果や効率をモニタリングするためのメトリックス
  • 14. 14 Test Automation Logging and Reporting 自動化のログは以下のようなものがあり、様々な分析に利用される • 自動化の現在のステータス、実行結果 • 実行ステップの詳細ログ、スクリーンショット、テストデータ(特にエラー時) • システム側のログ(クラッシュダンプ、スタックトレース等) 自動化のレポートは受信側に応じたフォーマットを用意する Content of the reports : テスト失敗時の分析に必要な情報を要する Publishing the reports : テストの実行可否を知るための情報を要する
  • 15. 15 Criteria for Automation マニュアルテストを自動化にするための基準を設けたほうが良い • ROI (利用頻度、自動化工数) • スキルレベル(ツールのサポート、テストプロセスへの追従可能、成熟度) • テスト自動化環境の整備 (自動化環境の持続可能性、テスト対象の制御可能性) テスト自動化の導入効果を測る前に、以下の課題を対処する必要がある • チーム体制(育成体制、役割の明確化) • テスト環境整備(ツールの利用可能、データの正確性) • テスタビリティ(開発と協調)
  • 16. 16 Identify Steps Needed to Implement Automation within Regression Testing リグレッションテストを自動化するとき、考慮すべき点 • テストの実行頻度、時間 (繰り返しの実行による定期的な機能確認、すばやいフィードバック) • テストの重複実行(マニュアルテストの重複実施の見直し) • テストの依存性(前処理、後処理等) • カバレッジの定義(自動化がなにをカバーしているのかをクリアにする) • マニュアルテストの妥当性(間違ったマニュアルテストフローを自動化してはいけない)
  • 17. 17 Verifying Automated Test Environment Components, Test suite 自動化環境、実施テストスイートの妥当性を維持、検証するためにすること 1. テスト環境のSetup、setup自体の自動化 、異なる環境も保証 2. テストSCRIPTが正しく動くところ、失敗するところを把握 3. テスト自動化の設定方法などのドキュメンテーション 4. テスト自動化自身のテスト 5. テストスイートが正しく、最新のバージョンを保つ 6. 繰り返しのテストでは、基本同じ結果をだすこと 7. 検証結果、ログを残す
  • 18. 18 Continuous Improvement 以下のような自動化を改善し続けることにより、プロジェクトへ良き影響を与える 1. スクリプトの改善(共通化、非ハードコード、エラー自動復旧性) 2. 実行時間の改善(重複処理の回避、処理分割) 3. 前処理、後処理の実装(共通性の高いもの) 4. 自動化の付加価値(レポーティング、ログ、他システムとの連携) 5. 変更に対する影響の確認(実行処理、パフォーマンス) 6. システムの変更への追従