Dalam strategi pengujian
perangkat lunak, dapat digambarkan dengan ilustrasi berikut: Sebuah perangkat
lunak dimulai dari penentuan kebutuhan pernagkat lunak, kemudian proses
dilanjutkan kedalam bentuk rancangan dan akhirnya ke pengkodean. Strategi
pengujian serupa dengan hal tersebut, dimulai dengan unti testing di pusat spiral
di mana masing-masing modul/unit dari perangkat lunak yang diimplementasikan
dalam source code menjadi sasaran pengujian. Kemudian dilakukan integration
testing dengan focus pengujian adalah desain dan kontruksi arsitektur perangkat
lunak. Selanjutnya dilakukan validation testing dengan sasaran pengujian adalah
kesesuaian dengan kebutuhan perangkat lunak yang telah ditentukan di awal. Terakhir
pada lingkaran terluar spiral samai pada system testing, dimana perangkat lunak
dan keseluruhan system diuji.
1. Pendekatan Strategis
ke Pengujian Perangkat lunak
Pengujianmerupakan
rangkaian aktivitas yang dapat direncanakan sebelumnya dan dilakukansecara
sistematis. Strategi uji coba perangkat lunak memudahkan para perancanguntuk
menentukan keberhasilan system yg telah dikerjakan. Hal yg harusdiperhatikan
adalah langkah-langkah perencanaan dan pelaksanaan harusdirencanakan dengan
baik dan berapa lama waktu, upaya dan sumber daya ygdiperlukan Strategi uji
coba mempunyai karakteristik sbb :
·
Pengujian mulai pada tingkat
modul yg paling bawah,dilanjutkan dgn modul di atasnya kemudian hasilnya
dipadukan
·
Teknik pengujianyang berbeda
mungkin menghasilakn sedikit perbedaan (dalam hal waktu)
·
Pengujiandilakukan oleh
pengembang perangkat lunak dan (untuk proyek yang besar) suatukelompok
pengujian yang independen.
·
Pengujian dandebugging
merupakan aktivitas yang berbeda, tetapi debugging termasuk dalamstrategi
pengujian.
Verifikasi dan Validasi
Verifikasi dan validasi
merupakandua istilah yang sering dikaitkan dengan tahapan pengujian perangkat
lunak.Verifikasi mengacu pada serangkaian aktivitas untuk memastikan bahwa
perangkatlunak mengimplementasikan fungsi tertentu secara benar, sedangkan validasimengacu
pada serangkaian aktivitas untuk memastikan bahwa perangkat lunak yangtelah
dibuat sesuai denga kebutuhan konsumen.
Definisi V&V
mencakupserangkaian aktivitas dari penjaminan kualitas perangkat lunak (SQA)
yangmeliputi kajian teknis formal, audit kualitas dan control, monitoring
kinerja,simulasi, studi feasibilitas, kajian dokumentasi, kajian basisdata,
analisisalgoritma, pengujian pengembangan, pengujian kualifikasi, dan
pengujianinstalasi.
Pengorganisasian Pengujian
Perangkat Lunak
Proses
pengujian sebuah perangkat lunaksebaiknya melibatkan pihak yang memang secara
khusus bertanggung jawab untukmelakukan proses pengujian secara independen.
Untuk itulah diperlukanIndependent Test Group (ITG).
Peran
dari ITG adalah untuk menghilangkan“conflict of interest” yang terjadi ketika
pengembang perangkat lunak berusahauntuk menguji produknya sendiri.
Walaupun
seperti itu, sering terjadibeberapa kesalahan pemahaman berkaitan dengan peran
ITG, antara lain:
·
Pengembangtidak boleh melakukan pengujian sama
sekali. Pendapat ini tidak 100% benar,Karena dalam banyak kasus, pengembang
juga melakukan proses unit testing danintegration test.
·
Perangkatlunak dilempar begitu saja untuk diuji
secara sporadic. Hal tersebut adalahsalah karena pengemmbang dan ITG bekerja
sama pada kesalahan proyek untukmemastikan pengujian akan dilakukan. Sementara
pengujian dilakukan, pengembangharrus memperbaiki kesalahan yang ditemukan.
·
Pengujitidak terlibat pada proyek sampai tahap
pengujian dimulai. Hal tersebut salahkarena ITG merupakan bagian dari tim
proyek pengembangan perangkat lunak dimanaia terlihat selama spesifikasi proses
dan tetap terlinat pada keseluruhanproyek besar.
2. Masalah-Masalah
Strategis
Masalah-masalah berikut harus diselesaikanbila pengujian ingin berlangsung
sukses:
·
Menspesifikasikan kebutuhan produkpada kelakuan
yang terukur sebelum pengujian dimulai. Strategi pengujian yangbaik tidak hanya
untuk menenmukan kesalahan, namun juga unutk menilai kualitasprogram.
·
Menspesifikasikan tujuan pengujiansecara
eksperangkat lunakisit. Sasaran spesifik dari pengujian harus dinyatakandalam
bentuk yang terukur
·
Mengidentifikasikan kategori useruntuk perangkat
lunak dan membuat profilnya masing-masing. Beberapa kasus yangmenggambarkan
scenario interaksi bagi masing-masing kategori dapat mengurangikerja pengujian
dengan memfokuskan pengujian pada penggunaan actual produk.
·
Membangun rencana pengujian yangmenegaskan rapid
cycle testing. Umpan balik yang muncul dari rapid cycletesting dapaat digunakan
untuk mengontrol kualitas dan strategi pengujian yangsesuai.
·
Membangun perangkat lunak yang tangguhyang
dirancang untuk menguji dirinya sendiri. Perangkat lunak dapatmendiagnosis
jenis-jenis kesalahan tertentu dan mengakomodasi pengujianotomatis dan
pengujian regresi.
·
Menggunakan tinjauan formal yang efektif sebagai
filter sebekum pengujian.Kajian teknis formal dapat mengungkap kesalahan
seefektif pengujian sehinggadapat mengurangi jumlah kerja pengujian.
·
Mengadakan tinjauan formal dapatmengungkap
inkonsistensi, penghapusan, dan kesalahan seketika dalam pendekatanpengujian.
·
Membangun pendekatan yang meningkatsecara
berkelanjutan untuk proses pengujian. Strategi pengujian harus terukur.Metric
yang terkumpul selama pengujian harus digunakan sebagai bagian daripendekatan
control proses statistical bagi pengujian perangkat lunak.
3. PengujianUnit
Unit
testing (uji coba unit) fokusnya pada usahaverifikasi pada unit terkecil dari
desain perangkat lunak, yakni modul. Ujicoba unit selalu berorientasi pada
white box testing dan dapat dikerjakanparalel ayau beruntun dengan modul
lainnya.
PertimbanganPengujian Unit
Interface modul diuji untuk memastikan bahwa informasisecara tepat
mengalir masuk dan keluar dari inti program yang diuji. Strukturdata local
diuji untuk memastikan bahwa data yang tersimpan secara temporaldapat tetap
menjaga integritasnya selama semua langkah langkah di dalamsuatu algoritma
dieksekusi. Kondisi batas diuji untuk memastikan bahwa modulberoperasi dengan
tepat pada batas yang ditentukan untuk membatasipemrosesan. Semua jalur
independen(jalur dasar) yang melalui struktur controldipakai sedikirnya satu
kali. Dan akhirnya penanganan kesalan diuji.
Prosedur Pengujian Unit
Sumber
telah dikembangkan, ditunjang kembali dandiverifikasi untuk sintaksnya, maka
perancangan test case dimulai. Peninjauankembali perancangan informasi akan
menyediakan petunjuk untuk menentukan testcase. Karena modul bukan program yg
berdiri sendiri maka driver (pengendali)dan atau stub perangkat lunaK harus
dikembangkan untuk pengujian unit.
§
Driver adalah program yg menerima data untuk test case dan menyalurkan ke modul
yg diuji danmencetak hasilnya.
§
Stub melayanipemindahan modul yg akan dipanggil untuk diuji
4. Pengujian Integrasi
Pengujian
terintegrasi adl teknik yg sistematis untukpenyusunan struktur program, pada
saat dikerjakan uji coba untuk memeriksakesalahan yg nantinya digabungkan
dengan interface. Metode pengujian:
A. Top down integration
Merupakan pendekatan inkrmental untuk penyusunanstruktur program. Modul
dipadukan dgn bergerak ke bawah melalui kontrol hirarkidimulai dari modul
utama. Modulsubordinat ke modul kontrol utama digabungkanke dalam struktur baik
menurut depth first atau breadth first.
Proses integrasi:
·
Modul utama digunakan sebagai
test driver danstub yg menggantikan seluruh modul yg secara langsung berada di
bawah modulkontrol utama.
·
Tergantung pada pendekatan
perpaduan yg dipilih(depth / breadth)
·
Uji coba dilakukan selama
masing-masing moduldipadukan
·
Pada penyelesaian
masing-masing uji coba stub yglain dipindahkan dgn modul sebenarnya.
·
Uji coba regression yaitu
pengulangan pengujianuntuk mencari kesalahan lain yg mungkin muncul.
B. Buttom up integration
Pengujian
buttom up dinyatakan dgn penyusunan ygdimulai dan diujicobakan dgn atomic modul
(modul tingkat paling bawah pdstruktur program). Karena modul dipadukan dari
bawah ke atas, proses ygdiperlukan untuk modul subordinat yg selalu diberikan
harus ada dan diperlukanuntuk stub yg akan dihilangkan.
Strategi pengujian :
·
Modul tingkat bawah
digabungkan ke dalam clusteryg memperlihatkan subfungsi perangkat lunak
·
Driver (program
kontrol pengujian) ditulisuntuk mengatur input test case dan output
·
Clusterdiuji
·
Driver diganti
dan cluster yg dikombinasikandipindahkan ke atas pada struktur program
5. Pengujian Validasi
Setelah
semua kesalahan diperbaiki maka langkahselanjutnya adalah validasi terting.
Pengujian validasi dikatakan berhasil bilafungsi yg ada pada perangkat lunak
sesuai dgn yg diharapkan pemakai. Validasiperangkat lunak merupakan kumpulan
seri uji coba black box yg menunjukkansesuai dgn yg diperlukan.
Kemungkinan
kondisi setelah pengujian:
§
Karakteristik performansi
fungsi sesuai dgn spesifikasi dan dapat diterima
§
Penyimpangan dari spesifikasi
ditemukan dan dibuatkan daftar penyimpangan.
Pengujian ALPHA dan BETA
Apabila PERANGKAT LUNAK dibuat untuk pelanggan
makadapat dilakukan aceeptance test sehingga memungkinkan pelanggan
untukmemvalidasi seluruh keperluan. Test ini dilakukan karena memungkinkan
pelanggan menemukan kesalahan yg lebih rinci danmembiasakan
pelanggan memahami PERANGKAT LUNAK yg
telah dibuat.
Pengujian Alpha
Dilakukan
pada sisi pengembang oleh seorang pelanggan.Perangkat Lunak digunakan pada
setting yg natural dgn pengembang “yg memandang”melalui bahu pemakai dan
merekam semua kesalahan dan masalah pemakaian
Pengujian Beta
Dilakukan
pada satu atau lebih pelanggan oleh pemakaiakhir perangkat lunak dalam
lingkungan yg sebenarnya, pengembang biasanya tidakada pada pengujian ini.
Pelanggan merekan semua masalah (real atau imajiner) ygditemui selama pengujian
dan melaporkan pada pengembang pada interval waktutertentu.
6. Pengujian Sistem.
Pada
akhirnya PERANGKAT LUNAK digabungkan
dgn elemensystem lainnya dan rentetan perpaduan system dan validasi tes
dilakukan. Jikauji coba gagal atau di luar skope dari proses daur siklus
pengembangan system,langkah yg diambil selama perancangan dan pengujian dapat
diperbaiki.Keberhasilan perpaduan PERANGKAT
LUNAK dan system yg besar merupakan kuncinya.
Sistem
testing merupakan rentetan pengujian ygberbeda-beda dgn tujuan utama
mengerjakan keseluruhan elemen system ygdikembangkan.
Recovery Testing
Adalah
system testing yg memaksa PERANGKAT LUNAK
mengalami kegagalan dalam bermacam-macam cara dan apakah perbaikan
dilakukandgn tepat.
Security Testing
Adalah
pengujian yg akan melalukan verifikasi darimekanisme perlindungan yg akan
dibuat oleh system, melindungi dari hal-hal ygmungkin terjadi.
Strees Testing
Dirancang
untuk menghadapi situasi yg tidak normalpada saat program diuji. Testing ini
dilakukan oleh system untuk kondisi seperti volume data yg tidak normal
(melebihiatau kurang dari batasan) atau fekuensi.
7. Debugging
Debugging bukan
merupakanpengujian, namun merupakan konsekuensi dari pengujian yang berhasil.
Jikasebuah kasus uji berhasil menemukan kesalahan, maka proses debugging
bertujuanuntuk menghilangkan kesalahan tersebut.
Debugging merupakan proses
yangsulit 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 tempatmunculnya gejala.
§
Gejala dapat hilang ketika kesalahanyang lain diperbaiki
§
Gejala dapat ditimbulkan oleh sesuatu yang tidak
salah( misal. Pembulatan yang tidak akurat).
§
Gejala dapat disebabkan oleh masalahtiming.
§
Kemungkinan sulit untuk memproduksi kondisi onput
secara akurat.
§
Gejala dapat terjadi tiba-tiba.
§
Gejala dapat disebabkan oleh sesuatu yang
didistribusikan melewati sejumlah tugas yang bekerja pada prosesor yang berbeda-beda.
Tidak ada komentar:
Posting Komentar