WHITE BOX TESTING
(BASIS PATH - COMPLEXITY)
KELOMPOK VI :
Rizki ilhamdhani
...
INSTITUT INFORMATIKA & BISNIS DARMAJAYA
FAKULTAS ILMU KOMPUTER
JURUSAN TEKNIK INFORMATIKA
2018
1. Basis Path Testing: Flow Graph
Flow Graph merupakan grafik yang digunakan untuk menggambarkan aliran
kontrol dari sebuah program. Berbeda dengan flowchart, grafik pada flow graph
tidak menggambarkan secara detail proses yang terjadi pada setiap blok notasi.
Jenis notasi pada flowchart digambarkan secara berbeda (diamond, persegi
panjang, jajar genjang, dst) untuk menggambarkan proses yang berbeda,
sedangkan notasi pada flow graph hanya diwakili oleh sebuah notasi lingkaran.
Dari penggunaannya, flowchart digunakan pada tahapan perancangan untuk
menggambarkan logika dari program sedangkan flow graph digunakan pada
tahapan pengujian yang berfokus pada penggambaran aliran kontrol sebuah
program. Berikut ini adalah notasi struktur kontrol pada flow graph untuk
menggambarkan sekuensial, seleksi, maupun perulangan:
Notasi lingkaran disebut sebagai flow graph node yang digunakan untuk
menggambarkan statement-statement berikut:
1. Satu atau lebih statement secara sekuensial yang dikelompokkan
2. Percabangan seleksi dari satu statement kedua pilihan statement (seleksi)
3. Penggabungan dua statement yang dilanjutkan pada satu statement yang
sama (merge)
Sedangkan notasi garis panah disebut sebagai edge atau link, menggambarkan
aliran kontrol. Setiap edge harus dihubungkan dari/kesebuah node, meskipun node
tersebut tidak mewakili sebuah statement khusus. Area yang dibatasi oleh node
dan edge disebut sebagai region. Secara sederhana, flow graph dapat dibuat dari
grafik flowchart ataupun dari pseudocode/program design language/source code
yang telah dibuat sebelumnya.
Konversi flowchart ke flow graph:
Pada contoh Gambar 2 di atas, flowchart dikonversi menjadi sebuah flowgraph.
Semua notasi pada flowchart akan diubah menjadi notasi lingkaran/edge pada
flow graph dengan menggunakan panduan berikut:
Notasi yang berurutan baik berupa proses (persegi panjang) maupun
seleksi (diamond) dapat digabungkan menjadi satu node. Contoh:
o proses 2 dan decision 3 pada flowchart digabungkan menjadi satu
node 1,2
o proses 4 dan 5, digabungkan menjadi node 4,5
Notasi awal, digabungkan dengan notasi pertama menjadi satu node.
Contoh: start node dan decision 1 pada flowchart menjadi node 1 pada
flow graph.
Sebuah edge harus selalu dihubungkan dengan sebuah node, sehingga
bentuk penggabungan dari beberapa edge dapat ditambahkan sebuah node
sebelum menuju statement berikutnya meskipun node tersebut tidak
memiliki sebuah statement khusus. Contoh: masing-masing simpul pada
nomor 9 dan 10 dibuah menjadi sebuah node; node 9 dan node 10 pada
flow graph.
Final node pada flowchart diubah menjadi sebuah node pada flow graph
seperti pada contoh node 11.
Konversi Program Design Language ke flow graph:
Gambar di atas merupakan sebuah contoh dari Program Design Language untuk
menghitung rata-rata dari 100 angka atau kurang dari sebuah array. Program ini
juga akan menghitung total dan jumlah angka yang valid. Dengan menggunakan
panduan serupa pada contoh konversi dari flowchart ke flow graph yang telah
dibahas, dapat dibuat sebuah flow graph seperti di bawahini:
Flow graph dapat digunakan untuk menentukan cyclomatic complexity sebuah
program (dapat dibaca lebih detail pada artikel Software Testing:
PerhitunganCyclomatic Complexity yang digunakan pada proses pengujian
program menggunakan teknik basis path. Pembuatan test case yang efektif dapat
didasarkan pada hasil perhitungan cyclomatic complexity tersebut.
2. Software Testing: Perhitungan Cyclomatic Complexity
Cyclomatic Complexity adalah sebuah software metric yang menyediakan
ukuran kuantitatif dari kompleksitas logika dari sebuah program. Dengan
menggunakan hasil pengukuran atau perhitungan dari metric cyclomatic
complexity, kita dapat menentukan apakah sebuah program merupakan program
yang sederhana atau kompleks berdasarkan logika yang diterapkan pada program
tersebut. Apabila dikaitkan dengan pengujian perangkat lunak (software testing),
cyclomatic complexity dapat digunakan untuk menentukan berapa minimal test
caseyang harus dijalankan untuk menguji sebuah program dengan menggunakan
teknik basis path testing. Pada pengujian basis path, aliran control logika
digambarkan dengan menggunakan flow graph. Berikut ini adalah notasi struktur
kontrol pada flow graph untuk menggambarkan sekuensial, seleksi, maupun
perulangan:
Notasi lingkaran disebut sebagai flow graph node yang digunakan untuk
menggambarkan statement-statement berikut:
1. Satu atau lebih statement secara sekuensial yang dikelompokkan
2. Percabangan seleksi dari satu statement kedua pilihan statement (seleksi)
3. Penggabungan dua statement yang dilanjutkan pada satu statement yang
sama (merge)
Sedangkan notasi garis panah disebut sebagai edge atau link, menggambarkan
aliran kontrol. Setiap edge harus dihubungkan dari/ke sebuah node, meskipun
node tersebut tidak mewakili sebuah statement khusus. Area yang dibatasi oleh
node dan edge disebut sebagai region. Contoh pembuatan flow graph dari source
code yang sudah dibuat atau dari flowchart yang dibuat sebelumnya dapat dibaca
lebih detail pada artikel berikut "Basis Path Testing: Flow Graph".
Berikut ini adalah contoh sebuah flow graph:
Dari flow graph yang sudahtersedia, cyclomatic complexity dari sebuah program
dapat dibuat dengan menggunakan rumus dibawah ini:
V(G) : cyclomatic complexity
E : total jumlah edge
N : total jumlah node
Pada contoh flow graph di atas (Gambar 2.), dapat dihitung cyclomatic
complexity-nya sebagai berikut:
V(G) = 11 edges - 9 nodes + 2 = 4
Angka 4 dari hasil perhitungan cyclomatic complexity menunjukan jumlah
independent path dari basis path testing, atau dengan kata lain menunjukkan
jumlah pengujian yang harus dijalankan untuk memastikan semua statement pada
program dijalankan minimal sekali (semua statement telah diuji).
Hasil independent path pada contoh di atas dapat dijabarkan sebagai berikut:
path 1 : 1-11
path 2 : 1-2-3-4-5-10-1-11
path 3 : 1-2-3-6-8-9-10-1-11
path 4 : 1-2-3-6-7-9-10-1-11
Catatan:
independent path adalah setiap path yang dilalui program yang
menunjukkan satu set baru dari pemrosesan statement atau dari sebuah
kondisi baru
independent path pada flow graph harus melewati sedikitnya satu edge
yang belum pernah dilewati oleh path sebelumnya
independent path selalu dimulai dari node awal hingga ke node terakhir
independent path yang dibuat pertama kali adalah independent path
terpendek
Selain dengan menggunakan rumus di atas, cyclomatic complexity dapat
ditentukan dengan dua cara lain:
1. Menentukan jumlah region dari flow graph.
Pada contoh di atas, terdapat 4 region, sehingga cyclomatic complexity =
4.
2. Menentukan jumlah node simpul/bercabang ditambahkan dengan angka 1.
Pada contoh di atas, terdapat 3 node simpul (1; 2,3; dan 6) sehingga total
cyclomatic complexitynya adalah 3+1=4.
Untuk mendapatkan pemahaman yang lebih dalam, pada artikel ini disertakan
sebuah contoh lain flow graph untuk perhitungan cyclomatic complexity sebagai
berikut:
Perhitungan cyclomatic complexity dengan menggunakan 3 cara:
1. V(G) = 17 edges - 13 nodes + 2 = 6
2. V(G) = 6 region
3. V(G) = 5 node simpul + 1 = 6
(BASIS PATH - COMPLEXITY)
KELOMPOK VI :
Rizki ilhamdhani
...
INSTITUT INFORMATIKA & BISNIS DARMAJAYA
FAKULTAS ILMU KOMPUTER
JURUSAN TEKNIK INFORMATIKA
2018
1. Basis Path Testing: Flow Graph
Flow Graph merupakan grafik yang digunakan untuk menggambarkan aliran
kontrol dari sebuah program. Berbeda dengan flowchart, grafik pada flow graph
tidak menggambarkan secara detail proses yang terjadi pada setiap blok notasi.
Jenis notasi pada flowchart digambarkan secara berbeda (diamond, persegi
panjang, jajar genjang, dst) untuk menggambarkan proses yang berbeda,
sedangkan notasi pada flow graph hanya diwakili oleh sebuah notasi lingkaran.
Dari penggunaannya, flowchart digunakan pada tahapan perancangan untuk
menggambarkan logika dari program sedangkan flow graph digunakan pada
tahapan pengujian yang berfokus pada penggambaran aliran kontrol sebuah
program. Berikut ini adalah notasi struktur kontrol pada flow graph untuk
menggambarkan sekuensial, seleksi, maupun perulangan:
Notasi lingkaran disebut sebagai flow graph node yang digunakan untuk
menggambarkan statement-statement berikut:
1. Satu atau lebih statement secara sekuensial yang dikelompokkan
2. Percabangan seleksi dari satu statement kedua pilihan statement (seleksi)
3. Penggabungan dua statement yang dilanjutkan pada satu statement yang
sama (merge)
Sedangkan notasi garis panah disebut sebagai edge atau link, menggambarkan
aliran kontrol. Setiap edge harus dihubungkan dari/kesebuah node, meskipun node
tersebut tidak mewakili sebuah statement khusus. Area yang dibatasi oleh node
dan edge disebut sebagai region. Secara sederhana, flow graph dapat dibuat dari
grafik flowchart ataupun dari pseudocode/program design language/source code
yang telah dibuat sebelumnya.
Konversi flowchart ke flow graph:
Pada contoh Gambar 2 di atas, flowchart dikonversi menjadi sebuah flowgraph.
Semua notasi pada flowchart akan diubah menjadi notasi lingkaran/edge pada
flow graph dengan menggunakan panduan berikut:
Notasi yang berurutan baik berupa proses (persegi panjang) maupun
seleksi (diamond) dapat digabungkan menjadi satu node. Contoh:
o proses 2 dan decision 3 pada flowchart digabungkan menjadi satu
node 1,2
o proses 4 dan 5, digabungkan menjadi node 4,5
Notasi awal, digabungkan dengan notasi pertama menjadi satu node.
Contoh: start node dan decision 1 pada flowchart menjadi node 1 pada
flow graph.
Sebuah edge harus selalu dihubungkan dengan sebuah node, sehingga
bentuk penggabungan dari beberapa edge dapat ditambahkan sebuah node
sebelum menuju statement berikutnya meskipun node tersebut tidak
memiliki sebuah statement khusus. Contoh: masing-masing simpul pada
nomor 9 dan 10 dibuah menjadi sebuah node; node 9 dan node 10 pada
flow graph.
Final node pada flowchart diubah menjadi sebuah node pada flow graph
seperti pada contoh node 11.
Konversi Program Design Language ke flow graph:
Gambar di atas merupakan sebuah contoh dari Program Design Language untuk
menghitung rata-rata dari 100 angka atau kurang dari sebuah array. Program ini
juga akan menghitung total dan jumlah angka yang valid. Dengan menggunakan
panduan serupa pada contoh konversi dari flowchart ke flow graph yang telah
dibahas, dapat dibuat sebuah flow graph seperti di bawahini:
Flow graph dapat digunakan untuk menentukan cyclomatic complexity sebuah
program (dapat dibaca lebih detail pada artikel Software Testing:
PerhitunganCyclomatic Complexity yang digunakan pada proses pengujian
program menggunakan teknik basis path. Pembuatan test case yang efektif dapat
didasarkan pada hasil perhitungan cyclomatic complexity tersebut.
2. Software Testing: Perhitungan Cyclomatic Complexity
Cyclomatic Complexity adalah sebuah software metric yang menyediakan
ukuran kuantitatif dari kompleksitas logika dari sebuah program. Dengan
menggunakan hasil pengukuran atau perhitungan dari metric cyclomatic
complexity, kita dapat menentukan apakah sebuah program merupakan program
yang sederhana atau kompleks berdasarkan logika yang diterapkan pada program
tersebut. Apabila dikaitkan dengan pengujian perangkat lunak (software testing),
cyclomatic complexity dapat digunakan untuk menentukan berapa minimal test
caseyang harus dijalankan untuk menguji sebuah program dengan menggunakan
teknik basis path testing. Pada pengujian basis path, aliran control logika
digambarkan dengan menggunakan flow graph. Berikut ini adalah notasi struktur
kontrol pada flow graph untuk menggambarkan sekuensial, seleksi, maupun
perulangan:
Notasi lingkaran disebut sebagai flow graph node yang digunakan untuk
menggambarkan statement-statement berikut:
1. Satu atau lebih statement secara sekuensial yang dikelompokkan
2. Percabangan seleksi dari satu statement kedua pilihan statement (seleksi)
3. Penggabungan dua statement yang dilanjutkan pada satu statement yang
sama (merge)
Sedangkan notasi garis panah disebut sebagai edge atau link, menggambarkan
aliran kontrol. Setiap edge harus dihubungkan dari/ke sebuah node, meskipun
node tersebut tidak mewakili sebuah statement khusus. Area yang dibatasi oleh
node dan edge disebut sebagai region. Contoh pembuatan flow graph dari source
code yang sudah dibuat atau dari flowchart yang dibuat sebelumnya dapat dibaca
lebih detail pada artikel berikut "Basis Path Testing: Flow Graph".
Berikut ini adalah contoh sebuah flow graph:
Dari flow graph yang sudahtersedia, cyclomatic complexity dari sebuah program
dapat dibuat dengan menggunakan rumus dibawah ini:
V(G) : cyclomatic complexity
E : total jumlah edge
N : total jumlah node
Pada contoh flow graph di atas (Gambar 2.), dapat dihitung cyclomatic
complexity-nya sebagai berikut:
V(G) = 11 edges - 9 nodes + 2 = 4
Angka 4 dari hasil perhitungan cyclomatic complexity menunjukan jumlah
independent path dari basis path testing, atau dengan kata lain menunjukkan
jumlah pengujian yang harus dijalankan untuk memastikan semua statement pada
program dijalankan minimal sekali (semua statement telah diuji).
Hasil independent path pada contoh di atas dapat dijabarkan sebagai berikut:
path 1 : 1-11
path 2 : 1-2-3-4-5-10-1-11
path 3 : 1-2-3-6-8-9-10-1-11
path 4 : 1-2-3-6-7-9-10-1-11
Catatan:
independent path adalah setiap path yang dilalui program yang
menunjukkan satu set baru dari pemrosesan statement atau dari sebuah
kondisi baru
independent path pada flow graph harus melewati sedikitnya satu edge
yang belum pernah dilewati oleh path sebelumnya
independent path selalu dimulai dari node awal hingga ke node terakhir
independent path yang dibuat pertama kali adalah independent path
terpendek
Selain dengan menggunakan rumus di atas, cyclomatic complexity dapat
ditentukan dengan dua cara lain:
1. Menentukan jumlah region dari flow graph.
Pada contoh di atas, terdapat 4 region, sehingga cyclomatic complexity =
4.
2. Menentukan jumlah node simpul/bercabang ditambahkan dengan angka 1.
Pada contoh di atas, terdapat 3 node simpul (1; 2,3; dan 6) sehingga total
cyclomatic complexitynya adalah 3+1=4.
Untuk mendapatkan pemahaman yang lebih dalam, pada artikel ini disertakan
sebuah contoh lain flow graph untuk perhitungan cyclomatic complexity sebagai
berikut:
Perhitungan cyclomatic complexity dengan menggunakan 3 cara:
1. V(G) = 17 edges - 13 nodes + 2 = 6
2. V(G) = 6 region
3. V(G) = 5 node simpul + 1 = 6
0 Response to "WHITE BOX TESTING BASIS PATH - COMPLEXITY"
Post a Comment