Anda di halaman 1dari 5

PENGUJIAN (TESTING)

Pengujian (testing) adalah tindakan untuk memeriksa/membuktikan bahwa kualitas


software telah terpenuhi, dan pengimplementasian software telah benar sesuai dengan
syarat/kebutuhan (O’Regan, 2011). Ada beberapa tipe pengujian (testing), yaitu pengujian unit
(unit testing), pengujian integrasi (integration testing), pengujian sistem (system testing),
pengujian daya guna (performance testing), dan pengujian penerimaan pengguna (user
acceptance testing).
Tujuan akhir dari pengujian (testing) adalah untuk memastikan bahwa sistem
bekerja/berjalan sesuai dengan perencanaan, dan secara umum untuk memastikan agar dapat
memenuhi kebutuhan pengguna (Davis & Yen, 1998). Lebih khusus, pengujian (testing) adalah
proses mencoba meletakkan sistem dan beserta komponen pendukungnya, mengamati, dan
memperbaiki kesalahan atau cacat yang timbul.
Pengujian perangkat lunak (software testing) berperan dalam memastikan bahwa produk
perangkat lunak telah berkualitas tinggi dan sesuai dengan kualitas yang diharapan oleh
pelanggan (O’Regan, 2011).

1.1 Tujuan Pengujian


Pengujian merupakan bagian yang bersifat integral dalam pengembangan perangkat
lunak, dan lebih dari 50% waktu pengembangan dihabiskan untuk pengujian (Simarmata,
2010). Adapun tujuan dari pengujian adalah:
a. Untuk meningkatkan kualitas
Software berkualitas adalah software yang tidak memiliki cacat, dan sesuai dengan
kebutuhan. Bug dapat menyebabkan kerugian yang besar, menghancurkan, dan
menyebabkan masalah. Debugging sering dilakukan untuk mengetahui perancangan
yang cacat dari pemrograman. Menemukan masalah dan memperbaikinya adalah
tujuan dari debugging di dalam tahapan pemrograman.
b. Untuk verifikasi dan validasi
Pengujian software juga bertujuan untuk memvalidasi dan memverifikasi software
(perangkat lunak), yaitu apakah software yang dikembangkan telah memenuhi
persyaratan bisnis dan teknis (sesuai dengan desain dan pengembangan yang
direncanakan), apakah sudah bekerja seperti yang diharapkan, dan dapat
diimplementasikan dengan karakteristik yang sama.
c. Untuk keandalan estimasi
Pengujian dapat digunakan untuk memperoleh data statistik yang dapat digunakan
untuk mengetahui kegagalan, atau estimasi keandalan perangkat lunak. Keandalan
perangkat lunak merupakan hal yang penting karena memiliki hubungan dengan
berbagai aspek dari perangkat lunak, termasuk struktur.

1.2 Jenis Pengujian


1.2.1 Pengujian Black Box
Pengujian black box mencakup beberapa pengujian (Simarmata, 2010), yaitu:
a. Pengujian fungsionalitas (functional testing)
Pengujian fungsional dilakukan untuk menguji persyaratan fungsional, yaitu
dilakukan dalam bentuk tertulis untuk memeriksa apakah aplikasi berjalan seperti
yang diharapkan. Pengujian fungsional meliputi seberapa baik system melaksanakan
fungsinya, termasuk perintah-perintah pengguna, manipulasi data, pencarian dan
proses bisnis, pengguna layar, dan integrasi.
b. Pengujian tegangan (stress testing)
Pengujian tegangan ditujukan untuk menguji kualitas aplikasi dalam lingkungannya.
Pengujiannya dilakukan dengan menjalankan aplikasi dengan menuntut untuk
melakukan melebihi beban normal. Ini adalah pengujian yang cukup sulit, cukup
komplek, dan memerlukan upaya bersama dari semua tim.
c. Pengujian beban (load testing)
Pengujian ini dilakukan dengan memberikan beban berat, seperti pada pengujian situs
web, dengan tujuan untuk mengetahui apakah kinerja aplikasi akan mengalami
penurunan atau tidak.

d. Pengujian khusus (ad-hoc testing)


Pengujian ini dilakukan tanpa membuat rencana pengujian (test plan) atau kasus
pengujian (test case). Pengujian ini dilakukan untuk membantu penguji mempelajari
aplikasi sebelum melakukan pengujian dengan metode pengujian lain. Pengujian ini
kadang dilakukan untuk membantu dalam mempelajari aplikasi jika dokumentasi sulit
dimengerti.
e. Pengujian penyelidikan (exploratory testing)
Pengujian penyelidikan mirip dengan pengujian khusu dan dilakukan untuk
mempelajari aplikasi. Pengujian ini merupakan pendekatan yang menyenangkan
untuk pengujian.
f. Pengujian usabilitas (usability testing)
Pengujian ini disebut juga sebagai pengujian untuk keakraban pengguna (testing for
user-friendliness). Pengujian ini dilakukan jika antarmuka pengguna dari aplikasi
dianggap penting dan harus spesifik untuk jenis pengguna tertentu. Pengujian ini
ditujukan untuk menghilangkan kesulitan pengguna dalam menggunakan aplikasi.
g. “Pengujian asap” (smoke testing)
Pengujian ini disebut juga pengujian kenormalan (sanity testing). Pengujian ini
dilakukan untuk memeriksa apakah aplikasi telah siap untuk dilakukan pengujian
yang lebih besar dan bekerja sampai tingkat yang diharapkan.
h. Pengujian pemulihan (recovery testing)
Pengujian pemulihan (recovery testing) pada dasarnya dilakukan untuk memeriksa
seberapa cepat dan baiknya aplikasi bias dipulihkan terhadap semua jenis crash atau
kegagalan hardware, masalah bencana, dan lain-lain. Jenis atau taraf pemulihan
ditetapkan dalam persyaratan spesifikasi.
i. Pengujian volume (volume testing)
Pengujian volume dilakukan terhadap efisiensi dari aplikasi. Jumlah data yang besar
diproses melalui aplikasi (yang sedang diuji) untuk memeriksa keterbatasan ekstrem
dari aplikasi. Pengujian volume ditujukan untuk memastikan batas-batas fisik dan
logis untuk kapasitas sistem, dan memastikan apakah batasan dapat diterima untuk
memenuhi proyeksi kapasitas dari pengolahan bisnis organisasi.
j. Pengujian domain (domain testing)
Pengujian domain merupakan pengujian yang paling sering dijelaskan dalam teknik
pengujian. Pengujian dilakukan dengan mengambil ruang pengujian dari variabel
individu dan membaginya dalam subset (dalam beberapa cara) yang sama, kemudian
menguji perwakilan dari masing-masing subset.
k. Pengujian skenario (scenario testing)
Pengujian skenario merupakan definisi dari serangkaian kasus uji atau skrip tes dan
urutan di mana mereka dieksekusi. Pengujian skenario merupakan pengujian yang
realistis, kredibel, dan memotivasi stakeholder, tantangan untuk program dan
mempermudah penguji untuk melakukan evaluasi.
l. Pengujian regresi (regression testing)
Pengujian regresi adalah gaya pengujian yang berfokus pada pengujian ulang
(retesting) setelah ada perubahan. Pada pengujian regresi berorientasi risiko (risk-
oriented regression testing), daerah yang sama yang sudah diuji, akan kita uji lagi
dengan pengujian yang berbeda (semakin kompleks).
m. Penerimaan pengguna (user acceptance)
Pada jenis pengujian ini, perangkat lunak akan diserahkan kepada pengguna untuk
mengetahui apakah perangkat lunak memenuhi harapan pengguna dan bekerja seperti
yang diharapkan.
n. Pengujian alfa (alpha testing)
Pada jenis pengujian ini, pengguna akan diundang ke pusat pengembangan. Pengguna
akan menggunakan aplikasi dan pengembang mencatat setiap masukan atau tindakan
yang dilakukan oleh pengguna.
o. Pengujian beta (beta testing)
Pada jenis pengujian ini, perangkat lunak didistribusikan sebagai sebuah versi beta
dengan pengguna yang menguji aplikasi di situs mereka. Pengecualian/cacat yang
terjadi akan dilaporkan kepada pengembang.

1.2.2 Pengujian White Box


Sedangkan pengujian white box mencakup beberapa pengujian (Simarmata, 2010), antara
lain:
a. Pengujian unit (unit testing)
Pengujian unit bertujuan untuk memeriksa apakah modul tertentu atau kode unit
bekerja dengan baik. Pengujian unit berada pada tingkat yang sangat dasar seperti
ketika unit dikembangkan atau fungsi tertentu dibangun. Pengujian unit berkaitan
dengan unit secara keseluruhan, hal ini akan menguji interaksi antara berbagai fungsi,
tetapi membatasi pengujian dalam satu unit. Lingkup yang tepat dari unit ditinggalkan
kepada interpretasi, pendukung kode pengujian, kadang-kadang disebut perancah
(scaffolding), mungkin diperlukan untuk mendukung setiap pengujian. Pengujian ini
digerakkan oleh tim arsitektur dan implementator.
b. Analisis statis dan dinamis (static and dynamic analysis)
Analisis statis dilibatkan melalui kode untuk mengetahui segala kemungkinan cacat
dalam kode, sedangkan analisis dinamis akan melibatkan pelaksanaan kode dan
penganalisisan hasilnya.
c. Cakupan pernyataan (statement coverage)
Pengujian pernyataan dilakukan dengan menjalankan minimal sekali untuk setiap
pernyataan dalam aplikasi. Pengujian ini untuk memastikan bahwa setiap pernyataan
tidak memiliki efek samping yang belum diprediksi.
d. Cakupan cabang (branch coverage)
Pengujian cakupan cabang ditujukan untuk membantu memvalidasi setiap
percabangan, dan memastikan bahwa tidak ada cabang yang mengarah ke perilaku
abnormal dari aplikasi.
e. Pengujian mutasi (mutation testing)
Pengujian ini dilakukan untuk menguji kode yang telah dimodifikasi setelah
memperbaiki bug (cacat) tertentu. Hal ini juga membantu dalam menemukan mana
kode dan strategi pengkodean yang dapat membantu dalam mengembangkan fungsi
tersebut secara efektif.

Anda mungkin juga menyukai