BAB II TINJAUAN PUSTAKA
2.3. Pengujian Perangkat Lunak
Pada dasarnya pengujian suatu perangkat lunak harus dilakukan
untuk mengetahui mutu dan kualitas suatu perangkat lunak tersebut saat
sebelum ataupun sesudah digunakan oleh user. Pengujian dimaksudkan
untuk mengetahui sejauh mana tingkat keberhasilan produk (perangkat
lunak) dihasilkan, apakah terdapat kesalahan atau tidak pada input-output
perangkat lunak dan lain sebagainya. Berkaitan tentang penjelasan di atas
terlebih dahulu akan diuraikan penjabaran tentang suatu pengujian
2.3.1. Definisi Pengujian Perangkat Lunak
Pengujian perangkat lunak adalah elemen kritis dari jaminan
kualitas perangkat lunak dan merepresentasikan kajian pokok dari
spesifikasi, desain dan pengkodean (Pressman, 2005). Menurut Setiawan
(2011) definisi pengujian perangkat lunak adalah proses untuk mencari
kesalahan pada setiap item perangkat lunak, mencatat hasilnya,
mengevaluasi setiap aspek pada setiap komponen sistem dan mengevaluasi
semua fasilitas dari perangkat lunak yang dikembangkan. Pada intinya
proses pengujian bersifat untuk menemukan kerusakan (defect) yang
terdapat di dalam suatu perangkat lunak agar dapat ditindak lanjuti
menjadi lebih baik.
2.3.2. Sasaran Pengujian
Beberapa aturan yang dapat digunakan sebagai langkah pendukung
dalam pengujian perangkat lunak adalah sebagai berikut (Myers, 2010) :
1. Pengujian adalah proses menjalankan suatu program dengan maksud
menemukan kesalahan.
2. Test case yang baik adalah test case yang memiliki kemungkinan
tinggi untuk menemukan kesalahan yang belum pernah ditemukan
sebelumnya.
3. Pengujian yang sukses adalah pengujian yang mengungkap semua
kesalahan yg belum pernah ditemukan sebelumnya.
Perry (1995) menyimpulkan bahwa suatu pengujian yang baik
tetapi juga untuk dapat menemukan data uji yang dapat menemukan
kesalahan secara lebih teliti
2.3.3. Verifikasi dan Validasi
Pengujian perangkat lunak adalah satu elemen dari topik yang lebih
luas yang sering diacu sebagai verifikasi dan validasi (V&V). Memahami
hal tersebut Pressman (2005) menjabarkan bahwa :
1. Verifikasi mengacu pada suatu rangkaian aktivitas yang memastikan
bahwa perangkat lunak secara tepat mengimplementasikan suatu
fungsi tertentu.
2. Validasi mengacu pada serangkaian aktivitas yang berbeda yang
memastikan bahwa perangkat lunak yang dibangun dapat ditelusuri ke
persyaratan user.
Definisi dari verifikasi dan validasi meliputi berbagai aktivitas yang
kita rujuk sebagai jaminan kualitas perangkat lunak (SQA). Berikut
merupakan serangkaian komponen untuk mencapai suatu kualitas
(Pressman, 2005).
Software Quality Assurance (SQA) dimulai dengan sekumpulan
alat dan metode teknis yang membantu analis untuk mendapatkan
spesifikasi yang berkualitas tinggi dan bagi perancang untuk merancang
dengan kualitas tinggi pula. Setelah spesifikasi dan desain dibuat,
ditetapkan kualitasnya dengan melakukan review teknis formal. Pengujian
perangkat lunak mengkombinasikan langkah-langkah strategi dengan
metode rancangan test-case yang dapat menjamin pendeteksian kesalahan
secara efektif. Jika terdapat standar yang formal, berarti harus dapat
dijamin bahwa standar tersebut diikuti. Pengontrolan perubahan dilakukan
selama pembuatan perangkat lunak dan pada tahap pemeliharaan. Setiap
perubahan dapat menyebabkan kesalahan dan efek lain yang akan
menyebabkan kesalahan juga. Pengukuran terhadap perangkat lunak
mencakup pengukuran secara manajemen dan teknis. Penyimpanan hasil
dari review, audit, pengontrolan perubahan, pengujian dan lain-lain
sebagai bagian dari record historis untuk suatu proyek dan
didesiminasikan kepada para staf pengembang sebagai dasar untuk ketahui
dan ditindaklanjuti.
Miller (1981) menghubungkan pengujian perangkat lunak dengan
jaminan kualitas menyatakan bahwa motivasi yang mendasari pengujian
program adalah untuk menentukan kualitas perangkat lunak dengan
metode-metode yang dapat secara ekonomis dan efektif diaplikasikan pada
Pada umumnya proses verifikasi dan validasi mempunyai 2 (dua)
sasaran utama (Perry, 1995) yaitu :
1. Menemukan kekurangan dalam sebuah sistem.
2. Memperkirakan apakah sistem berguna dan dapat digunakan atau
tidak dalam situasi operasional.
3. Verifikasi dan validasi harus memberikan kepastian bahwa software
sesuai dengan tujuannya.
Verifikasi memiliki 2 (dua) kegiatan yang dapat dilakukan dalam
pengujian perangkat lunak (Perry, 1995) yaitu :
1. Verifikasi Statik, yaitu berhubungan dengan analisis representasi
sistematik untuk menemukan masalah, biasa disebut Software
inspection.
2. Verifikasi Dinamis, yaitu berhubungan dengan pelaksanaan dan
memperhatikan perilaku produk, biasa disebut Software testing.
2.3.4. Strategi Pengujian
Strategi pengujian perlu dilakukan untuk merancang suatu
tahapan-tahapan dalam perencanaan pengujian yang akan dilakukan. Proses ini
juga dimaksudkan untuk memperhitungkan estimasi waktu, upaya dan
sumber daya yang diperlukan sehingga perencanaan dapat dilakukan
dengan baik.
Strategi pengujian perangkat lunak dapat digambarkan sebagai proses
Gambar 2.2. Strategi Pengujian
Konteks spiral di atas dapat dijabarkan sebagai berikut :
a. Tes unit dilakukan pada saat diimplementasikannya sebuah perangkat
lunak di dalam kode sumber.
b. Tes integrasi fokusnya terletak pada desain dan konstruksi arsitektur
perangkat lunak.
c. Tes validasi dilakukan sebagai persyaratan dibangunnya perangkat
lunak dan kemudian dianalisis validasinya terhadap perangkat lunak
yang telah dikonstuksi.
d. Tes sistem dilakukan terhadap perangkat lunak dan elemen sistem
yang lain diuji secara keseluruhan.
Dalam pengujian suatu perangkat lunak, proses berjalan sepanjang
streamline yang memperluas ruang lingkup pengujian lewat
masing-masing urutan proses.
2.3.5. Testabilitas
Menurut James Bach (1994), testabilitas perangkat lunak secara
sederhana adalah seberapa mudah sebuah program komputer dapat diuji.
penguji untuk membuatnya menjadi mudah. Lakukan proses pendataan
mengenai masalah-masalah desain yang ada, fungsi-fungsi sebagai
input-output dan lain sebagainya untuk membantu dalam proses pengujian.
Beberapa karakteristik suatu perangkat lunak yang dapat diuji (James
Bach, 1994) yaitu :
1. Operabilitas, semakin baik perangkat lunak bekerja, akan membuat
perangkat lunak dites dengan lebih efisien.
2. Observabilitas, apa yang anda lihat adalah apa yang anda uji.
3. Kontrolabilitas, semakin baik kita dapat mengontrol perangkat lunak
semakin banyak pengujian yang dapat diotomatisasi dan dioptimalkan.
4. Dekomposabilitas, dengan mengontrol ruang lingkup pengujian kita
dapat lebih cepat mengisolasi masalah dan melakukan pengujian ulang
yang lebih baik.
5. Kesederhanaan, semakin sedikit yang diuji semakin cepat kita
melakukannya.
6. Stabilitas, semakin sedikit perubahan semakin sedikit gangguan
pengujian.
7. Kemampuan dipahami, semakin banyak informasi yang dimiliki,
kita akan dapat melakukan tes yang lebih baik.
Menurut Falk, dkk (2003) atribut-atribut dari pengujian yang baik
adalah sebagai berikut :
1. Pengujian yang baik memiliki probabilitas yang tinggi untuk
2. Pengujian yang baik tidak redundan.
3. Pengujian yang baik tidak boleh terlalu sederhana atau terlalu
kompleks.
2.3.6. Tujuan Pengujian
Penentuan tujuan dari suatu pengujian perlu dilakukan untuk
menentukan sasaran apa yang ingin dicapai dari suatu proses pengujian
tersebut. Beberapa tujuan dilakukannya pengujian suatu perangkat lunak
adalah sebagai berikut (Perry, 1995) :
1. Menilai apakah perangkat lunak yang dikembangkan telah memenuhi
kebutuhan pemakai.
2. Menilai apakah tahap pengembangan perangkat lunak telah sesuai
dengan metodologi yang digunakan.
3. Membuat dokumentasi hasil pengujian yang menginformasikan
kesesuaian perangkat lunak yang diuji dengan spesifikasi yang telah
ditentukan.
Setelah mengetahui tujuan yang akan dicapai dari pengujian suatu
perangkat lunak, maka dapat dijabarkan hal-hal yang perlu dilakukan saat
pengujian yaitu (Perry, 1995) :
1. Mengidentifikasi dan menemukan beberapa kesalahan yang mungkin
ada dalam perangkat lunak yang diuji.
2. Setelah perangkat lunak diperbaiki, identifikasi ulang kesalahan dan
3. Membentuk tes yang efisien dan efektif dengan anggaran dan jadwal
terbatas.
4. Mengumpulkan daftar kesalahan untuk digunakan dalam daftar
pencegahan kesalahan (tindakan corrective dan preventive).