Pengujian merupakan proses mengoperasikan program komputer pada kondisi tertentu mengamati atau mencatat hasilnya dengan membuat evaluasi terhadap aspek-aspek dari program dan komponen program tersebut
1. Prinsip Pengujian. a) Semua pengujian harus dapat ditelusuri sampai ke persyaratan pelanggan. b) Pengujian harus direncanakan lama sebelum pengujian itu dimulai perencanaan pengujian dapat dimulai segera setelah modal persyaratan dilengkapi. c) Prinsip pareto berlaku untuk pengujian perangkat lunak. d) pengujian harus mulai dari yang kecil dan berkembang ke pengujian yang besar. e) Pengujian yang mendalam tidak mungkin dilakukan. f) unsur menjadi paling efektif, pengujian harus dilakukan oleh pihak ketiga yang independen.
2. Pengujian (Testabilitas). Berikut checklist yang memberikan serangkaian karakteristik yang membawa kepada perangkat lunak yang dapat diuji.
a)Operabitas ( semakin baik ia bekerja,semakin efisien ia dapat diuji). b) Observabilitas (apa yang anda lihat adalah apa yang anda uji). c) Kontrolabilitas (semakin baik kita dapat mengontrol perangkat lunak semakin banyak pengujian yang dapat diotomatisasi dan dioptimalkan). d) Dekomposibilitas (dengan mengontrol ruang lingkup pengujian, kita dapat dengan lebih cepat mengisolasi masalah dan melakukan pengujian kembali secara lebih halus). e) Kesederhanaan (semakin sedikit yang diuji, semakin cepat kita dapat mengujinya). f) Stabilitas (semakin sedikit perubahan, semakin sedikit gangguan dalam pengujian). g) Kemampuan untuk dapat dipahami (semakin banyak informasi yang kita miliki, semakin halus pengujian yang akan dilakukan).
3. Tujuan a) Menilai Apakah sistem yang dikembangkan telah sesuai dan memenuhi kebutuhan yang sudah ditetapkan. b) Menemukan kesalahan pada sistem yang tidak terlihat sebelumnya. c) Menilai Apakah sistem sudah beroperasi dengan benar
4. Prosedur Testing. Terdapat dua jenis teknik yang biasa digunakan untuk menguji program atau aplikasi yaitu: a. Black Box Testing Black box testing merupakan pendekatan komplementer dan teknik white box karena pengujian black box diharapkan mampu mengungkap kelas kesalahan yang lebih luas dibandingkan teknik white box. Pengujian ini terfokus pada persyaratan fungsional perangkat lunak untuk mendapatkan serangkaian kondisi input yang sesuai dengan persyaratan fungsional suatu program. Metode dalam black box testing terdiri dari tiga cara yaitu: 1. Pengujian graph based. 2. Equivalence partitioning (partisi ekulvalensi). 3. Boundary value analysis (analisis nilai batas). b. White Box Testing White box testing adalah pengujian yang didasarkan pada pengecekan terhadap detail perancangan, menggunakan struktur kontrol dari desain program secara prosedural untuk membagi pengujian ke dalam beberapa kasus pengujian.