Testing Dan Implementasi SI - Pertemuan 2
Testing Dan Implementasi SI - Pertemuan 2
Testing dan
Implementasi SI
Pokok Bahasan :
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
- 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.
Subbab yang akan dibahas pada Pengujian menggunakan metode 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.
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
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.
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.
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.
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.
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.
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.
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.
Simple Loops. Serangkain test dapat diterapkan ke simple loop, dimana n adalah
maksimum jumlah yang dibolehkan 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’.
Unstructured Loops. Jika memungkinkan, kelas loops ini harus di rancang ulang untuk
mencerminkan penggunaan pemrograman terstruktur.