Dokumen tersebut membahas tentang pengujian perangkat lunak, termasuk definisi, tujuan, strategi, dan jenis-jenis pengujian seperti pengujian unit, integrasi, validasi, sistem, dan blackbox testing. Secara khusus, dibahas pula prinsip-prinsip pengujian perangkat lunak dan contoh-contoh penerapannya.
2. Definisi
Pengujian perangkat lunak atau Software Testing adalah
aktivitas-aktivitas yang bertujuan untuk mengevaluasi atribut-
atribut atau kemampuan sebuah program atau sistem dan
menentukan apakah sesuai dengan hasil yang diharapkan.
3. Sofware Testing
Pengujian perangkat lunak dapat dinyatakan sebagai proses validasi
dan verifikasi bahwa sebuah program / aplikasi / produk:
1. Memenuhi kebutuhan (requirement) yang mendasari perancangan
dan pengembangan perangkat lunak tersebut;
2. Berjalan sesuai dengan yang diharapkan;
3. Dapat diterapkan menggunakan karakteristik yang sama;
4. Memenuhi kebutuhan semua pihak yang berkepentingan.
4. Pengujian Perangkat Lunak merupakan suatu tahapan penting dalam
pembangunan perangkat lunak.
Untuk itu pengujian dilakukan dengan cara mengevaluasi kofigurasi
perangkat lunak yang terdiri dari spesifikasi kebutuhan,deskripsi
perancangan dan program yang dihasilkan.
5. Hasil evaluasi kemudian dibandingkan dengan hasil uji yang
diharapkan.
Jika ditemukan kesalahan maka perbaikan perangkat lunak harus
dilakukan untuk kemudian diuji kembali.
6. Prinsip-prinsip testing
1.Testing yang komplit (dilakukan secara menyeluruh) tidak memungkinkan dilakukan
Kemungkinan jumlah kombinasi test case yang besar
Harus dilakukan test ulang, setiap ada perbaikan pada masing-masing bug
Pertimbangan domain masukan yang mungkin sangat besar
jumlahnya (masukan yang valid, tidak valid, masukan yang
diedit dll)
Kompleksitas user interface dan desain
Jalur program yang mungkin dapat dilewati sangat banyak
7. Prinsip-prinsip testing
2.Testing merupakan pekerjaan yang kreatif dan sulit
Mitos-mitos yang salah tentang testing
Faktanya
Testing itu mudah
Setiap oang dapat melakukan testing dengan sendirinya
Untuk dapat melakukan testing yang efektif harus mengetahui keseluruhan
sistem
Sistem sendiri tidak sederhana/mudah dipahami
8. Prinsip-prinsip testing
3.Testing berbasis pada resiko
Walaupun testing secara keseluruhan tidak dapat dilakukan, tidak berarti bahwa testing
yang efektif tidak dapat dilakukan, testing merupakan hasil pertimbangan dari resiko dan
ekonomi
Sumber daya dan biaya yang dibutuhkan untuk melakukan testing menurut skala prioritas,
kompleksitas dan kesulitan testing
Biaya dari keterlambatan pengiriman produk
Kemungkinan adanya suatu defect
Biaya yang disebabkan oleh defect bilamana defect tersebut menyebabkan error yang
membawa kerugian langsung maupun tak langsung bagi customer
Secara ringkas testing dipengaruhi oleh pertimbangan :
9. Prinsip-prinsip testing
4.Testing harus direncanakan
Untuk dapat menjaga arah pelaksanaan test agar tidak menyimpang dari tujuan tes itu
sendiri
Menjaga kesesuaian pengguna sumber daya dan jadual proyek dengan menetapkan
apa yang akan dites dan kapan berhenti
Membantu tester fokus terhadap apa yang
5.Testing butuh independensi
Testing yang paling efektif adalah yang dilakukan oleh pihak ketiga
10. Tujuan
Tujuan Langsung :
Untuk mengidentifikasi dan mengungkapkan kesalahan sebanyak mungkin dalam
perangkat lunak yang diuji.
Untuk membawa perangkat lunak ketahap pengujian, setelah memperbaiki kesalahan
yang diidentifikasi dan melakukan pengujian ulang.
Untuk melakukan tes yang diperlukan secara efisien dan efektif, dalam keterbatasan
anggaran dan penjadwalan.
Tujuan Tidak Langsung :
Untuk menyusun catatan kesalahan perangkat lunak untuk digunakan dalam pencegahan
kesalahan (dengan tindakan perbaikan dan pencegahan).
11. Strategi
Digunakan untuk mengintegrasikan metode-metode perancangan kasus pengujian
perangkat lunak menjadi suatu langkah-langkah terencana dengan tujuan mendapatkan
perangkat lunak yang sukses.
Setiap strategi pengujian perangkat lunak harus meliputi:
1. perencanaan pengujian,
2. perancangan kasus-kasus uji
3. eksekusi pengujian
4. pengumpulan data
5. serta evaluasi.
12. Pengujian unit program (Unit Testing)
Pengujian difokuskan pada unit terkecil dari suatu modul program.
Dilaksanakan dengan menggunakan driver dan stub. Driver
adalah suatu program utama yang berfungsi mengirim atau
menerima data kasus uji dan mencetak hasil dari modul yang diuji.
Stub adalah modul yang menggantikan modul sub-ordinat dari
modul yang diuji.
14. Pembahasan
Bagaimana cara mengetesnya?
Cara mudah yang dilakukan oleh pemula adalah dengan menggunakan kelas utama untuk
merunning program kemudian memeriksa hasilnya secara manual.
Contohnya seperti ini
15. Pembahasan
Kalau kode diatas dirunning maka hasilnya adalah
Kok hasilnya 0 semua?
Terlepas dari hasil kalkulator yang salah
Apakah kalian merasa ada yang salah dengan pengujian itu?
17. Pengujian integrasi (Integration Testing )
Pengujian terhadap unit-unit program yang saling berhubungan
(terintegrasi) dengan fokus pada masalah interfacing. Dapat
dilaksanakan secara top-down integration atau bottom-up
integration.
Pengujian Integrasi juga berfokus pada memeriksa komunikasi
data di antara modul-modul ini. Oleh karena itu juga disebut
sebagai ‘I & T’ (Integration and Testing), ‘String Testing‘ dan
kadang-kadang ‘Thread Testing‘ .
18. Contoh
Uji Integrasi untuk skenario berikut:
Aplikasi memiliki 3 modul yaitu ‘Halaman Masuk’, ‘Kotak Surat’
dan ‘Hapus email’ dan masing-masing terintegrasi secara logis.
Di sini tidak banyak berkonsentrasi pada pengujian Halaman
Login karena sudah dilakukan di Unit Testing. Tetapi periksa
bagaimana tautannya ke Halaman Kotak Surat.
19. Pembahasan
Di sini tidak banyak berkonsentrasi pada pengujian Halaman Login karena sudah dilakukan
di Unit Testing. Tetapi periksa bagaimana tautannya ke Halaman Kotak Surat.
Demikian pula Kotak Surat: Periksa integrasinya ke Modul Hapus Surat.
20. Pengujian Validasi (Validation Testing)
Pengujian ini dimulai jika pada tahap integrasi tidak ditemukan
kesalahan. Suatu validasi dikatakan sukses jika perangkat lunak
berfungsi pada suatu cara yang diharapkan oleh pemakai.
21. Pengujian Sistem(System Testing)
Pengujian yang dilakukan sepenuhnya pada sistem berbasis komputer.
• Recovery testing
Pengujian dilakukan dimana sistem diusahakan untuk gagal, kemudian diujinormalisasinya.
• Security testing
Dilakukan untuk menguji mekanisme proteksi
• Stess testing
Pengujian yang dirancang untuk menghadapkan suatu perangkat lunak kepada situasi yang
tidak normal.
23. Pendahuluan
Fokus pada faktor Fungsionalitas dan spesifikasi Perangkat Lunak
Fokus pada informasi domain
Tidak membutuhkan pengetahuan mengenai,alur internal, struktur Software Under Test
Bukan alternatif dari ujicoba whitebox, tetapi merupakan pendekatan yang melengkapi untuk
menemukan kesalahan lainnya
24. Kategori Kesalahan (Black Box)
Fungsi – fungsi yang salah atau hilang
Kesalahan Interface
Kesalahan dalam struktur data
Kesalahan dalam akses database eksternal
Kesalahan performa
Kesalahan inisialisasi dan terminasi
25. Pertanyaan Black Box Testing
Bagaimana validitas fungsionalitasnya diuji?
Jenis input seperti apa yang akan menghasilkan kasus uji yang baik?
Apakah sistem sensitif terhadap nilai input tertentu?
Bagaimana batasan-batasan kelas diisolasi?
Berapa rasio data dan jumlah data yang dapat di toleransi oleh sistem?
Apa akibat dari kombinasi spesifik data pada sistem operasi?
26. Proses dalam Black Box Testing
1. Menganalisa kebutuhan dan spesifikasi perangkat lunak
2. Pemilihan jenis input yang mungkin menghasilkan output yang benar
3. Pengujian dilakukan dengan input-input yang benar-benar telah diseleksi
4. Pembandingan output yang dihasilkan dengan output yang diharapkan
5. Menentukan fungsionalitas yang harusnya ada pada perangkat lunak yang diuji
28. Kelebihan & Kekurangan
Kelebihan
1. Dapat memilih subset test yang secara efektif dan efisien
2. dapat menemukan cacat
3. Membantu meminimalkan testing cost
Kelemahan
Tester tidak yakin sepenuhnya atas perangkat lunak yang telah
diuji
29. Contoh
Pengujian Sistem:
1. Pengujian Interface sistem
2. Pengujian Fungsi Dasar Sistem
3. Pengujian Form Handle Sistem
4. Pengujian Keamanan Sistem
30. Pembahasan
1. Pengujian Interface sistem
tujuan dari pengujian ini untuk mengetahui fungsionalitas dari
elemen-elemen interface yang terdapat dihalaman sistem
31.
32. Pembahasan
2. Pengujian Fungsi Dasar sistem
tujuan dari pengujian ini untuk mengetahui kerja dari funsi –
fungsi dasar didalam sistem yang pada akhirnya membentuk
suatu modul khusus.
33.
34. Pembahasan
3. Pengujian Form Handle sistem
tujuan dari pengujian ini untuk mengetahui kemampuan sistem
untuk mengetahui bermacam-macam input yang diberikan
39. Kesimpulan
Partisi equivalen membagi domain input ke dalam kelas data
yang memungkinkan untuk melakukan fungsi perangkat lunak
tertentu
Analisis nilai batas untuk memeriksa kemampuan program
untuk menangani data pada batas yang dapat diterima