Unit Testing
berfokus pada usaha verifikasi pada unit terkecil dari disain software, komponen atau modul software.
Hal - hal yang diperhatikan unit testing adalah :
- Memastikan aliran informasi berjalan dengan baik
- Memastikan penyimpanan data telah terawat secara temporal
- Memastikan modul beroperasi dengan benar pada batasan yang tela ditentukan
- Semua jalur independen diperiksa untuk memeriksa semua pernyataan modul
- Semua jalur penanganan di testing
Test case harus mencakup kesalahan :
- Komparasi tipe data berbeda
- Operator logika dan prioritas yang tak benar
- Kemungkinan persamaan jika kesalahan presisi
- Kesalahan komparasi antar variable
- Terinasi loop yang tidak konsisten
- Kegagalan keluar bilamana konflik literasi terjadi
- Modifikasi variable loop yang tidak semestinya
Kesalahan potensial pada saat evaluasi penanganan kesalahan
- Deskripsi kesalahan tidak jelas
- Catatan kesalahan tidak berfungsi
- Kondisi kesalahan menyebabkan interfensi sistem terhadap kesalahan tertentu
- Pemrosesan kondisi perkecualian tidak benar
- Deskripsi kesalah tidak menyediakan informasi yang cakup untuk mengarahkan penyebab kesalahan
Prosedur-prosedur Unit Test
- Kode dikembangkan –> Diverifikasi tingkat disain komponen bersangkutan –> Disain test case dari unit test dimulai
- Drivers –> program utama yg menerima data test case, memasukkan data ke komponen yg dites dan mencetak hasil yg bersangkutan.
- Stubs –> untuk menggantikan modul-modul yg merupakan subordinat (dipanggil oleh) komponen yg dites.
- Drivers & stubs menimbulkan biaya overhead.
- Testing dapat ditunda penyelesaiannya (kondisi komplit) samapi tahap integration test.
- Unit testing disederhanakan bila suatu komponen didisain dengan kohesi tinggi.
- Bila hanya satu fungsi yg dialamatkan oleh suatu komponen, jumlah test case dapat dikurangi & errors dapat lebih mudah untuk diperiksa & dicakup.
- Perlu pemilihan modul-modul yg kritis & yg mempunyai cyclomatic compexity tinggi, untuk unti testing.
Penerapan dari driver dan stubs dapat dilihat pada gambar dibawah ini: