近年、「テスト自動化」というキーワードを目にする機会が増えてきています。本稿では、テスト自動化の基本的な考え方と注意点について、5分で理解できるよう、ざっくりと解説していきます。
「テスト自動化」とはテストの何を自動化するのか
そもそも、テスト自動化とは何をすることなのでしょうか。ソフトウェアテストは下図のプロセスから成り立ちます。
各項目を簡単に解説します。
- テスト計画:テストの目的とリソースに応じたアプローチを定義する
- テスト分析:テスト対象を分析し、何をテストするのかを定める
- テスト設計:テスト条件を具体化し、どうテストするのかを定める
- テスト実装:テストデータやテスト環境、テストケースなどを作成する
- テスト実行:テストを実施し、テスト結果や欠陥を記録する
- テスト完了:テスト結果の考察や報告を行う
- テストのモニタリングとコントロール:テストプロセスを円滑に進められるように管理する
テスト自動化は、このテストプロセスのうち、「テスト実行」の一部を自動化することを指します。他のプロセスについても将来的には自動化が可能になるかもしれませんが、現状では「テスト自動化」という表現を用いる場合は「テスト実行の自動化」という意味であることが一般的です。
テスト自動化の種類とテスト自動化ツール
テスト自動化には、その目的や適用箇所によって幾つかの種類があります。また、使用するツールもさまざまな種類があります。代表的なものを紹介します。
ユニットテスト
テスト対象のソースコードに対してテストコードを作成し、それを実行することで自動的にテストを実施します。テスト対象のプログラムを直接実行できるため、特にホワイトボックステストの実行に向いています。使用するツールとしては、テスト用のフレームワークがプログラム言語ごとに提供されていることが一般的です。
APIテスト
アプリケーションやモジュール間のインタフェースをテストします。主に結合テストの実行に使用します。具体的なツールとしてはWebアプリケーションのAPIに使用されるRESTやSOAPなどのプロトコルに従ってデータやパラメーターのやりとりを行うものなどがあります。
UIテスト
ユーザーが実際に操作するように、画面の要素を操作するテストです。テキストボックスへの入力や、ボタン押下などの操作をシミュレートします。その名の通り、ユーザーインタフェース(UI)の確認の他、エンドツーテスト(E2Eテスト)と呼ばれる、システム全体をユーザーサイドから一通り操作するテストを行う際に必要となります。
他にも、ソースコードの静的解析ツールや、性能テスト用の実行ツールなどをテスト自動化ツールに含む場合もあります。
テスト自動化のメリットとデメリット
テスト自動化を行うことのメリットは、以下のようなものがあります。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- アジャイルで開発したシステムをいざテスト→全然使えない! を防ぐ、テストの考え方総まとめ
少人数、短期間の開発を繰り返すアジャイル開発では、どのようにすれば品質を保つことができるのだろうか。本連載では、アジャイル開発における品質管理の手法を解説する。第5回は、システム全体の品質を担保しつつ、想定したリリース時期を守るためのポイントについて。 - UIを変更するとテスト内容を自動調整、Webアプリ向けツールをDatadogが提供開始
DatadogはWebアプリケーションのテスト自動化ツール「Datadog Browser Tests」を提供開始する。Webサイトを変更した場合でも、機械学習によってWebサイトの要素を再認識し、テストを自己調整できることが特徴。 - 2022年、開発プロジェクトの4割がAIをチームメンバーに加え、AIを活用したテスト自動化ツールを使う――Gartner
「AIは開発者のコード生成をどう変えるのか」「AIベースのツールは開発チームのテストをどう変えるのか」。Gartner バイスプレジデント アナリストのマーク・ドライバー氏が行った講演の内容をダイジェストでお届けする。