Apa itu STRESS Testing dalam Pengujian Perangkat Lunak?

⚡ Ringkasan Cerdas

Pengujian beban (stress testing) mendorong aplikasi melampaui batas operasional normalnya untuk menemukan titik kritis, memastikan bahwa kegagalan ditangani dengan baik, dan membuktikan bahwa sistem pulih dengan lancar setelah beban ekstrem dihilangkan.

  • 🔘 Definisi: Pengujian Stres mengukur ketahanan dan penanganan kesalahan di bawah beban yang jauh lebih berat daripada lalu lintas produksi yang pernah ada.
  • ☑️ Tujuan: Pengujian ini menentukan titik kegagalan yang tepat dan memverifikasi kemampuan pemulihan setelah beban kembali normal.
  • Cakupan: Varian terdistribusi, aplikasi, transaksional, sistemik, dan eksploratif masing-masing menekankan lapisan sistem yang berbeda.
  • 🧪 Proses: Rencanakan, buat skrip, laksanakan, analisis, lalu sempurnakan — biasanya melalui tiga atau empat siklus penuh sebelum tolok ukur tercapai.
  • Perkakas: LoadRunner, Apache JMeter, Penguji Stres, dan NeoMemuat, menghasilkan pengguna virtual bersamaan, dan menangkap data respons.
  • 📊 Metrik: Throughput, halaman per detik, waktu hit, waktu ke byte pertama, dan koneksi yang gagal mengukur hasilnya.

Pengujian Stres dalam Pengujian Perangkat Lunak

Apa itu Tes Stres?

Pengujian Tegangan Stress Testing adalah jenis pengujian perangkat lunak yang memverifikasi stabilitas dan keandalan aplikasi perangkat lunak. Tujuan dari Stress Testing adalah untuk mengukur ketahanan dan kemampuan penanganan kesalahan perangkat lunak dalam kondisi beban yang sangat berat, dan untuk memastikan bahwa perangkat lunak tidak mengalami crash dalam situasi kritis. Pengujian ini sengaja dilakukan di luar titik operasi normal dan mengevaluasi bagaimana perangkat lunak berperilaku dalam kondisi ekstrem.

Dalam pengujian beban (stress testing), aplikasi yang diuji (AUT) diberi beban dalam jangka waktu singkat untuk mengetahui kapasitas ketahanannya. Penggunaan pengujian beban yang paling menonjol adalah untuk menentukan batas di mana sistem, perangkat lunak, atau perangkat keras akan mengalami kerusakan. Pengujian ini juga memeriksa apakah sistem menunjukkan manajemen kesalahan yang efektif setelah batas tersebut terlampaui.

In Rekayasa Perangkat LunakPengujian Stres sering kali tercantum bersamaan dengan Pengujian Daya TahanNamun, keduanya berbeda: Pengujian Stres menerapkan beban yang sangat tinggi dalam waktu singkat untuk menemukan titik patah, sedangkan Pengujian Ketahanan (perendaman) menahan beban sedang selama berjam-jam untuk mengungkap degradasi bertahap.

Tangkapan layar di bawah ini menunjukkan blok data besar yang disalin dari halaman web.

Menyalin blok data yang sangat besar dari halaman web untuk memberi beban pada aplikasi desktop.

Aplikasi yang sedang diuji mengalami beban kerja berat ketika 5 GB data disalin dari situs web dan ditempelkan ke Notepad. Notepad kini mengalami beban kerja berat dan menampilkan pesan kesalahan "Tidak Merespons", persis seperti yang ditunjukkan pada tangkapan layar berikutnya.

Notepad menampilkan pesan kesalahan "Tidak Merespons" setelah 5 GB data disalin ke dalamnya.

Prinsip yang sama dapat diterapkan langsung pada sistem sisi server.

Perlunya Pengujian Stres

Perhatikan contoh-contoh nyata berikut di mana penggunaan Pengujian Stres menjadi jelas:

  • Selama masa festival, sebuah toko onlineping Situs tersebut mungkin mengalami lonjakan trafik, atau ketika mengumumkan penjualan.
  • Ketika sebuah blog disebutkan di surat kabar terkemuka, tiba-tiba blog tersebut mengalami lonjakan lalu lintas.

Melakukan pengujian beban (stress testing) sangat penting untuk mengakomodasi lonjakan lalu lintas yang tidak normal tersebut. Kegagalan untuk mengakomodasi lalu lintas mendadak ini dapat mengakibatkan hilangnya pendapatan dan reputasi.

Pengujian stres juga sangat berharga karena alasan-alasan berikut:

  • Ini memeriksa apakah sistem berfungsi dalam kondisi abnormal.
  • Hal ini menegaskan bahwa pesan kesalahan yang sesuai ditampilkan saat sistem sedang mengalami beban kerja yang tinggi.
  • Kegagalan sistem dalam kondisi ekstrem dapat mengakibatkan kerugian pendapatan yang sangat besar.
  • Lebih baik bersiap menghadapi kondisi ekstrem dengan melakukan Uji Stres terlebih dahulu.

Bagian selanjutnya menjelaskan apa yang harus dibuktikan oleh Uji Stres yang sukses.

Tujuan Pengujian Stres

Tujuan dari Pengujian Stres adalah untuk menganalisis perilaku sistem setelah terjadi kegagalan. Agar Pengujian Stres berhasil, sistem harus menampilkan pesan kesalahan yang sesuai saat berada dalam kondisi ekstrem.

Untuk melakukan pengujian beban (stress testing), terkadang digunakan kumpulan data yang sangat besar, dan data tersebut dapat hilang saat sistem mengalami kegagalan. Penguji harus memastikan data terkait keamanan ini tidak hilang selama pengujian beban.

Tujuan utama dari Stress Testing adalah untuk memastikan bahwa sistem dapat pulih setelah mengalami kegagalan, suatu sifat yang disebut recoverability (kemampuan pemulihan). Pengujian Pemulihan Kemudian memverifikasi prosedur restorasi tersebut secara detail.

Pengujian Beban vs Pengujian Stres

Kedua teknik tersebut termasuk dalam Pengujian Kinerja karena keduanya merupakan keluarga, maka mudah untuk membingungkannya. Diagram di bawah ini membandingkan kedua profil beban tersebut.

Grafik yang membandingkan profil beban tetap pada Pengujian Beban dengan profil beban yang meningkat pada Pengujian Tegangan.

Pengujian beban Pengujian Tegangan
Pengujian beban menguji perilaku sistem dalam kondisi beban kerja normal; ini mensimulasikan beban kerja aktual yang diharapkan. Pengujian Stres menguji perilaku sistem dalam kondisi ekstrem dan dilakukan hingga sistem mengalami kegagalan.
Pengujian beban tidak akan merusak sistem. Pengujian stres sengaja berupaya merusak sistem dengan membanjirinya dengan data atau dengan mengurangi sumber daya yang tersedia.

Profil terkait meliputi: Pengujian Lonjakan (ledakan singkat tiba-tiba), Pengujian Volume (data besar daripada banyak pengguna) dan Pengujian Skalabilitas (ruang pertumbuhan).

Jenis Pengujian Stres

Berikut adalah jenis-jenis Pengujian Stres, yang dijelaskan satu per satu.

Pengujian Stres Terdistribusi

Dalam sistem klien-server terdistribusi, pengujian dilakukan di seluruh klien dari server. Peran server pengujian beban adalah untuk mendistribusikan serangkaian pengujian beban ke semua klien pengujian beban dan untuk track status setiap klien. Setelah klien menghubungi server, server menambahkan nama klien dan mulai mengirim data untuk pengujian. Gambar di bawah menunjukkan bagaimana server pengujian beban mencapai beberapa klien tetapi tidak yang lain.

Pengaturan Pengujian Beban Terdistribusi di mana server beban dapat menjangkau Klien1 dan Klien2 tetapi kehilangan kontak dengan Klien3 dan Klien4.

Sementara itu, mesin klien mengirimkan sinyal, atau detak jantung, yang mengkonfirmasi bahwa mereka masih terhubung ke server. Jika server tidak menerima sinyal apa pun dari mesin klien, mesin tersebut perlu diselidiki lebih lanjut untuk debugging. Pada gambar, server dapat terhubung dengan 2 klien (Client1 dan Client2), tetapi tidak dapat mengirim atau menerima sinyal dari Client 3 dan Client 4.

Pengujian beban (stress testing) yang dilakukan semalaman adalah pilihan terbaik untuk skenario ini. Pusat data server yang besar membutuhkan metode yang lebih efisien untuk menentukan komputer mana yang mengalami kegagalan akibat beban berlebih yang perlu diselidiki.

Pengujian Beban Aplikasi

Pengujian ini berfokus pada pencarian cacat yang terkait dengan penguncian dan pemblokiran data, masalah jaringan, dan hambatan kinerja dalam satu aplikasi.

Pengujian Stres Transaksional

Ia melakukan pengujian beban (stress testing) pada satu atau lebih transaksi antara dua atau lebih aplikasi. Pengujian ini digunakan untuk penyempurnaan dan pengoptimalan sistem.

Pengujian Stres Sistemik

Ini adalah pengujian beban terintegrasi yang dapat dijalankan di beberapa sistem yang berbagi server yang sama. Pengujian ini digunakan untuk menemukan cacat di mana satu aplikasi memblokir data aplikasi lain.

Pengujian Stres Eksploratif

Ini adalah jenis Pengujian Stres yang digunakan untuk menguji sistem dengan parameter atau kondisi yang tidak biasa yang kemungkinan besar tidak akan terjadi dalam skenario nyata. Pengujian ini digunakan untuk menemukan cacat dalam situasi yang tidak terduga seperti:

  • Sejumlah besar pengguna masuk secara bersamaan.
  • Pemindai virus berjalan di semua mesin secara bersamaan.
  • Basis data yang sedang offline saat diakses dari sebuah situs web.
  • Sejumlah besar data dimasukkan ke dalam basis data secara bersamaan.

Varian mana pun yang diterapkan, urutan eksekusinya tetap sama.

Bagaimana cara melakukan Tes Stres?

Proses pengujian stres dapat dilakukan dalam 5 langkah utama:

  • Langkah 1) Merencanakan Stress Test: Di sini Anda mengumpulkan data sistem, menganalisis sistem, dan menentukan tujuan uji stres.
  • Langkah 2) Buat Skrip Otomatisasi: Pada fase ini, Anda membuat skrip otomatisasi Pengujian Beban dan menghasilkan data uji untuk skenario beban.
  • Langkah 3) Eksekusi Skrip: Pada tahap ini, Anda menjalankan skrip otomatisasi Pengujian Beban dan menyimpan hasil beban tersebut.
  • Langkah 4) Analisis Hasil: Pada tahap ini, Anda menganalisis hasil Uji Stres dan mengidentifikasi hambatan.
  • Langkah 5) Penyesuaian dan Optimalisasi: Pada tahap ini, Anda menyempurnakan sistem, mengubah konfigurasi, dan mengoptimalkan kode dengan tujuan memenuhi tolok ukur yang diinginkan.

Terakhir, Anda menjalankan seluruh siklus lagi untuk menentukan apakah penyesuaian telah menghasilkan hasil yang diinginkan. Misalnya, tidak jarang diperlukan 3 hingga 4 siklus proses Pengujian Stres sebelum tujuan kinerja tercapai, sehingga skrip biasanya dipelihara bersamaan dengan... regresi pada.

Alat yang Direkomendasikan untuk Pengujian Stres

Keempat alat di bawah ini mencakup sebagian besar kebutuhan, mulai dari paket perangkat lunak perusahaan hingga opsi sumber terbuka gratis.

LoadRunner

LoadRunner adalah alat pengujian beban yang banyak digunakan, sekarang dijual oleh OpenText pada edisi Profesional, Perusahaan, dan Cloud setelah beralih dari HP ke Micro Focus. OpenTextHasil uji beban yang dihasilkan oleh LoadRunner diperlakukan sebagai tolok ukur.

JMeter

Apache JMeter adalah alat pengujian sumber terbuka. Ini adalah alat murni. Java Aplikasi ini digunakan untuk pengujian stres dan kinerja, dan dirancang untuk mencakup jenis pengujian seperti beban, fungsional, dan stres. Rilis 5.6.x saat ini Apache JMeter membutuhkan Java 8 atau lebih baru, dengan Java 17 direkomendasikan.

Penguji Stres

Alat ini menyediakan analisis ekstensif tentang kinerja aplikasi web, menyajikan hasil dalam format grafis, dan mudah digunakan. Tidak diperlukan skrip tingkat tinggi, sehingga pengembalian investasi tetap rendah.tracCocok untuk tim yang lebih kecil.

NeoBeban

NeoBeban, sekarang bagian dari Tricentis Portofolio adalah alat populer untuk menguji web dan Aplikasi mobile. Ia dapat mensimulasikan ribuan pengguna untuk mengevaluasi kinerja aplikasi di bawah beban dan menganalisis waktu respons. Ia juga mendukung pengujian kinerja, beban, dan stres yang terintegrasi dengan cloud, serta memiliki skalabilitas yang baik.

Opsi lainnya tercantum dalam panduan untuk alat pengujian kinerjaApa pun yang dipilih, hasilnya hanya berarti sesuatu jika dilihat dari metrik di bawah ini.

Metrik untuk Stress Testing

Metrik membantu dalam mengevaluasi kinerja suatu sistem dan umumnya dipelajari di akhir Uji Stres. Metrik yang umum digunakan dikelompokkan menjadi tiga keluarga.

Mengukur Skalabilitas dan Kinerja

  • Halaman per Detik: Mengukur berapa banyak halaman yang diminta per detik.
  • Throughput: Metrik dasar — ​​ukuran data respons per detik.
  • Putaran: Jumlah kali skenario pengujian telah direncanakan dibandingkan dengan jumlah kali klien telah mengeksekusinya.

Respon Aplikasi

  • Waktu serangan: Waktu rata-rata untuk mengambil gambar atau halaman.
  • Waktu ke byte pertama: Waktu yang dibutuhkan untuk mengembalikan byte data atau informasi pertama.
  • Waktu halaman: Waktu yang dibutuhkan untuk mengambil semua informasi pada suatu halaman.

Kegagalan

  • Koneksi gagal: Jumlah koneksi gagal yang ditolak oleh klien (sinyal lemah).
  • Putaran yang gagal: Jumlah putaran yang gagal.
  • Upaya gagal: Jumlah upaya gagal oleh sistem (tautan rusak atau gambar tidak terlihat).

Bagian penutup mencantumkan situasi-situasi yang paling sering membenarkan dilakukannya Uji Stres.

Contoh Pengujian Stres

Pengujian beban (stress testing) menjadi penting setiap kali suatu peristiwa diperkirakan akan mendorong lalu lintas jauh melampaui batas harian:

  • Sebuah situs web e-commerce mengumumkan obral festival.
  • Sebuah situs berita pada saat terjadi peristiwa besar.
  • Badan pendidikan yang menerbitkan hasil ujian.
  • Situs jejaring sosial, blog, dan aplikasi seluler selama momen viral.

Dalam setiap kasus, pengujian memantau sumber daya seperti memori, prosesor, dan jaringan, memeriksa apakah pesan kesalahan yang sesuai muncul di bawah tekanan, dan memastikan sistem kembali normal setelahnya. Ini sesuai dengan siklus hidup pengujian perangkat lunak sebagai pemeriksaan non-fungsional di samping Pengujian Sistem dan rangkaian yang lebih luas dari jenis pengujian perangkat lunak.

Pertanyaan Umum Demo Slot

Tidak. Pengujian Stres menerapkan beban yang sangat berat dalam waktu singkat untuk menemukan titik patah. Rendam atau pengujian ketahanan Menguji beban realistis selama berjam-jam untuk mengungkap kebocoran memori dan degradasi yang lambat.

Pengujian lonjakan Metode ini memberikan lonjakan beban yang tiba-tiba dan sangat singkat pada sistem dan mengukur seberapa cepat sistem tersebut beradaptasi dan pulih. Pengujian Stres meningkatkan beban secara bertahap hingga terjadi kegagalan, sehingga menjawab di mana batas kemampuan sistem berada, bukan seberapa cepat sistem bereaksi.

Lakukan pengujian ini sebelum setiap rilis utama, sebelum puncak lalu lintas yang dapat diprediksi seperti penjualan atau hari pengumuman hasil, dan setelah perubahan arsitektur pada caching, connection pooling, atau autoscaling. Banyak tim juga mengulanginya setiap kuartal sebagai pengecekan dasar.

Gunakan lingkungan yang ukurannya sedekat mungkin dengan lingkungan produksi sesuai anggaran, karena perangkat keras yang kurang memadai akan menggeser titik kritis. Isi lingkungan tersebut dengan data yang telah disamarkan atau data sintetis dengan volume produksi, dan jangan pernah menjalankan uji stres yang merusak pada data pelanggan yang sedang aktif.

Model pembelajaran mesin menggali data telemetri produksi untuk membangun profil lalu lintas puncak yang realistis, menandai kurva waktu respons anomali yang akan terlewatkan oleh ambang batas tetap, dan mengkorelasikan metrik sumber daya untuk menunjukkan hambatan. Beberapa platform komersial sekarang menghasilkan skenario beban dari pola penggunaan yang diamati.

Ya. Draf kopilot JMeter Rencana pengujian, skrip k6 atau Gatling, generator data berparameter, dan langkah-langkah pipeline CI dari perintah bahasa sederhana. Anggap output sebagai draf pertama: waktu, kecepatan, dan pernyataan masih perlu divalidasi oleh penguji.

Ini mengungkapkan batas kapasitas sebenarnya, membuktikan penanganan kesalahan, dan mengurangi risiko gangguan selama jam sibuk. Keterbatasannya adalah biaya — lingkungan dan lisensi skala produksi mahal — ditambah upaya pembuatan skrip dan hasil yang berubah setiap kali infrastruktur berubah.

Insinyur performa atau penguji spesialis menjalankan pengujian ini, biasanya dengan pengembang dan staf operasional yang siap membaca metrik server. Pengujian ini dilakukan setelah pengujian fungsional. pengujian sistem, setelah sistem cukup stabil sehingga kegagalan menunjukkan keterbatasan kapasitas dan bukan bug.

Ringkaslah postingan ini dengan: