検索
連載

テスト自動化で「失敗しない」ために、何がいる? 必要なツールと手順をおさらい一から分かる! テスト自動化(2)

テスト自動化に取り組みたいけれどノウハウがない、過去に導入していたがうまくいかなくてやめた人に向けて、テスト自動化の「あるある」な失敗事例とともにどうすればうまく取り入れられるのかを解説する本連載。第2回は自動化ツールの種類やテスト自動化に必要な手順について。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

 今回は、テスト自動化の導入について、ツールの種別や必要な手順を解説していきます。

 まず、はじめに押さえておくベき、最も大切なことは「テストの全てをいきなり自動化しない」ということです。テスト自動化ツールにはさまざまな種類があり、それぞれのツールに得意、不得意があります。また、テストにもさまざまな種類があり、ある1つのツールで全てのテストが自動化できるわけではありません。

 テスト自動化を導入する場合は、テスト自動化に向いている領域から始めていくことがポイントです。成果の上げやすいところから徐々に自動化を進めていき、自動化の領域を広げていく、というのがよい戦略といえるでしょう。

テスト自動化ツールの種別

 テスト自動化ツールには以下のようなものがあります。


テスト自動化ツールの種別

UIテストツール

 UIテストツールは、人間が操作するように実際にUI(ユーザーインタフェース)を操作してテストを実施します。Webシステムであればブラウザを自動操作し、その他のアプリケーションでも、実際の画面を操作するような仕組みとなります。具体的なツールとしては、「Selenium」や「Ranorex」また、弊社が提供している「T-DASH」などがあります。

APIテストツール

 次に紹介するユニットテストツールと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.

ページトップに戻る