手動テストと自動テストの特徴とそれぞれのメリットとは?ソフトウェアテスト実行アプローチについても解説
目次[非表示]
ソフトウェア開発のライフサイクルにおいてテスト実行が必要であることは言うまでもありませんが、テスト実行のアプローチとしては、
- マニュアルテスト(手動テスト)
- オートメーションテスト(自動テスト)
が存在します。世の中の潮流としては自動テストを活用する現場が増えていますが、本記事ではその背景を整理するとともに成功のための秘訣をまとめます。
▼ソフトウェアテストは、こちらを参考にしてみてください。
→ソフトウェアテストとは?第三者検証との違い、種類や目的、7原則を解説
手動テストの特徴
手動テストとは、人が実際にシステムを操作して期待通りの挙動が得られるかを確認するテストを指します。
本来、様々なテスト条件や入力パターンを網羅して実施することが理想的ですが、テストの量が増えれば増えるほど多大な工数(=費用)を要すため、網羅を期待したテストには向きません。 しかし、人はテストケースには書かれていない「システムの微妙な違和感」などにも気付くといった優れた面も持っています。
手動テストにおいて完全に手順化されたチェック作業は自動に置き換えることは可能ですが、妥当性の判断や違和感の検知などは人にしかできないという点は忘れてはいけません。
自動テストの特徴
一方で自動テストは、テストケースに書かれたことしかテストできませんが、一度実装をしてしまえば、実行自体には人手をかけずに何度も繰り返すことが可能となります。
また、テストのデータバリエーションをカバーすることにも向いており、例えばECサイトであれば「ログインして商品をカートに入れて購入する」というテストを作成しておけば、同じロジックを利用して「あらゆる会員種別」「あらゆる商品種別」でテストができるわけです。
また、多ブラウザ環境でのテストなども容易に行えます。
近年テスト自動化を導入する現場が増えている背景としては、以下のことがあげられるでしょう。
・リリースサイクルが短くなり、高頻度でリグレッションテストを必要とするケースが増えている
・ユーザーのプラットフォーム環境が多様化しており、同じテストを複数環境で実施するニーズが増えている
自動テストのROIとは
ROI:投資収益率グラフ
ただし、テスト自動化には間違った期待を持たれやすく失敗事例が多いのも実情です。
最も多いのがコストを見誤ることです。極端な例だと、テスト自動化によって「実装費用だけ捻出できれば、その他お金がかからない。」と考えてしまうケースがあるようですが、実際にはそれ以外にも、以下のような費用も考慮に入れる必要があります。
- ハードウェアとソフトウェアの費用
- 自動化ツールのライセンス料
- 環境サービス料
- スクリプトエキスパートの採用料
- ツールの育成費用
つまり、テスト自動化導入は投資としての側面もあるので、どこでどう回収するかの事前の戦略が必要です。
ここでROIと呼ばれる投資収益率グラフ(上図)を見てみましょう。
手動テストとコスト比較してみると、導入初期のイニシャルコストの点から見ると、自動テストの方が高いことがわかります。しかし、プロジェクトがメンテナンスフェーズに入ると次第に減少していきます。
ソフトウェアの新しいバージョンまたはシステムの更新をする際、スクリプトを何度も繰り返し使用することで将来のコスト削減につながります。
つまり、テスト自動化を導入するか検討する際には、自動テストコードを何回利用できるか、など将来の見通しも立てた上で、初期投資を回収できるかなどのシミュレーションが必要になるわけです。
自動テストのメリット① ―テストカバレッジの拡大
IE、Chrome、Firefox、Safariなどのすべてのインターネットブラウザをサポートするソフトウェアをテストするのは短時間では困難。
更に、コスト比較だけでは測れない大きな効果があります。それは、「手動では実施しきれなかったテストを実現すること(テストカバレッジを拡大すること)」です。
例えばプロジェクトで、IE、Chrome、Firefox、Safariなどのすべてのインターネットブラウザをサポートするソフトウェアをテストする必要があるとします。
ご自身がそのプロジェクトのソフトウェアテスターだと想像してください。
締め切りが近づいていますが、頑張っても、作業が終えられそうにない・・・。
自動化されたソフトウェアテストは、テストの範囲を拡大して、ソフトウェアの品質を向上させるのに役立ちます。 複数のコンピューターで、異なる構成と数千のデータセットを同時に実行できます。
アプリケーションの内部をさらに詳しく調べ、メモリの情報、データテーブル、内部プログラムの状態を確認し、製品が期待どおりに動作しているかどうかを判断することも可能です。
自動テストのメリット② ―手動テストではできないことを自動化する。
前述の例は「時間が無限にあれば出来たテスト」の例ですが、その他に「そもそも人間ではテストできない」という特性のテストを自動テストで実現することもあります。
例えば、人によって数千のユーザーで同時に24時間365日、制御されたアプリケーションテストを実現することは不可能ですよね。
自動化されたテストでは、24時間休みなくネットワーク、ソフトウェア、およびWebアプリケーションとやり取りする無制限の数の仮想ユーザーをシミュレートして、パフォーマンステスト、ストレステスト、セキュリティテストを実行し、高い要求に応じてソフトウェアの信頼性を確認する事ができます。
本記事参考文献:
https://smartbear.com/solutions/automated-testing/
https://blog.codeship.com/5-reasons-for-automated-testing/https://www.oracle.com/technetwork/cn/articles/when-to-automate-testing-1-130330.pdf
まとめ
テスト実行には大きく「手動テスト」と「自動テスト」のアプローチがあることを述べました。
それぞれにメリットがありますので一概にどちらが良いかを評価するものではありません。
目的に応じて適切なものを選び、多くの場合は一つのプロジェクトの中で組み合わせて実行することが望ましいでしょう。
自動テストは、現在のシステム開発環境に非常に適した特徴を持っており、もし導入をされていない場合は一考の価値がありますが、自動テストの特徴や狙い所などを正しく理解して用いることが肝要です。
目的を定め戦略をもって進めていくことで、効果を最大化することができるでしょう。
―――――――――――――――――――――――――――――――――――――――
コウェルでは2007年の創立以来、多くのオフショア開発における品質保証支援を行ってきました。
これまでに様々なオフショア開発での品質課題を解決するなかで蓄積したノウハウや方法論をベースに、オフショア開発に加えソフトウェアテストのご支援もさせていただいております。
特にオフショア開発における品質面においてお悩みや課題を抱えられている方は、ぜひ一度コウェルにご相談ください。
なお、コウェルに関する詳細資料は以下でダウンロードすることが可能ですので、何かございましたらお気軽にお問い合わせください。
このほか、弊社の具体的なサービスや導入事例については以下をご覧ください。
コウェルのソフトウェアテストサービスメニュー>>>
コウェルは、日本とベトナムから世界中のお客さまへ高品質なソフトウェアテスト・品質保証・オフショア開発サービスを提供しています。
コウェルの導入事例>>>
コウェルは情報通信、金融、流通・小売サービス、医療・ヘルスケアなど、さまざまな業界のお客様の導入を支援しています。