Episode ini membahas runbook untuk flaky tests, environment drift, dan browser failures, pengelolaan kesehatan suite dan team ownership, strategi recovery saat baseline berubah, serta jadwal maintenance dan cleanup tasks.

Suite yang sehat bukan hanya soal test yang hijau hari ini — ia soal bagaimana tim bereaksi saat test gagal, siapa yang bertanggung jawab, dan bagaimana memulihkan diri setelah masalah. Episode 19 ini membahas operational readiness: runbook, ownership, dan proses maintenance yang membuat suite bisa dikelola dalam jangka panjang.
Seperti operasi produksi, test suite perlu prosedur. Runbook menjawab "apa yang harus kulakukan saat ini?" saat test flaky, environment drift, atau browser failure. Ownership menjawab "siapa yang menyelesaikan ini?" Dan maintenance menjawab "kapan kita merawat suite sebelum rusak?" Ketiganya akan kita susun satu per satu.
Test flaky adalah test yang kadang lolos, kadang gagal tanpa perubahan kode. Ini runbook langkah demi langkah:
getByRole atau getByTestId.waitForTimeout dengan menunggu kondisi.[ ] Ambil trace dari CI
[ ] Identifikasi langkah yang gagal
[ ] Periksa locator dan timing
[ ] Perbaiki root cause, bukan gejalaEnvironment drift terjadi ketika CI berbeda dari lokal — versi Node, browser, atau dependency tidak sinkron. Deteksi dan langkahnya:
npx playwright --version di CI dan lokal.package-lock.json atau bun.lock) di-commit.Browser tidak bisa diluncurkan biasanya karena dependency sistem hilang di Linux CI. Solusinya:
npx playwright install --with-depsnpx playwright install --with-deps menginstall browser beserta dependencies sistem. Jika runner CI sudah memakai image resmi Playwright, dependencies ini sudah ada — jadi pilih image yang sesuai dengan versi Playwright kalian.
Kesehatan suite bisa diukur dengan metrik sederhana yang dipantau rutin:
npx playwright test --reporter=json --output=report.json--reporter=json menghasilkan data terstruktur yang bisa diolah script untuk memantau metrik kesehatan secara otomatis.
Setiap test suite butuh pemilik yang jelas — bukan "semua orang" yang berarti tidak ada orang. Tetapkan ownership per area: tim frontend memegang test UI, tim backend memegang test API, dan ada satu koordinator yang menjaga konfigurasi dan infrastruktur suite.
Perlakukan test seperti kode produksi: setiap perubahan test harus melewati review. Ini mencegah perubahan yang menurunkan kualitas — misalnya menghapus assertion untuk membuat test lolos, atau menambah waitForTimeout untuk menutupi masalah.
Saat desain berubah, baseline visual (episode 16) harus diperbarui. Prosedur yang aman:
--update-snapshots.Jika diff muncul tanpa ada perubahan desain, itu alarm — jangan update baseline untuk menutupinya. Selidiki penyebabnya: mungkin font berubah, konten dinamis ikut ter-render, atau environment rendering berbeda.
Untuk perubahan besar (redesign seluruh halaman), bekukan visual test sementara, selesaikan perubahan, lalu regenerate baseline dari kondisi yang benar. Dokumentasikan periode freeze agar tim memahami kenapa visual test tidak berjalan saat itu.
Suite butuh perawatan berkala, bukan hanya saat rusak. Jadwal yang sehat:
Fitur yang dihapus menyisakan test yang mati. Hapus test usang bersamaan dengan fiturnya — test yang menunjuk fitur yang sudah tidak ada hanya menambah runtime dan kebingungan.
[ ] Hapus test untuk fitur yang sudah dihapus
[ ] Perbarui locator yang menyebut elemen lama
[ ] Verifikasi fixture dan helper yang masih dipakai
[ ] Perbarui snapshot baseline setelah desain berubahArtifact test (screenshot, video, trace) cepat mengisi storage. Atur retention di CI — GitHub Actions bisa menyetel retention-days, dan folder test-results lokal bisa dibersihkan otomatis:
rm -rf test-results playwright-reportPerintah rm -rf test-results playwright-report membersihkan hasil test lokal. Biasakan menjalankannya berkala agar workspace tidak membengkak dengan artifact lama.
Episode 19 melengkapi kalian dengan sisi operasional testing: runbook untuk tiga kegagalan paling umum, metrik dan ownership untuk menjaga kesehatan suite, prosedur recovery saat baseline berubah, serta jadwal maintenance dan cleanup yang mencegah pembusukan diam-diam.
Inti yang harus dibawa pulang:
npx playwright install --with-deps menyelesaikan mayoritas browser failure di Linux CI.Di episode 20 selanjutnya kita akan membahas real-world use cases dan patterns — contoh kasus nyata checkout e-commerce, signup flow, dan dashboard workflows, pola desain test untuk end-to-end automation, keseimbangan UI test dengan API dan component test, serta prioritas test untuk jalur bisnis kritis.