JSTQB Advanced Level テスト自動化エンジニア (TAE) シラバス 要約
JSTQB Advanced Level テスト自動化エンジニア (Test Automation Engineer: TAE) のシラバス要約です。
自動テストを単なるスクリプトではなく、「ソフトウェアシステム (TAS)」 として設計・運用するための知識体系です。
- 目的: 効率化だけでなく、信頼性の向上、カバレッジの拡大、手動テストでは不可能なテスト(並列実行など)の実現。
- 成功要因:
- 自動化は「銀の弾丸」ではないとステークホルダーに理解させる。
- 保守コストを考慮する(作った後のコスト)
- 手動テストと自動テストの役割分担を明確にする。
- SUTの試験性(Testability):
- 自動化しやすいように、アプリ側にIDを振ってもらったり、ログを出力させたりする「試験性を考慮した設計(DFT)」が重要。
- ツール選定:
- 単に「人気があるから」ではなく、組織の技術スタック、予算、将来性を考慮して選ぶ。プロトタイピング(PoC)をしてから導入する。
- TAAの設計: 上記の4層構造を意識し、プロジェクトに合わせてカスタマイズする。
- TASの開発: TAA(設計図)に基づいて、実際のツールやライブラリを組み合わせてTAS(実体)を作る。
※ 例「Playwright + GitHub Actions + Reporting」の組み合わせ構築など。
- リスク:
- 「メンテナンスの悪夢」: 自動化コードがスパゲッティ状態になり、修正コストが手動テストの時間を上回ってしまう現象。
- ベンダーロックイン: 特定のツールに依存しすぎて移行できなくなる。
- パイロットプロジェクト: いきなり全展開せず、小規模な範囲で試して問題を洗い出す。
- 計測:
- 自動化の メリット(ROI) を測定する(浮いた時間 vs メンテナンス時間)
- テスト実行時間、パス/フェイル率、コードカバレッジ。
- TAS自体の品質: 自動テストコード自体のバグ密度なども管理する。
- 自動化すべきテスト:
- 実行回数が多い(リグレッション)
- 手動だとミスしやすい。
- クリティカルな機能。
- 自動化に向かないテスト:
- 一度しか実行しないテスト。
- 仕様が頻繁に変わる不安定な機能。
- UXや見た目の感覚的なチェック。
- 「テストのテスト」: 自動テストコード自体もバグを含む可能性があるため、検証が必要。
- 偽陽性と偽陰性:
- 偽陽性: バグじゃないのにテストが落ちる(スクリプトの問題)
- 偽陰性: バグがあるのにテストが通ってしまう(検証ロジックの不備)
- リファクタリング: アプリのコードと同様、自動テストコードも定期的にきれいにする。
- ライブラリの更新: サードパーティライブラリ(Playwrightのバージョンアップなど)への追従。