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.

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
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.
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.
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.
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.

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:
- 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.





