Apa itu Pengujian Daya Tahan dalam Pengujian Perangkat Lunak? (dengan Contoh)

⚡ Ringkasan Cerdas

Pengujian Ketahanan menjalankan aplikasi di bawah beban normal yang diharapkan untuk jangka waktu yang lama untuk mengungkap apakah kinerja menurun seiring waktu. Ini adalah pengujian yang dapat mendeteksi cacat yang tidak dapat dijangkau oleh pengujian beban selama satu jam.

  • 🕒 Beban Berkelanjutan: Lalu lintas produksi yang diharapkan tertahan selama berjam-jam atau berhari-hari, bukan hanya beberapa menit.
  • 📉 Fokus Degradasi: Pertanyaannya adalah apakah waktu respons cenderung meningkat, bukan apakah target tercapai sekali saja.
  • 💧 Temuan Umum: Kebocoran memori, kehabisan kumpulan koneksi, dan pertumbuhan log atau cache yang tak terbatas.
  • 📊 Perangkat Pemantauan: Penggunaan memori, CPU, waktu respons, throughput, dan koneksi basis data selama keseluruhan proses pengujian.
  • ️ Perkakas: Alat pemuatan standar mengarahkan lalu lintas sementara alat APM mencatat kurva sumber daya.
  • ️ Kompromi: Hasilnya bernilai tinggi tetapi membutuhkan waktu lama untuk diperoleh, yang membatasi seberapa sering tes dapat dijalankan.

Apa itu Tes Ketahanan?

Apa itu Pengujian Daya Tahan?

Pengujian Daya Tahan adalah jenis pengujian perangkat lunak non-fungsional di mana perangkat lunak diuji dengan beban tinggi yang diperpanjang dalam jangka waktu yang signifikan untuk mengevaluasi perilaku aplikasi perangkat lunak dalam penggunaan berkelanjutan. Tujuan utama pengujian ketahanan adalah untuk memastikan bahwa aplikasi cukup mampu menangani beban yang diperpanjang tanpa penurunan waktu respons.

Jenis pengujian ini dilakukan pada tahap terakhir dari siklus pengoperasian kinerja. Pengujian ketahanan merupakan proses yang panjang dan terkadang memakan waktu hingga satu tahun. Hal ini mungkin termasuk menerapkan beban eksternal seperti lalu lintas Internet atau tindakan pengguna. Hal ini membuat pengujian ketahanan berbeda dari Pengujian beban, yang biasanya berakhir dalam beberapa jam atau lebih.

Endurance artinya kapasitas jadi dengan kata lain Endurance Testing bisa diistilahkan sebagai Uji Kapasitas.

Tujuan Pengujian Daya Tahan

  • Tujuan utama pengujian Daya Tahan adalah untuk memeriksa kebocoran memori.
  • Untuk mengetahui bagaimana kinerja sistem dalam penggunaan berkelanjutan.
  • Untuk memastikan bahwa setelah jangka waktu yang lama, waktu respons sistem akan tetap sama atau lebih baik dari awal pengujian.
  • Untuk menentukan jumlah pengguna dan/atau transaksi, sistem tertentu akan mendukung dan memenuhi sasaran kinerja.
  • Untuk mengelola beban di masa depan, kita perlu memahami berapa banyak sumber daya tambahan (seperti kapasitas prosesor, kapasitas disk, penggunaan memori, atau bandwidth jaringan) yang diperlukan untuk mendukung penggunaan di masa depan.
  • Pengujian ketahanan umumnya dilakukan dengan membebani sistem secara berlebihan atau dengan mengurangi sumber daya sistem tertentu dan mengevaluasi konsekuensinya.
  • Hal ini dilakukan untuk memastikan bahwa cacat atau kebocoran memori tidak terjadi setelah periode penggunaan yang dianggap relatif “normal”.

Apa yang Harus Dipantau dalam Uji Ketahanan

Pengujian Daya Tahan

Dalam Pengujian Ketahanan, hal-hal berikut diuji.

  • Uji kebocoran memori– Pemeriksaan dilakukan untuk memverifikasi apakah ada kebocoran memori pada aplikasi, yang dapat menyebabkan crash pada sistem atau OS
  • Uji penutupan koneksi antar lapisan sistem – Jika koneksi antar lapisan sistem tidak berhasil ditutup, beberapa atau seluruh modul sistem mungkin terhenti.
  • Tes koneksi database berhasil ditutup– Jika koneksi database tidak berhasil ditutup, dapat mengakibatkan sistem crash
  • Uji waktu respons – Sistem diuji waktu respons sistem karena aplikasi menjadi kurang efisien akibat penggunaan sistem dalam waktu lama.

Cara Melakukan Uji Ketahanan

Di bawah ini adalah pendekatan pengujian dasar untuk Uji Daya Tahan

  • Lingkungan Pengujian – Identifikasi perangkat keras, perangkat lunak, sistem operasi yang diperlukan untuk pengujian ketahanan, penetapan peran dan tanggung jawab dalam tim, dll. Lingkungan harus siap sebelum pelaksanaan pengujian. Anda juga perlu memperkirakan ukuran produksi database umum dan pertumbuhan tahunan. Hal ini diperlukan karena Anda perlu menguji bagaimana tanggapan aplikasi Anda setelah satu, dua, atau lima tahun.
  • Membuat Rencana Pengujian, Skenario – Berdasarkan sifat pengujian – manual atau otomatisasi atau kombinasi keduanya, Uji Kasus desain, tinjauan, dan pelaksanaan harus direncanakan. Pengujian untuk menekankan sistem, pengujian break point, dll. juga harus menjadi bagian dari rencana pengujian. Pengujian untuk menekankan sistem menentukan break point dalam aplikasi.
  • Estimasi Tes – Berikan perkiraan berapa lama waktu yang dibutuhkan untuk menyelesaikan tahap pengujian. Hal ini harus dianalisis berdasarkan jumlah penguji yang terlibat dan jumlah siklus pengujian yang diperlukan.
  • Analisis resiko - Menganalisis risiko dan mengambil tindakan yang tepat untuk pencegahannya. Memprioritaskan kasus uji sesuai dengan Faktor Risiko dan mengidentifikasi risiko dan masalah di bawah ini yang mungkin dilakukan penguji selama uji ketahanan.
  • Akankah kinerja tetap konsisten dari waktu ke waktu?
  • Apakah ada masalah kecil lainnya yang belum terdeteksi?
  • Apakah ada campur tangan eksternal yang tidak diatasi?
  • Jadwal Tes – Tentukan anggaran, hasil dalam jangka waktu. Sebagai Pengujian Daya Tahan menerapkan pengaturan beban transaksi yang besar namun alami pada sistem/aplikasi dalam jangka waktu yang terus menerus.

Contoh Pengujian Daya Tahan

Sementara Tes stres membawa sistem yang diuji ke batasnya, Pengujian ketahanan membawa aplikasi ke batasnya dari waktu ke waktu.

Sebagai contoh, masalah yang paling kompleks – kebocoran memori, pemanfaatan server basis data, dan sistem yang tidak responsif – terjadi ketika perangkat lunak berjalan dalam jangka waktu yang lama. Jika Anda melewatkan uji ketahanan, peluang Anda untuk mendeteksi cacat tersebut sebelum penerapan akan sangat rendah.

Alat Uji Daya Tahan

Keuntungan Pengujian Daya Tahan

  • Ini membantu dalam menentukan bagaimana beban kerja dapat ditangani oleh Sistem Di Bawah Beban.
  • Memberikan data akurat yang dapat digunakan pelanggan untuk memvalidasi atau meningkatkan kebutuhan infrastruktur mereka.
  • Mengidentifikasi masalah kinerja yang mungkin terjadi setelah sistem berjalan pada tingkat tinggi untuk jangka waktu yang lama
  • Masalah umum diidentifikasi dalam pengujian kinerja bertarget yang lebih kecil, yang berarti memastikan aplikasi tetap tersedia bahkan ketika ada beban besar dalam rentang waktu yang sangat singkat.
  • Uji ketahanan juga digunakan untuk memeriksa apakah ada penurunan kinerja setelah jangka waktu eksekusi yang lama

Kekurangan Pengujian Daya Tahan

  • Seringkali sulit untuk menentukan seberapa besar stres yang layak diterapkan.
  • Pengujian Daya Tahan dapat menyebabkan kegagalan aplikasi dan/atau jaringan yang dapat mengakibatkan gangguan signifikan jika Lingkungan Uji tidak terisolasi.
  • Kehilangan atau kerusakan data permanen dapat terjadi karena tekanan berlebihan pada sistem.
  • Pemanfaatan sumber daya tetap sangat tinggi setelah stres dihilangkan.
  • Beberapa komponen aplikasi gagal merespons.
  • Pengecualian yang tidak tertangani diamati oleh pengguna akhir.

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 Ketahanan: Poin-Poin Penting yang Perlu Diingat

  • In Rekayasa Perangkat Lunak, Pengujian ketahanan adalah bagian dari pengujian beban.
  • Pengujian ketahanan merupakan proses yang panjang dan terkadang berlangsung hingga satu tahun
  • Pengecekan dilakukan untuk memverifikasi
  • Uji kebocoran memori
  • Uji waktu respons
  • Uji koneksi database, dll.

Pertanyaan Umum Demo Slot

Pengujian beban memverifikasi bahwa sistem memenuhi targetnya pada beban puncak dalam jangka waktu singkat. Pengujian ketahanan menahan beban normal selama berjam-jam untuk mengungkapkan apakah target tersebut masih terpenuhi di akhir pengujian.

Tren peningkatan berkelanjutan dalam waktu respons atau penggunaan sumber daya, bahkan jika tidak ada ambang batas yang terlampaui. Cacatnya adalah penyimpangan itu sendiri, karena pada akhirnya akan melampaui batas dalam produksi.

Setelah pengujian fungsional dan beban berhasil, dan cukup dini sehingga kebocoran yang ditemukan masih dapat diperbaiki. Menjalankannya pada malam sebelum rilis tidak memberikan waktu untuk menindaklanjuti hasilnya.

Pemantauan berbasis AI mendeteksi titik di mana suatu metrik mengalami perubahan tren dan menghubungkannya dengan penerapan atau pekerjaan terjadwal, mengubah grafik berjam-jam menjadi tersangka spesifik.

Hal ini dapat membantu dalam menentukan prioritas. Model risiko menyoroti rilis mana yang menyentuh kode yang rentan terhadap kebocoran, sehingga pengujian penuh hanya dilakukan pada perubahan yang paling mungkin membutuhkannya.

Ringkaslah postingan ini dengan: