pengujian perangkat lunak - dinus.ac.iddinus.ac.id/repository/docs/ajar/10_pengujian.pdf ·...
TRANSCRIPT
PengujianPerangkatLunak
TIM PPL
TEKNIK INFORMATIKA
5/28/2019 SOFTWARE TESTING - NH @2018 1
Pengujian• Testing adalah proses menganalisa suatu entitas
software untuk mendeteksi perbedaan antarakondisi yang ada dengan kondisi yang tidakdiinginkan (defect/errors/bugs) dan mengevaluasifitur-fitur dari entitas software
(standar ANSI/IEEE 1059)
5/28/2019 SOFTWARE TESTING - NH @2018 2
TujuanMenemukan sebanyak mungkin masalah (error)
Tujuan menemukan masalah adalah memperbaikinya
Sebuah pengujian yang sukses adalah menemukankesalahan yang belum ditemukan.
5/28/2019 SOFTWARE TESTING - NH @2018 3
Akktivitas Pengembangan PL
5/28/2019 SOFTWARE TESTING - NH @2018 4
Aktivitas Pengujian
5/28/2019 SOFTWARE TESTING - NH @2018 5
Peran tiap Proses Pengujian
5/28/2019 SOFTWARE TESTING - NH @2018 6
Testing vs. DebuggingPengujian berbeda dengan debugging◦ Debugging dilakukan bila sudah ditemukan suatu
kesalahan, dan tujuannya mencari sumberkesalahan (fault atau defect)
◦ Debugging tetap menjadi bagian dari strategipengujian
5/28/2019 SOFTWARE TESTING - NH @2018 7
Failure, Error, Fault and Defect
Error– Error adalah status dari sistem– Status error ini bisa menyebabkan kegagalan jika tidak adaperbaikan
Fault– Fault adalah sumber dari error
Defect– Sinonim Fault, Sering disebut juga bug
Failure◦ Kegagalan (failure) terjadi kalau ada perilaku dari sistem
yang tidak sesuai dengan permintaan di spesifikasi sistem
5/28/2019 SOFTWARE TESTING - NH @2018 8
V & VVerifikasiSekumpulan aktivitas untuk menjamin bahwasoftware sudah mengiimplementasikan secara benarsuatu fungsi
ValidasiSekumpulan aktivitas untuk menjamin bahwasoftware sudah dibuat dengan benar sesuaidengan kebutuhan pengguna
Boehm [Boe81]:◦ Verification: "Are we building the product right?“
◦ Validation: "Are we building the right product?"
5/28/2019 SOFTWARE TESTING - NH @2018 9
Tester?Software Developer
• Mengerti sistem
• Menguji untukmembuktikan bahwaprogramnya sudah benar
5/28/2019 SOFTWARE TESTING - NH @2018 10
Independence Testing Group
Harus belajar sistem
Menguji untuk membuktikanbahwa program masih adayang salah
Siklus PengujianPerencanaan Pengujian
Perancangan Pengujian
Eksekusi Pengujian
Laporan Pengujian
5/28/2019 SOFTWARE TESTING - NH @2018 11
Siklus PengujianPerencanaan Pengujian
Perancangan Pengujian
Eksekusi Pengujian
Laporan Pengujian
5/28/2019 12
Perencanaan apa saja yangakan diuji
Perencanaan waktu Perencanaan sumberdaya
yang diperlukan• Orang• PL pendukung• Alat/perangkat keras• Lingkungan pengujian• dan lain-lain
Perencanaan prosedurumum pengujian
SOFTWARE TESTING - NH @2018
Siklus PengujianPerencanaan Pengujian
Perancangan Pengujian
Eksekusi Pengujian
Laporan Pengujian
5/28/2019 13
• Untuk apapun yang akandiuji, maka perlu dirancangKasus Pengujian (Test Case)• Test Case berisi:
• Masukan yang diuji• Harapan Pengujian• Cara menilai hasil
eksekusi pengujian
SOFTWARE TESTING - NH @2018
Siklus PengujianPerencanaan Pengujian
Perancangan Pengujian
Eksekusi Pengujian
Laporan Pengujian
5/28/2019 14
• Dilakukan sesudah kodeprogram selesai dikerjakan.
• Eksekusi program dilakukandengan menggunakanmasukan data yang sudah dirancang
SOFTWARE TESTING - NH @2018
Siklus PengujianPerencanaan Pengujian
Perancangan Pengujian
Eksekusi Pengujian
Laporan Pengujian
5/28/2019 15
Laporan pengujian berisi laporanuntuk setiap hasil eksekusi TestCase:• Lulus pengujian jika hasileksekusi program memberikanhasil yang sama dengan harapan hasil• Tidak lulus pengujian jika hasileksekusi memberikan hasil yang berbeda• Kadang dapat disertai dengancatatan khusus
SOFTWARE TESTING - NH @2018
Kriteria Pengujian yang BaikMemiliki kemungkinan tinggi untuk menemukanerror
Pilih teknik yang terbaik◦ Sesuai dengan karakteristik software yang diuji
◦ Tidak terlalu sederhana juga tidak terlalu kompleks
5/28/2019 SOFTWARE TESTING - NH @2018 16
Strategi Pengujian PL
‘testing-in-the-small’ hingga ‘testing-in-the-large’
PL konvensional◦ Unit testing: fokus pada tiap komponen individual, memastikan
tiap fungsi berjalan
◦ Integration testing: fokus pada desain dan konstruksi arsitektur PL
◦ Validation testing: memastikan PL memenuhi semua kebutuhan
◦ System Testing: PL dan elemen sistem lain diuji secara keseluruhan
PL OO ◦ Fokus pada pengujian tiap kelas termasuk atribut dan operasi
◦ Dilanjutkan pengujian komunikasi / kolaborasi antar kelas
5/28/2019 SOFTWARE TESTING - NH @2018 17
Unit / Modul / Komponen Testing
5/28/2019 SOFTWARE TESTING - NH @2018 18
Metode Pengujian PL
5/28/2019 SOFTWARE TESTING - NH @2018 19
Blackbox VS WhiteboxBlackbox testing
◦ Tidak perlu mengetahui struktur software
◦ Juga disebut dengan specification-based atau functional testing
Whitebox testing
◦ Harus mengetahui struktur danimplementasi dari software
5/28/2019 SOFTWARE TESTING - NH @2018 20
Whitebox TestingMeyakinkan bahwa semua statement / kondisi dieksekusiminimum satu kali
Contoh White-box testing• Control Flow Testing• Data Flow Testing• Mutation Testing
Path Input Expected Result
1 (10, 3, 2) 10
2 (25, 15, 40) 40
3 (10, 15, 6) 15
4 (10, 15, 19) 19
5/28/2019 SOFTWARE TESTING - NH @2018 21
Blackbox TestingPengujian Black-Box dilakukan karena isi source code tidak bisa dilihat, hanya spesifikasinya saja
Disebut juga Functional Testing, karena kita hanyamelihat fungsionalitas dari unit yang diuji
Spesifikasi mendefinisikan apa yang dilakukan, Initial State (IS), dan juga Final State(FS)◦ Apa saja input-nya◦ Apa saja output-nya◦ Apa saja requirement/event yang merubah state
5/28/2019 SOFTWARE TESTING - NH @2018 22
Pengujian IntegrasiPengujian unit fokus pada komponen/unit individual
◦ Sesudah semua fault di hilangkan dari setiap komponen, & unit tidak lagimemiliki error, maka unit/komponen ini siap diintegrasikan ataudigabungkan
Pengujian integrasi akan mendeteksi fault yang belumterdeteksi saat pengujian unit
◦ Fokusnya lebih ke sekumpulan komponen/unit
Dua atau lebih komponen akan diintegrasikan dan di uji◦ Setelah tidak ditemukan kesalahaan, maka komponen baru dapat
digabungkan.
◦ Urutan integrasi dapat menentukan usaha keseluruhan untuk melakukanpengujian integrasi◦ Kesalahan urutan integrasi dapat menambah biaya, sumber daya yang diperlukan.
5/28/2019 SOFTWARE TESTING - NH @2018 23
Strategi Pengujian IntegrasiPendekatan ‘BIG BANG’
Pendekatan incremental◦ Top Down testing
◦ Bottom Up testing
◦ Sandwich Testing
5/28/2019 SOFTWARE TESTING - NH @2018 24
System TestingPengujian validasi: Fokus pada kebutuhan software
Pengujian alpha / Beta: Fokus pada pengguna (bagaimana mereka menggunakan)
Recovery Testing: Software dibuat 'gagal' dan dilihat apakah proses pemulihan sudah dapat dilakukan. Contoh: software yang memanfaatkan internet melihat perilaku pemulihan ketika internet tiba-tiba turun.
Pengujian keamanan: Pastikan apakah mekanisme perlindungan sudah melindungi 'penetrasi‘
Stress testing: Sistem diuji bagaimana ketika dihadapkan dengan permintaan penggunaan sumber daya yang melebihi jumlah normal, atau frekuensi atau volume yang normal
Pengujian kinerja: Menguji kinerja PL ketika dijalankan pada konteks tertentu
5/28/2019 SOFTWARE TESTING - NH @2018 25
TugasBuatlah rencana dan rancangan pengujian proyek.
1. Rencana meliputi kapan, dimana, berapa dan siapa tester, dll
2. Rancangan seluruh kasus uji lengkap dengan masukan dan harapan
5/28/2019 SOFTWARE TESTING - NH @2018 26