全部のテストを自動化すべき?
テストピラミッドという考え方があるよ。底辺に大量の単体テスト、中間に結合テスト、頂上に少数のE2Eテスト。単体テストは高速で安定だから大量に書ける。E2Eテストは遅くて不安定になりやすいから重要シナリオに絞る。探索的テストや使い勝手の確認は人間がやった方がいいよ
Flaky Testって何?
同じコードなのに実行するたびに成功したり失敗したりする不安定なテスト。原因は時間依存、ネットワーク遅延、テスト間の依存関係、非同期処理の待機不足など。Flaky Testがあるとテスト結果を信頼できなくなり、失敗を無視する文化ができてしまう。見つけたら最優先で修正しようね
テスト自動化の導入順序は?
①まず単体テストのフレームワーク導入(Jest、pytest等)、②CIに組み込んでコミット時に自動実行、③カバレッジ計測を追加、④重要な業務フローのE2Eテストを追加(Playwright、Cypress等)、⑤テスト結果のレポートとアラート設定。一度に全部やろうとせず段階的に進めるのがコツだよ
ROIはどう測る?
直接的には「手動テスト時間×実行頻度」と「自動テスト作成・メンテコスト」の比較。間接的にはバグの早期発見による手戻り削減、リリース頻度の向上、開発者の心理的安全性(リファクタリングを怖がらなくなる)も考慮すべきだよ。リリースが月1回以上のプロジェクトなら投資は確実に回収できるね