Tutorial Pengujian Kinerja

Pengujian beban

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

Mengapa Pengujian Kinerja?

Fitur dan Fungsionalitas yang didukung oleh sistem perangkat lunak bukan satu-satunya perhatian. Performa aplikasi perangkat lunak, seperti waktu respons, keandalan, penggunaan sumber daya, dan skalabilitas, sangatlah penting. Tujuan dari Pengujian Kinerja bukan 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. Yang lebih penting, Pengujian Kinerja mengungkap apa yang perlu ditingkatkan sebelum produk dipasarkan. Tanpa Pengujian Kinerja, perangkat lunak kemungkinan akan mengalami masalah seperti: berjalan lambat sementara beberapa pengguna menggunakannya secara bersamaan, inkonsistensi di berbagai sistem operasi, dan kegunaan yang buruk.

Pengujian Kinerja

Pengujian kinerja akan menentukan apakah perangkat lunak mereka memenuhi persyaratan kecepatan, skalabilitas, dan stabilitas pada beban kerja yang diharapkan. Aplikasi yang dikirim ke pasar dengan metrik kinerja yang buruk karena tidak adanya atau pengujian kinerja yang buruk kemungkinan besar akan mendapatkan reputasi buruk dan gagal memenuhi sasaran 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 Google.com (19-Agustus-13) diperkirakan akan merugikan raksasa pencarian sebesar itu $ 545,000.

Diperkirakan perusahaan kehilangan nilai penjualan $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 – dilakukan untuk memastikan perangkat lunak dapat menangani beban yang diharapkan dalam jangka waktu yang lama.
  • Pengujian lonjakan – menguji reaksi perangkat lunak terhadap lonjakan besar beban yang ditimbulkan oleh pengguna secara tiba-tiba.
  • Pengujian volume – Di bawah Pengujian Volume no besar. dari. Data diisi dalam database, dan perilaku sistem perangkat lunak secara keseluruhan dipantau. Tujuannya adalah untuk memeriksa kinerja aplikasi perangkat lunak pada volume database yang bervariasi.
  • Pengujian skalabilitas – Tujuan pengujian skalabilitas adalah untuk menentukan efektivitas aplikasi perangkat lunak dalam “peningkatan” 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 muat, dan skalabilitas yang buruk. Kecepatan sering kali menjadi salah satu atribut terpenting dari sebuah aplikasi. Aplikasi yang berjalan lambat akan kehilangan calon pengguna. Pengujian kinerja memastikan aplikasi berjalan cukup cepat untuk menarik perhatian dan minat pengguna. Lihatlah daftar masalah kinerja umum berikut dan perhatikan bagaimana kecepatan menjadi faktor umum dalam banyak masalah tersebut:

  • Waktu Muat yang Lama – Waktu muat biasanya merupakan waktu awal yang diperlukan aplikasi untuk memulai. Hal ini umumnya harus dijaga agar tetap minimum. Meskipun beberapa aplikasi tidak mungkin memuat dalam waktu kurang dari satu menit, waktu muat harus dijaga dalam beberapa detik jika memungkinkan.
  • Waktu respons yang buruk – Waktu respons adalah waktu yang diperlukan sejak pengguna memasukkan data ke dalam aplikasi hingga aplikasi mengeluarkan respons terhadap masukan tersebut. Umumnya, ini akan dilakukan dengan sangat cepat. Sekali lagi jika pengguna harus menunggu terlalu lama, mereka 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 – Kemacetan adalah hambatan dalam suatu sistem yang menurunkan kinerja sistem secara keseluruhan. Kemacetan terjadi ketika kesalahan pengkodean atau masalah perangkat keras menyebabkan penurunan throughput pada beban tertentu. Kemacetan sering kali disebabkan oleh satu bagian kode yang salah. Kunci untuk memperbaiki masalah kemacetan adalah menemukan bagian kode yang menyebabkan pelambatan dan mencoba memperbaikinya di sana. Kemacetan 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.

Di bawah ini adalah proses umum tentang cara melakukan pengujian kinerja

Proses Pengujian Kinerja
Proses Pengujian Kinerja

Langkah 1) Identifikasi Lingkungan Pengujian Anda

Ketahui lingkungan pengujian fisik, lingkungan produksi, dan alat pengujian apa saja yang tersedia. Pahami detail konfigurasi perangkat keras, perangkat lunak, dan jaringan yang digunakan selama pengujian sebelum Anda memulai proses pengujian. 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

Hal ini mencakup sasaran dan batasan hasil, waktu respons, dan alokasi sumber daya. Penting juga untuk mengidentifikasi kriteria keberhasilan proyek di luar tujuan dan kendala tersebut. Penguji harus diberi wewenang untuk menetapkan kriteria dan sasaran kinerja karena sering kali spesifikasi proyek tidak mencakup variasi tolok ukur kinerja yang cukup luas. Terkadang mungkin tidak ada sama sekali. Jika memungkinkan, menemukan aplikasi serupa untuk dibandingkan adalah cara yang baik untuk menetapkan sasaran kinerja.

Langkah 3) Rencanakan & Rancang Tes Kinerja

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

Langkah 4) Mengonfigurasi Lingkungan Pengujian

Siapkan lingkungan pengujian sebelum eksekusi. Juga, atur alat dan sumber daya lainnya.

Langkah 5) Menerapkan Desain Tes

Buat tes kinerja sesuai dengan desain tes Anda.

Langkah 6) Jalankan Tes

Jalankan dan pantau pengujian.

Langkah 7) Analisis, Tune, dan Tes Ulang

Konsolidasikan, analisis, dan bagikan hasil tes. Kemudian fine tune dan uji kembali untuk melihat apakah ada peningkatan atau penurunan performa. Karena peningkatan umumnya semakin kecil dengan setiap pengujian ulang, hentikan jika kemacetan disebabkan oleh CPU. Maka Anda mungkin memiliki opsi untuk mempertimbangkan untuk meningkatkan daya CPU.

Metrik Pengujian Kinerja: Parameter yang Dipantau

Parameter dasar yang dipantau selama pengujian kinerja meliputi:

metrik pengujian kinerja

  • Penggunaan Prosesor – jumlah waktu yang dihabiskan prosesor dalam mengeksekusi thread yang tidak menganggur.
  • Penggunaan memori – jumlah memori fisik yang tersedia untuk proses di komputer.
  • Waktu disk – jumlah waktu disk sibuk menjalankan 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 dibagikan ke proses lainnya. Ini digunakan untuk mengukur kebocoran dan penggunaan memori.
  • Memori yang berkomitmen – jumlah memori virtual yang digunakan.
  • Halaman memori/detik – jumlah halaman yang ditulis atau dibaca dari disk untuk mengatasi kesalahan halaman yang sulit. Kesalahan halaman keras adalah ketika kode yang bukan dari kumpulan kerja saat ini dipanggil dari tempat lain dan diambil dari disk.
  • Kesalahan halaman/detik – tingkat keseluruhan halaman kesalahan diproses oleh prosesor. Hal ini terjadi lagi ketika suatu proses memerlukan kode dari luar rangkaian kerjanya.
  • Interupsi CPU per detik – adalah jumlah rata-rata interupsi perangkat keras yang diterima dan diproses oleh prosesor setiap detik.
  • Panjang antrian disk – adalah jumlah rata-rata permintaan baca dan tulis yang antri untuk disk yang dipilih selama interval sampel.
  • Panjang antrian keluaran jaringan – panjang antrian paket keluaran dalam paket. Jika lebih dari dua berarti penundaan dan kemacetan perlu dihentikan.
  • Total byte jaringan per detik – menilai byte mana yang dikirim dan diterima pada antarmuka termasuk karakter pembingkaian.
  • Waktu merespon - waktu sejak pengguna memasukkan permintaan hingga karakter pertama respons diterima.
  • Keluaran – menilai 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 ada hubungannya 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 – tidak. hit di server web selama setiap detik uji 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 – dimonitor untuk menentukan waktu tunggu yang dapat dikurangi ketika berhadapan dengan seberapa cepat data diambil dari memori
  • Jumlah utas – Kesehatan suatu aplikasi dapat diukur dengan no. thread yang sedang berjalan dan sedang aktif.
  • Pengumpulan sampah – Ini berkaitan dengan pengembalian memori yang tidak digunakan ke sistem. Pengumpulan sampah perlu dipantau demi efisiensi.

Contoh Kasus Uji Pengujian Kinerja

  • Kasus Uji 01: Verifikasi waktu respons tidak lebih dari 4 detik ketika 1000 pengguna mengakses situs web secara bersamaan.
  • Kasus Uji 02: Pastikan waktu respons Aplikasi Sedang Dimuat berada 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 dan server database 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.

Alat Uji Kinerja

Ada berbagai macam alat pengujian kinerja yang tersedia di pasar. Alat yang Anda pilih untuk pengujian akan bergantung pada banyak faktor seperti jenis protokol yang didukung, biaya lisensi, persyaratan perangkat keras, dukungan platform, dll. Di bawah ini adalah daftar alat pengujian yang populer digunakan.

  • HP LoadRunner - adalah alat pengujian kinerja paling populer di pasaran saat ini. Alat ini mampu mensimulasikan ratusan ribu pengguna, menempatkan aplikasi di bawah beban nyata untuk menentukan perilaku mereka di bawah beban yang diharapkan. Pelari beban dilengkapi dengan generator pengguna virtual yang mensimulasikan tindakan pengguna manusia nyata.
  • jmeter – salah satu alat terkemuka yang digunakan untuk pengujian beban server web dan aplikasi.

Tanya Jawab

Pengujian Kinerja selalu dilakukan hanya untuk sistem berbasis klien-server. Ini berarti, aplikasi apa pun yang bukan berbasis arsitektur klien-server, tidak memerlukan Pengujian Kinerja.

Sebagai contoh, Microsoft Kalkulator tidak berbasis klien-server atau menjalankan banyak pengguna; oleh karena itu, ini bukan kandidat untuk Pengujian Kinerja.

Uji kinerja

Penting untuk memahami perbedaan antara Pengujian Kinerja dan Rekayasa Kinerja. Pemahaman dibagikan di bawah ini:

Pengujian Kinerja adalah disiplin ilmu yang berkaitan dengan pengujian dan pelaporan kinerja aplikasi perangkat lunak saat ini berdasarkan berbagai parameter.

Rekayasa Kinerja adalah proses dimana perangkat lunak diuji dan disesuaikan dengan tujuan mewujudkan kinerja yang diperlukan. Proses ini bertujuan untuk mengoptimalkan sifat kinerja aplikasi yang paling penting yaitu pengalaman pengguna.

Secara historis, pengujian dan penyetelan merupakan bidang yang terpisah dan sering kali saling bersaing. Namun, dalam beberapa tahun terakhir, beberapa penguji dan pengembang telah berkolaborasi secara independen untuk membentuk tim penyetelan. Karena tim-tim ini telah mencapai kesuksesan yang signifikan, konsep menggabungkan pengujian kinerja dengan penyesuaian kinerja telah diterapkan, dan sekarang kami menyebutnya rekayasa kinerja.

Kesimpulan

In Rekayasa Perangkat Lunak, Pengujian kinerja diperlukan sebelum memasarkan produk perangkat lunak apa pun. Ini memastikan kepuasan pelanggan & melindungi investasi investor terhadap kegagalan produk. Biaya pengujian kinerja biasanya lebih besar daripada biaya yang dapat dikompensasi dengan peningkatan kepuasan, loyalitas, dan retensi pelanggan.