310 likes | 606 Views
Pengujian pada Perangkat Lunak. Lukman Hakim. Pengujian Validasi. KajianKonfigurasi (audit ) Elemen dari proses validasi Memastikan apakah semua elemen konfigurasi perangkat lunak telah dikembangkan dengan tepat. Pengujian Validasi. Pengujian Alpha dan Beta Pengujian Alpha
E N D
Pengujian pada Perangkat Lunak Lukman Hakim
Pengujian Validasi • KajianKonfigurasi(audit) • Elemendariprosesvalidasi • Memastikanapakahsemuaelemenkonfigurasiperangkatlunaktelahdikembangkandengantepat
Pengujian Validasi • Pengujian Alpha dan Beta • Pengujian Alpha • Usability Labs • Usability Factor Checklist • Pengujian Beta
Pengujian Sistem • Pengujian Perbaikan • Pengujian Keamanan • Pengujian Stress • Pengujian Kinerja
Pendekatan Strategis ke Pengujian Perangkat Lunak • Penguujian Unit • Pengujian Integrasi • Pengujian Validasi • Pengujian sistem
Pengujian Unit • Berfokus pada inti terkecil dari desain perangkat lunak yaitu modul • Biasanya berorientasi pada white box
Pengujian Unit • Checklist untuk pengujian Interface • Apakah jumlah parameter input sama dengan jumlah argumen? • Apakah antara atribut dan parameter argumen sudah cocok. • Apakahantarasistemsatuanparameter danargumensudahcocok? • Apakahjumlahargumenyang ditransmisikankemodulyangdipanggilsamadenganatributparameter?
lanjutan • Apakahatributdariargumenyangditransmisikankemodulyang dipanggilsamadenganatributparameter? • Apakahsistemunit dariargumenyang ditransmisikankemodulyang dipanggilsamadengansistemsatuanparameter? • Apakahjumlahatributdanurutanargumenkefungsi-fungsibuilt-in sudahbenar? • Adakahreferensikeparameteryang tidaksesuaidenganpoinentriyang ada? • Apakahargumeninput only diubah?
Pengujian Unit • Apakahdefinisivariabelglobal konsistendenganmodul? • Apakahbatasanyang dilaluimerupakanargumen? Test case harusdidesainuntukmengungkapkesalahandalamkategori • Pengetikanyang tidakteraturdantidakkonsisten • Inisialisasiyangsalahataunilai-nilaidefault • Namavariabelyang tidakbenar • Tipedatayang tidakkonsisten • Underflow, overflow danpengecualianpengalamatan
Integritas testing • Pengujiankeseluruhansystem atausub-system yang terdiridari komponenygterintegrasi. • Test integrasimenggunakanblack-box dengantest case ditentukandarispesifikasi. • Kesulitannyaadalahmenemukan/melokasikan • PenggunaanIncremental integration testing dapatmengurangimasalahtersebut
Pendekatan Integrasi Testing Top-down testing • Berawaldarilevel-atassystem danterintegrasidenganmenggantimasing-masingkomponensecaratop-down dengansuatustub(programpendekyangmengenerateinput kesub-system ygdiuji). Bottom-up testing • Integrasicomponents dilevelhinggasistemlengkapsudahteruji. Padaprakteknya, kebanyakantest integrasimenggunakankombinasikeduastrategipengujiantsb.
PendekatanTesting Architectural validation • Top-down integration testing lebihbaikdigunakandalammenemukanerror dalamsistemarsitektur. System demonstration • Top-down integration testing hanyamembatasipengujianpadaawaltahappengembangansystem. Test implementation • Seringkalilebihmudahdenganmenggunakanbottom-up integration testing
Interface Testing • Dilakukankalaumodule-module dansub-system terintegrasidanmembentuksistemyang lebihbesar. • Tujuannyauntukmedeteksifault terhadapkesalahaninterface atauasumsiyangtidakvalid tentanginterface tsb. • Sangatpentinguntukpengujianterhadappengembangansistemdgnmenggunakanpendekatanobject-oriented ygdidefinisikanolehobject-objectnya
Pengujian Aplikasi Server • Volume Testing • Stress Testing • Performance Testing • Data Recovery Testing • Data Backup dan Restore Testing • Data security Tetsing
Volume Testing • Menemukankelemahansistemselamamelakukanpemrosesan data dalamjumlah yang besardalamperiodewaktuyangsingkat. • Tujuan: meyakinkanbahwasistemtetapmelakukanpemrosesan data anatarbatasanfisikdanbatasanlogik. • Contoh:Mengujikanprosesantar server danantarpartisihardisik pd satu server
Strees Testing • Tujuan: mengetahuikemampuansistemdalammelakukantransaksiselamaperiodewaktupuncakproses. Contohperiodepuncak: ketikapenolakanproseslogin on-line setelahsistem down ataupadakasus batch, pengiriman batch prosesdalamjumlahygbesardilakukansetelahsistemdown. • Contoh: Melakukan login ke server ketikasejumlahbesarworkstationmelakukanprosesmenjalankanperintahsql database
Soal Latihan • Lakukan diskusi pada sistem yang kalian buat dengan menentukan beberapa skenario pengujian pada Volume dan strees testing. • Buatlah Daftar List untuk Unit testing.
Validasi Sistem Kritis Lukman Hakim
Pendahuluan • Proses V&V harus mendemonstrasikan bahwa sistem memenuhi spesifikasinya dan bahwa layanan dan prilaku sistem mendukung persyaratan klien • Sehingga diperlukan penambahan analisis dan pengujian normal, karena : • Biaya kegagalan jauh lebih besar dari pada sistem non-kritis • Validasi atribut tingkat dependabilitas meyakinkan user • Lebih dari 50% biaya pengembangan total utk sistem PL kritis agar kegagalan sistem yg mahal terhindari • Contoh : kegagalan sistem PL dalam hal misi pada roket Ariane 5 th 1996, yg mengakibatkan beberapa satelit rusak. • Kualitas sistem dipengaruhi oleh kualitas proses yg dipakai untuk mengembangkan sistem
Validasi Sistem Kritis • Validasi terhadap reliability (keandalan), safety (keselamatan) dan security (keamanan) bagi sistem berbasis komputer. Validation perspectives • Validasi Reliability/keandalan • Apakah keandalan sistem telah sesuai dengan spesifikasinya? • Apakah keandalan sistem telah memberikan kepuasan pada user pemakai sistem? • Validasi Safety/keselamatan • Menjamin bahwa kecelakaan tidak akan terjadi atau bahwa konsekuensi kecelakaan akan minimal. • Validasi Security/keamanan • Apakah sistem dan datanya aman terhadap serangan external?
Tekhnik Validasi • Static techniques • Review terhadap disain /inspeksi program • Dynamic techniques • Pengujian Statistik • Pengujian berbasis skenario • Pemeriksaan Run-time • Process validation • Desainprosespembangunan yang meminimalkankemungkinankesalahandariprosessesuai dgn dependibilitas sistem (keandalan, ketersediaan, keselamatan dan keamanan)
Static validation techniques • Static validation lebih fokus pada analisa dokumentasi sistem(persyaratan, disain, kode dan data uji) • Fokus pada penemuan eror sistem dan identifikasi permasalahan yg berpotensi muncul saat exekusi. • Beberapa dokumen (argumen terstruktur, pembuktian secara matematis, dll) dapat disiapkan utk mendukung validasi statik
Static techniques for safety validation • Menunjukkan keselamatan sistem melalui sebuah pengujian merupakan sesuatu yg sulit • Karena pengujian bertujuan utk menunjukkan apa yg dilakukan sistem saat situasi normal. • Tidak mungkin dilakukan pengujian thd setiap kondisi operasional
Safety reviews • Peninjauan thd Review for kebenaran function • Peninjauan thd maintainable, understandable structure • Peninjauan thd algorithma dan disain struktur data berdasarkan spesifikasi • Peninjauan thd konsistensi kode dgn algorithma dan disain struktur data • Peninjauan thd kelayakan sistem pengujian
Review guidance • Buatlah software sesederhana mungkin • Gunakan teknik yg sederhana dlm pencegahan error seperti menghindari pemakaian pointers and recursion • Gunakan information hiding (penyembunyian inf) agar inf yg dsembunyikan tidak dirusak oleh komponen program yg tidak seharusnya menggunakannya • Gunakan teknik toleransi kesalahan yg sesuai , namun jangan pernah berfikir bahwa hasilnya benar-benar aman
Hazard-driven analysis • Efektifatau tidaknya jaminankeselamatanbergantungpadaidentifikasibahaya • Keselamatan dapat dijamin melalui • Menghindari bahaya sistem pemotongan yg menuntut operator agar menekan 2 tombol terpisah • Deteksi dan membuang bahaya deteksi tekanan berlebihan dan pembukaan katup sebelum meledak pd pabrik kimia • Membatasi kerusakan pemadam api otomatis • Safety review (ulasankeselamatan)harusmenunjukkanbahwasatuataulebihteknikinitelahditerapkanuntuksemuabahayayg telah diidentifikasi
The system safety case • Saat ini praktek formal untukkeselamatanmenjadihal yang diperlukanuntukkeselamatansemuasistem berbasiskomputer, misalnyaisyaratrelkeretaapi, pengendalianlalulintasudara, dan lain-lain • Kasus keselamatanmenyajikandaftarargumen, berdasarkanbahaya yg teridentifikasi • Mengapaadapenerimaan yg rendahthd kemungkinanbahwabahayainitidakakanmengakibatkankecelakaan • Argumendapatdidasarkanpadabukti formal, desaindasar, keselamatanbukti, dll. FaktorProsesmungkinjugadimasukkan
Formal methods and critical systems • Pengembangansistemkritisadalahsalahsatu 'keberhasilan' dari metode formal • DiInggrisdigunakan untukpengembanganbeberapajenisperangkatlunakkeamananuntukaplikasi pertahanan • Saatinitidakadaperjanjianumumtentangnilai metode formal dalampengembangansistem