Saya bekerja untuk perusahaan besar dan saya bertanggung jawab untuk aplikasi java besar dengan ribuan tes junit. Sejak saya pindah ke peran ini, ada 200-300 tes yang gagal (kemungkinan rusak selama bertahun-tahun). Tes sudah tua dan rapuh dan mereka berantakan ketergantungan spageti yang biasanya diakhiri dengan data kotak pasir langsung.
Sasaran saya adalah 100% lulus tes sehingga kami dapat merusak build pada kegagalan unit test, tetapi saya tidak dapat melakukannya sampai saya mengatasi tes yang rusak. Saya memiliki anggaran yang sangat sedikit karena anggaran pemeliharaan terutama untuk dukungan, tetapi tim saya telah mengidentifikasi dan memperbaiki tes buah tergantung rendah (kebanyakan masalah konfigurasi / sumber daya lokal) dan kami turun ke 30-40 tes yang benar-benar jelek.
Apa opini tentang praktik terbaik? Saya tidak berpikir tes itu berharga, tetapi saya juga tidak tahu apa yang mereka uji atau mengapa mereka tidak bekerja tanpa menggali, yang membutuhkan waktu dan uang yang mungkin tidak kita miliki.
Saya pikir kita harus mendokumentasikan status tes yang rusak dengan apa pun yang kita ketahui, lalu hapus atau abaikan tes yang rusak sepenuhnya dan masukkan bug / item kerja dengan prioritas lebih rendah untuk menyelidiki dan memperbaikinya. Kami kemudian akan berada di 100% dan mulai mendapatkan nilai nyata dari tes lain dan jika kami memiliki rejeki pemeliharaan / refactoring kami akan dapat mengambilnya lagi.
Apa yang akan menjadi pendekatan terbaik?
Sunting: Saya pikir ini adalah pertanyaan yang berbeda dari pertanyaan ini karena saya memiliki arahan yang jelas untuk tes yang harus kami tulis ke depan, tetapi saya mewarisi warisan yang gagal untuk diatasi sebelum rangkaian tes yang sekarang menjadi bermakna.