1. Testing is the exposure of a system to trial input to see whether it produces corect output
2. Adalah proses eksekusi suatu program dengan maksud menemukan kesalahan
3. Elemen kritis dari jaminan kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi, desain dan pengkodean
Proses Testing
1. System Testing
- Pengujian terhadap integrasi sub-system, yaitu keterhubungan antar sub-system
- Pengujian terakhir 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)
3. Component testing
- Pengujian komponen-komponen program
- Biasanya dilakukan oleh component developer (kecuali untuk system kritis)
4. Integration testing
- Pengujian kelompok komponen-komponen yang terintegrasi untuk membentuk sub-system ataupun system
- Dilakukan oleh tim penguji yang independent
- Pengujian berdasarkan spesifikasi sistem
Rencana Pengujian
1. Proses testing
- Deskripsi fase-fase utama dalam pengujian
- Semua kebutuhan user diuji secara individu
- Menspesifikasi komponen sistem yang diuji
5. Prosedur Pencatatan Hasil dan Prosedur
6. Kebutuhan akan Hardware dan Software
7. Kendala-kendala
- Mis: kekuranga staff, alat, waktu dll.
Hubungan Antara Rencana Pengujian Dan Proses Pengembangan Sistem
Failures & Faults
Failure : Output yang tidak benar/tidak sesuai ketika sistem dijalankan.
Fault : Kesalahan dalam source code yang mungkin menimbulkan failure ketika code yang fault tersebut dijalankan.
Failure Class
- Transient : Muncul untuk input tertentu
- Permanent : Muncul untuk semua input
- Recoverable : Sistem dapat memperbaiki secara otomatis
- Unrecoverable : Sistem tidak dapat memperbaiki secara otomatis
- Non-corrupting : Failure tidak merusak data
- Corrupting : Failure yang merusak sistem data
Contoh ...
Prioritas Testing
- Hanyatest yang lengkap yg dapat meyakinkan sistem terbebas dari kesalahan, tetapi hal ini sangat sulit dilakukan.
- Prioritas dilakukan terhadap pengujian kemampuan sistem, bukan masing-masing komponennya.
- Pengujian untuk situasi yg tipikal lebih penting dibandingkan pengujian terhadap nilai batas.
Test Data dan Kasus Test
Test data: Input yang yang direncankan digunakan oleh sistem.
Test cases: Input yang digunakan untuk menguji sistem dan memprediksi output dari input jika sistem beroperasi sesuai dengan spesifikasi.
Proses Defect Testing
Structural Testing
- Disebut juga white-box testing
- Penentuan test case disesuaikan dengan struktur sistem. Knowledge program digunakan untuk mengidentifikasi test case tambahan.
- Tujuannya untuk menguji semua statement program (debug).
Path Testing
- Tujuannya meyakinkan bahwa himpunan test case akan menguji setiap path pada suatu program paling sedikit satu kali.
- Titik awal untuk path testing adalah suatu program flow graph yang menunjukkan node-node yang menyatakan program decisions (mis.: if-then-else condition) dan busur menyatakan alur kontrol
- Statements dengan conditions adalah node-node dalam flow graf.
Program Flow Graphs
- Menggambarkan alur kontrol. Setiap cabang ditunjukkan oleh path yg terpisah dan loop ditunjukkan oleh arrows looping kembali ke loop kondisi node.
- Digunakan sebagai basis untuk menghitung cyclomatic complexity
- Cyclomatic complexity = Jumlah edges – Jumlah Node +2
- Cyclomatic complexity menyatakan jumlah test untuk menguji control statements
Independent Paths
- 1, 2, 3, 8, 9
- 1, 2, 3, 4, 6, 7, 2
- 1, 2, 3, 4, 5, 7, 2
- 1, 2, 3, 4, 6, 7, 2, 8, 9
- Test cases harus ditentukan sehingga semua path tsb tereksekusi.
Tidak ada komentar:
Posting Komentar