検索
連載

5分で分かるテスト自動化テスト自動化をざっくり解説

現在のソフトウェア開発に欠かせない「テスト自動化」について、およそ5分でざっくり解説します。

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

 近年、「テスト自動化」というキーワードを目にする機会が増えてきています。本稿では、テスト自動化の基本的な考え方と注意点について、5分で理解できるよう、ざっくりと解説していきます。

「テスト自動化」とはテストの何を自動化するのか

 そもそも、テスト自動化とは何をすることなのでしょうか。ソフトウェアテストは下図のプロセスから成り立ちます。


テストプロセスと自動化の範囲(JSTQB「テスト技術者資格制度 Foundation Level シラバス」を基に作成)

 各項目を簡単に解説します。

  • テスト計画:テストの目的とリソースに応じたアプローチを定義する
  • テスト分析:テスト対象を分析し、何をテストするのかを定める
  • テスト設計:テスト条件を具体化し、どうテストするのかを定める
  • テスト実装:テストデータやテスト環境、テストケースなどを作成する
  • テスト実行:テストを実施し、テスト結果や欠陥を記録する
  • テスト完了:テスト結果の考察や報告を行う
  • テストのモニタリングとコントロール:テストプロセスを円滑に進められるように管理する

 テスト自動化は、このテストプロセスのうち、「テスト実行」の一部を自動化することを指します。他のプロセスについても将来的には自動化が可能になるかもしれませんが、現状では「テスト自動化」という表現を用いる場合は「テスト実行の自動化」という意味であることが一般的です。

テスト自動化の種類とテスト自動化ツール

 テスト自動化には、その目的や適用箇所によって幾つかの種類があります。また、使用するツールもさまざまな種類があります。代表的なものを紹介します。

ユニットテスト

 テスト対象のソースコードに対してテストコードを作成し、それを実行することで自動的にテストを実施します。テスト対象のプログラムを直接実行できるため、特にホワイトボックステストの実行に向いています。使用するツールとしては、テスト用のフレームワークがプログラム言語ごとに提供されていることが一般的です。

APIテスト

 アプリケーションやモジュール間のインタフェースをテストします。主に結合テストの実行に使用します。具体的なツールとしてはWebアプリケーションのAPIに使用されるRESTやSOAPなどのプロトコルに従ってデータやパラメーターのやりとりを行うものなどがあります。

UIテスト

 ユーザーが実際に操作するように、画面の要素を操作するテストです。テキストボックスへの入力や、ボタン押下などの操作をシミュレートします。その名の通り、ユーザーインタフェース(UI)の確認の他、エンドツーテスト(E2Eテスト)と呼ばれる、システム全体をユーザーサイドから一通り操作するテストを行う際に必要となります。

 他にも、ソースコードの静的解析ツールや、性能テスト用の実行ツールなどをテスト自動化ツールに含む場合もあります。

テスト自動化のメリットとデメリット

 テスト自動化を行うことのメリットは、以下のようなものがあります。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る