Unit Testing
•
berfokus pad usaha verifikasi pada unit terkecil dari disain software
– komponen atau modul software.
•
Unit testing berorientasi white box,
dan tahapan dapat dilakukan secara paralel pada banyak komponen.
Hal yang perlu diperhatikan pada
unit testing:
•
Tes yang terdapat pada unit testing:
–
Modul antar muka dites untuk memastikan aliran informasi telah berjalan
–
Struktur data lokal diperiksa untuk memastikan penyimpanan data
–
Batasan kondisi dites untuk memastikan modul beroperasi dengan benar
–
Semua jalur independen (basis paths) pada struktur kendali
diperiksa
–
Semua jalur penanganan kesalahan dites.
•
Tes aliran data antar modul dibutuhkan sebelum inisialisasi tes lainnya.
•
Pemilihan jalur eksekusi testing
–
tugas yang esensial selama unit test.
–
Test cases harus didisain untuk mencakup kesalahan
–
Basis path dan loop testing adalah teknik yang efektif untuk hal ini.
•
Kesalahan komputasi yang umum terjadi:
–
Kesalahan prioritas aritmetik.
–
Mode operasi campuran.
–
Inisialisasi tak benar.
–
Ketidakakuratan presisi.
–
Ketidakbenaran representasi simbolik dari ekspresi.
•
Komparasi dan alur kendali merupakan satu kesatuan.
•
Test case harus mencakup kesalahan:
–
Komparasi tipe data berbeda
–
Operator logika dan prioritas yang tak benar
–
Kesalahan komparasi antar variabel.
–
Kegagalan keluar bilamana konflik iterasi terjadi.
–
Modifikasi variabel loop yang tidak semestinya.
•
Disain yang baik meliputi kondisi
kesalahan yang diantisipasi
•
Kesalahan potensial yang harus dites saat evaluasi penanganan kesalahan:
–
Diskripsi kesalahan tidak jelas.
–
Catatan kesalahan tidak berfungsi untuk menghitung kesalahan.
–
Kondisi kesalahan menyebabkan interfensi sistem terhadap penangan
kesalahan tertentu.
–
Pemrosesan kondisi perkecualian tidak benar.
–
Diskripsi kesalahan tidak menyediakan informasi yang cukup untuk
mengarahkan penyebab kesalahan.
Prosedur-prosedur Unit Test :
•
Setelah kode dikembangkan, dan diverifikasi terhadap tingkat disain
komponen bersangkutan, disain test case
•
Review informasi disain menyediakan tuntunan untuk menetapkan test
cases
•
Tiap test case harus dihubungkan dengan hasil yang diharapkan
•
drivers dan atau stubs software
harus dikembangkan untuk tiap unit test.
–
drivers tidak lebih dari “program
utama” yang menerima data test case, memasukkan data ke komponen yang
dites, dan mencetak hasil yang bersangkutan.
–
Stubs berlaku untuk menggantikan
modul-modul yang merupakan subordinat (dipanggil oleh) komponen yang dites.
•
Drivers dan stubs menimbulkan
biaya overhead.
•
Bila drivers dan stubs cukup sederhana, overhead yang
sebenarnya menjadi relatif rendah.
•
Testing dapat ditunda penyelesaiannya (kondisi komplit) sampai tahap integration
test (dimana drivers atau stubs juga digunakan).
•
Unit testing disederhanakan bila suatu
komponen didisain dengan kohesi tinggi.
•
Ada beberapa situasi dimana sumber daya tidak mencukupi untuk melakukan unit
testing secara komplit.
•
perlu melakukan pemilihan modul-modul yang kritis dan yang mempunyai cyclomatic
complexity tinggi, untuk unit testing.
Contoh penerapan Drivers dan Stubs pada program :
0 komentar:
Posting Komentar