自動UIツールを比較!!

UIテスト自動化導入

1.UIテスト自動化導入のメリット・デメリット


1.メリット

・作業時間の軽減。
・キャプチャ・リプレイ機能があるので、エビデンスの偽造・加工ができないし、面倒でもない。
・サイトを追加機能した場合に、別のサイトが動かなくなることも発見できる。
・ブラウザのバージョンアップでサイトが動かなくなることがあっても、短時間で発見ができる。
・毎回ポチポチと画面テストするのは工数的にもモチベーションにもよくないし、他の作業が出来る。
・「正確さ」と「単調さ」は人間よりも機械が向いてる。

2.デメリット

・テスクスクリプトをしっかりと複数人で作らないと、属人化する恐れがある。
・機能が追加/変更されていくにつれ、テストケースも増えたり変わったり不要になるので、メンテナンスも実は大変。
JAVAの知識が必要。

自動化システム導入は、苦労を伴うが、リターンが大きいこと違いない!

2.UIテスト自動化製品について


1.共通事項

 ・複数言語に対応(JavaC#PythonRubyJavaScript(Node.js))
 ・複数Webブラウザに対応(ChromeFirefoxInternet ExplorerMicrosoft EdgeOperaAndroid標準Webブラウザ、iPhone)
 ・複数のOSに対応

2. Sleniumとは


 ・Seleniumはツールの集合体。単体のツールで無く、Selenium WebDriver、Selenium Server、Selenium IDESelenium 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 IDEGUIで操作できるため、利用ユーザも多いので便利だと思ったが、ブラウザの進化にいてけず、今は利用できない。
その他のIDE製品も出ているが、突然利用できなくなる可能性があるのが欠点。

・VIでJAVAのテストスクリプトのメンテナンスをすると、テストスクリプト作成に時間とトラブル対応に時間がかかるかも。
フリーのEclipseやPyCharmの統合開発環境を用意したほうが、保守性が高く、修正時間も短い。

3.その他

・単純にツールだけあればいいということではない。設計段階でテスト業務にきっちり組み込ませる必要がある。
・テストスクリプトの作成にそれなりに時間がかかる。テストを実行するのにコストがどれだけかかるかを 検討するのが何より必要。手動で実施したものがよいものもある。
・案件毎でテスト設計を組み込まないと、ツールの導入だけのとなり、継続的に利用ができない。
必要に応じた自分たちに合った手法を考えなければいけない。また、運用のノウハウは時間をかけて作るしかない。