Majikan saya menjalankan kompetisi hari pengujian unit bulanan. Satu hari penuh didedikasikan untuk menulis unit test - jelas kami melakukan lebih banyak pengujian sepanjang bulan, tetapi ini adalah satu hari penuh - dan "pemenang" kompetisi diberikan hadiah. Namun, kami sulit menentukan siapa pemenangnya.
Kami memberikan poin untuk setiap test case. Jadi jika Anda menulis unit test seperti ini ...
for (int i = 0; i < 100; i++) {
assertTrue(i*i, square(i));
}
Anda akan diberikan 100 poin. Jelas ini adalah contoh sederhana tetapi menunjukkan masalah dengan menetapkan "poin" untuk setiap kasus uji.
Kami terutama toko Java & Javascript. Jadi saya menyarankan menghitung jumlah cabang kode yang diuji sebagai metrik. Kami dapat dengan mudah menghitung cabang yang diuji melalui alat cakupan kode (seperti EclEmma). Namun, tidak yakin bagaimana kami akan melakukan ini dengan tes Selenium kami dan mendapatkan cakupan kode pada sumber Javascript (ada ide?)
Adakah yang punya saran tentang bagaimana kita bisa lebih baik menentukan pemenang kompetisi ini?
Edit
Saya tahu cara menulis unit test, saya tahu cara menulis unit test yang efektif, saya tidak perlu bantuan menentukan apa yang harus diuji. Saya tidak memiliki kendali atas kompetisi ini - kompetisi akan berlanjut. Jadi saya menambahkan beberapa input untuk membuatnya lebih baik atau menjalankan game tes (ya, saya game mereka. Tentu saja saya game mereka. Ada hadiah yang harus dimenangkan)
Edit
Pertanyaan ini di sini jelas bukan duplikat, meskipun berisi informasi yang berguna tentang bagaimana menemukan kasus pengujian yang baik, ini tidak memberikan metrik yang berguna untuk mengevaluasi kompetisi.