Pengujian Perangkat Lunak Berorientasi Objek
Tim RPL Teknik Informatika
Pengujian • Pengujian adalah proses menganalisa suatu entitas software untuk mendeteksi perbedaan antara kondisi yang ada dengan kondisi yang tidak diinginkan (defect/errors/bugs) dan mengevaluasi fitur-fitur dari entitas software
(standar ANSI/IEEE 1059)
Tujuan • Menemukan sebanyak mungkin masalah (error) • Tujuan dari menemukan masalah adalah memperbaikinya • Sebuah pengujian yang sukses adalah menemukan kesalahan yang belum ditemukan.
Akktivitas Pengembangan PL
Aktivitas Pengujian
Peran tiap Proses Pengujian
Testing vs. Debugging • Pengujian (testing) berbeda dengan debugging – Debugging dilakukan bila sudah ditemukan suatu kesalahan, dan tujuannya mencari sumber kesalahan (fault atau defect) – Debugging tetap menjadi bagian dari strategi pengujian
Failure, Error, Fault and Defect • Error – Error adalah status dari sistem – Status error ini bisa menyebabkan kegagalan jika tidak ada perbaikan • Fault – Fault adalah sumber dari error • Defect – Sinonim dengan Fault – Sering disebut juga bug • Failure – Kegagalan (failure) terjadi kalau ada perilaku dari sistem yang tidak sesuai dengan permintaan di spesifikasi sistem
Tester? Software Developer
• Mengerti system • Menguji untuk membuktikan bahwa programnya sudah benar 6/5/2017
Independence Testing Group
Harus belajar sistem
Menguji untuk
membuktikan bahwa program masih ada salah Software Testing - NH yang @2015
9
Kriteria Pengujian yang Baik • Memiliki kemungkinan tinggi untuk menemukan error • Tidak redundan (duplikasi yang tidak perlu) • Pilih teknik yang terbaik – Atau tepat sesuai dengan karakteristik software yang diuji • Tidak terlalu sederhana juga tidak terlalu kompleks
Strategi Pengujian PL untuk arsitektur OO • ‘testing-in-the-small’ hingga ‘testing-in-the-large’ – Fokus pada pengujian tiap kelas termasuk atribut dan operasi – Dilanjutkan pengujian komunikasi / kolaborasi antar kelas • Unit Testing • Integration testing • Validation testing • System Testing * SEPA 6th ed, Roger S. Pressman
Unit Testing • Unit terkecil yang diujikan adalah enkapsulasi class atau objek, bukan modul • Ujicoba lengkap keseluruhan class meliputi : – Menguji seluruh operasi yang berhubungan dengan objek – Mengevaluasi semua atribut objek – Melatih objek dalam semua kemungkinan
• Metode Unit Testing – Ujicoba berbasis kesalahan (fault-based testing) – Ujicoba acak (random testing) – Ujicoba Partisi (partition testing)
Integration Testing • Software OO tidak mempunyai struktur kendali hirarkhi, strategi integrasi konvensional (top-down / bottom-up integration) tidak bisa dilakukan. • Fokus pada kelompok class yang berkolaborasi atau berkomunikasi dalam beberapa cara. • Strategi Integration Testing: – Thread-based Testing: mengintegrasikan sekumpulan class yang dibutuhkan dalam merespon satu masukan atau event terhadap sistem. – Used-based Testing: dimulai dengan uji independen, setelah itu dilanjutkan dengan melakukan testing terhadap dependent class yang menggunakan independent class yang telah dites
Validation Testing • Fokus pada masukan / tindakan pengguna yang terlihat dan pengguna dapat mengenali output dari sistem • Pengujian validasi didasarkan pada skenario use-case, model perilaku objek, dan diagram alur event dibuat dalam model OOA • Pengujian Black box konvensional dapat digunakan untuk pengujian validasi
System Testing • Fokus pada integrasi sistem secara keseluruhan • 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 software ketika dijalankan pada konteks tertentu
Tugas Presentasi Minimalkan yang ada di slide Presentasi: 1. Cover + Kontribusi Anggota 2. Judul Aplikasi + Deskripsi + Pengguna 3. Kebutuhan Fungsional & Non Fungsional 4. Use Case Diagram 5. Class Diagram Keseluruhan 6. Rancangan Tabel Database 7. Interface/ Tampilan Layar (Tampilkan secara garis besar, min. 3) 8. Matriks Keterunutan SKPL-DPPL (Kebutuhan Fungsional – Use Case – Class Terkait)
Terimakasih