Menu Bar

Sunday, 2 December 2012

Performance Testing

Definisi 
      Performance Testing merupakan proses menentukan kecepatan atau efektivitas, jaringan program computer, perangkat lunak atau perangkat. Proses ini dapat melibatkan test kuantitatif yang dilakukan di laboratorium, seperti mengukur waktu respon atau jumlah MIPS (Millions of Intructions per Second) pada fungsi sistem. Atribut kualitatif seperti kehandalan, skalabilitas dan interoperabilitas juga dapat dievaluasi. Performance Testing sering dilakukan dalam hubungannya dengan stress testing.
Performance Testing dapat memverifikasi bahwa sistem memenuhi spesifikasi diklaim oleh produsen atau vendor. Proses ini dapat membandingkan dua atau lebih perangkat atau program dalam hal parameter seperti kecepatan, kecepatan transfer data, bandwidth, throughput, efisiensi atau keandalan. 
Performance Testing juga dapat digunakan sebagai alat bantu diagnostik dalam menemukan kemacetan komunikasi. Seringkali sistem akan bekerja jauh lebih baik jika masalah ini diselesaikan di satu titik atau dalam komponen tunggal. Misalnya, bahkan komputer tercepat akan berfungsi buruk di Web hari ini jika koneksi terjadi di hanya 40 sampai 50 Kbps (kilobit per detik). Lambatnya kecepatan transfer mungkin dapat juga disebabkan pada hardware, tetapi juga dapat berhubungan dengan masalah perangkat lunak, seperti : 
  • Terlalu banyak aplikasi yang berjalan pada waktu yang sama 
  • Sebuah file yang rusak pada WEB browser 
  • Adanya eksploitasi keamanan 
  • Perangkat lunak Anti-virus 
  • Adanya malware aktif pada harddisk 
Performance Testing yang efektif dapat dengan cepat mengidentifikasi masalah kinerja perangkat lunak yang terkait.

Metode 
Pada performance testing ada dua metode yang digunakan, diantaranya : 
1. Plannig Session 
  • Pentingnya user (pengguna), tasks dan lingkungan yang ada untuk mewakili pengujian dari konteks penggunaan yang dimaksudkan. 
  • Memilih tugas yang terpenting dan kelompok pengguna yang akan di uji (misalnya yang sering dan yang peling penting). 
  • Memilih pengguna yang dapat mewakili masing-masing kelompok pengguna. 3 – 5 pengguna yang cukup untuk mengidentifikasi masalah. 8 atau lebih pengguna masing-masing tipe yang diperlukan untuk pengukuran kehandalan. 
  • Dari planning tersebut maka dapat menghasilkan scenario tugas dan input data serta petunjuk penulisan bagi pengguna (yang memberitahu pengguna apa yang harus dicapai, bukan bagaimana melakukannya). 
  • Dengan adanya planning session dapat memungkinkan adanya waktu untuk memeberikan instruksi, menjalankan test, menjawab kuisioner dan wawancara pasca test. 
  • Mengundang depelover untuk mengamati sesi jika memang memungkinkan. Alternatifnya untuk merekam sesi dan depelover dapat menunjukan masalah yang ada pada users. 
  • Dua administrator biasanya dibutuhkan untuk berbagi kegitan mengajar dan wawancara pengguna, peralatan video operas(jika memang digunakan), mencatat masalah, dan berbicara kepada setiap pengamat. 
  • Bila memungkinkan dapat menggunakan satu ruangan untuk pengujian, dihubungkan oleh video ke ruangan lain untuk observasi. 
  • Jika langkah-langkah kebutuhan diperlukan, amati user tanpa harus membuat komentar. 
  • Jika langkah ini tidak diperlukan, user akan meminta untuk menjelaskan interpretasi mereka dari masing-masing isi layar dan mereka akan meminta untuk membuat pilihan. 
2. Running Session 
  • Bersifat ramah kepada user, dan memberikan intruksi tugas yang jelas. 
  • Jangan memberikan petunjuk atau bantuan kecuali jika user tudak dapat menyelesaikan tugasnya. 
  • Amati setiap interaksi dan mencatat permasalahan yang dihadapi. 
  • Mengatur waktu penugasan 
  • Pada akhir sesi meminta user untuk mengisi kuisoner berapa puasnya mereka. 
  • Mewawancara user untuk mengkonfirmasi mereka adalah wakil dari kelompok pengguna yang dituju untuk mendapatkan pendapat umum, dan untuk bertanya tentang masalah-masalah spesifik yang dihadapi. 
  • Menilai hasil dari tugas untuk akurasi dan kelengkapan. 
Types
  1. Load Testing (pengujian beban) merupakan bentuk sederhana dari performance testing. Load testing biasanya dilakukan untuk memahami perilaku sistem agar sesuai dengan yang diharapkan. Pada load testing dapat menjadi patokan yang diharapkan user pada aplikasi untuk melakukan transaksi tertentu dalam suatu set durasi waktu. Test ini akan memberikan waktu respon dari semua transaksi bisnis yang penting. Jika umumnya database, server dan lain-lain juga dipantau maka test sederhana ini dapat menuju kearah aplikasi perangkat lunak yang macet dengan sendirinya. 
  2. Stress Testing biasanya digunakan untuk memahami batas kapasitas dalam sistem. Jenis test ini dilakukan untuk mengetahui ketahanan sistem dalam beban yang ekstrim dan membantu administrator untuk menentukan apakah sistem akan berjalan dengan baik jika arus beban diatas maksimum yang diharapkan. 
  3. Endurance Testing (soak testing / pengujian daya tahan) biasanya dilakukan untuk menentukan apakah sistem dapat dipertahankan dari beban secara terus menerus. Selama test daya tahan,penggunaan memori dipantau untuk mendeteksi kebocoran potensial. Namun sering sekali penurunan kinerja tidak diperhatikan. Artinya untuk memastikan waktu respon yang baik adalah saat kegiatan berlangsung daripada di awal pengujian. Yang pada dasarnya melibatkan penerapan beban yang signifikan terhadap kinerja sistem untuk jangka panjang. Tujuannya adalah untuk menemukan bagaimana sistem berprilaku pada saat penggunaan berkelanjutan.  
  4. Spike Testing dilakukan secara tiba-tiba meningkatkan jumlah atau beban yang dihasilkan oleh user dengan jumlah yang sangat besar dan mengamati perilaku sistem. Tujuannya adalah menentukan apakah kinerja akan rusak, sistem akan gagal, atau akan mampu menangani perubahan dramatis pada beban. 
  5. Configuration Testing dilakukan untuk menentukan dampak dari perubahan konfigurasi untuk komponen kinerja dan perilaku sistem. Contoh umum dalam bereksperimen dengan metode yang berbeda dari load- balancing.  
  6. Isolation Testing merupakan test yang tidak unik untuk suatu pengujian kinerja, tetapi melibatkan pengulangan dalam pelaksanaan test yang mengakibatkan masalah sistem. Sehingga Isolation testing sering digunakan untuk mengisolasi dan mengkonfirmasi kesalahan domain. 
Output 
Performance Testing menghasilkan daftar masalah users, yang dikategorikan sangat penting untuk memilih peramsalahan yang ada (use post-it-notes to sort the problems), dan gambaran tentang jenis masalah yang dihadapi. Mengatur pertemuan dengan Project Manager dan Depelover untuk membahas apakah dan bagaimana setiap masalah bisa diperbaiki. Jika langkah-langkah telah diambil, maka saatnya untuk merangkum kuisioner kepuasan user, pembagian waktu tugas dan efektifitas (akurasi kelengkapan) tindakan. Jika yang diperlukan sudah lengkap, Common Industry Format menyediakan struktur yang baik.  

Benefits 
Masalah utama user yang mungkin di identifikasi dan kurang di ungkapkan pada saat pengujian formal, missal masalah yang berkaitan dengan keterampilan khusus dan harapan users. Tidakan dapat di peroleh untuk efektivitas users dan kepuasan users. 

Kesimpulan 
Performance Testing merupakan evaluasi users dengan sistem yang ketat dibawah kondisi yang sangat realistis, untuk mengidentifikasi permasalahan user dan membandingkan langkah-langkah seperti tingkat keberhasilan, waktu penugasan dan kepuasan user dengan persyaratan.

Sumber : 
http://www.onestoptesting.com/performance-testing/
http://en.wikipedia.org/wiki/software_performance_testing/