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.