Strategi Pengujian Perangkat Lunak & Sistem Pertemuan 12 Strategi Pengujian Perangkat Lunak & Sistem Febriyanno Suryana, S.Kom, MM surya_gsc04@yahoo.com 0852 7474 1981 SI -2011
Strategi Pengujian Perangkat Lunak & Sistem Pendekatan strategis pengujian PL & sistem (SI) dpt dilihat sebagai berikut ini : 1. Tes Unit ( Unit Test) --> modul / kode (code) 2. Tes Integrasi ( Integration Test) --> desain (design) 3. Tes Validasi ( Validation Test) --> persyaratan (condition) 4. Tes Sistem ( system Test) --> rekayasa sistem
Strategi Pengujian Perangkat Lunak & Sistem Pd awalnya pengujian berfokus pd setiap modul program secara individual, dg memastikan bahwa modul program berfungsi secara tepat sebagai suatu unit, karena itu pengujian ini dinamakan tes unit ( unit test ). Tes unit menggunakan pengujian white-box. Selanjutnya modul harus dirakit / diintegrasikan untuk membentuk suatu paket PL yg lengkap. Tes integrasi ( integration test ) menekankan pd masalah-2 yg berhubungan dg masalah verifikasi (pembuktian) dan konstruksi (pembangunan/penyusunan). Tes integrasi ini menggunakan pengujian black-box ( catt: sebagian white-box bisa dipakai disini).`
Strategi Pengujian Perangkat Lunak & Sistem Setelah PL diintegrasi ( dikonstruksi ), serangkaian high-order test dilakukan. Kriteria validasi ( dibangun selama analisis persyaratan ) harus diuji. Tes validasi ( Validation Test ) memberikan jaminan akhir dimana PL harus memenuhi semua persyaratan fungsional, tingkah laku dan kinerja yang sesuai dengan keinginan user. Metode/teknik pengujian black-box digunakan secara eksklusif selama validasi.
Strategi Pengujian Perangkat Lunak & Sistem Langkah pengujian high-order yg terakhir ada diluar batas rekayasa PL dan masuk dlm konteks rekayasa SI yg lebih luas. PL harus dikombinasikan dg elemen SI yg lain (mis: p.keras, DB, SO, manusia, kontrol, dll). Tes sistem ( System Test ) membuktikan bahwa semua elemen SI saling bertautan dg tepat dan keseluruhan fungsi/kinerja sistem dpt dicapai.
1. Unit Test Tes unit berfokus pada usaha verifikasi pd unit terkecil dari desain PL yaitu : Modul Program. Tes unit biasanya berorientasi pada white-box, dan langkahnya dpt dilakukan secara paralel untuk modul bertingkat.
Unit Test…
Bagaimana mengujinya…? Unit Test… Interface : Interface modul diuji untuk memastikan bahwa informasi secara tepat mengalir masuk dan keluar dari modul yg diuji. Bagaimana mengujinya…?
Unit Test…
Unit Test…
Unit Test…
Unit Test… Struktur data lokal : Struktur data lokal diuji untuk memastikan bahwa data yg tersimpan secara temporal dpt tetap menjaga integritasnya selama semua langkah di dlm suatu algorithma di eksekusi. Kondisi batas : Kondisi batas diuji untuk memastikan bahwa modul beroperasi dg tepat pd batas yg ditentukan untuk membatasi pemrosesan. Jalur independen : Semua jalur independen yg ada pd modul diuji.
Unit Test… Jalur penanganan kesalahan : Desain program yg bagus menunjukan bahwa kondisi kesalahan diantisipasi dan jalur penanganan kesalahan dipasang untuk merutekan kembali atau dg jelas menghentikan pemrosesan pd saat suatu kesalahan benar-2 terjadi. Jalur penanganan kesalahan yg ada pd modul, diuji apakah sudah berfungsi dg baik.
Unit Test…
Unit Test… DRIVER Adalah : tidak lebih dari sebuah “program utama” yg fungsinya menerima data test case, melewatkan data tsb ke modul yg diuji, dan mencetak/menampilkan hasil yg relevan. STUB Adalah : sebuah program bantu yg berfungsi menggantikan modul yg merupakan subordinat dari modul yg diuji.
Proses Testing Unit Testing Module Testing Sub-system Testing System Acceptance Testing User Testing Component Testing Integration Testing
2. Integration Test Adalah : teknik sistematis untuk mengkonstruksi struktur program sambil melakukan pengujian untuk mengungkap kesalahan sehubungan dg interfacing. Integrasi ada 2 cara : Integrasi non-inkremental Integrasi ini dilakukan dg cara semua modul digabung seluruhnya. Setelah itu barulah dilakukan pengujian. 2) Integrasi inkremental Integrasi ini dilakukan untuk membangun dan menguji interface program dlm segmen-2 kecil, sehingga kesalahan lebih mudah diisolasi dan dibetulkan. Interface lebih mungkin untuk diuji dg lengkap.
Integration Test… Berikut ada beberapa strategi/pendekatan dlm integrasi inkremental : Integrasi Top-Down adalah pendekatan integrasi untuk membangun struktur program, dimana modul-2 diintegrasikan dg menggerakkan kebawah melalui hirarkhi kontrol, dimulai dari modul kontrol utama ( modul: menu utama ). Integrasi top-down ada 2 cara : cara vertikal cara horizontal
Integration Test…
Integration Test… 2) Integrasi Bottom - Up Adalah pendekatan integrasi untuk membangun struktur program, dimana modul-2 diintegrasikan dimulai dari modul-modul atomik yg ada di level bawah menuju keatas. Integrasi bottom - up ada 2 cara : cara vertikal cara horizontal
Integration Test…
Integration Test…
Integration Test… Catatan : Pemilihan strategi integrasi (top-down atau bottom-up) tergantung pada karakteristik program dan juga jadwal proyek. Secara umum pendekatan gabungan (disebut Sandwitch testing) dapat dilakukan. Strategi gabungan yg terbaik adalah : strategi top-down untuk level-level atas dari struktur program, dan strategi bottom-up untuk level-level bawah.
Seberapa baik sistem yang sudah dibangun ? Dua Aspek yang dipertimbangkan: Apakah implementasi sudah sesuai dengan spesifikasi ? Apakah spesifikasi sesuai dengan kebutuhan user ? Validasi “Apakah sistem yang dikembangkan sudah benar?” Pengujian dimana sistem ketika diimplementasikan sesuai dengan yang iharapkan Verifikasi “Apakah sistem dikembangkan dengan cara yang benar ?” Pengujian apakah sistem sudah sesuai dengan spesifikasi
3. Validation Test Bertujuan untuk memastikan apakah semua elemen konfigurasi PL telah dikembangkan dengan tepat. Validasi berhasil bila PL berfungsi sesuai harapan pengguna. Validasi dicapai melalui sederetan pengujian Black-Box yang memperlihatkan kesesuaian dengan persyaratan pelanggan
Validation Test… Bentuk tes validasi : 1. Tes / pengujian Penerimaan ( Acceptance Test ) 2. Tes / pengujian Alpha 3. Tes / pengujian Beta
Validation Test… Acceptance Test Apabila PL dibangun untuk satu pelanggan maka sederetan pengujian penerimaan dapat dilakukan untuk memungkinkan pelanggan memvalidasi semua persyaratan (pengujian dilakukan oleh pelanggan) Pengujian terakhir sebelum sistem dipakai oleh user. Melibatkan pengujian dengan data dari pengguna sistem. Test Alpha & Beta Apabila PL dibangun sebagai sebuah produk untuk digunakan oleh banyak pelanggan, maka dilakukan test Alpha dan Beta.
Validation Test… Alpha Test Dilakukan pada sisi pengembang oleh user yang potensial. PL digunakan pada setting yang natural (sebenarnya), sehingga bila terjadi error, user dapat merekam masalah yang ada. Dilakukan pada sebuah lingkungan yang terkontrol oleh pengembang.
Validation Test… Beta Test Dilakukan oleh satu atau lebih user. Biasanya dilakukan oleh selain pengembang / pihak ketiga. Pengujian dilakukan diluar kontrol pengembang sistem. User merekam semua masalah yang mereka temukan dan melaporkan ke pengembang. Kemudian pengembang melakukan modifikasi dan akhirnya mempersiapkan pelepasan produk ke seluruh pelanggan.
4. Sistem Test Bertujuan untuk memastikan bahwa semua elemen/komponen sistem (SI) saling berhubungan dengan tepat dan keseluruhan fungsi/kinerja sistem dapat tercapai. Bentuk tes sistem : 1. Tes / pengujian Perbaikan 2. Tes / pengujian Keamanan 3. Tes / pengujian Stress 4. Tes / pengujian Kinerja
Sistem Test… Tes Perbaikan Pengujian yang memaksa PL/sistem untuk gagal(dirusakkan) dengan berbagai cara dan memeriksa apakah perbaikan dapat dilakukan dengan tepat. Tes Keamanan Pengujian yang dilakukan untuk membuktikan apakah perlindungan (keamanan) yang ada pada sistem benar-benar dapat melindungi sistem dari gangguan.
Sistem Test… Tes Stress Pengujian yang dilakukan untuk melihat bagaimana sistem dalam keadaan abnormal. Menguji sistem dengan nilai yg melebihi maksimum load. Stressing suatu system menyebabkan tidak mudah kerusakan. Contoh : melakukan login ke server ketika sejumlah besar workstation melakukan proses menjalankan perintah sql database Stressing suatu system test failure behaviour. Systems seharusnya tidak gagal total. Stress testing mencek kehilangan service yg tidak diduga ataupun data yg hilang. Khusus untuk sistem terdistribusi dapat menyebabkan degradasi jaringan sehingga overload.
Sistem Test… Tes Kinerja Pengujian untuk menguji kinerja run-time (saat berjalan) dari PL didalam konteks sistem yang terintegrasi Catt : Tes kinerja sering digunakan bersamaan dengan tes stress, dimana kita bisa melihat bagaimana kinerja sistem dalam keadaan abnormal.
Sistem Test…
Debugging Debugging dilakukan jika pengujian berhasil menemukan kesalahan Jika TESTING bertujuan mencari kesalahan, maka DEBUGGING bertujuan menghilangkan kesalahan Debugging merupakan proses yang berurutan, debug merupakan suatu seni dalam pemrograman.
End Session