selenium

25
1 Selenium 2012/04/26 竹竹 竹竹

Upload: takeuchi-tk

Post on 13-Dec-2014

1.023 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Selenium

1

Selenium

2012/04/26 竹内 孝志

Page 2: Selenium

2

本日の内容

• Selenium について– Selenium とは?– SeleniumProject の紹介

• プロジェクトでの使用例– システム構成– 今後の改善案

Page 3: Selenium

3

Selenium とは?

• Web アプリケーション自動テストツール

• オープンソースソフトウェア• マルチブラウザに対応

Page 4: Selenium

4

Web アプリケーション自動テストツール

青: selenium    赤: sahi  

Page 5: Selenium

5

歴史

年代 リリース

2004 年 Selenium 開発スタート

2006 年 SeleniumIDE リリース

2007 年 SeleniumRC リリース

2011 年 Selenium2(SeleniumWebDriver) リリース

アジャイルソフトウェア開発に特化した世界的な IT コンサルタント業者ThoughtWorks( そうとわーくす ) が開発

Page 6: Selenium

6

Selenium Project

• Selenium Core• Selenium IDE• Selenium RC• Selenium Grid• Selenium on Rails• CubicTest• Bromine• Selenium2(WebDriver)

Page 7: Selenium

7

Selenium Core

Selenium の中心的な機能

Page 8: Selenium

8

Selenium IDE

Firefox のプラグインブラウザ操作を記録テストコード自動生成

Page 9: Selenium

9

Selenium RC

リモートでブラウザ

操作を実行

Page 10: Selenium

10

構成

SeleniumIDE でテストコードを生成SeleniumRC でテストコードを実行

※ 公式より

Page 11: Selenium

11

対応ブラウザブラウザ Selenium-IDE Selenium-RC オペレーティングシステム

Firefox 31.0 Beta-1 および 1.0 Beta-2: テストの記録と再生

ブラウザの起動、テストの実行 Windows, Linux, Mac

Firefox 21.0 Beta-1: テストの記録と再生

ブラウザの起動、テストの実行 Windows, Linux, Mac

IE 8   開発中 Windows

IE 7Selenium-RC を介したテストの実行のみ *

ブラウザの起動、テストの実行 Windows

Safari 3Selenium-RC を介したテストの実行のみ

ブラウザの起動、テストの実行 Mac

Safari 2Selenium-RC を介したテストの実行のみ

ブラウザの起動、テストの実行 Mac

Opera 9Selenium-RC を介したテストの実行のみ

ブラウザの起動、テストの実行 Windows, Linux, Mac

Opera 8Selenium-RC を介したテストの実行のみ

ブラウザの起動、テストの実行 Windows, Linux, Mac

Google ChromeSelenium-RC を介したテストの実行のみ (Windows)

ブラウザの起動、テストの実行 Windows

上記以外Selenium-RC を介したテストの実行のみ 部分的サポートが可能 ** 該当 OS

Page 12: Selenium

12

メリット・デメリット

• メリット– 再テストの際に手間が少ない– 別ブラウザのテストが簡単にできる

• デメリット– マニュアルが不十分なため複雑な操作ができない– 画面に少しでも修正が入ると改修が必要になる

Page 13: Selenium

13

プロジェクトでの使用例

実例 )大規模データベース・マッチングサイト  毎月機能追加に伴うリリースを行っており、  その際に発生する回帰テストに   Selenium を用いている。

Page 14: Selenium

14

開発サイクル

分析

設計

開発

テスト

分析

設計

開発

テスト

分析

設計

開発

テスト

1ヶ月 1ヶ月 1ヶ月

毎月回帰テストを行う

Page 15: Selenium

15

テストの構成(1)

Rspec

Selenium-WebDriver

ruby

1 2

① コマンドプロンプトから回帰テストを実行開始

② テストユニットを呼び出す

③Selenium がブラウザを操作

④ 作業者が結果を確認

Page 16: Selenium

16

テストの構成(2)

DB

テストデータ生成

テストケース実行( Rspec )

ブラウザ操作 (Selenium - WebDriver)

テストデータ

ruby

Page 17: Selenium

17

テストの構成(3)テストユニットdescribe " テストケース 1" do it_should_behave_like " ログイン " it_should_behave_like " 閲覧 " it_should_behave_like " ログアウト "enddescribe " テストケース 2" do it_should_behave_like " ログイン " it_should_behave_like " 問い合わせ " it_should_behave_like " ログアウト "enddescribe " テストケース 3" do it_should_behave_like " ログイン " it_should_behave_like " 購入 " it_should_behave_like " ログアウト "end

Selenium によるブラウザ操作shared_examples_for " ログイン " do |mail_address| it " ログインができること " do sleep 3 @browser.text_field(:name, "loginId").set "[email protected]" @browser.text_field(:name, "password").set "hogehoge" @browser.element(:xpath => "//div[2]/div[2]/div[4]/div/div[3]/input").click sleep 3 endend

Page 18: Selenium

18

現在の運用

• 良い点– テストコードが Ruby で簡潔に記述され理解しや

すい。– テストデータを自動生成できる。

• 悪い点– ローカルから実行するため特別な環境が必要。– 僅かな画面変更でテストコードの修正が発生。– テスト結果の確認が手作業で手間がかかる。

Page 19: Selenium

19

今後の改善

• 環境に依存せず誰でも実行可能にする。• 修正に少しでも強いコードに書き換え

る。• テスト結果を簡単に確認できるように

する。

Page 20: Selenium

20

環境に依存しないようにする

Jenkins が設置してあるサーバーに環境を構築し、

ボタン一つで実行可能にする。

でぷろい

回帰テスト

びるど

ワンクリックテスト

Page 21: Selenium

21

修正に強いコード

XPath で指定しているところを id で指定する。

@browser.element(:xpath => "/html/body/div[5]/div/input").click

@browser.element(:xpath => "//input[@id=‘nekoButton']").click

修正前)

修正後)

※ アプリケーションの作り上不可能な箇所は諦める。

Page 22: Selenium

22

確認作業の単純化

確認作業も Selenium で実施し、作業者は Selenium が取得した画面キャプチャーを確認するだけにする。

testcord

Selenium のテストコードがブラウザ画面のキャプチャーを保存

Page 23: Selenium

23

まとめ

• Selenium はアジャイル開発業者 ThoughtWorksが開発した

• 最も旬な Web アプリケーション開発ツールである。

• 我々のプロジェクトでは主要機能の回帰テストのみに使用している。

• 今後は誰でも簡単に実施できるよう改善する。

Page 24: Selenium

24

参考文献SeleniumHQ

http://seleniumhq.org/

Selenium 日本語ドキュメントhttp://oss.infoscience.co.jp/seleniumhq/docs/04_selenese_commands.html

Powerpoint テンプレートhttp://sagittarius.dip.jp/toshi/template.php

Page 25: Selenium

25

ご清聴ありがとうございました