Rekayasa Perangkat Lunak Pendekatan Praktisi Edisi 7 - (Roger S Pressman, Ph.D.)



Review pada Bab 20 Pengujian Aplikasi-aplikasi Berbasis WEB
Buku ini merupakan peganggan bagi banyak akademisi dan praktisi dalam kelas-kelas yang mereka selenggarakan. Pada bab ini misalnya, yang membahas tentang pengujian Aplikasi berbasis WEB. Saya sangat tertarik dengan bab ini karena pada era milenia ini banyak sekali bermunculan aplikasi yang menggunakan sistem interkoneksi internet pada cross platform sekalipun.
Coba kita bayangkan bagaimana sistem tersebut bisa saling terhubung, berkomunikasi dan saling terintegrasi secara visual. Saya mengutip Wallace yang menyatakan bahwa :
Pengujian tidak harus menunggu sampai proyek selesai. Mulailah pengujian sebelum Anda menuliskan Kode program. Uji lah terus-menerus dan ujilah secara efektif. Dengan bagitu, Anda akan mengembengkan situs web yang dapat bertahan Lama.

Ada beberapa pertanyaan awal untuk mulai membahas Bab ini. Saya sering mengumpulkan pertanyaan lalu mencari jawabannya pada buku yang sedang saya baca. Beberapa pertanyaan yang muncul ini di antaranya :
1.    Apakah yang dimaksud engan pengujian aplikasi berbasis web ?
Jawaban singkat. Pengujian aplikasi web adalah aktivitas yang memiliki satu tujuan, yaitu menghasilkan web yang handal dan sesuai dengan kebutuhan. Pengujiannya sendiri untuk menemukan kesalahan dalam isi, fungsi, kegunaan, kemampuan navigasi, kapasitas, kinerja, dan keamanan aplikasi.
Nah, pengujiannya sendiri memiliki 2 skema, pengujian tinjauan teori (perancangan) dan pengujian berbasis eksekusi program (trial and find the error)
2.    Siapa yang melakukan pengujian ?
Aplikasi Web sendiri berkaitan dengan banyak pihak. Aplikasi web bisa diperuntukkan bagi korporasi, perorangan, atau cross end user.
Jadi, untuk melakukan pengujian berbasis eksekusi program kita harus mengetahui bagaimana pola perilaku dari masing-masing pengguna (Manajer, pelangan, bag. Keuangan, dll) sistem berbasis Web ini.

3.    Mengapa kita harus membahas pengujian Aplikasi berbasis Web ? apakah ini hal yang penting ?
Coba kita bandingkan pengguna internet pada tahun tahun-tahun sebelumnya. Hanya 817 miliar orang pengguna internet aktif tahun 2004, namun pada tahun 2009 melonjak sampai 1734 miliar pengguna. 2 kalo lipatnya. Sekarang ini ada sekitar pengguna 2,5 miliar pada tahun 2014.
Dari jumlah pengguna yang melonjak seperti itu. Pengembangan aplikasi berbasis web juga mengamali lonjakan yang sangat besar. Dulu untuk mengajukan program beasiswa kita tidak pernah membuka web browser, lalu submit semua syarat-syarat yang diminta. Tapi sekarang ini, kita hanya butuh koneksi internet dan persiapan berkas-berkasnya.
Begitu pula muncul website-website baru serta media sosial yang membanjiri di dunia maya.
Apabila ada pengguna aplikasi berbasis web yang menemukan kesalahan yang membuat mereka meragukan aplikasi web tersebut, mereka akan pergi ke tempat lain untuk mencari isi dan fungsi yang mereka perlukan, aplikasi itu akan gagal. Karena alasan tersebut kita harus berhati-hati dalam mengembangkan aplikasi berbasis web.
4.    Apa saja yang harus dilakukan bila ingin melakukan pengujian ?
Aplikasi berbasis web itu ditujukan bagi manusia sebagai pengguna akhir (end user) jadi ketika melakukan pengujian terhadap sebuah aplikasi berbasis web. Kita harus mengutamakan aspek-aspek yang berhubungan dengan pengguna akhir. Bagaimana caranya ? gunakan blackbox testing, baru setelah itu white box testing. Pengujian fungsi-fungsi dan prosedur yang ada pada program aplikasi berbasis web.
Setelah pengujian yang berhubungan dengan pengguna, kita dapat melakukan pengujian terhadap penerapan teknologi dan infrastruktur yang digunakan dalam sistem.
5.    Apa hasilnya ?
Rangkaian sebuah pengujian akan berakhir dengan catatan-catatan perbaikan. Dari catatan yang terdokumentasi dengan baik, kita dapat memprediksi perbaikan mana saja yang harus didahulukan. Perbaikan tersebut juga dapat diprediksikan membutuhkan waktu berapa lama. Selain itu hasil catatannya juga disimpan untuk proses maintenance pada masa yang akan datang.
Konsep pengujian aplikasi website
Dimensi kualitas pengujian
-       ISI
Pengujian ini lebih menekankan pada kualitas tulisan, baik itu secara tekstual terkait tanda baca, dan tata bahasa. Selain itu juga diuji tentang kebenaran informasi yang disajikan. Karena diera banjir informasi, banyak sekali informasi bohong yang disebarkan.
-       FUNGSI
Pengecekan apakah ada kesalahan-kelasahan dalam pemrograman yang dideklarasikan (sintax).
-       STRUKTUR
Pengujian struktur memungkinkan untuk mempermudah dalam pengembangan selanjutnya sebuah website.
-       KEGUNAAN
Untuk memastikan bahwa setiap interface yang ada berjalan sesuai dengan fungsinya. Ini paling vital bagi pengguna aplikasi berbasis web.
-       KEMAMPUAN NAVIGASI
Misalnya menemukan tautan yang sudah tidak berfungsi (dead link)
-       KINERJA
Menguji kemampuan proses kerja seperti lama waktu loading halaman tertentu.
-       KOMPATIBILITAS
Untuk menemukan kesalahan yang khusus pada konfigurasi host yang unik.
-       INTEROPERABILITAS
Untuk meyakinkan bahwa aplikasi web saling terhubung antar antamuka dengan aplikasi lain (cross platform) sekalipun.
-       KEAMANAN
Mencoba dengan berbagai cara hacking, seperti phising, bruteforce maching, dan over loading. Setiap usaha pembobolan yang sukses itu berarti sebuah kegagalan baru ditemukan.
Macam-macam pengujian aplikasi berbasis Web
Pada pengujian aplikasi berbasis web kita selalu memandang bahwa end user adalah central actor untuk sistem yang dibangun. Kita akan lampirkan foto yang memperlihatkan bagaimana memulai sebuah pengujian website. Gambar 20.1
-       Pengujian Isi
Pengujian isi terdiri dari pengujian konten dan pengujian basis data. Pada buku Roger S Pressman ini kita akan diberikan ilmu tentang konten-konten yang baik dan benar melau pertanyaan kritis yang ia ajukan.
Misalnya, apakah informasi yang disajikan dalam web tersebut faktual, akurat dan dapat dipercaya ?
Lalu, apakah telah disediakan sumber referensi yang memadai untuk pembaca ? lalu bagai mana tata letak dari konten yang disediakan ?
Roger juga mengkaitkan dengan hak cipta konten dan merk dagang yang diatur dalam undang-undang.

Pada bagian pengujian basis data, ada gambar yang bisa memperlihatkan bagaimana konsepsi layer-layer yang ada pada sebuah sistem aplikasi berbasis web.
Ada layer klien, server dan database.

-       Pengujian AntarMuka
Antarmuka (interface) sangat penting dalam sebuah aplikasi berbasis dekstop, mobile  maupun web. Namun untuk perangkat lunak berbasis web kita akan lebih mengedepan estetika dan fungsionalitas. Penggunaan warna, huruf, border, tabel dan garis tepi.
Pengujian antarmuka yang dimaksud adalah menguji visibilitasnya pada beberapa peramban (browser), jadi sebuah aplikasi harus dapat diakses dari berbagai web browser, dan sistem oprasi. Sehingga pengguna cross platform tidak kesusahan apabila akan mengaksesnya.
-       Pengujian Peringkat Komponen (pengujian fungsi)
Pengujian ini menggunakan fungsi-fungsi yang ada pada program untuk diuji. Misalnya, sebuah kotak form yang harus diisi dengan angka (integer) maka seharusnya ia tidak akan bisa dimasukkan selain itu. Apabila coba dimasukkan maka akan ada feedback, berupa pemberitahuan (error action). Apa yang seharusnya user lakukan.
-       Pengujian Navigasi
Pengujian navigasi pada aplikasi berbasis web itu meliputi daftar isi website, pencarian internal pada website tersebut, tautan (linked information), redirect, frame dan bookmark.
Menu-menu navigasi yang ada pada website juga seharusnya mempermudah pengguna dalam menjelajahi isi keseluruhan perangkat lunak. Sehingga pengguna (user) dapat maksimal dalam menggali informasi pada website yang disediakan.
-       Pengujian Konfigurasi
Setting Konfigurasi ini berhubungan dengan server aplikasi web, server basis data, sistem operasi, perangkat lunak firewall dan aplikasi konkuren. Aplikasi web diinstal dilingkungan server dan diuji untuk memastikan bahwa aplikasi tersebut beroprasi tanpa kesalahan.
Tidak lupa pada konfigurasi server juga dipikirkan keterhubungan aplikasi dengan client. Pada sisi client, kita lebih fokus pada komponen-komponen berikut ini.
Perangkat keras, sistem operasi, perangkat lunak peramban, komponen antarmuka, plug in, dan konektivitas.
-       Pengujian Kinerja
Pengujian ini untuk menyatakan apakah sebuah sistem aplikasi berbasis web itu mampu menangani permintaan pengguna yang banyak sekali suatu saat. Apakah bandwith yang tersedia bisa mengatasi permintaan. Kemudian menghitung seberapa besar beban permintaan yang di ajukan oleh pengguna sistem.

Lalu bagaimana apabila sistem berbasis web tersebut mengalami over permintaan ? atau permintaan yang melebihi kapasitas kemampuan sistem ? apakah website akan down, atau ada jebakan tersendiri yang memungkinkan website mampu mengontrol hal tersebut ?
-       Keamanan
Keamanan merupakan faktor penting bagi sebuah aplikasi berbasis web. Kalo kita amati dalam beberapa tahun terakhir ini, banyak sekali website-website yang telah dibobol. Salah satunya website Polri, website pemerintah, dan website yang berada di bawah kementrian agama. Jika tidak percaya anda bisa buka di google.
Alasan mengapa orang-orang melakukan hacking terhadap produk perangkat lunak, sebenarnya dilandasi berbagai motif. Hacker bisa saja adalah seorang pesaing bisnis yang sedang dibangun. Mereka mempunya berbagai motif yang bisa dibagi ke dalam hal-hal sederhana. Misalnya mereka ingin mencuri data-data yang ada pada database website tersebut, memodifikasi isi tampilan, menonaktifkan fungsi, menurunkan kinerja, untuk sekedar mengasah kemampuan, atau malah pada tujuan yang lebih keji, ia ingin mempermalukan orang lain, organisasi atau sebuah bisnis.

Maka dari alasan di atas. Kita harus memperhatikan kerentanan-kerentanan yang ada pada aplikasi berbasis web yang akan atau sedang kita bangun.

Firewall –
Otentifikasi –
Otorisasi –

Enkripsi – 

Comments