Pengujian bertujuan untuk mencari kesalahan. Pengujian yang baik adalah pengujian yang memiliki kemungkinan besar dalam menemukan kesalahan, karena itu anda harus merancang dan mengimplementasikan sistem berbasis komputer atau produk dengan “kemampuan yang diuji” dalam benak anda. Pada saat yang sama, tes itu harus menunjukan serangkaian karakteristik yang bertujuan untuk menemukan sebanyak mungkin kesalahan dengan usaha sekecil mungkin.
Kemampuan untuk dapat diuji (testability). James Bach mendefinisikan testability sebagai berikut: “kemampuan perangkat lunak untuk dapat diuji adalah seberapa mudahkah sebuah program komputer untuk bisa diuji.” Karakteristik-karakteristik berikut ini menjelaskan tentang kemampuan sebuah perangkat lunak untuk bisa diuji.
- Kemampuan untuk bisa dioperasikan (operability). Jika sebuah sistem dirancang dan diimplemetasikan dengan kualitas dalam benak anda, relative sedikit kesalahan yang akan menghambat pelaksanaan penguji, yang memungkinkan pengujian berlanjut tanpa penyesuaian dan mulai dari awal.
- Kemampuan untuk bisa diobservasi (observability). Masukan (input) tersedia sebagai bagian dari pengujian yang menghasilkan keluaran (output) berbeda. Bagian dan variabel sistem terliahat atau dapat dipertanyakan selama eksekusi Keluaran yang salah bisa dengan mudah diidentifikasi.
- Kemampuan untuk dapat dikontrol (controllability). Semua keluaran yang mungkin dapat dihasilkan melalui beberapa kombinasi dari masukan, dan format I/O konsisten dan terstrukur. State dan variabel dari perangkat lunak dan perangkat keras dapat dikontrol langsung oleh penguji.
- Kemampuan untuk dapat disusun(decomposability). Sistem perangkat lunak dibangun dari modul independen yang dapat diuji secara independen pula.
- Kesederhanaan (Simplicity). Program ini harus menunjukan kesederhanaan fungsionalitas, kesederhanaan structural, kesederhanaan kode.
- Stabilitas (Stability). Perubahan pada perangkat lunak jarang dikontrol ketika perubahan itu terjadi dan tidak membatalkan pengujian-pengujian yang telah ada. Perangkat lunak ini pulih melalui kegagalan.
- Kemampuan untuk bisa dipahami (understandability). Perancangan arsitektur dan ketergantungan antara komponen-komponen internal, eksternal, dan yang dipakai bersama dipahami dengan baik. Dokumentasi teknis dapat langsung diakses, terorganisasi dengan baik, spesifik dan terperinci, dan akurat. Perubahan rancangan perlu dikomunikasikan dengan penguji.
Karakteristik Pengujian Menurut Kaner, Falk, dan Nguyen [Kan93] menggambarkan atribut-atribut sebagai berikut untuk sebuah pengujian yang “baik” :
- Pengujian yang baik memiliki probabilitas tinggi untuk menemukan kesalahan. Untuk mencapai tujuan ini penguji harus memahami perangkat lunak dan mencoba untuk mengembangkan sebuah gambaran mental bagaimana perangkat lunak bisa gagal.
- Pengujian yang baik tidak berulang-ulang. Waktu dan sumber daya pengujian terbatas. Tidak ada gunanya melakukan pengujian yang memiliki tujuan yang sama dengan pengujian yang lain.
- Pengujian yang baik harus menjadi “bibit terbaik”. Dalam sebuah kelompok pengujian yang memiliki tujuan serupa, keterbatasan waktu dan sumber daya dapat mengurangi pelaksanaan bahkan hanya sebagian kecil dari pengujian ini.
- Pengujian yang baik harus tidak terlalu sederhana atau terlalu rumit. Meskipun terkadang sangat memungkinkan bagi kita untuk menggabungkan serangkaian pengujian menjadi satu kasus pengujian saja, efek samping yang biasanya terjadi adalah banyak kesalahan yang harus ditutupi. Secara umum, pengujian harus dilaksanakan secara terpisah. (Roger S.Pressman, Ph.D, 2012:2).
Pengujian Perangkat Lunak White Box
Disebut juga pengujian Kotak kaca (glass-box testing) merupakan sebuah filosofi perancangan test case yang menggunakan stuktur control yang dijelaskan sebagai bagian dari perancangan peringkat komponen untuk menghasilkan test case. Dengan menggunakan metode pengujian kotak putih, anda akan dapat memperoleh test case yang :
- Menjamin seluruh independent path didalam modul yang dikerjakan sekurang-kurangnya sekali.
- Mengerjakan seluruh keputusan logical.
- Mengerjakan seluruh loop yang sesuai dengan batasannya.
- Mengerjakan seluruh struktur data internal yang menjamin validitas.
1. Notasi Grafik alir
Menurut Roger S Pressman (2010 : 588), untuk menggambarkan penggunaan grafik alir pada beberapa symbol atau istila yang ada dalam notasi grafik alir, yaitu:
- Node, setiap lingkaran disebut node merupakan satu atau lebih pernyataan-pernyataan prosedural, urutan kotak-kotak proses dan berlian-berlian keputisan bisa dipetakan menjadi satu node.
- Edge atau link, setiap panah pada grafik alir disebut edge merupakan aliran kendali dan analog dengan panah diagram alir. Sebuah edge harus berhenti disebuah node, bahkan jika node tidak mewakili pernyataan-pernyataan prosedural.
- Region, Area yang dibatasi oleh edge dan node. Ketika memasukkan pula area diluar grafik sebagai region.
- Predicate node, yaitu setiap node yang berisi kondisi. Predicate node ditandai oleh dua atau lebih edge yang berasal dari node tersebut.
Diagram alir Roger S Pressman
Grafik alir Roger S Pressman
1. Jalur Program Independent
Jalur independent adalah setiap jalur yang melalui program yang memperkenalkan setidaknya satu kumpulan pernyataan-pernyataan pemrosesan atau kondisi baru. Kompleksitas siklomatik adalah metric perangkat lunak yang menyediakan ukuran kuantitatif dari kompleksitas logis suatu program. Kompleksitas siklomatik dilandaskan pada teori graph, dan menyediakan bagi anda metric perangkat lunak yang sangat berguna. Kompleksitas dihitung dalam salah satu dari tiga cara sebagai berikut:
a. Jumlah daerah-daerah grafik alir yang berhubungan dengan kompleksitas siklomatik.
b. Kompleksitas siklomatik V(G) untuk grafik alir G didefinisikan sebagai :
V(G) = E - N + 2
Dimana :
E = jumlah edge pada flowgraph
N = jumlah node pada flowgrap
c. Kompleksitas siklomatik V(G) untuk grafik aliran G juga didefinisikan sebagai:
V(G) = P + 1
Dimana :
P = jumlah predicate node pada flowgraph
2. Menghasilkan Test Case
Menurut Roger S Pressman (2010 : 592), beberapa langkah berikut dapat diterapkan untuk menurunkan basis set :
- Menggunakan perancangan atau kode sebagai sebuah dasar, contoh gambar grafik yang sesuai.
- Menentukan kompleksitas siklomatik dari aliran grafik yang dihasilkan.
- Menentukan sebuah basis set dari jalur independent linier.
Pengujian Perangkat Lunak Black Box
Menurut Roger S Pressman (2010 : 597), Pengujian black box disebut juga pengujian perilaku, berfokus pada persyaratan fungsional perangkat lunak. Artinya, teknik pengujian kotak hitam memungkinkan anda untuk membuat beberapa kumpulan kondisi masukan yang sepenuhnya akan mealkukan kebutuhan fuungsional untuk program. Pengujian kotak hitam berupaya untuk menemukan kesalahan dalam kategori sebagai berikut :
· Fungsi yang salah atau hilang
· Kesalahan antar muka
· Kesalahan dalam struktur data atau akses basis data eksternal
· Kesalahan perilaku atau kinerja
· Kesalahan inisialisasi dan penghentian
1. Metode pengujian berbasis grafik
Pengujian perangkat lunak dimulai dengan menciptakan sebuah grafik dari objek – objek penting dan hubungan mereka dan kemudian merumuskan serangkaian pengujian yang akan meliputi grafik sehingga setiap objek dan hubungan diuji dan kesalahan – kesalahan pun ditemukan. (Roger S Pressman, 2010:598).