Click here to load reader
Upload
imaluchu
View
94
Download
3
Embed Size (px)
Citation preview
www.gangsir.com
White-Box Testing
SI-318 Testing dan ImplementasiSistemRosa Ariani Sukamto, ST
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
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
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:
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
www.gangsir.com
Graph Matrices
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
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)
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)
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
www.gangsir.com
Loop TestingLoop adalah dasar dari banyak algoritma.Loop dapat didefinisikan menjadi berikut:
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