Saya bekerja di perusahaan kecil sebagai pengembang solo. Sebenarnya saya satu-satunya pengembang di perusahaan itu. Saya memiliki beberapa (relatif) proyek besar yang telah saya tulis dan kelola secara teratur, dan tidak satu pun dari mereka memiliki tes untuk mendukungnya. Ketika saya memulai proyek baru, saya sering bertanya-tanya apakah saya harus mencoba pendekatan TDD. Kedengarannya seperti ide yang bagus, tapi jujur saya tidak pernah bisa membenarkan kerja ekstra yang terlibat.
Saya bekerja keras untuk berpikiran maju dalam desain saya. Saya menyadari bahwa suatu hari nanti pengembang lain harus menjaga kode saya, atau paling tidak memecahkannya. Saya menjaga hal-hal sesederhana mungkin dan saya berkomentar dan mendokumentasikan hal-hal yang sulit untuk dipahami. Dan faktanya adalah proyek-proyek ini tidak begitu besar atau rumit sehingga pengembang yang layak akan berjuang untuk memahaminya.
Banyak contoh yang saya lihat dari tes sampai ke hal-hal kecil, yang mencakup semua aspek kode. Karena saya adalah satu-satunya pengembang dan saya sangat dekat dengan kode di seluruh proyek, jauh lebih efisien untuk mengikuti pola tulis-kemudian-secara manual-tes. Saya juga menemukan persyaratan dan fitur berubah cukup sering sehingga mempertahankan tes akan menambah jumlah hambatan pada suatu proyek. Waktu itu kalau tidak bisa dihabiskan untuk menyelesaikan kebutuhan bisnis.
Jadi saya berakhir dengan kesimpulan yang sama setiap kali. Pengembalian investasi terlalu rendah.
Saya kadang-kadang menyiapkan beberapa tes untuk memastikan saya telah menulis algoritma dengan benar, seperti menghitung berapa tahun seseorang telah berada di perusahaan berdasarkan tanggal perekrutan mereka. Tetapi dari sudut pandang cakupan kode saya telah membahas sekitar 1% dari kode saya.
Dalam situasi saya, apakah Anda masih menemukan cara untuk membuat unit menguji praktik biasa, atau apakah saya dibenarkan untuk menghindari overhead itu?
UPDATE: Beberapa hal tentang situasi saya yang saya tinggalkan: Proyek saya adalah semua aplikasi web. Untuk mencakup semua kode saya, saya harus menggunakan tes UI otomatis, dan itu adalah area di mana saya masih tidak melihat manfaat besar dibandingkan pengujian manual.