Recraftory

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
  • 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