• Tidak ada hasil yang ditemukan

Pengujian Perangkat Lunak & Web App. Nisa ul Hafidhoh

N/A
N/A
Protected

Academic year: 2021

Membagikan "Pengujian Perangkat Lunak & Web App. Nisa ul Hafidhoh"

Copied!
38
0
0

Teks penuh

(1)

Pengujian

Perangkat Lunak

& Web App

Nisa’ul Hafidhoh

[email protected]

08156114760

(2)

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)

(3)

Aktivitas Pengembangan PL

(4)

Aktivitas Pengujian

(5)

Peran tiap Proses Pengujian

(6)

Siklus Pengujian

• Perencanaan Pengujian

• Perancangan Pengujian

• Eksekusi Pengujian

• Laporan Pengujian

12/21/2016 Software Testing - NH @2015 6

(7)

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

(8)

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

(9)

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

(10)

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

(11)
(12)

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

(13)

Metode Pengujian PL

(14)

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

(15)

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

(16)

Tantangan

• Aplikasi berbasis web, berada pada

jaringan, dan beroperasi dengan sistem yang berbeda

– Sistem Operasi – Browser

– Hardware Platform

– Protokol komunikasi

(17)

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

(18)

Proses Pengujian Web App

(19)

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.

(20)

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.

(21)

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.

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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.

(27)

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

(28)

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.

(29)

Component Testing

• Pengujian tingkat komponen, juga disebut

pengujian fungsional, berfokus pada satu set tes yang mencoba untuk mengungkap kesalahan

dalam fungsi webapp.

• Setiap fungsi webapp adalah komponen

perangkat lunak (diimplementasikan pada salah satu pemrograman atau bahasa scripting) dan dapat diuji dengan menggunakan blackbox

testing atau teknik whitebox.

(30)

Database Testing

• Tes yang mengungkap kesalahan dalam komunikasi antara webapp dan basis data.

• Tes dirancang untuk mengungkap kesalahan yang dibuat saat menerjemahkan permintaan pengguna ke dalam

form yang dapat diproses oleh DBMS.

• Data mentah yang diperoleh dari database harus

ditransmisikan ke server webapp dan diformat untuk pengiriman berikutnya ke klien.

• Tes yang menunjukkan keabsahan transformasi

diterapkan pada data mentah untuk membuat objek

konten yang valid.

(31)

Layer

Interaksi

(32)

Security Testing

• Tes keamanan yang dirancang untuk menyelidiki kerentanan pada lingkungan client-side, jaringan komunikasi yang terjadi sebagai data yang

dikirim dari klien ke server dan kembali lagi, serta lingkungan server-side.

• Vulnerability sisi klien:

Di sisi klien, kerentanan sering dapat ditelusuri pada bug yang sudah ada sebelumnya di

browser, program e-mail, atau perangkat lunak komunikasi.

– misalnya: salah satu bug yang biasa disebutkan

adalah Buffer Overflow

(33)

Security Testing [2]

• Vulnerability jaringan:

– Data dikomunikasikan antara klien dan server rentan terhadap spoofing. Spoofing terjadi

ketika salah satu ujung jalur komunikasi

digerogoti oleh dan entitas dengan maksud jahat.

– Untuk misalnya, Seorang pengguna dapat palsu oleh situs web berbahaya yang bertindak

seolah-olah itu adalah sah app server web.

Tujuannya adalah untuk mencuri password,

informasi kepemilikan, atau data kredit.

(34)

Security Testing [3]

• Vulnerability sisi server:

– Kerentanan termasuk denial-of-service

serangan dan script berbahaya yang dapat

diteruskan ke sisi client atau digunakan untuk menonaktifkan operasi server

– Untuk misalnya: database server-side dapat

diakses tanpa otorisasi (pencurian data).

(35)

Performance Testing

• Untuk mengungkap masalah kinerja karena:

– Kurangnya sumber daya server-side – bandwidth jaringan yang tidak cukup

– kemampuan database yang tidak memadai,

kemampuan sistem operasi yang rusak atau lemah – fungsi aplikasi web yang dirancang buruk

• Tujuannya ada dua

– Untuk memahami bagaimana sistem merespon loading (yaitu, jumlah pengguna, jumlah transaksi, atau volume keseluruhan data) meningkatkan

– Untuk mengumpulkan metrik yang akan menyebabkan

modifikasi desain untuk meningkatkan kinerja

(36)

Load & Stress Testing

• Load Testing

– Load testing untuk menentukan bagaimana aplikasi web dan lingkungan server-side yang akan merespon berbagai kondisi load.

• Stress Testing

– Stress testing merupakan kelanjutan dari load

testing , namun dalam hal ini dipaksa untuk

melebihi batas operasional.

(37)

Referensi

• Pressman, R.S. & David Lowe. 2009. Web engineering : a practitioner’s approach .

McGraw-Hill

• Louise Tamres. 2002. Introducing

Software Testing . First edition, Addison

Wesley.

(38)

Terimakasih

Referensi

Dokumen terkait