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 Independence Testing Group Mengerti system Menguji untuk membuktikan bahwa programnya sudah benar Harus belajar sistem Menguji untuk membuktikan bahwa program masih ada yang salah 6/5/2017 Software Testing - NH @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 6 th 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