COLUMN
コラム
Column 09

テスト自動化ツールのすすめ

テストの自動化とは、テスト支援ツールを使うことにより、ソフトウェアテストを行うための作業(テストケースの設計、テストの実行と結果の確認、テストの進捗管理、レポートの作成)またはその一部を自動化することを言います。

1. テスト自動化ツールのメリット

テスト自動化ツールを利用することは、ソフトウェアの品質管理の課題の解決につながります。
さらにテスト自動化により、作業工程が減ることでコストの削減や効率的な業務が可能になります。

開発プロセスと言えば、以前はウォーターフォール型が主流でした。ウォーターフォール型は、要件定義から始まり、設計、プログラミング、テストと段階的にプロジェクトを進めていきます。
しかし、現在はアジャイル開発という短い期間で開発プロセスを繰り返す手法が普及してきています。アジャイル開発では何度もテストを実施する必要があるため、テストの自動化が注目されています。

何を自動化するのかを比較検討することで効果的なテスト設計も可能です。ここではテスト自動化ツール導入のメリットをお伝えします。

① 品質向上に役立つ

手動で行っていたテストを自動化することで、手動と比較するとテスト工数が大幅に減り、作業時間の短縮につながります。
さらに自動化によって、テスト自体の品質を向上させるための時間ができます。エンジニアが開発を行うための創造的な時間が増えることも大きなメリットです。

エンジニアは手動でテストしていたときと比較すると、時間に余裕を持ちながら開発作業に取り組むことが可能になります。

  • 入力データをパラメータ化し、外部データソースから流し込むことにより、テストシナリオでさまざまな入力値や画面遷移のテストが行え、テストの工数を削減できる
  • レポートも自動化でき、レポート作成工数も削減できる
  • テスト漏れやミスが防止され、テストの妥当性が向上する

② 問題点の早期発見が可能

テスト自動化ツールの利用によって、手動と比較してより早くテストのバグや問題点を発見することが可能です。

開発工程の後半でバグが見つかると、かなりの修正コストがかかります。
後の工程でバグが見つかるまでに、大部分の機能が開発されているため、バグを修正するのに多くの作業の手戻りが発生する場合があります。

これはよくあるケースですが、理想的な開発サイクルのフローではありません。
バグは、要件、設計、あるいは開発段階で埋め込まれています。一部の機能が開発され、テストのためにQAにプッシュされます。テスターはバグを見つけて、そのバグをバグ管理システムなどに登録します。開発者はバグチケットを受け取り、バグを修正してQAにプッシュバックします。
最後に、テスターはバグが修正されたことを確認するために再テストをおこない、関連する他のモジュールに影響がなかったことを確認するために探索的テストもおこないます。これはかなりの時間・労力がかかるプロセスであり、チームの生産性を低下させる悪循環に陥っています。

このサイクルを断ち切るには、テスト自動化を使用して開発プロセスの早い段階でバグを検出する必要があります。新しい変更がQAにプッシュされる前後に、自動化された単体テストと統合テストを実施して、新しい機能が既存の機能に影響を及ぼさないことを確認する必要があります。バグを見つけるために積極的なアプローチをおこないます。

その他、機能追加による不具合が起こりにくいのもテスト自動化ツールの導入によるメリットです。

③ コストの削減

手動で行う手間が省けることにより、人手に頼らず作業が行えます。業務の効率化によって、結果的に人件費を減らすことにもつながるので、テストの削減を目指せます。

  • 前回のテストシナリオやテストケース、テストデータを利用して、テストを実施でき、さらに、前回のテスト結果との比較も容易になり、回帰テストの工数を大幅に削減できる
  • テストの実行からレポート生成までを自動化することにより、テスト実行の工数を削減できる
  • テスト自動化によって生まれた時間を使って、妥当性の高いテストシナリオやテストパラメータを準備できる

④ ヒューマンエラーを防げる

人による作業はミスが付き物ですが、テスト自動化ツールの利用により、人為的エラーを防ぐことが可能になります。

手動テストと比較すると、正確で迅速なテストの実行ができるため、テスト自動化ツールの導入により効率的なテストが可能になります。

  • 同一形式のテストレポートが出力され、担当者によるテストのばらつきを確認できる
  • テストシナリオやテスト用データソースを担当者間で共有することにより、テストのばらつきを防止できる
  • テスト漏れやミスが防止され、テストの妥当性が向上する

2. 2021年のテスト自動化ツール ベスト3

① Robot Framework

Pythonベースの結合/総合テスト自動化、RPA化などができるフレームワークです。
Robot Frameworkは拡張可能で、他のツールと組み合わせて柔軟にテストの自動化などに使うことができます。拡張機能を追加することでSeleniumなどにも対応していてブラウザの操作もできます。
また、使用するライブラリも自作可能でPython、javaでの作成が可能です。

実行後は動作結果を htmlで返してくれる賢いフレームワークです。
これを使えば、年末進行の無茶なスケジュールでもテスト消化をこなしてくれます。

② Katalon Studio

導入コストが比較的低いため、導入しやすい特徴のあるKatalon Studioは、わかりやすいと評価されています。
初心者でも簡単に大量にテスト自動化の処理ができるのがメリットです。
UIテストの自動化がGUIで簡単に行える部分も利用者から好評です。

テストコードは自動生成が可能なので、テストシナリオの作成を簡略化することができます。比較的コストをかけずに導入できる部分も高評価を得ています。

③ Apache Jmeter

JavaアプリケーションのApache Jmeterは、クライアントサーバシステムのパフォーマンス測定と負荷テスト、および機能テストを行うことが可能なテスト自動化ツールです。
他のツールと比較して、機能の数が多く、汎用性が高いのが特徴です。

Webアプリケーション、Webサーバの性能測定に利用されることが多いです。

3. まとめ

テスト自動化ツールの効果的な導入を成功させるポイントは、豊富な知識、技術と経験を持つことにあります。
理解をしないまま導入しても、効果が得られないことを理解しておきましょう。

効率化やコスト削減を目指すなら、最適なテスト自動化ツールを選択する必要があるため、導入前には製品同士をしっかり比較して導入しましょう。

関連資料・関連リンク

ページトップへ戻る