Anda di halaman 1dari 8

STRATEGI DAN METODE PENGUJIAN 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 harus 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.
Gambar spiral diatas mengilustrasikan bagaimana rekayasa sistem membangun sebuah perangkat
lunak dimulai 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.

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.

METODE PENGUJIAN PERANGKAT LUNAK

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.

Teknik Pengujian Black-box


Contoh penguian black-box diantaranya adalah sebagai berikut :
Boundary Value Analysis
Merupakan teknik pengujian yang membagi domain-domain input dari suatu program ke dalam
keompok-kelompok data, kemudian melakukan pengujian hanya pada batas-batas domain input
tersebut.
Source : testbytes.net

Graph Based Testing Method


Teknik pengujian black-box ini melibatkan gambar grafik yang mengilustrasikan hubungan antara
penyebab (input) dan dampak (output), yang memicu terjadinya hasil. Pengujian ini menggunakan
kombinasi output dan input yang berbeda.

Source : testbytes.net

Decision Table Testing


Dalam beberapa kasus, kombinasi input menjadi sangat rumit untuk melacak beberapa
kemungkinan. Situasi rumit seperti ini bergantung pada tabel keputusan, karena menawarkan
penguji pandangan terorganisir tentang kombinasi input dan output yang diharapkan. Teknik ini
identik dengan teknik pengujian berbasis grafik; perbedaan utamanya adalah menggunakan tabel
alih-alih diagram atau grafik.

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

State Transition Testing


Teknik ini biasanya mempertimbangkan keadaan, keluaran, dan input dari suatu sistem selama
periode tertentu. Berdasarkan pada jenis perangkat lunak yang diuji, ia memeriksa perubahan
perilaku suatu sistem dalam keadaan tertentu atau keadaan lain sambil mempertahankan input yang
sama. State transitition testng teknik ini dibuat dengan memeriksa urutan transisi dan keadaan atau
kejadian di antara input.

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.

Teknik White-box Testing


Teknik pengujian white-box testing diantaranya adalah
Basis Path Testing
Metode ini memungkinkan perancang kasus uji untuk mengukur kompleksitas logis dari rancangan
prosedural dan menggunakannya sebagai pedoman untuk menetapkan sekumpulan jalur eksekusi
dasar (basis set). Kasus uji yang dilakukan untuk menggunakan basis set tersebut dijamin untuk
menggunakan setiap statement dalam program paling tidak sekali selama pengujian. Metode ini
menggunakan notasi flow graph yang menggambarkan aliran kontrol logika yang menggunakan
notasi yang ditunjukkan pada gambar di bawah ini:

Condition Testing
Definisinya yaitu suatu metode disain test case yang memeriksa kondisi logika yang terdapat pada
modul program.

Source : stackexchange.com

Data Flow Testing


Data Flow Testing adalah strategi spesifik pengujian perangkat lunak yang berfokus pada variabel
data dan nilainya. Itu menggunakan grafik aliran kontrol. Ketika datang ke kategorisasi, pengujian
aliran data akan dapat dianggap sebagai jenis pengujian kotak putih dan jenis pengujian struktural.
Itu membuat cek di titik penerimaan data oleh variabel dan titik penggunaannya. Hal ini dilakukan
untuk menutup jalur pengujian dan celah pengujian cabang.

Data flow testing (semanticscholar.org)

Loop Testing
Loop testing adalah suatu teknik white box testing yang berfokus pada validitas konstruksi loop
(kejadian berulang) secara eksklusif.

Anda mungkin juga menyukai