pertemuan 12 software testing
DESCRIPTION
software testingTRANSCRIPT
![Page 1: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/1.jpg)
OO Software Testing
Dikompilasi oleh Dana dari berbagi sumber
![Page 2: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/2.jpg)
Definisi Software Testing
• Software testing adalah aktivitas-aktivitas yang bertujuan untuk mengevaluasi atribut-atribut atau kemampuan sebuah program atau sistem dan penentuan apakah sesuai dengan hasil yang diharapkan [Hetzel88]
• Testing adalah proses pemeriksaan program dengan tujuan tertentu dalam menemukan kesalahan sebelum diserahkan ke pengguna
![Page 3: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/3.jpg)
• Verification:– “Apakah kita membangun produk dengan benar?”– Software seharusnya sesuai dengan
spesifikasinya. Gunakan proses software yang bagus.
• Validation:– “Apakah kita membangun produk yang benar?”– Software seharusnya melakukan apa yang
pengguna benar-benar butuhkan
Verification vs. validation
![Page 4: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/4.jpg)
• 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
Program testing
![Page 5: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/5.jpg)
• Adalah proses yang berbeda• Verification and validation: menunjukkan
keberadaan cacat program• Debugging: menemukan dan memperbaiki
kecacatan-kecacatan ini
Testing and debugging
![Page 6: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/6.jpg)
Tujuan Dilakukan Software Testing
• Untuk meningkatkan kualitas• Untuk Verification & Validation (V&V) • Untuk estimasi reliability [Kaner93] [Lyu95]
![Page 7: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/7.jpg)
Melakukan testing berarti melakukan
• Mendesain test.• Mengimplementasikan test yang telah
didesign. • Mengevaluasi test tersebut.
![Page 8: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/8.jpg)
Exhaustive Testing
loop < 20 Xloop < 20 X
• Terdapat kemungkinan 1014 jalur eksekusi! Jika kita mengeksekusi satu test per millisecond, maka dibutuhkan 3.170 tahun untuk men-test program ini
![Page 9: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/9.jpg)
Selective Testing
loop < 20 Xloop < 20 X
Jalur eksekusi yang dipilihJalur eksekusi yang dipilih
![Page 10: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/10.jpg)
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
![Page 11: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/11.jpg)
White-Box Testing
• …. Tujuan kita adalah menjamin semua statemen dan kondisi telah dieksekusi minimal sekali …..
![Page 12: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/12.jpg)
Black-Box Testing
requirementsrequirements
eventseventsinputinput
outputoutput
![Page 13: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/13.jpg)
Strategi OO Testing[1]
![Page 14: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/14.jpg)
Strategi OO Testing[2]
• Unit Testing Pengujian class/object• Integration Testing object integration
testing• System Testing
![Page 15: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/15.jpg)
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
![Page 16: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/16.jpg)
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.• Definisi yang biasa dipakai yaitu definisi pada point
pertama.
![Page 17: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/17.jpg)
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.
![Page 18: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/18.jpg)
Unit Testing[3]( IEEE )
![Page 19: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/19.jpg)
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
![Page 20: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/20.jpg)
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
![Page 21: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/21.jpg)
Class Testing• Kombinasikan penggunaan method
– biasanya 2-5 METHOD– pilih rangkaian pertama yang paling umum– masukan rangkaian yang mungkin menyebabkan error
• Fokuskan unit test pada masing-masing atribut– inisialisasi, lalu eksekusi rangkaian method yang dipengaruhinya
• Verifikasi masing-masing invariant class tidak berubah• Verifikasi object transisi diantara state-state yang ada.
– Rencanakan rangkaian state/transisisi– Set up object dalam inisial state dengan menyeting variable– Sediakan event pertama dan cek transisi yang terjadi
![Page 22: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/22.jpg)
Pengujian integrasi object• Menguji unit yang telah diuji secara tunggal bekerja
secara baik pula setelah digabungkan pada sistem• Mereka akan digabungkan ke dalam suatu grup logis
yang koheren untuk diuji kembali( subsistem )• Saat subsistem tersebut berhasil bekerja dengan baik
maka akan dilanjutkan dengan menggabungkannya dengan subsistem yang lain dan seterusnya sampai membentuk suatu sistem utuh yang teruji
• Hal yang diperhatikan yaitu memeriksa semua unit apakah bekerja bersama dengan baik.
• Penguji lebih mengkonsentrasikan pada interaksi unit daripada fungsionalitasnya
![Page 23: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/23.jpg)
Merancang dan Melakukan Integration Testing
• Putuskan bagaimana dan dimana untuk menyimpan, menggunakan kembali dan mengkodekan integration test– tunjukan dalam project schedule
• Ekesekusi unit-unit test sebanyak mungin sesuai dengan waktu yang tersedia
• Gunakan test regresi • Pastikan kebutuhan pembangunan telah
dispesifikasikan.• Gunakan use case yang harus diimplementasikan• Eksekusi system test
![Page 24: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/24.jpg)
Artifact yang terlibat dalam proses integration test
• use case model :Kumpulan use case yang menggambarkan penggunaan typical dari aplikasi, dan sequence diagram
• test cases : input untuk setiap test• test procedure : cara bagaimana test di set up, dieksekusi, dan
dievaluasi(hasil). Dapat berupa prosedur manual ataupun menggunakan tools untuk test otomasi
• test evaluation : kesimpulan, detail dan effect dari error yang ditemukan
• test plan : Rencana keseluruhan test• test component : source code untuk test itu sendiri serta untuk
code aplikasi yang akan di test • defect (kerusakan) : laporan untuk setiap defect/error yang
ditemukan, diklasifikasikan berdasarkan type dan tingkat peliknya kerusakan
![Page 25: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/25.jpg)
Tahapan System Testing[1]• Memeriksa apakah sistem sudah berlaku dengan benar
atau belum saat digunakan oleh user.• Memperkirakan apakah sistem dapat menanggulangi
segala kondisi dan data mainstream.• Memeriksa performansi behaviour dari sistem. Misal
berapa lama waktu yang diperlukan sistem untuk mengerjakan suatu tugas yang diberikan.
• Menguji volume, stress dan storage untuk meeriksa performance dibawah kondisi ekstrim seperti jumlah input yang besar, high speed input, jumlah user yang banyak serta meningkatnya jumlah aktivitas secara tiba-tiba.
![Page 26: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/26.jpg)
Tahapan System Testing[1]• Semua perhitungan diperiksa ketepatannya
dengan data dan kondisi yang telah diperkirakan maupun tidak.
• Menguji error handling dan recovery dari sistem seperti memeriksa bahwa akan keluar pesan error yang tepat pada setiap kondisi dan pemulihan yang baik setelah sistem mengalami fatal errror.
• Memeriksa kelayakan tingkat keamanan pada sistem agar user yang tidak berwenang tidak dapat memperoleh akses ke sistem.
![Page 27: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/27.jpg)
Tipe-tipe system testing[1]
– volume : memfokuskan untuk input yang besar– usability : mengukur reaksi user ( skala 1-10)– performance : mengukur kecepatan pada
beberapa keadaan– configurasi : mengkonfogurasi untuk bermacam-
macam hardware atau software– compatibility : komplabiliti dengan aplikasi lain
( contoh: mengukur waktu adaptasi)– reliability/availability : mengukur ketahanan pada
periode waktu yang lama
![Page 28: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/28.jpg)
Tipe-tipe system testing[2]
– security– resource usage : mengukur penggunaan RAM,
ruang disk, dll– installability : di install pada bermacam-macam
keadaan (mengukur waktu install)– recoverability : mengukur waktu untuk me-
recover– serviceability : mengukur waktu service– load/stress: untuk data extreme dan traffic
![Page 29: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/29.jpg)
Tipe-Tipe Testing lainnya
• Regression Testing• Acceptance Testing by user or a testing team• Beta Testing• Release testing
![Page 30: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/30.jpg)
Regression Testing
• Terlalu sering memperbaiki kesalahan-kesalahan 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
![Page 31: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/31.jpg)
Acceptance Testing by user or a testing team
• Acceptance test dilakukan oleh customer setelah suatu software dipasarkan. Biasanya tes ini adalah sekumpulan formal tes yang dilakukan untuk mengetahui apakah sistem tersebut sesuai dengan kriteria penerimaan customer
• Acceptance test sering dilakukan diawal agar para programmer atau developer team bisa melakukannya sebelum secara formal memasarkan software tersebut
![Page 32: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/32.jpg)
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.
•
![Page 33: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/33.jpg)
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.
![Page 34: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/34.jpg)
Siapa yang melakukan testing?
• Orang yang melakukan pengujian akan bergantung pada tahap yang sedang dilakukan dan sumber yang dialokasikan untuk menguji produk software tertentu, yakni :
• Programmer• Tim penguji• Beta tester(Group yang mewakili pasar)• Customer• Maintainer
![Page 35: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/35.jpg)
Standar ANSI/IEEE untuk test dokumentasi[]
• introduction• test plan : item dalam test,ruang lingkup,
pendekatan, resource, jadwal, personel• test design: item yang ditest, pendekatan,
rencana detail• test case : kumpulan input dan event• test procedures : langkah-langkah untuk
menyeting dan mengeksekusi test case
![Page 36: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/36.jpg)
Standar ANSI/IEEE untuk test dokumentasi[]
• test item transmittal report : item-item dalam test, lokasi fisik dari hasil, orang yang bertanggung jawab untuk transmitting
• test log : kronologi record, lokasi fisik dari hasil, nama penguji
• test incident report : dokumentasi dari setiap event yang terjadi selama test, yang membutuhkan investigasi lebih lanjut
• test summary report : kesimpulan-kesimpulan dari keseluruhan point-point di atas
![Page 37: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/37.jpg)
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
![Page 38: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/38.jpg)
Testing Tools[2]
• merekam waktu eksekusi• merekam run time error• membuat dan mengatur regression test• menghasilkan test report• menghasilkan test data• merekam penggunaan memory• mengatur/mengelola test case• analisa keseluruhan
![Page 39: Pertemuan 12 Software Testing](https://reader035.vdocuments.net/reader035/viewer/2022081502/5695d2231a28ab9b02993e00/html5/thumbnails/39.jpg)
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