Haruskah ada laporan cakupan kode terpisah untuk unit dan tes integrasi, atau satu laporan cakupan kode untuk keduanya?
Pemikiran di balik ini adalah bahwa cakupan kode memungkinkan kami untuk memastikan bahwa kode kami telah dicakup oleh pengujian sejauh mungkin (sebanyak mesin sekarang dapat tetap).
Memiliki laporan terpisah lebih mudah bagi kita untuk mengetahui apa yang belum dicakup oleh tes unit, dan apa yang belum dicakup oleh tes integrasi. Tetapi dengan cara ini kita tidak dapat melihat persentase cakupan total.
Jawaban:
Di atas segalanya, Anda perlu memiliki dan menganalisis cakupan gabungan (total). Jika Anda memikirkannya, ini adalah cara paling alami untuk memprioritaskan risiko Anda dengan tepat dan memfokuskan upaya pengembangan pengujian Anda.
Cakupan gabungan menunjukkan kepada Anda kode apa yang tidak tercakup oleh tes sama sekali , yaitu yang paling berisiko dan perlu diselidiki terlebih dahulu. Laporan cakupan yang terpisah tidak akan membantu di sini, karena ini tidak memungkinkan Anda mengetahui apakah kode tersebut diuji dengan cara lain atau tidak diuji sama sekali.
Analisis cakupan yang terpisah juga dapat bermanfaat, tetapi akan lebih baik dilakukan setelah Anda selesai dengan analisis gabungan dan lebih disukai juga akan melibatkan hasil analisis cakupan gabungan.
Tujuan analisis cakupan berbeda dari yang digabungkan. Analisis cakupan yang terpisah membantu meningkatkan desain rangkaian pengujian Anda, berbeda dengan analisis cakupan gabungan yang dimaksudkan untuk memutuskan pengujian yang akan dikembangkan, apa pun yang terjadi.
"Oh, celah ini tidak tercakup hanya karena kami lupa menambahkan uji unit (integrasi) sederhana ke dalam unit unit (integrasi) kami, mari kita tambahkan itu" - cakupan dan analisis terpisah sangat berguna di sini, karena gabungan satu dapat menyembunyikan kesenjangan yang ingin Anda bahas dalam suite tertentu.
Dari perspektif di atas, masih diinginkan juga untuk memiliki hasil analisis cakupan gabungan untuk menganalisis kasus yang lebih rumit. Pikirkan itu, dengan hasil ini, keputusan pengembangan tes Anda bisa lebih efisien karena memiliki informasi tentang suite tes "mitra".
"Ada celah di sini, tetapi mengembangkan tes unit (integrasi) untuk menutupnya akan sangat merepotkan, apa saja pilihan kita? Mari kita periksa cakupan gabungan ... oh itu sudah dibahas di tempat lain, yaitu, meliputnya di suite kami bukan t sangat penting. "
sumber
Anda tidak menyebutkan alat pengujian Anda. Banyak yang memiliki fungsi "menggabungkan" yang memungkinkan Anda mengagregasi hasil dari beberapa proses atau suite. Jika Anda ingin metrik cakupan agregat, jelajahi fitur menggabungkan di alat cakupan Anda.
Sekarang, bisakah kita bicara tentang gajah di ruangan itu?
Tidak ada sendok. Dan tidak ada "persentase cakupan total." Setidaknya, tidak ada yang sederhana.
Persentase cakupan adalah metrik yang siap dipahami yang disajikan untuk membantu memahami ruang lingkup, kedalaman, dan rentang suite pengujian. Tetapi seperti tolok ukur sederhana lainnya, sangat mudah untuk menjadi target yang terpaku pada nilai ini sebagai semacam jimat ajaib "pengujian lengkap."
Katakanlah Anda telah mencapai kemuliaan "cakupan uji 100%." Yay! Tapi apa artinya itu? 100% dari baris kode diuji, kan? Lalu bagaimana dengan garis ini?
"Menutupi" garis itu berarti sesuatu - tetapi tidak banyak, karena ada berbagai kondisi yang
True
atauFalse
dengan beberapa kemungkinan, tetapi tidak mungkin bahwa Anda telah menguji semua kombinasi kondisi tersebut. Sekalipun garis itu tertutupi belasan kali, jika salah satu kondisinya relatif tidak umum, Anda belum mendekati untuk menguji semua hasil nyata yang mungkin terjadi dalam praktik. Untuk membuatnya lebih jelas, contoh yang lebih sintetis:Berapa kali Anda harus menutup garis itu untuk benar-benar mengujinya? Berapa kali Anda harus menutupinya untuk mengujinya dalam kombinasi dengan semua variabel lain dalam program (dengan probabilitas mereka sendiri, yang mungkin sangat jarang terjadi)?
Saya tidak mengatakan bahwa metrik cakupan tidak berguna. Mereka sebenarnya hebat . Mereka fokus pada salah satu masalah utama: Seberapa luas sistem perangkat lunak saya diuji? Mereka membantu beralih dari "kami memiliki beberapa tes" ke "kami telah diuji secara menyeluruh."
Tetapi saat Anda mengerjakan "skor gabungan," kenyataannya adalah skor Anda biasanya untuk "cakupan pernyataan" dan bukan "kondisi," "cakupan predikat," atau "jalur" . Jadi berapapun jumlah skor agregat Anda berikan kepada Anda, kecil kemungkinan bahwa angka itu memberi Anda gambaran nyata tentang seberapa banyak status potensial program Anda dan kombinasi status yang sedang diuji. Saat Anda sedang berupaya meningkatkan persentase cakupan Anda, pertimbangkan juga untuk mengukur cakupan predikat Anda. Ini akan memberi Anda pandangan yang lebih realistis - dan hampir selalu, lebih serius - tentang uji kepanjangan dari tes.
sumber