自動UIツールを比較!!
UIテスト自動化導入
1.UIテスト自動化導入のメリット・デメリット
1.メリット
・作業時間の軽減。
・キャプチャ・リプレイ機能があるので、エビデンスの偽造・加工ができないし、面倒でもない。
・サイトを追加機能した場合に、別のサイトが動かなくなることも発見できる。
・ブラウザのバージョンアップでサイトが動かなくなることがあっても、短時間で発見ができる。
・毎回ポチポチと画面テストするのは工数的にもモチベーションにもよくないし、他の作業が出来る。
・「正確さ」と「単調さ」は人間よりも機械が向いてる。
2.デメリット
・テスクスクリプトをしっかりと複数人で作らないと、属人化する恐れがある。
・機能が追加/変更されていくにつれ、テストケースも増えたり変わったり不要になるので、メンテナンスも実は大変。
・JAVAの知識が必要。
自動化システム導入は、苦労を伴うが、リターンが大きいこと違いない!
2.UIテスト自動化製品について
1.共通事項
・複数言語に対応(Java、C#、Python、Ruby、JavaScript(Node.js))
・複数Webブラウザに対応(Chrome、Firefox、Internet Explorer、Microsoft Edge、Opera、Android標準Webブラウザ、iPhone)
・複数のOSに対応
2. Sleniumとは
・Seleniumはツールの集合体。単体のツールで無く、Selenium WebDriver、Selenium Server、Selenium IDE、Selenium RCとある。
・バージョンは最新の3で最新である。 Selenium WebDriverの知識だけでよい
・情報量が多い。
3. Selenideとは
・ Selenium WebDriver のラップラップしたブラウザテストの自動化フレームワーク。
・初めからUIテストのために設計されていて、簡単にテストスクリプトを書いて実行
・Ajaxのテストが簡単らしい
・情報量はまだまだ少ない。
4.検証環境(Windows)
ブラウザは全てCromeで実施。
1.Selenium
・OS:Winodws 7
・開発環境: Eclipse
・Python :3.5.1
・JAVA:“1.8.0_151”"
・chromedrive:2.3
・Crome:62.0.3202.89
2. Selenide
・OS:Winodws 7
・開発環境: Eclipse
・JAVA:"1.8.0_151“"
・JUNIT
・Crome:62.0.3202.89
5.検証環境(Linux)
1.Selenium
・OS:CentOS Linux release 7.4.1708 (Core)
・Python :3.5.1 ・JAVA:”1.8.0_151”
・言語:JUNIT
・chromedrive:2.3
・Crome:62.0.3202.89
・Selenium:3
・仮想ディスプレイ:Xvfb(仮想ディスプレイ)+ヘッドレスモード(Crome)
2.Selenide
・OS:CentOS Linux release 7.4.1708 (Core)i ・JAVA:“1.8.0_151”"
・言語:JUNIT
・chromedrive:2.3 ・Crome:62.0.3202.8
・Selenium:3
・仮想ディスプレイ:Xvfb(仮想ディスプレイ)
・ヘッドレスモード(Crome)は動作できず。今後の課題!
6.製品の比較(SleniumとSlenaide)
1.情報量: Slenium > Selenide
・まだまだ、歴史があるSleniumに比べると、Selenideは情報が少ない
2.環境構築の工数:Slenium> Selenide
・情報量の多さで、Sleniumのほうが難易度は低い。
・Selenideは、情報量が少なくPytonが利用できない。JAVAの知識(JUNIT・コンパイル・ビルド製品なども)
→ Pyton版とSlenaideも出てきているらしい(検証はしていない)
→Javaに慣れた人なら、問題はない。
3.操作性: Selenide > Slenium
・ブラウザの閉じ方とか、タイムアウトとか、扱い方などを考える必要はなく、ソースの作成が難しくない。
4.拡張性: Selenide > Slenium
・初めからUIテストのために設計されていて、UIテストを「スラスラ」書いて実行できます。
7.所感
1.ブラウザについて
・ブラウザのデフォルトは、FireFoxであるが、主流はCromeになっていくと思われる。
・ドライバを変えることで、トラブルをそれぞれ抱えている。複数のブラウザが利用できるのが特徴ではあるが、統一したほうがよいと思う。
・ブラウザの進化のスピードとても早く、WebDriveのバージョンアップが随時適切に必要。ブラウザの仕様変更で動作しなくなることもある。
・今後はブラウザを構築している団体が、ドライバをメンテナンスすることになるので、トラブルは減るかも。
2.ソフトウェアについて
・ Slenaideを選定したい。
情報量は少ないが、テストスクリプト作成の難易度は低く、スラスラ動く。Pytonも使えるようになりそう。
・Selenium IDEはGUIで操作できるため、利用ユーザも多いので便利だと思ったが、ブラウザの進化にいてけず、今は利用できない。
その他のIDE製品も出ているが、突然利用できなくなる可能性があるのが欠点。
・VIでJAVAのテストスクリプトのメンテナンスをすると、テストスクリプト作成に時間とトラブル対応に時間がかかるかも。
フリーのEclipseやPyCharmの統合開発環境を用意したほうが、保守性が高く、修正時間も短い。
3.その他
・単純にツールだけあればいいということではない。設計段階でテスト業務にきっちり組み込ませる必要がある。
・テストスクリプトの作成にそれなりに時間がかかる。テストを実行するのにコストがどれだけかかるかを 検討するのが何より必要。手動で実施したものがよいものもある。
・案件毎でテスト設計を組み込まないと、ツールの導入だけのとなり、継続的に利用ができない。
必要に応じた自分たちに合った手法を考えなければいけない。また、運用のノウハウは時間をかけて作るしかない。