SlideShare a Scribd company logo
1 of 28
Download to read offline
Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 1
新機能
Pitalium is a tool
技術本部 システム研究開発センター
イノベーティブアプリケーション研究部
hifive開発班
2017/7/4
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
自己紹介
2
 石川 真也(@meganetaaan)
 新日鉄住金ソリューションズ
 システム研究開発センター所属
 リードエンジニア
 HTML5×業務システム
 Webアプリケーション×テスト自動化
SeleniumConf ’16
参加しました!
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
とは?
 次世代Web標準(HTML5/JavaScript/CSS)を活用した
企業Webシステム開発のためのプラットフォーム
 ライセンス:Apache License, Version 2.0
 商用システムに適用しやすい
 コンセプト
– 使い始めるための敷居を低く
– Webの標準的な仕組みから逸脱しない
– 開発のサイクルをトータルにサポート
3
テストもサポート!
Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 4
のテスト自動化ツール
を開発しています
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
Pitaliumの目的
5
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
Pitaliumの目的:回帰テストの省力化
 自動化を阻む様々な課題を解決して
 「複数ブラウザ/デバイス」を対象としたテストや
 「見た目」のテストを
 省力化したい!
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
「見た目」もテストしたい
7
 図形やグラフの描画内容が正しいことを確認したいから
 意図しないレイアウト崩れが起きる場合があるから
グラフが
表示される
マウスを重ねると
ツールチップが
表示される
• 表示されるか?
• 表示される場所は
正しいか?
• 表示内容は
正しいか?
機能 テスト
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
複数ブラウザ/デバイスでテストしたい
8
 PCとスマートフォンで
異なるデザインにする場合があるから
(レスポンシブデザイン)
 ブラウザ毎の実装の違いによって
描画結果が異なる場合があるから
https://github.com/philipwalton/flexbugs
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
しかし、目視確認はつらい
9
 時間がかかる
 違いを見落とす恐れがある
OK… NG...
→自動化したい
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
自動化を阻む課題
10
スクリプト作成・
保守コスト大
ブラウザ個別の
スクリプトが必要
見た目の
確認は目視
driver.get(baseUrl +
"/myVideoRental/FrontController");
driver.findElement(By.name("shop_id
")).clear();
driver.findElement(By.name("shop_id
")).sendKeys("01");
driver.findElement(By.id("DisplayMen
uLogic")).click();
assertEquals("貸出・返却メ
ニュー画面", driver.getTitle());
実施 結果確認準備
driver.get(bas
eUrl +
"/myVideoRen
tal/FrontContr
driver.get(bas
eUrl +
"/myVideoRen
tal/FrontContr
ブラウザ毎に細かい挙動の
違いがあるため、それぞれ
専用のスクリプトを用意す
る必要があることも
「見た目」の正解をスクリ
プトとして記述することが
難しく、結局目視で判定せ
ざるを得ない部分が残って
しまう
最初の作成に加えて、テス
ト対象の実装が変わった際
スクリプト側もそれに追従
して変更しなくてはいけな
い場合がある
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
マルチデバイス/ブラウザ対応
Webアプリテスト自動化ツール
Pitalium
11
https://github.com/hifive/hifive-pitalium
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
記述を簡略化
Pitaliumによる解決策
スクリプト作成・
保守コスト大
ブラウザ個別の
スクリプトが必要
見た目の
確認は目視
driver.get(baseUrl +
"/myVideoRental/FrontController");
driver.findElement(By.name("shop_id
")).clear();
driver.findElement(By.name("shop_id
")).sendKeys("01");
driver.findElement(By.id("DisplayMen
uLogic")).click();
assertEquals("貸出・返却メ
ニュー画面", driver.getTitle());
ワンソース 自動判定
12
driver.get(bas
eUrl +
"/myVideoRen
tal/FrontContr
driver.get(bas
eUrl +
"/myVideoRen
tal/FrontContr
実施 結果確認準備
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
Pitaliumの基本機能
13
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
Pitaliumの機能
①ワンソースで
マルチデバイス/
ブラウザのテスト
②スクリーンショット
比較で
合否判定
14
今回は省略
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
スクリーンショット比較で合否判定
正
解
定
義 スクリーンショット
確認
スクリプト
実行
正解
正解として
保存
OK!
テ
ス
ト
実
行
スクリプト
実行
正解
正解画像と比較し
合否判定
(失敗の場合)
差分を確認
15
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
「スクショでテスト」のメリット
16
目視で確認
↓
意図した変化なら正解を更新
 (目視確認による)見た目のテストの負担減
正解画像と比較(自動)
スクリーンショット取得(自動)
目視で確認
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
Pitalium v1.2.0の新機能
17
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
v1.2.0 Released!!
https://www.htmlhifive.com/conts/web/view/pitalium/
ダウンロード > ツール・ライブラリ > Pitalium
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
v1.2.0新機能
19
類似度ベースの画像比較
差分が出た「原因」を自動分類
 特定の原因のみ無視できる
スクショを取らないSKIPモード
実行対象のブラウザ絞りこみ
任意の領域を部分除外
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
類似度ベースの画像比較
20
 「厳密すぎない比較がしたい」
 2つの画像の類似度を計算し、閾値を上回っていれば正解
にできる
類似度0.98
→OK
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
差分が出た「原因」を自動分類
21
 差分をその原因によって分類する
 SHIFT(領域が移動している)
 SCALING(領域が拡大している)
 MISSING(領域がなくなっている)
 TEXT(テキストのサブピクセルレンダリングによる差分)
 特定の原因による差分を無視できる
画像のサイズが
変わった(SCALING)
→比較時に無視
Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 22
DEMO
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
SKIPモード
23
 「テストは回したいけどスクショは取りたくない」
 デバッグ用に特定のテストを実行する場合など
 Piアサーションをスキップしてテストを実行できる
{
"execMode": “SKIP“
}
実行モードを
「SKIP」にする
@Test
public void test() {
driver.get(“http://example.com");
assertionView.assertView();
driver.anotherCommand();
}
environmentConfig.json
スクショを取らず
Assertも無視される
Test.java
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
実行対象のブラウザ絞り込み
24
 「このテストはスマホでだけ実行したい」
詳しくは
https://www.htmlhifive.com/conts/web/view/pitalium-reference/capability-filter
Filterを設定
(スマホでのみ実行)
@CapabilityFilter(platform = Platform.WINDOWS)
public class CapabilityFilterSample extends PtlTestBase {
@Test
public void test1() throws Exception {
// WINDOWS上のブラウザ全てで実行される。
}
@Test
@CapabilityFilter(browserName = BrowserType.CHROME)
public void test2() throws Exception {
// WINDOWS上のChromeで実行される。
}
}
アノテーションで指定
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
任意の領域を部分除外
25
 「idやclassが付いていない要素に
(ソース側には手を加えずに)部分除外がしたい」
 半透明のピクセルを比較の対象外とする
 あらかじめ正解画像を加工しておくフローを想定
開発チーム外から初のプルリクエスト
https://github.com/hifive/hifive-pitalium/pull/114
除外したい部分をマスク
(正解画像を加工)
比較時に無視
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
v1.2.0新機能(再掲)
26
類似度ベースの画像比較
差分が出た「原因」を自動分類
 特定の原因のみ無視できる
スクショを取らないSKIPモード
実行対象のブラウザ絞りこみ
半透明のピクセルを部分除外
ぜひお試しください!
Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 27
https://github.com/hifive/hifive-pitalium
Star, Issue, PullRequestお待ちしてます!
Twitter: https://twitter.com/htmlhifive
Facebook: https://www.facebook.com/htmlhifive
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
商標について
28
 NS Solutions、NS(ロゴ)は、新日鉄住金ソリューションズ
株式会社の登録商標です。
 hifive、hifive(ロゴ)、Pitalium、Pitalium(ロゴ)は、新日鉄住金
ソリューションズ株式会社の登録商標です。
 Internet Explorerは、米国 Microsoft Corporation の米国および
その他の国における登録商標です。
 その他本文記載の会社名及び製品名は、それぞれ各社の商標又は
登録商標です。

More Related Content

What's hot

第2回HTML5企業Webシステム開発セミナー hifive紹介資料
第2回HTML5企業Webシステム開発セミナー hifive紹介資料第2回HTML5企業Webシステム開発セミナー hifive紹介資料
第2回HTML5企業Webシステム開発セミナー hifive紹介資料Osamu Shimoda
 
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」Osamu Shimoda
 
Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化JustSystems Corporation
 
ブラウザテスト自動化入門
ブラウザテスト自動化入門ブラウザテスト自動化入門
ブラウザテスト自動化入門takahiro sakuma
 
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化Nozomi Ito
 
JISAAwards2013講演会資料(hifive)
JISAAwards2013講演会資料(hifive)JISAAwards2013講演会資料(hifive)
JISAAwards2013講演会資料(hifive)Osamu Shimoda
 
APIテスト自動化とテストピラミッド
APIテスト自動化とテストピラミッドAPIテスト自動化とテストピラミッド
APIテスト自動化とテストピラミッド友隆 浅黄
 
継続的E2Eテスト
継続的E2Eテスト継続的E2Eテスト
継続的E2Eテスト友隆 浅黄
 
事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン友隆 浅黄
 
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テストSTFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テストToshiyuki Hirata
 
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオンkyon mm
 
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015Yahoo!デベロッパーネットワーク
 
【STAC2017】テスト自動化システム 成長記
【STAC2017】テスト自動化システム 成長記【STAC2017】テスト自動化システム 成長記
【STAC2017】テスト自動化システム 成長記友隆 浅黄
 
OpManager導入事例 日テレITプロデュース様
OpManager導入事例 日テレITプロデュース様OpManager導入事例 日テレITプロデュース様
OpManager導入事例 日テレITプロデュース様ManageEngine, Zoho Corporation
 
iOSで利用できるデバイスファームのメリット・デメリットの紹介
iOSで利用できるデバイスファームのメリット・デメリットの紹介iOSで利用できるデバイスファームのメリット・デメリットの紹介
iOSで利用できるデバイスファームのメリット・デメリットの紹介Shunsuke Maeda
 
Bitbucketを活用したコードレビュー改善事例
Bitbucketを活用したコードレビュー改善事例Bitbucketを活用したコードレビュー改善事例
Bitbucketを活用したコードレビュー改善事例Kosuke Ito
 
アジャイル事例紹介
アジャイル事例紹介アジャイル事例紹介
アジャイル事例紹介hiko99
 
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?Teppei Sato
 
エンタープライズへのアジャイル開発の導入事例
エンタープライズへのアジャイル開発の導入事例エンタープライズへのアジャイル開発の導入事例
エンタープライズへのアジャイル開発の導入事例Shozaburo Yoshihara
 

What's hot (20)

第2回HTML5企業Webシステム開発セミナー hifive紹介資料
第2回HTML5企業Webシステム開発セミナー hifive紹介資料第2回HTML5企業Webシステム開発セミナー hifive紹介資料
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
 
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
 
Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化
 
ブラウザテスト自動化入門
ブラウザテスト自動化入門ブラウザテスト自動化入門
ブラウザテスト自動化入門
 
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
 
JISAAwards2013講演会資料(hifive)
JISAAwards2013講演会資料(hifive)JISAAwards2013講演会資料(hifive)
JISAAwards2013講演会資料(hifive)
 
APIテスト自動化とテストピラミッド
APIテスト自動化とテストピラミッドAPIテスト自動化とテストピラミッド
APIテスト自動化とテストピラミッド
 
継続的E2Eテスト
継続的E2Eテスト継続的E2Eテスト
継続的E2Eテスト
 
事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン
 
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テストSTFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
 
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
 
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
STAC2015 講演3 広告システム刷新よもやま話〜テストが当たり前となるまでにやったこと #stac2015
 
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
 
【STAC2017】テスト自動化システム 成長記
【STAC2017】テスト自動化システム 成長記【STAC2017】テスト自動化システム 成長記
【STAC2017】テスト自動化システム 成長記
 
OpManager導入事例 日テレITプロデュース様
OpManager導入事例 日テレITプロデュース様OpManager導入事例 日テレITプロデュース様
OpManager導入事例 日テレITプロデュース様
 
iOSで利用できるデバイスファームのメリット・デメリットの紹介
iOSで利用できるデバイスファームのメリット・デメリットの紹介iOSで利用できるデバイスファームのメリット・デメリットの紹介
iOSで利用できるデバイスファームのメリット・デメリットの紹介
 
Bitbucketを活用したコードレビュー改善事例
Bitbucketを活用したコードレビュー改善事例Bitbucketを活用したコードレビュー改善事例
Bitbucketを活用したコードレビュー改善事例
 
アジャイル事例紹介
アジャイル事例紹介アジャイル事例紹介
アジャイル事例紹介
 
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?
 
エンタープライズへのアジャイル開発の導入事例
エンタープライズへのアジャイル開発の導入事例エンタープライズへのアジャイル開発の導入事例
エンタープライズへのアジャイル開発の導入事例
 

Similar to 20170704 Pitaliumの新機能

ジャストシステムのDevOps実例 今後の取り組み
ジャストシステムのDevOps実例 今後の取り組みジャストシステムのDevOps実例 今後の取り組み
ジャストシステムのDevOps実例 今後の取り組みJustSystems Corporation
 
Azure IaaS 環境で安心してシステム開発する方法を教えます
Azure IaaS 環境で安心してシステム開発する方法を教えますAzure IaaS 環境で安心してシステム開発する方法を教えます
Azure IaaS 環境で安心してシステム開発する方法を教えますwintechq
 
Ossを使ったazureでのdev ops
Ossを使ったazureでのdev opsOssを使ったazureでのdev ops
Ossを使ったazureでのdev ops裕貴 荒井
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~Yuki Ando
 
スタートアップが始める機械学習はじめの一歩
スタートアップが始める機械学習はじめの一歩スタートアップが始める機械学習はじめの一歩
スタートアップが始める機械学習はじめの一歩Kimitaka Nakazawa
 
Bluemix大勉強会 - サーバーレス・アプリ開発のはじめかた
Bluemix大勉強会 - サーバーレス・アプリ開発のはじめかたBluemix大勉強会 - サーバーレス・アプリ開発のはじめかた
Bluemix大勉強会 - サーバーレス・アプリ開発のはじめかたSeiichiro Imazeki
 
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
【IVS CTO Night & Day】AWS re:Invent 2017 振り返りAmazon Web Services Japan
 
Klocwork 2017.0アップデート
Klocwork 2017.0アップデートKlocwork 2017.0アップデート
Klocwork 2017.0アップデートMasaru Horioka
 
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechconMobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechconDeNA
 
Klocwork 2017.1アップデート
Klocwork 2017.1アップデートKlocwork 2017.1アップデート
Klocwork 2017.1アップデートMasaru Horioka
 
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組みJaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組みHideki Sugimoto
 
Openstack ceph 20171115 vtj
Openstack ceph 20171115 vtjOpenstack ceph 20171115 vtj
Openstack ceph 20171115 vtjTakehiro Kudou
 
2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情Toshiyuki Hirata
 
開発プロジェクトの価値をあげるだけのアジャイルでいいの?(DevLove関西 2017/11/25 )
開発プロジェクトの価値をあげるだけのアジャイルでいいの?(DevLove関西 2017/11/25 )開発プロジェクトの価値をあげるだけのアジャイルでいいの?(DevLove関西 2017/11/25 )
開発プロジェクトの価値をあげるだけのアジャイルでいいの?(DevLove関西 2017/11/25 )Naoya Maekawa
 
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Toshiyuki Hirata
 
fastlane x iOSアプリのCI
fastlane x iOSアプリのCIfastlane x iOSアプリのCI
fastlane x iOSアプリのCIToshiyuki Hirata
 
LogDept All-in-one
LogDept All-in-oneLogDept All-in-one
LogDept All-in-oneLogDept. LLC
 

Similar to 20170704 Pitaliumの新機能 (20)

ジャストシステムのDevOps実例 今後の取り組み
ジャストシステムのDevOps実例 今後の取り組みジャストシステムのDevOps実例 今後の取り組み
ジャストシステムのDevOps実例 今後の取り組み
 
Azure IaaS 環境で安心してシステム開発する方法を教えます
Azure IaaS 環境で安心してシステム開発する方法を教えますAzure IaaS 環境で安心してシステム開発する方法を教えます
Azure IaaS 環境で安心してシステム開発する方法を教えます
 
Ossを使ったazureでのdev ops
Ossを使ったazureでのdev opsOssを使ったazureでのdev ops
Ossを使ったazureでのdev ops
 
開発とテストが一体となったソフトウェア開発
開発とテストが一体となったソフトウェア開発開発とテストが一体となったソフトウェア開発
開発とテストが一体となったソフトウェア開発
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
 
Bambooによる継続的デリバリー
Bambooによる継続的デリバリーBambooによる継続的デリバリー
Bambooによる継続的デリバリー
 
スタートアップが始める機械学習はじめの一歩
スタートアップが始める機械学習はじめの一歩スタートアップが始める機械学習はじめの一歩
スタートアップが始める機械学習はじめの一歩
 
Klocworkのご紹介
Klocworkのご紹介Klocworkのご紹介
Klocworkのご紹介
 
Bluemix大勉強会 - サーバーレス・アプリ開発のはじめかた
Bluemix大勉強会 - サーバーレス・アプリ開発のはじめかたBluemix大勉強会 - サーバーレス・アプリ開発のはじめかた
Bluemix大勉強会 - サーバーレス・アプリ開発のはじめかた
 
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
【IVS CTO Night & Day】AWS re:Invent 2017 振り返り
 
Klocwork 2017.0アップデート
Klocwork 2017.0アップデートKlocwork 2017.0アップデート
Klocwork 2017.0アップデート
 
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechconMobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
 
Klocwork 2017.1アップデート
Klocwork 2017.1アップデートKlocwork 2017.1アップデート
Klocwork 2017.1アップデート
 
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組みJaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
 
Openstack ceph 20171115 vtj
Openstack ceph 20171115 vtjOpenstack ceph 20171115 vtj
Openstack ceph 20171115 vtj
 
2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情2017年のiOSアプリ開発におけるCI事情
2017年のiOSアプリ開発におけるCI事情
 
開発プロジェクトの価値をあげるだけのアジャイルでいいの?(DevLove関西 2017/11/25 )
開発プロジェクトの価値をあげるだけのアジャイルでいいの?(DevLove関西 2017/11/25 )開発プロジェクトの価値をあげるだけのアジャイルでいいの?(DevLove関西 2017/11/25 )
開発プロジェクトの価値をあげるだけのアジャイルでいいの?(DevLove関西 2017/11/25 )
 
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -
 
fastlane x iOSアプリのCI
fastlane x iOSアプリのCIfastlane x iOSアプリのCI
fastlane x iOSアプリのCI
 
LogDept All-in-one
LogDept All-in-oneLogDept All-in-one
LogDept All-in-one
 

Recently uploaded

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 

Recently uploaded (8)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 

20170704 Pitaliumの新機能

  • 1. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 1 新機能 Pitalium is a tool 技術本部 システム研究開発センター イノベーティブアプリケーション研究部 hifive開発班 2017/7/4
  • 2. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 自己紹介 2  石川 真也(@meganetaaan)  新日鉄住金ソリューションズ  システム研究開発センター所属  リードエンジニア  HTML5×業務システム  Webアプリケーション×テスト自動化 SeleniumConf ’16 参加しました!
  • 3. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. とは?  次世代Web標準(HTML5/JavaScript/CSS)を活用した 企業Webシステム開発のためのプラットフォーム  ライセンス:Apache License, Version 2.0  商用システムに適用しやすい  コンセプト – 使い始めるための敷居を低く – Webの標準的な仕組みから逸脱しない – 開発のサイクルをトータルにサポート 3 テストもサポート!
  • 4. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 4 のテスト自動化ツール を開発しています
  • 5. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. Pitaliumの目的 5
  • 6. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. Pitaliumの目的:回帰テストの省力化  自動化を阻む様々な課題を解決して  「複数ブラウザ/デバイス」を対象としたテストや  「見た目」のテストを  省力化したい!
  • 7. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 「見た目」もテストしたい 7  図形やグラフの描画内容が正しいことを確認したいから  意図しないレイアウト崩れが起きる場合があるから グラフが 表示される マウスを重ねると ツールチップが 表示される • 表示されるか? • 表示される場所は 正しいか? • 表示内容は 正しいか? 機能 テスト
  • 8. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 複数ブラウザ/デバイスでテストしたい 8  PCとスマートフォンで 異なるデザインにする場合があるから (レスポンシブデザイン)  ブラウザ毎の実装の違いによって 描画結果が異なる場合があるから https://github.com/philipwalton/flexbugs
  • 9. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. しかし、目視確認はつらい 9  時間がかかる  違いを見落とす恐れがある OK… NG... →自動化したい
  • 10. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 自動化を阻む課題 10 スクリプト作成・ 保守コスト大 ブラウザ個別の スクリプトが必要 見た目の 確認は目視 driver.get(baseUrl + "/myVideoRental/FrontController"); driver.findElement(By.name("shop_id ")).clear(); driver.findElement(By.name("shop_id ")).sendKeys("01"); driver.findElement(By.id("DisplayMen uLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); 実施 結果確認準備 driver.get(bas eUrl + "/myVideoRen tal/FrontContr driver.get(bas eUrl + "/myVideoRen tal/FrontContr ブラウザ毎に細かい挙動の 違いがあるため、それぞれ 専用のスクリプトを用意す る必要があることも 「見た目」の正解をスクリ プトとして記述することが 難しく、結局目視で判定せ ざるを得ない部分が残って しまう 最初の作成に加えて、テス ト対象の実装が変わった際 スクリプト側もそれに追従 して変更しなくてはいけな い場合がある
  • 11. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. マルチデバイス/ブラウザ対応 Webアプリテスト自動化ツール Pitalium 11 https://github.com/hifive/hifive-pitalium
  • 12. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 記述を簡略化 Pitaliumによる解決策 スクリプト作成・ 保守コスト大 ブラウザ個別の スクリプトが必要 見た目の 確認は目視 driver.get(baseUrl + "/myVideoRental/FrontController"); driver.findElement(By.name("shop_id ")).clear(); driver.findElement(By.name("shop_id ")).sendKeys("01"); driver.findElement(By.id("DisplayMen uLogic")).click(); assertEquals("貸出・返却メ ニュー画面", driver.getTitle()); ワンソース 自動判定 12 driver.get(bas eUrl + "/myVideoRen tal/FrontContr driver.get(bas eUrl + "/myVideoRen tal/FrontContr 実施 結果確認準備
  • 13. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. Pitaliumの基本機能 13
  • 14. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. Pitaliumの機能 ①ワンソースで マルチデバイス/ ブラウザのテスト ②スクリーンショット 比較で 合否判定 14 今回は省略
  • 15. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. スクリーンショット比較で合否判定 正 解 定 義 スクリーンショット 確認 スクリプト 実行 正解 正解として 保存 OK! テ ス ト 実 行 スクリプト 実行 正解 正解画像と比較し 合否判定 (失敗の場合) 差分を確認 15
  • 16. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 「スクショでテスト」のメリット 16 目視で確認 ↓ 意図した変化なら正解を更新  (目視確認による)見た目のテストの負担減 正解画像と比較(自動) スクリーンショット取得(自動) 目視で確認
  • 17. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. Pitalium v1.2.0の新機能 17
  • 18. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. v1.2.0 Released!! https://www.htmlhifive.com/conts/web/view/pitalium/ ダウンロード > ツール・ライブラリ > Pitalium
  • 19. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. v1.2.0新機能 19 類似度ベースの画像比較 差分が出た「原因」を自動分類  特定の原因のみ無視できる スクショを取らないSKIPモード 実行対象のブラウザ絞りこみ 任意の領域を部分除外
  • 20. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 類似度ベースの画像比較 20  「厳密すぎない比較がしたい」  2つの画像の類似度を計算し、閾値を上回っていれば正解 にできる 類似度0.98 →OK
  • 21. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 差分が出た「原因」を自動分類 21  差分をその原因によって分類する  SHIFT(領域が移動している)  SCALING(領域が拡大している)  MISSING(領域がなくなっている)  TEXT(テキストのサブピクセルレンダリングによる差分)  特定の原因による差分を無視できる 画像のサイズが 変わった(SCALING) →比較時に無視
  • 22. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 22 DEMO
  • 23. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. SKIPモード 23  「テストは回したいけどスクショは取りたくない」  デバッグ用に特定のテストを実行する場合など  Piアサーションをスキップしてテストを実行できる { "execMode": “SKIP“ } 実行モードを 「SKIP」にする @Test public void test() { driver.get(“http://example.com"); assertionView.assertView(); driver.anotherCommand(); } environmentConfig.json スクショを取らず Assertも無視される Test.java
  • 24. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 実行対象のブラウザ絞り込み 24  「このテストはスマホでだけ実行したい」 詳しくは https://www.htmlhifive.com/conts/web/view/pitalium-reference/capability-filter Filterを設定 (スマホでのみ実行) @CapabilityFilter(platform = Platform.WINDOWS) public class CapabilityFilterSample extends PtlTestBase { @Test public void test1() throws Exception { // WINDOWS上のブラウザ全てで実行される。 } @Test @CapabilityFilter(browserName = BrowserType.CHROME) public void test2() throws Exception { // WINDOWS上のChromeで実行される。 } } アノテーションで指定
  • 25. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 任意の領域を部分除外 25  「idやclassが付いていない要素に (ソース側には手を加えずに)部分除外がしたい」  半透明のピクセルを比較の対象外とする  あらかじめ正解画像を加工しておくフローを想定 開発チーム外から初のプルリクエスト https://github.com/hifive/hifive-pitalium/pull/114 除外したい部分をマスク (正解画像を加工) 比較時に無視
  • 26. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. v1.2.0新機能(再掲) 26 類似度ベースの画像比較 差分が出た「原因」を自動分類  特定の原因のみ無視できる スクショを取らないSKIPモード 実行対象のブラウザ絞りこみ 半透明のピクセルを部分除外 ぜひお試しください!
  • 27. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 27 https://github.com/hifive/hifive-pitalium Star, Issue, PullRequestお待ちしてます! Twitter: https://twitter.com/htmlhifive Facebook: https://www.facebook.com/htmlhifive
  • 28. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 商標について 28  NS Solutions、NS(ロゴ)は、新日鉄住金ソリューションズ 株式会社の登録商標です。  hifive、hifive(ロゴ)、Pitalium、Pitalium(ロゴ)は、新日鉄住金 ソリューションズ株式会社の登録商標です。  Internet Explorerは、米国 Microsoft Corporation の米国および その他の国における登録商標です。  その他本文記載の会社名及び製品名は、それぞれ各社の商標又は 登録商標です。