Test Automation Tools
ソフトウェアプロダクトの品質を担保するテストについて、オートメーションツールを紹介する。
背景
ソフトウェア開発においては、アジャイル・ヲーターフォールなどの開発手法に関わらず、数々のテストを実施しなければならない。ディベロッパーがコード単位で行うユニットテストから始まり、インテグレーションテスト・ユーザーアクセプタンステストなど、テストがカバーする範囲や、ユーザの視点か否かといった観点でテストを分類することができる。
テストは新たに開発した機能が動作することももちろんだが、新規機能の追加によって既存機能が破壊されていないか (Regression) を確認することも重要で、機能が増えるごとにテストのパターンは指数的に増加し、マニュアルテストはすぐに追い付かなくなる。そのような状況下で限られた人材で品質を担保するために、オートメーションツールが役立つ。
テストオートメーションツール
まず、テストオートメーションツールがどのように動作するか、UIテストを例に取って紹介する。オープンソースで歴史のあるSeleniumが出している簡易版のSelenium IDEを使ってエヴァアビエーション社のウェブサイトでケージコードが正しく表示されていることを確認するテストを行う。
まずは、Chrome ExtensionであるSelenium IDEをChromeに追加する。続いて、Selenium IDEを開いて新しいプロジェクトを作る。(プロジェクトの中で複数のテストを登録することができる。) Record a new test in a new projectを選択し、ベースとなるURLであるhttps://www.evaaviation.comを指定する。
Selenium IDE | Base URL |
Start Recordingを押すと、ブラウザが自動的に開き指定したサイトにジャンプするので、ここからユーザが取る動作を淡々と行う。Selenium IDE is recording…のマークがブラウザに現れている間、Selenium IDEが動作1つ1つを記録していく。ここでは、メニューにある企業情報のリンクを押し、目的の情報が記されたページを開く。
Recorded Steps | Text Validation |
以上でユーザの操作は終了のため、Selenium IDEに戻って録画停止ボタンを押す。最後に、行3の下をクリックし、表示された情報を評価するステップを追加する。commandの中から、表示されたtextを評価するassert textを選択し、targetの横のアイコン () をクリックする。ページの中から該当するエレメントを選択し、比較したい値をvalueに登録する。以上でテストの設計は終了だ。
再びSelenium IDEに戻って実行を押すと、Selenium IDEが登録された動作を順次実行する。すなわち、(1) ブラウザが自動的に開き、エヴァアビエーション社のウェブサイトへナビゲートし、(2) 会社概要をクリックし、(3) 指定したテキストの内容を比較する。結果は下のLog欄に表示される。
このように、動作と評価を組み合わせて記録していくことでテストを設計する。一旦設計すれば、都度実行するだけでマニュアル作業や目視確認の手間を大幅に省略することが可能となる。
製品
テストの種類が多数あるように、オートメーションのツールも無数にある。試しにTest Automation Toolと検索しただけでも、次のような名前が挙がってくる。これらの中から選択するに当てっては、GartnerやG2のようなサイトが参考になるだろう。ここでは言及数の多い3つを簡単に紹介する。
Abbot Apache JMeter Appvance AscentialTest Autolt UI Testing Coded UI Cross Browser Testing Cubic Test cucumber eggPlant FitNesse Ghost Inspector GTT IBM Functional Tester (RTF) IcuTest | iMacros Jubula Kaliostest Kantu Selenium IDE KantuX Pro Katalon Recorder Katalon Studio Leapwork LoadUI mabl Maveryx User Interface Testing Tool MicroFocus SilkTest MicroFocus Unified Functional Testing (UFT) Parasoft Soatest Postman | Powershell UI Automation QAliber QF-Test QMetry Qualitia Ranorex Rapise RCP Testing Tool riatest Sahi Selenium Selenium IDE sikuli Silk Test Snaptest | Soaptest SoapUI Squish GU Testing Tool SWAT SWTBot Telerik Telerik TestStudio Tellurium Test Partner Testcafé TestComplete TestCraft Testim Testing Anywhere Testing Whiz | Testingbot TestProject TestStackWhite Tosca Testsuite Tricentis Tosca Unified Functional Testing Verifaya WatiN Watir Zaptest LambdaTest Zephyr TestArcjotect functionize WorkSoft Certify |
- TestComplete: CrossBrowserTesting・SoapUIなどCI/CD向けに数多くのテストツールを提供するSMARTBEARのプロダクトの1つである。当然、それらプロダクトとの互換性があり、JIRA・git・Jenkinsなどといった外部のソフトウェアともインテグレーションできる。
- Ranorex: デスクトップ・ウェブ・モバイルをターゲットとしたテストプラットフォーム。プロダクトの配色テーマを変更できるほか、レポーティングツールを兼ね備えている。
- Telerik Test Studio: Mobile・RESTful API・パフォーマンステストをも含めたパッケージとなっている。Visual Studioのプラグインとしても作動するが、サポートされているバージョンが2010・2012・2013であり、言語もC#とVB.NETと限られている。
結言
ウェブアプリケーションを念頭に置くと、テストの自動化には、スクリプトの作成以外にも次のような機能が必要だ。テスト結果の保存・異常時のレポートおよびアラート・入力値のパラメータ化とループ・実行スケジュール・クロスブラウザチェック・パフォーマンステストなど。近年では、異なるバージョンのアプリケーションでもスクリプトを書き変えずにテストを実行できるよう、AIが支援するといった製品も出てきている。
アプリケーションのタイプ・機能によって最適な製品は異なるであろうが、できるだけスクリプトに手間をかけずに始められること、そして少ないメンテナンスで続けられることが望まれる。
お問い合わせはこちらまで。