Seleniumの歴史
物語は2004年に始まります
物語は2004年、シカゴのThoughtWorksで、Jason Hugginsが社内の時間と経費アプリケーション(Python、Plone)のテスト用に「JavaScriptTestRunner」としてコアモードを構築したことから始まります。あらゆるアプリケーションの自動テストは、このコンサルタント会社のAgileの考え方を考えると、ThoughtWorkのスタイルの中核です。彼はPaul GrossとJie Tina Wangの助けを得ています。彼らにとって、これは日中の仕事でした。
Jasonは、さまざまな同僚にテストツールをデモし始めました。多くの人が、その即時的で直感的な視覚的フィードバックと、他のWebアプリケーションのための再利用可能なテストフレームワークとして成長する可能性に興奮しました。
2004年の少し後、ThoughtWorkerの同僚であるPaul Hammantがデモを見て、Seleniumのオープンソース化と、選択した言語からSeleniumをネットワーク経由で使用できるようにするSeleniumの「駆動」モードを定義することについての議論を始めました。これにより、「同一オリジンポリシー」を回避できます。他の(当時の)同僚であるAslak HellesoyとMike Meliaは、同一オリジンポリシーを回避するためにページを書き換えるなど、「サーバー」部分のさまざまなアイデアを試しました。PaulはJavaでオリジナルのサーバー部分を書き、AslakとObie FernandezはRubyにクライアントドライバを移植し、さらに多くの言語でのドライバの基盤を築きました。
世界中のさまざまなオフィスのThoughtWorkerが商用プロジェクトにSeleniumを採用し、これらのプロジェクトで学んだ教訓からSeleniumに貢献しました。Mike Williams、Darrell Deboer、Darren Cotterillは、Seleniumの機能と堅牢性を高めるのに貢献しました。
一方、ThoughtWorksの外では...
Beaでは、Dan FabulichとNelson Sproulが、ドライバ/サーバーからブラウザへのアーキテクチャは最も有用でも柔軟でもないという結論に達し、ドライバコーダーをフォークし、MortBayのJettyをWebプロキシとして活用およびバンドルするスタンドアロンサーバーに作り上げました。コードがマージバックされると、それは「Selenium Remote Control」として知られるようになり、古い駆動コードラインと機能は廃止されました。
Pat Lightbodyは、同時期に、日中の仕事(Jive Software)を辞める必要のある商業的なアイデアを持って参加しました。そのアイデアは「Hosted QA」であり、最終的にはGomezのサービスラインに移行しました。PatはDanとNelsonと協力して、Selenium RCを大規模展開向けに安定させました。Patは、複数の顧客を同時に対応しながら、さまざまな状態のブラウザのスクリーンショットを撮るグリッドをHosted QA用に独自にコーディングしていました。Jasonも1年前に同じHosted QAのアイデアを持っていましたが、それを実現するために日中の仕事を辞めることはありませんでした。
2007年にDanは急速に成長しているRedfinに移り、RedfinもSeleniumでの彼の時間をパートタイムでスポンサーし、講演活動を奨励しています。
Selenium IDE:日本製
日本の笠谷俊也はSeleniumに興味を持ち、コアコードをFirefoxブラウザのIDEモジュールにラップし、同じプラグインでテストを記録および再生できることに気づきました。このツールは、同一オリジンポリシーに縛られないため、当初考えられていたよりも多くの点で目を見張るものでした。
Mike Williamsは2006年の夏に再び参加し、ThoughtWorks Chinaのチームを率いました。主にWang Peng Chao、Huang Liang、Xiong Jieでしたが、他の人の助けも得ました。彼らはSelenium Coreを1.0に近づけることを目標に改善に取り組みました。
Googleも!
Jason Hugginsは2007年にThoughtworksを辞め、(当時の秘密の)Google内のSeleniumサポートチームに加わりました。
Jennifer Bevan(および他の匿名のGoogle社員)は、Selenium RC用の独自のグリッド機能をコーディングし、複数の公開Webアプリケーションのテストのために社内で展開しました。GoogleはニューヨークでGTACカンファレンスを開催し、Seleniumの使用について初めて語りました。JenniferはすぐにSeleniumプロジェクトのコミッターになりました。
シカゴのHaw-bin Chaiは、XPath機能のパッチを提供し、ロケータの文法をはるかに簡単にする「UI Element」と呼ばれる拡張機能を開発しました。彼は2007年にSelenium開発チームに招待されました。
ThoughtWorksのSimon Stewartは、WebDriverと呼ばれる別のWebテストツールに取り組んでいました。これは、JavaScriptに大きく依存するのではなく、各ブラウザにスクラッチからコーディングされたクライアントがありました。また、Selenium-RCよりも「高レベル」のAPIを持っており、多くの有望さを示していました。SimonはGTACでこのツールを発表し、Selenium-RCとの互換性の作業を開始しました。これにより、2つのプロジェクトをマージすべきであるという明白な結論に至りました。2007年から2012年までGoogleに、現在はFacebookにいるSimonは、それを現実にするために時間を費やしています。