Pengujian kinerja menilai kinerja sistem atau kinerja aplikasi dengan banyak berbagai ukuran.
Kriteria utama termasuk kecepatan (seberapa cepat operasinya), stabilitas (jika berkinerja tanpa crash), skalabilitas (seberapa lancar peningkatan beban ditangani) dan daya tanggap (seberapa cepat solusi ini merespons prompt pengguna).
Konsep kinerja perangkat lunak mendasari semua penggunaan komputer, dan kinerja yang buruk dapat merusak upaya terbaik organisasi untuk memberikan pengalaman pengguna yang berkualitas. Jika pengembang tidak cukup mengawasi pengujian kinerja atau menjalankan pengujian kinerja dengan cukup sering, hal ini dapat menyebabkan kemacetan kinerja. Situasi ini dapat menekan kemampuan sistem untuk menangani bahkan beban lalu lintas tipikal selama periode yang diharapkan. Hal ini menjadi lebih bermasalah ketika waktu penggunaan puncak yang tidak terduga menciptakan permintaan tambahan.
Tantangan ini dapat membahayakan seluruh operasi perusahaan yang menghadap publik. Reputasi untuk kualitas yang bertahan lama biasanya membutuhkan waktu lama untuk berkembang. Namun, reputasi dapat dengan cepat dan permanen rusak ketika publik mulai mempertanyakan apakah sistem atau aplikasi dapat beroperasi dengan fungsionalitas yang dapat diandalkan. Kesabaran pengguna akhir semakin menjadi sesuatu yang langka. Jadi, ada banyak hal yang dipertaruhkan ketika masalah kinerja menjadi topik pembicaraan karena reputasi perusahaan sering kali dipertaruhkan.
Buletin industri
Ikuti perkembangan tren industri yang paling penting—dan menarik—di bidang AI, otomatisasi, data, dan lainnya dengan buletin Think. Lihat Pernyataan Privasi IBM.
Langganan Anda akan disediakan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM kami untuk informasi lebih lanjut.
Pertama-tama mari kita tentukan metodologi yang digunakan dalam sebagian besar skenario uji kinerja. Enam langkah beberapa bagian menentukan proses pengujian kinerja yang khas.
Langkah pertama dalam proses pengujian kinerja melibatkan penetapan parameter yang berguna, seperti menguraikan tujuan kinerja aplikasi.
Kemudian, tetapkan apa yang merupakan kriteria kinerja yang dapat diterima (seperti waktu respons, keluaran, pemanfaatan sumber daya, dan tingkat kesalahan).
Tahap ini juga ketika personel mengidentifikasi indikator kinerja utama (KPI) untuk dapat mendukung persyaratan kinerja dan prioritas bisnis.
Tidak semua tes harus digunakan dalam setiap situasi. Pengembang atau penguji lain harus menentukan apa yang dimaksudkan untuk dianalisis pengujian.
Langkah ini dimulai dengan menentukan skenario penggunaan utama dan merancang kasus uji yang mencerminkan interaksi pengguna di dunia nyata. Langkah selanjutnya adalah menentukan data pengujian dan beban kerja yang akan digunakan selama proses pengujian.
Setelah mengunci variabel-variabel ini, penguji memilih alat pengujian kinerja, skrip uji, dan teknik pengujian untuk digunakan. Langkah ini mencakup pengaturan gating, proses di mana gerbang kualitas berbasis kode mengizinkan atau menolak akses ke langkah produksi selanjutnya.
Pengujian kinerja juga memeriksa bandwidth untuk memastikan bahwa kecepatan transmisi data dapat menangani lalu lintas beban kerja secara memadai.
Satu langkah terakhir harus diambil sebelum proses pengujian kinerja dapat secara resmi dimulai. Penguji membangun lingkungan pengujian yang secara akurat meniru lingkungan produksi nyata sistem, kemudian mengkonfirmasi bahwa aplikasi perangkat lunak yang diuji (AUTs) telah diterapkan dalam lingkungan pengujian.
Persiapan akhir melibatkan pengintegrasian alat pemantauan untuk menangkap metrik kinerja yang dihasilkan oleh sistem selama pengujian.
Dengan parameter pengujian yang kini ditetapkan dengan jelas, saatnya untuk menjalankan pengujian kinerja. Penguji atau otomatisasi pengujian menjalankan skenario pengujian yang telah dipilih, dan pengujian tersebut digunakan bersama dengan alat pengujian kinerja.
Penguji biasanya memantau kinerja sistem secara real-time sehingga mereka dapat memeriksa throughput, waktu respons, dan penggunaan sumber daya. Sepanjang skenario pengujian, penguji memantau sistem untuk kemacetan kinerja atau keanehan terkait kinerja lainnya yang tercermin dalam metrik pengujian.
Selanjutnya, penguji mengevaluasi data kinerja yang telah dikumpulkan selama proses pengujian. Mereka meneliti data yang dikumpulkan dan mencari area kinerja yang perlu ditingkatkan.
Kemudian, penguji membandingkan hasil tes ini dengan tolok ukur kinerja yang ditetapkan sebagai bagian dari langkah pertama dari proses pengujian. Melalui perbandingan ini, penguji dapat melihat di mana Hasil pengujian menyimpang dari kinerja yang diharapkan dan kemacetan bisa saja terjadi.
Setelah mengidentifikasi masalah kinerja melalui analisis data pengujian, pengembang bekerja dengan kode untuk memperbaruinya dengan sistem. Mereka menggunakan pengoptimalan kode, peningkatan sumber daya, atau perubahan konfigurasi untuk mengurangi masalah kinerja yang dikutip.
Setelah menerapkan perubahan, pengembang mengulangi urutan pengujian perangkat lunak untuk mengonfirmasi bahwa mereka telah menerapkan perubahan dengan sukses. Pengembang mengulangi prosedur sampai hasil kinerja selaras dengan tolok ukur yang ditentukan.
Pengujian kinerja berjalan jauh “tersembunyi” untuk memeriksa output sistem atau aplikasi, jadi masuk akal bahwa tim pengembangan perangkat lunak adalah pengguna metode pengujian kinerja yang paling umum. Termasuk dalam kelompok pengguna pertama ini adalah para profesional yang secara aktif terlibat dalam proses pengembangan: pengembang, insinyur jaminan kualitas (QA), dan tim DevOps. Masing-masing mendapatkan sesuatu yang unik dari pengujian kinerja:
Kelompok pengguna berikutnya bukanlah pengembang tetapi mereka masih bekerja di tingkat dasar dengan manajemen kinerja sistem sebagai komponen utama dari pekerjaan mereka:
Tapi bukan hanya manajemen perusahaan yang melakukan pengujian kinerja. Banyak organisasi dan bisnis yang juga sering menggunakan pengujian kinerja untuk berbagai tujuan di perusahaan dengan berbagai ukuran:
Pengembang melakukan berbagai jenis pengujian kinerja untuk memperoleh jenis data hasil tertentu dan mendukung strategi pengujian tertentu. Berikut ini adalah jenis-jenis ujian yang paling menonjol.
Pengujian beban menunjukkan bagaimana kinerja sistem saat beroperasi dengan beban yang diharapkan. Tujuan pengujian beban adalah untuk menunjukkan perilaku sistem ketika menghadapi beban kerja berukuran rutin dalam kondisi kerja normal dengan jumlah rata-rata pengguna yang bersamaan.
Contoh: Untuk situs web e-commerce, penguji melakukan simulasi sebagai pengguna situs dan melakukan langkah-langkah berbelanja barang, menempatkan produk di keranjang, dan membayar pembelian tersebut.
Pengujian beban menunjukkan apakah sistem dapat mendukung kondisi beban reguler. Skalabilitas menempatkan sistem itu di bawah tekanan dengan meningkatkan volume data atau beban pengguna yang ditangani. Ini menunjukkan apakah suatu sistem dapat memenuhi kecepatan yang meningkat dan masih memberikan.
Contoh: Dalam penskalaan vertikal, pengembang dapat meningkatkan CPU dan memori server basis data agar dapat mengakomodasi volume kueri data yang lebih besar.
Pengujian stres analog dengan tes menyelam yang dilakukan oleh awak kapal selam. Di sini, sistem didorong hingga batas operasional yang dipahami-dan bahkan lebih jauh lagi-untuk menentukan dengan tepat berapa banyak yang dapat diterima oleh sistem sebelum mencapai titik puncaknya.
Contoh: Pengujian failover adalah bentuk ekstrem dari pengujian stres yang dimulai dengan mensimulasikan kegagalan komponen. Tujuannya adalah untuk melihat berapa lama waktu yang dibutuhkan sistem untuk pulih dan melanjutkan operasi.
Di sini kami menguji jenis stres yang berbeda-ketika lalu lintas pengguna atau transfer volume data tiba-tiba mengalami lonjakan aktivitas yang tajam dan drastis. Sistem harus menyerap berbagai perubahan sambil melanjutkan operasi biasa.
Contoh: Perusahaan yang menjalankan situs web perlu mempersiapkan diri tidak hanya untuk pemadaman, tetapi juga untuk lonjakan pengguna yang mencoba mengakses situs secara bersamaan setelah situs kembali online. Mereka juga harus menilai apakah sistem dapat menangani peningkatan permintaan yang tiba-tiba itu. Pengujian lonjakan dapat menghitung seberapa lancar kemungkinan akan berjalan.
Terkadang dengan kinerja, kami mendiskusikan lalu lintas pengguna. Pengujian volume, sebaliknya, berkaitan dengan bagaimana sistem mengelola sejumlah besar data. Dapatkah sistem memproses data sepenuhnya dan menyediakan penyimpanan data tanpa degradasi data?
Contoh: Sebuah klinik medis menyimpan informasi pasien dalam jumlah besar dan secara hukum diwajibkan untuk dapat mengakses catatan pasien dan data medis terkait. Masuknya data yang konstan dapat membebani sistem. Pengujian volume memungkinkan pengguna mengetahui apakah sistem mereka siap menghadapi tantangan untuk terus menerima lebih banyak data.
Anggap saja ini sebagai pengujian kinerja dalam jangka panjang. Penyebab sebenarnya yang dicari oleh pengujian ketahanan (juga disebut pengujian rendam) adalah degradasi data dan masalah kebocoran memori yang sering terjadi dalam jangka waktu yang lama.
Contoh: Platform media sosial beroperasi sepanjang waktu, dan penggunaan yang terus menerus dapat menimbulkan masalah pada stabilitas platform, penyimpanan data, dan akun pengguna. Pengujian ketahanan memberi Anda gambaran tentang operasi saat ini dan indikator kinerja masa depan.
Pengembang dan penguji dapat memilih dari berbagai alat yang dirancang untuk pengujian kinerja. Berikut adalah beberapa yang paling populer
Seperti hampir semua hal yang berkaitan dengan komputer, kecerdasan buatan (AI) sekarang mendorong pengujian perangkat lunak ke tingkat efisiensi yang sama sekali baru. AI membuat proses pengujian kinerja secara keseluruhan lebih cepat, lebih akurat, dan lebih mudah diotomatisasi.
Secara khusus, AI dapat menggunakan siklus pengujian yang lebih pendek, sehingga membutuhkan lebih sedikit waktu untuk menjalankan pengujian. Dan melalui akurasi AI yang tajam, AI mampu melihat perubahan kinerja yang lebih halus yang bisa luput dari penguji manusia. Selain itu, melalui analisis prediktif, AI dapat mengevaluasi tren operasi dan data historis dan memprediksi di mana dan kapan kemacetan mungkin terjadi selanjutnya. AI juga dapat memanfaatkan perilaku sistem prediktif itu dan bahkan menyesuaikan parameter pengujian berdasarkan itu.
Namun, sejauh ini, hal paling signifikan yang telah dilakukan AI untuk pengujian kinerja (sejauh ini) adalah membantu upayanya dalam skala besar dengan mengaktifkan otomatisasi. Otomatisasi ini sungguh luar biasa karena mampu menjalankan seluruh proses pengujian kinerja.
AI tidak hanya dapat mengotomatiskan bagaimana pengujian dilakukan, tetapi juga dapat menulis skrip pengujian yang dimaksudkan untuk dieksekusi. Selain itu, dapat menafsirkan hasil pengujian di backend dan menawarkan panduan untuk memulihkan situasi masalah.
Salah satu dampak AI yang paling menarik dan menjanjikan pada pengujian kinerja adalah meningkatnya penggunaan kolaborasi manusia-AI. Pengaturan ini menyadari bahwa naluri dan pengetahuan manusia masih memiliki peran penting untuk dimainkan. Bahkan, dalam beberapa situasi, mengikuti impuls manusia masih merupakan arahan utama.
Beberapa pakar yakin bahwa pengujian kinerja masa depan bergantung pada pendekatan ini. Pendekatan ini menggabungkan mentalitas komputer dan pemrosesan otot dengan rasa konteks dan nuansa manusia.
Otomatiskan pengiriman perangkat lunak untuk aplikasi apa pun di lingkungan on premises, cloud, atau mainframe.
Gunakan perangkat lunak dan alat bantu DevOps untuk membangun, menerapkan, dan mengelola aplikasi cloud native di berbagai perangkat dan lingkungan.
Dapatkan kemampuan baru dan dorong ketangkasan bisnis dengan layanan konsultasi cloud IBM. Temukan cara berkolaborasi dalam menciptakan solusi, mempercepat transformasi digital, dan mengoptimalkan kinerja melalui strategi hybrid cloud dan kemitraan pakar.