Pengenalan Testing
Memahami pentingnya testing dalam pengembangan perangkat lunak
Apa itu Testing
- Proses memverifikasi bahwa kode berjalan sesuai harapan
- Menemukan bug sebelum kode masuk ke produksi
- Memberikan keyakinan saat melakukan perubahan pada kode
Mengapa Testing Penting
- Mencegah bug mencapai pengguna akhir
- Memudahkan refactoring tanpa takut merusak fitur yang ada
- Mendokumentasikan perilaku kode melalui test case
- Mempercepat development jangka panjang dengan mengurangi debugging manual
Jenis-Jenis Testing
Unit Test
- Menguji bagian kode paling kecil secara terisolasi
- Fokus pada fungsi atau method tunggal
- Jumlah paling banyak dan waktu eksekusi paling cepat
Integration Test
- Menguji interaksi antar komponen atau modul
- Memastikan modul yang berbeda bisa bekerja sama
- Lebih lambat dari unit test karena melibatkan lebih banyak kode
End-to-End Test
- Menguji alur aplikasi dari awal hingga akhir
- Mensimulasikan perilaku pengguna sebenarnya
- Paling lambat dan paling mahal untuk dijalankan
Piramida Testing
-
Dasar: Unit test (banyak, cepat, murah)
-
Tengah: Integration test (jumlah sedang)
-
Puncak: End-to-end test (sedikit, lambat, mahal)
-
Semakin ke atas piramida, biaya maintenance dan waktu eksekusi semakin tinggi
-
Strategi yang baik menekankan unit test sebagai fondasi utama
Test Framework Populer
- Jest: framework testing JavaScript dengan fitur lengkap
- Vitest: alternatif Jest yang lebih cepat menggunakan Vite
- Mocha: framework testing JavaScript yang fleksibel
- pytest: framework testing untuk Python
- JUnit: framework testing untuk Java
Menulis Test yang Baik
- Setiap test seharusnya fokus pada satu hal
- Nama test harus menjelaskan perilaku yang diuji
- Test harus independen, tidak bergantung pada urutan eksekusi
- Test harus repeatable, hasilnya sama setiap kali dijalankan