Facebook x

ジャンル

テスト技法・工程 2023.11.14
x hatenabookmark

「成功するテスト自動化導入」のコツ② ~ツールの選び方~

執筆: 宮北 裕子

バルテス株式会社 Webシステム品質事業部

「成功するテスト自動化導入」のコツ② ~ツールの選び方~

本連載では、実際の経験から学んだ 『 テストの自動化導入を成功させるポイント 』 を、全4回に分けて解説したいと思います。

1回の記事では、自動化導入の基盤となる「導入前にやっておきたい5つの準備」と題して、テストを自動化する前に事前にやっておくべき5つのポイントを解説しました。

戦略も立てずに、すぐさま行動に移して工数の無駄を生じさせるのではなく、戦略を十分に立て、着実に前へ前へと進んでいただくために必要なポイントです。「まだ読んでいない!」という方は、まずこちらからお読みいただくことをお勧めいたします。

さて第2回目となる本記事では、自動化には欠かせない「ツールの選び方」を解説します。

自動化ツールを選ぶ自動化ツールを選ぶ際に確認すべき6つのポイント際に確認すべきポイントや、失敗しないための注意点をご紹介。

記事の後半では、「無償」と「有償」ツールの違いに関しても解説していきますのでぜひ最後までご覧ください。

連載一覧
もくじ
  1. 自動化ツールを選ぶ際に確認すべき6つのポイント
  2. ツール選定で失敗しないための注意点
  3. 自動化ツールは「無償」 と 「有償」 どちらがいい?
  4. まとめ

1.自動化ツールを選ぶ際に確認すべき6つのポイント

まずは、自動化ツールを選定する際にチェックすべきポイント6つを、私の経験談を交えながらご紹介します。

テストする製品固有のインプットとの相性

自動化ツールが、テスト対象の基本機能の操作を一通り認識し、忠実に再現できるか、様々な観点で確認してみましょう。
オブジェクトの認識度やメンテナンスの必要性や頻度、チューニングの必要性など、テストで手間のかかるところを特に重点的に確認するのがよいでしょう。

例として、マウス操作のポイントをご紹介します。

テスト対象のプログラムが、マウスホイールや右クリックに機能を割り当てている場合を考えてみてください。
自動化ツールは、マウス操作を認識してその操作を正しく記録し、記録した操作を忠実に再現できる必要があります。大前提として、操作を正しく記録できる必要があるわけですが、本記事を執筆している2020年現在でも、マウスホイールや右クリックに未対応なツールがあり、注意が必要です。

自動化ツールを購入後に、それがもしマウス操作に対応していないツールだった場合、全て独自で実装しなければ自動化ができず、大変苦労することになってしまいます。重要視される場合には必ず確認してください。

相性問題は、上述のマウスの他に、テキスト比較や画像比較などでもあり得ます。このように、対象となる製品と自動化ツールの相性を定量的に評価して、ベストマッチとなるツールを選定する必要がありますが、その際、自動化したい操作や自動化ツールの機能に対する重要度付けも行って、十分に比較しましょう。

GUIの認識性能

自動化ツールによるGUIの認識能力の確認をしておきましょう。

自動化ツールは日進月歩で進化を続けており、有名な製品だからと言って一概に秀でている製品とは言えない場合があります。対象の製品によって、全く異なる結果となる場合があるからです。

例えば、開発言語や実装構造によっても異なりますし、動作環境による影響を受ける場合もあります。例えば、対象の製品固有の仕様で動作するブラウザ、自社開発したブラウザなどでは、自動化ツールが 正常動作しないこともあります。

もちろん、ツールベンダーの用意したデモ環境上およびデモ製品に対しては、何の問題も発生せず、スムーズに記録操作できることは当たり前と言えます。そのため、体験版で必ずしなければならないことは、自動化したい製品を対象にした自動化ツールによるGUIの認識能力の確認です。

デスクトップアプリ、Webアプリ、モバイルアプリ別に、実際に自動化を導入したい製品で、いずれのGUIもすべて容易に認識できるかを十分に確認してください。

特にテスト対象の製品がWebシステムではなく、デスクトップアプリの場合には、差が大きく開く可能性がありますし、AndroidやiOSなどのモバイルブラウザを使ってテストをしたい場合、モバイル対応と記載されていても、実際の一般的なWebブラウザ(GoogleChrome、Safari等)でななく、ツール会社の独自のWebブラウザでのみ自動化可能となっているケースがあります。

もし、モバイル端末を使用して検証する場合、ツール導入前にテスト対象の製品が問題なく動作するか確認してみてください。私は、実際のブラウザ(Safari)では自動化ツールが動作せず、とてもがっかりしたことを、今でも鮮明に覚えています。

容易に自動化でき、実行して正しい結果が得られるか

簡単に自動化ができ、正しい結果が得られるかどうかも重要なポイントです。

テスト対象と自動化ツールの相性が悪い場合には、動作が重かったり、システムが原因不明で落ちたりと、今後のメンテナンス性に不安を感じることもあります。

私は、その当時に有名だった製品3つだけではなく、ネット上で探しあてた6つの製品を加え、合わせて9製品をじっくり比較しました。しかし同じ結果となった製品は1組もなく、大いに違いを感じました。

残念だったのは、有名だからと言って、有償だからと言って、いずれも相性が良いというわけではなかったことです。さらに言えば、その9製品のうち、3製品しか使い物にならなかったという結果でした。

特に、有償ツールを導入する場合には初期投資が必要です。決して安くありませんし、ライセンス数に応じた更新料が毎年かかります。「こんなはずではなかった」 と思うことがないように、体験期間を最大限に有効活用していきましょう。

新しい環境 (OSバージョン、フレームワーク等)への適応スピード

もし、自動化したい対象製品が、新しいOSバージョンにいち早く対応すべき製品である場合には、OSに対する対応スピードも選定基準となります。自動化ツールのサイト上に適応履歴ありますので、いつもどのくらいの期間で対応されているかを確認しておきましょう。

新しいOSバージョンにいち早く対応してくれるツールを探す場合、英語版がお勧めです。主に自動化ツールは英語版のツールを日本語対応したものが多いからです。日本語対応をするために時間を要します。英語版を使えば、その分の時期を早めることが可能となるわけです。

確かにログも英語で出力されるため、英語が不得意の方は最初戸惑うかもしれません。私も英語は苦手で、最初は戸惑いました。

しかし、出力されるログの種類はそれほど多くありません。そのため、初回はWebで翻訳しましたが、それを共有化することで、ログの和訳表を用意することができました。結果として、英語版であることは、問題とはならなくなりました。

他ツールとの連携ができるか

ツール選定の際は、他ツールとの連携が可能かもチェックしておきましょう。うまく他ツールと連携することができれば、より強力で広範囲に自動化を適用することが可能です。

例えば、継続的インテグレーション (CI) ツール、テスト管理 (TM) ツール、簡単なタスク スケジューリング ツールと連携できれば、自動テストが自動的に開始されるという大きなメリットを得られます。

単純にスケジューリングされたタスク (毎夜午前0時など) によって呼び出すことは一般的に実施可能ですが、自動テストの開始が特定のアクション (開発者からのソース コードのコミットなど)、定期的なビルド (夜間ビルドなど)、またはテスト自動化対象のテストケースによって呼び出しできるかどうかも重要なポイントと言えます。

ライセンス形態(有償ツールの場合)

ライセンス形態も確認しておきましょう。

1ライセンスでデスクトップアプリ、Webアプリ、モバイルアプリをすべて網羅できる場合もあれば、デスクトップアプリ、Webアプリ、モバイルアプリを個々で販売されているケースもありますので注意が必要です。

選定と並行して、必要ライセンス数での見積りを依頼することをおすすめします。

<自動化ツールの有償版によくあるライセンス形態>

・端末固定のライセンス
端末1台1台に対して、端末指定してライセンスを設定する方式。基本、他の端末では使用不可。

・フローティングライセンス(端末非固定のライセンス)
ソフトウェアの使用許諾(ライセンス)の方式の一種で、ライセンスのみをサーバーで管理し、サーバーに繋がったコンピューターなら、ライセンス数の範囲内で対象のソフトウェアを使用することができる方式。

ソフトウェア自体は何台でもインストール可能なので、同時に使用(起動)できるライセンス数分を購入して使用する。

私は、『端末固定のライセンス』ではなく、『フローティングライセンス』をお勧めしています。会社には人事異動があり、担当の配置換えも常です。

また、作業工程としてはテストケースを自動化に適したケースに設計しなおす作業等も含まれるため、常に自動化ツールを起動しているわけではありません。

そのため、編集可能なライセンスと、実行のみのライセンスを組み合わせて購入されることで、コストを大幅に削減することをお勧めします。

2.ツール選定で失敗しないための注意点

私は前職で、有償・無償の両方を対象に、日本語版の他に英語版も含めて、かなり細かく比較してツール選定しました。

もちろん、有償の場合は慎重になると思いますが、無償であったとしてもその後継続してメンテナンスを実施していかなければならないわけですから、無償なら何でも良いというわけにはいきません。

コストの観点から言えば、先にコストをかけるか、後からコストをかけるかの違いです。

miya_image1.PNG

図1:自動化ツールの有償と無償に対するコストの違い

無償ツールならコストをかけることなく始められますが、後々工数が嵩むことで費用対効果は低くなる可能性と、OSなどのバージョンアップに独自で改修対応していかなければならないリスクがあることも補足しておきます。

導入前に体験版を入手して製品との相性を確認する

自動化ツールを選定する際は導入前に体験版で試しましょう。

私の経験上、一般的に知られている高額な自動化ツールであっても、その自動化ツールが自社システムに一番適しているとは限らなかったからです。

体験版の使用期間には制限がありますが、私が試した際、自動化ツールの選定が不十分であったため、ツールベンダーと交渉し、複数回使用期間を延長させていただきました。

ツールを選ぶ際には、実際に体験版をインストールして自社製品との相性をじっくり操作してみてください。

「このツールは、とても使いやすく、自動化対象の製品にとって最適ツールである」と確信が持てるまで、検証することをおすすめします。

デモ環境を過信しない

デモ環境を過信しないこともツール選定時の注意点の一つです。

自動化ツールの紹介動画を観るだけ、自動化ツールのデモ用サイトで使用するだけでは、ツールの問題は把握できません。なぜなら、デモ環境でサクサク動くのは当たり前だからです。実際に、有名であっても(自分の環境では)全然使えないという結論に至ったツールがありました。

選定の際には、テストの自動化を導入したいテスト対象の製品で試すことがとても重要です。所有のPCにツールをインストールして、使用してみてください。思いもよらない発見があるはずです。ツールを購入・導入してから気づくのでは遅いので、事前に問題点を洗い出し、対策を立ててから導入しましょう。

複数のツールでなく最も適するツール1つを絞って導入する

ツール導入の際は、複数ではなく最も適している1つのツールに絞るようにしましょう。

「足りなくて困らないように」という理由から必要以上のライセンス数を購入することはお勧めしません。なぜなら、結局使わなくなってしまうという事態が起こり得るからです。

以前、以下の2種類のツール(以後、TツールおよびRツール)を購入したことがあります(図2)。

miya_image2.PNG

図2:購入した自動化ツール

本来なら、主力製品との相性が良く、画像比較の機能が勝っていたTツール一本で購入したいと思っていました。

しかし、以前の職場では英語のツールに対するネガティブなイメージがあったこと、Tツールの方が高額であったことが懸念となり、検討の結果Tツールに加え、少しでも価格が抑えられるRツールも同時購入する、という結論になりました。

用途としては、基本機能のテストはRツールで、機能に対する詳細テストはTツールで、と位置付けていたのですが、月日が経った数年後、Tツールしか使わなくなりました。

今思えば、目先の問題だけを見て決めてしまった、という反省は否めず、もっともっと議論すべきでした。

Tツール一本に移行していった主な理由は3つです。

1. 主力製品との検証に使える機能が勝っていたこと

理由:画像比較のマスク機能が本当に使いやすかったため

2. 開発言語が異なっていたこと

理由:2つの言語スキルを向上させることは困難だったため

3. Tツールの共通スクリプトが豊富になったこと

理由:主要製品の自動化促進によりTツールの使用頻度が高まったため

これらの理由により、Rツールは利用しなくなりました。幸い、ライセンス数を制限して購入していたため、大きな無駄とはなりませんでしたが、もっと先を見据えて議論していればこうした結果にはならなかったでしょう。

このような事態を避けるためにも、必要最低限のライセンス数で導入効果を出し、必要に応じてライセンス数を増やす、ということをお勧めいたします。

3.自動化ツールは「無償」 と 「有償」 どちらがいい?

自動化ツールには無償と有償の2種類があります。それぞれメリットとデメリットがあるため、それをきちんと把握しておく必要があります(図3)。

miya_image3.PNG

図3:自動化ツールの有償と無償にメリットとデメリット

無償ツールの特徴

無償ツールは代価を払わなくても使用できるツールです。導入のしやすさに利点があります。ただし、公式のサポートは受けられません。

初期投資としてのツール費用はかからないため、予算の検討や稟議申請など、社内的に手間のかかる手続きは一切なく、容易に導入することができます。

しかし、無償ツールの多くは、開発スキルが必要であるという懸念点があります。ある程度の実務経験があるプログラマーレベルの開発スキルが必要であるため、人材を確保しにくくなる可能性があります。

一般的に、ツールに搭載されている機能は有償ツールに比べて少なく、実装が容易ではないツールが多いです。そのため、開発経験が豊富なエンジニアが実装した場合には大きな問題になりませんが、開発経験が全くないテスターに自動化を担当させた場合には工数が嵩む傾向にあります。

また、開発経験が豊富なエンジニアが実装する場合においても、自動化に対する戦略を十分に立てないと費用対効果を得にくい傾向があります。特にデータ駆動系の実装や、マウス(ホイール、右クリック)系の操作が多い場合には、テクニックが必要であり、苦労を要します。

有償ツールの特徴

有償ツールは代価を払わないと使用できないツールです。

定期的なアップデートと、サポートも受けることができます。ツール費用は初期投資としてかかるだけでなく、年単位で更新料もかかります。(例:初期投資として1ライセンス数百万、次年度以降も更新料1ライセンス数十万も発生)

イニシャルフィーとランニングコストがかかることが大きな懸念点と言えます。しかし、それなりの金額を支払うだけあって、オブジェクト認識に優れ、GUIによる操作で自動操作を記録できるなど、開発スキルがなくても容易に実装可能なツールがあります。

OSなどのバージョンアップにも順次対応されるため、ツールに対するメンテナンス工数はかかりません。さらに、ツール利用に対するサポート体制も整っており、困難に陥った際に、問い合わせることも可能です。

これら、作成したスクリプトに対するメンテナンス性がとても優れているため、工数が嵩みにくく、よい費用対効果を得やすいことが利点と言えます。

「無償」「有償」のみでの判断はおすすめできない

このように、「有償」 と 「無償」のどちらが良いか悪いかは、一概には言えません。

例えば、仕様変更によりオブジェクトの順番が変わってしまったとします。有償ツールであれば、IDが付与されていなくてもオブジェクトを認識する機能が備わっていることが多く、大きな問題となりにくいのですが、無料ツールの場合、オブジェクトを認識できないケースや、すべてのオブジェクト認識を度々やり直ししなければならないケースが多く、手間がかかるイメージです。そのため、無償の自動化ツールに比べ有償の自動化ツールを導入した方がメンテナンスしやすいと言えます。順調にテスト自動化を導入できた場合、数年で費用対効果の逆転も可能です(図1)。しかしながら、図1のように無償の自動化ツールでも効果は得られますし、十分に機能を有しているツールも出てきています。

よって、有償だから無償だからといった理由で、単純に自動化ツールを選定することはお勧めできません。

コストの観点を抜きにした場合、次に自動化ツールの選定基準とすべきは、自社製品が売りとする機能を、自動化したいテストケースを、最も適切に容易に検証できるツールであるか否かです。

このように、検証したい製品によってはメジャーなツールではなく、特化した機能を有するツールを導入することでメンテナンス性が向上し、よい費用対効果を得られやすくなります。

まとめ

ツールを選定する上で、製品との相性がよいツールであることはもちろんですが、私はその中でも最終的に、マウスホイールや右クリックが認識でき、画像比較のマスク機能、データ駆動機能を備えたツールを導入しました。

英語版だったという点以外は、思い求めていた理想のツールと出会うことができたと思っています。

皆さんも本当に適しているツールを探し求めてみてください。最適なツールとの出会いがあることを願っています。

ツールを選定する際は、目先の費用に惑わされず、数年後まで試算して、本当に適しているツールを探していきましょう。

連載一覧

PR
ローコードテスト自動化ツール T-DASH

スクリーンショット 2023-05-31 170511.png

T-DASHはWebアプリケーションの動作確認・検証をコードを書かずカンタンに作成・実行できるテスト自動化ツールです。

初期設定からテストの実行まで、T-DASHのすべての機能でコードを書く必要はありません。そのため開発を担当していない非エンジニアの方でも手軽にご利用いただけます。

他のテストツールを導入している企業さま、まだ自動化ツールを試してみたことがない企業さまもこの機会にT-DASHにぜひ触れてみてください。

テスト技法・工程
x hatenabookmark

執筆: 宮北 裕子

バルテス株式会社 Webシステム品質事業部

医用システム開発会社にて、検証部門や品質管理部門の立ち上げや検証ルールの策定、テスト自動化の担当など多岐に渡るプロジェクトに13年間携わった後、バルテスに入社。バルテス入社後もテスト自動化に関与し、パフォーマンス検証や負荷検証を実施した実績がある。取得資格はJSTQB Advanced Level(テストアナリスト)など。JSTQB ALテスト自動化エンジニアの日本語翻訳WGメンバーでもある。