Metode PENGUJIAN perangkat lunak

tujuan, prinsip dan strategi pengujian perangkat lunak
source : skelia.com
Dalam proses rekayasa perangkat lunak, pelaku rekayasa perangkat lunak awalnya berusaha untuk membangun dan mengembangkan perangkat lunak dari mulai abstraksi hingga ke tahapan penerapan, barulah kemudian dilakukan pengujian perangkat lunak. 


Ketika melakukan metode pengujian perangkat lunak, pelaku membuat sekumpulan kasus atau skenario pengujian yang akan diujikan kepada perangkat lunak yang telah selesai dibangun. Proses pengujian perangkat lunak lebih berfokus pada sisi desktruktif dibandingkan dengan sisi konstruktifnya, hal ini karena tujuannya adalah untuk menemukan kesalahan pada perangkat lunak.


Sasaran atau Tujuan Pengujian Perangkat Lunak

Pengujian perangkat lunak dilakukan dengan sasaran sebagai berikut ini :
  1. Pengujian adalah proses mengeksekusi program dengan tujuam untuk menemukan kerusakan maupun kesalahan pada program.
  2. Kasus atau skenario uji yang baik adalah yang mempunyai tingkat kemungkinan tinggi untuk menemukan kerusakan yang belum ditemukan.
  3. Pengujian dapat dikatakan berhasil apabila berhasil menemukan kerusakan yang belum ditemukan sebelumnya.
Dari sasaran diatas mengimplikasikan adanya perubahan cara pandang dimana pengujian yang berhasil adalah pengujian yang tidak menemukan kesalahan maupun kerusakan. Apabila pengujian telah selesai dilakukan, maka diharapkan ditemukan adanya kesalahan dalam perangkat lunak. Sekaligus sebagai benefit tambahan, pengujian dalam hal ini menunjukkan bahwa fungsi perangkat lunak bekerja dan berjalan sesuai dengan spesifikasi bahwa persyaratan kinerja telah terpenuhi.

Ketika melakukan pengujian, data perlu dikumpulkan supaya memberikan indikasi yang baik terhadap realibilitas perangkat lunak dan beberapa indikasi dari kualitas keseluruhan perangkat lunak. Namun, pengujian tidak dapat memperlihatkan ataupun memastikan bahwa perangkat lunak yang diuji tersebut tidak memiliki cacat sama sekali.

Prinsip Pengujian Perangkat Lunak

Berikut merupakan serangkaian prinsip ketika melakukan pengujian perangkat lunak :
  • Semua pengujian musti dapat ditelusuri hingga ke kebutuhan klien. Hal ini memenuhi kriteria bahwa kesalahan yang paling vital dilihat dari sudut pandang klien adalah cacat yang mengakibatkan program gagal memenuhi persyaratannya.
  • Supaya pengujian perangkat lunak bisa lebih efektif, pengujian harus dilakukan oleh pihak ketiga yang independen atau terpisah. Hal ini dimaksudkan supaya pengujian mempunyai tingkat kemungkinan yang tinggi dalam menemukan kesalahan. Oleh sebab itu pelaku yang mengembangkan perangkat lunak tersebut bukanlah orang yang paing tepat untuk melakukan semua pengujian perangkat lunak.
  • Pengujian harus dimulai dari hal yang terkecil dan berkembang ke pengujian yang lebih besar. Pengujian pertama kali berfokus pada modul individual perangkat lunak yang kemudian mengubah fokus pengujian pada kluster modul yang berkaitan dan akhirnya pada sistem secara keseluruhan.
  • Tidak memungkinkan melakukan pengujian yang mendalam. Jumlah kasus maupun jalur permutasi pada program yang berukuran menengah hingga sangat besar sulit dilakukan pengujian secara mendalam. Namun, dimungkinkan untuk menguji logika program dan memastikan bahwa segala kondisi pada rancangan telah diuji.
  • Pengujian musti direncanakan jauh-jauh hari sebelum pengujian dimulai. Perencanaan pengujian bisa dimulai segera ketika model kebutuhan dilengkapi dan model perancangan selesai dibuat. Dengan ini diharapkan, semua pengujian dapat direncanakan dan dirancang sebelum semua kode diimplimentasikan.

Strategi Pengujian Perangkat Lunak

Proses pengujian perangkat lunak dapat diilustrasikan pada gambar di bawah ini.

Strategi atau Skema Pengujian Perangkat Lunak


Gambar spiral diatas mengilustrasikan bagaimana rekayasa sistem membangun sebuah perangkat lunak diulai dari penentuan kebutuhan perangkat lunak, kemudian dilanjut dengan membentuk rancangan hingga akhirnya ke pengkodean. Strategi atau skema pengujian dimulai dengan unit testing dimana masing-masing unit perangkat lunak yang diimplimentasikan menjadi sasaran pengujian, kemudian dilakukan integration testing dengan fokus pengujian adalah desain dan konstruksi arsitektur perangkat lunak, hingga dilakukan validation testing dengan sasaran pengujian adalah kesesuaian dengan kebutuhan perangkat lunak yang telah ditentukan di awal pengembangan, dan berakhir pada system testing, dimana perangkat lunak dan keseluruhan elemen sistem diuji.

Unit Testing

Unit testing lebih berfokus pada unit terkecil dari perangkat lunak. Jalur kontrol yang penting diuji untuk menguak kesalahan pada modul tersebut. Pengujian ini umumnya berorientasi white-box testing dan bisa dilakukan secara paralel untuk modul yang bertingkat.

Unit testing perangkat lunak


Pengujian mengenai jalur eksekusi merupakan tugas penting selama unit testing. Kasus uji musti dirancang untuk menguak kesalahan yang berkaitan dengan kesalahan komputasi, komparasi dan aliran kontrol yang tidak tepat. 

Integration Testing

Integration testing dilakukan dengan teknik sistematis dalam mengontruksi struktur program sambil melakukan pengujian dalam menguak kesalahan yang berhubungan dengan interfacing. Sasarannya ialah modul yang telah diuji pada unit testing dan kontruksi program dari modul tersebut sesuai dengan rancangan perangkat lunak.

Validation Testing

Validation testing dilakukan setelah perangkat lunak selesai dirangkai sebagai satu kesatuan yang menyeluruh dan kesalahan interfacing telah ditemukan dan dikoreksi. Validasi berhasil jika segala fungsi pada perangkat lunak sesuai dengan kebutuhan klien. 

Validasi testing diperoleh melalui serangkaian pengujian black-box testing yang memperlihatkan kesesuaian kebutuhan perangkat lunak. Semua skenario uji dirancang untuk memastikan semua persyaratan fungsional telah terpenuhi, semua persyaratan kinerja telah tercapai d, semua dokumentasi teag benar, dan persyaratan lainnya seperti kompatibilitas, maintenance dan kemampuan pulih dari keselahan telah dipenuhi.

System Testing

System testing pengujian yang sasarannnya adalah keseluruhan sistem. Terdapat beberapa tipe dari system testing diantaranya adalah sebagai berikut :
  1. Recovery testing, menguji perangkat lunak untuk gagal dengan berbagai cara dan memeriksa apakah perbaikan atau pemulihan dilakukan secara tepat.
  2. Security testing, menguji apakah mekanisme keamanan yang dibangun pada sistem akan benar-benar dapat mengamankan dari pengaruh yang salah dan beberapa percobaan peretasan.
  3. Stress testing, dirancang untuk menguji program apakah mampu melawan keadaan yang abnormal. 
  4. Perfomance testing, dirancang untuk menguji kinerja perangkat lunak yang telah terintegrasi pada sistem ketika run-time.

Semoga bermamfaat 

~Referensi
Poltek Telkom