Kami telah membangun sejumlah besar unit test untuk program utama kami selama ini. Beberapa ribu. Masalahnya adalah kita tidak memiliki gagasan yang jelas tentang tes apa yang kita miliki karena ada begitu banyak. Dan itu masalah karena kita tidak tahu di mana kita lemah dalam tes (atau di mana kita memiliki duplikat).
Aplikasi kami adalah mesin pelaporan. Jadi Anda dapat memiliki templat yang digunakan untuk menguji penguraian (apakah kami membaca semua properti tabel), menggabungkan data (apakah kami menyimpan properti tabel yang benar dalam penggabungan), memformat halaman akhir (adalah tabel yang ditempatkan dengan benar pada halaman) ), dan / atau format output (adalah file DOCX yang dibuat benar).
Tambahkan ke ini apa yang perlu kita uji. Ambil bantalan di sekitar sel tabel (kami menggunakan Word, Excel, & PowerPoint untuk desain laporan). Kita harus menguji padding pada page break, untuk tabel di dalam sel, sel yang digabung secara vertikal, sel yang digabungkan secara horizontal, sel yang digabungkan secara vertikal & horizontal yang berisi tabel dengan sel yang digabungkan secara vertikal & horizontal di tabel bagian dalam, di mana tabel itu menerobos satu halaman.
Jadi kategori apa yang masuk dalam tes itu? Padding tabel, page break, sel bersarang, sel yang digabungkan secara vertikal, sel yang digabungkan secara horizontal, atau yang lainnya?
Dan bagaimana kita mendokumentasikan kategori-kategori ini, menamai unit test, dll.?
Pembaruan: Sejumlah orang menyarankan menggunakan alat cakupan untuk memverifikasi bahwa kami memiliki cakupan penuh. Sayangnya itu penggunaan terbatas dalam kasus kami karena bug cenderung disebabkan oleh kombinasi spesifik sehingga kode yang semuanya telah diuji, tetapi tidak dalam kombinasi itu.
Sebagai contoh, kami memiliki pelanggan kemarin yang memulai bookmark Word di akhir loop forEach dalam template mereka (dokumen Word) dan mengakhirinya di awal forEach loop berikutnya. Ini semua menggunakan kode yang memiliki unit test yang menentangnya, tetapi kami belum memikirkan kombinasi templat yang memperluas awal bookmark yang akan dimulai 25 kali, lalu berakhir 10 kali (dua forEach loop memiliki jumlah baris yang berbeda).