テスト自動化に取り組みたいけれどノウハウがない、過去に導入していたがうまくいかなくてやめた人に向けて、テスト自動化の「あるある」な失敗事例とともにどうすればうまく取り入れられるのかを解説する本連載。第2回は自動化ツールの種類やテスト自動化に必要な手順について。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
今回は、テスト自動化の導入について、ツールの種別や必要な手順を解説していきます。
まず、はじめに押さえておくベき、最も大切なことは「テストの全てをいきなり自動化しない」ということです。テスト自動化ツールにはさまざまな種類があり、それぞれのツールに得意、不得意があります。また、テストにもさまざまな種類があり、ある1つのツールで全てのテストが自動化できるわけではありません。
テスト自動化を導入する場合は、テスト自動化に向いている領域から始めていくことがポイントです。成果の上げやすいところから徐々に自動化を進めていき、自動化の領域を広げていく、というのがよい戦略といえるでしょう。
テスト自動化ツールには以下のようなものがあります。
UIテストツールは、人間が操作するように実際にUI(ユーザーインタフェース)を操作してテストを実施します。Webシステムであればブラウザを自動操作し、その他のアプリケーションでも、実際の画面を操作するような仕組みとなります。具体的なツールとしては、「Selenium」や「Ranorex」また、弊社が提供している「T-DASH」などがあります。
次に紹介するユニットテストツールとUIテストツールの中間に位置するといえるのが、APIテストツールです。主にUIの裏側に位置するAPIと呼ばれるインタフェース部分のテストに使用します。Webアプリケーションを例に説明すると、Webブラウザ上でユーザーが操作した内容は、APIのコマンドとしてネットワーク上で送受信されます。そのAPI部分を直接操作し、入出力の妥当性を評価するためのツールがAPIツールです。APIツールには「Swagger」や「POSTMAN」などがあります。
ソースコード単位でテストを実行する際に使用します。ユニットテストで使用されますが、TDD(テスト駆動開発)をする際に使用することもあります。ソースコードのメソッドなどを直接呼び出し、戻り値などを検証します。具体的なツールとしては、「xUnit」と呼ばれるツール類があります。xの部分はプログラム言語によって変わり、Java用の「JUnit」、.NET Framework用の「NUnit」などがあります。
非機能特性とも呼ばれる、システムの性能を検証する際に使われるツールです。例えば、システムへのアクセスが想定を超えても問題なく動作するかどうかといった点や、負荷が集中した際のスループットやレスポンスタイムが問題ないかを計測するために使用します。具体的なツールとしては、「Apache JMeter」などが有名です。
厳密な意味でのテスト自動実行ツールではありませんが、同様に使用されることも多く、また非常に有用であるため、こちらでも紹介します。
静的解析ツールとは、ソースコードの記述内容を解析し、問題のあるコードなどをチェックするものです。プログラムを動作させずにチェックするため「静的」解析と呼ばれています。例えば変数の型変換など、コンパイラでは問題がなくとも潜在的にバグが発生しやすい記述などを洗い出すことができます。また、ソースコードの記述フォーマットなどのコーディング規約のチェックツールもこれに含まれます。具体的なツールとしては、「SonarQube」や「PGRelief」などがあります。
このように、テスト自動化ツールにはさまざまな種類があります。その全てを一度に導入するというのは現実的ではないでしょう。しかも、単独のツールを導入する場合であっても簡単というわけではありません。ここからは自動化導入に当たっての進め方や注意点を見ていきましょう。
導入部分でも書いた通り、全てのテストをいきなり自動化しようとすると、多くの場合は破綻につながってしまいます。ここでは2つの事例を紹介していきます。
まずは、自動化に向いていない部分のテストを自動化しようとして、途中で破綻してしまうというケースです。
例えば、新しい技術を使用してシステムを構築している場合、テスト自動化ツールからシステムへの連携がうまくいかないことや、場合によってはデータ連携ができないといったことが発生します。
Copyright © ITmedia, Inc. All Rights Reserved.