White-box testing adalah metode pengujian yang memerlukan pemahaman terhadap struktur internal aplikasi, termasuk logika program, algoritma, dan alur kode. Dalam white-box testing, tester biasanya memilikiakses langsung ke source code dan menguji berbagai jalur eksekusi di dalam program. Teknik yang biasa digunakan adalah statement coverage, branch coverage, dan path analysis. White-box testing sangat bergunauntuk menemukan kesalahan logika yang tidak terlihat oleh pengguna.  

Sedangkan, black-box testing dilakukan tanpa mengetahui struktur internal dari aplikasi. Tester hanya fokus pada input dan output, memeriksa apakah sistem bekerja sesuai kebutuhan fungsional. Pendekatan ini seringdigunakan pada level system testing dan acceptance testing. Teknik yang terkenal dalam black-box testing antara lain equivalence partitioning, boundary value analysis, decision table, dan state transition testing. 

Perbedaan antara white-box dengan black-box testing adalah pada fokus dari testing-nya. White-box testing berfokus pada bagaimana sistem bekerja secara internal, sementara black-box testing berfokus pada apa yang seharusnya dilakukan oleh sistem. Dalam white-box testing, tester dapat menemukan kesalahan pada jalur logika atau kondisi tertentu yang mungkin tidak pernah diuji oleh black-box. Sedangkan, black-box testingdapat menemukan kesalahan fungsional yang mungkin terlewat jika hanya berfokus pada kode. 

Referensi:  

  • Beizer, B. (1990). Software testing techniques (2nd ed.). Van Nostrand Reinhold. 
  • Ammann, P., & Offutt, J. (2016). Introduction to software testing (2nd ed.). Cambridge University Press.