STRATEGI PENGUJIAN PL
• Big Bang
• Pengujian PL secara keseluruhan, setelah seluruh komponen PL selesai dibuat
• Incremental
• Pengujian Secara bertahap
METODA PENGUJIAN PL
• Functional (Black Box)
• Fokus pada output yang dihasilkan dengan memberikan input dan kondisi eksekusi
• Membandingkan kesesuaian output dengan spesifikasi kebutuhan fungsional
STRUCTURAL (WHITE BOX)
• Menguji dengan memperhatikan mekanisme internal sistem
• Menguji untuk memastikan operasi internal berjalan sesuai spesifikasi
• Semua komponen diuji
UNIT TESTING
• Pengujian unit (komponen) secara terisolir à menguji di luar program yang menggunakan unit ini.
• Memeriksa apakah suatu individual program unit (subprogram, object class, package, module) memiliki perilaku yang benar.
TIPE PENGUJIAN
• Pengujian Statis (Static Testing)
• Pengujian terhadap satu unit tanpa melakukan eksekusi terhadap unit tersebut
• Pengujian Dinamis (Dynamic Testing)
• Pengujian dengan mengeksekusi unit dengan menggunakan data uji.
• White Box dan Black Box
STATIC TESTING
Code Walktrough
• Kode program dan dokumentasi di-review oleh tim
• Fokus ada pada kode program
• Informal
• Dipimpin oleh programmer
Code Inspection
• Kode program dan dokumentasi di-review oleh tim dengan suatu daftar rujukan
• Definisi dan struktur data
• Algoritma
• Interface antar komponen
• Prakiraan unjuk kerja program à penggunaan memori, kecepatan pengolahan
• Fokus ada pada kode program
• formal
• Dipimpin oleh moderator BUKAN programmer
BASIS PATH TESTING
• Seluruh independent path diuji
• Menguji semua pernyataan untuk nilai ‘true’ dan ‘false’
• Mengesekusi semua kalang (loop) untuk kondisi-kondisi batas.
• Memeriksa struktur data internal
• Menganalisa rancangan prosedural
• Mendefinisikan basis set dari execution paths
• Test cases untuk basis set mengeksekusi setiap statemen program minimal satu kali.
IMPLEMENTASI PENGUJIAN
Langkah-langkah Pengujian
- Setlah rancangan unit selesai lakukan pengujian statis unit.
- Membuat test plan untuk unit.
- Apabila unit yang diuji merujuk unit lain, dan belum selesai, buat stubs untuk unit ini.
- Buat test driver untuk unit:
• test case data (from the test plan)
• Eksekusi unit, menggunakan test case data
• Hasil ekseksui test case
INTEGRATED TESTING
• Fokus deteksi fault pada sekelompok komponen/unit, seperti fungsi, kelas, packages.
• Dua atau lebih komponen diintegrasikan dan diuji.
• Jika tidak ada, maka komponen lain ditambahkan dan diuji.
Pendekatan
• Bottom-up testing
• Top-down testing
• Sandwich Testing
LANGKAH INTEGRATION TESTING
- Berdasarkan strategi yang dipilih, pilih komponen yang akan diuji. Lakukan pengujian unit untuk semua komponen.
- Lakukan persiapan untuk pengujian (pembuatan drivers, stubs)
- Lakukan functional testing: Definisikan test cases yang menguji semua komponen yang di uji.
- Lakukan structural testing: Definisikan test cases yang menguji semua komponen yang di uji.
- Lakukan performance tests
- Simpan record test cases dan activitas pengujian.
- Ulangi langkah 1 to 6 sampai keseluruhan sistem diuji.
Tujuan integration testing adalah mengidentifikasi errors dalam konfigurasi komponen yang ada.
SYSTEM TESTING
• Dilakukan setelah komponen-komponen diintegrasikan.
• Menjamin bahwa sistem yang lengkap sesuai dengan kebutuhan fungsional dan non fungsional sistem.
• Pada tahap ini fault yang terjadi pada komponen telah teridentifikasi dan dikoreksi.
• Functional Testing
• Performance Testing
• Acceptance Testing
• Installation Testing
FUNCTIONAL TESTING
• requirements testing à menguji fungsionalitas sistem.
• Pada esensinya sama dengan pengujian Blackbox
• Test cases dirancang dari dokumen analisis kebutuhan (mis. user manual) dan berfokus pada kebutuhan dan fungsi utama (mis. use cases)
• Pengujian dilakukan dengan memiliki test yang relevan pada pengguna dan memiliki peluang yang besar untuk menemukan failure.
PERFORMANCE TESTING
Jenis test:
• Menemukan perbedaan antara goal (kebutuhan non fungsional) yang ditentukan pada saat pengembangan sistem dengaan yang diimplementasikan dalam sistem.
• Stress testing – menguji apakah sistem dapat merespons banyak request yang datang secara bersamaan.
• Volume testing – menguji sistem dengan memberi data uji yang sangat besar/banyak.
• Security testing – menguji keamanan sistem (menemukan security faults). Menggunakan hacker untuk menguji sistem.
• Timing testing – mengevaluasi waktu tanggap (response times) dan waktu untuk melakukan sebuah fungsi
• Environmental test – menguji toleransi terhadap lingkungan seperti panas, kelembaban, gerak
• Quality testing – pengujian keandalan, maintain- ability dan availabilitas sistem
• Recovery testing – pengujian terhadap tanggapan sistem terhadap adanya kesalahan atau ketiadaan data.
ACCEPTANCE TESTING
• Tujuan : menunjukkan bahwa sistem sudah siap untuk pemakaian operasional.
• Pilihan test dibuat oleh client/sponsor
• Banyak test dapat diambil dari integration testing
• Dilakukan oleh client, bukan developer.
• Kebanyakan bug dalam perangkat lunak biasanya ditemukan oleh client setelah sistem digunakan, bukan oleh developer atau testers à test tambahan (Pilot Test atau Field Test)
PILOT TESTING
• Alpha test:
• Client menggunakan perangkat lunak di tempat pengembang (development environment).
• Perangkat lunak digunakan dalam setting terkendali, pengembang selalu siap untuk memperbaiki kesalahan yang terjadi.
• Beta test:
• Dilakukan tempat pengguna (lingkungan yang sebenarnya).
• Pengembang tidak ada
• Perangkat lunak digunakan dalam lingkungan yang sebenarnya (target environment).
INSTALLATION TESTING
• Sistem di install pada target environment dan dievalusi.
• Mengulangi test cases yang dieksekusi selama functional dan performance testing dalam target environment.
• Beberapa kebutuhan mungkin tidak bisa diuji dalam development environment sehingga perlu dibuat test cases yang baru.