Coba jelasin Aplikasi dari Pengujian unit dong

Pengujian unit adalah dasar dari pemrograman ekstrem, yang bergantung pada kerangka kerja pengujian unit terotomatisasi. Kerangka kerja pengujian unit terotomatisasi ini mungkin berasal dari pihak ketiga, misalnya, xUnit, atau diciptakan dalam kelompok pengembangan perangkat lunak itu sendiri.

Pemrograman ekstrem menggunakan penciptaan pengujian unit untuk pengembangan digerakkan pengujian. Pengembang menulis pengujian unit yang mengekspos baik persyaratan atau cacat suatu perangkat lunak. Uji ini akan gagal karena salah satu persyaratan belum diimplementasikan, atau karena sengaja memperlihatkan cacat dalam kode yang sudah ada. Kemudian, pengembang menulis kode sederhana untuk agar unit lulus uji tersebut, bersama dengan uji yang lainnya.

Sebagian besar kode dalam sistem melewati pengujian unit, tetapi belum tentu menguji semua jalur dalam kode. Pemrograman ekstrem memandatkan strategi "menguji segala sesuatu yang mungkin gagal", dan menghindari metode tradisional "menguji setiap jalur eksekusi". Hal ini menyebabkan pengembang untuk menciptakan uji yang lebih sedikit dari metode klasik, tapi ini tidak benar-benar masalah. Metode klasik pun jarang pernah diikuti secara ketat sehingga tidak semua jalur eksekusi telah diuji secara menyeluruh. Pemrograman ekstrem hanya mengakui bahwa pengujian jarang dilakukan secara menyeluruh (karena sering terlalu mahal dan memakan waktu ) dan memberikan panduan tentang bagaimana memusatkan sumber daya yang terbatas secara efektif.

Kode pengujian ini dianggap artefak proyek kelas satu, dalam artian dipertahankan pada kualitas yang sama dengan kode implementasi, dengan menghapus semua duplikasi kode. Pengembang merilis pengujian unit ke repositori kode bersama-sama dengan kode yang diujinya. Pengujian unit yang menyeluruh dari pemrograman ekstrem memungkinkan manfaat yang disebutkan di atas, seperti pengembangan kode yang dan refaktorisasi lebih sederhana dan lebih meyakinkan, integrasi kode yang disederhanakan, dokumentasi yang akurat, dan desain yang lebih modular. Pengujian unit ini juga terus berjalan sebagai bentuk dari uji regresi.

Pengujian unit juga penting untuk konsep desain emergen. Karena desain emergen sangat tergantung pada refaktorisasi, pengujian unit merupakan satu komponen tidak terpisahkan.