Posts Tagged ‘testing software’

h1

Summary Testing software

Desember 13, 2009

Pengujian Perangkat Lunak

Pengujian perangkat lunak merupakan elemen kritis dari jaminan kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi, desain, dan pengkodean. Pengujian perangkat lunak juga ditujukan untuk menemukan kesalahan. Pentingnya pengujian perangkat lunak dan implikasinya yang mengacu pada kualitas perangkat lunak tidak dapat terlalu ditekan karena melibatkan sederetan aktivitas produksi di mana peluang terjadinya kesalahan manusia sangat besar dan karena ketidakmampuan manusia untuk melakukan dan berkomunikasi dengan sempurna maka pengembangan perangkat lunak diiringi dengan aktivitas jaminan kualitas.

Pengujian perangkat lunak seharusnya menghabiskan waktu 30% – 40% dari total biaya pembangunan perangkat lunak. Pengujian merupakan bagian dari salah satu tugas software verification dan validation, yang merupakan bagian dari software quality assurance.

Yang berhubungan dengan pengujian :

  • Customer yaitu tim yang mengontrak pengembang untuk mengembangkan perangkat lunak.
  • Pengguna yaitu kelompok yang akan menggunakan perangkat lunak.
  • Pengembang perangkat lunak yaitu tim yang membangun perangkat lunak.Tim Pengujian perangkat lunak, tim khusus yang bertugas untuk menguji fungsi-fungsi pada perangkat lunak. Para pengembang membuat serangkaian uji kasus yang bertujuan untuk ”membongkar” software yang mereka bangun. Kenyataannya, ujicoba merupakan salah satu tahapan dalam proses pengembangan software yang dapat dilihat (secara psikologi) sebagai destruktif, dari pada sebagai konstruktif.

Sejumlah aturan yang berfungsi sebagai sasaran pengujian pada perangkat lunak adalah:

  1. Pengujian adalah proses eksekusi suatu program dengan maksud menemukan kesalahan
  2. Test case yang baik adalah test case yang memiliki probabilitas tinggi untuk menemukan kesalahan yang belum pernah ditemukan sebelumnya
  3. Pengujian yang sukses adalah pengujian yang mengungkap semua kesalahan yang belum pernah ditemukan sebelumnya

Sasaran itu berlawanan dengan pandangan yang biasanya dipegang yang menyatakan bahwa pengujian yang berhasil adalah pengujian yang tidak ada kesalahan yang ditemukan. Data yang dikumpulkan pada saat pengujian dilakukan memberikan indikasi yang baik mengenai reliabilitas perangkat lunak dan beberapa menunjukkan kualitas perangkat lunak secara keseluruhan, tetapi ada satu hal yang tidak dapat dilakukan oleh pengujian, yaitu pengujian tidak dapat memperlihatkan tidak adanya kecacatan, pengujian hanya dapat memperlihatkan bahwa ada kesalahan perangkat lunak.

Proses Pengujian :

Gambar 1.1

Penjelasan Gambar 1.1 :

  • System Testing merupakan pengujian terhadap integrasi sub-system, yaitu keterhubungan antar sub-system.
  • Acceptance Testing merupakan pengujian terakhir sebelum sistem dipakai oleh user, melibatkan pengujian dengan data dari pengguna sistem, biasa dikenal sebagai “alpha test” (“beta test” untuk software komersial, dimana pengujian dilakukan oleh potensial customer)
  • Component testing merupakan pengujian komponen-komponen program, biasanya dilakukan oleh component developer (kecuali untuk system kritis).
  • Integration testing merupakan pengujian kelompok komponen-komponen yang terintegrasi untuk membentuk sub-system ataupun system, dilakukan oleh tim penguji yang independent, pengujian berdasarkan spesifikasi sistem

Sebelum mengaplikasikan metode untuk mendesain test case yang efektif, perekayasa perangkat lunak harus memahami prinsip dasar yang menuntun pengujian perangkat lunak, yaitu:

  • semua pengujian harus dapat ditelusuri sampai ke persyaratan pelanggan, maksudnya mengungkap kesalahan dari cacat yang menyebabkan program gagal.
  • Pengujian harus direncanakan lama sebelum pengujian itu mulai, maksudnya semua pengujian dapat direncanakan dan dirancang sebelum semua kode dijalankan.
  • Prinsip Pareto berlaku untuk pengujian perangkat lunak, maksudnya dari 80% kesalahan yang ditemukan selama pengujian dapat ditelusuri sampai 20% dari semua modul program.
  • Pengujian harus mulai “dari yang kecil” dan berkembang ke pengujian “yang besar”, Selagi pengujian berlangsung maju, pengujian mengubah focus dalam usaha menemukan kesalahan pada cluster modul yang terintegrasi dan akhirnya pada sistem.
  • Pengujian yang mendalam tidak mungkin karena tidak mungkin mengeksekusi setiap kombinasi jalur skema pengujian dikarenakan jumlah jalur permutasi untuk program menengah pun sangat besar.
  • Untuk menjadi paling efektif, pengujian harus dilakukan oleh pihak ketiga yang independent.

Dalam lingkungan yang ideal, perekayasa perangkat lunak mendesain suatu program computer, sebuah sistem atau produk dengan testabilitas dalam pikirannya. Hal ini memungkinkan individu yang berurusan dengan pengujian mendesain test case yang efektif secara lebih mudah. Testabilitas adalah seberapa mudah sebuah program computer dapat diuji. Karena sangat sulit, perlu diketahui apa yang dapat dilakukan untuk membuatnya menjadi lebih mudah. Procedural dan menggunakannya sebagai pedoman untuk menetapkan basis set dari jalur eksekusi.

Sasaran utama desain test case adalah untuk mendapatkan serangkaian pengujian yang memiliki kemungkinan tertinggi di dalam pengungkapan kesalahan pada perangkat lunak. Untuk mencapai sasaran tersebut, digunakan 4 kategori yang berbeda dari tehnik desain test case: Pengujian white-box, pengujian black-box, Integrasi Bottom-Up dan Integrasi Top-Down.

Karakteristik Perangkat Lunak yang diuji :

  • operabilitas, semakin baik dia bekerja semakin efisien dia dapat diuji.
  • observabilitas, apa yg anda lihat adalah apa yg anda uji.
  • kontrolabilitas, semakin baik kita dapat mengontrol perangkat lunak semakin banyak pengujian yg adapat diotomatisasi dan dioptimalkan.
  • dekomposabilitas, dengan mengontrol ruang lingkup pengujiankita dapat lebih cepat mengisolasi masalah dan melakukan pengujian kembali.
  • kesederhanaan, semakin sedikit yg diuji semakin cepat pengujian.
  • stabilitas, semakin sedikit perubahan semakin sedikit gangguan pengujian.
  • kemampuan dipahami, semakin banyak informasi yg dimiliki semakin detail pengujiannya.

Metode Perancangan Kasus Uji

  • Black Box  merupakan pengujian untuk mengetahui apakah semua fungsi perangkat lunak telah berjalan semestinya sesuai dengan kebutuhan fungsional yang telah didefinsikan. Metode Black Box memungkinkan perekayasa perangkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. Black Box dapat menemukan kesalahan pada fungsi-fungsi yang tidak benar atau hilang, kesalahan interface, kesalahan dalam struktur data atau akses basisdata eksternal Inisialisasi dan kesalahan terminasi, dan kesensitifan sistem terhadap nilai input tertentu batasan dari suatu data.
  • White Box merupakan pengujian untuk memperlihatkan cara kerja dari produk secara rinci sesuai dengan spesifikasinya. Dengan menggunakan white box akan didapatkan kasus uji yang ; menjamin seluruh jalur independen di dalam modul yang dieksekusi sekurang-kurangnya sekali, menguji semua keputusan logikal, menguji seluruh Loop yang sesuai dengan batasannya, menguji seluruh struktur data internal yang menjamin validitas

(dari berbagai sumber)

Iklan