TESTING DAN IMPLEMENTASI PERTEMUAN 3 DESAIN TEST CASE WHITE BOX TESTING (BAGIAN 1)
METODE PENGUJIAN SOFTWARE BOX APPROACH White Box Black Grey
WHITE BOX TESTING Test yang didasarkan pada pola internal, struktur kode. Membutuhkan pengetahuan dan kemampuan programming. Dilakukan oleh developer karena mereka yang mengetahui internal aplikasi.
CAKUPAN PERNYATAAN, CABANG & JALUR Suatu teknik white box testing yang menggunakan alur logika dari program untuk membuat test case. Alur logika suatu program dapat direpresentasikan dengan flow graph.
FLOW GRAPH
FLOW GRAPH (lanjutan) Suatu flow graph terbentuk dari: Nodes (titik), mewakili statement (atau sub program) yang akan ditinjau saat eksekusi program. Edges (anak panah), mewakili jalur alur logika program untuk menghubungkan satu satetment (atau sub program) dengan yang lainnya. Branch nodes (titik cabang), titik yang mempunyai lebih dari satu anak panah keluaran Branch edges (anak panah cabang), anak panah yang keluar dari suatu cabang Path (Jalur), jalur yang mungkin untuk bergerak dari satu titik ke titik lainnya sejalan dengan keberadaan arah anak panah.
CAKUPAN PERNYATAAN Cakupan pernyataan berkaitan dengan tinjauan terhadap titik (node) pada flow graph. Cakupan 100% terjadi bilamana semua titik dikunjungi oleh test cases. Pada contoh flow graph dislide sebelumnya terdapat 10 titik. Misal suatu jalur eksekusi program melewati 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 test cases. Cakupan cabang 100% adalah bilamana tiap cabang keputusan pada program ditinjau setidaknya minimal 1 kali. Pada contoh flow graph dislide sebelumnya terdapat 6 anak panah cabang. Misal jalur ekseskusi 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 oleh proporsi eksekusi jalur program yang diuji oleh sekumpulan test cases. Cakupan jalur 100% adalah bilamana tiap jalur pada program dikunjungi setidaknya minimal 1 kali. Berdasarkan contoh terdapat 4 jalur. Bila suatu eksekusi jalur pada program melalui titik A, B, D, H, K maka ekseskusi tersebut meninjau 1 dari 4 jalur, maka cakupannya sebesar 25%.
DESAIN CAKUPAN TES Analisa source code untuk membuat flow graph Identifikasi jalur tes untuk mencapai pemenuhan tes berdasarkan flow graph. Mengevaluasi kondisi tes yang akan dicapai dalam tiap tes. Memberikan nilai masukan dan keluaran berdasarkan pada kondisi.
BASIS PATH TESTING Tehnik white box testing dikenalkan oleh Tom McCabe. Test case designer dapat mengetahui ukuran kompleksitas sebuah desain aplikasi. Ukuran tersebut digunakan sebagai acuan untuk mendefinisikan jalur eksekusi, sehingga setiap statement dalam program dapat dicover oleh test case. Menunjukkan jumlah minimum test case yang perlu dibuat.
NOTASI FLOW GRAPH Flow graph digunakan sebagai alat bantu untuk memahami alur dan mengilustrasikan pendekatan yang akan digunakan.
SOURCE CODE -> FLOW GRAPH
SOURCE CODE -> FLOW GRAPH (lanjutan) Flow chart
SOURCE CODE -> FLOW GRAPH (lanjutan)
CYCLOMATIC COMPLEXITY Metric (Satuan Pengukuran) Perangkat Lunak yang memberikan pengukuran kuantitatif terhadap kompleksitas sebuah program. Berguna untuk memprediksi modul-modul yang berpotensi error. Sehingga dapat digunakan untuk perencanaan dan disain testing . Mendefinisikan jumlah jalur (path) independen.
MENGHITUNG CYCLOMATIC COMPLEXITY Kompleksitas dihitung dengan menggunakan salah satu dari cara yang ada dibawah ini: Jumlah region yang ada didalam flowgraph Cyclomatic complexity -> V(G) dirumuskan dengan V(G) = E – N + 2 Dimana: E (Jumlah Edge dalam flowgraph) N (Jumlah Node dalam flowgraph) V(G) = P + 1 P (Jumlah Predicate Node dalam flowgraph) Predicate node adalah node yang memiliki kondisi (ditandai dengan 2 panah atau lebih yang keluar dari node tersebut)
JALUR INDEPENDEN (INDEPENDENT PATH) Jalur independen (Independent path) adalah jalur program yang membentuk sekumpulan proses baru atau sebuah kondisi baru.
KORELASI CYCLOMATIC COMPLAXITY & INDEPENDENT PATH Dari Flow Graph diatas (Slide 14) maka nilai cyclomatic complexity nya dapat dihitung dengan: Melihat flow graph -> memiliki 4 region V(G) = 11 edges – 9 nodes + 2 =4 V(G) = 3 predicate nodes + 1 = 4 Dari Flow Graph diatas (Slide 14) maka jalur (path) independen yang terbentuk ada 4 yaitu: 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 * 1-2-3-4-5-10-1-2-3-6-8-9-10-1-11 (bukan independent path karena hanya berupa kombinasi path yang sudah ada dan tidak melewati edge baru.