Anda di halaman 1dari 3

Pengujian perangkat lunak (software testing) adalah bagian integral dari sebuah pembangunan

perangkat lunak (software development). Sering kali, pembangunan sebuah perangkat lunak
disempitkan dengan pengkodean (coding) atau pemograman dan pengujian perangkat lunak adalah
salah satu proses vital dalam pembangunan perangkat lunak yang sering diabaikan. Padahal proses ini
sangat penting, terutama untuk pembangunan perangkat lunak yang akan diproduksi secara masal
(mass production), yang menuntut adanya jaminan mutu dan bebas kesalahan (bug-free) sebelum
masuk pada tahap produksi. Meskipun begitu, untuk pembangunan perangkat lunak berdiri sendiri
(standalone) atau dibangun untuk keperluan tertentu (in-house development), proses pengujian akan
dapat menurunkan secara signifikan biaya pembangunan (development cost) dan biaya perawatan
(maintenance cost).

Tulisan ini bertujuan memberikan gambaran umum tentang pengujian perangkat lunak dan
mengklarisifikasi beberapa istilah yang sering membingungkan. Secara umum pengujian perangkat lunak
adalah satu proses mengeksekusi perangkat lunak yang dibangunkan untuk mendeteksi dan
menemukan perbedaan antara aktual dan yang dirancang atau diperlukan atau dituntut atau
diharapkan. Lebih detilnya, definisi “Testing” menurut American National Standards Institute dan IEEE
adalah sebagai berikut:

“A process of analyzing a software item to detect the differences between existing and required
conditions (that is defects/errors/bugs) and to evaluate the features of the software item”

Dapat dikatakan bahwa tujuan utama pengujian perangkat lunak adalah untuk memastikan tidak ada
kesalahan dan sesuai dengan ekspektasi yang diharapkan yang tertuang dalam rencana dan
perancangan yang telah dibuat dan disetujui sebelumnya.

Lalu kapan sebenarnya pengujian perangkat lunak itu perlu dilakukan dan kapan pengujian harus
diakhiri? Tidak ada satu petunjuk yang memastikan kapan harus dimulai, tetapi ditahun 1976 Boehm
menyimpulkan dari beberapa studi kasus di beberapa perusahaan besar IT dunia, bahwa semakin
lambat satu kesalahan ditemukan, maka biaya perbaikannya akan meningkat pesat secara exponensial
seperti digambar berikut.

CostSoftwareError

Menentukan kapan pengujian perangkat lunak harus dihentikan lebih sulit lagi, karena tidak ada
seseorang pun yang dapat mengatakan bahwa perangkat lunaknya telah teruji 100%. Akan tetapi ada
beberapa kondisi atau keadaan dimana bisa dipertimbangkan bahwa pengujian suatu perangkat lunak
bisa dihentikan. Pertama, bila tengat waktu pengujian telah ditentukan dan telah sampai waktu
tengatnya. Kedua, bila eksekusi dengan skenario hasil yang ditetapkan telah selesai. Ketiga, bila fungsi
yang harus ada dan tingkat pengkodean telah mencapai batas tertentu. Keempat, bila tingkat kesalahan
(bug rate) turun pada level yang bisa ditolerir dan tidak ada kesalahan fatal yang terindentifikasi. Dan,
terakhir apabila ada keputusan dari pihak manajemen.

Pengujian Perangkat Lunak (Software Testing) Vs Pembetulan Perangkat Lunak (Software Debugging)

Pengujian perangkat lunak bukanlah pembetulan perangkat lunak dan dilakukan oleh dua peran (role)
yang berbeda, walau dalam keseharian peran ini bisa dilakukan oleh orang yang sama. Pengujian
perangkat lunak yang dilakukan oleh seorang penguji (tester) melibatkan identifikasi kesalahan
(error/bug/defect) tanpa terlibat dalam perbaikan. Sedangkan pembetulan perangkat lunak yang
dilakukan oleh seorang pemogram (developer) adalah aktivitas mengindentifikasi kesalahan,
mengisolirnya dan memperbaiki kesalahan yang ditemukan.

Jadi boleh dikatakan seorang penguji melakukan validasi (validation) terhadap perangkat lunak yang
dibangun oleh seorang atau kumpulan pemogram termasuk menguji kesesuaian fungsi-fungsi dengan
keperluan/tuntutan (requirement) yang telah didefinisikan. Pertanyaan-pertanyaan yang mungkin
muncul dalam proses validasi ini, misalnya:

Apakah pemogram telah membangun perangkat lunak yang benar?

Apakah fungsi-fungsi yang didefinisikan bisa bekerja dengan benar?

Proses validasi ini dilakukan dengan anggapan bahwa pemogram telah melakukan proses verifikasi
(verification) sebelum dan selama proses pembangunan perangkat lunak untuk mencapai objektif
pembangunan sebuah perangkat lunak. Pertanyaan-pertanyaan yang mungkin muncul dalam proses
verifikasi ini, misalnya:

Apakah perangkat lunak dibangun dengan benar?

Apakah perangkat lunak berfungsi secara benar?

Dalam proses validasi dan verifikasi ini ada beberapa terminologi yang biasa dijumpai:

Error: Keadaan atau kondisi yang diharapkan berbeda dengan apa yang didapati

Fault: Keadaan dimana perangkat lunak gagal melakukan apa yang diharapkan
Failure: Keadaan dimana perangkat gagal melakukan fungsi-fungsi tertentu

Pengujian Perangkat Lunak Vs Jaminan Mutu (Qualitiy Assurrance) dan Pengawasan Mutu (Quality
Control)

Dikarenakan pengujian perangkat lunak juga berkenaan dengan mutu, maka beberapa terminologi yang
berkenaan dengan mutu sering juga disinggung dalam pembahasan pengujian perangkat lunak. Aktivitas
dalam jaminan mutu adalah untuk memastikan bahwa proses, prosedur dan standar yang digunakan
dalam proses verifikasi dilakukan sesuai untuk perangkat lunak yang dibangun dan keperluan yang
diinginkan. Sedangkan aktivitas pengawasan mutu adalah untuk memastikan bahwa perangkat lunak
yang dibangun sesuai dengan keperluan yang sudah didokumentasikan (documented requirements).
Jadi kedua aktivitas jaminan dan pengawasan mutu ini berbeda dengan aktivitas dalam pengujian
perangkat lunak yang dalam hal ini adalah untuk mengindentifikasi kesalahan.

Anda mungkin juga menyukai