Strategi Pengujian Perangkat Lunak dilakukan untuk memudahkan para perancang untuk menentukan keberhasilan system yang telah dikerjakan.
Proses Testing
Pengujian
masing-masing unit komponen program untuk meyakinkan bahwa sudah beroperasi
secara benar
Pengujian terhadap koleksi unit-unit komponen yang
saling berhubungan.
Pengujian
terhadap koleksi module-module yang membentuk suatu sub-system (aplikasi)
Pengujian
terhadap integrasi sub-system, yaitu keterhubungan antar sub-system
Acceptance
Testing
- Pengujian terakhirs sebelum sistem dipakai oleh
user.
- Melibatkan pengujian dengan data dari pengguna
sistem.
- Biasa dikenal sebagai “alpha test” (“beta test”
untuk software komersial, dimana pengujian dilakukan oleh potensial customer)
Rencana Pengujian
v Proses testing
Deskripsi
fase-fase utama dalam pengujian
v
Pelacakan Kebutuhan
Semua
kebutuhan user diuji secara individu
v Item yg diuji
Menspesifikasi komponen sistem yang diuji
v
Jadual Testing
v
Prosedur Pencatatan Hasil dan Prosedur
v
Kebutuhan akan Hardware dan Software
v
Kendala-kendala
Mis: kekuranga staff, alat, waktu dll.
Failure and Faults
q Failure:
output yang tidak benar/tidak sesuai ketika sistem dijalankan
q Fault:
kesalahan dalam source code yang mungkin menimbulkan failure ketika code yang
fault tersebut dijalankan
Prioritas Testing
v
Hanya test yang lengkap yang dapat meyakinkan
sistem terbebas dari kesalahan, tetapi hal ini sangat sulit dilakukan.
v
Prioritas dilakukan terhadap pengujian kemampuan
sistem, bukan masingmasing komponennya.
v
Pengujian untuk situasi yang tipikal lebih penting
dibandingkan pengujian terhadap nilai batas.
Test
Data Dan Kasus Test
q Test Data
Input
yang direncanakan digunakan oleh sistem.
q Test
Cases
Input yang digunakan untuk menguji sistem dan
memprediksi output dari input jika sistem beroperasi sesuai dengan spesifikasi.
Pendekatan Strategis Pengujian Perangkat Lunak
v
Pengujian Unit
v
Pengujian Integrasi
v
Pengujian Validasi
v
Pengujian Sistem
Pengujian Unit
q
Berfokus pada inti terkecil dari desain
perangkat lunak yaitu modul
q
Uji coba unit selalu berorientasi pada white box
testing
Dapat dikerjakan paralel
atau beruntun dengan modul lainnya
Integration Testing
q
Pengujian keseluruhan system atau sub-system
yang terdiri dari komponen yang terintegrasi.
q
Test
integrasi menggunakan black-box dengan test case ditentukan dari
spesifikasi.
q
Kesulitannya adalah menemukan/melokasikan
q
Penggunaan Incremental integration testing dapat
mengurangi masalah tersebut.
Pendekatan Integration Testing
v Top-down
Testing
Berawal dari
level-atas system dan terintegrasi dengan mengganti masingmasing komponen
secara top-down dengan suatu stub (program pendek yg mengenerate input ke
sub-system yang diuji).
v Bottom-up
Testing
Integrasi components di level hingga sistem lengkap
sudah teruji.
Pada prakteknya, kebanyakan test integrasi menggunakan kombinasi kedua
strategi pengujian tsb.
Pendekatan
Testing
v Architectural
Validation
Top-down
integration testing lebih baik digunakan dalam menemukan error dalam sistem
arsitektur.
v System
Demonstration
Top-down
integration testing hanya membatasi pengujian pada awal tahap pengembangan
system.
v Test Implementation
Seringkali
lebih mudah dengan menggunakan bottom-up integration testing
Interface Testing
q
Dilakukan kalau module-module dan sub-system
terintegrasi dan membentuk sistem yang lebih besar
q
Tujuannya untuk medeteksi fault terhadap kesalahan interface atau asumsi yang
tidak valid tentang interface tersebut.
q
Sangat penting untuk pengujian terhadap
pengembangan sistem dengan menggunakan pendekatan object-oriented yang
didefinisikan oleh objectobjectnya
Pengujian
Validasi
v Kajian Konfigurasi (audit)
q
Elemen dari proses validasi
q
Memastikan apakah semua elemen konfigurasi
perangkat lunak telah dikembangkan dengan tepat
v Pengujian
Alpha dan Beta
q
Pengujian Alpha
ü
Usability labs
ü
Usability factors checklist
q
Pengujian Beta
Pengujian
Sistem :
q
Pengujian Perbaikan
q
Pengujian Keamanan
q
Pengujian Stress
q
Pengujian Kinerja
Pengujian
Aplikasi Server :
q
Volume Testing
q
Stress Testing
q
Performance Testing
q
Data Recovery Testing
q
Data Backup and Restore Testing
q
Data Security Testing
Volume Testing
q
Menemukan kelemahan sistem selama melakukan
pemrosesan data dalam jumlah yang besar dalam periode waktu yang singkat.
q
Tujuan: meyakinkan bahwa sistem tetap melakukan
pemrosesan data antar batasan fisik dan batasan logik.
q
Contoh:
Mengujikan proses antar server dan antar partisi
hardisk pada satu server.
Stress Testing
q
Tujuan: mengetahui
kemampuan sistem dalam
melakukan transaksi selama periode waktu puncak proses.
q
Contoh periode puncak: ketika penolakan proses
login on-line setelah sistem down atau pada kasus batch, pengiriman batch
proses dalam jumlah yang besar dilakukan setelah sistem down.
q
Contoh: Melakukan login ke server ketika
sejumlah besar workstation melakukan proses menjalankan perintah sql
database.
Performance Testing
q
Dilakukan secara paralel dengan Volume dan
Stress testing untuk mengetahui unjuk kerja sistem (waktu respon,
throughput rate) pada beberapa kondisi
proses dan konfigurasi.
q
Dilakukan pada semua konfigurasi sistem
perangkat keras dan lunak. Misal :
pada aplikasi Client-Server diujikan pada kondisi
korporate ataupun lingkungan sendiri (LAN vs. WAN, Laptop vs. Desktop)
q
Menguji sistem dengan hubungannya ke sistem yang
lain pada server yang sama.
q
Load Balancing Monitor
q
Network Monitor
Data Recovery Testing
q
Investigasi dampak kehilangan data melalui
proses recovery ketika terjadi kegagalan proses.
q
Penting dilakukan karena data yg disimpan di
server dapat dikonfigurasi dengan berbagai cara.
q
Kehilangan Data terjadi akibat kegagalan sistem,
hardisk rusak, peghapusan yang tidak sengaja, kecelakaan, virus dan pencuri.
Data Backup dan Restore Testing
q
Dilakukan untuk melihat prosedur back-up dan
recovery.
q
Diakukan dengan mensimulasikan beberapa
kesalahan untuk menguj i proses backup dan recovery.
q
Pengujian dilakukan terhadap strategi backup:
frekuensi , medium, waktu, mekanisme backup (manual/ otomatis), personal, ? Berapa lama backup
akan disimpan.
q
Switching antara live dan backup server ketika
terjadi kerusakan (load log transaction pada back-up kemudian melakukan
recovery).
Data Security Testing
q
Privilege
access terhadap database diujikan
pada beberapa user yang tidak memiliki privilege access ke database.
Shutdown database
engine melalui operating system (dengan beberapa
perintah OS) yang dapat mematikan aplikasi database.