Strategi Pengujian Perangkat
Lunak
Fakultas Ilmu Komputer dan Teknologi Informasi
Jurusan Sistem Informasi
Univesitas Gunadarma
Materi Perkuliahan
Pendekatan strategis terhadap pengujian perangkat
lunak.
Pengujian modul perangkat lunak.
Pengujian terintegrasi.
Uji validasi.
Pengujian sistem.
Seni debugging.
Pendekatan strategis terhadap
pengujian perangkat lunak Pendekatan pengujian perangkat lunak ada 4
yaitu :
1. Pengujian Unit
2. Pengujian Integrasi
3. Pengujian Validasi
4. Pengujian Sistem
Pengujian Unit
Pengujian unit berfokus pada inti terkecil dari desain
perangkat lunak yaitu modul testing/unit testing.
Pengujian unit berorientasi pada white box testing.
Pengujian unit dilakukan oleh pengembang sendiri atau
antar pengembang.
Pengujian interface dalam pengujian unit menggunakan
checklist.
Test case dalam pengujian unit didesain untuk
mengungkap/mencari kesalahan dalam sistem.
Seberapa baik sistem yang dibangun?
Dua hal yang harus diperhatikan yaitu :
1. Apakah sistem sudah sesuai spesifikasi ?
2. Apakah spesifikasi sesuai dengan kebutuhan user ?
Sehingga muncul dua V :
Validasi
1. Apakah sistem yang dikembangkan sudah benar ?
2. Apakah pengujian sistem ketika diimplementasikan sudah
sesuai dengan yang diharapkan ?
Verifikasi
1. Apakah sistem dikembangkan dengan cara yang benar ?
2. Apakah pengujian sistem sudah sesuai dengan spesifikasi ?
Pengujian Integrasi
Pengujian keseluruhan sistem atau subsystem yang terdiri dari komponen yang terintegrasi dengan fokus pada masalah interfacing.
Pengujian integrasi lebih menggunakan pengujian independen (ITG=Independent Test Group)
Pengujian integrasi melakukan pengujian perancangan perangkat lunak.
Pengujian integrasi menggunakan black box testing dan white box testing dengan test case yang ditentukan dari spesifikasinya.
Kesulitan dalam pengujian integrasi adalah mencari atau menemukan kesalahan, sehingga digunakan incremental integration testing.
Incremental Integration Testing
T3
T2
T1
T4
T5
A
B
C
D
T2
T1
T3
T4
A
B
C
T1
T2
T3
A
B
Test sequence1
Test sequence2
Test sequence3
Pengujian Integrasi
Ada dua ancaman dalam pengujian integrasi secara
incremental :
Top-Down
Modul diintegrasikan dengan menurun dilihat dari
hirarki kontrol, dimulai dari modul pengendali utama
(main program).
Pengintegrasian modul-modul di bawah digabung
dengan cara breadth first dan depth first.
Pengujian Integrasi
Bottom Up
Modul diintegrasikan dengan menaik dilihat dari
hirarki kontrol, dimulai dari modul atomik (modul di
tingkat paling bawah) yang membentuk cluster (build)
Proses integrasi
Top Down Testing
Level 2Level 2Level 2Level 2
Level 1 Level 1Testing
sequence
Level 2stubs
Level 3stubs
. . .
Bottom Up Testing
Level NLevel NLevel NLevel NLevel N
Level N–1 Level N–1Level N–1
Testingsequence
Testdrivers
Testdrivers
Pengujian Validasi
Pengujian validasi merupakan pengujian kesesuaian
dengan requirement.
Pengujian validasi adalah pengujian Alpha dan Beta.
Pengujian validasi menggunakan metode black box
testing.
Pengujian validasi dimulai jika pada tahap pengujian
integrasi tidak ditemukan kesalahan.
Pengujian validasi dikatakan sukses jika perangkat
lunak yang digunakan berfungsi dan sesuai harapan
pemakai.
Pengujian Sistem
Pengujian sistem menguji perangkat lunak dan elemen
sistem yang lain sebagai suatu kesatuan.
Persiapkan masalah : saling tuding
Pengujian sistem terdiri dari :
1. Pengujian pemulihan (recovery testing)
2. Pengujian keamanan (security testing)
3. Pengujian kekuatan (stress testing)
4. Pengujian kinerja (performance testing)
Pengujian Sistem
Pengujian Volume
Bagaimana sistem dapat terus beroperasi dalam volume pelayanan yang besar.
Pengujian Recovery
Bagaimana sistem dapat merecover dirinya terhadap suatu kesalahan.
Pengujian Keamanan
Bagaimana sistem dapat mempertahankan dirinya agar tidak masuk ke dalam “state of insecure”.
Pengujian Stress
Bagaimana sistem dapat bertahan beroperasi dalam tekanan waktu dan banyak pelayanan.
Pengujian Performa
Bagaimana performa sistem dalam melaksanakan pekerjaannya.
Pengujian Volume
Menemukan kelemahan sistem selama melakukan
pemrosesan data dalam jumlah yang besar dalam
periode waktu yang singkat.
Tujuannya untuk meyakinkan bahwa sistem tetap
melakukan pemrosesan data antara batasan fisik dan
batasan logik.
Contoh : Mengujikan proses antar server dan antar
partisi hardisik pada satu server.
Recovery Testing
Investigasi dampak kehilangan data melalui proses
recovery ketika terjadi kegagalan proses.
Penting dilakukan karena data yang disimpan di server
dapat dikongurasi dengan berbagai cara.
Kehilangan data terjadi akibat kegagalan sistem,
hardisk rusak, peghapusan yang tidak sengaja,
kecelakaan, virus dan pencuri.
Security Testing
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.
Buer-Overow - Menangani parameter input yang
melebihi batas buer.
Penetration-test : password crack, brute-force attack,
etc.
Stress Testing
Menguji sistem dengan nilai yang melebihi maksimum
load. Stressing suatu system menyebabkan tidak
mudah kerusakan.
Stressing suatu system test failure behaviour. Systems
seharusnya tidak gagal total. Stress testing mencek
kehilangan service yang tidak diduga ataupun data
yang hilang.
Khusus untuk sistem terdistribusi dapat menyebabkan
degradasi jaringan sehingga overload.
Contoh: Melakukan login ke server ketika sejumlah
besar workstation melakukan proses menjalankan
perintah sql database.
Performance Testing
Dilakukan secara paralel dengan Volume dan Stress testing
untuk mengetahui unjuk kerja sistem (waktu respon,
throughput rate) pada beberapa kondisi proses dan
kongurasi.
Dilakukan pada semua kongurasi sistem perangkat keras dan
lunak.
Misalnya pada aplikasi Client-Server diujikan pada kondisi
korporate ataupun lingkungan sendiri (LAN vs. WAN, Laptop
vs.Desktop)
Menguji sistem dengan hubungannya sistem ke lain pada
server yang sama.
Load Balancing Monitor
Network Monitor
Debugging
Ancaman dalam debugging
1. Brute force ; memory dump, run time trace, write
statements.
2. Backtracking ; perunutan balik mulai dari kesalahan
yang di ketahui hingga sampai lokasi sumbernya.
3. Cause elimination ; dengan melakukan induksi atau
reduksi dengan isolasi sebagai kemungkinan
penyebab kesalahan.