Pengujian
• Pengujian / testing 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)
Aktivitas Pengembangan PL
Aktivitas Pengujian
Peran tiap Proses Pengujian
Siklus Pengujian
• Perencanaan Pengujian
• Perancangan Pengujian
• Eksekusi Pengujian
• Laporan Pengujian
12/21/2016 Software Testing - NH @2015 6
Siklus Pengujian
• Perencanaan Pengujian
• Perancangan Pengujian
• Eksekusi Pengujian
• Laporan Pengujian
12/21/2016 7
Perencanaan apa saja yang akan diuji
Perencanaan waktu
Perencanaan sumberdaya yang diperlukan
• Orang
• PL pendukung
• Alat/perangkat keras
• Lingkungan pengujian
• dan lain-lain
Perencanaan prosedur
umum pengujian
Siklus Pengujian
• Perencanaan Pengujian
• Perancangan Pengujian
• Eksekusi Pengujian
• Laporan Pengujian
12/21/2016 8
• Untuk apapun yang akan diuji, maka perlu dirancang Kasus Pengujian (Test Case)
• Test Case berisi:
• Masukan yang diuji
• Harapan Pengujian
• Cara menilai hasil
eksekusi pengujian
Siklus Pengujian
• Perencanaan Pengujian
• Perancangan Pengujian
• Eksekusi Pengujian
• Laporan Pengujian
12/21/2016 9
• Dilakukan sesudah kode program selesai dikerjakan.
• Eksekusi program dilakukan dengan menggunakan
masukan data yang sudah di
rancang
Siklus Pengujian
• Perencanaan Pengujian
• Perancangan Pengujian
• Eksekusi Pengujian
• Laporan Pengujian
12/21/2016 10
Laporan pengujian berisi laporan untuk setiap hasil eksekusi Test
Case:
• Lulus pengujian jika hasil
eksekusi program memberikan hasil yang sama dengan
harapan hasil
• Tidak lulus pengujian jika hasil eksekusi memberikan hasil yang berbeda
• Kadang dapat disertai dengan
catatan khusus
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
Metode Pengujian PL
Blackbox VS Whitebox
• Blackbox testing
– Tidak perlu mengetahui struktur software
– Juga disebut dengan specification- based atau functional testing
• Whitebox testing
– Harus mengetahui struktur dan
implementasi dari software
Pengujian Web App
• Pengujian Web App adalah aktivitas yang
mencari error pada bagian-bagian dari Web App, seperti:
– Isi (Content) – Fungsi
– Struktur – Usability
– Navigability
– Compatibility
– Interoperability
– Performance
– Security
Tantangan
• Aplikasi berbasis web, berada pada
jaringan, dan beroperasi dengan sistem yang berbeda
– Sistem Operasi – Browser
– Hardware Platform
– Protokol komunikasi
Error Umum pada Web App
• Yang sering dilihat adalah akibat dari error, bukan errornya sendiri
• Error sering sulit untuk di reproduce
– Perlu mere-create environmentnya
• Error sering ditemui dari konfigurasi WebApp
• Error harus di telusuri dari:
– Client
– Server
– Network
Proses Pengujian Web App
Content Testing
• Untuk mengungkap kesalahan sintaksis
(Kesalahan ketik, kesalahan tata bahasa) dalam teks berbasis dokumen, representasi grafis, dan media lainnya
• Untuk mengungkap kesalahan semantik
(Berfokus pada informasi yang disajikan dalam setiap konten obyek)
• Untuk menemukan kesalahan dalam organisasi atau struktur konten yang disajikan untuk
pengguna.
Navigation Testing
• Untuk memastikan bahwa mekanisme yang memungkinkan pengguna menelusuri
seluruh webapp dapat berfungsi dan untuk memvalidasi setiap NSU ( Navigation
Semantic Unit ) dapat dicapai oleh
kategori pengguna yang sesuai.
Mekanisme Navigasi
• Navigasi/link
Link internal dalam webapp, link eksternal untuk webapps lainnya harus dipastikan konten/fungsi dapat dijalankan.
• Redirect
Diuji dengan meminta link internal atau URL eksternal yang tidak benar dan menilai bagaimana webapp menangani permintaan ini.
• Bookmark s
Meskipun fungsi browser, webapp harus diuji untuk memastikan bahwa judul halaman yang berarti dapat diekstraksi dari bookmark yang dibuat.
Mekanisme Navigasi [2]
• Frame & Frameset
– Tiap frame diuji untuk konten yang benar, tata letak yang tepat dan ukuran, kinerja download, dan kompatibilitas browser
– Frameset terdiri dari dari beberapa frame
• SiteMap
– Disediakan daftar isi seluruh halaman web
– Setiap jalur situs harus diuji untuk memastikan bahwa link
tersebut akan membawa pengguna ke konten atau fungsi yang tepat.
• Internal Search Engines
– Memvalidasi keakuratan dan kelengkapan dari pencarian,
penanganan kesalahan dari mesin pencari, dan fitur pencarian lanjutan
Interface Testing
• Fitur antarmuka termasuk jenis font, penggunaan warna, frame , gambar, border , tabel, dan
antarmuka terkait fitur yang dihasilkan sebagai hasil eksekusi webapp harus diuji
• Mekanisme antarmuka individual diuji dalam
cara yang analog dengan unit testing (client-side scripting, HTML dinamis, script, streaming konten)
• Antarmuka lengkap diuji terhadap use case yang
dipilih beserta NSU untuk mengungkap kesalahan
dalam semantik antarmuka
Mekanisme Interface
Ketika pengguna berinteraksi dengan web app, interaksi dapat melalui berbagai mekanisme.
• Link
Setiap link navigasi harus dicek untuk memastikan bahwa konten / fungsi yang sesuai dapat dicapai
• Form
– Memastikan bahwa label yang mengidentifikasi field dalam form benar dan field wajib diidentifikasi secara visual bagi pengguna
– Server menerima semua informasi yang terkandung dalam form dan tidak ada data yang hilang dalam transmisi antara klien & server
– Penggunaan default yang sesuai ketika pengguna tidak memilih menu pull-down atau tombol
– Fungsi browser (mis., Panah kembali) tidak merusak data yang dimasukkan dalam sebuah form
Mekanisme Interface [2]
• Client-side scripting
– Black-box testing dilakukan untuk mengungkap kesalahan dalam pengolahan ketika script dijalankan.
– Tes ini sering digabungkan dengan pengujian form, karena
masukan script sering berasal dari data yang diberikan sebagai bagian dari pengolahan form.
– Sebuah tes kompatibilitas harus dilakukan untuk memastikan bahwa bahasa scripting yang telah dipilih akan bekerja dengan baik di
konfigurasi lingkungan yang berbeda
• Dynamic HTML
– Pengujian harus dilakukan untuk memastikan bahwa HTML dinamis ditampilkan dengan benar.
– Uji Kompatibilitas harus dilakukan untuk memastikan HTML dinamis bekerja dengan baik dalam konfigurasi lingkungan yang mendukung webapp
Mekanisme Interface [3]
• Pop-up windows
Serangkaian tes memastikan bahwa:
– Ukuran dan posisi pop-up benar
– Pop-up tidak menutupi jendela asli webapp
– Desain estetika dari pop-up konsisten dengan desain estetika antarmuka
– Scroll bar dan mekanisme kontrol lainnya yang ditambahkan ke pop-up letak dan fungsinya telah benar.
• Streaming content
– Tes harus menunjukkan bahwa data streaming up-to-date dan ditampilkan dengan benar, dan bisa ditunda tanpa kesalahan dan restart tanpa kesulitan.
Mekanisme Interface [4]
• Cookies
– Di sisi server, tes harus memastikan bahwa cookie adalah benar dibuat dan ditransmisikan ke sisi klien saat konten atau fungsi tertentu diminta dan untuk memastikan bahwa yang tanggal kedaluwarsa benar.
– Di sisi client, tes menentukan apakah webapp dengan benar
menempel cookies untuk permintaan khusus yang dikirim ke server
Compatibility Testing
– Serangkaian tes validasi kompatibilitas berasal atau sering diadaptasi dari tes antarmuka yang ada, tes navigasi, tes kinerja, dan tes
keamanan.
– Tujuan dari tes ini adalah untuk menyingkap kesalahan atau masalah eksekusi yang dapat ditelusuri pada perbedaan konfigurasi.