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.
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.
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.
Saat ini metode pengujian perangkat lunak sudah banyak berkembang seiring semakin beragamnya
platform dan tujuan perangkat lunak. Metode-metode pengujian tersebut memberikan pendekatan
yang sistematik dalam menguji perangkat lunak. Di samping itu, metode-metode tersebut bisa
memberikan mekanisme yang bisa membantu dalam memastikan kelengkapan pengujian dan
memberikan kemungkinan tertinggi dalam menguak kesalahan pada perangkat lunak.
Program rekayasa perangkat lunak dapat diuji dengan satu atau dua cara, yaitu :
1. Dengan mengetahui fungsi yang ditentukan untuk dilakukan oleh suatu produk RPL,
pengujian bisa dilakukan untuk memperlihatkan bahwa masing-masing fungsi berjalan
sepenuhnya dan pada waktu yang sama mencari kesalahan pada setiap fungsi. Pendekatan
pengujian ini biasa disebut dengan sebutan pengujian black-box atau black-box testing.
2. Dengan mengetahui kerja internal produk RPL, maka pengujian bisa dilakukan dalam
memastikan bahwa semua operasi internal bekerja sesuai dengan spesifikasi dan segala
komponen interna telah diamati dengan memadai. Pendekatan pengujian ini biasa disebut
dengan sebutan pengujian white-box atau white-box testing.
Pengujian Black-box
Pengujian black-box adalah pengujian berkaitan dengan pengujian yang dilakukan pada interface
perangkat lunak. Walaupun dirancang untuk menguak kesalahan, pengujian black-box digunakan
untuk memperlihatkan bahwa fungsi-fungsi yang ada pada perangkat lunak bisa beroperasi, bahwa
inputan diterima dengan baik dan output dihasilkan secara tepat, serta integritas informasi eksternal
dipelihara dengan baik. Black-box testing menguji beberapa aspek dasar sebuah sistem dengan
memperhatikan sedikit struktur logika internal pada perangkat lunak.
Pengujian White-box
Pengujian white-box adalah pengujian yang didasari pada pengamatan yang teliti mengenai detail
prosedural. Jalur-jaur logika yang melewati perangkat lunak diuji dengan memberikan kasus uji atau
skenario pengujian yang menguji serangkaian kondisi atau perulangan (loop) tertentu. Status
program bisa diuji pada berbagai titik untuk menentukan apakah status yang diharapkan dengan
status sebenarnya.
Dari paparan mengenai pengujian black-box dan white-box di atas sebelumnya, sekilas dapat
disimpulkan bahwa pengujian white-box yang sangat teliti akan dapat membawa perangkat lunak
kepada program yang benar 100%. Yang diperlukan adlaah menentukan semua jalur logika,
mengembangkan kasus uji untuk mengujinya dan mengevaluasi hasilnya, yakni memunculkan kasus
uji untuk menguji logika program secara lebih mendalam. Akan tetapi sesuai dengan prinsip
pengujian, pengujian secara mendalam akan menimbulkan masalah sumber daya atau logistik.
Bahkan bagi program dalam skala kecil, logika dapat dibangkitkan dengan jumlah jalur logika yang
besar.
Pengujjian white-box tidak boleh dianggap tidak praktis. Sejumlah jalur logika yang penting dapat
dipiih dan digunakan. Struktur-struktur data yang penting dapat diperiksa kevalidalitasnya. Atribut
pengujian black-box dan white-box bisa digabungkan secara bersamaan dalam memberikan
penekatan yang memvalidasi antarmuka dan secara selektif menjamin bahwa proses internal
perangkat lunak sudah benar.
Black-box Testing
Pengujian ini berfokus pada persyaratan fungsional perangkat lunak. Black-box memungkinkan
pelaku RPL memperoleh serangkaian kondisi input yang memenuhi syarat fungsional suatu
perangkat lunak.
Black-box testing akan berusaha dalam menemukan kesalahan dengan kategori sebagai berikut ini :
Fungsi-fungsi yang rusak atau salah
Kesalahan antarmuka perangkat lunak
Kesalahan kinerja
Kesalahan inisialisasi ataupun terminasi
Kesalahan struktur data atau akses basis data
Pengujian black-box lebih cenderung untuk dilakukan pada tahap akhir dan dituntut untuk
menjawab pertanyaan-pertanyaan seperti berikut :
Apakah sistem sangat sensitif terhadap nilai input tertentu?
Bagaimana validitas fungsional diuji
Apa pengaruh kombinasi tertentu dari data terhadap operasi sistem?
Berapa kecepatan dan volume data yang dapat ditangani sistem?
Bagaimana batasan suatu data diisolasi?
Melalui pengujian black-box ini, penguji musti merancang serangkaian kasus uji atau skenario
pengujian yang dapat memberitahu mengani ada atau tidaknya kesalahan dan dapat mengurangi
jumlah kasus uji atau skenario uji yang harus dirancang untuk mencapai pengujian yang benar.
Source : testbytes.net
Source : testbytes.net
Equivalence Partitioning
Teknik pengujian black-box ini banyak digunakan untuk menulis kasus uji. Ini dapat berguna dalam
mengurangi serangkaian input yang mungkin menjadi input yang lebih kecil namun efektif. Ini
dilakukan melalui pembagian input sebagai kelas, dan setiap kelas diberi nilai. Ini diterapkan ketika
kebutuhan untuk pengujian lengkap muncul dan untuk menolak redundansi input.
Source : testbytes.net
White-box Testing
White-box testing adalah metode desain kasus uji yang menggunakan struktur kontrol desain
prosedural untuk memperoleh kasus uji. Dengan menggunakan metode pengujian white box, pelaku
RPL dapat melakukan kasus uji yang merujuk pada :
Memberikan jaminan bahwa seluruh jalur independen pada suatu modul telah digunakan
paling tidak satu kali.
Menggunakan struktur data internal untuk menjamin validitasnya.
Mengeksekusi semua loop pada batasan dan pada batas operasionalnya.
Menggunakan semua keputusan logis pada sisi true dan false.
Sifat cacat internal pada perangkat lunak sangat mungkin ditemukan dengan menggunakan
pengujian white-box sedangkan black-box tidak mungkin dapat menemukannya. Alasan inilah yang
mendasari mengapa pengujian white-box dilakukan.
Condition Testing
Definisinya yaitu suatu metode disain test case yang memeriksa kondisi logika yang terdapat pada
modul program.
Source : stackexchange.com
Loop Testing
Loop testing adalah suatu teknik white box testing yang berfokus pada validitas konstruksi loop
(kejadian berulang) secara eksklusif.