ツール

ookoshi

Seleniumでの自動テストの運用方法

Posted Date: 2014-06-12 14:00
Author: / No Comments

こんにちは。品質管理グループのおおこしです。

今回は品質管理グループで行っている Selenium での自動テストの運用方法について書きます。
Selenium は Web アプリケーションのテストツールです。
セミナーでは導入についてよく聞きますが、現場でどのように運用しているかはあまり例を聞かないため、トライコーンの場合をまとめてみます。

日常的に行うこととして、最新状態の開発環境に対してスモークテストとして Selenium を毎朝実行しています。
毎日実行するのにはすぐに差異を見つけることと、テストデータを積み重ねる目的があります。
レポートを品質管理グループのメーリングリストに届くようにして出勤後に結果を確認しています。

失敗していたテストスイートについては内容を参照し、どのテストケースが失敗したかを確認した上で、再実行して再現確認と再現条件の特定をします。
バグであれば修正依頼をし、開発による変更ならテストケースの修正をします。

失敗するテストケースを放置すると修正が追うのが難しくなり、使われないテストケースになってしまうので早めの対応が大事です。
一般に指標として聞かれるのはケース数であったりレポートにカウントされる判定部分になりますが、トライコーンの開発で重視しているのは画面数です。テストのパターン数を増やすのも大事ですが、現在品質管理グループでは網羅性の向上を優先しています。
また、テストスイートはプロダクトの機能ごとにまとめるようにしています。これによりプロダクト側の機能の追加や修正に際し、機能ごとにテストスイートを作成したり修正していけば良いため、テストケース管理の見通しが良くなっています。

テストスイートおよびテスト対象サーバは setting.properties により切り替えを行えるようにしており、(1) 開発サーバに対しての最新のコードのテスト、(2) 本番サーバに対してのリリース版のコードのテスト、(3) テスト用に外部に提供しているサーバに対してのリリース版のコードのテスト、なども簡単に切り替え可能です。

lrwxrwxrwx 1 kreisel kreisel setting.properties -> setting.properties_lion_Kreisel
-rwxr-xr-x 1 kreisel kreisel setting.properties_apibeta_Kreisel
-rwxr-xr-x 1 kreisel kreisel setting.properties_apitest_Kreisel
-rwxr-xr-x 1 kreisel kreisel setting.properties_dev_Kreisel
-rwxr-xr-x 1 kreisel kreisel setting.properties_honban_Kreisel
-rwxr-xr-x 1 kreisel kreisel setting.properties_lion_Kreisel

このように切り替えが容易なため、日次の実行以外に、メンテナンスを行う際のリグレッションテストにも利用しています。リグレッションテスト時はステージング環境で、リリースするコードに対してテストを実施します。

なお、テストスイート及びそこに含まれるテストケースは Subversion で管理しています。

トライコーンのクライゼルやコトシロなどのプロダクトはバージョンアップを継続的に行う派生開発を行っているため、同じテストを何回も繰り返します。自動テストは作成やメンテナンスの工数はかかりますが、日々実行していることと、確実な結果が出せることで元がとれていると思います。

過去の資産が多いことから現在は Selenium 1 を継続利用していますが、Selenium 2 への移行も進めています。これからもプロダクトの開発に合わせた運用方法を探しながら進めていこうと思います。

Tags: , , ,

morikawa

インフラグループの Morikawa です。今回は AWS EC2 のインスタンスに SSH ログインする際にちょっと便利なツールのご紹介です。

ちなみに AWS は初心者でして、最近時間を見つけてはちょっとずつ勉強してるところです。…で、使い始めて思ってしまったわけです。

  • EC2 (起動のたびにグローバルIP変わる) に SSH ログインするの毎度面倒くさいな、と…。 (もっと他に学ぶところはあるはずなんですが ^^;)

Web 上を探してみますと同じような不満を持ってる方はやっぱりいらっしゃいまして、以下のサイトで migrs さんが、EC2 上のインスタンスの名称を指定して SSH ログインできる ec2-ssh というツールを紹介して下さってます。ツールは GitHub Gist で公開されてます。

これはログインのたびに ec2-api-tools を介してインスタンスの名称と Public DNS の対応を自動取得してくれるツールです。単独で動くシェルスクリプトですのでセットアップも簡単で非常に便利です。ただ ログインのたびに API での Public DNS 情報の取得に数秒必要 のがどうも気になってました。

そんなわけで (ここが本題)、migrs さんの ec2-ssh を Fork して Public DNS 情報のキャッシュ機能を追加した ec2-ssh を作ってみました (こちらも Gist にて公開 してます)。今のところ CentOS 6.4 と Mac OS X 10.8.4 で動作確認してます。

既にオリジナルの ec2-ssh を利用されてる方や、ec2-api-tools を普段から利用している方は単にダウンロードして実行してもらえればサクッと使えると思います。今回の記事では、私のような AWS 初心者向けに関連ツールのセットアップも含めてまとめてみました。

続きを見る >>>

Tags: , , , ,