Metodologi Software dan Testing
6.5 Metodologi Software dan Testing
Metodologi berarti suatu kumpulan tahap-tahap atau fase-fase atau tugas-tugas yang berurutan, dan biasa juga disebut sebagai model siklus hidup. Berdasarkan pada apa yang telah dijelaskan pada sub bab sebelumnya, dijelaskan bahwa standarisasi pengembangan proses (seperti ISO 9000, CMM, dan lain-lain) memiliki cakupan yang lebih luas daripada model siklus hidup software , yang hanya berfokus pada proses pengembangan software . Namun walaupun demikian pengetahuan dan penerapan suatu model siklus hidup software tetap harus dimiliki oleh organisasi sebagai proses utama yang akan dikembangkan, dengan mangadopsi dan mengadaptasikan suatu standar pengemba nga n proses lebih lanjut. Karena untuk dapat mengembangkan proses yang telah ada dengan menggunakan suatu standar pengemba ngan software akan sangat sulit dilakukan bilamana organisasi tersebut tida k m emiliki pengetahuan akan model proses yang sedang atau telah diterapkan. Semua metodologi menggunakan pendekatan tahap/fase. Keseluruhan aktifitas pengembangan dibagi-bagi menjadi tahap-tahap atau fase-fase utama, dengan tiap tahap memiliki serahan/produk akhir sebagai tanda terselesaikannya pelaksanaan proses dari tahap tersebut. Tahapan-tahapan ini mungkin akan bervariasi di tiap organisasi, namun secara keseluruhan dapat dinyatakan ke dalam empat tahap dasar yang sama, yaitu: (1) analisa, (2) disain, (3) implementasi, dan (4) perawa tan.
By Hendranet
Gambar 6.2 Model siklus hidup software.
Metodologi software yang efektif berarti bahwa tahapan detil didefinisikan untuk tiap fase pengembangan. Sedangkan metodologi testing harus merupakan salah satu bagian dari keseluruhan metodologi software . Metodologi testing harus mempertimbangkan apa (tahapan-tahapannya) dan kapan (waktu). Bagaimanapun juga, pada praktek, testing sangat kurang dideskripsikan dan telah berevolusi secara cepat ke arah prosedur testing organisasi yang telah kadaluwarsa dan tidak efektif.
Gambar 6.3 Testing dalam siklus hidup.
Pada awal debutnya, testing dipandang sebagai fase dari pengembangan setelah fase coding . Sistem akan didisain, dibangun dan kemudian dites dan di- debug . Seiring dengan tingkat kedewasaan testing, secara bertahap dikenalkan bahwa siklus hidup testing yang lengkap berada di semua lini dari keseluruhan siklus hidup software . Pada saat ini, testing adalah suatu aktifitas yang dihadirkan secara paralel dengan usaha pengembangan software dan memiliki fase-fase sendiri, yaitu: (1) analisa (perencanaan dan penentuan obyektifitas dan kebutuhan tes), (2) disain (spesifikasi tes yang akan dikembangkan), (3) implementasi (penyusunan atau pengumpulan prosedur dan kasus tes), (4) eksekusi (melakukan dan pengulangan tes), dan (5) perawatan (penyimpanan dan pengubahan tes bilamana software berubah). Sudut pandang testing yang memiliki siklus hidup sendiri ini merupakan perubahan yang dramatis dari beberapa tahun lalu, dimana tiap
orang menyamakan testing dengan eksekusi. Aktifitas perencanaan, pendisainan, dan By Hendranet
penyusunan tes tidak dikenal, dan testing tidak dimulai sampai tes mulai dijalankan.
6.5.1 Siklus hidup pengembangan software
Ada beberapa macam model siklus hidup software , seperti yang telihat pada gambar di bawah ini:
Gambar 6.4 Model-model siklus hidup software.
Model Motivasi
Karakteristik
Contoh Aplikasi
Sistem sederhana,
Kompr omi terhadap kebutuhan, pengembang tunggal, satu Software aplikasi Bulid, tes t, fix
testing, dokumentasi d an
atau beberapa pengguna,
perorangan. kemampuan peraw atan.
kebutuhan minimum terhadap dokumentasi.
Duplikasi dari sistem yang Pembuatan pesawat Realisasi b ahwa fase tertentu
Sta ircase membutuhka n kendali
telah ada dengan
F-15 untuk ekspor
dengan perubahan pengembang an.
modifikasi langsung atau
minor pada avionik. Realisasi bahwa fase tidak
minor.
Staircase with dapat diisolasi, dimana umpan Kebutuhan jelas dan terikat Lokomotif,
pada implementasi
feedback balik tiap fase akan Instrumentasi. meningkatkan kesuksesan.
teknologi.
Kenyataan bahwa pelanggan
Kebutuhan lengkap tidak
tidak selalu mengetahui apa Early prototype yang dibutuhkan. Prototipe
diketahui, namun dapat
Sistem MIS yang
komplek awal dikembangkan untuk
dikenali oleh pengguna.
mendefinisikan kebutuhan. Teknologi telah ditetapkan. Opsi implementasi tidak selalu
Sama dengan early jelas di luar, sehingga
prototype , namun Spiral
Bila kebutuhan, biaya,
ditambahkan prototipe
dengan tingkat tambahan terhadap disain dan implementasi tidak jelas.
resiko dan strategi
ketidakpastian yang penambahan analisa resiko.
lebih tinggi. Tingkah laku sistem yang
Sistem biomedical dibutuhkan tidak selalu dapat
Komplek, sistem baru,
yang komplek, Rapid
ditentukan sampai beberapa
belum pernah ada
stasiun ruang pengalaman operasional Development didapatkan. Sehingga
sebelumnya, kebutuhan
dan disain final berevolusi By Hendranet angkasa, sistem
kendali dan perintah diperlukan konsep penyerahan
terhadap pengalaman
sistem yang berulang-ulang.
operasional.
novel.
Secara umum terdapat dua macam m odel penerapan siklu s hidup testing dalam kaitannya dengan siklus hidup software , yaitu secara tradisional dan paralel.
6.5.2 Siklus hidup testing tradisional
Sebagaimana telah dijabarkan di at as, secara tradisional, testin g diletakan setelah coding, dan dimulai setelah coding selesai.
Gambar 6.5 Siklus hidup testing tradisional.
Permasalahan yang terjadi dengan pendekatan ini adalah testing terlambat memulai proses, akhirnya tes didisain dengan sederhana (ala kadarnya). Biasanya fase coding akan terlambat selesai (85% proyek software terlambat diserahkan atau tidak sama sekali). Pada skenario ini akan terdapat tekanan untuk menyelesaikan produk secepatnya setelah fase coding . Tekanan jadual ini akan terjadi pada fase testing, dimana akan cenderung menyebabkan terjadinya kegagalan dalam menyelesaikan tes sebagaimana mestinya.
6.5.3 Siklus hidup testing paralel
Hanya eksekusi tes yang harus menunggu waktu sampai fase coding selesai. Perencanaan testing dan disain test case dilakukan secara paralel dengan pengembangan. Keberadaan bugs dapat diketahui di awal dari aksi perencanaan dan pendisainan tes, seperti ketidakjelasan kebutuhan yang akan diidentifikasi.
Gambar 6.6 Siklus hidup testing paralel tanpa fungsi pencegahan defect. By Hendranet
Mod el ini untuk kemudian dikem bangkan lagi dengan menambahkan teknik pencegahan defect , untuk meningkatkan kemampuan proses, sehingga bugs tidak sampai muncul lagi di awal.
Gambar 6.7 Siklus hidup testing paralel dengan fungsi pencegahan defect.
Selain itu terdapat pula p engembangan yang lain dari siklus hidup tes ting paralel, yaitu model
V. Proses verifikasi dan validasi digunakan pada pengembangan software dengan model V. Proses ini menggambarkan hubungan pengembangan dan testing dalam bentuk V. Pada tiap fase pengembangan terdapat tes yang akan memeriksa apakah pengembangan pada tahap tersebut telah benar. Tes ada di tiap tingkatan dapat direncanakan dan didisain pada aktifitas di tingkat sebelum aktifitas tersebut dilaksanakan.
Gambar 6.8 Siklus hidup testing model V.