Slide 1

Slide 1 text

Seleniumによる E2Eテスト再入門 第7回ビアバッシュLT in なにわ at 2015.05.20 2015年5月度もくもく勉強会 at 2015.05.28 Yuu Kawanami RAKUS Co., Ltd.

Slide 2

Slide 2 text

目次 1. E2Eテスト とは 2. Selenium とは ○ Selenium WebDriver ○ Selenium IDE ○ Selenium Grid 3. テスト作成(デモ) 4. テスト作成時の実践テクニックその1(デモ) ○ Selenium IDEでの要素取得の優先順位 5. テスト作成時の実践テクニックその2(デモ) ○ Page Object パターン

Slide 3

Slide 3 text

E2Eテスト とは End-to-End テスト = ユーザ視点でシステムが正しく動いていることを確認するテスト もう少し説明すると...

Slide 4

Slide 4 text

E2Eテスト とは リクエストがクライアント、たとえばブラウザから始まって、サーバ内で処理され、制御 が再度クライアントのほうに返ってくるという構成のときに、リクエストを投げてレスポ ンスが返ってくるまでの処理をブラックボックスとして捉え、大きく機能の入り口から出 口までの範囲のブラックボックステストを行うこと。 Webアプリケーション開発におけるE2Eテストとは、ブラウザへのユーザ操 作(入力)に対する、アプリケーションの振る舞いをテストすること。 (引用)第8回 テスト駆動開発の「サイクル」 ―まず受け入れテストで土台を作る http://gihyo.jp/dev/serial/01/tdd/0008

Slide 5

Slide 5 text

E2Eテスト とは E2Eテストのコード化の目的、効果 ● 人手では手間がかかり過ぎるバリエーションテストの自動化 ○ テスト工数の削減 ● 結合レベルの再帰テストの自動化 ○ テスト工数の削減 ○ デグレの早期発見 ○ ユーザのメインシナリオに関わる機能の継続的テスト ● 目先の品質向上というよりは、長い目で見たサービス品質の改善

Slide 6

Slide 6 text

参考:アジャイルテストの4象限 E2Eテストの範囲 http://quesqa.com/test_automation_selenium-grid/

Slide 7

Slide 7 text

Selenium とは Selenium WebDriver ● Web Driver(=ブラウザのネイティブ API。W3Cで標準化が検討されている) を通して、プログ ラムからブラウザ操作をシュミレートする仕組み ● クロスブラウザ、クロスプラットフォーム Selenium IDE ● Firefoxアドオン ● ブラウザ操作を記録し、Seleniumのテストコードを自動生成してくれる

Slide 8

Slide 8 text

Selenium とは Selenium Grid ● 複数のリモートマシン対して テストを自動で分散(並列) 実行させる仕組み http://quesqa.com/test_automation_selenium-grid/

Slide 9

Slide 9 text

Selenium とは Selenium WebDriverを利用した E2Eテストフレームワーク ● selenium-java(Java) ● capybara(Ruby) ● behat(PHP) ● nightwatch.js(Javascript)

Slide 10

Slide 10 text

テスト作成 (Demo) 楽楽精算へのログイン

Slide 11

Slide 11 text

Selenium IDEでの要素取得の優先順位 テスト作成時の実践テクニックその1 参考:Selenium IDEの属性取得の優先順位変更方法 http://qiita.com/oh_rusty_nail/items/7fcc2d54d1abc5febe86

Slide 12

Slide 12 text

XPathを優先                  CSSセレクタを優先

Slide 13

Slide 13 text

XPathを優先 CSSセレクタを優先 生成されたコード 生成されたコード

Slide 14

Slide 14 text

テスト作成時の実践テクニックその2 (Demo) Page Object パターン

Slide 15

Slide 15 text

最後に いつやるか? 今でしょ!!