Dosen Pengampu: Anief Fauzan Rozi, S.Kom., M.Eng. Phone/WA: 0856 4384 6541 PIN BB: 29543EC4 Email:
[email protected] Website: http://anief.mercubuana-‐yogya.ac.id
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
1
¡ Mahasiswa mengetahui dan memahami
tentang white box testing
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
2
¡ flow graph notation ¡ cyclomatic complexity ¡ independent path
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
3
BOX APPROACH:
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
4
¡ ¡ ¡
Test yang didasarkan pada pola internal, struktur kode. Membutuhkan pengetahuan dan kemampuan programming. Dilakukan oleh developer karena mereka yang mengetahui internal aplikasi.
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
5
¡ Suatu teknik white box testing yang
menggunakan alur logika dari program untuk membuat test case. ¡ Alur logika suatu program dapat direpresentasikan dengan flow graph.
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
6
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
7
¡
Suatu flow graph terbentuk dari:
§ Nodes (titik), mewakili statement (atau sub program) § § § §
3/17/16
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. Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
8
¡ 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%. 3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
9
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%. ¡
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
10
¡
¡
¡
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%. 3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
11
1. 2. 3. 4.
3/17/16
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. Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
12
¡ 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. 3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
13
¡ Flow graph digunakan sebagai alat bantu
untuk memahami alur dan mengilustrasikan pendekatan yang akan digunakan.
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
14
¡ Source Code
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
15
¡ Flow chart
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
16
¡ Flow Graph
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
17
¡ 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. 3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
18
¡
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)
§ Cyclomatic complexity -‐> V(G) dirumuskan dengan
V(G) = P + 1 Dimana:
▪ P (Jumlah Predicate Node dalam flowgraph) ▪ Predicate node adalah node yang memiliki kondisi (ditandai dengan 2 panah atau lebih yang keluar dari node tersebut)
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
19
¡ Jalur independen (Independent path) adalah
jalur program yang membentuk sekumpulan proses baru atau sebuah kondisi baru.
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
20
¡
Dari Flow Graph di atas (Slide 16) maka nilai cyclomatic complexity nya dapat dihitung dengan: 1. 2. 3.
¡
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 16) 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. § § § §
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
21
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
22
¡ Control Structure Testing meliputi: § Testing Kondisi (Condition Testing) ▪ Berfokus pada testing disetiap kondisi didalam program. § Testing Alur Data (Data Flow Testing) ▪ Test path ditentukan berdasarkan pendefinisian dan penggunaan variabel didalam program. § Testing Loop (Loop Testing) ▪ Berfokus pada validasi dari pembuatan loop.
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
23
¡ Metode disain test case yang memeriksa
kondisi logika yang terdapat pada modul program. ¡ Beberapa kondisi logika yang perlu diperhatikan: § Penggunaan persamaan dan pertidaksamaan ( >,
≥, <, ≤, =, ≠) § Operator boolean NOT (-‐), OR (|), AND (&). 3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
24
¡ Metode testing yang memilih jalur/path
program berdasarkan pada lokasi dari definisi dan penggunaan variabel-‐variabel pada program. ¡ Berfokus pada tiga tipe kesalahan: 1. Variabel didefinisikan, tapi tidak pernah dipakai. 2. Variabel digunakan, tapi tidak pernah
didefinisikan. 3. Variabel didefinisikan dua kali sebelum digunakan. 3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
25
¡ Sekumpulan tes berikut dapat digunakan
untuk Simple Loop, dimana n adalah jumlah maksimum yang dapat dilewatkan pada loop: 1. Lompati loop secara keseluruhan, tak ada 2. 3. 4. 5.
3/17/16
iterasi. Lewatkan hanya satu kali iterasi pada loop. Lewatkan dua kali iterasi pada loop. Lewatkan m kali iterasi pada loop dimana m
26
¡
Pendekatan test saat melakukan Nested Loop: 1. Mulailah dari loop yang paling dalam. Set semua
loop lainnya dengan nilai minimum. 2. Lakukan tes simple loop untuk loop yang paling dalam, dengan tetap mempertahankan loops yang ada diluarnya dengan nilai parameter iterasi yang minimum. Tambahkan tes lainnya untuk nilai yang diluar daerah atau tidak termasuk dalam batasan nilai parameter iterasi. 3. Kerjakan dari dalam ke luar, lakukan tes untuk loop berikutnya, tapi dengan tetap mempertahankan semua loop yang berada diluar pada nilai minimum. 4. Teruskan hingga keseluruhan dari loop telah dites. 3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
27
¡ Jika tiap loops independent, dites dengan
menggunakan pendekatan yang didefinisikan untuk simple loop. ¡ Jika loops tidak independen (loop counter untuk loop 1 digunakan sebagai nilai awal untuk loop 2), direkomendasikan memakai pendekatan yang digunakan pada nested loops. 3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
28
¡ Tidak dapat dites dengan efektif, bila
memungkinkan loops jenis ini harus didisain ulang.
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
29
3/17/16
Testing dan Audit Perangkat Lunak -‐ Universitas Mercu Buana Yogyakarta
30