Strategi Pengujian Perangkat Lunak
Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan Sistem Informasi Univesitas Gunadarma
Tujuan Pembelajaran
Memahami langkah-langkah dalam pengujian perangkat lunak.
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.
Prosedure Pengujian Modul/Unit
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 A
T1
T1
A T1
T2
A
T2 T2
B
B
T3 T3
B
C T4
T3 C
T4 T5
D Test sequence 1
Test sequence 2
Test sequence 3
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.
Proses Integrasi
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 1
Testing sequence
Level 2 Le vel 2 stubs
Le vel 3 stubs
Level 1
Level 2
Level 2
. ..
Level 2
Bottom Up Testing Test drivers Level N
Test drivers
Level N
Level N–1
Le vel N
Level N–1
Level N
Level N
Level N–1
Testing sequence
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.
Proses Pengujian Validasi
Pengujian Sistem
1. 2. 3.
4.
Pengujian sistem menguji perangkat lunak dan elemen sistem yang lain sebagai suatu kesatuan. Persiapkan masalah : saling tuding Pengujian sistem terdiri dari : Pengujian pemulihan (recovery testing) Pengujian keamanan (security testing) Pengujian kekuatan (stress testing) 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 1. 2. 3.
Ancaman dalam debugging Brute force ; memory dump, run time trace, write statements. Backtracking ; perunutan balik mulai dari kesalahan yang di ketahui hingga sampai lokasi sumbernya. Cause elimination ; dengan melakukan induksi atau reduksi dengan isolasi sebagai kemungkinan penyebab kesalahan.
Proses debugging