Anda di halaman 1dari 12

MODUL PERKULIAHAN

Testing dan
Implementasi SI
Pokok Bahasan :

Pengujian menggunakan metode white-box testing

Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh

02
Fasilkom Sistem Informasi W181700015 Nurullah Husufa ST, MMSI

Abstract Kompetensi
Metode pengujian white-box testing, Mengetahui metode pengujian white-box testing, basis path
basis path testing dan control structure testing dan control structure testing
testing
Pembahasan
Pengujian menggunakan metode white-box testing

Capaian Pembelajaran Lulusan (CPL) :

- S-8 yaitu Menginternalisasi nilai, norma, dan etika akademik.

- P-1 yaitu Menguasai konsep teoritis bidang pengetahuan Sistem Informasi secara
umum dan konsep teoritis pada bidang EBusiness atau Aplikasi Multiplatform secara
mendalam.

- P-2 yaitu Memiliki pengetahuan terkait metode, teknologi, basis data, pemrograman
dan algoritma untuk mendukung pengembangan aplikasi.

- U-9 yaitu Mampu melakukan proses evaluasi diri terhadap kelompok kerja yang
berada di bawah tanggung jawabnya, dan mampu mengelola pembelajaran secara
mandiri.

- U11 yaitu Mampu mendokumentasikan, menyimpan, mengamankan, dan


menemukan kembali data untuk menjamin kesahihan dan mencegah plagiasi.

Subbab yang akan dibahas pada Pengujian menggunakan metode white-box testing :

1. Metode pengujian white-box testing

White-box testing, atau biasa disebut glass-box testing atau structural testing,
adalah sebuah test-case design yang menggunakan struktur kontrol sebagai bagian
component-level design untuk memperoleh test case. Menggunakan metode white-box
testing, dapat diperoleh test case (1) menjamin semua path pada modul telah dijalankan
minimal satu kali,(2) Menjalankan semua logical decisions di sisi benar dan salah,(3)
menjalankan semua loops sesuai batasannya dan (4) menjalankan struktur internal data
untuk memastikan kebenarannya.

2. Metode pengujian basis path testing

Basis path testing adalah teknik white-box testing yang memungkinkan perancang
test-case untuk memperoleh ukuran kompleksitas logical dari rancangan procedural dan
menggunakan ukuran ini sebagai acuan dalam menetapkan basis dalam menjalankan

2012 Testing dan Implementasi SI


2 Nurullah Husufa ST, MMSI
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
paths. Test case diperoleh untuk menjalankan setiap pernyataan pada program minimal
satu kali selama testing.

2.1 Notasi Flow Graph

Flow graph menggambarkan logical control flow menggunakan notasi yang dapat
dilihat pada gambar 1. Untuk mengilustrasikan penggunaan flow graph, rancangan
procedural dapat dilihat pada gambar 2.(a), sebuah flow chart yang digunakan untuk
menggambarkan program control structure. Gambar 2.(b) memetakan flowchart ke flow
graph, setiap lingkaran disebut flow graph node, mewakili satu atau lebih pernyataan
procedural. Proses sequence dan decision dapat dipetakan ke node tunggal. Anak
panah pada flow graph disebut edge atau link. Sebuah edge harus berhenti di node,
bahkan jika node tidak mewakili pernyataan procedural. Area yang dibatasi edge dan
node atau area diluar graph disebut region.

Gambar 1. Notasi flow graph

2012 Testing dan Implementasi SI


3 Nurullah Husufa ST, MMSI
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Gambar 2. (a) Flowchart dan (b) Flow graph

Ketika kondisi gabungan (compound) ditemukan pada rancangan prosedural karena


satu atau lebih operator Boolean (logical OR, AND, NAND, NOR) muncul pada
pernyataan conditional, dapat dilihat pada gambar 3. Catat, node terpisah dibuat untuk
setiap kondisi a dan b di pernyataan IF a OR b . Setiap node yang mengandung kondisi
disebut predicate node dan ditandai dengan dua atau lebih edge

Gambar 3. Compound Logic

2012 Testing dan Implementasi SI


4 Nurullah Husufa ST, MMSI
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
2.2 Independent Program Paths

Independent path adalah path yang melewati program yang memperkenalkan


minimal satu baru pernyataan proses atau kondisi baru. Independent path pada flow
graph harus memindahkan minimal satu edge yang belum dilewati sebelum path
ditetapkan. Contoh, independent path dari flow graph gambar 2.(b) adalah
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

Catat, setiap path baru memperkenalkan edge baru. Path 1-2-3-4-5-10-1-2-3-6-8-9-10-


1-11 tidak dianggap sebagai independent path karena ini kombinasi dari path yang telah
ditentukan dan tidak melewati edge baru.
Path 1 sampai 4, setiap pernyataan di program akan dijalankan minimal satu kali dan
setiap kondisi akan dijalankan di sisi benar dan salah. Sejumlah kumpulan basis
berbeda dapat diperoleh dari rancangan procedural yang diberikan.
Cyclomatic complexity adalah metrik software yang memberikan ukuran kuantitatif
dari kompleksitas logical sebuah program. Jika diterapkan pada metode basis path
testing, nilai yang dihitung untuk cyclomatic complexity menetapkan jumlah independent
path di kumpulan basis sebuah program dan memberikan batas atas jumlah test yang
harus dilakukan untuk memastikan bahwa semua pernyataan telah dijalankan minimal
satu kali. Cyclomatic complexity dihitung dengan satu dari tiga cara :
1. Jumlah regions dari flow graph.
2. Cyclomatic complexity V(G) untuk flow graph G ditetapkan
V(G) = E - N + 2
dimana E adalah jumlah flow graph edges dan N adalah jumlah flow graph nodes.
3. Cyclomatic complexity V(G) untuk flow graph G ditetapkan
V(G) = P + 1
dimana P jumlah predicate nodes di flow graph G.

Mengacu pada flow graph gambar 2.(b) cyclomatic complexity dapat dihitung
menggunakan masing-masing algoritma :
1. flow graph memiliki empat regions.
2. V(G) = 11 edges - 9 nodes + 2 = 4.
3. V(G) = 3 predicate nodes + 1 = 4.

2012 Testing dan Implementasi SI


5 Nurullah Husufa ST, MMSI
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
2.3 Mendapatkan Test Cases

Metode basis path testing dapat diterapkan pada sebuah rancangan procedural atau
kode program. Procedure average pada gambar 4, akan digunakan sebagai contoh
untuk mengilustrasikan setiap langkah pada metode rancang test case. Langkah berikut
dapat diterapkan untuk mendapatkan basis :
1. Menggunakan rancangan atau kode program sebagai landasan, menggambar flow
graph. Mengacu pada gambar 4, sebuah flow graph dibuat dengan memberi angka
pada pernyataan PDL yang akan dipetakan ke flow graph nodes, yang dapat dilihat
pada gambar 5.

Gambar 4. Program Design Language(PDL) dengan node teridentifikasi

2. Menentukan cyclomatic complexity dari flow graph. Cyclomatic complexity V(G)


ditentukan dengan menerapkan algoritma, atau tanpa mengembangkan sebuah
flow graph dengan menghitung semua pernyataan conditional di PDL (kondisi
compound dihitung 2) dan ditambah 1.
V(G) = 6 regions
V(G) = 17 edges - 13 nodes + 2 = 6
V(G) = 5 predicate nodes + 1 = 6

2012 Testing dan Implementasi SI


6 Nurullah Husufa ST, MMSI
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Gambar 5. Flow graph ‘Procedureaverage’

3. Menentukan basis dari linearly independent paths. Nilai V(G) memberikan jumlah
linearly independent paths melalui struktur kontrol program. Pada procedure
average terdapat 6 path :
Path 1: 1-2-10-11-13
Path 2: 1-2-10-12-13
Path 3: 1-2-3-10-11-13
Path 4: 1-2-3-4-5-8-9-2-. . .
Path 5: 1-2-3-4-5-6-8-9-2-. . .
Path 6: 1-2-3-4-5-6-7-8-9-2-. . .
(. . .) yang mengikuti path 4,5, dan 6 mengindikasikan bahwa setiap path yang
melewati sisa dari struktur kontrol diterima. Nodes 2, 3, 5, 6, dan 10 adalah
predicate nodes.

4. Menyiapkan test case yang akan menjalankan setiap path pada basis.
Data harus dipilih sehingga kondisi pada predicate nodes tepat saat setiap path di
uji. Setiap test case dijalankan dan dibandingkan ke hasil yang diharapkan. Jika
semua test cases telah lengkap, tester dapat pasti bahwa semua pernyataan di
program telah dijalankan minimal satu kali.
Perlu dicatat beberapa independent paths (contoh, path 1) tidak dapat di uji sendiri.
Kombinasi data diperlukan untuk melewati path, sehingga path diuji sebagai bagian
dari path test lain.

2012 Testing dan Implementasi SI


7 Nurullah Husufa ST, MMSI
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
2.4 Graph Matrices

Struktur data yang disebut graph matrix bisa sangat berguna untuk mengembangkan
tool software yang membantu di basis path testing. Graph matrix bisa adalah matrix
kotak yang memiliki ukuran (contoh, jumlah baris dan kolom) sama dengan jumlah
nodes pada flow graph. Setiap baris dan kolom sesuai dengan node yang telah
diidentifikasi, dan matrix masuk sama dengan koneksi (edge) antar nodes.

Gambar 6. Graph Matrix

Mengacu pada gambar 6, setiap node pada flow graph diidentifikasi oleh angka,
sementara setiap edge diidentifikasi oleh huruf. Sebuah huruf masuk dibuat pada matrix
untuk menyesuaikan pada koneksi antar dua nodes. Contoh, node 3 dihubungkan ke
node 4 dengan edge b.
Pada tahap ini, graph matrix hanya tabel yang mewakili flow graph. Tetapi dengan
menambahkan bobot link ke setiap matrix masuk, graph matrix bisa menjadi tool untuk
mengevaluasi program control structure selama testing. Bobot link memberikan
tambahan informasi tentang control flow, bobot link adalah 1 (koneksi ada) atau 0
(koneksi tidak ada). Gunakan bobot link adalah 1 (koneksi ada) untuk menghitung
Cyclomatic complexity:
• Untuk setiap baris,jumlahkan nilai kolom dan kurangi 1.
• Jumlahkan total ini dan tambahkan 1.

2012 Testing dan Implementasi SI


8 Nurullah Husufa ST, MMSI
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Gambar 7. Connection matrix

Bobot link dapat difungsikan lain yaitu :


• Kemungkinan link (edge) akan dijalankan.
• Waktu proses dihabiskan selama melewati link.
• Memori yang dibutuhkan selama melewati link.

3. Metode pengujian control structure testing

Teknik Basis path testing adalah salah satu teknik control structure testing.
Walaupun basis path testing sederhana dan sangat efektif,ada variasi lain control
structure testing, yang memperluas cakupan testing dan meningkatkan kualitas white-
box testing.
Condition testing adalah metode rancang test-case menguji kondisi logical yang ada
di modul program. Data flow testing, memilih test path program berdasarkan pada lokasi
definisi dan penggunaan variabel pada program. Loop testing adalah teknik white-box
testing yang fokus pada kebenaran pembuatan loop. Empat kelas berbeda dari loop
yaitu : simple loops, concatenated loops, nested loops, dan unstructured loops.

2012 Testing dan Implementasi SI


9 Nurullah Husufa ST, MMSI
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Gambar 8. Kelas loop

Simple Loops. Serangkain test dapat diterapkan ke simple loop, dimana n adalah
maksimum jumlah yang dibolehkan melewati loop

1. Lewati loop seluruhnya.

2. Hanya satu yang boleh melewati loop.

3. Dua boleh melewati loop.

4. m boleh melewati loop dimana m < n.

5. n - 1, n, n + 1 boleh melewati loop.

Nested Loops. Jika diperluas pendekatan test dari simple loop ke nested loop, jumlah
kemungkinan test akan bertambah sebagaimana tingkat nesting bertambah. Ini akan
menghasilkan jumlah test tidak berguna. Pendekatan yang akan membantu untuk
mengurangi jumlah test :

1. Mulai dari paling dalam loop. Atur loops lain ke nilai minimum.

2. Lakukan simple loop tests untuk paling dalam loop sementara menahan outer loops
ke nilai minimum parameter perulangan (contoh, loop counter) .Tambah tests lain
untuk nilai diluar rentang nilai.

3. Bekerja ke arah luar, lakukan test untuk loop selanjutnya, tetapi jaga outer loop lain
di nilai minimum dan nested loop lain ke nilai ‘unik’.

4. Lanjutkan sampai semua loop di uji.

2012 Testing dan Implementasi SI


10 Nurullah Husufa ST, MMSI
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Concatenated Loops. Concatenated loops dapat di uji menggunakan pendekatan
yang dijelaskan pada simple loops, jika setiap loops berdiri sendiri dari lainnya.Tetapi,
jika dua loops menyatu dan loop counter untuk loop 1 digunakan sebagai nilai awal
untuk loop 2, maka loops tidak berdiri sendiri. Ketika loops tidak berdiri sendiri,
pendekatan yang diterapkan nested loops..

Unstructured Loops. Jika memungkinkan, kelas loops ini harus di rancang ulang untuk
mencerminkan penggunaan pemrograman terstruktur.

2012 Testing dan Implementasi SI


11 Nurullah Husufa ST, MMSI
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id
Daftar Pustaka
Homès, Bernard. 2012. Fundamentals of Software Testing. Hoboken: John Wiley & Sons,
Inc.
Pressman, Roger; Maxim, Bruce. 2016. Software Engineering: A Practitioner’s Approach,
8th Edition
Kendal & Kendal. 2014. Systems Analysis and Design (9th Ed). Pearson Education

2012 Testing dan Implementasi SI


12 Nurullah Husufa ST, MMSI
Pusat Bahan Ajar dan eLearning
http://www.mercubuana.ac.id

Anda mungkin juga menyukai