Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Otomasi Alur Kerja: Trigger, Kondisi, dan Penanganan Gagal

Pelajaran 13 dari 14

Idempotensi, antrean gagal, log, dan uji skenario gagal

Menguji skenario gagal dengan input tetap

Setelah pelajaran ini kamu bisa membuat layanan tiruan yang hasilnya tetap dan menyusun skenario uji yang mencakup galat sementara, galat permanen, dan percobaan ulang yang habis.

±13 menitDiperiksa 7 Okt 2026

Materi

Alur yang hanya diuji dengan data benar baru terbukti di jalur yang paling jarang bermasalah. Azure Well-Architected Framework menyatakan bahwa tanpa pengujian yang sengaja menyasar skenario gagal, tidak ada yang tahu apakah pola ketahanan benar-benar bekerja. Dokumen yang sama meminta pengujian batas antara galat sementara dan galat yang menetap, serta pengujian saat mekanisme coba ulang bawaan sudah habis.

Daftar skenario minimal untuk alur kerja: input tidak sah yang harus ditolak, galat sementara yang pulih setelah diulang, galat sementara yang tidak pulih sampai percobaan ulang habis, galat permanen yang tidak boleh diulang, dan event ganda. Untuk setiap skenario, hasil yang diharapkan ditulis sebelum alurnya dijalankan.

function cekResiTiruan(urutan) {
  let ke = 0;
  return () => urutan[Math.min(ke++, urutan.length - 1)];
}
const cekResi = cekResiTiruan(["JARINGAN", "OK"]);
cekResi(); // "JARINGAN"
cekResi(); // "OK"
cekResi(); // "OK" (hasil terakhir diulang)

Supaya skenario bisa diulang, layanan sungguhan diganti layanan tiruan yang hasilnya sudah ditetapkan, seperti contoh di atas. Tiruan itu dibuat dengan closure, fungsi yang mengingat penghitungnya sendiri. Jam juga ditiru sebagai angka yang dimajukan kode, bukan ditunggu sungguhan, sehingga uji dengan jeda puluhan detik selesai seketika. Azure menyebut cara lain untuk lingkungan sungguhan, yaitu fault injection: memunculkan galat dengan sengaja, misalnya mematikan layanan sebentar.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Uji alur notifikasi memakai tiruan yang memanggil Math.random() < 0.3 untuk memutuskan gagal. Di laptop Rina uji itu lulus, di server CI gagal, padahal kodenya sama. Perbaikan apa yang membuat hasil uji tetap?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke