Pengujian
pada
Perangkat
Lunak
Pengujian Validasi
KajianKonfigurasi(audit)Elemen dari proses validasi
Memastikan apakah semua elemen konfigurasi
perangkat lunak telah dikembangkan dengan tepat
Pengujian Validasi
Pengujian Alpha dan BetaPengujian Alpha
Usability Labs
Usability Factor Checklist
Pengujian Sistem
Pengujian PerbaikanPengujian Keamanan Pengujian Stress
Pendekatan Strategis ke Pengujian
Perangkat Lunak
Penguujian Unit Pengujian Integrasi Pengujian Validasi Pengujian sistemPengujian Unit
Berfokus pada inti terkecil dari desain
perangkat lunak yaitu modul
Pengujian Unit
Checklist untuk pengujian Interface
Apakah jumlah parameter input sama dengan
jumlah argumen?
Apakah antara atribut dan parameter argumen
sudah cocok.
Apakah antara sistem satuan parameter dan
argumen sudah cocok?
Apakah jumlah argumen yang ditransmisikan
kemodul yang dipanggil sama dengan atribut parameter?
lanjutan
Apakah atribut dari argumen yang ditransmisikan
kemodul yang dipanggil sama dengan atribut parameter?
Apakah sistem unit dari argumen yang
ditransmisikan kemodul yang dipanggil sama dengan sistem satuan parameter?
Apakah jumlah atribut dan urutan argumen
kefungsi-fungsi built-in sudah benar?
Adakah referensi keparameter yang tidak sesuai
dengan poin entri yang ada?
Pengujian Unit
Apakah definisi variabel global konsisten dengan
modul?
Apakah batasan yang dilalui merupakan argumen?
Test case harus didesain untuk mengungkap kesalahan dalam kategori
Pengetikan yang tidak teratur dan tidak konsisten Inisialisasi yang salah atau nilai-nilai default
Nama variabel yang tidak benar Tipedata yang tidak konsisten
Integritas testing
Pengujian keseluruhan system atau
sub-system yang terdiri dari komponen yg terintegrasi.
Test integrasi menggunakan black-box
dengan test case ditentukan dari spesifikasi.
Kesulitannya adalah menemukan/melokasikan Penggunaan Incremental integration testing
Incremental Integrasi
Testing
Pendekatan Integrasi
Testing
Top-down testing
Berawal dari level-atas system dan terintegrasi
dengan mengganti masing-masing komponen secara top-down dengan suatu stub (program pendek yang mengenerate input kesub-system yg diuji).
Bottom-up testing
Integrasi components dilevel hingga sistem
lengkap sudah teruji.
Pada prakteknya, kebanyakan test integrasi menggunakan kombinasi kedua strategi pengujian tsb.
PendekatanTesting
Architectural validation
Top-down integration testing lebih baik
digunakan dalam menemukan error dalam sistem arsitektur.
System demonstration
Top-down integration testing
hanyamembatasipengujianpadaawaltahappeng embangansystem.
Test implementation
Sering kali lebih mudah dengan menggunakan
Interface Testing
• Dilakukan kalau module-module dan
sub-system terintegrasi dan membentuk sistem yang lebih besar.
• Tujuannya untuk medeteksi fault terhadap
kesalahan interface atau asumsi yang tidak valid tentang interface tsb.
• Sangat penting untuk pengujian terhadap
pengembangan sistem dgn menggunakan pendekatan object-oriented yg didefinisikan oleh object-objectnya
Pengujian Aplikasi Server
Volume TestingStress Testing
Performance Testing Data Recovery Testing
Data Backup dan Restore Testing Data security Tetsing
Volume Testing
Menemukan kelemahan sistem selama
melakukan pemrosesan data dalam jumlah yang besardalamperiode waktuyang singkat.
Tujuan: meyakinkan bahwa sistem tetap
melakukan pemrosesan data anatar batasan fisik dan batasan logik.
Contoh:Mengujikan proses antar server dan
Strees Testing
Tujuan: mengetahui kemampuan sistem
dalam melakukan transaksi selama periode waktu puncak proses. Contoh periode puncak: ketika penolakan proses login on-line setelah sistem down atau pada kasus batch, pengiriman batch proses dalam jumlah yg besar dilakukan setelah sistemdown.
Contoh: Melakukan login ke server ketika
sejumlah besarworkstation melakukan proses menjalankan perintah sql database
Soal Latihan
Lakukan diskusi pada sistem yang kalian buat
dengan menentukan beberapa skenario pengujian pada Volume dan strees testing.
Validasi Sistem
Kritis
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
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
Tekhnik Validasi
Static techniques
Review terhadap disain /inspeksi program
Dynamic techniques
Pengujian Statistik
Pengujian berbasis skenario Pemeriksaan Run-time
Process validation
Desain proses pembangunan yang meminimalkan
kemungkinan kesalahan dari proses sesuai 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
Safety reviews
1. Peninjauan thd Review for kebenaran function
2. Peninjauan thd maintainable, understandable structure
3. Peninjauan thd algorithma dan disain struktur data berdasarkan spesifikasi
4. Peninjauan thd konsistensi kode dgn algorithma dan disain struktur data
Review guidance
1. Buatlah software sesederhana mungkin
2. Gunakan teknik yg sederhana dlm pencegahan error seperti menghindari pemakaian pointers and recursion
3. Gunakan information hiding (penyembunyian inf) agar inf yg dsembunyikan tidak dirusak oleh komponen program yg tidak seharusnya menggunakannya
4. Gunakan teknik toleransi kesalahan yg sesuai , namun jangan pernah berfikir bahwa hasilnya benar-benar aman
Hazard-driven analysis
1. Efektif atau tidaknya jaminan keselamatan bergantung pada identifikasi bahaya
2. 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
3. Safety review (ulasan keselamatan) harus menunjukkan bahwa satu atau lebih teknik ini telah diterapkan untuk semua bahaya yg telah diidentifikasi
The system safety case
1. Saat ini praktek formal untuk keselamatan menjadi hal yang diperlukan untuk keselamatan semua sistem berbasis komputer, misalnya isyarat rel kereta api, pengendalian lalu lintas udara, dan lain-lain
2. Kasus keselamatan menyajikan daftar argumen, berdasarkan bahaya yg teridentifikasi
3. Mengapa ada penerimaan yg rendah thd
kemungkinan bahwa bahaya ini tidak akan mengakibatkan kecelakaan
4. Argumen dapat didasarkan pada bukti formal, desain dasar, keselamatan bukti, dll. Faktor Proses mungkin juga dimasukkan
Formal methods and critical systems
Pengembangan sistem kritis adalah salah satu
'keberhasilan' dari metode formal
Di Inggris digunakan untuk pengembangan
beberapa jenis perangkat lunak keamanan untuk aplikasi pertahanan
Saat ini tidak ada perjanjian umum tentang
nilai metode formal dalam pengembangan sistem