#3 PAC133 PENGUJIAN PERANGKAT LUNAK Nurdin Bahtiar, MT PENGUJIAN BLACK-BOX Pengujian black-box berfokus pada persyaratan fungsional perangkat lunak. Pengujian black-box bukan alternatif lain dari white-box, tetapi mrpkn pendekatan komplementer yg kemungkinan besar mampu mengungkap kelas kesalahan daripada metode white-box. Pengujian ini berusaha mengungkap kesalahan dalam kategori: Fungsi-fungsi yg tidak benar atau hilang Kesalahan interface Kesalahan dalam struktur data atau akses database eksternal Kesalahan kinerja Inisialisasi dan kesalahan terminasi PENGUJIAN BLACK-BOX (cont) Pengujian black-box menguji beberapa aspek dasar suatu sistem dengan sedikit memperlihatkan struktur logika internal perangkat lunak tersebut. Beberapa teknik pengujian black-box di antaranya: Metode Pengujian Graph-Based Partisi Ekivalensi Analisis Nilai Batas Pengujian Perbandingan Metode Pengujian Graph-Based Langkah pertama dalam pengujian black-box adalah memahami objek yg yg dimodel di dalam perangkat lunak dan hubungannya. Kemudian menentukan sederetan pengujian yg membuktikan bahwa “semua objek memiliki hubungan yg diharapkan satu dgn yg lain”. Simpul merepresentasikan suatu objek (seperti modul atau koleksi statemen). Link merepresentasikan hubungan antar objek. Node weight menggambarkan properti simpul (atribut). Link weight menggambarkan beberapa karakteristik link. Metode Pengujian Graph-Based Contoh sederhana cont Partisi Ekivalensi Merupakan teknik pengujian yg membagi domain input dari suatu program ke dalam kelas data dari mana test case dapat dilakukan. Kelas ekivalensi merepresentasikan serangkaian keadaan valid atau invalid untuk kondisi input. Kondisi input dapat berupa harga numeris, rentan harga, serangkaian harga khusus, atau kondisi boolean. Bila kondisi input suatu range, satu kelas ekivalensi valid dan dua invalid ditentukan. Bila kondisi input suatu harga khusus, satu kelas ekivalensi valid dan dua invalid ditentukan. Bila kondisi input anggota suatu himpunan, satu kelas ekivalensi valid dan satu invalid ditentukan. Bila kondisi input boolean, satu kelas ekivalensi valid dan satu invalid ditentukan. Analisis Nilai Batas Teknik pengujian Boundary Value Analysis (BVA) ini lebih mengarah pada pemilihan test case pada “edge” dari kelas. Test case yg dilakukan berfokus pada domain output. Bila kondisi input suatu range a dan b, test case didisain persis di atas dan di bawah a dan b secara bersesuaian. Bila kondisi input suatu harga khusus, nilai yg tepat di atas dan di bawah minimum juga harus diuji. Mengaplikasikan dua pedoman di atas ke kondisi output, output harus menghasilkan jumlah minimum (dan maksimum) dari entri tabel yg diijinkan. Bila kondisi input suatu batasan, test case didisain menggunakan struktur pada batasannya. Pengujian Perbandingan Ada banyak situasi (seperti avionik pesawat udara, kontrol sumber tenaga nuklir) reliabilitas perangkat lunak sangat kritis. Sehingga hardware dan software redundan sering dikembangkan untuk meminimalkan kemungkinan kesalahan. Tim RPL terpisah mengembangkan versi-versi independen dari suatu aplikasi dgn menggunakan spesifikasi yg sama Setiap versi diuji dengan data uji yg sama untuk memastikan bahwa semua versi memberikan output yg identik Semua versi dieksekusi secara paralel dengan perbandingan real time hasil untuk memastikan konsistensi Pengujian black-box ini disebut juga Pengujian Back-to-Back. PENGUJIAN UNTUK APLIKASI DAN LINGKUNGAN KHUSUS Saat perangkat lunak komputer menjadi semakin kompleks, kebutuhan akan pendekatan pengujian khusus juga makin berkembang. Metode pengujian white-box dan black-box dapat diaplikasikan pada semua lingkungan, arsitektur, dan aplikasi, tetapi kadang-kadang dalam pengujian diperlukan pedoman dan pendekatan yg unik. Beberapa pengujian yg terkait di antaranya: Pengujian GUI (Graphical User Interfaces) Pengujian Arsitektur Client / Server Pengujian Dokumentasi dan Fasilitas Help Pengujian Sistem Real-Time Pengujian GUI Karena GUI modern memiliki bentuk dan cita rasa yg sama, maka dapat dilakukan sederetan pengujian standar. Untuk window: Apakah window yg aktif disorot secara tepat? Apakah window akan menutup secara tepat? Untuk menu pull-down dan operasi mouse: Apakah operasi menu pull-down bekerja secara tepat? Apakah operasi mouse dikenali dgn baik pada seluruh konteks interaktif? Entry data: Apakah mode grafik dari entry data bekerja dgn baik? Apakah data invalid dikenali dgn baik? Apakah pesan input data sangat pintar? Pengujian Arsitektur Client / Server Beberapa hal yg menjadi bahan pertimbangan pengujian ini di antaranya: Sifat terdistribusi dari lingkungan client / server Masalah kinerja yg berhubungan dgn pemrosesan transaksi Kehadiran potensial dari sejumlah platform perangkat keras yg berbeda Kompleksitas komunikasi jaringan Kebutuhan akan layanan client multiple dari suatu database terpusat Persyaratan koordinasi yg dibebankan pada server. Pengujian Dokumentasi dan Fasilitas Help Dokumentasi merupakan elemen ketiga dari konfigurasi perangkat lunak. Sering terjadi pengguna mengikuti tuntunan dokumentasi tetapi hasilnya tidak sesuai dgn yg diprediksi oleh dokumen. Karenanya pengujian dokumentasi harus menjadi suatu bagian yg berarti dari setiap rencana pengujian perangkat lunak. Pengujian ini dapat didekati dalam dua fase: Kajan teknis formal, yg menguji kejelasan editorial dokumen Live test, menggunakan dokumentasi dalam kaitannya dgn penggunaan program aktual. Pengujiannya dapat menggunakan teknik yg analog dng berbagai metode pengujian black-box. Pengujian Sistem Real-Time Banyak aplikasi real-time yg bersifat asinkron dan tergantung waktu. Pengujian ini mempertimbangkan penanganan kejadian (yakni pemrosesan interupsi), timing data, dan paralelisme tugas-tugas (proses) yg menangani data. Strategi empat langkah yg dapat digunakan: Pengujian tugas Pengujian tingkah laku Pengujian antar-tugas Pengujian sistem Latihan Tentukan jenis-jenis pengujian black-box yang dapat dilakukan untuk berbagai test case yang mungkin pada aplikasi berbasis Windows berikut: 1. Notepad 2. Calculator 3. Disk Defragmenter End of File