Pengujian perangkat lunak adalah elemen kritis dari jaminan kualitas
perangkat lunak dan merepresentasikan spesifikasi, desain dan
pengkodean.
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.
Dalam melakukan uji coba ada 2 masalah penting yang akan dibahas, yaitu :
A. Teknik uji coba perangkat lunak
B. Strategi uji coba perangkat lunak
TEKNIK UJI COBA PERANGKAT LUNAK
Pada
dasarnya, pengujian merupakan suatu proses rekayasa perangkat lunak yg
dapat dianggap (secara psikologis) sebagai hal yg destruktif daripada
konstruktif.
SASARAN PENGUJIAN (Glen Myers) :
1. Pengujian adalah proses eksekusi suatu program dengan maksud menemukan kesalahan.
2. Test case yg baik adalah test case yg memiliki probabilitas tinggi
untuk menemukan kesalahan yg belum pernah ditemukan sebalumnya.
3. Pengujian yg sukses adalah pengujian yg mengungkap semua kesalahan yg belum pernah ditemukan sebelumnya.
PRINSIP PENGUJIAN (diusulkan Davis) :
1. Semua pengujian harus dapat ditelusuri sampai ke persyaratan pelanggan.
2. Pengujian harus direncanakan lama sebelum pengujian itu dimulai.
3. Prinsip Pareto berlaku untuk pengujian perangkat lunak. Prinsip
Pareto mengimplikasikan 80% dari semua kesalahan yg ditemukan selama
pengujian sepertinya akan dapat ditelusuri sampai 20% dari semua modul
program.
4. Pengujian harus mulai "dari yg kecil" dan berkembang ke pengujian "yang besar".
5. Pengujian yg mendalam tidak mungkin.
6. Paling efektif, pengujian dilakukan oleh pihak ketiga yg independen.
TESTABILITAS
Testabilitas
perangkat lunak adalah seberapa mudah sebuah program komputer dapat
diuji. Karena pengujian sangat sulit, perlu diketahui apa yg dapat
dilakukan untuk membuatnya menjadi mudah.
Karakteristik perangkat lunak yg diuji :
* OPERABILITAS, semakin baik dia bekerja semakin efisien dia dapat diuji.
* OBSERVABILITAS, apa yg anda lihat adalah apa yg anda uji.
* KONTROLABILITAS, semakin baik kita dapat mengontrol perangkat lunak
semakin banyak pengujian yg adapat diotomatisasi dan dioptimalkan.
* DEKOMPOSABILITAS, dengan mengontrol ruang lingkup pengujian kita
dapat lebih cepat mengisolasi masalah dan melakukan pengujian kembali.
* KESEDERHANAAN, semakin sedikit yg diuji semakin cepat pengujian.
* STABILITAS, semakin sedikit perubahan semakin sedikit gangguan pengujian.
* KEMAMPUAN DIPAHAMI, semakin banyak informasi yg dimiliki semakin detail pengujiannya.
ATRIBUT PENGUJIAN YG BAIK :
* Memiliki probabilitas yg tinggi menemukan kesalahan.
* Tidak redundan.
* Harusnya ‘jenis terbaik’.
* Tidak boleh terlalu sederhana atau terlalu kompleks.
DESAIN TEST CASE
Terdapat
bermacam-macam rancangan metode test case yg dapat digunakan, semua
menyediakan pendekatan sistematis untuk uji coba, yg terpenting metode
menyediakan kemungkinan yg cukup tinggi menemukan kesalahan.
Terdapat 2 macam test case:
1. Pengetahuan fungsi yg spesifik dari produk yg telah dirancang untuk
diperlihatkan, test dapat dilakukan untuk menilai masing-masing fungsi
apakah telah berjalan sebagaimana yg diharapkan.
2. Pengetahuan
tentang cara kerja dari produk, test dapat dilakukan untuk
memperlihatkan cara kerja dari produk secara rinci sesuai dengan
spesifikasinya.
Dua macam pendekatan test yaitu :
1. Black Box Testing
Test
case ini bertujuan untuk menunjukkan fungsi perangkat lunak tentang
cara beroperasinya, apakah pemasukan data keluaran telah berjalan
sebagaimana yang diharapkan dan apakah informasi yang disimpan secara
eksternal selalu dijaga kemutakhirannya.
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.
2. White Box Testing
Adalah
meramalkan cara kerja perangkat lunak secara rinci, karenanya logikal
path (jalur logika) perangkat lunak akan ditest dengan menyediakan test
case yang akan mengerjakan kumpulan kondisi dan atau pengulangan secara
spesifik. Secara sekilas dapat diambil kesimpulan white box testing
merupakan petunjuk untuk mendapatkan program yang benar secara 100%.
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.
STRATEGI UJI COBA PERANGKAT LUNAK
Strategi
uji coba perangkat lunak memudahkan para perancang untuk menentukan
keberhasilan system yg telah dikerjakan. Hal yang harus diperhatikan
adalah langkah-langkah perencanaan dan pelaksanaan harus direncanakan
dengan baik dan berapa lama waktu, upaya dan sumber daya yg diperlukan.
Strategi uji coba mempunyai karakteristik sbb :
* Pengujian mulai pada tingkat modul yg paling bawah, dilanjutkan dgn modul di atasnya kemudian hasilnya dipadukan.
* Teknik pengujian yang berbeda mungkin menghasilakn sedikit perbedaan (dalam hal waktu)
* Pengujian dilakukan oleh pengembang perangkat lunak dan (untuk proyek yang besar) suatu kelompok pengujian yang independen.
* Pengujian dan debugging merupakan aktivitas yang berbeda, tetapi debugging termasuk dalam strategi pengujian.
Pengujian
perangkat lunak adalah satu elemen dari topik yang lebih luas yang
sering diacu sebagai verifikasi dan validasi (V& V).
Verifikasi : Kumpulan aktifitas yg menjamin penerapan perangkat lunak benar-benar sesuai dgn fungsinya.
Validasi
: Kumpulan aktivitas yang berbeda yang memastikan bahwa perangkat lunak
yang dibangun dapat memenuhi keperluan pelanggan.
1. PENGUJIAN UNIT
Unit
testing (uji coba unit) fokusnya pada usaha verifikasi pada unit
terkecil dari desain perangkat lunak, yakni modul. Uji coba unit selalu
berorientasi pada white box testing dan dapat dikerjakan paralel atau
beruntun dengan modul lainnya.
2. PENGUJIAN INTEGRASI
Pengujian
terintegrasi adl teknik yg sistematis untuk penyusunan struktur
program, pada saat bersamaan dikerjakan uji coba untuk memeriksa
kesalahan yg nantinya digabungkan dengan interface.
Metode pengujian
a) top down integration
b) buttom up integration
a) Top- down integration
Top
down integration 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.
b) Pengujian Integrasi Bottom-up
Bottom
up integration 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:
1. modul tingkat rendah digabung ke dalam cluster (build) yang melakukan subfungsi perangkat lunak spesifik.
2. Driver (program control untuk pengujian) ditulis untuk mengkoordinasi input dan output test case
3. cluster diuji
4. driver diganti dan cluster digabungkan dengan menggerakkannya ke atas di dalam struktur program.
- Blogger Comment
- Facebook Comment
Subscribe to:
Post Comments
(
Atom
)
0 komentar:
Post a Comment
Thanks For Your Feedback.