私は大企業で働いており、何千ものJUnitテストがある大規模なJavaアプリケーションを担当しています。私がこの役割に移行して以来、200〜300のテストが壊れています(何年も壊れている可能性があります)。テストは古くて壊れやすく、通常はライブサンドボックスデータで終わるスパゲッティの依存関係の混乱です。
私の目標はテストを100%合格することで、単体テストの失敗でビルドを中断できますが、失敗したテストに対処するまではできません。メンテナンス予算は主にサポートのためであるため、予算はほとんどありませんが、私のチームは、問題の少ないフルーツテスト(主に構成/ローカルリソースの問題)を特定して修正しました。
ベストプラクティスに関する意見はありますか?テストは価値があるとは思いませんが、テストしているものが何なのか、掘り下げなければ動作しない理由もわかりません。おそらく時間とお金がかかるでしょう。
壊れたテストのステータスを既知のもので文書化し、壊れたテストを完全に削除または無視し、優先順位の低いバグ/作業項目を入力して調査および修正する必要があると考えています。その後、100%になり、他のテストから真の価値を引き出し始めます。メンテナンス/リファクタリングの失敗があれば、それらを再び拾い上げることができます。
最善のアプローチは何でしょうか?
編集:これはこの質問とは異なる質問だと思います。なぜなら、今後書くべきテストの明確な方向性があるからです。しかし、現在の大規模なテストセットが意味を持つようになる前に対処するために、レガシーの失敗したテストを継承しました。