Enviar pesquisa
Carregar
20161222 selenium adventcalender
•
0 gostou
•
1,520 visualizações
N
Naoya Kojima
Seguir
For 20161222 selenium adventcalender
Leia menos
Leia mais
Engenharia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 31
Baixar agora
Baixar para ler offline
Recomendados
Agileツール適合化分科会(dev opsツール)
Agileツール適合化分科会(dev opsツール)
masanori kataoka
JaSSTよいテストプロセスの作り方
JaSSTよいテストプロセスの作り方
崇 山﨑
60分でわかった気になるISO29119 #wacate
60分でわかった気になるISO29119 #wacate
Kinji Akemine
「トピックモデル」を使った「バグチケットの自動タグ付け」
「トピックモデル」を使った「バグチケットの自動タグ付け」
Koichi Tanizaki
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
Kinji Akemine
テストの極みを目指して ~さあ、理想に近づくための一歩を踏み出そう!~
テストの極みを目指して ~さあ、理想に近づくための一歩を踏み出そう!~
崇 山﨑
【システムテスト自動化カンファレンス2013 LT】 Data Driven Development (仮)
【システムテスト自動化カンファレンス2013 LT】 Data Driven Development (仮)
Kotaro Ogino
ISO/IEC/IEEE 29119 Software testing 勉強会 第1回 規格の全体構成と各規格の概要
ISO/IEC/IEEE 29119 Software testing 勉強会 第1回 規格の全体構成と各規格の概要
崇 山﨑
Recomendados
Agileツール適合化分科会(dev opsツール)
Agileツール適合化分科会(dev opsツール)
masanori kataoka
JaSSTよいテストプロセスの作り方
JaSSTよいテストプロセスの作り方
崇 山﨑
60分でわかった気になるISO29119 #wacate
60分でわかった気になるISO29119 #wacate
Kinji Akemine
「トピックモデル」を使った「バグチケットの自動タグ付け」
「トピックモデル」を使った「バグチケットの自動タグ付け」
Koichi Tanizaki
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
Kinji Akemine
テストの極みを目指して ~さあ、理想に近づくための一歩を踏み出そう!~
テストの極みを目指して ~さあ、理想に近づくための一歩を踏み出そう!~
崇 山﨑
【システムテスト自動化カンファレンス2013 LT】 Data Driven Development (仮)
【システムテスト自動化カンファレンス2013 LT】 Data Driven Development (仮)
Kotaro Ogino
ISO/IEC/IEEE 29119 Software testing 勉強会 第1回 規格の全体構成と各規格の概要
ISO/IEC/IEEE 29119 Software testing 勉強会 第1回 規格の全体構成と各規格の概要
崇 山﨑
アジャイル開発におけるシステムテストの自動化
アジャイル開発におけるシステムテストの自動化
Toru Koido
Androidテスティング実践 基礎編
Androidテスティング実践 基礎編
株式会社 NTTテクノクロス
【eVar7】UX4KPI_web担当者forum_part1.2
【eVar7】UX4KPI_web担当者forum_part1.2
Shinichiro Oho
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
Satoshi Masuda
【evar7】web担当者forum事例_part3
【evar7】web担当者forum事例_part3
Shinichiro Oho
テストマネジメントツールSquash TMを利用した継続的テスト改善
テストマネジメントツールSquash TMを利用した継続的テスト改善
Mizuho Wakai
Androidテスティング実践2 システムテスト編
Androidテスティング実践2 システムテスト編
株式会社 NTTテクノクロス
ISO/IEC/IEEE 29119 Software testing 勉強会 第2回 Part 2 Test Processes
ISO/IEC/IEEE 29119 Software testing 勉強会 第2回 Part 2 Test Processes
崇 山﨑
Wacate2015summer_report
Wacate2015summer_report
Kosuke Fujisawa
【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST
【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST
Kotaro Ogino
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
Kotaro Ogino
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
Akira Ikeda
「マインドマップから始めるソフトウェアテスト」まとめ
「マインドマップから始めるソフトウェアテスト」まとめ
Kosuke Fujisawa
5分でわかるVISUAL TESTING FOR HTML5
5分でわかるVISUAL TESTING FOR HTML5
Osamu Shimoda
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
Osamu Shimoda
JISAAwards2013講演会資料(hifive)
JISAAwards2013講演会資料(hifive)
Osamu Shimoda
20170704 Pitaliumの新機能
20170704 Pitaliumの新機能
Osamu Shimoda
OSC京都 2015 LT 「テスト自動化の闇と向き合う」
OSC京都 2015 LT 「テスト自動化の闇と向き合う」
Osamu Shimoda
ゲームだけじゃないHTML5
ゲームだけじゃないHTML5
Osamu Shimoda
SeleniumConf16 UK参加報告
SeleniumConf16 UK参加報告
Osamu Shimoda
20161218 selenium study4
20161218 selenium study4
Naoya Kojima
WordPressの構造を理解しよう
WordPressの構造を理解しよう
Kanako Kobayashi
Mais conteúdo relacionado
Mais procurados
アジャイル開発におけるシステムテストの自動化
アジャイル開発におけるシステムテストの自動化
Toru Koido
Androidテスティング実践 基礎編
Androidテスティング実践 基礎編
株式会社 NTTテクノクロス
【eVar7】UX4KPI_web担当者forum_part1.2
【eVar7】UX4KPI_web担当者forum_part1.2
Shinichiro Oho
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
Satoshi Masuda
【evar7】web担当者forum事例_part3
【evar7】web担当者forum事例_part3
Shinichiro Oho
テストマネジメントツールSquash TMを利用した継続的テスト改善
テストマネジメントツールSquash TMを利用した継続的テスト改善
Mizuho Wakai
Androidテスティング実践2 システムテスト編
Androidテスティング実践2 システムテスト編
株式会社 NTTテクノクロス
ISO/IEC/IEEE 29119 Software testing 勉強会 第2回 Part 2 Test Processes
ISO/IEC/IEEE 29119 Software testing 勉強会 第2回 Part 2 Test Processes
崇 山﨑
Wacate2015summer_report
Wacate2015summer_report
Kosuke Fujisawa
【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST
【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST
Kotaro Ogino
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
Kotaro Ogino
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
Akira Ikeda
「マインドマップから始めるソフトウェアテスト」まとめ
「マインドマップから始めるソフトウェアテスト」まとめ
Kosuke Fujisawa
Mais procurados
(13)
アジャイル開発におけるシステムテストの自動化
アジャイル開発におけるシステムテストの自動化
Androidテスティング実践 基礎編
Androidテスティング実践 基礎編
【eVar7】UX4KPI_web担当者forum_part1.2
【eVar7】UX4KPI_web担当者forum_part1.2
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
【evar7】web担当者forum事例_part3
【evar7】web担当者forum事例_part3
テストマネジメントツールSquash TMを利用した継続的テスト改善
テストマネジメントツールSquash TMを利用した継続的テスト改善
Androidテスティング実践2 システムテスト編
Androidテスティング実践2 システムテスト編
ISO/IEC/IEEE 29119 Software testing 勉強会 第2回 Part 2 Test Processes
ISO/IEC/IEEE 29119 Software testing 勉強会 第2回 Part 2 Test Processes
Wacate2015summer_report
Wacate2015summer_report
【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST
【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
「マインドマップから始めるソフトウェアテスト」まとめ
「マインドマップから始めるソフトウェアテスト」まとめ
Destaque
5分でわかるVISUAL TESTING FOR HTML5
5分でわかるVISUAL TESTING FOR HTML5
Osamu Shimoda
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
Osamu Shimoda
JISAAwards2013講演会資料(hifive)
JISAAwards2013講演会資料(hifive)
Osamu Shimoda
20170704 Pitaliumの新機能
20170704 Pitaliumの新機能
Osamu Shimoda
OSC京都 2015 LT 「テスト自動化の闇と向き合う」
OSC京都 2015 LT 「テスト自動化の闇と向き合う」
Osamu Shimoda
ゲームだけじゃないHTML5
ゲームだけじゃないHTML5
Osamu Shimoda
SeleniumConf16 UK参加報告
SeleniumConf16 UK参加報告
Osamu Shimoda
20161218 selenium study4
20161218 selenium study4
Naoya Kojima
WordPressの構造を理解しよう
WordPressの構造を理解しよう
Kanako Kobayashi
20151201 私がSeleniumを使ってスクリーンショットを撮るまでに出会った闇の全て
20151201 私がSeleniumを使ってスクリーンショットを撮るまでに出会った闇の全て
Osamu Shimoda
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
Osamu Shimoda
HTML5時代のUIテスト自動化
HTML5時代のUIテスト自動化
Osamu Shimoda
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
Kotaro Ogino
キーワード駆動によるシステムテストの自動化について 2015
キーワード駆動によるシステムテストの自動化について 2015
Toru Koido
Destaque
(14)
5分でわかるVISUAL TESTING FOR HTML5
5分でわかるVISUAL TESTING FOR HTML5
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
JISAAwards2013講演会資料(hifive)
JISAAwards2013講演会資料(hifive)
20170704 Pitaliumの新機能
20170704 Pitaliumの新機能
OSC京都 2015 LT 「テスト自動化の闇と向き合う」
OSC京都 2015 LT 「テスト自動化の闇と向き合う」
ゲームだけじゃないHTML5
ゲームだけじゃないHTML5
SeleniumConf16 UK参加報告
SeleniumConf16 UK参加報告
20161218 selenium study4
20161218 selenium study4
WordPressの構造を理解しよう
WordPressの構造を理解しよう
20151201 私がSeleniumを使ってスクリーンショットを撮るまでに出会った闇の全て
20151201 私がSeleniumを使ってスクリーンショットを撮るまでに出会った闇の全て
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
HTML5時代のUIテスト自動化
HTML5時代のUIテスト自動化
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
キーワード駆動によるシステムテストの自動化について 2015
キーワード駆動によるシステムテストの自動化について 2015
Semelhante a 20161222 selenium adventcalender
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
Kotaro Ogino
Agileツール適合化分科会(テスト自動化ツール)
Agileツール適合化分科会(テスト自動化ツール)
masanori kataoka
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
Unity Technologies Japan K.K.
20190327_ICON技術セミナー9_永井
20190327_ICON技術セミナー9_永井
ICT_CONNECT_21
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
Ryutaro YOSHIBA
An Agile Way As an SET at LINE
An Agile Way As an SET at LINE
LINE Corporation
OpManager導入事例 日テレITプロデュース様
OpManager導入事例 日テレITプロデュース様
ManageEngine, Zoho Corporation
リーンスタートアップ、アジャイル開発導入事例
リーンスタートアップ、アジャイル開発導入事例
Arata Fujimura
Titanium Development
Titanium Development
Daisuke Sugai
インフラジスティックス製品サブスクリプション/サポートについて
インフラジスティックス製品サブスクリプション/サポートについて
インフラジスティックス・ジャパン株式会社
コンピュータビジョン 1章
コンピュータビジョン 1章
motimune
AITCオープンラボ 2018年5月度(3)
AITCオープンラボ 2018年5月度(3)
aitc_jp
Pivotal Tracker概略
Pivotal Tracker概略
You&I
Wicket体験談
Wicket体験談
Hiroto Yamakawa
An Agile Way As an SET at LINE ~プロダクトオーナーシップ編~
An Agile Way As an SET at LINE ~プロダクトオーナーシップ編~
LINE Corporation
ソフトウェアジャパン2018 ITフォーラムセッション(4)
ソフトウェアジャパン2018 ITフォーラムセッション(4)
aitc_jp
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
Shuji Watanabe
Androidテスティング実践3 ユニットテスト・CI編
Androidテスティング実践3 ユニットテスト・CI編
株式会社 NTTテクノクロス
To be sn agile enterprise
To be sn agile enterprise
Rakuten Group, Inc.
アジャイル×テスト開発を考える
アジャイル×テスト開発を考える
yasuohosotani
Semelhante a 20161222 selenium adventcalender
(20)
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
Agileツール適合化分科会(テスト自動化ツール)
Agileツール適合化分科会(テスト自動化ツール)
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
20190327_ICON技術セミナー9_永井
20190327_ICON技術セミナー9_永井
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
An Agile Way As an SET at LINE
An Agile Way As an SET at LINE
OpManager導入事例 日テレITプロデュース様
OpManager導入事例 日テレITプロデュース様
リーンスタートアップ、アジャイル開発導入事例
リーンスタートアップ、アジャイル開発導入事例
Titanium Development
Titanium Development
インフラジスティックス製品サブスクリプション/サポートについて
インフラジスティックス製品サブスクリプション/サポートについて
コンピュータビジョン 1章
コンピュータビジョン 1章
AITCオープンラボ 2018年5月度(3)
AITCオープンラボ 2018年5月度(3)
Pivotal Tracker概略
Pivotal Tracker概略
Wicket体験談
Wicket体験談
An Agile Way As an SET at LINE ~プロダクトオーナーシップ編~
An Agile Way As an SET at LINE ~プロダクトオーナーシップ編~
ソフトウェアジャパン2018 ITフォーラムセッション(4)
ソフトウェアジャパン2018 ITフォーラムセッション(4)
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
Androidテスティング実践3 ユニットテスト・CI編
Androidテスティング実践3 ユニットテスト・CI編
To be sn agile enterprise
To be sn agile enterprise
アジャイル×テスト開発を考える
アジャイル×テスト開発を考える
Mais de Naoya Kojima
What’s Next For Selenium?
What’s Next For Selenium?
Naoya Kojima
Automated Analytics Testing
Automated Analytics Testing
Naoya Kojima
20170710 hifive-test-meetup
20170710 hifive-test-meetup
Naoya Kojima
JJUG CCC 2017 Spring LT about JPA
JJUG CCC 2017 Spring LT about JPA
Naoya Kojima
JJUG CCC 2017 Spring LT about Twice Submit
JJUG CCC 2017 Spring LT about Twice Submit
Naoya Kojima
20161212 selenium adventcalender
20161212 selenium adventcalender
Naoya Kojima
20161203 selenium adventcalender
20161203 selenium adventcalender
Naoya Kojima
20161218 selenium study4-part1
20161218 selenium study4-part1
Naoya Kojima
jjug_night_20161121
jjug_night_20161121
Naoya Kojima
Azureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめよう
Naoya Kojima
Mais de Naoya Kojima
(10)
What’s Next For Selenium?
What’s Next For Selenium?
Automated Analytics Testing
Automated Analytics Testing
20170710 hifive-test-meetup
20170710 hifive-test-meetup
JJUG CCC 2017 Spring LT about JPA
JJUG CCC 2017 Spring LT about JPA
JJUG CCC 2017 Spring LT about Twice Submit
JJUG CCC 2017 Spring LT about Twice Submit
20161212 selenium adventcalender
20161212 selenium adventcalender
20161203 selenium adventcalender
20161203 selenium adventcalender
20161218 selenium study4-part1
20161218 selenium study4-part1
jjug_night_20161121
jjug_night_20161121
Azureを使って手軽にブラウザテストの自動化をはじめよう
Azureを使って手軽にブラウザテストの自動化をはじめよう
20161222 selenium adventcalender
1.
Pitalium を使って 回帰テストを実践した時の話 Naoya Kojima 2016/12/28
2.
話の流れ はじめに 使用するツールを理解する為に採用したアプローチ
OOAD ICONIX Pitalium について理解を深める 目的から読み解くPitalium の機能 機能から読み解くPitalium のユースケース ユースケースから読み解くPitalium の主要コンポーネント Pitalium を利用する 実施するテスト目的の決定 テスト実施手順の決定 テスト実施手順のアーキテクチャ化 テスト実施手順のアーキテクチャ まとめ
3.
はじめに 本スライドについて 主に画像比較やマルチブラウザ上でのテスト実行機能を提供するテスト支援ツール Pitalium
を利用して、画像比較テストを追加した時の経験を整理したものです
4.
使用するツールを理解する為に採用 したアプローチ
5.
Object-Oriented Analysis and
Design Abstract OOAD Structure Requests Application Architecture Components Object Object Object Object Analysis Design Object Roles Responsibilities Task Info has Roles
6.
The ICONIX Practical Method
of OOAD Quote from 「Use Case Driven Object Modeling with UML Theory and Practice」Doug Rosenberg, others. Abstraction of ICONIX ICONIX自体はOOADよりも広い範囲をサポートする開発手法 静的+動的なワークフローが構成するイテレーティブなプロセス 1イテレーションでは、ユースケースまたはその論理的な集合に対 して、要求分析〜単体テストをスコープとする実践的な手法 イテレーティブな為、agileプラクティスとの親和性が高い UP(統一プロセス)よりも使用するUMLやドキュメントの種類が少 なく、軽量である 他の手法との折衷案を採用してもよい(私見) マイルストーンと確認ポイントが示されているので分かりやすい
7.
The ICONIX Practical Method
of OOAD 2 Abstraction of ICONIX Process (One Iteration) 要求定義 機能要求 振る舞い要求 ドメイン分析 ドメインモデリング レビュー 要求分析 予備設計 ロバストネス分析 属性追加(ドメイン モデルの更新) コントローラオブ ジェクトの識別 レビュー 詳細設計 シーケンス図作成 操作の追加(ドメイ ンモデルの更新) シーケンス図の更新 レビュー 実装 コーディング ユニットテスト実施 統合テスト、テスト シナリオの実施 コードレビュー 各モデルの更新 To Next Iteration
8.
Pitalium について理解を深める
9.
目的から読み解くPitalium の機能
10.
目的(=ビジネス要求) hifive Webサイトより
「Selenium WebDriver を利用したテストを各ブラウザで並列実行し、スクリーン ショットを取得して想定結果と画像比較をする」 出展:https://www.htmlhifive.com/conts/web/view/pitalium/
11.
目的達成に必要な機能 ビジネス要求から導いた機能要求 Selenium
WebDriverを利用したテストを実行する必要がある テスト実装者が指定するブラウザでテストを実行する必要がある テストを並列実行する必要がある スクリーンショットを取得し、実行結果として想定結果と比較する必要がある テスト実行完了時に、テスト結果を報告する必要がある
12.
機能から読み解くPitalium のユース ケース
13.
Selenium WebDriverを利用したテストを 実行する必要がある ユースケース
pitalium-1.1.1.jarは、JUnitのラッパーテストクラスPtlTestBase を提供する テスト実装者は、selenium-java-2.53.1.jarを使ってラッパーテストクラスPtlTestBaseを継承したテストクラスを実 装する Javaスレッド@JVMは、テストクラスを実行する
14.
テスト実装者が指定するブラウザでテス トを実行する必要がある ユースケース pitalium-1.1.1.jarは、インスタンス化するWebDriverのcapabilityを指定するファイルとそれをロードする PtlCapabilitiesクラスを提供する
pitalium-1.1.1.jarは、PtlBlockJUnit4ClassRunnerWithParametersFactoryクラスを使ってカスタムStatementを実行 するPtlBlockJUnit4ClassRunnerWithParametersカスタムランナーを生成する テスト実装者は、capabilitiesファイルに実行するブラウザのcapabilityを記述する Javaスレッド@JVMは、テストクラスを実行する PtlBlockJUnit4ClassRunnerWithParametersランナーの生成時に、PtlCapabilitiesクラスを使ってcapabilityファイルをロードする テストメソッド実行前に、AssertionViewメソッドルールを利用してcapability毎にWebDriverインスタンスを生成する テストクラス実行後に、カスタムクラスルールParameterizedClassRuleでPtlWebDriverCloserを利用して、生成したWebDriverイ ンスタンスをcapability 毎に削除する
15.
テストを並列実行する必要がある ユースケース pitalium-1.1.1.jarは、ParameterizedThreadsカスタムランナーを提供する
ParameterizedThreadsクラスは、テストメソッド(マルチスレッドの場合はタスク)の実行順を制御するRunnerSchedulerイン タフェースを実装するMultiThreadRunnerSchedulerクラスを提供する テスト実装者は、capabilitiesファイルに並列実行したいブラウザのcapability を記述する Javaスレッド@JVMは、テストクラスを実行する ランナー生成時に、MultiThreadRunnerSchedulerクラス内でExecutorServiceを利用してRunnable なStatement タスク(=テス トメソッド群)をマルチスレッド実行用のブロッキングキューに登録して、マルチスレッドで実行出来るようにする
16.
スクリーンショットを取得し、実行結果 として想定結果と比較する必要がある ユースケース pitalium-1.1.1.jarは、メソッドルールとしてAssertionViewクラスを提供する
テスト実装者は、AssertionViewクラスのverifyViewメソッドを利用してスクリーンショットの取得箇所をコーディングする テスト実行者は、ExecModeを利用して、テストの実行を「想定結果の取得」、または「テストの実行」、を指定する Javaスレッド@JVMは、テストクラスを実行する テストメソッド実行前に、AssertionViewクラスを利用してWebDriverインスタンスを生成する ExecMode#SET_EXPECTEDの場合 verifyViewメソッド実行時に、スクリーンショットを取得して想定結果として保存する ExecMode#RUN_TESTの場合 verifyViewメソッド実行時に、スクリーンショットを取得してテスト結果として保存する テスト結果と想定結果を比較する
17.
テスト実行完了時に、テスト結果を報告 する必要がある ユースケース pitalium-1.1.1.jarは、クラスルールとしてResultCollectorクラスを提供する
Javaスレッド@JVMは、テストクラスを実行する テストクラスの実行時に、ResultCollectorクラスはTestResultManagerクラスを利用して、テストの状態(succeeded、failed、 finished)に応じて、想定結果の更新、想定結果の更新のキャンセル、テスト結果の出力/テスト想定結果の出力を行う
18.
ユースケースから読み解くPitalium の主要コンポーネント 「Pitalium のユースケース」から必要なコンポーネントを導出する
19.
com.htmlhifive.pitalium.core coreパッケージ Pitaliumの機能を利用する為のAPIを公開しているコンポーネント
PtlTestBaseクラス テスト実装者が、 Pitalium の提供する機能をテストクラスで利用する為の抽象テストクラス ParameterizedThreadsクラス テストメソッド並列実行役も担えるよう拡張されたParameterizedランナークラス MultiThreadRunnerSchedulerクラス ExecutorServiceを使い、テストメソッドを並列実行する役割を担うインナークラス
20.
com.htmlhifive.pitalium.core.rules rulesパッケージ Pitaliumを利用した画像比較テストにまつわる処理を意図したタイミングで隠蔽して提供する為のコンポーネント
AssertionViewクラス 想定結果との画像比較に必要なAPI を公開するクラス。 Selenium コンポーネントのPtlWebDriverManagerを利用してWebDriverオブジェクトの生成も担う。 ResultCollectorクラス テスト結果を収集/出力する責務を持つTestResultManagerを生成するクラス。 PtlWebDriverCloserクラス WebDriverオブジェクトのセッションを終了するクラス。
21.
com.htmlhifive.pitalium.core.result resultパッケージ テスト結果を記録するコンポーネント。実体はTestResultManagerクラス。
TestResultManagerクラス テスト結果を収集/エクスポート する責務を持つクラス。
22.
com.htmlhifive.pitalium.core.selenium seleniumパッケージ Selenium
WebDriverの機能(WebDriver 、スクリーンショットの取得等)を拡張して提供するコンポーネント PtlCapabilitiesクラス JSONUtilsを使いcapabilities.jsonからcapabilityをロード、保持する責務を持つクラス。
23.
com.htmlhifive.pitalium.junit junitパッケージ JUnitのParameterizedを利用してテストの実行内容を拡張するコンポーネント
PtlBlockJUnit4ClassRunnerWithParametersFactory PtlBlockJUnit4ClassRunnerWithParametersを生成するクラス ParameterizedランナーのUseParametersRunnerFactoryアノテーションのvalueに指定する PtlBlockJUnit4ClassRunnerWithParameters ParameterizedThreadsランナーによってパラメータ毎に実際にインスタンス化されるランナー。 Parameterizedランナーが実体化するBlockJUnit4ClassRunnerWithParametersランナーの拡張版。 BlockJUnit4ClassRunnerWithParametersのStatementを拡張してParameterizedClassRuleを実行可能とした。
24.
Pitalium を理解するーまとめ ユースケースから読み解くPitalium
の主要コンポーネント 自動テストの詳細設計者、テスト実装者がPitalium を利用する上で抑えておくと良いコンポーネントです こららはテスト実装者とテストコードとのインタフェース役を担い、そのロールを構成する責務はその他コンポーネ ントに委譲しています。 その他コンポーネントについて Pitalium には、主要コンポーネントの他にも多くのコンポーネントがあります。 これらはオブジェクト指向で設計されており、個々が主要コンポーネントから責務を委譲される形で存在しています。 まとめ Pitalium を使い、自動テストシステムを開発・拡張する際には、この二点を抑えておくと良いでしょう
25.
Pitalium を利用する ユースケーステストの自動化に利用する場合
26.
実施するテスト目的の決定 Pitaliumを利用するテストシステム自体のテスト目的 ユースケーステストを実行する
テストの実行結果が想定する振る舞いと違いないかを検証する 実装例 JUnit4.X系のorg.junit.assertパッケージassertThatメソッドを使う Pitalium を使う目的 テストシステムの設計で意図した機能を委譲する為に利用する 委譲する機能の例 テストを並列実行する テスト実行前後の証跡を取得する テスト失敗時の原因究明の手掛かりとしてスクリーンショットを取得する 画面レイアウトの回帰テストを実行する 直近でテストが成功した時の 画面に意図しない変更が加えられていないことを確認する
27.
テスト実装手順の決定 複数存在するテストシステムの目的 ユースケースの検証
画面レイアウトの検証 テストの実装手順を決定する テスト実装者が実装時に確実に上記目的を果たすテストを実装する構造にする為、テスト実装時には 必ず次の手順を踏襲する ユースケーステストの実行/検証 ユースケーステスト実行前後の証 跡を取得 取得した画面レイアウトの比較
28.
テスト実装手順のアーキテクチャ化 テスト実装者が実装手順を意識しなくても済むようにする アスペクト指向の採用
実装するテストメソッド内にPointCutを作成する 「ユースケーステスト実行前後の証跡取得」、「取得した画面レイアウトの比較」をAdviceとして実装する Adviceが指定するJoinPointでWeaveされるようにする テンプレートメソッドパターンの採用 PointCutを必ず実装させる為に、PointCutとするメソッドを差し込んだテンプレートメソッドを実装する PtlTestBaseクラスを継承するテンプレートメソッドを実装するラッパー抽象クラスを実装する ユースケーステストの実行/検証 ユースケーステスト実行前後の証 跡を取得 取得した画面レイアウトの比較 Advice化
29.
テスト実装手順のアーキテクチャ @Aspect Class
TestImplProcess @Pointcut("execution(public * WrapperPtlTestBase.abstructMethod(..)) && !within(TestImplProcess)") abstructMethodExecute() @Before("abstructMethodExecute()") beforeAbstructMethod() @After("abstructMethodExecute()") afterAbstructMethod() 1. ユースケーステストの証跡取得 2. 取得した画面レイアウトの比較 Abstruct Class WrapperPtlTestBase extends PtlTestBase @Test TestMethod() 1. abstructMethod() JoinPoint Advice PointCut テスト実装者はWrapperPtlTestBaseを継承 したクラスでabstructMethod()内にユース ケーステストを実装すると、意識せずに 「証跡取得」、「画面比較」を実装できる ようになる。
30.
アーキテクチャ補足 Advice内でPitaliumのAssertViewクラスを利用して「ユースケーステストの証跡取得」、「取得した 画面レイアウトの比較」を実装する。 abstructMethod()の実行前後にAdviceをWeaveするだけであり、ユースケーステストの実行前後でし か「ユースケーステストの証跡取得」、「取得した画面レイアウトの比較」ができない。より細かく スクリーンショットを取得する場合は、別途実現方法を検討する必要がある。
抽象テストメソッドを実装するアーキテクチャとした為、1テストメソッド=1テストクラスとなる。 よって、1テストクラス=1ユースケースとしてテストコードを実装することを前提としている。 1ユースケーステストで様々なデータパターンでテストを実行する場合は、Parameterizedランナーを 使用することを前提としている。
31.
まとめ 本経験を通して学んだこと 適用シーンを明確にする為にも、ツールが想定するユースケースを理解するとよい
ツールありきにならない為にも、要求を明確にしてロールの委譲可否を明確にして おくとよい
Baixar agora