View
78
Download
1
Category
Preview:
DESCRIPTION
white box
Citation preview
Teknik Informatika S1
Disusun Oleh:
Egia Rosi Subhiyakto, M.Kom, M.CS
Teknik Informatika UDINUS
egia@dsn.dinus.ac.id
+6285640392988
White Box (1)
SOFTWARE QUALITY AND TESTING
PENTING Harap diperhatikan
Silahkan Kirim Email Laporan BlackBox + Software yang dites
di pertemuan sebelumnya:
Kirim ke Email : egia.rosi.subhiyakto@gmail.com
cc : egia@dsn.dinus.ac.id
Subject : A11.4803_Laporan_BlacxBox
atau
A11.4804_Laporan_BlacxBox
Harap dikirim email secepatnya untuk dokumentasi Matkul SQT
Jika tidak dikirim email nilai dikurangi
SILABUS MATA KULIAH 8. Perencanaan Pengujian + Tugas Black Box
9. Presentasi Tugas Black Box
10. White Box (1)
11. White Box (2) + Tugas Resume Materi
12. Manajemen Fungsi Testing
13. OO Testing
14. Tool support for testing
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.
Mengapa White Box Testing?
Mengapa melakukan white box testing bilamana black box testing
berfungsi untuk testing pemenuhan terhadap kebutuhan/
spesifikasi?
Mengapa White Box Testing?
Mengapa melakukan white box testing bilamana black box testing
berfungsi untuk testing pemenuhan terhadap kebutuhan/
spesifikasi?
Kesalahan logika dan asumsi yang tidak benar kebanyakan
dilakukan ketika 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.
Contoh 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.
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
10 titik yang dikunjungi,
maka 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 titik-titik 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%.
Desain Cakupan Tes
Untuk mendesain cakupan dari tes, perlu diketahui tahap-tahap
sebagai berikut:
1. Menganalisa source code untuk membuat flow graph.
2. Mengidentifikasi jalur tes untuk mencapai pemenuhan tes
berdasarkan pada flow graph.
3. Mengevaluasi kondisi tes yang akan dicapai dalam tiap tes.
4. Memberikan nilai masukan dan keluaran berdasarkan pada
kondisi.
Teknik Testing White Box
Basis Path Testing
Graph Matrix
Control Structure Testing
Data Flow Testing
Loop Testing
Lines of Code
Halsteads 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:
Control Flow Graph Structure
Step 1: Gambarkan Control Flow Graph
Control Flow Graph Structure
Step 2: Hitung Cyclomatic Complexity
Model: V(G) = edges nodes + 2p
?
Control Flow Graph Structure
Step 2: Hitung Cyclomatic Complexity
Model: V(G) = edges nodes + 2p
P= Jumlah bagian graph yang tidak tersambung
Control Flow Graph Structure
Latihan:
Hitung Cyclomatic Complexity untuk Graph di bawah
menggunakan rumus V(G):
Control Flow Graph Structure
Hitung Cyclomatic Complexity?
Edges: ?
Nodes: ?
V(G) = edges nodes +2p
Control Flow Graph Structure
Hitung Cyclomatic Complexity?
Edges: ?
Nodes: ?
V(G) = edges nodes +2p
Control Flow Graph Structure
Hitung Cyclomatic Complexity?
Edges: ?
Nodes: ?
V(G) = edges nodes +2p
Control Flow Graph Structure
Hitung Cyclomatic Complexity?
V(G) = edges nodes +2p
Control Flow Graph Structure
Step 3: Pilih jalur Basis Set
Control Flow Graph Structure
Step 3: Pilih jalur Basis Set
Control Flow Graph Structure
Step 4: Generate Test Cases
Path 1: 1, 2, 5
Test case 1
Path 1 can not be tested stand-alone & must be tested as part of
path 2, 3 or 4
Path 2: 1, 2, 3, 4, 2, 5
Test case 2
Press cancel in response to the Enter PIN Number prompt
Control Flow Graph Structure
Step 4: Generate Test Cases
Path 3: 1, 2, 3, 6, 7, 4, 2, 5
Test case 3
Enter a valid PIN number on the first try
Path 4: 1, 2, 3, 6, 8, 7, 4, 2, 5
Test case 4
Enter an invalid on the first try & a valid PIN on the second try
Tugas Minggu Depan
1. Buatlah kelompok masing-masing terdiri dari 2-3 orang anggota.
2. Masing-masing kelompok meresume materi teknik-teknik White Box yang
lainnya (Selain yang dijelaskan di slide)
3. Buatlah laporan berbentuk makalah, setiap teknik White Box harus
disertai contoh Plagiat/ Copas kerjaan kelompok lain/ Laporan
sama nilai di bagi
4. Tugas di print dan dikumpulkan saat jam kuliah
A11.4803 Jumat, 5 Desember 2014
A11.4804 Kamis, 4 Desember 2014
5. Pengumpulan saat jam kuliah + absen silahkan ke ruangan saya (Ada dosen
yang menunggu absen tersebut, Jika melebihi jam 4 kumpulkan di loker)
6. Pengecualian untuk yang KKL SBY-Bali bisa mengumpulkan minggu berikutnya.
7. Untuk minggu berikutnya akan diadakan Post Test
TERIMA KASIH
Recommended