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 di bawah 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 Pengujian Kinerja adalah memeriksa program perangkat lunak
- Kecepatan - Menentukan apakah aplikasi merespons dengan cepat
- Skalabilitas - Menentukan pemuatan pengguna maksimum yang dapat ditangani aplikasi perangkat lunak.
- Stabilitas - Menentukan apakah aplikasi stabil di bawah beban yang bervariasi
Dalam tutorial ini, Anda akan belajar-
- Apa itu Pengujian Kinerja?
- Mengapa Pengujian Kinerja?
- Jenis Pengujian Kinerja
- Masalah Kinerja Umum
- Proses Pengujian Kinerja
- Metrik Pengujian Kinerja: Parameter yang Dipantau
- Contoh Kasus Uji Kinerja
- Alat Uji Kinerja
- FAQ
Mengapa Pengujian Kinerja?
Fitur dan Fungsionalitas yang didukung oleh sistem perangkat lunak bukan satu-satunya perhatian. Kinerja aplikasi perangkat lunak seperti waktu respons, keandalan, penggunaan sumber daya, dan skalabilitas sangat penting. Tujuan Pengujian Kinerja bukan untuk menemukan bug, tetapi untuk menghilangkan kemacetan 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 masuk ke pasar. Tanpa Pengujian Kinerja, perangkat lunak cenderung mengalami masalah seperti: berjalan lambat sementara beberapa pengguna menggunakannya secara bersamaan, ketidakkonsistenan di berbagai sistem operasi, dan kegunaan yang buruk.
Pengujian kinerja akan menentukan apakah perangkat lunak mereka memenuhi persyaratan kecepatan, skalabilitas, dan stabilitas di bawah beban kerja yang diharapkan. Aplikasi yang dikirim ke pasar dengan metrik performa yang buruk karena pengujian performa yang tidak ada atau buruk kemungkinan akan mendapatkan reputasi yang buruk dan gagal memenuhi sasaran penjualan yang diharapkan.
Selain itu, aplikasi yang sangat penting seperti program peluncuran ruang angkasa atau peralatan medis yang menyelamatkan jiwa harus diuji performanya untuk memastikan bahwa aplikasi tersebut berjalan dalam waktu lama tanpa penyimpangan.
Menurut Dunn & Bradstreet, 59% dari perusahaan Fortune 500 mengalami perkiraan waktu henti 1,6 jam setiap minggu. Mempertimbangkan rata-rata perusahaan Fortune 500 dengan minimal 10.000 karyawan membayar $ 56 per jam, bagian tenaga kerja dari biaya waktu henti untuk organisasi semacam itu adalah $ 896.000 setiap minggu, yang berarti lebih dari $ 46 juta per tahun.
Hanya downtime 5 menit dari Google.com (19-Agustus-13) diperkirakan merugikan raksasa pencarian sebanyak $ 545.000.
Diperkirakan bahwa perusahaan kehilangan penjualan senilai $ 1.100 per detik karena Penghentian Layanan Web Amazon baru-baru ini.
Oleh karena itu, pengujian kinerja itu penting.
Jenis Pengujian Kinerja
- Pengujian beban - memeriksa kemampuan aplikasi untuk bekerja di bawah beban pengguna yang diantisipasi. Tujuannya adalah untuk mengidentifikasi hambatan kinerja sebelum aplikasi perangkat lunak ditayangkan.
- Pengujian stres - melibatkan pengujian aplikasi di bawah beban kerja yang ekstrim untuk melihat bagaimana aplikasi tersebut menangani lalu lintas tinggi atau pemrosesan data. Tujuannya adalah untuk mengidentifikasi titik puncak sebuah 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 tiba-tiba pada beban yang dihasilkan oleh pengguna.
- Pengujian volume - Di bawah Pengujian Volume besar no. dari. Data diisi dalam database dan perilaku sistem perangkat lunak secara keseluruhan dipantau. Tujuannya adalah untuk memeriksa kinerja aplikasi perangkat lunak di bawah volume database yang bervariasi.
- Pengujian skalabilitas - Tujuan pengujian skalabilitas adalah untuk menentukan keefektifan aplikasi perangkat lunak dalam "peningkatan skala" untuk mendukung peningkatan beban pengguna. Ini membantu merencanakan penambahan kapasitas ke 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 dilakukan untuk memastikan aplikasi berjalan cukup cepat untuk menjaga perhatian dan minat pengguna. Lihatlah daftar masalah kinerja umum berikut dan perhatikan bagaimana kecepatan merupakan faktor umum di banyak di antaranya:
- Waktu muat lama - Waktu muat biasanya adalah waktu awal yang diperlukan aplikasi untuk memulai. Ini umumnya harus dijaga seminimal mungkin. Meskipun beberapa aplikasi tidak memungkinkan untuk memuat kurang dari satu menit, waktu muat harus disimpan 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 mengeluarkan respons untuk input itu. Umumnya, ini harus dilakukan dengan sangat cepat. Sekali lagi jika pengguna harus menunggu terlalu lama, mereka kehilangan minat.
- Skalabilitas yang buruk - Produk perangkat lunak mengalami skalabilitas yang buruk saat tidak dapat menangani jumlah pengguna yang diharapkan atau jika tidak mengakomodasi cukup banyak pengguna. Pengujian beban harus dilakukan untuk memastikan aplikasi dapat menangani jumlah pengguna yang diantisipasi.
- Hambatan - Hambatan adalah penghalang dalam sistem yang menurunkan kinerja sistem secara keseluruhan. Hambatan adalah ketika kesalahan pengkodean atau masalah perangkat keras menyebabkan penurunan throughput pada beban tertentu. Hambatan sering kali disebabkan oleh satu bagian kode yang salah. Kunci untuk memperbaiki masalah kemacetan adalah menemukan bagian kode yang menyebabkan perlambatan dan mencoba memperbaikinya di sana. Kemacetan umumnya diperbaiki dengan memperbaiki proses yang berjalan buruk atau menambahkan Perangkat Keras tambahan. Beberapa hambatan kinerja yang umum adalah
- Pemakaian CPU
- Pemanfaatan memori
- Pemanfaatan jaringan
- Batasan Sistem Operasi
- Penggunaan disk
Proses Pengujian Kinerja
Metodologi yang diadopsi untuk pengujian kinerja dapat sangat bervariasi tetapi tujuan untuk 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 dari sistem perangkat lunak Anda yang menurunkan kinerjanya.
Di bawah ini adalah proses umum tentang cara melakukan pengujian kinerja
- Identifikasi lingkungan pengujian Anda - Ketahui lingkungan pengujian fisik, lingkungan produksi, dan alat pengujian apa 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.
- Identifikasi kriteria penerimaan kinerja - Ini termasuk tujuan dan batasan untuk hasil, waktu respons dan alokasi sumber daya. Juga perlu untuk mengidentifikasi kriteria keberhasilan proyek di luar tujuan dan kendala ini. Penguji harus diberdayakan untuk menetapkan kriteria dan tujuan kinerja karena sering kali spesifikasi proyek tidak menyertakan 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.
- Rencanakan & desain uji kinerja - Tentukan bagaimana penggunaan kemungkinan akan bervariasi di antara pengguna akhir dan identifikasi skenario utama untuk diuji untuk semua kemungkinan kasus penggunaan. Hal ini diperlukan untuk mensimulasikan berbagai pengguna akhir, merencanakan data pengujian kinerja dan menguraikan metrik apa yang akan dikumpulkan.
- Mengonfigurasi lingkungan pengujian - Siapkan lingkungan pengujian sebelum eksekusi. Juga, atur alat dan sumber daya lainnya.
- Menerapkan desain pengujian - Buat pengujian performa sesuai dengan desain pengujian Anda.
- Jalankan tes - Jalankan dan pantau tes.
- Menganalisis, menyesuaikan, dan menguji ulang - Konsolidasi, analisis, dan bagikan hasil pengujian. Kemudian sempurnakan dan uji lagi untuk melihat apakah ada peningkatan atau penurunan kinerja. Karena peningkatan biasanya semakin kecil dengan setiap pengujian ulang, hentikan jika bottlenecking disebabkan oleh CPU. Kemudian Anda mungkin memiliki opsi pertimbangkan 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 menjalankan utas non-idle.
- Penggunaan memori - jumlah memori fisik yang tersedia untuk proses di komputer.
- Waktu disk - jumlah waktu disk sibuk menjalankan permintaan baca atau tulis.
- Bandwidth - menunjukkan bit per detik yang digunakan oleh antarmuka jaringan.
- Byte pribadi - jumlah byte yang telah dialokasikan oleh suatu proses yang tidak dapat dibagikan di antara proses lain. Ini digunakan untuk mengukur kebocoran dan penggunaan memori.
- Memori terikat - jumlah memori virtual yang digunakan.
- Halaman memori / detik - jumlah halaman yang ditulis atau dibaca dari disk untuk mengatasi kesalahan halaman hard. Kesalahan halaman keras adalah ketika kode bukan dari set kerja saat ini dipanggil dari tempat lain dan diambil dari disk.
- Halaman kesalahan / detik - tingkat keseluruhan di mana halaman kesalahan diproses oleh prosesor. Ini lagi terjadi ketika suatu proses memerlukan kode dari luar set kerjanya.
- Interupsi CPU per detik - adalah rata-rata. jumlah gangguan perangkat keras yang diterima dan diproses oleh prosesor setiap detik.
- Panjang antrian disk - adalah rata-rata. tidak. permintaan baca dan tulis antri untuk disk yang dipilih selama interval sampel.
- Panjang antrian keluaran jaringan - panjang antrian paket keluaran dalam bentuk paket. Lebih dari dua berarti penundaan dan kemacetan harus dihentikan.
- Total byte jaringan per detik - menilai byte mana yang dikirim dan diterima pada antarmuka termasuk karakter pembingkaian.
- Waktu respons - waktu dari saat pengguna memasukkan permintaan hingga karakter pertama respons diterima.
- Throughput - rate komputer atau jaringan menerima permintaan per detik.
- Jumlah penggabungan koneksi - jumlah permintaan pengguna yang dipenuhi oleh koneksi yang digabungkan. Semakin banyak permintaan yang dipenuhi oleh koneksi di kumpulan, semakin baik kinerjanya.
- Sesi aktif maksimum - jumlah sesi maksimum yang dapat aktif sekaligus.
- Rasio klik - Ini ada hubungannya dengan jumlah pernyataan SQL yang ditangani oleh data cache, bukan operasi I / O yang mahal. Ini adalah tempat yang baik untuk mulai menyelesaikan masalah bottlenecking.
- Hit per detik - tidak. jumlah klik di server web selama setiap detik uji beban.
- Segmen rollback - jumlah data yang dapat di-rollback kapan saja.
- Kunci database - penguncian tabel dan database perlu dipantau dan disetel dengan cermat.
- Waktu tunggu teratas - dipantau untuk menentukan waktu tunggu apa yang dapat dikurangi saat berhadapan dengan seberapa cepat data diambil dari memori
- Jumlah utas - Kesehatan aplikasi dapat diukur dengan no. utas yang sedang berjalan dan saat ini aktif.
- Pengumpulan sampah - Ini ada hubungannya dengan mengembalikan memori yang tidak terpakai kembali ke sistem. Pengumpulan sampah perlu dipantau untuk efisiensi.
Contoh Kasus Uji Kinerja
- Pastikan waktu respons tidak lebih dari 4 detik ketika 1000 pengguna mengakses situs web secara bersamaan.
- Pastikan waktu respons Aplikasi Di Bawah Beban berada dalam kisaran yang dapat diterima ketika konektivitas jaringan lambat
- Periksa jumlah maksimum pengguna yang dapat ditangani aplikasi sebelum macet.
- Periksa waktu eksekusi database ketika 500 record dibaca / ditulis secara bersamaan.
- Periksa penggunaan CPU dan memori dari aplikasi dan server database dalam kondisi beban puncak
- Verifikasi waktu respons aplikasi dalam kondisi beban rendah, normal, sedang dan berat.
Selama pelaksanaan uji kinerja aktual, istilah yang tidak jelas seperti kisaran yang dapat diterima, beban berat, dll. Diganti dengan angka konkret. Insinyur kinerja menetapkan angka-angka ini sesuai kebutuhan 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.
- LoadNinja - merevolusi cara kami melakukan uji beban. Alat pengujian beban berbasis cloud ini memberdayakan tim untuk merekam & langsung memutar ulang pengujian beban komprehensif, tanpa korelasi dinamis yang rumit & menjalankan pengujian beban ini di browser nyata dalam skala besar. Tim dapat meningkatkan cakupan tes. & potong waktu pengujian beban lebih dari 60%.
- NeoLoad - adalah platform pengujian kinerja yang dirancang untuk DevOps yang terintegrasi mulus ke dalam pipeline Pengiriman Berkelanjutan yang ada. Dengan NeoLoad, tim menguji 10x lebih cepat daripada dengan alat tradisional untuk memenuhi tingkat persyaratan baru di seluruh siklus pengembangan perangkat lunak Agile - mulai dari pengujian beban seluruh sistem hingga komponen.
- HP LoadRunner - adalah alat pengujian kinerja paling populer di pasaran saat ini. Alat ini mampu mensimulasikan ratusan ribu pengguna, menempatkan aplikasi di bawah beban kehidupan nyata untuk menentukan perilaku mereka di bawah beban yang diharapkan. Loadrunner menampilkan generator pengguna virtual yang mensimulasikan tindakan pengguna manusia secara langsung.
- Jmeter - salah satu alat terkemuka yang digunakan untuk pengujian beban server web dan aplikasi.
FAQ
Aplikasi mana yang harus kami uji kinerja?
Pengujian Kinerja selalu dilakukan untuk sistem berbasis klien-server saja. Ini berarti, aplikasi apa pun yang bukan arsitektur berbasis klien-server, tidak boleh memerlukan Pengujian Kinerja.
Misalnya, Microsoft Calculator tidak berbasis klien-server juga tidak menjalankan banyak pengguna; oleh karena itu, ini bukan kandidat untuk Pengujian Kinerja.
Apa perbedaan antara Pengujian Kinerja & Rekayasa Kinerja
Sangatlah 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 saat ini dari aplikasi perangkat lunak di bawah berbagai parameter.
Rekayasa kinerja adalah proses di mana perangkat lunak diuji dan disetel dengan tujuan untuk mewujudkan kinerja yang diperlukan. Proses ini bertujuan untuk mengoptimalkan sifat kinerja aplikasi yang paling penting, yaitu pengalaman pengguna.
Secara historis, pengujian dan penyetelan telah terpisah dengan jelas dan sering kali merupakan ranah yang bersaing. Namun, dalam beberapa tahun terakhir, beberapa kantong penguji dan pengembang telah berkolaborasi secara independen untuk membuat tim tuning. Karena tim-tim ini meraih kesuksesan yang signifikan, konsep menggabungkan pengujian kinerja dengan penyetelan kinerja menjadi populer, dan sekarang kami menyebutnya rekayasa kinerja.
Kesimpulan
Dalam Rekayasa Perangkat Lunak, pengujian kinerja diperlukan sebelum memasarkan produk perangkat lunak apa pun. Ini memastikan kepuasan pelanggan & melindungi investasi investor dari kegagalan produk. Biaya pengujian kinerja biasanya lebih dari yang ditebus dengan peningkatan kepuasan pelanggan, loyalitas, dan retensi.