Mengenal Tentang Apa Itu E2E Testing

mengenal e2e testing

Saat membuat aplikasi, kita tidak hanya ingin memastikan setiap fitur bekerja. Kita juga ingin memastikan seluruh perjalanan pengguna berjalan lancar, mulai dari membuka aplikasi hingga menyelesaikan tugasnya. Di sinilah End-to-End (E2E) Testing berperan.

ELI10: Bayangkan kamu membeli LEGO. Kamu ingin memastikan kotaknya bisa dibuka, semua keping lengkap, petunjuknya benar, dan mobilnya bisa dirakit sampai selesai. Itulah konsep End-to-End Testing.

Apa Itu E2E Testing?

End-to-End (E2E) Testing adalah proses menguji aplikasi dari awal hingga akhir seolah-olah yang menggunakannya adalah pengguna sungguhan.

Contohnya pada aplikasi belanja online:

  1. Membuka website
  2. Login
  3. Mencari produk
  4. Menambahkan ke keranjang
  5. Checkout
  6. Melakukan pembayaran
  7. Memastikan pesanan berhasil dibuat

Jika semua langkah berhasil dilakukan, berarti alur utama aplikasi berjalan dengan baik.

Perbedaan Unit Test, Integration Test, dan E2E Test

Jenis Testing Apa yang Diuji?
Unit Test Satu fungsi atau komponen kecil.
Integration Test Beberapa komponen yang saling bekerja sama.
E2E Test Seluruh perjalanan pengguna dari awal hingga selesai.

Analogi Restoran

  • Unit Test → Memastikan telur matang.
  • Integration Test → Memastikan roti, daging, dan saus menjadi burger.
  • E2E Test → Pelanggan datang, memesan makanan, membayar, menerima pesanan, lalu makan dengan nyaman.

Apa Itu Cypress?

Cypress adalah framework untuk melakukan End-to-End Testing pada aplikasi web. Framework ini menjalankan browser secara otomatis dan bertindak seperti pengguna sungguhan.

Cypress dapat melakukan berbagai aktivitas seperti:

  • Membuka website
  • Klik tombol
  • Mengisi form
  • Upload file
  • Scroll halaman
  • Memastikan teks tertentu muncul

Contoh Cypress

cy.visit("/login");

cy.get("#email").type("andi@gmail.com");
cy.get("#password").type("123456");

cy.contains("Login").click();

cy.contains("Dashboard");

Artinya, Cypress akan membuka halaman login, mengisi email dan password, menekan tombol Login, lalu memastikan Dashboard berhasil muncul.

Apa Itu Playwright?

Playwright juga merupakan framework End-to-End Testing yang memiliki fungsi serupa dengan Cypress. Playwright dikembangkan untuk mendukung berbagai browser modern dengan performa yang sangat cepat.

Contoh Playwright

await page.goto("/login");

await page.fill("#email", "andi@gmail.com");
await page.fill("#password", "123456");

await page.click("text=Login");

await expect(page.locator("text=Dashboard"))
    .toBeVisible();

Perbedaan Cypress dan Playwright

Cypress Playwright
Mudah dipelajari Lebih fleksibel
Debugging sangat nyaman Performa lebih cepat
Komunitas besar Popularitas terus meningkat
Fokus pada pengujian web Mendukung Chromium, Firefox, dan WebKit (Safari)
Konfigurasi sederhana Mendukung multi-tab dan multi-browser dengan baik

Mengapa Banyak Developer Memilih Playwright?

  • Lebih cepat dijalankan.
  • Mendukung berbagai browser.
  • Dapat membuka banyak tab.
  • Dapat menjalankan pengujian secara paralel.
  • Cocok untuk aplikasi web modern.

Contoh Penggunaan di Dunia Nyata

Misalkan sebuah aplikasi perbankan memiliki fitur transfer uang. Daripada setiap hari karyawan mengecek secara manual apakah fitur tersebut masih berfungsi, E2E Testing dapat melakukannya secara otomatis.

Robot pengujian akan:

  1. Login
  2. Memilih menu Transfer
  3. Mengisi nominal
  4. Menekan tombol Kirim
  5. Memastikan transfer berhasil

Jika ada perubahan kode yang menyebabkan transfer gagal, framework seperti Cypress atau Playwright akan langsung memberikan peringatan kepada developer.

infografis e2e testing

Kapan Menggunakan E2E Testing?

Gunakan End-to-End Testing pada fitur-fitur yang paling penting dalam aplikasi, misalnya:

  • Login
  • Registrasi
  • Checkout
  • Pembayaran
  • Upload File
  • Reset Password
  • Pemesanan Tiket

Karena E2E Testing menjalankan aplikasi secara penuh, prosesnya lebih lambat dibanding Unit Test sehingga biasanya hanya digunakan untuk menguji alur-alur utama aplikasi.

Kesimpulan

Bayangkan aplikasi adalah sebuah taman bermain.

  • Unit Test memeriksa apakah satu ayunan berfungsi.
  • Integration Test memastikan ayunan terpasang dengan benar pada rangkanya.
  • E2E Test memastikan seorang anak bisa masuk, membeli tiket, bermain, dan pulang tanpa masalah.

Sementara itu, Cypress dan Playwright adalah robot yang berpura-pura menjadi pengguna. Mereka mengklik tombol, mengisi formulir, dan memastikan semua fitur aplikasi berjalan sebagaimana mestinya.

Diskusi & Komentar