WHITE BOX
Dikenal juga dengan nama glass box, structural, clear box dan open box testing. Merupakan teknik testing perangkat lunak yang harus mengetahui secara detail tetang perangkat lunak yang akan di uji.
Untuk pengujian yang lengkap maka suatu perangkat lunak harus diuji dengan white box dan black box testing
Dengan Menggunakan white box testing, software engineer da[at medesain suatu test cases yang dapat digunakan untu :
1. Menguji setiap jalur independent
2. Menguji keputusan logic (true atau falsa )
3. Menguji Loops dan batasannya
4. Menguji Data Struktur internalnya
White Box Testing menggunakan 3 macam tahapam testing
Unit Testing
Integration testing
Regression Testing
Mendesain Test Case, Setiap membuat module/unit maka test case harus dilakukan : Test Awal yang dapat dilakukan adalah
Analisa Code Coverage : Basic block coverage, Decision coverage, Condition coverage, Branch coverage, Loop coverage
Basis path testing
Digunakan untuk melakukan pengujian bahwa semua jalur independent terlewati semua. Paling tidak suatu jalur minimal harus terlewati sekali.
Statement Decision Path Coverage
Independent Path pada gambar di atas:
1. 1-2-7-8 (property owned, pay rent)
2. 1-2-7-9 (property owned, no money for rent)
3. 1-2-3-4-5-6 (buy house)
4. 1-2-3 (don't want to buy)
5. 1-2-3-4 (want to buy, don't have enough money)
Loop Test
Bertugas untuk melakukan validasi terhadap loop
Jenis loop:
Simple Loopsdengan ukuran n:
Skip loop entirely
Only one pass through loop
Two passes through loop m passes through loop where m
(n-1), n, and (n+1) passes through the loop.
Nested Loops
Start with inner loop.
Set all other loops to minimum values.
Conduct simple loop testing on inner loop.
Work outwards Continue until all loops tested.
Concatenated Loops
If independent loops, use simple loop testing.
If dependent, treat as nested loops.
Unstructured
loopsDon't test -redesign.
BLACK BOX
Dikenal dengan nama lain:
Input/output testing
Data driven testing
Menggunakan asumsi tidak mengenal struktur internal dari program (black box). Berkonsentrasi untuk menemukan kondisi dimana program tidak berjalan sesuai dengan spesifikasi (fungsional) Menggunakan spesifikasi untuk data test
Berusaha menemukan kesalahan: Fungsi yang tidak benar atau tidak ada Kesalahan interface Kesalahan pada struktur data atau akses DB Kesalahan perilaku atau performa
Kesalahan inisialisasi Biasa dilakukan di akhir dari proses testing, karena tidak memperhatikan struktur kontrol seperti white box testing
Untuk bisa menemukan semua kesalahan menggunakan strategi ini, diperlukan exhaustive input testing (menggunakan segala macam kemungkinan sebagai input) Input tidak hanya valid input, tetapi juga kombinasi yang mungkin dimasukkan Testing akan semakin kompleks, sebanding dengan kompleksitas program Unlimited virtual test case