Anda di halaman 1dari 23

Software Engineering

Teknik Pengujian

Jenis Pengujian
Verifikasi
Proses menentukan apakah suatu fase/modul telah dilaksanakan dengan benar Are we building the product right?

Jenis Pengujian
Validasi
Evaluasi secara intensif terhadap produk sebelum diberikan kepada klien Are we building the right product?

Kualitas Produk
Kualitas suatu perangkat lunak ditentukan oleh terpenuhi atau tidaknya spesifikasi yang diharapkan.

SOFTWARE QUALITY ASSURANCE (SQA)


Memastikan kualitas dari software process sehingga kualitas produk terjamin Kelompok SQA harus independence terhadap kelompok pengembang

Non Execution-Based Testing


- Blind-spot
Dokumen diteliti oleh orang-orang dengan berbagai ketrampilan yang luas. Pelaksanaan:
Walkthrough inspection

Non Execution-Based Testing


Walkthrough
terdiri dari 4-6 orang terdapat perwakilan dari masing-masing tim pembuat spesifikasi, klien, SQA dan tim yang akan bekerja pada fase selanjutnya Masing-masing reviewer mempelajari materi yg akan dievaluasi, selanjutnya membuat 2 macam daftar, yaitu daftar hal-hal yang tidak dipahami oleh reviewer dan daftar kesalahan yang ditemukan oleh reviewer.

Non Execution-Based Testing


Walkthrough
Tugas kelompok ini hanyalah menemukan kesalahan (bukan memperbaiki kesalahan) keterbatasan waktu mengakibatkan mutu perbaikan yg dihasilkan tidak sebaik jika perbaikan dilakukan oleh seseorang yang terlatih dalam hal itu. tidak semua hal yang dianggap kesalahan, benar-benar salah

Non Execution-Based Testing


Kelompok inspection terdiri dari 4 orang:
moderator, perancang, implementor, dan tester

Kesalahan dicatat berdasarkan tingkat (serius/ tidak) dan tipe (logika/interface) permasalahan.

Non Execution-Based Testing


Beberapa acuan yang dipakai untuk mengukur efektivitas inspection:
fault density , jumlah kesalahan per halaman fault detection rate , jumlah kesalahan yang dapat dideteksi per jam fault detection efficiency , jumlah kesalahan per orang per jam yang terdeteksi.

Execution-Based Testing
Program testing, cara yang efektif untuk menemukan keberadaan bug EBT adalah suatu proses pengujian suatu produk berdasarkan hasil eksekusi pada suatu lingkungan yang diketahui.

Execution-Based Testing
Sifat-sifat suatu produk dapat diukur berdasar:
Kegunaan (utility), apakah kebutuhan pengguna terpenuhi jika produk dijalankan pada kondisi yang diijinkan oleh spesifikasi program. Keandalan (reliability) , jumlah frekuensi terjadinya kesalahan Kekuatan (robustness) , jangkauan kondisi operasi, kemungkinan hasil yang salah untuk masukan yang valid, kemungkinan hasil yang benar untuk masukan yang tidak valid. Performa (performance) , mis: kecepatan, jumlah memori yang dibutuhkan, dll. Kebenaran (correctness) , apakah hasil keluaran sesuai dengan spesifikasi output.

Execution-Based Testing

Modul Testing
Informal testing
dilakukan oleh programmer pada saat mengkodekan program. Kesalahan perbaikan yang terjadi tidak didokumentasikan

Formal testing
dilakukan oleh tim SQA setelah programmer selesai mengimplimentasikan suatu modul. Test ini meliputi non-execution based test dan execution based test. Setiap kesalahan yang terjadi, perbaikan yg dilakukan harus didokumentasikan

Fisibilitas Testing to Code

Glass-Box Module Testing


Structural Testing
masing-masing path (jalur) harus diuji setidaknya satu kali masing-masing branch (cabang) harus diuji setidaknya satu kali masing-masing statement (perintah) harus diuji setidaknya satu kali

Glass-Box Module Testing


Structural Testing
Kelemahan model ini adalah:
jika masing-masing jalur hanya diuji sekali, belum menjamin bahwa produk sudah bug free. path hanya bisa dicoba kalau path tersebut exist

Glass-Box Module Testing


Structural Testing
Mis. Suatu program untuk menentukan apakah tiga buah variabel bernilai sama.

Bagaimana hasil tes untuk data test sbb: Data Test 1 : x=1,y=1,z=1 dan x=1,y=2,z=3 Data Test 2 : x=2,y=2,z=2 dan x=2,y=1,z=3

Glass-Box Module Testing


Structural Testing
Mis. path exist untuk membatasi agar tidak terjadi pembagian dengan bilangan nol

Jika path tidak exist, maka ada kemungkinan zeroDivisionRoutine() tidak akan pernah dipanggil, krn data test d tidak sama dengan nol.

Glass-Box Module Testing


Complexity Testing
Jumlah baris per-modul Basili, Hutchens, Takahashi, Kamayachi cyclomatic complexity McCabe Software science metric (SSM) Halstead
Penghitungan jumlah operator dan operand dalam suatu modul N1 = total operator N2 = total operand n1 = jumlah operator yang unik n2 = jumlah operand yang unik

Glass-Box Module Testing

Jika banyak kesalahan yg ditemukan pd saat pengujian maka modul tersebut harus dibuang dan didesain ulang. Hal ini sesuai dg penelitian Myers yg menunjukkan bahwa semakin banyak kesalahan yg ditemukan pada tahap pengujian semakin besar kemungkinan kesalahan yang tidak terdeteksi.

Cleanroom

End Of Presentation
Any Questions