Tutorial Pengujian Kinerja

⚡ Ringkasan Cerdas

Pengujian performa adalah proses pengujian perangkat lunak yang mengevaluasi kecepatan aplikasi, waktu respons, stabilitas, skalabilitas, dan penggunaan sumber daya di bawah beban kerja tertentu. Pengujian ini mengidentifikasi dan menghilangkan hambatan sebelum penerapan, memastikan keandalan dalam kondisi dunia nyata.

  • ✅ Tetapkan ruang lingkup sejak awal: Identifikasi lingkungan pengujian, kriteria penerimaan, dan skenario utama Anda sebelum merancang pengujian kinerja apa pun.
  • 🔄 Mencakup semua jenis pengujian: Terapkan pengujian beban, tekanan, daya tahan, lonjakan, volume, dan skalabilitas untuk mengevaluasi berbagai mode kegagalan.
  • 📊 Pantau metrik penting: TracPenggunaan prosesor k, konsumsi memori, waktu respons, throughput, dan tingkat kesalahan selama setiap eksekusi pengujian.
  • ⚠️ Mendiagnosis hambatan secara sistematis: Selidiki penggunaan CPU, memori, jaringan, dan disk untuk mengisolasi penyebab utama penurunan kinerja.
  • 🔁 Ulangi dan uji ulang: Analisis hasil, sesuaikan konfigurasi, dan uji ulang hingga kinerja memenuhi kriteria penerimaan yang telah ditentukan.
  • 🤖 Manfaatkan analisis berbasis AI: Gunakan kecerdasan buatan untuk deteksi anomali prediktif, analisis akar penyebab otomatis, dan alokasi sumber daya cerdas selama pengujian.

Tutorial Pengujian Kinerja

Apa itu Pengujian Kinerja?

Pengujian Kinerja adalah proses pengujian perangkat lunak yang digunakan untuk menguji kecepatan, waktu respons, stabilitas, keandalan, skalabilitas, dan penggunaan sumber daya aplikasi perangkat lunak pada beban kerja tertentu. Tujuan utama pengujian kinerja adalah untuk mengidentifikasi dan menghilangkan hambatan kinerja dalam aplikasi perangkat lunak. Ini adalah bagian dari rekayasa kinerja dan juga dikenal sebagai “Pengujian Kinerja”.

Fokus dari Pengujian Kinerja adalah memeriksa hal-hal berikut pada program perangkat lunak:

  • Kecepatan – Menentukan apakah aplikasi merespons dengan cepat
  • Skalabilitas – Menentukan beban pengguna maksimum yang dapat ditangani oleh aplikasi perangkat lunak.
  • Stabilitas – Menentukan apakah aplikasi stabil di bawah beban yang bervariasi
Pilihan Teratas
PLB

PFLB berfokus pada pengujian kinerja yang presisi untuk membantu sistem tetap stabil di bawah beban kerja yang tidak terduga. Layanan yang ditawarkannya mencakup pengujian beban, pengujian lonjakan beban, dan pengukuran latensi, dengan fokus utama pada identifikasi penurunan kinerja sebelum berdampak pada pengguna akhir.

Kunjungi PFLB

Mengapa Pengujian Kinerja Penting?

Fitur dan fungsionalitas yang didukung oleh sistem perangkat lunak bukanlah satu-satunya hal yang perlu diperhatikan. Kinerja aplikasi perangkat lunak, seperti waktu respons, keandalan, penggunaan sumber daya, dan skalabilitas, juga penting. Tujuan Pengujian Kinerja bukanlah untuk menemukan bug, tetapi untuk menghilangkan hambatan kinerja.

Pengujian kinerja dilakukan untuk memberikan informasi kepada pemangku kepentingan tentang aplikasi mereka terkait kecepatan, stabilitas, dan skalabilitas. Lebih penting lagi, pengujian kinerja mengungkap apa yang perlu ditingkatkan sebelum produk dipasarkan. Tanpa pengujian kinerja, perangkat lunak kemungkinan akan mengalami masalah seperti berjalan lambat saat beberapa pengguna menggunakannya secara bersamaan, inkonsistensi di berbagai sistem operasi, dan kegunaan yang buruk.

Mengapa Pengujian Kinerja Penting?

Pengujian kinerja menentukan apakah perangkat lunak memenuhi persyaratan kecepatan, skalabilitas, dan stabilitas di bawah beban kerja yang diharapkan. Aplikasi yang dipasarkan dengan metrik kinerja yang buruk karena pengujian kinerja yang tidak ada atau buruk cenderung mendapatkan reputasi buruk dan gagal mencapai target penjualan yang diharapkan.

Juga, aplikasi yang sangat penting seperti program peluncuran luar angkasa atau peralatan medis yang menyelamatkan nyawa harus diuji kinerjanya untuk memastikan bahwa peralatan tersebut dapat dijalankan dalam jangka waktu lama tanpa penyimpangan.

Menurut Dunn & Bradstreet, 59% dari perusahaan Fortune 500 mengalami sekitar 1.6 jam waktu henti setiap minggu. Jika mempertimbangkan rata-rata perusahaan Fortune 500 dengan minimal 10,000 karyawan yang membayar $56 per jam, bagian biaya tenaga kerja dari waktu henti untuk organisasi tersebut akan menjadi $896,000 per minggu, yang berarti lebih dari $46 juta per tahun.

Hanya Waktu henti 5 menit of Google.com (19-Agustus-13) diperkirakan akan menelan biaya sebesar $ 545,000.

Diperkirakan perusahaan-perusahaan tersebut kehilangan penjualan senilai... $1100 per detik karena baru-baru ini Amazon Gangguan Layanan Web.

Oleh karena itu, pengujian kinerja itu penting. Untuk membantu Anda dalam proses ini, lihat daftar ini alat pengujian kinerja.

#1 TERBAIK SECARA KESELURUHANPengujian Aplikasi Global
9.8/ 10
★ ★ ★ ★ ★
Dapatkan Demo Gratis
PractiTest
9.5/ 10
★ ★ ★ ★ ★
Mengunjungi PractiTest
Testiny
9.3/ 10
★ ★ ★ ★ ★
Mengunjungi Testiny
terbaik UntukPengujian kolektif & QAManajemen TesTim QA Kecil & Menengah
Fitur Utama✓Pengujian integrasi pihak ketiga✓Manajemen pengujian terpusat✓Kasus uji manual + otomatis
Integrasi✓Jira, Slack, TestRail✓Jira, Jenkins, Slack✓Jira, GitHub, GitLab
Uji Coba GratisDemo GratisUji Coba Gratis 14 HariDemo Gratis
Dapatkan Demo GratisMengunjungi PractiTestMengunjungi Testiny

Jenis Pengujian Kinerja

Terdapat enam jenis utama pengujian kinerja dalam pengujian perangkat lunak, yang dijelaskan di bawah ini.

  • Pengujian beban – memeriksa kemampuan aplikasi untuk bekerja di bawah beban pengguna yang diantisipasi. Tujuannya adalah untuk mengidentifikasi hambatan kinerja sebelum aplikasi perangkat lunak diluncurkan.
  • Tes stres - melibatkan pengujian aplikasi di bawah beban kerja ekstrem untuk melihat cara aplikasi menangani lalu lintas tinggi atau pemrosesan data. Tujuannya adalah untuk mengidentifikasi titik puncak suatu aplikasi.
  • Pengujian ketahanan – Hal ini dilakukan untuk memastikan perangkat lunak dapat menangani beban yang diharapkan dalam jangka waktu yang lama. Ini membantu mendeteksi masalah seperti kebocoran memori dan penipisan sumber daya yang hanya muncul selama operasi berkelanjutan.
  • Pengujian lonjakan – Pengujian ini menguji reaksi perangkat lunak terhadap lonjakan beban besar yang tiba-tiba dihasilkan oleh pengguna. Tidak seperti pengujian stres, pengujian lonjakan berfokus secara khusus pada bagaimana sistem menangani dan pulih dari lonjakan lalu lintas yang tajam dan berumur pendek.
  • Pengujian volume – Proses ini melibatkan pengisian basis data dengan volume data yang besar dan pemantauan perilaku sistem perangkat lunak secara keseluruhan. Tujuannya adalah untuk memeriksa kinerja aplikasi perangkat lunak di bawah berbagai volume basis data.
  • Pengujian skalabilitas – Menentukan efektivitas aplikasi perangkat lunak dalam "meningkatkan skala" untuk mendukung peningkatan beban pengguna. Ini membantu merencanakan penambahan kapasitas pada sistem perangkat lunak Anda.

Masalah Kinerja Umum

Sebagian besar masalah kinerja berkisar pada kecepatan, waktu respons, waktu pemuatan, dan skalabilitas yang buruk. Kecepatan seringkali merupakan salah satu atribut terpenting dari sebuah aplikasi. Aplikasi yang berjalan lambat akan kehilangan calon pengguna. Pengujian kinerja memastikan aplikasi berjalan cukup cepat untuk mempertahankan perhatian dan minat pengguna. Berikut adalah masalah kinerja umum di mana kecepatan merupakan faktor yang berulang:

  • Waktu pemuatan yang lama – Waktu pemuatan biasanya adalah waktu awal yang dibutuhkan aplikasi untuk memulai. Ini umumnya harus dijaga seminimal mungkin. Meskipun beberapa aplikasi tidak mungkin dimuat dalam waktu kurang dari satu menit, waktu pemuatan sebaiknya dijaga di bawah beberapa detik jika memungkinkan.
  • Waktu respons yang buruk – Waktu respons adalah waktu yang dibutuhkan dari saat pengguna memasukkan data ke dalam aplikasi hingga aplikasi memberikan respons terhadap input tersebut. Secara umum, ini harus sangat cepat. Jika pengguna harus menunggu terlalu lama, mereka akan kehilangan minat.
  • Skalabilitas yang buruk – Sebuah produk perangkat lunak mengalami skalabilitas yang buruk ketika tidak dapat menangani jumlah pengguna yang diharapkan atau ketika tidak mengakomodasi sejumlah pengguna yang cukup luas. Pengujian beban harus dilakukan untuk memastikan aplikasi dapat menangani jumlah pengguna yang diharapkan.
  • Kemacetan – Bottleneck adalah hambatan dalam suatu sistem yang menurunkan kinerja sistem secara keseluruhan. Bottleneck terjadi ketika kesalahan pengkodean atau masalah perangkat keras menyebabkan penurunan throughput pada beban tertentu. Bottleneck sering disebabkan oleh satu bagian kode yang salah. Kunci untuk memperbaiki masalah bottleneck adalah menemukan bagian kode yang menyebabkan perlambatan dan mencoba memperbaikinya di sana. Bottleneck umumnya diperbaiki dengan memperbaiki proses yang berjalan buruk atau menambahkan perangkat keras tambahan. Beberapa hambatan kinerja umum adalah:
    • Utilisasi CPU
    • Pemanfaatan memori
    • Pemanfaatan jaringan
    • Operating Batasan sistem
    • Penggunaan disk

Bagaimana Melakukan Pengujian Kinerja

Metodologi yang digunakan untuk pengujian kinerja dapat sangat bervariasi, namun tujuan pengujian kinerja tetap sama. Ini dapat membantu menunjukkan bahwa sistem perangkat lunak Anda memenuhi kriteria kinerja tertentu yang telah ditentukan sebelumnya. Atau dapat membantu membandingkan kinerja dua sistem perangkat lunak. Ini juga dapat membantu mengidentifikasi bagian sistem perangkat lunak Anda yang menurunkan kinerjanya.

Berikut adalah proses umum tentang cara melakukan pengujian kinerja.

Proses Pengujian Kinerja
Proses Pengujian Kinerja

Langkah 1) Identifikasi Lingkungan Pengujian Anda

Pahami lingkungan pengujian fisik, lingkungan produksi, dan alat pengujian yang tersedia. Pahami detail konfigurasi perangkat keras, perangkat lunak, dan jaringan yang digunakan selama pengujian sebelum memulai proses pengujian. Hal ini akan membantu penguji membuat pengujian yang lebih efisien. Ini juga akan membantu mengidentifikasi kemungkinan tantangan yang mungkin dihadapi penguji selama prosedur pengujian kinerja.

Langkah 2) Identifikasi Kriteria Penerimaan Kinerja

Ini mencakup tujuan dan batasan untuk throughput, waktu respons, dan alokasi sumber daya. Penting juga untuk mengidentifikasi kriteria keberhasilan proyek di luar tujuan dan batasan ini. Penguji harus diberi wewenang untuk menetapkan kriteria dan tujuan kinerja karena seringkali spesifikasi proyek tidak mencakup berbagai tolok ukur kinerja yang cukup luas. Terkadang bahkan tidak ada sama sekali. Jika memungkinkan, menemukan aplikasi serupa untuk dibandingkan adalah cara yang baik untuk menetapkan tujuan kinerja.

Langkah 3) Rencanakan & Rancang Tes Kinerja

Tentukan bagaimana penggunaan kemungkinan akan bervariasi di antara pengguna akhir dan identifikasi skenario utama untuk diuji untuk semua kemungkinan kasus penggunaan. Penting untuk mensimulasikan berbagai pengguna akhir, merencanakan data uji kinerja, dan menguraikan metrik apa yang akan dikumpulkan.

Langkah 4) Konfigurasi Lingkungan Pengujian

Siapkan lingkungan pengujian sebelum eksekusi. Selain itu, atur alat dan sumber daya lainnya. Buat lingkungan pengujian semirip mungkin dengan lingkungan produksi untuk memastikan hasil pengujian realistis dan dapat ditindaklanjuti.

Langkah 5) Menerapkan Desain Tes

Buat tes kinerja sesuai dengan desain tes Anda.

Langkah 6) Jalankan Tes

Jalankan dan pantau pengujian.

Langkah 7) Analisis, Sesuaikan, dan Uji Ulang

Konsolidasikan, analisis, dan bagikan hasil pengujian. Kemudian lakukan penyempurnaan dan uji lagi untuk melihat apakah ada peningkatan atau penurunan kinerja. Karena peningkatan umumnya semakin kecil dengan setiap pengujian ulang, hentikan pengujian ketika hambatan kinerja disebabkan oleh CPU. Kemudian Anda mungkin perlu mempertimbangkan opsi untuk meningkatkan daya CPU.

Metrik Pengujian Kinerja: Parameter yang Dipantau

Parameter dasar yang dipantau selama pengujian kinerja meliputi:

Metrik dan Parameter Pengujian Kinerja

  • Penggunaan Prosesor – Jumlah waktu yang dihabiskan prosesor untuk mengeksekusi thread yang tidak menganggur.
  • Penggunaan memori – Jumlah memori fisik yang tersedia untuk proses pada komputer.
  • Waktu disk – Jumlah waktu yang dihabiskan disk untuk mengeksekusi permintaan baca atau tulis.
  • lebar pita – menunjukkan bit per detik yang digunakan oleh antarmuka jaringan.
  • Byte pribadi – Jumlah byte yang dialokasikan oleh suatu proses yang tidak dapat dibagi di antara proses lain. Ini digunakan untuk mengukur kebocoran dan penggunaan memori.
  • Memori yang berkomitmen – Jumlah memori virtual yang digunakan.
  • Halaman memori/detik – Jumlah halaman yang ditulis ke atau dibaca dari disk untuk mengatasi kesalahan halaman keras (hard page fault). Kesalahan halaman keras terjadi ketika kode yang bukan berasal dari set kerja saat ini dipanggil dari tempat lain dan diambil dari disk.
  • Kesalahan halaman/detik – Tingkat keseluruhan pemrosesan halaman kesalahan oleh prosesor. Ini terjadi ketika suatu proses membutuhkan kode dari luar set kerjanya.
  • Interupsi CPU per detik – Jumlah rata-rata interupsi perangkat keras yang diterima dan diproses oleh prosesor setiap detik.
  • Panjang antrian disk – Jumlah rata-rata permintaan baca dan tulis yang mengantre untuk disk yang dipilih selama interval pengambilan sampel.
  • Panjang antrian keluaran jaringan – Panjang antrian paket keluaran dalam paket. Lebih dari dua berarti terjadi penundaan, dan kemacetan perlu dihentikan.
  • Total byte jaringan per detik – Kecepatan pengiriman dan penerimaan byte pada antarmuka, termasuk karakter pembingkaian.
  • Waktu merespon - Waktu yang dibutuhkan dari saat pengguna memasukkan permintaan hingga karakter pertama dari respons diterima.
  • Keluaran – Kecepatan komputer atau jaringan menerima permintaan per detik.
  • Jumlah penggabungan koneksi – jumlah permintaan pengguna yang dipenuhi oleh koneksi gabungan. Semakin banyak permintaan yang dipenuhi oleh koneksi di pool, semakin baik kinerjanya.
  • Sesi aktif maksimum – jumlah maksimum sesi yang dapat aktif sekaligus.
  • Rasio pukulan – ini berkaitan dengan jumlah SQL pernyataan yang ditangani oleh data yang di-cache, bukan operasi I/O yang mahal. Ini adalah tempat yang baik untuk memulai pemecahan masalah kemacetan.
  • Pukulan per detik – Jumlah kunjungan ke server web setiap detik selama pengujian beban.
  • Segmen kembalikan – jumlah data yang dapat dikembalikan kapan saja.
  • Kunci basis data – penguncian tabel dan database perlu dipantau dan disetel dengan cermat.
  • Penantian teratas – Dipantau untuk menentukan waktu tunggu mana yang dapat dikurangi ketika berurusan dengan seberapa cepat data diambil dari memori.
  • Jumlah utas – Kesehatan suatu aplikasi dapat diukur dari jumlah thread yang sedang berjalan dan aktif saat ini.
  • Pengumpulan sampah – Proses ini melibatkan pengembalian memori yang tidak terpakai kembali ke sistem. Pengumpulan sampah (garbage collection) perlu dipantau efisiensinya.

Contoh Kasus Uji Pengujian Kinerja

Berikut adalah contoh kasus uji kinerja:

  • Kasus Uji 01: Pastikan waktu respons tidak lebih dari 4 detik ketika 1000 pengguna mengakses situs web secara bersamaan.
  • Kasus Uji 02: Verifikasi waktu respons Aplikasi yang Sedang Mengalami Beban Tetap dalam kisaran yang dapat diterima ketika konektivitas jaringan lambat.
  • Kasus Uji 03: Periksa jumlah maksimum pengguna yang dapat ditangani aplikasi sebelum crash.
  • Kasus Uji 04: Periksa waktu eksekusi basis data saat 500 catatan dibaca/ditulis secara bersamaan.
  • Kasus Uji 05: Periksa penggunaan CPU dan memori aplikasi serta server basis data dalam kondisi beban puncak.
  • Kasus Uji 06: Verifikasi waktu respons aplikasi dalam kondisi beban rendah, normal, sedang, dan berat.

Selama pelaksanaan uji kinerja yang sebenarnya, istilah-istilah yang tidak jelas seperti rentang yang dapat diterima, beban berat, dll. digantikan dengan angka-angka konkret. Insinyur kinerja menetapkan angka-angka ini sesuai dengan persyaratan bisnis dan lanskap teknis aplikasi.

Praktik Terbaik Pengujian Kinerja

Mengikuti praktik terbaik yang telah ditetapkan memastikan bahwa pengujian kinerja memberikan hasil yang andal. Pedoman ini membantu tim menghindari kesalahan umum.

  • Mencerminkan lingkungan produksi – Konfigurasikan pengaturan pengujian Anda agar semirip mungkin dengan lingkungan produksi. Perbedaan versi perangkat keras atau perangkat lunak dapat menghasilkan hasil yang menyesatkan.
  • Rancang skenario pengujian yang realistis – Buat kasus uji yang mensimulasikan perilaku pengguna sebenarnya, termasuk waktu tunggu dan campuran transaksi bersamaan.
  • Gunakan metrik berbasis persentil – Andalkan waktu respons persentil ke-90 dan ke-95, bukan hanya rata-rata. Persentil mengungkap latensi di bagian akhir yang mungkin tersembunyi oleh rata-rata.
  • Lakukan pengujian sejak dini dan secara terus menerus – Integrasikan pengujian performa ke dalam pipeline CI/CD, alih-alih memperlakukannya sebagai aktivitas tahap akhir.
  • Dokumen dan hasil dasar – Catat hasil dari setiap pengujian. Membandingkan hasil baru dengan data dasar memudahkan deteksi regresi di berbagai rilis.

Bagaimana AI Mengubah Pengujian Kinerja

Kecerdasan buatan sedang membentuk kembaliping Pengujian kinerja dilakukan dengan mengotomatiskan tugas analisis kompleks dan memungkinkan kemampuan prediktif. Alat berbasis AI menganalisis data historis, mendeteksi pola, dan memberikan rekomendasi yang dapat ditindaklanjuti tanpa memerlukan intervensi manusia di setiap langkah.

  • Deteksi anomali prediktif – Algoritma AI menganalisis metrik kinerja secara real-time selama pengujian beban dan menandai penyimpangan sebelum meningkat menjadi kegagalan kritis.
  • Analisis akar penyebab otomatis – Alat berbasis AI mengkorelasikan data di seluruh sistem terdistribusi untuk menentukan komponen pasti yang menyebabkan penurunan kinerja.
  • Optimalisasi pengujian cerdas – Model pembelajaran mesin mengidentifikasi skenario pengujian yang berlebihan dan menyarankan konfigurasi optimal, mengurangi waktu eksekusi sambil mempertahankan cakupan pengujian.
  • Skrip pengujian yang dapat memperbaiki diri sendiri – AI menyesuaikan skrip pengujian ketika antarmuka aplikasi berubah, mengurangi biaya pemeliharaan untuk rangkaian pengujian kinerja.

Alat Pengujian Kinerja

Tersedia beragam alat pengujian kinerja di pasaran. Alat yang Anda pilih untuk pengujian akan bergantung pada banyak faktor seperti jenis protokol yang didukung, biaya lisensi, persyaratan perangkat keras, dan dukungan platform. Berikut adalah daftar alat pengujian yang populer digunakan.

  • HP LoadRunner - adalah salah satu alat pengujian kinerja paling populer di pasaran. Alat ini mampu mensimulasikan ratusan ribu pengguna, memberikan beban nyata pada aplikasi untuk menentukan perilakunya di bawah beban yang diharapkan. LoadRunner dilengkapi dengan generator pengguna virtual yang mensimulasikan tindakan pengguna manusia nyata.
  • JMeter - Salah satu alat sumber terbuka terkemuka yang digunakan untuk pengujian beban server web dan aplikasi. Alat ini mendukung berbagai protokol dan menyediakan kemampuan pelaporan yang ekstensif.

Pertanyaan Umum Demo Slot

Pengujian kinerja hanya dilakukan untuk sistem berbasis klien-server. Aplikasi yang tidak mengikuti arsitektur klien-server, seperti kalkulator desktop mandiri, tidak memerlukan pengujian kinerja.

Pengujian performa berfokus pada pengujian dan pelaporan performa aplikasi saat ini. Rekayasa performa melangkah lebih jauh dengan menggabungkan pengujian dengan penyetelan untuk mengoptimalkan pengalaman pengguna secara keseluruhan dan efisiensi sistem.

Pengujian beban mengevaluasi perilaku sistem di bawah beban pengguna yang diharapkan untuk menemukan hambatan. Pengujian stres mendorong aplikasi melampaui kapasitas normal untuk mengidentifikasi titik kritisnya dan mengamati perilaku pemulihan.

Metrik yang paling penting adalah waktu respons, throughput, tingkat kesalahan, pemanfaatan CPU, dan penggunaan memori. Tracking Indikator-indikator ini membantu mengidentifikasi hambatan dan memvalidasi apakah aplikasi memenuhi kriteria kinerjanya.

Pengujian performa harus dimulai sejak dini dan dijalankan secara terus menerus. Mengintegrasikannya ke dalam pipeline CI/CD memungkinkan tim untuk mendeteksi regresi pada setiap build, alih-alih menemukan masalah hanya sebelum rilis.

AI mengotomatiskan deteksi anomali, analisis akar penyebab, dan optimasi pengujian. AI menganalisis data historis untuk memprediksi hambatan dan secara otomatis menyesuaikan skrip pengujian ketika antarmuka aplikasi berubah.

Tidak. AI meningkatkan efisiensi dengan mengotomatiskan tugas analisis dan deteksi yang berulang, tetapi keahlian manusia tetap penting untuk merancang skenario pengujian yang realistis, menafsirkan konteks bisnis, dan membuat keputusan optimasi strategis.

Pengujian berbasis cloud menawarkan skalabilitas sesuai permintaan, pembangkitan beban terdistribusi dari berbagai wilayah, dan biaya infrastruktur yang lebih rendah. Pengujian on-premise memberikan kontrol lebih besar atas lingkungan pengujian tetapi membutuhkan investasi perangkat keras khusus.

Ringkaslah postingan ini dengan: