1. WHITE BOXTESTING a. Pengertian: • White Box Testing adalah metode pengujian perangkat lunak yang berfokus pada struktur internal kode program. • Disebut “White Box” karena kode program dianggap transparan bagi penguji. b. Tujuan: • Memastikan semua baris kode, kondisi, cabang, dan jalur logika dieksekusi. • Mendeteksi kesalahan pada logika, kondisi, perulangan, dan algoritma. • Menjamin kualitas program dari sisi teknis.
3.
TEKNIK WHITE BOXTESTING 1. Statement Coverage memastikan semua pernyataan kode → dieksekusi minimal sekali. 2. Branch Coverage memastikan semua cabang if, else, switch diuji. → 3. Path Coverage menguji semua jalur eksekusi program. → 4. Condition Coverage menguji semua kondisi logika bernilai → benar & salah. 5. Loop Testing menguji perulangan dengan kasus 0 kali, 1 kali, → dan banyak kali.
4.
KELEBIHAN & KELEMAHANWHITE BOX TESTING Kelebihan: • Dapat menemukan kesalahan logika internal. • Memastikan semua jalur program diuji. • Membantu meningkatkan kualitas kode. Kelemahan: • Membutuhkan pengetahuan mendalam tentang kode. • Waktu pengujian bisa lebih lama. • Tidak cocok untuk menguji fungsi dari sudut pandang pengguna.
5.
2. UNIT TESTING a.Pengertian: • Unit Testing adalah pengujian pada unit terkecil kode program, seperti fungsi, prosedur, atau metode. • Dilakukan untuk memastikan setiap unit bekerja sesuai spesifikasi sebelum diintegrasikan dengan unit lain. b. Tujuan: • Memverifikasi logika bisnis pada unit kecil. • Mengurangi bug sejak dini sebelum tahap integrasi. • Mempermudah debugging dan pemeliharaan kode.
6.
TOOLS, KELEBIHAN &KELEMAHAN UNIT TESTING Tools / Framework Unit Testing: • Java JUnit → • Python PyTest, unittest → • .NET (C#) NUnit → • JavaScript Mocha, Jasmine → Kelebihan: • Dapat menemukan bug sejak tahap awal. • Membantu programmer menjaga kualitas kode saat terjadi perubahan. • Mempercepat proses debugging.
7.
Kelemahan: • Membutuhkan waktutambahan untuk menulis test case. • Tidak bisa mendeteksi masalah integrasi antar modul. • Kadang membuat proses coding lebih kompleks.
8.
3. HUBUNGAN WHITEBOX TESTING & UNIT TESTING • Unit Testing sering menggunakan teknik White Box Testing, karena penguji harus mengetahui struktur internal fungsi yang diuji. • White Box Testing bisa dilakukan di berbagai level (unit, integration, system), tetapi paling umum dipakai dalam Unit Testing.
9.
4. CONTOH PENERAPAN a.White Box Testing (Python): def bagi(a, b): if b != 0: return a / b else: return 'Error' → Statement Coverage: jalankan semua baris kode. → Branch Coverage: uji b=0 dan b≠0. → Path Coverage: pastikan semua jalur eksekusi diuji.
10.
b. Unit Testing(PyTest): def test_bagi(): assert bagi(10, 2) == 5 assert bagi(10, 0) == 'Error'
11.
5. STUDI KASUSPROGRAM def cek_grade(nilai): if nilai >= 85: return "A" elif nilai >= 70: return "B" elif nilai >= 55: return "C" else: return "D" 1. Statement Coverage Pertanyaan: Berapa banyak test case minimal yang diperlukan agar semua statement pada fungsi cek_grade dieksekusi? a. 2 b. 3 c. 4 d. 5
12.
5. STUDI KASUSPROGRAM def cek_grade(nilai): if nilai >= 85: return "A" elif nilai >= 70: return "B" elif nilai >= 55: return "C" else: return "D" 2. Branch Coverage Pertanyaan: Jika ingin menguji semua cabang if, elif, dan else, test case mana yang paling tepat? a. [90, 75, 60, 40] b. [100, 85, 55, 30] c. [80, 70, 50] d. [95, 65]
13.
5. STUDI KASUSPROGRAM def cek_grade(nilai): if nilai >= 85: return "A" elif nilai >= 70: return "B" elif nilai >= 55: return "C" else: return "D" 3. Path Coverage Pertanyaan: Jalur eksekusi apa saja yang ada pada fungsi cek_grade? a. if return "A", elif1 return "B", elif2 return "C", else return "D" → → → → b. if return "A", elif1 return "B", else return "C" → → → c. Hanya ada satu jalur karena selalu menghasilkan nilai. d. Tidak ada jalur eksplisit.
14.
5. STUDI KASUSPROGRAM def cek_grade(nilai): if nilai >= 85: return "A" elif nilai >= 70: return "B" elif nilai >= 55: return "C" else: return "D" 4. Condition Coverage Pertanyaan: Untuk kondisi nilai >= 85, apa yang harus diuji? a. Nilai tepat 85 dan nilai < 85 b. Nilai tepat 85 dan nilai > 85 c. Nilai < 85 dan nilai > 85 d. Nilai 70 dan 55
15.
6. KESIMPULAN • WhiteBox Testing fokus pada struktur internal kode (statement, → branch, path, loop, condition). • Unit Testing fokus pada fungsi terkecil kode untuk memastikan → logika berjalan benar. • Kombinasi keduanya penting untuk menghasilkan perangkat lunak yang andal, bebas bug, dan mudah dipelihara.