Apa itu Spike Testing dalam Pengujian Perangkat Lunak? Belajar Dengan Contoh
โก Ringkasan Cerdas
Pengujian Lonjakan Beban (Spike Testing) memberikan beban yang tiba-tiba dan ekstrem pada suatu aplikasi, kemudian menurunkannya secara tiba-tiba pula. Tujuannya adalah untuk mengetahui apakah sistem tersebut mampu bertahan dari guncangan tersebut dan, yang sama pentingnya, apakah sistem tersebut pulih setelahnya.

Apa itu Pengujian Lonjakan?
Pengujian Lonjakan adalah jenis pengujian perangkat lunak di mana aplikasi perangkat lunak diuji dengan peningkatan dan penurunan beban lalu lintas yang ekstrem. Tujuan utama pengujian lonjakan adalah untuk mengevaluasi perilaku aplikasi perangkat lunak saat terjadi kenaikan atau penurunan beban pengguna secara tiba-tiba dan menentukan waktu pemulihan setelah lonjakan beban pengguna.
Spike Testing dilakukan untuk memperkirakan kelemahan aplikasi perangkat lunak.

Tujuan Pengujian Lonjakan (Spike Testing)
Tujuan dari pengujian Spike adalah untuk melihat bagaimana sistem merespons naik turunnya beban pengguna yang tidak terduga. Dalam Rekayasa Perangkat Lunak, pengujian Spike membantu menentukan kinerja sistem akan menurun ketika ada beban tinggi yang tiba-tiba.
Tujuan lain dari Spike Testing adalah untuk menentukan waktu pemulihan. Di antara dua lonjakan beban pengguna yang berturut-turut, sistem memerlukan waktu untuk stabil. Waktu pemulihan ini harus sesingkat mungkin.
Bagaimana melakukan Pengujian Spike
Berikut langkah sederhana untuk melakukan Spike Testing:
Langkah 1) Tentukan Kapasitas Beban
Tentukan kapasitas Beban Pengguna Maksimum aplikasi perangkat lunak Anda.
Langkah 2) Siapkan Lingkungan Pengujian
Siapkan Lingkungan Pengujian dan konfigurasikan untuk mencatat parameter kinerja.
Langkah 3) Tentukan Beban yang Diharapkan
Terapkan beban maksimum yang diharapkan ke Aplikasi Perangkat Lunak Anda menggunakan a Alat Pengujian Kinerja pilihan Anda.
Langkah 4) Tingkatkan Beban
Tingkatkan beban pada sistem dengan cepat untuk jangka waktu tertentu.
Langkah 5) Atur Beban kembali ke Normal
Kurangi beban secara bertahap kembali ke tingkat semula.
Langkah 6) Analisis Hasilnya
Analisis grafik dan metrik kinerja seperti Kegagalan, Waktu yang Dibutuhkan, Pengguna Virtual, dll.
Contoh Skenario Pengujian Spike
- Saat sebuah toko eCommerce meluncurkan penawaran khusus dengan diskon besar seperti di Black Friday.
- Saat aplikasi web melakukan streaming langsung program TV favorit.
- Saat flash sale sedang berlangsung di situs daily deal.
- Ketika konten tertentu dari sebuah situs menjadi viral melalui Internet.
- Sistem baru dirilis untuk produksi, dan banyak pengguna ingin mengakses sistem.
- Pemadaman listrik dapat menyebabkan semua pengguna kehilangan akses ke sistem. Setelah masalah pemadaman listrik teratasi, semua pengguna dapat kembali masuk ke sistem secara bersamaan.
Skenario Pemulihan pada Beban Spike
Tiga skenario pemulihan utama yang dapat dikonfigurasi untuk mencegah Spikes adalah:
- Gunakan platform cloud seperti AWS, Azure untuk secara dinamis meningkatkan kapasitas server seiring dengan beban pengguna
- Jangan izinkan akses aplikasi kepada beberapa pengguna, agar sistem tidak menghadapi beban berat. Hal ini menghentikan orang-orang di atas beban maksimum yang dirancang untuk masuk ke dalam sistem. Sehingga melindungi sistem dari ancaman beban berlebihan.
- Admin situs mengizinkan pengguna untuk bergabung dengan sistem. Namun dengan peringatan bahwa mereka mungkin menghadapi respons yang lambat karena beban yang berat. Hal ini dapat mengakibatkan dampak buruk pada kinerja sistem. Namun, pengguna akan dapat bekerja dengan sistem.
Keuntungan dan Kerugian Pengujian Spike
Berikut kelebihan dan kekurangan Spike Testing:
| Kelebihan | Kekurangan |
|---|---|
| Kinerja perangkat lunak harus dipertahankan bagaimanapun caranya. Namun, ketika terjadi peningkatan ekstrem dalam beban sistem apa pun, besar kemungkinan terjadinya masalah. Spike Testing membantu menguji skenario seperti itu. | Satu-satunya kelemahan dari Spike Testing adalah proses pengujiannya yang mahal. Oleh karena itu, perlu pengaturan kondisi pengujian khusus. Namun jika durasinya lebih lama pasti akan memberikan ROI yang positif. |
| Dalam metode pengujian standar, skenario buruk hingga terburuk mungkin tidak diatasi. Namun, mengabaikannya bukan berarti hal itu tidak akan pernah terjadi. Oleh karena itu, setiap perangkat lunak harus siap menghadapi kemungkinan seperti itu. Salah satu skenario terburuknya adalah pembebanan yang dapat dinilai dan diminimalkan dengan bantuan pengujian lonjakan. |
Alat Pengujian Lonjakan
1) JMeter
The Apache JMeter adalah alat pengujian lonjakan sumber terbuka Java. Ini dirancang khusus untuk memuat perilaku pengujian fungsional dan mengukur kinerja. Alat pengujian kinerja ini dapat digunakan untuk menganalisis dan mengukur kinerja aplikasi web atau berbagai layanan. Saat ini, banyak digunakan untuk uji fungsional, uji server database.
2) LoadRunner
LoadRunner adalah alat pengujian beban untuk Windows dan Linux, yang memungkinkan pengujian lonjakan web dan aplikasi lainnya. Ini membantu untuk menentukan kinerja dan hasil aplikasi bahkan di bawah beban berat.
Bagaimana Tes Ini Sesuai dengan Rangkaian Pengujian Kinerja
Pengujian kinerja adalah istilah umum. Varian-varian di bawah ini hanya berbeda pada bentuk beban yang diterapkan dan durasi penahanannya, itulah sebabnya mengapa seringkali terjadi kebingungan satu sama lain.
| Jenis pengujian | Pola beban | Pertanyaan itu menjawab |
|---|---|---|
| Uji beban | Beban puncak yang diperkirakan, durasi singkat | Apakah sistem tersebut mencapai targetnya dalam kondisi lalu lintas puncak normal? |
| Tes stres | Ditingkatkan melebihi kapasitas hingga terjadi kegagalan. | Di mana letak kerusakannya, dan apakah kegagalannya ditangani dengan baik? |
| Pengujian lonjakan | Lonjakan ekstrem tiba-tiba, lalu penurunan. | Apakah ia mampu bertahan dan pulih dari guncangan lalu lintas? |
| Pengujian ketahanan | Beban normal ditahan selama berjam-jam. | Apakah kinerja menurun seiring waktu? |
| Pengujian perendaman | Beban berkelanjutan dalam jangka waktu yang lama | Apakah terjadi kebocoran memori atau kehabisan sumber daya? |
| Pengujian stabilitas | Beban yang bervariasi di berbagai kondisi | Apakah sistem tetap andal seiring perubahan kondisi? |
| Pengujian volume | Pengguna biasa, volume data sangat besar | Apakah sistem ini mampu menangani pertumbuhan basis data? |
Pengujian daya tahan dan pengujian perendaman sering dianggap sebagai sinonim. Dalam penggunaan umum, keduanya memiliki arti yang sama: keduanya mampu menahan beban berkelanjutan dalam jangka waktu lama. Jika tim membedakannya, pengujian ketahanan (endurance testing) berfokus pada apakah waktu respons meningkat, sementara pengujian beban berlebih (soak testing) berfokus pada konsumsi sumber daya seperti memori, penanganan file, dan kumpulan koneksi. Menjalankan salah satunya biasanya memberikan bukti untuk keduanya.
Metrik Utama yang Perlu Dicatat Selama Pengujian
Suatu pengujian performa hanya akan sebaik apa yang Anda rekam selama proses eksekusi. Rekam keenam hal ini di sisi server dan klien, lalu bandingkan dengan data dasar, bukan hanya berdasarkan firasat.
| metrik | Apa yang dikatakannya padamu | Tanda peringatan |
|---|---|---|
| Waktu respons rata-rata | Pengalaman pengguna tipikal | Pergeseran ke atas apa pun di sepanjang jalur tersebut |
| Waktu respons persentil ke-95 | Pengalaman pengguna paling lambat | Jauh di atas rata-rata, artinya tidak konsisten. |
| Throughput | Permintaan yang diproses per detik | Terjatuh sementara beban tetap konstan |
| Tingkat kesalahan | Persentase permintaan yang gagal atau habis waktu | Kenaikan apa pun di atas ambang batas yang disepakati |
| Penggunaan CPU dan memori | Kapasitas sumber daya server yang tersedia | Kenangan yang terus mendaki dan tak pernah kembali |
| Koneksi dan thread basis data | Kelelahan kolam renang | Jumlah yang terus bertambah tanpa dirilis |
Bacalah nilai rata-rata dan persentil secara bersamaan. Rata-rata 800 ms dengan persentil ke-95 sebesar 900 ms menggambarkan sistem yang konsisten. Rata-rata yang sama dengan persentil ke-95 sebesar 9 detik berarti satu dari dua puluh pengguna mengalami masalah, dan rata-rata tersebut menyembunyikan masalah itu.
Perhatikan bentuknya, bukan hanya nilainya. Dalam pengujian jangka panjang apa pun, garis sumber daya yang datar berarti lulus dan garis yang meningkat berarti ada kebocoran, bahkan ketika angka absolutnya masih berada di dalam batas yang diizinkan pada saat pengujian berakhir.
Pengujian Lonjakan: Poin-Poin Penting yang Perlu Diingat
- pengujian perangkat lunak adalah jenis pengujian perangkat lunak di mana aplikasi perangkat lunak diuji dengan peningkatan dan penurunan beban lalu lintas yang ekstrim.
- Pendekatan yang tepat untuk melakukan pengujian lonjakan adalah dengan meningkatkan jumlah pengguna secara tidak terduga yang diikuti dengan penurunan beban secara langsung.
- Beban tak terduga adalah atribut utama dari kesepakatan itu.
- Contoh skenario pengujian Spike di kehidupan nyata adalah โ ketika toko eCommerce meluncurkan penawaran khusus dengan diskon besar seperti pada Black Friday. Alternatifnya, saat aplikasi web sedang melakukan streaming langsung program TV favorit.
- JMeter adalah salah satu alat yang berguna untuk melakukan pengujian lonjakan.
