記事の目次 4項目 · 6分で読めます
自動テスト(オートメーションテスト)はソフトウェアテストの一分野であり、プログラムやソースコードを検証するうえで欠かせない右腕のような存在だといえます。手動テスト(マニュアルテスト)と比べて効率を高め、所要時間や不具合、さらには単調な作業による退屈さまで減らしてくれる重要な役割を担っています。それでは、自動テストとは具体的に何を指し、プロジェクトで自動テストを担当するテスターにはどのようなスキルが求められるのでしょうか。本記事では、この問いに順を追って答えていきます。
自動テスト(オートメーションテスト)とは

テストを自動で実行するには、オートメーションテストツールと呼ばれるテスト用ツールを使います。次に、ツールごとの仕様に合わせてスクリプト(コード)を書き、テストケースごとの入力値を与えます。すると自動テストツールがプログラムを実行してテストを行い、テストケースごとにPASS/FAILという結果を出力してくれます。
現在よく知られている自動テストツールには、次のようなものがあります。
- Selenium:完全無償のオープンソースソフトウェアで、MacOS、Windows、Linuxなど複数のプラットフォーム上のブラウザに対応し、Webアプリケーションのテストに利用できます。Java、JavaScript、Pythonなど、さまざまなプログラミング言語でスクリプトを記述できる点も特長です。
- Appium:モバイルアプリケーション向けのオープンソース自動テストツールで、Java、Python、C#といった主要なプログラミング言語に対応しています。AndroidおよびiOS上で動作するアプリケーションを、エミュレーターと実機の両方でテストできます。
- Cypress:WebアプリケーションのUIを検証するツールで、Windows、Linux、macOSで動作します。エンドツーエンドテスト、結合テスト、単体テストなど、さまざまな種類のテストを実行できます。
- Postman:API、とりわけREST APIを操作できるツールとして広く知られています。加えて、APIテストの際に使われる自動化ツールでもあり、主要なCI/CDツールとの連携も可能です。
- Apache JMeter:性能テストを自動で行うための著名なオープンソースツールで、主にWebアプリケーションを対象としています。
自動テストの実施プロセス

プロジェクトの実施過程で自動テストを採用するかどうかは、主にそのプロジェクトの性質や特性、そしてプロジェクトチームのメンバーがどこまで対応できるかによって決まります。自動テストでは、テスターが自動テストツール向けのコードやスクリプトを書くスキルを備えている必要があります。
プロジェクトで自動テストを採用すると決めた後は、自動テストのプロセスを確実に回すために、次のステップへ進みます。
1. テストツールの選定
自動テストは特定のテストツール(ソフトウェア)によって実行されます。ツールごとに特性が異なり、対象となるアプリケーションも変わってきます。そのため、ツールを選ぶ際は次の点を検討するとよいでしょう。
ツールが対応している言語:Java、JavaScript、Pythonなど。
ツールが対応しているテストの種類:結合テスト、単体テスト、システムテストなど。
ツールが動作するプラットフォーム:Web、デスクトップアプリ、モバイルアプリなど。
ツールのレポート機能や出力データが、プロジェクトの要件を満たせるかどうか。
2. 自動テストの適用範囲の決定
自動テストは、次のような特徴を持つ課題に適しています。
- テスト対象となるデータ量が大きい
- 複数の画面や機能でテストケースを再利用できる可能性が高い
- 手動テストでは実施が難しいほどテスト要件が複雑である。たとえば、同一時点での大量アクセスを求められるケースなど
- 結果を検証するロジックの実現可能性。たとえば、アプリケーションのUXを判定する用途に自動テストを使うのは非常に困難です
これらの特徴を踏まえることで、自社のプロジェクトにおいて自動テストを適用すべき範囲を見極められるようになります。
3. テストケース設計と実行スクリプト(コード)作成の計画
この段階では、具体的なテストケースをもとに、それを対応するテストツール向けのソースコードやスクリプトへと落とし込んでいきます。アプリケーションを開発するプログラミング作業とよく似た工程です。自動テストのソースコード開発は、後続のプロジェクトや機能、画面で再利用できる自動テストスイートへと発展させることもできます。
4. 自動テストの実行
5. 更新と保守
前述のとおり、自動テストケースの集合はそれぞれが一つの小さなプロジェクトとみなせます。これを最適化し、効率よく再利用していくには、テストチームがソフトウェアやアプリケーションのニーズと変更に合わせて、継続的に更新・修正・保守を行う必要があります。
自動テストを担当するテスターに必要なスキルとは
現在テスターとして働いていて、オートメーションテスターを目指したいという方は、まずテストに関する知識、テストの種類、テスト技法をしっかり身につけることから始めてください。自動テストのどの技術も、テストの基礎知識の上に成り立っています。ですから自動テストは独立した別のキャリアパスというより、自分の職能を広げ、伸ばすための道具だと捉えるとよいでしょう。
オートメーションテスターとしては、さらに次のような知識を備えておく必要があります。
- オブジェクト認識の原理:HTMLやXPathを通じて、アプリケーション上で操作したい要素を正しく特定し取得する方法
- 自動テストツールの選択:ツールごとに記述方法は異なりますが、動作原理はおおむね共通しています。まずはコミュニティの支援が手厚いSeleniumのような定番ツールから始めるのがおすすめです
- 自動テストのソースコードを書くためのプログラミング言語を一つ、しっかり使いこなせること
- コーディング、デバッグのスキル、およびIDEの使い方
- 自動テストに関する新しい知識、技術、ツールを日頃から学び、常にアップデートしていくこと
まとめ
自動テストはソフトウェアテストの一領域であり、着実に広がりを見せ、プロジェクト開発のなかで果たす役割もますます大きくなっています。オートメーションテスターを目指すことは、キャリアにとって有力な選択肢の一つとなるはずです。本記事が、自動テストとは何か、そして自動テストを担うためにどのようなスキルを身につけるべきかを理解する助けとなれば幸いです。最後までお読みいただきありがとうございました。次回の記事でもお会いできることを楽しみにしています。