Pertemuan 8, 9, 10 TAHAP TESTING SISTEM PENGUJIAN BLACK-BOX • Pengujian black-box berfokus pada persyaratan fungsional perangkat lunak • Black-box bukan merupakan alternatif dari teknik white-box, tetapi merupakan pendekatan komplementer yang kemungkinan besar mampu mengungkap kelas kesalahan daripada metode whitebox PENGUJIAN BLACK-BOX • Kesalahan² yang berusaha ditemukan oleh Black-box dikategorikan sbb: 1. Fungsi-fungsi yang tidak benar/hilang 2. Kesalahan interface 3. Kesalahan struktur data atau akses database eksternal 4. Kesalahan kinerja 5. Inisialisasi dan kesalahan terminasi PENGUJIAN BLACK-BOX • Tidak seperti White-box, pengujian Black-box cenderung diaplikasikan selama tahap akhir pengujian • - Pengujian didesain untuk menjawab pertanyaan² berikut : Bagaimana validitas fungsional yang diuji? Kelas input apa yang akan membuat test-case menjadi baik? Apakah sistem sangat sensitif terhadap harga input tertentu? Bagaimana batasan dari suatu data diisolasi? Kecepatan data apa dan volume data apa yang dapat ditolerir oleh sistem? Apa pengaruh kombinasi tertentu dari data terhadap operasi sistem? - - Metode Pengujian Graph-Based • Langkah² dalam pengujian Black-box: 1. Membuat grafik dari objek² yang penting perangkat lunak dan hubungan yang akan menghubungkan objek² tersebut. 2. Kemudian menentukan sederetan pengujian yang membuktikan bahwa “semua objek memiliki hubungan yang diharapkan satu dengan yang lainnya”. Metode Pengujian Graph-Based Untuk melakukan langkah tersebut dimulai dengan membuat suatu grafik yang berisi: - Sekumpulan simpul yang merepresentasikan objek - Link yang merepresentasikan hubungan antar objek - Node weight yang menggambarkan properti dari suatu simpul (nilai data atau keadaan) - Links weight yang menggambarkan beberapa karakteristik suatu link Metode Pengujian Graph-Based Gambar Notasi Grafik Object #1 Link terarah (Link weight) Object #2 Node weight (nilai) Link Paralel Object #3 Metode Pengujian Graph-Based Contoh Gambar Notasi Grafik New File Menu select membangkitkan (waktu pembangkitan < 10 detik) Document Window Membolehkan editing Atribut: berisi Document Text Dimensi start; setting default atau preferensi. Warna latar: Putih; Warna teks: warna default Atau preferensi Metode Pengujian Graph-Based - Loop yaitu jalur melalui grafik dimana satu simpul atau lebih ditemui lebih dari satu kali - Transitivitas hubungan sekuensial untuk menentukan bagaimana pengaruh hubungan menyebar pada objek yang ditentukan pada suatu grafik. Transitivitas dapat digambarkan dengan 3 objek: X, Y, dan Z. X diperlukan untuk menghitung Y Y diperlukan untuk menghitung Z Sehingga dibangun hubungan transitif antara X dan Z X diperlukan untuk menghitung Z Partisi Ekivalensi Partisi Ekivalensi berusaha menentukan sebuah test case yang mengungkap kelas² kesalahan, sehingga mengurangi jumlah total test case yang harus dikembangkan. Didasarkan pada evaluasi terhadap kelas ekivalensi untuk suatu kondisi input. Merepresentasikan keadaan Valid atau Invalid untuk kondisi input Partisi Ekivalensi Kondisi input dapat berupa : Harga numeris Rentang harga atau serangkaian harga terkait Kondisi Boolean Pedoman penentuan kelas ekivalensi: 1. Bila kondisi input menentukan suatu range, maka: 1 kelas ekivalensi dan 2 yang invalid ditentukan 2. Bila kondisi input membutuhkan suatu harga khusus, maka 1 kelas ekivalensi valid, dan 2 yang invalid ditentukan. Partisi Ekivalensi Pedoman penentuan kelas ekivalensi: 3. Bila kondisi menentukan anggota suatu himpunan, maka 1 kelas ekivalensi valid dan 2 yang invalid ditentukan 4. Bila kondisi input adalah boolean, maka 1 kelas valid dan 1 yang invalid ditentukan Partisi Ekivalensi Contoh: Customer suatu perbankan dapat “menghubungi” bank dengan komputer nya dan seperangkat password dan perintah kunci. Data yang diterima dalam bentuk: - Kode area: kosong atau tiga nomor digit Prefik: tiga nomor digit tidak dimulai dengan 1 atau 0 Sufik : empat nomor digit Password : enam nilai alfanumeris digit Perintah : “cek”, “deposit”, “bayar pajak”, dsb Partisi Ekivalensi Kondisi input yang sesuai dengan masing² elemen data untuk aplikasi tersebut: - - - Kode area: Kondisi input Boolean – kode area mungkin atau mungkin tidak ada kondisi Prefiks : Kondisi input Range – harga yang ditetapkan antara >200 tanpa digit 0 Sufik: kondisi input Harga – panjang 4 digit Password: kondisi input Boolean – dapat ada atau tidak ada Kondisi input Harga – entrian 6 karakter Perintah: kondisi input Himpunan – berisi perintah yang sudah ditulis spt diatas Analisis Nilai Batas - Memunculkan pemilihan test case yang menggunakan nilai batas Test case lebih mengarah pada “edge” dari kelas dan berfokus pada input dan output Contoh: - Bila suatu kondisi input mengkhususkan suatu range dibatasi oleh nilai a dan b, maka test case harus didesain dengan nilai a dan b, persis diatas dan dibawah a dan b - Suatu data program ditentukan memiliki 100 entri, maka test case nya harus menggunakan struktur data pada batasannya tersebut. Pengujian GUI GUI (Grafical User Interfaces) adalah menguji semua interface dan kinerjanya dalam sebuah aplikasi. Misalnya: - Pengujian GUI untuk Windows - Pengujian GUI untuk operasi Mouse - Pengujian GUI untuk entri data Pengujian Sistem Realtime Contoh: Perangkat lunak yang mengontrol alat fotokopi yang menerima interupsi operator secara tiba2 dan harus bereaksi pada saat itu juga. Usulan 4 strategi testing real time: 1. Pengujian masing2 tugas 2. Pengujian tingkah laku 3. Pengujian antar tugas 4. Pengujian sistem Pengujian Integrasi Adalah teknik sistematis untuk mengkonstruksi struktur program sambil melakukan pengujian untukn mengungkap kesalahan sehubungan dengan interfacing Sasarannya adalah untuk mengambil modul yang dikenai pengujian unit dan membangun struktur program yang telah ditentukan oleh desain Pendekatan Testing Integrasi Integrasi top-down modul diintegrasikan dengan menggerakkan ke bawah melalui hirarki kontrol dimulai dengan modul kontrol utama. Integrasi bottom-up memulai konstruksi dan pengujian dengan modul Atomik (paling rendah). Pengujian regresi eksekusi ulang dari beberapa subset yang telah dilakukan untuk memastikan bahwa perubahan tidak menimbulkan efek samping yang tidak diharapkan Debugging Debugging terjadi sebagai akibat dari pengujian yang berhasil. Debugging adalah proses yang menghasilkan penghilangan kesalahan Debugging bukan pengujian, tetapi selalu terjadi sebagai bagian akibat dari pengujian Debugging Kemungkinan hasil akhir proses debugging: 1. Penyebab akan ditemukan, dikoreksi, dan dihilangkan 2. Penyebab tidak akan di temukan Debugging Pendekatan Debugging 1. Brute Force (Gaya yang Kasar) metode paling umum dan paling efisien untuk mengisolasi penyebab kesalahan. Metode ini menggunakan berbagai cara umum yang kasar untuk menemukan penyebab kesalahan 2. Backtracking (Penelusuran Balik) menelusur balik kode sumber dari mana suatu gejala mulai diungkap sampai ditemukan penyebabnya. Biasanya digunakan pada program yang kecil. Debugging Pendekatan Debugging 3. Cause Elimination (Eliminasi Penyebab) data yang berhubungan dengan kejadian kesalahan dikumpulkan untuk mengisolasi penyebab potensial. Sebagai alternatif, daftar semua penyebab yang mungkin akan dikembangkan dan dilakukan pengujian untuk mengeliminasi masing² kesalahan