Stress Testing Aplikasi Web Menggunakan Web Application Performance Test (WAPT)
Menurut wikipedia, pengujian perangkat lunak (software testing) merupakan suatu investigasi yang dilakukan untuk mendapatkan informasi mengenai kualitas dari produk atau layanan yang sedang diuji (under test). Pengujian perangkat lunak juga memberikan pandangan mengenai perangkat lunak secara obyektif dan independen, yang bermanfaat dalam operasional bisnis untuk memahami tingkat risiko pada implementasinya. Teknik-teknik pengujian mencakup, namun tidak terbatas pada, proses mengeksekusi suatu bagian program atau keseluruhan aplikasi dengan tujuan untuk menemukan bug perangkat lunak.Software pengujian juga dapat dinyatakan sebagai proses untuk memvalidasi dan memverifikasi bahwa program software / aplikasi / produk:
1. memenuhi persyaratan bisnis dan teknis bahwa desain yang dibimbing dan pengembangan;
2. bekerja seperti yang diharapkan, dan
3. dapat diimplementasikan dengan karakteristik yang sama.
Software yang dibuat harus dilakukan pengujian terlebih dahulu. Proses pengujian ini dilakukan pertama kali oleh pengembang itu sendiri. Setelah pengembang yakin bahwa software yang dikembangkannya telah selesai, barulah pengujian dilakukan oleh pihak lain yang tidak mengerti sama sekali tentang bagaimana membuat program.Software pengujian, tergantung pada metode pengujian yang digunakan, dapat diterapkan pada setiap saat dalam proses pembangunan. Namun, sebagian besar upaya uji terjadi setelah persyaratan yang telah dibuat dan proses pengkodean telah selesai. Dengan demikian, metodologi tes diatur oleh metodologi pengembangan perangkat lunak diadopsi.
Model pengembangan perangkat lunak yang berbeda-beda akan memfokuskan upaya uji pada titik-titik yang berbeda dalam proses pembangunan. model-model pembangunan yang lebih baru, seperti Agile , sering menggunakan didorong pengembangan tes dan menempatkan porsi peningkatan pengujian di tangan pengembang, sebelum mencapai sebuah tim penguji formal. Dalam model yang lebih tradisional, sebagian besar terjadi setelah pelaksanaan tes persyaratan yang telah dibuat dan proses pengkodean telah selesai.
Tujuan utama pengujian adalah untuk mendeteksi kegagalan perangkat lunak sehingga cacat dapat ditemukan dan diperbaiki. Pengujian tidak dapat menetapkan bahwa fungsi produk dengan benar dalam semua kondisi namun hanya dapat menetapkan bahwa hal itu tidak berfungsi sebagaimana mestinya dalam kondisi tertentu. Ruang lingkup pengujian perangkat lunak sering kali berisi pemeriksaan kode serta pelaksanaan kode dalam berbagai lingkungan dan kondisi serta memeriksa aspek kode: melakukannya melakukan apa yang seharusnya dilakukan dan melakukan apa yang perlu dilakukan. Dalam budaya saat ini pengembangan perangkat lunak, sebuah organisasi pengujian mungkin terpisah dari tim pengembangan. Ada berbagai peran untuk menguji anggota tim. Informasi yang diperoleh dari pengujian perangkat lunak yang dapat digunakan untuk memperbaiki proses dimana perangkat lunak dikembangkan.
Terdapat beberapa pengujian yang dapat dilakukan, yaitu :
1. Pengujian Fungsional dan Pengujian Non Fungsional.
Pengujian Fungsional mengacu pada tes yang memverifikasi tindakan spesifik atau fungsi dari kode. Ini biasanya ditemukan dalam dokumentasi kode persyaratan, meskipun beberapa metodologi pengembangan kerja dari kasus penggunaan atau cerita-cerita pengguna. tes Fungsional cenderung menjawab pertanyaan “bisa pengguna melakukan ini” atau “apakah ini bekerja fitur tertentu”.
Pengujian non-fungsional mengacu pada aspek perangkat lunak yang mungkin tidak terkait dengan fungsi tertentu atau tindakan pengguna, seperti skalabilitas atau keamanan . pengujian non-fungsional cenderung untuk menjawab pertanyaan seperti “berapa banyak orang bisa login sekaligus”, atau “bagaimana mudah adalah untuk hack software ini”.
2. Pengujian Statis dan Pengujian Dinamis
Ada banyak pendekatan untuk pengujian perangkat lunak. Ulasan , penelusuran , atau inspeksi dianggap sebagai pengujian statis , sedangkan benar-benar melaksanakan kode diprogram dengan himpunan uji kasus disebut sebagai pengujian dinamis . Pengujian statis dapat (dan sayangnya dalam praktek sering) diabaikan. pengujian dinamis terjadi ketika program itu sendiri digunakan untuk kali pertama (yang umumnya dianggap sebagai awal tahap pengujian). pengujian dinamis dapat dimulai sebelum program 100% selesai untuk menguji bagian tertentu dari kode (modul atau diskrit fungsi ). Khas teknik untuk hal ini adalah baik menggunakan Rintisan bertopik / driver atau eksekusi dari sebuah debugger lingkungan. Sebagai contoh, spreadsheet program ini, dengan sifatnya, diuji untuk sebagian besar interaktif (” on the fly “), dengan hasil yang ditampilkan segera setelah setiap perhitungan atau manipulasi teks.
Software pengujian dapat dilakukan oleh perangkat lunak penguji . Sampai tahun 1980-an istilah “software tester” digunakan secara umum, tetapi kemudian juga dilihat sebagai profesi yang terpisah. Mengenai periode dan tujuan yang berbeda dalam pengujian perangkat lunak, peran yang berbeda telah ditetapkan: manajer, memimpin, uji desainer, tester, pengembang otomasi, dan pengawas tes.
Definisi Stress Testing
Stress testing adalah pengujian yang dilakukan untuk mengetahui kemampuan perangkat lunak dalam menangani kondisi yang tidak normal (mencakup kuantitas/volume).Ketika kita berniat meluncurkan aplikasi berbasiskan web di internet, kita harus mempersiapkan banyak hal. Dari segi sistem salah satunya adalah memastikan aplikasi web yang kita luncurkan bisa menangani pengakses aplikasi tersebut sejumlah yang kita targetkan.
Untuk menentukan jumlah pengakses bukanlah hal mudah, tapi kita bisa melakukan pengujian sebelum live, dengan melakukan stress testing. Dengan hasil test tersebut, kita bisa mengetahui performa aplikasi web kita dan bisa memperkirakan dengan infrastruktur yang kita miliki sekarang apakah layanan akan berfungsi dengan baik atau tidak saat sistem diluncurkan untuk diakses oleh user.
Stress test dilakukan secara bertahap yaitu pertama dengan test kecil dan dilkanjutkan dengan maksimal user yang bisa ditangani web ,ini penting karena kita harus tau seberapa kuat web dalam menangani beban. Banyak tool-tool maupun software yang digunakan untuk stress test antara lain :
- WAPT
- Webstress test tool (Microsoft)
- Apache Jmeter
- WSOP
Definisi WAPT (Web Application Perfomance Testing)
WAPT (Web Application Perfomance Testing) adalah sebuah tool software
testing yang digunakan untuk pengujian tingkat stress pada suatu
aplikasi web. Aplikasi ini mudah digunakan dan hemat biaya untuk menguji
situs web: dari aplikasi bisnis pribadi yang digunakan untuk web portal
, server web, aplikasi server, penyimpanan database, dll.Dengan WAPT
kita dapat membuat tes beban dalam beberapa menit. Beberapa klik yang
diperlukan untuk membuat ribuan pengguna virtual menjalankan beberapa
sesi bersamaan terhadap situs web. Satu set khusus fitur akan
memungkinkan kita membuat tes data yang didorong untuk menangani situs
web dengan konten dinamis, bekerja dengan halaman HTTPS aman dan semua
jenis otentikasi. Kita dapat menguji dan menganalisis karakteristik
kinerja dari sistem kita di bawah kondisi beban yang bervariasi.
Menggunakan informasi yang diberikan oleh WAPT melalui grafik deskriptif
dan laporan Anda dapat dengan mudah mengisolasi dan memperbaiki
hambatan dalam perangkat lunak dan konfigurasi hardware.
Jenis Tes / Fungsi yang Dapat Dilakukan oleh WPAT (Web Application Performance Testing)
- Functionality
- Configuration
- Compatibility
- Volume testing
- Stress testing
- Performance testing
- Recovery testing
- Security Testing
- Network security testing
- Document Testing
Berikut ini akan dijabarkan cara pengujian aplikasi web dengan metode stress testing dan menggunakan WPAT
1. Jalankan Software WAPT, tentunya sudah terinstal pada laptop atau
komputer anda. berikut ini adalah tampilan awal software WAPT.
Setelah tampilan softwarenya terlihat alias muncul, sekarang kita akan
memulai untuk mengetahui fungsi software ini dengan klik menu ‘New’ lalu
sesuaikan dengan tujuan pengetesan anda. Disini kami memilih untuk
‘Strees’ test. Untuk lebih mudah, lihatlah gambar yang diberi tanda
merah seperti dibawah ini.
Setelah pemilihan test selesai, maka tampilan berikutnya akan menanyakan
tentang scenario yang diingankan oleh user. Kami mengatur scenario
sebanyak 1-20 user. Untuk inputan yang dibawahnya kami mencantumkan 20
untuk step pengaturan waktu user masuk, yaitu setiap 20 detik akan ada 2
user yang mengakses web. Setelah itu, kita pilih ‘next’.
Pada tampilan dibawah ini,anda akan diminta untuk memeasukkan inputan
berapa lama test akan dijalankan. Disini kami akan melakukan pengujian
selama 2 menit, jika waktu pengujian telah diisi,klik ‘next’
Nah sekarang anda tinggal masukkan berapa kolum yang akan tampil untuk
hasil pada report yang akan keluar setelah semua pengujian berhasil.
Kami menggunakan 10 kolom saja.
Setelah semua step sudah dijalankan sesuai inputan anda, klik ‘finish’
untuk memulai proses pengujiannya. Jangan lupa klik pada checkbox
seperti yang diberi tanda merah seperti gambar dibawah ini.
Setelah semua langkah pengaturan scenario terpenuhi, maka sekarang anda
tinggal membuat suatu profile scenario yang berfungsi untuk penyimpanan
semua scenario dari awal sampai akhir. Setelah menulis profile seperti
yang kami gunakan ‘Stress Tes’, klik OK
Setelah pembuatan profile untuk scenario selesai, maka kita akan
melanjutkan proses penggujian. Tampilan dibawah ini merupakan tampilan
awal pada web local kami.
Sekarang anda tinggal memilih action button apa saja yang akan anda
test, disini ada 23 action yang kami test. Seperti yang anda lihat pada
lingkaran merah dibawah ini. Dan untuk langkah selanjutnya, anda pilih
menu ‘Verify Test’ seperti tanda panah merah diwabah ini
Setelah proses Verify selasai, maka sekarang kita jalankan testnya dengan mengklik ‘Run Test’…
Proses pengujian pun telah berjalan diikuti dengan timeline yang telah
kita atur tadi pada saat penentuan scenario. Untuk melihatnya kami telah
memberikan tanda merah pada timelinenya seperti gambar dibawah ini
Pengujian telah selesai, sekarang kita tinggal melihat hasilnya melalui
Grafik yang terlihat dibawah ini. Oh iya, jangan heran ya apabila
Mozilla anda akan muncul secara tiba-tiba diikuti hasil dari proses
pengujian tadi. Seperti gambar kedua dibawah ini
Stress test sudah dilakukan dan melihat bagaimana ternyata web yang sudah kita test apakah sudah cukup layak untuk di luncurkan.