Selenium3のロードマップ

3,263 views
Skip to first unread message

らんさぶ

unread,
Aug 31, 2013, 9:38:21 AM8/31/13
to selen...@googlegroups.com
公式のブログでロードマップが投稿されてますね。


まあ、予想はできていたことですが

開発者はそもそもWD系でテストスクリプトを書いてたと思うので問題は無いですが
テスト技術側は開発言語をマスターしていないケースも多いでしょう。
そのため SeleniumIDEでは 自動記録モードがあり、エクスポートするという手段があったと。
なので、テストに対する敷居がずいぶんと低くなっていたと思う訳です。

テスト技術者も一つぐらい扱える言語があるべき、というかそれが望ましいですが
ハードルがあがってしまう気がします。

テストという観点から見ても、UI層のテストはユーザーが行う操作が中心なので
テストサイドがそれに沿って行った操作を記録し、テストに使用するのは至極自然に思うのですが。

これを、ロジックから起こすようにするのは思考の迂回が必要になるように思います。


------
ここまで書いて思ったのが、公式のアナウンスやバージョンアップの投稿はここを見ている方は皆さん
チェックしているだろうから、重複情報になるかな?と。

とりあえず一回投稿してみます。

tadashi nagao

unread,
Aug 31, 2013, 10:54:08 PM8/31/13
to selen...@googlegroups.com
自動記録がどうなるのかですね。


2013年8月31日土曜日 22時38分21秒 UTC+9 らんさぶ:
公式のブログでロードマップが投稿されてますね。


坂本純一

unread,
Sep 1, 2013, 11:45:56 PM9/1/13
to selen...@googlegroups.com
公式のブログでロードマップが投稿されてますね。

Selenium RC の API は今後は開発は凍結、ということなのですね。

テストという観点から見ても、UI層のテストはユーザーが行う操作が中心なので
テストサイドがそれに沿って行った操作を記録し、テストに使用するのは至極自然に思うのですが。
これを、ロジックから起こすようにするのは思考の迂回が必要になるように思います。

なるほど、そのような視点・考察は自分にはありませんでした。
(大変勉強になります)

自分の職場では、テスト技術者も、Seleniumを基盤としたテスト実行環境用の「スクリプト」を書いて自動化テストを実践するようやっておりますが、そのスクリプトは、(Ruby の cucumber という環境と同等の)Gherkin 構文に基づく、自社内製独自の「日本語で書く」スクリプトとなってます。
Seleniu IDE 等による操作の記録はやってないです。

このような日本語表記のスクリプトでも、上記のとおり懸念されている「思考の迂回」が起きているものか、気をつけた方がよさそう、と感じました。

ちなみに、弊社テスト技術者は、基本、C# やら Ruby やらなにやら、一般に言う「プログラミング言語」の修得はとくに求めてはいないです。
(それよりも「テスト技術」が求められるので...。もっとも、何かしらプログラミング言語できたほうが、自分の仕事を自動化したりなどいろいろ役には立つので、それはもう大歓迎なわけですが、なんていうか、"必修" 科目とは特段していない状況です。各個人で Java や JavaScript、Selenium RC ベースの API 等、修練されてはいるようですが)


ロードマップの記事、Selenium RC API は開発は凍結とはいえ、ダウンロードは維持されるようですし、WebDriver backed RC な互換レイヤも維持される、とのように読めました。
Selenium IDE を使い続けても、実行の主体は WebDriver になるものの、これまでどおりのテストの作成と実行はこれからも可能のままになるのかな? と解釈しました。
英語読むの得意ではないので、解釈間違ってるかもしれません、どうなんでしょう?

ここまで書いて思ったのが、公式のアナウンスやバージョンアップの投稿はここを見ている方は皆さん
チェックしているだろうから、重複情報になるかな?と。

私はこうして投稿いただくことでいろいろ気づくことができました。
ありがとうございます。
どうなんでしょう、多少の重複は別に問題ない気がしてます。

2013年8月31日土曜日 22時38分21秒 UTC+9 らんさぶ:

伊藤望

unread,
Sep 9, 2013, 8:11:50 PM9/9/13
to selen...@googlegroups.com
伊藤です。

みなさま情報ありがとうございます。
公式アナウンスをチェックしていない方もたくさんいらっしゃると思うので、
ぜひ良い情報を見つけたらこちらでも共有してください!

Selenium3の記事は、私も見てみましたが、
次のような内容かと思います。

・Selenium RCのAPIは今後も利用可能だが、非推奨になる。
・Selenium RCのAPIは今後も利用可能だが、内部実装はSelenium CoreからWebDriverに変わる。
・どうしてもSelenium Coreベースの実装のものを使いたい人は、
  Selenium2をダウンロードしてきて使うこともできる。ただしSelenium2の開発はもう止まる
・Selenium IDEは今後も利用可能。ただし内部実装はSelenium CoreからWebDriverに変わる。
・いい機会なので今後はWebDriverAPIを使ったらどうでしょう?

たぶん坂本さんの解釈とだいたい同じと思います。

WebDriverBackedSelenium(WebDriverで実装されたSelenium RCのAPI)は、
私は使ったことがないんですが、
にあるように、従来のSelenium Coreによる実装と比べて、一部動作の違いもあるようです。
ので、Selenium RCのAPIを使っている場合はそれなりにSelenium3への
移行コストが発生するかもと思いました。


そんなに長くなかったので手元で全文翻訳してみました。
今Seleniumブログ管理者の方に許可とっているので、
許可が出たらこちらに投稿したいと思います。

2013年9月2日月曜日 12時45分56秒 UTC+9 坂本純一:

伊藤望

unread,
Sep 12, 2013, 8:17:25 PM9/12/13
to selen...@googlegroups.com
伊藤です。

>そんなに長くなかったので手元で全文翻訳してみました。
>今Seleniumブログ管理者の方に許可とっているので、
>許可が出たらこちらに投稿したいと思います。

ブログ記事のコメント欄
で聞いてみたら、許可をもらえたので投稿いたします。

- 翻訳はご自由にどうぞ
- 翻訳記事をポストしたら教えてください(たぶん元記事のコメント欄とかで伝えればいいのかと)

ということでした。
あと、翻訳記事に、原文へのリンクを含めておけばいいと思います。
みなさんも、翻訳した記事とかあったらご自由に投稿ください。
# 増えてきたら専用のウェブサイトを設けてもいいかもしれません

=====================================
Selenium3のロードマップ
=====================================

Selenium2がリリースされたのは2011年の7月。それから実に2年が経った。Selenium2の主要なバージョンアップであったWebDriver APIは今やW3C標準の基礎となり、Google、Mozilla、Operaによる実装とサポートが行われている。公式にサポートされているJava、C#、Python、Ruby、JavaScriptのリリースは34におよび、コミュニティはPerlやPHPなどの言語バインディングを提供している。コードの修正をした人は57人におよび、数えきれない人がオンラインのフォーラムに参加し、手助けやアドバイスを行っている。

そのような状況の一方で、世界はどんどん進歩し、今やSeleniumプロジェクトが未来の方を向くべき時が来た。現在私たちはSelenium3に向けて開発を進めており、そのように宣言できることをとても嬉しく思う。

私たちは、Selenium3を「ユーザーに焦点を合わせたモバイルとウェブアプリケーション向けのツール」にしようとしている。

これはどういう意味か?モバイルのユーザーにとっては、既存のWebDriver APIをモバイル向けに拡張している多くの異なるプロジェクト間の互換性を高めるために、Seleniumプロジェクトがテストツールスイートをホスティングするということだ。Appiumios-driverselendroidなどのプロジェクトの開発者たちが、このテストツールスイートの実現のために作業を進めることになる。

私たちはまた、Seleniumのバックグラウンドのテクノロジーを、できる限り安定した有用なものにする作業を進めている。そのために、Selenium3では、初期のSeleniumコアの実装による実装を削除し、その結果Selenium RCのAPIを非推奨とすることになるだろう。古いバージョンのものは独立したダウンロードとして入手可能だが、極めて緊急度の高い修正を除いて開発はストップする。Selenium RCのAPIは、内部でWebDriverを利用した実装をまだ提供するので、現在あるテストを動かすことは依然として可能だ。しかし、今こそ、これらのテストをWebDriver APIを直接利用したものに移行する時ではないだろうか。

Selenium IDEからテストをエクスポートしてHTML形式のスイートを実行している利用者には、それらのテストを実行できる別のランナーを提供するつもりだが、それらはメインダウンロードで提供されるのと同様、内部でWebDriverを使った実装になるだろう。繰り返しになるが、これまでの実装のものをダウンロードすることは今後も可能だが、3.0がリリースされればそれらの開発はもはや活発には行われない。

現在の計画では、今年のクリスマスまでに3.0の配布を開始するつもりだ。とても楽しいことになるはずだ。

らんさぶ

unread,
Sep 13, 2013, 9:33:25 AM9/13/13
to selen...@googlegroups.com
らんさぶ です。

全文翻訳ありがとうございます。自身英語は機械翻訳に任せっきりなので解釈が危ういので非常に助かります。


文中にある selendroid も調査をしているのですがこちらまだ Version 0.5.1 とメジャーバージョンまで届いて

いないので、悪戦苦闘中です。とはいえ、動作環境をみると SeleniumGrid部分を流用していたりと

将来的には共通したアーキテクチャでテスト環境が作れそうにも見えます。


別スレッドにありますが11月の勉強会では リリースに先駆けて開発側のお話が聞けるとのことで

今から楽しみです。


2013年9月13日金曜日 9時17分25秒 UTC+9 伊藤望:

伊藤望

unread,
Sep 16, 2013, 9:59:17 AM9/16/13
to selen...@googlegroups.com
伊藤です。

ありがとうございます。
Seleniumブログの記事は、今後も時々翻訳投稿しようかなと思っています。

11月も楽しみにしています!

伊藤望

unread,
Sep 16, 2013, 11:54:08 AM9/16/13
to selen...@googlegroups.com
伊藤です。

Selenium3関連で、もう1つSeleniumブログに投稿されていた記事も訳してみました。

=====================================
モバイルのWebDriver
=====================================

WebDriverのAPIは元々はWebブラウザの自動化のために誕生したのだが、この数年間でモバイルデバイス上でも動作するように拡張されてきた。Appium、iosdriver、Selendroidなどのプロジェクトが、このアプローチがとてもうまくいくことを示した。Webにおいては、Selenium WebDriverをある1つのブラウザ(たとえばFirefox)で使い始め、それを他のブラウザ(たとえばInternet ExplorerやChrome)に切り替えることは容易だ。モバイルでも同様に、Androidの自動化フレームワークから他に切り替えられたら、それは素晴らしいことだ。

Selenium3の開発の一環として、私たちはappiumiosdriver間、appiumとselendroid間の相互運用性を確実なものにするためのテストスイートの作成に着手した。作業を始めるにあたり、各ツールの主な作者たち、Marionetteプロジェクト(Mozillaによる、FirefoxとFirefox OS向けのWebDriverの実装)を代表してDavid Burns、Seleniumプロジェクトを主導するSimon Stewart、といった人々が、ロンドンのMozilla HQにある小さな部屋に2日間閉じこもった。彼らは各プロジェクトでバラバラの領域をすり合わせ、確実な相互運用を可能にする方法について合意した。血と涙は最小限にとどまったが、困難な作業がたくさんあった。

その2日間の議題がこれだ。議事録もある。

こうしている間にも、Google CodeのSeleniumプロジェクトレポジトリにホストされた共有のテストスイートで、作業は始まっている。どうぞ自由に参加して欲しい!

=====================================

「Selenium3のロードマップ」「モバイルのWebDriver」の両方の記事に、
「Appium、iosdriver、selendroidの相互運用性のためのtest suite」
というものが出てきて、よくわからないけど何か3つをまとめたツールをつくるのかなと思っていたのですが、
そうではなくて、test suiteというのは
「各ツールが仕様に準拠しているかをチェックするための自動テストケース」
のことだと今気付きました。別に各ツールを1つにまとめちゃうわけではないようです。

※「Selenium3のロードマップ」の訳では、間違えて
テストツールスイートとか訳してしまいました。

らんさぶ

unread,
Dec 1, 2013, 2:55:19 AM12/1/13
to selen...@googlegroups.com
らんさぶです。

勉強会の1月への予定変更や、漏れ聞こえてくる オバマケア のニュースからすると
Selenium3のリリースも順延になるんですかね。


伊藤望

unread,
Dec 5, 2013, 8:04:16 PM12/5/13
to selen...@googlegroups.com
伊藤です。

>Selenium3のリリースも順延になるんですかね。
どうなんでしょうか。Jason Hugginsさん以外にもSeleniumプロジェクトのリーダー的な方は
何人かいるようですし、今のところ順延の情報はなさそうですけど。


オバマケアプロジェクトも、一応順調に改善しているようです。

# と言っているそばから、さっきhealthcare.govにアクセスしたらつながりませんでしたが、たぶん気のせいです。。

らんさぶ

unread,
Feb 2, 2014, 7:15:29 AM2/2/14
to selen...@googlegroups.com
らんさぶです。

勉強会でのお話からすると、今年にはお目見えしそうでしたが
私の印象では

3になっても、テストスクリプト側は、大きく変わらない。
モバイルについてしっかり対応する。
ただし、PCもモバイルも現在ドライバーで実装しているクライアント(ブラウザ操作部分)は、w3cで標準化を進めているからそれに合わせて実装してね。
なので、3のターゲットはドライバーを分離してFF依存を減らす事。

という所ですが、いかがでしょうね。

まあ、蓋を開けずに推測に近い所での話しですが、雑談程度投稿してみます。

伊藤望

unread,
Feb 6, 2014, 7:54:12 PM2/6/14
to selen...@googlegroups.com
伊藤です。

何人かの方が勉強会の内容をブログにまとめてくれていますが、

>3になっても、テストスクリプト側は、大きく変わらない。
デスクトップの方では、コマンドの変更や追加は基本的に無いようですね。
下位互換をとるので従来のスクリプトも引き続き使えるようです。
(Selenium RCスクリプトも、非推奨になるが使えるようです)


>w3cで標準化を進めているからそれに合わせて実装してね。
Seleniumは、JavaやRubyなどの言語で書かれたライブラリから、
JSON Wire Protocolという仕様にのっとったHTTP通信でコマンドをブラウザに送って再生を行っています。
現状はHTTP通信でコマンドを受け取った後のブラウザ側の処理ロジックも、Seleniumコミッターが書いているが、
将来的にその部分は各ブラウザベンダーに任せ、
Seleniumプロジェクトは共通の仕様であるJSON Wire Protocolの仕様策定に注力したい、ということでしょう。

勉強会でJasonさんがしきりに言っていた「Seleniumはプロトコルになっていく」という理想は要するに、
SeleniumとはJSON Wire ProtocolというW3Cで定められた仕様であり、その実装は各ブラウザベンダーに任されている、
という状況を目指しているということでしょう。

ChromeDriverについては、chromedriver.exe含めすでにChromeプロジェクト側でブラウザ再生ロジックがメンテナンスされているはずです。
FirefoxDriverも、ロジックを結構Mozillaのプロジェクトの方に移し始めているようです(という話をどこかで読んだ気がしたのですが、出典が見つかりませんでした)。
IEは最後まで苦戦しそうですね。


>モバイルについてしっかり対応する。
現在のJSON Wire Protocolはモバイルの無い時代に策定されたもので、タッチやスワイプなどのコマンドに対応していない、
そのためモバイルも含めたJSON Wire Protocolを策定し直す、というのがSelenium 3のターゲットなのでしょう。
今はAppium,Selendroid,iosdriverなどSelenium外のプロジェクトの方が伸びてきているので、
それらをベースにプロトコルを策定し、その実装はAppium,Selendroid,iosdriverなどの個別のプロジェクトで行う、
という方針のようです。


デスクトップブラウザ側の再生ロジックのメンテナンスは当分Seleniumプロジェクトに残るし、
それをなくすことはSelenium3のターゲットでは無いと思います。
モバイルの再生ロジックについては、Appium,Selendroid,iosdriverなどの外部プロジェクトを使うことを
Selenium3で目指しているようです。

推測の話ばかりですが、勉強会やSelenium Blogの話を総合すると、そういうことなのかなあと思っています。
Reply all
Reply to author
Forward
0 new messages