Saya sedang mengerjakan beberapa aplikasi, terutama yang lama. Saat ini, cakupan kode mereka cukup rendah: umumnya antara 10 dan 50%.
Sejak beberapa minggu, kami memiliki diskusi berulang dengan tim Bangalore (bagian utama dari pengembangan dilakukan di lepas pantai di India) mengenai pengecualian paket atau kelas untuk Cobertura (alat cakupan kode kami, bahkan jika kami saat ini sedang bermigrasi ke JaCoCo).
Sudut pandang mereka adalah sebagai berikut: karena mereka tidak akan menulis unit test pada beberapa layer aplikasi (1) , layer-layer ini harus dikeluarkan dari ukuran cakupan kode. Dengan kata lain, mereka ingin membatasi ukuran cakupan kode untuk kode yang diuji atau harus diuji .
Juga, ketika mereka bekerja pada unit test untuk kelas yang kompleks, manfaat - murni dalam hal cakupan kode - akan diperhatikan karena dalam aplikasi besar. Mengurangi ruang lingkup cakupan kode akan membuat upaya semacam ini lebih terlihat ...
Yang menarik dari pendekatan ini adalah bahwa kita akan memiliki ukuran cakupan kode yang menunjukkan status saat ini dari bagian aplikasi yang kita anggap dapat diuji .
Namun, sudut pandang saya adalah bahwa kita entah bagaimana berpura-pura angka. Solusi ini adalah cara mudah untuk mencapai tingkat cakupan kode yang lebih tinggi tanpa upaya apa pun. Poin lain yang mengganggu saya adalah sebagai berikut: jika kami menunjukkan peningkatan cakupan dari satu minggu ke minggu lainnya, bagaimana kami dapat mengetahui apakah kabar baik ini disebabkan oleh kerja yang baik dari para pengembang, atau hanya karena pengecualian baru?
Selain itu, kami tidak akan dapat mengetahui dengan tepat apa yang dipertimbangkan dalam ukuran cakupan kode. Misalnya, jika saya memiliki 10.000 baris aplikasi kode dengan 40% cakupan kode, saya dapat mengurangi bahwa 40% dari basis kode saya diuji (2) . Tetapi apa yang terjadi jika kita menetapkan pengecualian? Jika cakupan kode sekarang 60%, apa yang bisa saya kurangi dengan tepat? Bahwa 60% basis kode "penting" saya diuji? Bagaimana bisa saya
Sejauh yang saya ketahui, saya lebih suka menyimpan nilai cakupan kode "nyata", bahkan jika kita tidak bisa ceria tentang hal itu. Selain itu, terima kasih kepada Sonar, kami dapat dengan mudah menavigasi dalam basis kode kami dan mengetahui, untuk setiap modul / paket / kelas, cakupan kodenya sendiri. Namun tentu saja, cakupan kode global akan tetap rendah.
Apa pendapat Anda tentang hal itu? Bagaimana yang Anda lakukan pada proyek Anda?
Terima kasih.
(1) Lapisan ini umumnya terkait dengan UI / Java beans, dll.
(2) Saya tahu itu tidak benar. Bahkan, itu hanya berarti bahwa 40% dari basis kode saya