Saturday, February 26, 2005

Code Coverage: Seberapa menyeluruh tes yang dilakukan?

Setelah kita melakukan unit test pada kode program kita, akan timbul perasaan percaya diri jika test yang kita lakukan berhasil (sukses) semua. Tapi muncul pertanyaan, apa unit test yang kita buat sudah menyeluruh sehingga kemungkinan untuk error (adanya bug) kecil sekali?

Pengenalan tentang code coverage bisa dibaca disini atau baca artikel yang agak detail "Introduction to Code Coverage" . Berapa artikel tentang code coverage dan detail teknik pengecekan coverage tool bisa didapatkan di halaman ini.

Code coverage, secara sederhana dapat dikatakan sebagai pengukuran terhadap hasil tes yang telah dilakukan. Seberapa menyeluruh? Apakah ada kode yang belum ditest? Nah, code coverage menjawab pertanyaan2 itu. Dengan code coverage tool yaitu software untuk membantu secara otomatis melakukan code coverage, kita akan mendapatkan summary dari analisis seberapa baik atau mnyeluruhnya test yang kita lakukan. Code coverage tool melakukan tes pada kode program kemudian membandingkannya dengan tes yang telah kita lakukan. Beberapa metode dilakukan oleh tool untuk mengecek apakah suatu statement, blok, fungsi atau methode sudah dites atau belum. Beberapa metode yang umum dilakukan oleh code coverage diantaranya:
  • Statement coverage/line coverage,
  • Basic block coverage,
  • Decision coverage/branch coverage
  • Condition coverage
  • Multiple condition coverage
  • Path coverage
  • Function coverage
  • Relational operator coverage
Artikel lain yang bagus, banyak menjelaskan metode-metode yang pengukuran dapat dibaca di artikel Code Coverage Analysis.

Kesimpulannya, coverage tool hanya sebatas tool, 100% coverage dari hasil analisis tool merupakan persentase menyeluruhnya sangatlah relatif. Tentu saja masih diperlukan critical thinking dalam mengalisis kode program kita, mensimulasikan kemungkinan2 error dan masih perlu test lain seperti performance testing.


Di artikel "Java Code Coverage Tools Evaluation" kita bisa baca evaluasi beberapa java coverage tool, dan kesimpulan pada artikel tersebut Emma and Clover adalah yang terbaik diantara yang lain.

Lihat juga list coverage tool open source untuk Java

No comments:

Followers