Politeknik Telkom Rekayasa Perangkat Lunak
130 Pengujian Perangkat Lunak
perbaikan dievaluasi untuk menentukan apakah masih dapat ditolerir atau tidak
2. Security testing berusaha untuk membuktikan apakah mekanisme
perlindungan yang dibangun pada sebuah sistem akan benar-benar dapat melindungi dari pengaruh yang salah
3. Stress testing dirancang untuk melawan program pada keadaan
abnormal. Pengujian ini mengeksekusi sistem dalam kondisi kuantitas sumber daya yang abnormal
4. Performance testing dirancang untuk menguji kinerja perangkat lunak
yang telah terintegrasi pada sistem pada saat run-time. Pengujian ini sebenarnya terjadi pada setiap tahapan, mulai dari unit testing pada
modul, sampai kepada system testing ketika perangkat lunak telah terintegrasi pada sistem. Pengujian ini sering dikolaborasikan dengan
stress testing dan menggunakan instrumen perangkat lunak dan perangkat keras untuk mengukur penggunaan sumber daya dengan cara
yang tepat sehingga dapat mengungkap situasi yang menyebabkan kegagalan sistem.
7.5.5 Strategi Pengujian Perangkat Lunak Berorientasi Objek
Strategi pengujian untuk perangkat lunak beriorientasi objek serupa dengan strategi pengujian yang telah dibahas sebelumnya. Namun terdapat beberapa
perbedaan dengan beberapa strategi yang telah dibahas sebelumnya, yakni: 1. Pada unit testing
Bagian terkecil yang diuji pada unit testing adalah kelas atau objek, tidak seperti unit testing konvensional yang fokus pada
detail algoritmik dari perangkat lunak Tidak menguji operasi yang ada secara terpisah, seperti halnya
unit testing konvensional, karena operasi-operasi pada satu kelas diuji bersamaan pada satu kelas
2. Pada integration testing Memiliki dua strategi yakni thread-based testing dan use-based
testing Thread-based testing yang mengintegrasikan sekumpulan kelas
yang dibutuhkan untuk merespon suatu input atau event pada sistem. Setiap thread diintegrasikan dan diuji secara individual,
kemudian dilakukan pengujian regresi untuk memastikan tidak ada efek samping yang muncul
Politeknik Telkom Rekayasa Perangkat Lunak
Pengujian Perangkat Lunak 131
Use-based testing yang menguji kelas independen kelas yang menggunakan sangat sedikit kelas server kemudian kelas yang
menggunakan layanan kelas tersebut, kemudian dilanjutkan sampai keseluruhan perangkat lunak dibangun
Tahapan cluster testing di mana sekumpulan kelas yang berkolaborasi diuji untuk menemukan kesalahan pada saat
berinteraksi
7.6 Debugging
Debugging bukan merupakan pengujian, namun merupakan konsekuensi dari pengujian yang berhasil. Jika sebuah kasus uji berhasil menemukan kesalahan,
maka proses debugging bertujuan untuk menghilangkan kesalahan tersebut. Debugging merupakan proses yang sulit untuk dilakukan karena adanya
beberapa karakteristik bug seperti:
Gejala dan penyebab dari bug bisa saja sangat jauh, gejala dapat muncul pada bagian tertentu dari program dan penyebabnya bisa saja berada
pada bagian lain yang sangat jauh dari tempat munculnya gejala Gejala dapat hilang ketika kesalahan yang lain diperbaiki
Gejala dapat ditimbulkan oleh sesuatu yang tidak salah mis. pembulatan yang tidak akurat
Gejala dapat disebabkan oleh kesalahan manusia yang sulit untuk ditelusuri
Gejala dapat disebabkan oleh masalah timing Kemungkinan sulit untuk memproduksi kondisi input secara akurat
Gejala dapat terjadi tiba-tiba Gejala dapat disebabkan oleh sesuatu yang didistribusikan melewati
sejumlah tugas yang bekerja pada prosesor yang berbeda-beda Terdapat tiga jenis pendekatan debugging antara lain:
1. Brute Force Merupakan teknik yang paling sering digunakan dan paling tidak efisien
dalam mengisolasi penyebab kesalahan. Dengan prinsip “biarkan komputer menemukan kesalahan”, maka seluruh sumber daya komputer
digunakan dengan tujuan untuk menemukan penyebab kesalahan 2. Backtracking
Merupakan pendekatan yang dimulai dari penemuan gejala kemudian menelusuri balik hingga ke penyebab