画面の自動テストに挑戦!!Tweetこんにちは、@yoheiMuneです。今日は、JJUGのセミナーに行ってきて、UIの自動テストについて学んできたので、ブログに残しておきたいと思います。Webテストの自動化がテストの世界でホットな話題となっている最近、テスト自動化の話が一杯です!Jenkins(Hudson)とJUnitを組み合わせた単体テスト自動化は、よくされている事ではないでしょうか。́∇`*)テスト自動化が出来れば、あの大変なテスト作業が楽になるとは嬉しい限りです。細かい点までチェックするようなテスト項目ばかりだと、やっぱりチェック漏れとかも発生します。■なぜ自動化が進まないのか?じゃあ、続いて、必要なのは分かっているけどなぜ自動化が進まないのか。語られる点ですが、以下のような問題点があります。1、テスト自動化にコストがかかりすぎる・IFに近づくにつれて、オペレーションの自由が増え、テストケースが増える・アプリ側の問題:テスト自動化を想定していない。例:特定のテキストボックスを指定出来ない。・ツールの問題:例、AJAXなどの動きに対応していない。使いこなすのも難しい。・ビジネスロジックに比べ、頻繁に変更が多く入る。レコード系テストツール(Seleniumなど)は、変更に弱い。3、そもそも自動化出来ない場合がある・ツールに制限がある。例:アラートウインドウのボタンが押せない、ファイルアップロードできない、など。確かに、その通りです。UIのテスト自動化はしづらい。̄)それでも、画面テストの自動化を目指すぞ!!画面自動化テストで良く取り上げられるのは、Seleniumというツールです。Seleniumを使うと、テキストボックスに自動的に文字を埋めてくれたり、決定ボタンを押したりできて、ある程度の自動化が出来ます。■Seleniumの最近Selenium1(2004〜)。IDEやSelenium-Gridなどがある。WebDriver(2009〜)。WebDriverはGoogleが2006年から作り始めた。→Selenium2.0(2011/07)。現在はSelenium2.6とか。・Selenium1.0の問題点・・・ブラウザ上で動作するため、様々な制限があった。・WebDriverは、ブラウザ外部で稼働する為、上記の制限を受けない。ブラウザを操作するAPIを利用する。非常に多くのブラウザに対応している。Driverにも対応。JavaやC、LL言語にも対応している。Javaとか色々書くのが面倒。Seleniumは進化して、ツールの制限というものがすんごく解消されたのです。これを使わない手はないです!!しかしそれでも問題点が。テスト用コードをたくさん書かなきゃいけない点。セミナーでは、GepとSpockというフレームワークが紹介されていました。それらは、Groovyという言語を使ってテストコードを書けるようで、Groovyの特性を生かして、テストコード削減が出来るようです。́∇`*)Selenium2系を使ってみたいと思います。Seleniumでスマホの自動テスト!!Chromeを起動する、スマホテスト用にユーザーエージェントや画面サイズを変更するもしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。Munesada)です。世の中をさらに便利に面白くをモットーにWeb界隈で活動しています。Now機械学習/AI/自然言語処理のホットな"今"をお届けするキュレーションメディアです。