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.

  • โšก Pola Beban: Peningkatan tajam jauh di atas lalu lintas normal, ditahan sebentar, lalu dihilangkan.
  • ๐ŸŽฏ Tujuan utama: Tentukan apakah sistem mengalami kegagalan, dan apakah kegagalan tersebut ditangani dengan baik.
  • ๐Ÿ”„ Pemulihan Itu Penting: Kembali ke waktu respons normal setelah lonjakan sama pentingnya dengan bertahan melewatinya.
  • ๐Ÿ“ˆ Pemicu Realistis: Penjualan kilat, perilisan tiket, lalu lintas viral, dan pekerjaan batch terjadwal.
  • ๏ธ Perkakas: JMeter Baik LoadRunner maupun LoadRunner memodelkan peningkatan daya secara instan, bukan secara bertahap.
  • ๐Ÿ“Š Apa yang dilihat: Tingkat kesalahan, kedalaman antrian, dan waktu yang dibutuhkan untuk kembali ke kondisi awal.

Apa itu Spike Testing?

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.

Pengujian Lonjakan
Pengujian Lonjakan

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:

  1. Gunakan platform cloud seperti AWS, Azure untuk secara dinamis meningkatkan kapasitas server seiring dengan beban pengguna
  2. 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.
  3. 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.

Pertanyaan Umum Demo Slot

Pengujian stres meningkatkan beban secara bertahap hingga sistem rusak, untuk menemukan batas maksimumnya. Pengujian lonjakan menerapkan beban ekstrem secara instan, untuk melihat apakah guncangan mendadak menyebabkan kegagalan yang tidak akan terjadi jika beban ditingkatkan secara bertahap.

Sistem yang tetap aktif tetapi tidak pernah kembali ke waktu respons normal tetap saja mengecewakan pengguna yang datang setelah lonjakan permintaan. Waktu pemulihan adalah metrik yang mencerminkan dampak bisnis yang sebenarnya.

Tetapkan target berdasarkan peristiwa nyata, bukan angka bulat. Data lalu lintas historis dari penjualan atau peluncuran sebelumnya, dikalikan dengan pertumbuhan yang diharapkan sejak saat itu, memberikan target yang dapat dipertanggungjawabkan.

Model AI yang dilatih berdasarkan data lalu lintas historis, kalender pemasaran, dan sinyal eksternal memprediksi kapan lonjakan akan terjadi, yang memungkinkan tim untuk mempersiapkan infrastruktur terlebih dahulu daripada bereaksi setelah kejadian.

Ya. Alat AI dapat memperoleh profil lonjakan dari log akses produksi, mereproduksi bentuk sebenarnya dari lonjakan masa lalu daripada perubahan langkah buatan.

Ringkaslah postingan ini dengan: