12

Click here to load reader

5 White Box Testing

Embed Size (px)

Citation preview

Page 1: 5 White Box Testing

www.gangsir.com

White-Box Testing

SI-318 Testing dan ImplementasiSistemRosa Ariani Sukamto, ST

Page 2: 5 White Box Testing

www.gangsir.com

Pendahuluan

White Box Testing atau Glass Box TestingMetode mendesain kasus uji dengan menggunakanstruktur kontrol dari desain prosedural (fungsi-fungsi) untukmembuat kasus ujiSW Engineer harus dapat membuat kasus uji yang menjamin semua aliran modul yang independen minimal diuji sekaliMenguji semua putusan lojik (logical decisions) pada ruanglingkup yang benarnya dan yang salahMenguji semua perulangan (looping) dalam ruanglingkupnya dan ruang operasinyaMenguji struktur data internal untuk memastikanvaliditasnya

Page 3: 5 White Box Testing

www.gangsir.com

Pendahuluan

Mengapa tidak hanya menguji spesifikasi?Kesalahan lojik (logic errors) dan asumsi yang salah berbanding terbalik dengan kemungkinandieksekusinya sebuah alur program dengan baikKita sering berpikir bahwa sebuah aliran lojik(logical path) yang jarang dieksekusi tidak pentingpadahal sebenarnya proses itu sering dieksekusiPenampilan letak kesalahan (typographical errors) biasanya dilakukan secara random

Page 4: 5 White Box Testing

www.gangsir.com

Basis Path/Control Structure Testing

Diperkenalkan oleh Tom McCabeMetode Basis Path mengijinkan pendesain kasus uji untukmembuat perkiraan lojik yang kompleks dari desain prosedural(fungsi-fungsi) dan menggunakan perkiraan ini untukmendefinisikan aliran eksekusiFlow Graph Notation:

Page 5: 5 White Box Testing

www.gangsir.com

Graph MatricesDapat secara otomatis menggenerasi flow graph dan mendeterminasi aliran dasar prosesDapat menggunakan graph matrix sebagaitoolsGraph matrix:

adalah bujursangkar dengan #sisi yang merepresentasikan #simpulbaris dan kolom merepresentasikan simpulnilai 1 merepresentasikan adanya keterhubungan antarsimpul

Page 6: 5 White Box Testing

www.gangsir.com

Graph Matrices

Page 7: 5 White Box Testing

www.gangsir.com

Condition Testing (1)Condition Testing bertujuan untuk mengeksekusi semua kondisilojik dari sebuah modul programDapat mendefinisikan

Relational Expression (E1 op E2) : dimana E1 dan E2 adalaharithmetic expressionSimple Condition: variabel boolean atau relational expression, mungkin diawali dengan operator NOTCompound condition: terdiri dari dua atau lebih simple conditions, operator boolean, dan tanda kurungBoolean Expression: kondisi tanpa relational expression

Tipe kesalahan pada sebuah kondisi dapat mencakup:boolean operator error (adanya incorrect/missing/extra booleanoperator)boolean variable errorboolean parenthesis (tanda kurung) errorrelational operator errorarithmetic expression error

Page 8: 5 White Box Testing

www.gangsir.com

Condition Testing (2)Metode condition testing fokus pada pengujian setiap kondisi yang ada pada programKeuntungan strategi condition testing

Memperkirakan pengujian berdasarkan kondisi adalah hal yang simpelCakupan pengujian dapat mengarahkan pada penambahan kasus ujiuntuk sebuah program

Beberapa strategi yang termasuk condition testingBranch TestingDomain TestingBranch and Relational Operator Testing – menggunakan kondisi sebagaibatasan

Contoh: C1 = B1 & B2dimana B1, B2 adalah boolean conditionsBatasan kondisi D1, D2 dimana D1 dan D2 dapat bernilai true (t) ataufalse (f)Cabang dan operator relasi membutuhkan batasan-batasan { (t,t), (f,t), (t,f) } harus dipenuhi untuk eksekusi C1

Cakupan batasan-batasan menjamin pendekteksian kesalahanpada operator relasional (relational operator errors)

Page 9: 5 White Box Testing

www.gangsir.com

Branch Testing

Branch testing adalah strategi pengujianberbasis kondisi yang paling simpelUntuk setiap kondisi percabangan C, makasetiap cabangnya harus dieksekusi minimal sekali (yang bernilai true atau false)

Page 10: 5 White Box Testing

www.gangsir.com

Data Flow TestingMetode Data Flow testing memilih aliran tes dari program berdasarkan lokasi pendefinisian dan penggunaan variabeldalam programdengan Data flow testing

Setiap statemen di dalam program diasumsikan diisi dengan angkayang unik dan diasumsikan tidak ada fungsi yang mengubahnya

Defs( s ) = { x | statemen S berisi pendefinisian X }Use( s ) = { x | statemen S berisi penggunaan X }DU Chain (Definition - Use Chain) dari variabel X dengan bentuk{X, S, S’}, dimana S, S’ adalah jumlah statemen, X di dalamDefs(S) dan Defs(S’).Rangkaian yang mungkin lainnya:

DD (Definition-Definition Chain) – harus dihindariUU (Use-Use Chain) - common chainUD (Use-Definition Chain) - common chain

Salah satu strategi yang simpel adalah Strategi DU TestingStrategi ini menyatakan bahwa setiap DU chain harus dilalui minimal sekali

Page 11: 5 White Box Testing

www.gangsir.com

Loop TestingLoop adalah dasar dari banyak algoritma.Loop dapat didefinisikan menjadi berikut:

Page 12: 5 White Box Testing

www.gangsir.com

Loop Testing (2)Untuk menguji:

Simple Loops dengan n kali:Abaikan perulanganMasuki perulangan sekaliMasuki perulangan dua kaliMasuki perulangan m kali dimana m<n.Masuki perulangan (n-1), n, dan (n+1) kali

Nested LoopsMulai dengan perulangan yang ada di dalam, set semua perulanganke nilai minimumUji sebagai simple loop untuk perulangan yang ada di dalamPengujian dari dalam ke luarLanjutkan sampai semua loop diuji

Concatenated LoopsJika perulangan independen, gunakan pengujian simple loop Jika perulangan tidak saling independen, gunakan nested loops.

Unstructured loopsJangan diuji – harus didesain ulang