【てすとじどうか】
テスト自動化 とは?
最終更新:
💡 繰り返す確認をプログラムに任せる
テストの準備・実行・結果の比較や報告などを、ツールやプログラムで自動化する取り組み。繰り返す確認を効率化できるが、テストの設計や保守、結果の判断も必要になる。
📌 このページのポイント
- テストの実行だけでなく、期待結果との比較や報告も自動化できる
- 繰り返し回数やリスク、保守の手間から対象を選ぶ
- CIで変更時や定期的に実行し、結果を開発へ戻す
- 自動テストの成功だけで、すべての不具合がないとはいえない
テストのボタンを自動で押すだけ?
それも一例だけど、APIへリクエストを送る、計算結果を期待値と比べる、結果を記録するなども含むよ。たとえば合計金額の計算を、決めた入力と期待値で繰り返し確認できるんだ。
全部自動にすればいいの?
自動で判定できる確認と、人が新しい疑問を試す探索や使い勝手の確認を組み合わせよう。繰り返す回帰テストなどから、重要性と維持する手間に合う対象を選ぶんだ。自動化した範囲だけで品質全体を保証することはできないよ。
CIに入れたら何が変わるの?
コードの変更や定期実行をきっかけにテストを動かし、早く結果を知れるよ。時間が短い確認を変更時、長い確認を夜間に回すなど、目的に合わせて配置する。失敗したら製品・テスト・環境のどこに原因があるか調べよう。
Flaky Testって何?
同じ変更を確かめるテストが、成功したり失敗したりすることだよ。テスト間のデータ共有や、画面の準備を待たずに操作することなどが原因になる。環境も調べ、テストを独立させたり、状態に合わせて待ったりするんだ。再実行で通っただけでは原因解決にならないよ。
導入すれば必ず得になる?
作成・実行環境・保守に費用がかかるので、保証はないよ。繰り返しに使う時間がどれだけ減ったか、結果が早く得られるか、維持にどれだけかかるかを小さく試して見積もろう。リリース頻度だけでは投資回収を断定できないんだ。
まとめ:ざっくりこれだけ覚えればOK!
「テスト自動化」って出てきたら「繰り返すテスト作業をプログラムに任せること」と思えばだいたいOK!
📖 おまけ:英語の意味
「Test Automation」 = テスト自動化
💬 automationは自動化という意味。実行・比較・報告などのテスト作業を、ツールに任せることを表すよ。