Pertemuan 12 Software Testing
Pertemuan 12 Software Testing
Validation:
Apakah kita membangun produk yang
benar?
Software seharusnya melakukan apa yang
pengguna benar-benar butuhkan
Program testing
Dapat menunjukan keberadaan
kesalahan tapi BUKAN ketidakadaan
kesalahan yang lain
Test yang sukses adalah sebuah test
yang menemukan satu atau lebih
kesalahan
Seharusnya digunakan bersama
dengan verification statik untuk
memberikan V&V sepenuhnya
Exhaustive Testing
loop < 20 X
Selective Testing
Jalur eksekusi yang dipilih
loop < 20 X
Tahapan Testing
Pre-Implementation Testing
Post implementation (Code
Testing)
Metode pengembangan software
apapun yang digunakan, penguji bisa
menggunakan dua teknik testing:
White Box
Black Box
White-Box
Testing
Black-Box Testing
requirements
output
input
events
Strategi OO Testing[1]
Strategi OO Testing[2]
Unit Testing Pengujian class/object
Integration Testing object
integration testing
System Testing
Pengujian class/object
Encapsulated state Memeriksa
interaksi method-method dengan
data obyek
Interaksi antar method Memeriksa
interaksi method-method dari
sebuah obyek
Pewarisan dan polimorfisme
Unit Testing[1]
Tahapan testing yang paling awal.
Tahap selanjutnya terdiri dari integration
testing dan system testing
Biasanya unit didefinisikan sebagai:
Suatu fungsi atau prosedur tunggal yang kohesif
Segmen terkecil dari kode program yang bisa
dikompile secara terpisah.
Sebuah fungsi yang pas pada suatu halaman
tunggal.
Kode yang bisa ditulis oleh seseorang dalam suatu
kurun waktu.
Unit Testing[2]
Input untuk proses test planning terdiri
dari requirement dan detailed design.
Output dari proses test planning
adalah unit test plan.
Tahap selanjutnya adalah akuisisi data
input dan output yang berasosiasi
dengan masing-masing test. Hasil dari
tahap ini dinamakan test set.
Test di eksekusi.
Pengujian Method[1]
Memverifikasi operasi pada nilai normal parameter
(sebuah black box test yang berdasarkan pada
kebutuhan unit)
Memverifikasi operasi pada nilai limit parameter
(black box)
Memverifikasi operasi nilai diluar batas nilai
parameter (black box)
Memastikan bahwa semua instruksi di eksekusi
(statement coverage)
Cek semua path, termasuk semua cabang (decision
coverage)
Cek semua penggunaan object yang dipanggil
Memverifikasi penanganan dari semua struktur data
Pengujian Method[2]
Memverifikasi penanganan semua file
Cek terminasi normal dari semua loop ( part
of correctness proof)
Cek terminasi abnormal dari semua loop
Cek terminasi normal dari semua rekursif
Cek terminasi abnormal dari semua rekursif
Memverifikasi penanganan semua kondisi
error
Cek timing dan sinkronisasi
verifikasi semua ketergantungan hardware
Class Testing
Kombinasikan penggunaan method
biasanya 2-5 METHOD
pilih rangkaian pertama yang paling umum
masukan rangkaian yang mungkin menyebabkan error
Regression Testing
Terlalu sering memperbaiki kesalahankesalahan software memacu pada
kesalahan-kesalahan baru
Seorang programmer yang bijak
memperbaiki suatu kesalahan pada
program ia akan melaksanakan semua
kasus uji dan dan memeriksa hasilnya
apakah program tersebut masih
menghasilkan hasil yang sama
Beta Testing
Jika sebuah produk software akan dibangun
untuk konsumsi publik maka diuji terlebih
dahulu oleh orang luar sebelum akhirnya
direlease.
Beta testing dilakukan oleh sekumpulan orang
yang merepresentasikan suatu tipe user yang
akan mempergunakan software yang sedang
dibangun. Peran mereka yaitu untuk
memberikan feedback dari pengalaman
mereka memakai produk tersebut dalam
lingkungan kerja.
Release testing
Release testing adalah pengujian kelayakan
suatu produk agar dapat dipasarkan keluar.
Apakah semua disk atau CD sudah berisi file-file
yang benar, apakah file-file yang digunakan sudah
pada versi yang benar, apakah disk dan CDnya
bebas dari virus dan terdapat dokumentasi yang
lengkap didalamnya.
Penguji akan melaksanakan pengujian tingkat
tinggi terhadap apakah software telah melakukan
apa yang telah diminta dengan membandingkan
software, dokumentasi kebutuhan, materi
marketing dan dokumentasi user.
Testing Tools[1]
Testing bervolume besar biasanya
membutuhkan penggunaan tool-tool
otomatis. Jacobson menyarankan bahwa
75% dari test lebih baik dilakukan secara
otomatis daripada dilakukan secara manual.
Kemampuan dari tools otomatis system test:
merekam aksi mouse dan keyboard untuk
memungkinkan pengulangan pemutaran
kembali
jalankan test script secara berulang-ulang
memungkinkan untuk merekam hasil test
Testing Tools[2]
Daftar Pustaka
Britton, Carol dan Doake, Jill, Object Oriented
System Development: A gentle Introduction ,
Singapore: McGraw-Hill, Inc., 2001
Braude, Eric J.,Software Engineering: An Object
Oriented Perspective, United State of America: John
Wiley & Sons,Inc., 2000
Bahrami, Ali, Object Oriented System Development,
Singapore: McGraw-Hill, Inc., 1999
Pressman, Roger S.,The 5th edition of Software
Engineering: A Practitioner's Approach,McGraw-Hill.
Sommerville, Ian, Software Engineering, 6th edition,
Pearson Education, 2001
http://www.cetus-links.org/oo_testing.html
http://www.testing.com/writings/1-fault.htm
http://www.rbsc.com/pages/who_who.html