Tolong jelaskan mengenai Menemukan masalah dari awal dari Pengujian unit

Pengujian unit menemukan masalah di awal dalam siklus pengembangan. Ini termasuk kekutu (Inggris: bug) dalam implementasi pemrogram dan kekurangan atau bagian-bagian yang hilang dari spesifikasi untuk unit tersebut. Proses penulisan kumpulan uji menyeluruh dari memaksa penulis untuk memikirkan masak-masak masukan, keluaran, dan kondisi kesalahan, dan dengan demikian lebih tajam mendefinisikan perilaku unit yang diinginkan. Biaya untuk menemukan kekutu sebelum penulisan kode dimulai atau ketika kode ini pertama kali ditulis jauh lebih rendah daripada biaya mendeteksi, mengidentifikasi, dan memperbaiki bug sesudahnya; kekutu juga dapat menyebabkan masalah bagi pengguna akhir dari perangkat lunak. Beberapa berpendapat bahwa kode yang tidak mungkin atau sulit dibikin pengujian unitnya adalah kode yang ditulis dengan buruk. Dengan demikian pengujian unit dapat memaksa pengembang untuk membuat struktur fungsi dan objek dalam cara yang lebih baik.

Dalam pengembangan digerakkan pengujian (test-driven development atau TDD), yang sering digunakan dalam pemrograman ekstrem dan scrum, pengujian unit diciptakan sebelum kode itu sendiri ditulis. Ketika lulus tes, kode itu dianggap selesai. Pengujian unit yang sama dijalankan terhadap fungsi itu berkali-kali seiring dengan pengembangan basis kode yang semakin besar, baik saat kode itu berubah atau melalui proses yang diotomatisasi. Jika pengujian unit gagal, hal ini dianggap sebagai kekutu, baik di dalam kode yang sudah berubah itu atau dalam pengujian unit itu sendiri. Pengujian unit kemudian memungkinkan tempat kesalahan atau kegagalan tersebut dengan mudah dilacak. Karena pengujian unit memperingatkan tim pengembang akan masalah tersebut sebelum kode program diserahkan ke untuk penguji atau klien, ini berarti masalah ditemukan masih dalam awal proses pengembangan perangkat lunak.