Testing Dan Usability
Testing Dan Usability
• Pengantar
• Dasar-dasar Pengujian (Testing) di Web
• Metode dan teknik untuk menguji Aplikasi
Web
• Pengujian aplikasi Web Otomatis
• Dasar-dasar Kegunaan (Usability) di Web
• Rangkuman
2
PENGantar
3
Testing dan Usability
• Testing (Pengujian)
–Memeriksa kesesuaian aplikasi versus persyaratan desainnya
–Berorientasi untuk aspek fungsional
• Usability (Kebergunaan)
–Merancang dan memverifikasi kesesuaian aplikasi versus
kemampuan pengguna dan kemampuan interaksi
–Berorientasi untuk aspek non-fungsional
• Pengujian dan Usability adalah aspek ortogonal
–Pada beberapa kasus keduanya sedikit tumpang tindih!
4
Pentingnya Pengujian
• Secara tradisional, pengujian telah berfokus pada
persyaratan fungsional - tidak cukup untuk
aplikasi Web.
7
Terminologi
• Testing: Sebuah kegiatan yang dilakukan untuk
mengevaluasi kualitas produk untuk
memperbaikinya dengan mengidentifikasi cacat
dan masalah.
• Error: hasil aktual yang menyimpang dari yang
diharapkan.
Hasil yang kita harapkan (secara teoritis) berasal dari
definisi persyaratan yang kita buat.
Paling sering, tujuan / konsen/ harapan para
stakeholder menjadi dasar pengujian.
• Test case: sehimpunan input, kondisi
pelaksanaan, dan hasil yang diharapkan untuk
pengujian suatu objek.
8
Tujuan Pengujian
• Tujuan utama: menemukan kesalahan, TIDAK
menunjukkan bahwa tidak ada.
• Cakupan tes lengkap adalah mustahil, jadi
pengujian berfokus pada mengurangi risiko
terbesar
–Di mana potensi kerugian terbesar?
–Apa saja sumber risiko ini?
• Memulai pengujian sedini mungkin - bahkan
dengan sumber daya terbatas dan waktu.
9
Tingkat Pengujian
• Unit tests:
–Pengujian unit "atomik" - kelas, halaman web, dll – secara
independen. (Pengembang)
• Integration tests:
–Uji interaksi unit (Tester & Pengembang)
• System tests:
–Pengujian keseluruhan sistem, yang terintegrasi (tim Dedicated)
• Acceptance tests:
–“Real-world” tests – pengujian dalam kondisi yang sedekat
mungkin dengan lingkungan "hidup" yang mungkin (Klien)
• Beta tests:
–Informal, tes produk-lebar yang dilakukan oleh pengguna
“friendly".
10
Peran Tester
• Tester (Penguji) ideal memiliki sikap "destruktif".
• Sangat sulit bagi pengembang untuk
“menghancurkan" pekerjaan mereka sendiri.
• Namun, proyek-proyek Web fokus berat pada
test unit, membuatnya lebih rentan terhadap
kesalahan.
• Beberapa panduan:
–Ada orang lain dalam tim Web melakukan tes.
–Tester terbaik adalah orang yang mendapatkan bug
yang paling banyak (untuk diperbaiki).
11
Spesifikasi Rekayasa Web
• Error dalam content Web:
–Ditemukan terutama melalui proofreading - sangat
mahal
–Tes alternatif : Spell-check, meta-information
• Struktur hypertext:
–Apakah setiap halaman dapat diakses melalui link?
–Apakah setiap link halaman ke struktur hypertext
bekerja?
–Apakah ada link yang rusak?
–Apa yang terjadi ketika pengguna men-klik “Back" pada
browsernya?
12
Spesifikasi Rekayasa Web
• Subjektif persyaratan untuk presentasi
–Kenyamanan di mata yang melihat (estetika).
–Tester harus membedakan perilaku yang diterima
dari yang salah.
–Pengujian Presentasi di Web meminjam dari
penerbitan cetak (tampilan).
• Multi-platform delivery
–Dapatkah diuji pada setiap perangkat?
–Dapatkah dibuat kasus uji pada setiap perangkat?
–Simulator sering tersedia, namun mungkin buggy.
13
Spesifikasi Rekayasa Web
• Ketersediaan Global
–Pengujian konten dinamis dalam beberapa bahasa
Pengujian untuk kesulitan tata letak karena berbagai
teks panjang.
• Usia Muda & Multi-disiplinnya Tim Web
–Keengganan untuk menerima metode pengujian.
–Kurangnya pengetahuan pengujian.
–Bangunan konsensus yang diperlukan.
–Mungkin melakukan pengujian terlalu banyak,
sama buruknya dengan terlalu sedikit.
14
Spesifikasi Rekayasa Web
• Banyak komponen sistem
–Third-party; platform berbeda.
–Pengujian integrasi dan konfigurasi komponen juga
diperlukan.
• Ketidakmatangan metode uji
–Paket uji yang cocok untuk teknologi baru sering tidak
ada, atau ada tetapi dirancang dengan jelek.
• Perubahan terus menerus
–Perubahan persyaratan, perangkat keras, perangkat
lunak.
–Tes ulang setelah setiap upgrade besar.
15
Bagaimana kita dapat menguji aplikasi Web?
16
Pengujian Link
• Menemukan link yang rusak
–Dapat diotomatiskan dengan spider
–Tidak membantu untuk halaman tanpa link masuk
(incoming link).
• Mendapatkan halaman terpencil (orphan)
–Orphan adalah halaman tanpa link kembali ke struktur
navigasi.
–Pengguna mendapatkan frustrasi dan meninggalkan.
• Menangkap statistik
–Dalam dan lebarnya navigasi.
–Jarak antara dua dua halaman terkait.
–Jumlah link.
–Waktu muat (load time).
17
Pengujian Browser
• Browser bervariasi, berdasarkan :
–Pabrikan
–Versi
–Sistem Operasi
–Perangkat
–Konfigurasi (stylesheets, JavaScript on/off)
–Standard kepatuhan W3C
• Pertanyaan penting untuk diajukan:
–Bagaimana status dikelola?
–Dapat halaman web (dinamis) dibookmark?
–Dapatkah pengguna membuka banyak jendela (window)?
–Apa yang terjadi saat cookie dan/atau scripting dimatikan?
18
Pengujian Beban
• Apakah sistem memenuhi waktu respon dan
throughput yang dibutuhkan?
• Profil beban – jenis akses, kunjungan per hari,
jenis transaksi, transaksi per sesi, dll yang
diharapkan
• Harus menentukan rentang nilai untuk waktu
respon dan throughput.
• Mengevaluasi hasil untuk mencari kemacetan
(bottleneck).
19
Pengujian Tekanan
20
Pengujian Berkelanjutan
• Mensimulasikan penggunaan selama jangka
waktu yang panjang
• Pengujian untuk kesalahan yang "pop up" karena
sumber daya tersebut tidak dirilis oleh suatu
operasi.
–Koneksi database yang tak dilepas
–Kebocoran memory lainnya
• Biasanya, menjalankan operasi beberapa kali
tidak menghasilkan error, maka perlu untuk
pengujian terus-menerus.
21
Pengujian Keamanan
• Skema uji sistematis sangat dianjurkan.
• Pengujian untuk pembetulan kesalahn tidaklah cukup
–Apakah data rahasia terpapar secara tidak sengaja?
–Apa yang terjadi jika input data tidak lengkap?
–Apa yang terjadi jika kita menyuntikkan kode berbahaya?
–Halaman terenkripsi SSL
• Apakah kerja sudah bersertifikasi SSL?
• Apa yang terjadi jika kita mencoba mengakses halaman/situs yang
terproteksi dengancara yang tak-aman (misal http://)?
22
Pengembangan Test-Driven
• Terinspirasi oleh pendekatan uji-pertama kali yang
digunakan di XP (eXtreme Programming); dapat
digunakan dalam semua jenis proyek.
• Pengujian harus ditulis sebelum pelaksanaan.
–Setiap unit memiliki tes.
–Saat tes gagal, pengembang hanya perlu mengubah kode
agar pengujian berhasil dijalankan.
24
Mengenal JUnit
• Framework pengujian Java Open source yang digunakan
untuk menuliskan dan menjalankna uji terotomasi yang
dapat berulang (repeatable automated test)
• Suatu struktur untuk penulisan test drivers
• Fitur JUnit termasuk:
–Pernyataan untuk pengujian hasil yang diharapkan
–Fitu uji fitur untuk berbagi data pengujian bersama
–Paket uji untuk memudahkan mengorganisir dan menjalankan tes
–Grafis dan pengeksekusi (runner) uji tekstual
• JUnit digunakan secara luas di industri
• JUnit dapat digunakan sebagai program Java stand alone
(command line) atau di dalam IDE seperti Eclipse
25
Mengenal Cactus
26
Ekstensi JUnit lain
• HttpUnit
–Memparse hasil HTML ke dalam DOM
–Navigasi link yang mudah dan membetuk populasi
–Berguna untuk uji penerimaan (acceptance) terotomasi
• Canoo WebTest
–HttpUnit di dalam Ant
• JUnitPerf
–Membungkus suatu uji JUnit
–Mengukur kinerja yang diinginkan dan toleren
terhadap scalability
27
Keuntungan Pengujian Otomatis
30
Definisi Usability
• Definisi standard ISO/IEC (1998):
–“Sejauh mana suatu produk dapat digunakan oleh
pengguna tertentu dalam konteks penggunaan yang
ditetapkan untuk mencapai target yang ditetapkan
secara efektif, efisien, dan memuaskan.”
• Usability engineering adalah proses terus
menerus, tapi kritis
–Menentukan model Pengguna dan Tugas
–Secara iteratif menguji dan mengevaluasi kembali
–Metode berbasis Pengguna vs Pakar
31
Usability dalam Aplikasi Web
• Spesifikasi usability software tradisional tidak
dapat langsung dibawa ke ranah Web:
–Orang menggunakan aplikasi Anda segera.
–Tidak ada manual atau pelatih (trainer).
–Tanpa wiraniaga.
• Bagaimana mengelompokkan pengguna?
–Pertama kali atau berikutnya?
–Ahli atau pemula?
–Broadband atau dial-up?
–Desktop atau mobile?
32
Masalah Utama
• Informasi kontak - alamat atau nomor telepon hilang
atau tak berlaku
• Fungsi Search tidak terlihat atau tidak jelas fungsinya
• Tidak ada cara mudah untuk kembali ke titik kritis
• Halaman yang harus memuat cepat namun tidak
(misalnya halaman utama atau halaman link kunci)
• "Apa yang baru" ternyata sudah usang (lama)
• Tombol “Back” memerlukan suatu data repost
33
Usability Engineering
Web Engineering
Analysis Design Coding Testing Maintenance
34
User-Centered vs. Usage-Centered
36
Interaksi dan Rancangan
43
Pedoman – Warna
• Warna memiliki arti yang berbeda tergantung
pada pengguna yang melihat warna
–Perbedaan budaya
–Arti spesifik domain
–Warna yang hangat dan dingin (cool)
• Pastikan semua informasi yang disampaikan
dengan warna juga tersedia tanpa warna.
• Minimalkan jumlah warna
• Hindari warna ekstrim, warna yang sangat jenuh
• Bagaimana tampilan situs Anda di LCD? CRT?
44
Pedoman – Layout Teks
• Screen vs. Kertas
• Pertimbangkan ukuran jendela yang berbeda
–Hindari layout lebar yang tetap
–Hindari banyak kolom (biasanya)
• Keterbacaan (Readability)
–Sans-serif untuk screen, serif untuk dicetak
–Hindari pola, latar belakang kontras rendah
–Paragraf pendek
• Izinkan ukuran huruf yang dipilih pengguna
45
Pedoman – Struktur Halaman
• Pertimbangan tampilan
• Gunakan posisi relatif, sebaiknya tidak absolut.
• Scroll vertikal baik digunakan; scroll horisontal
TIDAK.
• Elemen penting harus SELALU terlihat.
• Membuat halaman ramah cetak atau sediakan
style alternatif & tombol cetak.
46
Panduan – Navigasi
• Sediakan pengguna suatu model dari situs
web
– Elemen navigasi intuitif
–Peta situs (site map)
–Breadcrumbs (remah roti)
• Menu dropdown
–Pro: Pemanfaatan space yang efisien
–Kontra: Informasi kunci tersembunyi
47
Panduan – Multicultural
• Lokasi biasanya bukan constraint di Web.
• “Denominator budaya umum terkecil ”:
–Hindari warna yang terlalu ekspresif
–Simbol
–Bahasa
–Representasi informasi (format date/time)
48
Panduan – Konsistensi
50
Web Accessibility Initiative (WAI)
• Web Content Accessibility Guidelines 2.0 (WCAG,
2008) dipublikasikan oleh W3C’s WAI
• 12 Panduan
• 4 Grup
1) Perceivable (dpt dipahami dgn jelas)
2) Operable
3) Understandable
4) Robust (kuat)
• Mendefinisikan Kelompok Kebutuhan Khusus
• Tingkat Kesesuaian (A, AA, AAA)
51
That’s almost all for day…
RINGKASAN
52
Rangkuman
• Testing dan Usability merupakan masalah orthogonal
–Pengujian mencakup validasi persyaratan fungsional
–Ketergunaan cenderung mencakup validasi persyaratan
"non-fungsional" (tidak sepenuhnya tepat)
• Keduanya adalah bagian dari proses perancangan
aplikasi (Web) yang bagus
• Dapat secara parsial diotomasikan
• Perbedaan kunci:
–Pengujian berurusan terutama dengan pengembang
inhome dan (jarang) dengan pengembang eksternal dan end-
user
–Usability bergantung pada keahlian diluar "dunia teknologi"
53
Daftar Referensi
• Bacaan Utama
–Kappel, G., Proll, B. Reich, S. & Retschitzegger, W.
(2006). Web Engineering, Wiley & Sons. Bab 7 dan
11.
• Referensi lain
–Kent Beck, eXtreme Programming Explained
–http://www.usability.gov/
54
Tool Pengujian
• JUnit.org - http://www.junit.org
• Cactus - http://jakarta.apache.org/cactus
• Clover - http://www.thecortex.net/clover
• dbUnit - http://www.dbunit.org
• HttpUnit - http://www.httpunit.org
• Canoo WebTest - http://webtest.canoo.com
55
Tool Usability
• Pengembangan
–Toolbar pengembang Firefox (
http://chrispederick.com/work/web-developer/)
• Pengujian
–http://www.fujitsu.com/global/accessibility/assistance/wi/
–http://webusability.com/usability_tools.htm
–http://wave.webaim.org/
• Daftar konprehensif dari tool WAI
–http://www.w3.org/WAI/ER/tools/complete
56
Pertanyaan?
57