Testing (Pengujian Perangkat Lunak)
Adalah
elemen kritis dari jaminan kualitas perangkat lunak dan merepresentasikan
kajian pokok dari spesifikasi, desain, dan pengkodean.
Pentingnya
pengujian perangkat lunak dan implikasinya yang mengacu pada kualitas perangkat
lunak tidak dapat terlalu ditekan karena melibatkan sederetan aktivitas
produksi di mana peluang terjadinya kesalahan manusia sangat besar dan arena
ketidakmampuan manusia untuk melakukan dan berkomunikasi dengan sempurna maka
pengembangan perangkat lunak diiringi dengan aktivitas jaminan kualitas.
Meningkatnya
visibilitas (kemampuan) perangkat lunak sebagai suatu elemen sistem dan “biaya”
yang muncul akibat kegagalan perangkat lunak, memotivasi dilakukannya
perencanaan yang baik melalui pengujian yang teliti. Pada dasarnya, pengujian
merupakan satu langkah dalam proses rekayasa perangkat lunak yang dapat
dianggap sebagai hal yang merusak daripada membangun.
Sejumlah aturan yang berfungsi sebagai
sasaran pengujian pada perangkat lunak adalah:
- Pengujian adalah proses eksekusi suatu program dengan maksud menemukan kesalahan
- Test case yang baik adalah test case yang memiliki probabilitas tinggi untuk menemukan kesalahan yang belum pernah ditemukan sebelumnya
- Pengujian yang sukses adalah pengujian yang mengungkap semua kesalahan yang belum pernah ditemukan sebelumnya
Sasaran itu berlawanan dengan pandangan
yang biasanya dipegang yang menyatakan bahwa pengujian yang berhasil adalah
pengujian yang tidak ada kesalahan yang ditemukan. Data yang dikumpulkan pada
saat pengujian dilakukan memberikan indikasi yang baik mengenai reliabilitas
perangkat lunak dan beberapa menunjukkan kualitas perangkat lunak secara
keseluruhan, tetapi ada satu hal yang tidak dapat dilakukan oleh pengujian,
yaitu pengujian tidak dapat
memperlihatkan tidak adanya cacat, pengujian hanya dapat memperlihatkan bahwa
ada kesalahan perangkat lunak.
Sebelum mengaplikasikan metode untuk
mendesain test case yang efektif, perekayasa perangkat lunak harus memahami
prinsip dasar yang menuntun pengujian perangkat lunak, yaitu:
Ø semua pengujian harus dapat ditelusuri
sampai ke persyaratan pelanggan, maksudnya mengungkap
kesalahan dari cacat yang menyebabkan program gagal.
Ø Pengujian harus direncanakan lama sebelum
pengujian itu mulai, maksudnya semua pengujian dapat direncanakan
dan dirancang sebelum semua kode dijalankan.
Ø Prinsip Pareto berlaku untuk pengujian
perangkat lunak, maksudnya dari 80% kesalahan yang ditemukan
selama pengujian dapat ditelusuri sampai 20% dari semua modul program.
Ø Pengujian harus mulai “dari yang kecil”
dan berkembang ke pengujian “yang besar”, Selagi pengujian
berlangsung maju, pengujian mengubah focus dalam usaha menemukan kesalahan pada
cluster modul yang terintegrasi dan akhirnya pada sistem.
Ø Pengujian yang mendalam tidak mungkin
karena tidak mungkin mengeksekusi setiap kombinasi jalur skema pengujian
dikarenakan jumlah jalur permutasi untuk program menengah pun sangat besar.
Ø Untuk menjadi paling efektif, pengujian
harus dilakukan oleh pihak ketiga yang independent
Dalam lingkungan yang ideal,
perekayasa perangkat lunak mendesain suatu program computer, sebuah sistem atau
produk dengan testabilitas dalam pikirannya. Hal ini memungkinkan individu yang
berurusan dengan pengujian mendesain test case yang efektif secara lebih mudah.
Testabilitas adalah seberapa mudah sebuah program computer dapat diuji. Karena
sangat sulit, perlu diketahui apa yang dapat dilakukan untuk membuatnya menjadi
lebih mudah. Procedural dan menggunakannya sebagai pedoman untuk menetapkan
basis set dari jalur eksekusi.
Sasaran utama desain test case adalah
untuk mendapatkan serangkaian pengujian yang memiliki kemungkinan tertinggi di
dalam pengungkapan kesalahan pada perangkat lunak. Untuk mencapai sasaran tersebut,
digunakan 4 kategori yang berbeda dari tehnik desain test case: Pengujian white-box, pengujian black-box, Integrasi Bottom-Up dan Integrasi Top-Down.
Pengujian white-box
berfokus pada struktur control program. Test case dilakukan untuk memastikan
bahwa semua statemen pada program telah dieksekusi paling tidak satu kali
selama pengujian dan bahwa semua kondisi logis telah diuji. Pengujian basic
path, tehnik pengujian white-box, menggunakan grafik (matriks grafiks) untuk
melakukan serangkaian pengujian yang independent secara linear yang akan
memastikan cakupan.
Pengujian aliran data dan kondisi
lebih lanjut menggunakan logika program dan pengujian loop menyempurnakan
tehnik white-box yang lain dengan memberikan sebuah prosedur untuk menguji loop
dari tingkat kompleksitas yang bervariasi. Pengujian black-box didesain untuk
mengungkap kesalahan pada persyaratan fungsional tanpa mengabaikan kerja
internal dari suatu program.
Tehnik
pengujian black-box berfokus pada domain informasi dari perangkat lunak,
dengan melakukan test case dengan menpartisi domain input dari suatu program
dengan cara yang memberikan cakupan pengujian yang mendalam.
Metode pengujian graph-based
mengeksplorasi hubungan antara dan tingkah laku objek-objek program. Partisi
ekivalensi membagi domain input ke dalam kelas data yang mungkin untuk
melakukan fungsi perangkat lunak tertentu. Analisis nilai batas memeriksaa
kemampuan program untuk menangani data pada batas yang dapat diterima.
Metode pengujian yang terspesialisasi
meliputi sejumlah luas kemampuan perangkat lunak dan area aplikasi. GUI,
arsitektur client/ server, dokumentasi dan fasilitas help dan sistem real time
masing-masing membutuhkan pedoman dan tehnik khusus untuk pengujian perangkat
lunak.
Integrasi Top-Down adalah
pendekatan incremental dengan menggerakkan ke bawah melalui hirarki control,
dimulai dengan control utama. Strategi intergrasi top-down memeriksa control
mayor atau keputusan pada saat awal di dalam proses pengujian. Pada struktur
program yang difaktorkan dengan baik, penarikan keputusan terjadi pada tingkat
hirarki yang lebih tinggi sehingga terjadi lebih dulu.
Strategi top-down kelihatannya tidak
sangat rumit, tetapi di dalam praktenya banyak menimbulkan masalah logistic.
Biasanya masalah ini terjadi jika dibutuhkan pemrosesan di dalam hirarki pada
tingkat rendah untuk menguji secara memadai tingkat yang lebih tinggi.
Pengujian Integrasi Bottom-up
memulai konstruksi dan pengujian dengan modul atomic (modul pada tingkat paling
rendah pada struktur program). Karena modul diintegrasikan dari bawah ke atas,
maka pemrosesan yang diperlukan untuk modul subordinate ke suatu tuingkat yang
diberikan akan selalu tersedia dan kebutuhan akan stub dapat dieliminasi.
Strategi integrasi bottom-up dapat diimplementasi dengan langkah-langkah:
- modul tingkat rendah digabung ke dalam cluster (build) yang melakukan subfungsi perangkat lunak spesifik.
- Driver (program control untuk pengujian) ditulis untuk mengkoordinasi input dan output test case
- cluster diuji
- driver diganti dan cluster digabungkan dengan menggerakkannya ke atas di dalam struktur program.
0 komentar:
Post a Comment