SlideShare a Scribd company logo
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
HTML5時代のUIテスト自動化
1
技術本部 システム研究開発センター
石川 真也
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
自己紹介
2
 石川 真也
 新日鉄住金ソリューションズ
 システム研究開発センター所属
 リードエンジニア
 HTML5×業務システム
 Webアプリケーション×テスト自動化
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
要旨
3
 HTML5の時代になり
 「リッチなユーザインタフェース」をもつ画面を
 「複数ブラウザ・デバイスの対応」を実現しつつ
 「短いサイクルで開発・リリース」できる土壌が整ってきた
 ただしその分テストの負担が増大している
 テスト自動化を阻む課題も存在する
 テスト自動化の課題とその解決策の一例を紹介
 Webアプリテスト自動化ツール「 」
– 主な機能とメリット
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
「リッチなユーザインタフェース」とテスト
4
 HTML5によって多彩な表現が可能に
 図形やグラフの描画など
 一方、「ユーザにどう見えているか」のテストが必要に
グラフが
表示される
マウスを重ねると
ツールチップが
表示される
• 表示されるか?
• 表示される場所は
正しいか?
• 表示内容は
正しいか?
機能 テスト
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
UIテストが必要
5
目視確認だと
細かい表示内容の変化を
見落としがち
だけど…
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
「複数ブラウザ・デバイスの対応」とテスト
6
 HTML5によって複数のブラウザ・デバイスに対応可能に
(レスポンシブデザイン)
 一方、「ブラウザ間の差異によるレイアウト崩れ」が
起きることも
 対応ブラウザ・デバイスすべてで表示を確認する必要がある
https://github.com/philipwalton/flexbugs
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
UIテストが全ての対応ブラウザで必要
7
Internet Explorer 11 mobile SafariGoogle Chrome
同じ内容のテストを
ブラウザ・デバイスの数
繰り返すのは大変
スマデバの
テストは特に
負担大
しかし…
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
「短いサイクルで開発・リリース」とテスト
8
 短いサイクルでの開発・リリースへの需要増
 継続的インテグレーション(CI)が一般的に
 Jenkins等のツールの充実
 一方、リリースの度に回帰テストが必要に
 自動化しないテストがボトルネック化する
※回帰テスト:既存機能にバグが埋め込まれていないことを確認するテスト
Jenkins project:
http://jenkins-ci.org/
ビルド
テスト
コーディング
/デバッグ
コミット
Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 9
Internet
Explorer 11
mobile Safari
Google
Chrome
掛け算的に負担増…
手動では間に合わない
→自動化しよう!
UIテストが全ての対応ブラウザで
リリースの度に必要
もう無理…
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
テスト自動化を阻む課題
10
 自動化環境やスクリプトの作成・保守コスト大
 「ブラウザ間の差異」に対応するために、同じテストに対して
ブラウザ毎に個別のスクリプトを書く場合も
 UIテストは自動化しづらい
 「画面が正しく表示されること」をどう定義・記述するか?
 レイアウトの確認は目視で行う?→ボトルネック化
スクリプト作成・
保守コスト大
ブラウザ個別の
スクリプトが必要
レイアウトの
確認は目視
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
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.
スクリーンショット比較で合否判定
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.
スクリーンショット比較のメリット
 レイアウト崩れの有無がわかる
OK…
NG...
全端末分を毎回確認
全ブラウザ
OK!
結果を見るだけ
17
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
デモ
18
テストを実行しながら、あらかじめ
用 意 し た 「 正 解 」 の ス ク リ ー ン
ショットと、今回取得したスクリー
ンショットを自動で比較します。
スクリーンショットが一致しなかっ
た場合、両者の差分を示す画像が生
成されます。
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
要旨(再掲)
19
 HTML5の時代になり
 「リッチなユーザインタフェース」をもつ画面を
 「複数ブラウザ・デバイスの対応」を実現しつつ
 「短いサイクルで開発・リリース」できる土壌が整ってきた
 ただしその分テストの負担が増大している
 テスト自動化を阻む課題も存在する
 テスト自動化の課題とその解決策の一例を紹介
 Webアプリテスト自動化ツール「 」
– 主な機能とメリット
Copyright ©2017 NS Solutions Corporation. All Rights Reserved.
商標について
20
 NS Solutions、NS(ロゴ)、NSSOLは、新日鉄住金ソリューションズ
株式会社の登録商標です。
 hifive、hifive(ロゴ)、Pitalium、Pitalium(ロゴ)は、新日鉄住金
ソリューションズ株式会社の登録商標です。
 Internet Explorerは、米国 Microsoft Corporation の米国および
その他の国における登録商標です。
 その他本文記載の会社名及び製品名は、それぞれ各社の商標又は
登録商標です。

More Related Content

PDF
型安全性入門
PDF
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
PPTX
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
PDF
文法圧縮入門:超高速テキスト処理のためのデータ圧縮(NLP2014チュートリアル)
PDF
情報システム部門の組織開発
PDF
よろしい、ならばMicro-ORMだ
PDF
ログ解析基盤におけるストリーム処理パイプラインについて
PDF
Web エンジニアが postgre sql を選ぶ 3 つの理由
型安全性入門
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
文法圧縮入門:超高速テキスト処理のためのデータ圧縮(NLP2014チュートリアル)
情報システム部門の組織開発
よろしい、ならばMicro-ORMだ
ログ解析基盤におけるストリーム処理パイプラインについて
Web エンジニアが postgre sql を選ぶ 3 つの理由

What's hot (20)

PDF
モノタロウの商品データ連携について
PPTX
fastTextの実装を見てみた
PDF
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
PDF
Unicode結合文字 難読化シェル芸
PPTX
Keycloakの紹介と最新開発動向
PPTX
Power BI のいろいろな活用パターン
PDF
Data-centricなML開発
PDF
Yahoo! JAPANのデータ基盤とHadoop #dbts2016
PPTX
第10回FA設備技術勉強会 M5Stackで始める業務のデジタル化
PPTX
MLOps入門
PPTX
リクルートを支える横断データ基盤と機械学習の適用事例
PDF
ディープラーニング開発組織のつくり方と運営ノウハウ_DLLAB Case Study Day
PPTX
SoRとSoEをつなぐ 「エンジニアの役割」と 「企業の課題」
PDF
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
PPTX
ハノーファメッセレポート_アップロード.pptx
PPTX
信頼できるAIシステム開発の勘どころ ~AI開発方法論×AI品質保証~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
PDF
Apache Arrow - データ処理ツールの次世代プラットフォーム
PDF
日本におけるアジャイル開発の認知度の変遷を情報処理技術者試験の問題から考察してみた_公開用
PDF
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
PPTX
Redshift勉強会
モノタロウの商品データ連携について
fastTextの実装を見てみた
OSS+AWSでここまでできるDevSecOps (Security-JAWS第24回)
Unicode結合文字 難読化シェル芸
Keycloakの紹介と最新開発動向
Power BI のいろいろな活用パターン
Data-centricなML開発
Yahoo! JAPANのデータ基盤とHadoop #dbts2016
第10回FA設備技術勉強会 M5Stackで始める業務のデジタル化
MLOps入門
リクルートを支える横断データ基盤と機械学習の適用事例
ディープラーニング開発組織のつくり方と運営ノウハウ_DLLAB Case Study Day
SoRとSoEをつなぐ 「エンジニアの役割」と 「企業の課題」
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
ハノーファメッセレポート_アップロード.pptx
信頼できるAIシステム開発の勘どころ ~AI開発方法論×AI品質保証~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
Apache Arrow - データ処理ツールの次世代プラットフォーム
日本におけるアジャイル開発の認知度の変遷を情報処理技術者試験の問題から考察してみた_公開用
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
Redshift勉強会
Ad

Viewers also liked (20)

PPTX
JaSST Kansai 2017 AIとテストパターン - AI and Testing Pattern-
PPTX
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
PDF
ブロックチェーン実証実験から得られた知見
PDF
データベース屋がHyperledger Fabricを検証してみた
PPTX
Ethereumホワイトペーパーざっくり解説
PDF
Hyperledger Projectの概要
PPTX
第1回キーワード駆動テスト勉強会
PDF
OSC京都 2015 LT 「テスト自動化の闇と向き合う」
PDF
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
PDF
20170704 Pitaliumの新機能
PDF
Hyperledger Fabric 1.0 概要
PDF
20161222 selenium adventcalender
PDF
JISAAwards2013講演会資料(hifive)
PDF
5分でわかるVISUAL TESTING FOR HTML5
PDF
ゲームだけじゃないHTML5
PDF
20161218 selenium study4
PDF
SeleniumConf16 UK参加報告
PPTX
暗号通貨勉強会
PDF
WordPressの構造を理解しよう
PDF
20151201 私がSeleniumを使ってスクリーンショットを撮るまでに出会った闇の全て
JaSST Kansai 2017 AIとテストパターン - AI and Testing Pattern-
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
ブロックチェーン実証実験から得られた知見
データベース屋がHyperledger Fabricを検証してみた
Ethereumホワイトペーパーざっくり解説
Hyperledger Projectの概要
第1回キーワード駆動テスト勉強会
OSC京都 2015 LT 「テスト自動化の闇と向き合う」
第2回HTML5企業Webシステム開発セミナー hifive紹介資料
20170704 Pitaliumの新機能
Hyperledger Fabric 1.0 概要
20161222 selenium adventcalender
JISAAwards2013講演会資料(hifive)
5分でわかるVISUAL TESTING FOR HTML5
ゲームだけじゃないHTML5
20161218 selenium study4
SeleniumConf16 UK参加報告
暗号通貨勉強会
WordPressの構造を理解しよう
20151201 私がSeleniumを使ってスクリーンショットを撮るまでに出会った闇の全て
Ad

Similar to HTML5時代のUIテスト自動化 (12)

PDF
画面テスト自動化
PDF
ブラウザのUIテストをしてみた話
PDF
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
PDF
第2回nseg slideshare
PDF
ゼロから始めたE2Eテスト
PDF
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
PDF
OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
KEY
Androidリリース作業の効率化(2)
PDF
Karateによる UI Test Automation 革命
PDF
海外のSeleniumカンファレンスではどんな発表がされているのか2014
PPTX
ブラウザテスト自動化入門
KEY
Cocoa勉強会201203公開
画面テスト自動化
ブラウザのUIテストをしてみた話
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
第2回nseg slideshare
ゼロから始めたE2Eテスト
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
Androidリリース作業の効率化(2)
Karateによる UI Test Automation 革命
海外のSeleniumカンファレンスではどんな発表がされているのか2014
ブラウザテスト自動化入門
Cocoa勉強会201203公開

HTML5時代のUIテスト自動化

  • 1. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. HTML5時代のUIテスト自動化 1 技術本部 システム研究開発センター 石川 真也
  • 2. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 自己紹介 2  石川 真也  新日鉄住金ソリューションズ  システム研究開発センター所属  リードエンジニア  HTML5×業務システム  Webアプリケーション×テスト自動化
  • 3. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 要旨 3  HTML5の時代になり  「リッチなユーザインタフェース」をもつ画面を  「複数ブラウザ・デバイスの対応」を実現しつつ  「短いサイクルで開発・リリース」できる土壌が整ってきた  ただしその分テストの負担が増大している  テスト自動化を阻む課題も存在する  テスト自動化の課題とその解決策の一例を紹介  Webアプリテスト自動化ツール「 」 – 主な機能とメリット
  • 4. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 「リッチなユーザインタフェース」とテスト 4  HTML5によって多彩な表現が可能に  図形やグラフの描画など  一方、「ユーザにどう見えているか」のテストが必要に グラフが 表示される マウスを重ねると ツールチップが 表示される • 表示されるか? • 表示される場所は 正しいか? • 表示内容は 正しいか? 機能 テスト
  • 5. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. UIテストが必要 5 目視確認だと 細かい表示内容の変化を 見落としがち だけど…
  • 6. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 「複数ブラウザ・デバイスの対応」とテスト 6  HTML5によって複数のブラウザ・デバイスに対応可能に (レスポンシブデザイン)  一方、「ブラウザ間の差異によるレイアウト崩れ」が 起きることも  対応ブラウザ・デバイスすべてで表示を確認する必要がある https://github.com/philipwalton/flexbugs
  • 7. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. UIテストが全ての対応ブラウザで必要 7 Internet Explorer 11 mobile SafariGoogle Chrome 同じ内容のテストを ブラウザ・デバイスの数 繰り返すのは大変 スマデバの テストは特に 負担大 しかし…
  • 8. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 「短いサイクルで開発・リリース」とテスト 8  短いサイクルでの開発・リリースへの需要増  継続的インテグレーション(CI)が一般的に  Jenkins等のツールの充実  一方、リリースの度に回帰テストが必要に  自動化しないテストがボトルネック化する ※回帰テスト:既存機能にバグが埋め込まれていないことを確認するテスト Jenkins project: http://jenkins-ci.org/ ビルド テスト コーディング /デバッグ コミット
  • 9. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 9 Internet Explorer 11 mobile Safari Google Chrome 掛け算的に負担増… 手動では間に合わない →自動化しよう! UIテストが全ての対応ブラウザで リリースの度に必要 もう無理…
  • 10. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. テスト自動化を阻む課題 10  自動化環境やスクリプトの作成・保守コスト大  「ブラウザ間の差異」に対応するために、同じテストに対して ブラウザ毎に個別のスクリプトを書く場合も  UIテストは自動化しづらい  「画面が正しく表示されること」をどう定義・記述するか?  レイアウトの確認は目視で行う?→ボトルネック化 スクリプト作成・ 保守コスト大 ブラウザ個別の スクリプトが必要 レイアウトの 確認は目視 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
  • 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. スクリーンショット比較で合否判定 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. スクリーンショット比較のメリット  レイアウト崩れの有無がわかる OK… NG... 全端末分を毎回確認 全ブラウザ OK! 結果を見るだけ 17
  • 18. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. デモ 18 テストを実行しながら、あらかじめ 用 意 し た 「 正 解 」 の ス ク リ ー ン ショットと、今回取得したスクリー ンショットを自動で比較します。 スクリーンショットが一致しなかっ た場合、両者の差分を示す画像が生 成されます。
  • 19. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 要旨(再掲) 19  HTML5の時代になり  「リッチなユーザインタフェース」をもつ画面を  「複数ブラウザ・デバイスの対応」を実現しつつ  「短いサイクルで開発・リリース」できる土壌が整ってきた  ただしその分テストの負担が増大している  テスト自動化を阻む課題も存在する  テスト自動化の課題とその解決策の一例を紹介  Webアプリテスト自動化ツール「 」 – 主な機能とメリット
  • 20. Copyright ©2017 NS Solutions Corporation. All Rights Reserved. 商標について 20  NS Solutions、NS(ロゴ)、NSSOLは、新日鉄住金ソリューションズ 株式会社の登録商標です。  hifive、hifive(ロゴ)、Pitalium、Pitalium(ロゴ)は、新日鉄住金 ソリューションズ株式会社の登録商標です。  Internet Explorerは、米国 Microsoft Corporation の米国および その他の国における登録商標です。  その他本文記載の会社名及び製品名は、それぞれ各社の商標又は 登録商標です。