アプリケーションの品質向上には欠かせないテスト。人手も時間もかかるテストを自動化する取り組みは従来から行われてきており、現在ではさまざまなツールが登場しています。しかし、導入に失敗したという声が多く聞かれるのも事実。なぜ導入がうまくいかないのでしょうか。
まず現状ではテスト自動化ツールにどのような種類があるのかを確認しておきましょう。
テスト自動化ツールは大きく分けて「レコード/オブジェクト取り込み型」と「スクリプト型」があります。それぞれの特徴は次の通りです。
ブラウザ操作を記録してスクリプトを生成します。期待値画像との一致判定により、テスト結果を自動判定します。テストケースの作成はシンプルで簡単ですが、スクリプト記述や条件判断などの自由度が低いというデメリットがあります。
操作について担当者がコーディングしてスクリプトを作ります。無償のツール(オープンソフトウェア)も多いため気軽に使えるだけでなく自由度は高いのが特徴です。反面、開発言語を理解する必要があるため、技術者を育成する必要があります。
その他にも、クラウド経由で500機種以上の実機操作のテストが行えるサービスや、スクリプト型ツールで実施する要素取得をAIで行い、メンテナンスコストを削減するサービスもあります。また、AWS Lambdaのようなサーバーレスの仕組みと組み合わせてテスト実行を並列で実行し、テスト工数を7割削減できた例もあります。
クラウドでAIや実機レスのテスト、並列処理等を活用して効率化する時代になったと言えるでしょう。
テスト自動化ツールを導入すると、次のような効果が期待できます。
自動化の最終的なゴールは、テスト実施コストの極小化と省人化です。テスト自動化ツールを導入すると、テストプログラムを作る工数はかかりますが、テスト実施の工数が削減できます。一般にバージョンアップの頻度が高いアプリケーションの場合は効果が高くなります。
テスト品質がテスト担当者の能力に依存してしまうと、テストの質を均一化することができません。テスト自動化ツールであればいつでも同じテストが実施でき、人間が犯しやすいテストのし忘れや操作ミスも回避できます。
アプリケーションを変更した場合、プログラムの一部分を変更したことで、ほかの箇所に不具合が出ていないかを確認するためのテスト(リグレッションテスト)を行いますが、影響範囲の特定を見誤ることがあります。自動化すれば、プログラムの修正によるデグレードを最小限に抑えることができます。
自動で実行されるため、人手でテストを実施するよりも、単位時間当たりのテスト実施数が増加します。継続的に自動化することでリリースまでのリードタイムを短縮できます。
テスト自動化へのニーズは、10年ほど前から変わらず高いままです。しかしテスト自動化ツールの効果に期待して導入しても、失敗するケースが多いのが実情です。失敗する理由には次のようなことが考えられます。
当社には自動化ツールのご相談が数多く寄せられますが、自動化ツールにより、まるで魔法のようにテストが自動化されると期待されている方も少なくありません。どんな効果を期待しているのか、そしてそのためにどんな作業・コストが必要なのかを予め明確にする必要があります。
大規模なシステムの場合、広い範囲でスクリプト作成をするのは膨大な時間がかかります。またアプリケーションを変更するたびにスクリプトを変更しなければならないため、メンテナンスの工数もかかります。
既存の手順書は、テスト担当者にはわかりやすくても自動化するプログラムが判定しやすい内容になっているとは限らないため、手順書の内容をそのままプログラムに置き換えることができないことが多く、テストプログラムを作成する際に時間がかかることもあります。
「すすめられてツールを導入してはみたものの、システムと合わず自動化できなかった」といった声を聴くこともあります。アプリケーションの特性やプラットフォームに合っているツールでないと、操作の実現が困難になり、調査工数・実現工数がかかりすぎて逆に非効率となってしまいます。
テスト自動化ツール導入に成功するには、3つのポイントがあります。
目的が漠然としたコスト削減や効率化になっていませんか?従来のテストにどんな課題があるかを具体的に洗い出し、そのギャップをテスト自動化ツールが埋めることができるのかを検証する必要があります。
ツールを導入しただけで全部自動化されるわけではなく、必ず制約が発生します。例外処理や障害対応系のような非機能テストは対象外となりますし、自動化はできるものの効果が低い領域もあるかもしれません。
そのためまずは「変更が多く発生する(=繰り返しテストする)部分に絞って自動化し、自動化の適用可否を判断しながら継続的に自動化率を向上させていくことをおすすめしています。最初から高い自動化率を達成するのは大変ですが、自動化率が少しずつ向上するとテストチームの負担が減るのが実感できるため、スムーズに進めることができます。
自動化ツールはそれぞれ得意となる領域が異なるため、実施したいテストとのギャップが発生する場合があります。選定の際には各ツールについて豊富な導入実績がある第三者の意見を聞くことをおすすめしています。
テスト自動化を最適化するには、第三者検証専門会社に相談するのもひとつの方法です。第三者の立場からツールの選定、自動化適用部分の選出、スクリプト作成時の技術解決などを支援し、運用・効果測定を通じてメンテナンスをフォローします。
テスト自動化はツール選定や自動化適用部分の選出、スクリプト作成等、初期段階に高いハードルがあります。ヴェスのテスト自動化サービスでは、「ツールの選定」「サンプルスクリプトの作成」「導入プランの構築」「テスト自動化の運用と効果測定」という4つのステップで支援します。4つのステップを通じてテストチームが自律しツールの導入を進め、継続的にメンテナンスができるようにサポートします。
多数のプラットフォームで多数の案件実績がありますので、ぜひ一度ご相談ください。