Teknik Informatika S1
Disusun Oleh:
Egia Rosi Subhiyakto, M.Kom, M.CS Teknik Informatika UDINUS
[email protected] +6285740278021
White Box
White Box Testing
Kadang disebut juga glass box testing atau clear box
testing, adalah suatu metode desain test case yang
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
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
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
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:
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
Teknik Testing White Box
Basis Path Testing Graph Matrix
Control Structure Testing Data Flow Testing
Loop Testing Lines of Code
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”
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
Struktur Control Flow Graph
Basic Control Flow Graph Structures:Control Flow Graph Structure
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
Control Flow Graph Structure
Latihan:
Hitung Cyclomatic Complexity untuk Graph di bawah
Control Flow Graph Structure
Hitung Cyclomatic Complexity? Edges: ?
Nodes: ?
Control Flow Graph Structure
Hitung Cyclomatic Complexity? Edges: ? Nodes: ?
Control Flow Graph Structure
Hitung Cyclomatic Complexity?
Edges: ? Nodes: ?
Control Flow Graph Structure
Hitung Cyclomatic Complexity? V(G) = edges – nodes +2p
Control Flow Graph Structure
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
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