Dokumen tersebut membahas tentang pengujian perangkat lunak (software testing) dengan metode white box testing. Metode ini menggunakan struktur kontrol desain untuk menghasilkan kasus uji. Jenis pengujian white box mencakup basis path testing dan control structure testing untuk menjamin semua jalur dieksekusi dan keputusan logis tercakup. Dokumen ini juga menjelaskan konsep cyclomatic complexity dan flowgraph dalam merancang kasus uji white box.
1. Systems Analysis
and Design
By : Ajeng Savitri P, M.Kom
Prepared by Kevin C. Dittman for
Systems Analysis & Design Methods 4ed
by J. L. Whitten & L. D. Bentley
4. White Box
• Metode desain test case yang menggunakan struktur kontrol desain prosedural
untuk memperoleh test case.
• Disebut juga dengan pengujian struktur (structural testing) atau pengujian
kotak kaca (glass box testing)
• Jenis :
• Basis path testing
• Control Structure Testing
5. Aspek Pengujian
• Menjamin bahwa semua jalur independen didalam modul telah dieksekusi
sedikitnya satu kali
• Melaksanakan semua keputusan logis pada sisi benar dan salah
• Melaksanakan semua loop pada batas mereka dan dalam batas-batas
operasional mereka
• Melakukan struktur data internal untuk memastikan validitasnya
6. Basis Path Testing
• Merupakan pengujian white box yang diusulkan pertama kali oleh Tom McCabe.
• Memungkinkan penguji dapat mengukur kompleksitas logis dari desain
procedural dan menggunakannya sebagai pedoman untuk menetapkan
himpunan basis dari semua jalur eksekusi.
• 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.
7. Langkah - Langkah
• Mendefinisikan flow graph berdasarkan mapping dari flow chart atau struktur
dari algoritma
• Menentukan ukuran kompleksitas (cyclomatic complexity)
• Mendefinisikan kasus uji
9. Simbol Flow Graph
• Lingkaran (node/simpul), menggambarkan satu/lebih perintah prosedural dan
yang berisi sebuah kondisi yang ditandai dengan dua/lebih link yang berasal
darinya(Predikat). Urutan proses dan keputusan dapat dipetakan dalam satu
node.
• Tanda panah (edge/link), menggambarkan aliran kontrol. Setiap node harus
mempunyai tujuan node.
• Region adalah daerah yang dibatasi oleh edge dan node. Termasuk daerah diluar
grafik alir.
• Predicate node adalah node yg merupakan kondisi (2 atau lebih edge akan
keluar dari sini)
10. Notasi Basis Path Testing
• Notasi yang digunakan untuk menggambarkan jalur eksekusi adalah notasi diagram alir (atau
grafik program), yang menggunakan notasi lingkaran (simpul atau node) dan anak panah (link
atau edge).
11. Cyclomatic Complexity
• Angka yang menyatakan jumlah jalur independen/jalur dasar dari sebuah
program (representasi dari kompleksitas program)
• Menunjukkan jumlah pengujian (kasus uji) yang harus dieksekusi
• Jalur independen adalah jalur yang melintasi atau melalui program dimana
sekurang-kurangnya dieksekusi satu kali. Jalur independen sama dengan jumlah
Cyclomatic Complexitynya.
12. Perhitungan
• Cyclomatic Complexity dapat diperoleh dengan menghitung daerah yang dapat
dibenuk oleh graph (region)
• Cyclomatic Complexity V(G) dapat dihitung dengan
• V (G) = E – N + 2
• dimana :
• E = jumlah edge pada flowgraph
• N = Jumlah Node pada flowgraph
• Cyclomatic Complexity juga dapat dihitung dengan rumus :
• V (G) = P + 1
• dimana P = jumlah predikat Node pada flow graph
13. Contoh
Var
A, B, C : integer
Begin
1. A := 10;
2. B :=5;
3. C:= 6;
4. If A>B then
5. C:=A+B
6. Else if A>C then
7. C=A
8. Else C:=B;
9. Endif
10. Endif
11. Writeln(‘Nilai C = ‘,C);
12. End
V(G) = Jumlah Region
V(G) = 3
Atau
V(G) = E – N + 2
V (G) = 11 – 10 + 2 = 3
Atau
V (G) = P + 1
V (G) = 2 + 1 = 3
Jadi cyclomatic complexity
untuk flowgraph adalah 3
1,2,3
4
5 6
7 8
910
11
12
R1
R2
R3
18. Control Structure Tesing
• Pengujian struktur kontrol, sebagai pelengkap bagi pengujian jalur dasar (basis
path testing)
• Jenis :
• Pengujian Kondisi (Condition Testing)
• Pengujian Loop (Loop Testing)
19. Conditioning Testing
• Pengujian kotak putih yang dibuat untuk menguji kondisi
lojik dalam sebuah program
• Jenis-jenis kondisi :
• Kondisi Sederhana (simple condition)
• Kondisi Majemuk (compound condition)
20. Loop Testing
• Pengujian kotak putih yang
dilakukan untuk menguji validitas
dari struktur loop
• Jenis-jenis loop :
• Sederhana
• Bersarang
• Tersambung
• Tak terstruktur
21. Class Level Testing
• Berfokus pada kelas tunggal dan metode – metode yang terbungkus
(enkapsulasi) oleh kelas
• Metode pengujian :
• Pengujian acak
• Pengujian partisi
22. Interclass Testing
• Dimulai pada saat pengintegrasian sistem OO
• Dapat dilakukan dengan menerapkan metoda acak dan partisi, pengujian
scenario-based dan behavioral
• Metode :
• Multiple Class
• Behavior Model