Agile Japan 2009
2009年4月22日、東京千代田区にある放送会館で「アジャイルジャパン2009」が開催されました。本イベントは「ソフトウェア開発の次世代リーダーをつくる」ことを合い言葉に、200人以上の参加者を集めてスタートしました。
作者 Geoffrey Wiseman , 翻訳者 編集部 投稿日 2007年11月13日 午前3時8分
Webアプリケーション用の機能的なテストツールには多様なスタイルのものがあるが、その中でも最も模範的な違いは、Seleniumのように実際的な環境をフルに作るために一つかもしくはより多くのWebブラウザを動かすツールと、Canoo WebTestのようにWebブラウザが動作するやり方をシミュレートするツールがある。Marc Guillemot氏(source)はこの二つを比較し(source)、また彼の意見においてはWebTestが13対5の割合で勝利を勝ち取っている。
その二つを比較するにあたって、Marc氏はそれぞれのカテゴリーにおいてWebTestとSeleniumを勝者と考えている。
| Canoo WebTest | Selenium | 引き分け |
| Reports Speed Integration into Development Process Scalability Capture JS Errors Documentation Predictable Behaviour XPath Support Extensibility Data-Driven Tests Internationalization Support Support for Non-HTML Content |
Browser Fidelity Beginner Friendly Support for Badly Formatted HTML Code Multi-Language Support |
Testing Ajax |
Marc氏はテストが十分に速いことはないが、しかし”WebTestは単にやることが少なく、また全てはJVM内にて起こるのです。”と提案している。また彼はSelniumがテストを失敗に至らせるJavascriptのエラーを捕まえることができないと論じている。
あなたはユニットテストが通過する限り、プログラム内でのコンピレーションエラーを受け入れますか?とんでもないです!しかしながら、実のところまさにこれがあなたのアプリケーションに含まれているJavascriptのエラーが発見されない時に行うことなのです(それらが直接的にその特定のテストを失敗させるような影響を及ぼさない限り)。
彼はまた、一般的にブラウザシミュレーターの弱点であると考えられているAjaxのテストが重点に成り得ることを論じている。
人気をよそに、Ajaxの機能をテストするためにはブラウザ内でテストをJavaScriptとして動作させなくてもいいのです。HtmlUnitとそれゆえに、WebTestも同様にタスク次第なのです。またそれは予測できないビヘイビアを予測可能にし、ページ内のリクエストをどのようにスケジュールするかという点において、より良いコントロールを許容するので、それよりも優れているとさえも考えられるのです。参考に以前の私の掲載記事を参照してください。)。
一方、彼は複数の言語をサポートするSeleniumも称賛していて、”WebTestがAntに収束されている一方、Selenium RCは異なる言語(Java、Ruby、PHP等)にバインディングが可能である”と述べている。またそれが粗悪にフォーマットされたHTMLとブラウザの忠実度をサポートするという。
HtmlUnitのJavaScriptサポートは驚くべき進展を遂げましたが、未だ普通のブラウザのようには動作しません(そして今後も変わらないでしょう。)。Seleniumはアプリケーションの通常のJavaScript実行を修正しますが、それはブラウザそれ自体を使用し、それゆえにブラウザの標準のビヘイビアにより近いものなのです。
Canoo WebTestとHtmlUnitのリードデベロッパであるMarc氏は、明らかにこのスタイルのツールを好み認めていて、またこれに関して反論したい人は、まず彼の分析文書を読んで欲しいと述べている。
明確にすると、WebTest(とHtmlUnit) のコミッターとして、私は間違いなく偏った意見を持っています。一方私は数年間に渡って開発、保持されている巨大なテストスイートにおける経験もあります。客観的になろうとすると、過剰反応してSeleniumを過剰評価してしまうかもしれません。もちろん私がSeleniumに対して持っている意見に対して間違っているところがあれば、それは修正したいと思っています。でも批判する前に一度私の掲載記事を最後まで読んでみてください。
フィードバックにはいろいろな見解が含まれていた。またそれはWebTestとSeleniumが全く異なるものであるということを提示していた(source)。”Selenium、WebTest(HttpUnit)、 DBUnit、JUnitと他のものは補足的なものなのです。これでできてもそれで出来ないものがあるのが事実です。”他の人々は録画・プレイバック vs.スクリプトされたテストの優劣とテストの持続性(source)のためのアプローチに関して論議した。Murali氏はPragmatic QA Elementを提案した(source)。
Christian氏はWebTestのAjaxサポートに反論し(source)、彼のアプリケーションにおいて”HtmlUnitはDojoがステートメントをインポートするのを解析しないので一番シンプルなページでさえも例外を投げている”と主張している。
Simon氏(source)にとっては、ブラウザの忠実度が一番重要なポイントであった(source)。
WebTestのようなツールは多少理論的に思えます。それらはコードが完璧に働くことを証明するのですが、それはプロダクションに少し類似した理想的な環境においてのみ行われます。本物のユーザ達はIEやFirefox、Seleniumを使用していて、Seleniumはメモリ漏れする稚拙で、標準に準拠しないブラウザを用いて’現実的な’状況下でテストを行う事を可能にします。
WebTestが使用している、特定のエンジン上のアプリケーションを使用するクライアントなんて絶対にいないのです。それは、それが何かの上で稼働するということが分かっ て良いのですが、一方それがどうでもいいことであることを意味しているのです。その反対にSeleniumのテストはFirefox、IE上で動作し、また誰かがクロスプラットフォームに準拠しないで何かを記述した際に起こる問題をたくさん捕らえるのです。
最後に、Kent Tong氏は二つのアプローチを結びつかせている(source)。
WebTestとSelenium両方の上で動作できる、テスト一式の記述を可能にするミドルレイヤを開発することは可能なのでしょうか?このやり方でWebTestとSeleniumを毎晩頻繁に稼働させることによって、二つの世界を把握することができるでしょう。
あなたはこのどちらかを使用するだろうか。それとも他のテストツールを一緒に使用するだろうか?次世代のテストツールに関するディスカッションに参加したくなっただろうか?更なる情報に関してはCanoo WebTest(source)、Selenium(source)、Testing(source)と次世代のテストツールを読んで欲しい(source)。
原文はこちらです:http://www.infoq.com/news/2007/11/canoo-webtest-selenium-testing
2009年4月22日、東京千代田区にある放送会館で「アジャイルジャパン2009」が開催されました。本イベントは「ソフトウェア開発の次世代リーダーをつくる」ことを合い言葉に、200人以上の参加者を集めてスタートしました。
今週(2009年6月1日)AdobeはFlex 4の正式な初ベータ版をリリースしました。Flex 4はGumboというコードネームで開発されています。今回のリリースには大きな変更が多数含まれています。このRIAフレームワークの最新バージョンにおいて変更された事柄についての概要を以下のリストで見ていきましょう。
ビジネス領域の深い理解を反映したドメインモデルを設計するための、ヴィジョンとアプローチです。この本は、Eric Evans氏の「Domain Driven Design」の主要点を短く読みやすく要約しました。
この記事ではJavaプログラマがなぜFlexとBlazeDSを学ぶべきなのかについて13の理由を述べています。なぜ高度にインタラクティブなWeb サイトからJavaで開発されたバックエンドをもつエンタープライズ・アプリケーションまでを含む、リッチ・インターネット・アプリケーション(RIA)の開発にFlexとBlazeDSの組み合わせが最適な選択肢となるのかについて述べています。
Mary Poppendieck氏、Ron Jeffries氏、Jeff Patton氏、David West氏、Steve Freeman氏、Jason Yip氏が、バックログに関する彼らの意見とアジャイルチームを成功させるために必要な事を語った。
この記事ではAlex Devine氏が、Java開発者がPerf4Jをどのように利用できるかと、タイミングステートメントにコードを追加し、ロギング、結果の解析とモニタリングを行うオープンソースツールセットの説明をします。
この記事では低レベルのサービス・レイヤやリポジトリ・レイヤを肥大化させることなく、フェッチング・ストラテジによってモジュール化された方法でバックエンドにあるシステムからデータを取得する処理を最適化する方法について説明します。
No comments
スレッド表示 返信