• Tidak ada hasil yang ditemukan

Data Flow Testing

Dalam dokumen Testing dan Implementasi Sistem (Halaman 56-59)

.5 Control Structu

3.2.6 Data Flow Testing

Metode data flow testing memilih jalur program berdasarkan pada lokasi dari definisi dan enggunaan variabel-variabel pada program.

ebagai ilustrasi pendekatan data flow testing, diasumsikan bahwa tiap pernyataan dalam uatu program ditandai dengan suatu penomoran pernyataan yang unik sifatnya, sebagai entitas dari tiap pernyataan tersebut, dimana tiap fungsi tidak memodifikasi parameter atau ariabel globalnya.

ntuk suatu pernyataan dengan S sebagai nomor pernyataannya: DEF(S) = [X | pernyataan S mengandung suatu definisi X] USE(S) = [X | pernyataan S mengandung suatu penggunaan X]

ika pernyataan S adalah suatu pernyataan IF atau LOOP, maka bagian DEF akan kosong an bagian USE didasarkan pada kondisi dari pernyataan S. Definisi dari variabel X pada ernyataan S dinyatakan “tinggal” di dalam pernyataan S’ jika ada suatu jalur dari pernyataan

ke pernyataan S’ yang tidak mengandung definisi X tersebut.

atan Definition-Use (DU) dari X ditulis dalam bentuk [X,S,S’], dimana S dan S’ adalah omor pernyataan, hal ini berarti X ada pada DEF(S) dan USE(S’), dan definisi X pada ernyataan S tinggal di dalam pernyataan S’.

uatu strategi data flow testing sederhana harus mencakup tiap ikatan DU setidaknya sekali. leh karena itu data flow testing disebut juga strategi DU testing.

n p S s id v U J d p S Ik n p S O

DU testing tidak selalu menjamin pemenuhan cakupan seluruh cabang dari program. Namun hal ini adalah suatu situasi yang jarang terjadi, bilamana suatu cabang tidak menjadi cakupa dari DU testing, seperti konstruksi IF-THEN-ELSE, dimana bagian THEN tidak mempunyai definisi variabel apapun, dan bagian ELSE tidak ada. Pada situasi ini, cabang ELSE dari pernyataan IF tidak perlu di cakup oleh DU testing.

Strategi data flow testing sangat berguna untuk menentukan jalur tes pada program yang berisi pernyataan nested if dan loop. Sebagai ilustrasi dari penerapan DU testing untuk memilih jalur tes PDL sebagai berikut:

Bab III Disain Test Case Halaman 49

n strategi DU testing dalam memilih jalur tes dari diagram control flow, fnisi dan penggunaan dari variabel di tiap kondisi atau blok pada PDL.

kan pada pernyataan akhir dari blok B1, B2, B3, B4, n pertama dari blok B2, B3, B4, B5, dan B6. Strategi

variabel dari X dalam kondisi butuhkan lima jalur adalah kelima jalur ini dibutuhkan untuk

katan DU lainnya dapat di cakup dengan p.

k memilih jalur tes dari PDL, sebagaimana

rlu menentukan apakah jalur fisibel untuk program; yaitu

ataan-pernyataan pada suatu program dihubungkan satu sama lain berdasarkan tuk pem

dengan testing kondisi. Proc x B1; Do while C1 If C2 Then If C4 Then B4; Else B5; Endif; Else If C3 Then B2; Else B3; Endif; Endif; Enddo; B6; End proc; Untuk menggunaka perlu mengetahui de

Diasumsikan bahwa variabel X didefinisi dan B5 dan digunakan pada pernyataa

DU testing membutuhkan suatu eksekusi jalur terpendek dari tiap Bi, 1 < i ≤ 5, ke tiap Bj, 2 < j ≤ 6. (Suatu testing tertentu juga mencakup penggunaan tiap

C1,C2, C3, dan C4.) Walaupun ada 25 ikatan DU dari variabel X, hanya di tes untuk mencakup ikatan DU ini. Alasannya

mencakup ikatan DU X dari Bi, 1 < i ≤ 5, ke B6 dan i membuat kelima jalur ini beriterasi sesuai dengan loo Jika menggunakan strategi branch testing untu

disebutkan di atas, tidak dibutuhkan informasi tambahan. Untuk memilih jalur tes dari diagram untuk BRO testing, dibutuhkan pengetahuan akan struktur dari tiap kondisi atau blok. (Setelah pemilihan jalur program, pe

setidaknya satu masukan ada yang melalui jalur.) Sejak perny

pada definisi dan penggunaan variabel, pendekatan data flow testing akan efektif un mendeteksi error. Bagaimanapun juga, masalah-masalah pengukuran cakupan tes dan

ilihan jalur tes untuk data flow testing akan lebih sulit daripada masalah yang berkaitan

By Hendranet

Bab III Disain Test Case Halaman 50 Ada

eks a melakukan tes suatu sistem yang besar. Namun biasanya akan digunakan pada

3.2.7 Loop

lah tidak realistis untuk mengasumsikan bahwa data flow testing akan digunakan secara tensif bil

daerah tertentu yang ditargetkan sebagai penyebab kesalahan dari software.

Testing

Gambar 3.12 Tipe-tipe dari loop.

Loop testing adalah suatu teknik white box testing yang berfokus pada validitas konstruksi kan empat kelas yang berbeda dari loop

m yang dapat dilewatkan pada loop:

atan pada loop.

dikembangkan pada nested loops, jumlah kemungkinan tes akan berkembang secara geometris searah dengan semakin tingginya tingkat dari nested loops.

Beizer [BEI90], memberikan suatu pendekatan yang akan menolong untuk mengurangi jumlah tes.

1. Mulailah dari loop yang paling dalam. Set semua loops lainnya dengan nilai minimum. 2. Lakukan tes simple loops untuk loop yang paling dalam, dengan tetap mempertahankan

loops yang ada di luarnya dengan nilai parameter iterasi yang minimum. Tambahkan tes loop secara eksklusif. Gambar 3.12 memperlihat

[BEI90], yaitu:

Simple Loops Nested Loops Concatenated Loops Unstructured Loops

Simple Loops. Sekumpulan tes berikut ini dapat digunakan untuk simple loops, dimana n adalah jumlah maksimu

1. Lompati loop secara keseluruhan, tak ada iterasi / lew 2. Lewatkan hanya satu kali iterasi pada loop.

3. Lewatkan dua kali iterasi pada loop.

4. Lewatkan m kali iterasi pada loop dimana m<n. 5. Lewatkan n-1, n, n+1 kali iterasi pada loop.

Nested Loops. Jika pendekatan tes untuk simple loops

Bab III Disain Test Case Halaman 51 lainnya untuk nilai yang diluar daerah atau tida

iterasi.

k termasuk dalam batasan nilai parameter

d loops dapat dites dengan menggunakan pendekatan

ted loops, dan nilai loop counter pada loop 1 digunakan sebagai nilai

k dapat dites dengan efektif. Dan bila memungkinkan loops jenis 3. Kerjakan dari dalam ke luar, lakukan tes untuk loop berikutnya, tapi dengan tetap

mempertahankan semua loop yang berada di luar pada nilai minimum dan nested loop lainnya pada nilai yang umum.

4. Teruskan hingga keseluruhan dari loops telah dites.

Concatenated Loops. Concatenate

yang didefinisikan untuk simple loops, jika tiap loops independen (tidak saling bergantung) antara satu dengan yang lainnya. Dikatakan dua loops tidak independen, jika dua loops merupakan concatena

awal untuk loop 2. Bila loops tidak independen, direkomendasikan memakai pendekatan sebagaimana yang digunakan pada nested loops.

Unstructured Loops. Tida ini harus didisain ulang.

Dalam dokumen Testing dan Implementasi Sistem (Halaman 56-59)