Menguasai regression testing dan smoke testing untuk memastikan perubahan kode tidak merusak fitur yang sudah ada dan build baru layak diuji lebih lanjut

Setelah di episode 5 kita mempelajari functional & usability testing, pada episode ini kita mempelajari regression & smoke testing — dua jenis testing yang krusial untuk memastikan stabilitas aplikasi. Regression testing memastikan perubahan kode tidak merusak fitur yang sudah ada, sementara smoke testing memastikan build baru layak diuji lebih lanjut.
Mengapa regression & smoke testing penting? Karena dalam siklus pengembangan yang cepat, perubahan kode bisa secara tidak sengaja merusak fitur yang sudah berfungsi. Tanpa regression testing, bug bisa lolos ke production dan membuat frustrasi pengguna.
Regression testing adalah pengulangan test yang sudah ada untuk memastikan perubahan kode tidak memperkenalkan bug baru:
Regression Testing Workflow:
├── 1. Developer mengubah kode (fitur baru atau bug fix)
├── 2. QA menjalankan regression suite
├── 3. Jika ada test yang gagal:
│ ├── Bug baru ditemukan → Buat bug report
│ └── Developer fix → QA retest
└── 4. Jika semua test passed → Build layak diuji lebih lanjutRegression suite adalah kumpulan test cases yang dijalankan setiap kali ada perubahan kode:
Regression Suite Structure:
├── Critical Path Tests (wajib)
│ ├── Login/Logout
│ ├── Core business flow
│ └── Payment process
├── High Priority Tests
│ ├── Fitur yang sering berubah
│ ├── Fitur dengan history bug tinggi
│ └── Fitur yang baru di-fix
└── Medium Priority Tests (opsional, tergantung waktu)
├── Fitur stabil
└── Edge cases yang sudah tercoverNote
Regression suite harus dijalankan secara konsisten. Jika dijalankan hanya sesekali, efektivitasnya berkurang karena bug mungkin sudah lolos ke production.
Tidak semua test harus dijalankan setiap kali. Prioritaskan berdasarkan risiko:
| Prioritas | Kriteria | Frekuensi |
|---|---|---|
| P1 (Critical) | Core business, payment, security | Setiap build |
| P2 (High) | Fitur utama, high traffic | Setiap sprint |
| P3 (Medium) | Fitur sekunder | Setiap release |
| P4 (Low) | Edge cases, nice-to-have | Monthly |
Smoke testing adalah test singkat untuk memastikan build baru layak diuji lebih lanjut. Jika smoke test gagal, tidak perlu melanjutkan testing karena build sudah rusak.
Smoke Testing Purpose:
├── Validasi build baru bisa di-install dan dijalankan
├── Pastikan critical path berfungsi
├── Hindari waste time untuk testing build yang rusak
└── Quick sanity check sebelum deep testingSmoke test suite harus minimal dan cepat:
Smoke Test Checklist (5-10 menit):
├── 1. Application bisa diakses
│ ├── URL bisa diakses
│ └── Tidak ada error 500
├── 2. Login berfungsi
│ ├── Login dengan valid credentials
│ └── Dashboard bisa diakses
├── 3. Core flow berfungsi
│ ├── Bisa browse produk
│ ├── Bisa tambah ke cart
│ └── Bisa checkout (minimal sampai payment page)
└── 4. Tidak ada crash
├── Tidak ada unhandled error
└── Semua halaman utama bisa diaksesSmoke Test - E-Commerce App:
├── TC-SMOKE-001: Akses homepage
│ ├── Buka https://app.example.com
│ ├── Expected: Homepage loaded, no error
│ └── Time: 30 detik
├── TC-SMOKE-002: Login
│ ├── Input valid credentials
│ ├── Expected: Redirect ke dashboard
│ └── Time: 1 menit
├── TC-SMOKE-003: Browse produk
│ ├── Klik "Produk"
│ ├── Expected: Produk list muncul
│ └── Time: 30 detik
├── TC-SMOKE-004: Tambah ke cart
│ ├── Klik "Tambah ke Cart"
│ ├── Expected: Cart count bertambah
│ └── Time: 30 detik
└── TC-SMOKE-005: Akses checkout
├── Klik "Checkout"
├── Expected: Checkout page loaded
└── Time: 30 detik| Aspek | Regression Testing | Smoke Testing |
|---|---|---|
| Tujuan | Pastikan perubahan tidak merusak | Pastikan build layak diuji |
| Scope | Comprehensive (banyak test) | Minimal (critical path) |
| Waktu | 1-4 jam | 5-15 menit |
| Kapan dijalankan | Setiap perubahan kode | Setiap build baru |
| Jika gagal | Bug baru ditemukan | Build tidak layak diuji |
Tip
Jalankan smoke test terlebih dahulu. Jika smoke test gagal, hentikan testing dan laporkan ke developer. Jangan buang waktu untuk testing build yang sudah rusak.
Berikut langkah setup regression suite:
Regression Suite Setup:
├── 1. Identifikasi critical path
│ ├── Login/Logout
│ ├── Core business flow
│ ├── Payment process
│ └── User management
├── 2. Buat test cases
│ ├── Satu test case per critical flow
│ ├── Include happy path & error cases
│ └── Estimate execution time
├── 3. Prioritize
│ ├── P1: Critical path (wajib)
│ ├── P2: High priority (sprint)
│ └── P3: Medium priority (release)
├── 4. Automate (opsional)
│ ├── Automate P1 test cases
│ ├── Gunakan Playwright/Cypress
│ └── Integrate ke CI/CD
└── 5. Maintain
├── Update test cases saat fitur berubah
├── Review suite quarterly
└── Hapus test yang sudah tidak relevanPada episode 6 ini, kalian telah mempelajari regression & smoke testing.
Inti yang harus dibawa pulang:
Di episode 7 selanjutnya, kita akan membahas exploratory testing — bagaimana menemukan bug melalui eksplorasi kreatif tanpa script test yang ketat. Sampai jumpa di episode 7!