Teknik Informatika S1 SOFTWARE QUALITY AND TESTING White Box Testing (1)
Disusun Oleh: Egia Rosi Subhiyakto, M.Kom, M.CS Teknik Informatika UDINUS
[email protected] +6285740278021
Tugas Black Box Mengingatkan Untuk Tugas Black Box progressnya sampai
mana?
Note: Jangan Lupa mengisi kuisioner pengujian (di Edmodo), dan dikumpulkan print outnya ke saya
SILABUS MATA KULIAH 8. Perencanaan Pengujian
9. Penugasan Pengujian PL 10. White Box (1)
11. White Box (2) 12. Manajemen Fungsi Testing 13. OO Testing 14. Presentasi Tugas White Box
White Box Testing Kadang disebut juga glass box testing atau clear box testing, adalah suatu metode desain test case yang menggunakan struktur kendali dari desain prosedural.
Lebih Fokus kepada Logika Internal/ Algoritma
Mengapa White Box Testing? Mengapa melakukan white box testing bilamana black box
testing
berfungsi
untuk
kebutuhan/ spesifikasi?
testing
pemenuhan
terhadap
Mengapa White Box Testing? Mengapa melakukan white box testing bilamana black box testing berfungsi untuk testing pemenuhan terhadap kebutuhan/ spesifikasi?
Kesalahan kebanyakan
logika
dan
dilakukan
asumsi ketika
yang
tidak
benar
coding
untuk
“kasus
tertentu”. Dibutuhkan kepastian bahwa eksekusi jalur
ini telah dites.
Mengapa White Box Testing? Asumsi bahwa adanya kemungkinan terhadap eksekusi jalur yang tidak benar. Dengan white box testing dapat ditemukan kesalahan ini.
Kesalahan penulisan yang acak. Seperti berada pada jalur logika yang membingungkan pada jalur normal.
Cakupan Pernyataan, Cabang dan Jalur Cakupan pernyataan, cabang dan jalur adalah suatu teknik white box testing yang menggunakan alur logika dari program untuk membuat test cases.
Alur logika adalah cara dimana suatu bagian dari program tertentu dieksekusi saat menjalankan program. Alur logika suatu program dapat direpresentasikan dengan flow graph.
Flow Graph Suatu flow graph terbentuk dari: Nodes (titik) Mewakili pernyataan (atau sub program) yang akan ditinjau saat eksekusi program Edges (anak panah) Mewakili jalur alur logika program untuk menghubungkan satu pernyataan (atau sub program) dengan yang lainnya.
Branch nodes (titik cabang), titik-titik yang mempunyai lebih dari satu anak panah keluaran.
Flow Graph Branch edges (anak panah cabang) Anak panah yang
keluar dari suatu cabang. Paths (Jalur) Jalur yang mungkin untuk bergerak dari satu titik ke lainnya sejalan dengan keberadaan arah anak panah.
Contoh Flow Graph
Cakupan Pernyataan Cakupan pernyataan ditentukan dengan menilai proporsi dari
pernyataan-pernyataan yang ditinjau oleh sekumpulan test cases yang ditentukan. Cakupan pernyataan 100 % adalah bila tiap pernyataan pada program ditinjau setidaknya minimal sekali tes. Cakupan pernyataan berkaitan dengan tinjauan terhadap titik (node) pada flow graph. Cakupan 100 % terjadi bilamana semua titik dikunjungi oleh jalur-jalur yang dilalui oleh test cases.
Contoh Cakupan Pernyataan Pada contoh terdapat 10
titik. Misal suatu eksekusi jalur melewati titik-titik A, B, D, H, K. Berarti ada 5
titik
dari
dikunjungi,
10
titik
maka
yang
cakupan
pernyataan sebesar 50%.
Cakupan Cabang Cakupan cabang ditentukan dengan menilai proporsi dari cabang keputusan yang diuji oleh sekumpulan test cases yang telah ditentukan.
Cakupan cabang 100% adalah bilamana tiap cabang keputusan pada program ditinjau setidaknya minimal sekali tes. Cakupan cabang berkaitan dengan peninjauan anak panah cabang (branch edges) dari flow graph.
Contoh Cakupan Cabang Pada contoh terdapat 6 anak panah cabang. Misal suatu
jalur
eksekusi
program melewati titiktitik A, B, D, H, K. maka jalur tersebut meninjau 2
dari 6 anak panah cabang yang ada, jadi cakupannya sebesar 33%.
Cakupan Jalur Cakupan jalur ditentukan dengan menilai proporsi eksekusi jalur program yang diuji oleh sekumpulan test cases yang telah ditentukan.
Cakupan jalur 100% adalah bilamana tiap jalur pada program dikunjungi setidaknya minimal sekali tes. Cakupan jalur berkaitan dengan peninjauan jalur sepanjang flow graph.
Contoh Cakupan Jalur Pada contoh terdapat
4
jalur. Bila suatu eksekusi jalur
pada
program
melalui titik-titik A, B, D, H,
K,
maka
eksekusi
tersebut meninjau 1 dari
4 jalur yang ada, jadi cakupannya sebesar 25%.
Perbedaan antara cakupan pernyataan, cabang dan jalur Pencapaian cakupan pernyataan 100% dapat terjadi tanpa harus membuat cakupan cabang menjadi 100% juga.
Contoh:
Contoh cakupan cabang 100% namun cakupan jalur tidak 100%.
Perbedaan antara cakupan pernyataan, cabang dan jalur Dapat pula membuat cakupan cabang 100%, dengan meninjau seluruh anak panah cabang tanpa harus meninjau semua jalur yang ada (cakupan jalur 100%) Contoh:
Contoh anak panah cabang 100% namun cakupan jalur tidak
100%.
Perbedaan antara cakupan pernyataan, cabang dan jalur
Dapat dilihat bahwa hanya dibutuhkan 2 jalur untuk
mengunjungi semua anak panah cabang, dari 4 jalur yang ada pada flow graph.
Perbedaan antara cakupan pernyataan, cabang dan jalur Jadi bila cakupan jalur sebesar 100%, maka secara otomatis cakupan cabang sebesar 100% pula. Demikian pula bila cakupan cabang sebesar 100%,
maka secara otomatis cakupan pernyataan sebesar 100%.
Teknik Testing White Box Basis Path Testing Graph Matrix Control Structure Testing
Data Flow Testing Loop Testing Lines of Code Halstead’s Metrics
Pengujian Basis Path Teknik White Box Testing dikenalkan oleh Tom McCabe. Digunakan untuk mengukur kompleksitas logis dari
desain
procedural
dan
menggunakannya
sebagai
pedoman untuk menetapkan himpunan basis dari semua jalur eksekusi. Test case yang didapat digunakan untuk mengerjakan basis set yang menjamin pengerjaan setiap perintah min 1x selama uji coba.
Pengujian Basis Path • Tujuannya meyakinkan bahwa himpunan test case akan menguji setiap path pada suatu program paling sedikit satu kali.
• Titik awal untuk path testing adalah suatu program flow
graph
yang
menunjukkan
node-node
yang
menyatakan program decisions (mis.: if-then-else
condition) dan busur menyatakan alur kontrol
Pengujian Basis Path Tahapan: 1: Gambarkan control flow graph 2: Hitung Cyclomatic complexity
3: Pilih jalur “basis set” 4: Generate uji kasus untuk setiap jalur
Control Flow Graph Setiap desain prosedural dapat diterjemahkan ke dalam control flow graph: Lines (atau arrows) disebut edges merepresentasikan kontrol aliran Circles atau nodes merepresentasikan satu atau lebih aksi Daerah yang dibatasi oleh tepi dan node disebut regions
Sebuah predicate node adalah node yang mengandung kondisi.
Struktur Control Flow Graph Basic Control Flow Graph Structures:
Contoh Kasus (1)
Contoh 1. Gambarkan Control Flow Graph
Contoh
Kasus Basis Path Testing 2. Hitung Cyclomatic Complexity Model: V(G) = edges – nodes + 2p
Edges: Jumlah garis penghubung/ anak panah Nodes: Jumlah titik/ node P: Jumlah bagian graph yang tidak tersambung
Kasus Basis Path Testing 3. Tentukan Jalur!
TERIMA KASIH