Logo Universitas Teknokrat Indonesia

Dari Spesifikasi Kaku ke Skenario Jitu: 5 Tips Praktis Menulis Gherkin yang Efektif

Kategori: Teknologi
Gambar untuk Dari Spesifikasi Kaku ke Skenario Jitu: 5 Tips Praktis Menulis Gherkin yang Efektif

Banyak tim mengadopsi Gherkin dengan harapan besar untuk menjembatani komunikasi antara bisnis dan teknologi. Namun, tidak jarang adopsi ini berakhir dengan feature file yang membingungkan, sulit dipelihara, dan lebih terasa seperti "spesifikasi kaku" ketimbang skenario kolaboratif yang dinamis. Hasilnya, potensi Gherkin untuk menjadi alat yang presisi dan bermanfaat tidak tercapai.

Menulis Gherkin yang efektif adalah sebuah seni. Tujuannya bukan sekadar membuat tes otomatis berjalan, melainkan menciptakan deskripsi perilaku sistem yang jelas, ringkas, dan dapat dipahami oleh semua orang di dalam tim. Skenario yang "jitu" mampu menangkap esensi kebutuhan pengguna sekaligus menjadi dasar yang solid untuk automasi.

Berikut adalah 5 tips praktis untuk mengubah cara Anda menulis Gherkin, dari yang kaku menjadi skenario yang benar-benar jitu.

Baca juga : Warisan DCPU-16: Pelajaran dari CPU Virtual yang Gagal dan Potensinya di Masa Depan


1. Tulis dari Perspektif Pengguna, Bukan Penguji

Kesalahan paling umum adalah menulis skenario yang menjelaskan interaksi di level antarmuka (UI), seperti "klik tombol" atau "isi form". Pendekatan ini membuat skenario menjadi rapuh dan terlalu teknis. Gherkin yang baik berfokus pada tujuan atau niat pengguna.

  • Mengapa ini penting? Tampilan antarmuka bisa berubah, tetapi tujuan pengguna cenderung stabil. Dengan fokus pada niat, skenario Anda menjadi lebih kuat terhadap perubahan UI dan lebih mudah dipahami oleh pemangku kepentingan non-teknis.

Contoh yang Kurang Baik (Imperatif):

Gherkin

Scenario: Login pengguna
  Given saya berada di halaman login
  When saya mengisi username "budi" di field "user_field"
  And saya mengisi password "rahasia123" di field "pass_field"
  And saya menekan tombol "login_button"
  Then saya seharusnya melihat teks "Selamat datang, Budi!"

Contoh yang Baik (Deklaratif):

Gherkin

Scenario: Pengguna berhasil login
  Given saya adalah pengguna terdaftar
  When saya melakukan login dengan username "budi" dan password "rahasia123"
  Then saya seharusnya berhasil masuk ke akun saya
  And saya melihat pesan sambutan "Selamat datang, Budi!"

2. Gunakan Background untuk Konteks Berulang

Jika beberapa skenario dalam satu feature file memiliki langkah Given yang sama persis, jangan mengulanginya. Gunakan keyword Background untuk menetapkan konteks yang berlaku untuk semua skenario di dalamnya.

  • Mengapa ini penting? Background membuat skenario Anda lebih bersih, ringkas, dan fokus pada perilaku unik yang sedang diuji. Ini juga mengurangi duplikasi dan memudahkan pemeliharaan.

Contoh yang Kurang Baik (Duplikasi):

Gherkin

Feature: Manajemen Keranjang Belanja

Scenario: Menambah barang ke keranjang
  Given saya sudah login sebagai pengguna "siti"
  And saya memiliki keranjang belanja yang kosong
  When saya menambahkan "Buku Pemrograman" ke keranjang
  Then keranjang belanja saya seharusnya berisi 1 barang

Scenario: Menghapus barang dari keranjang
  Given saya sudah login sebagai pengguna "siti"
  And saya memiliki keranjang belanja yang kosong
  And saya sudah menambahkan "Buku Pemrograman" ke keranjang
  When saya menghapus "Buku Pemrograman" dari keranjang
  Then keranjang belanja saya seharusnya kosong

Contoh yang Baik (Menggunakan Background):

Gherkin

Feature: Manajemen Keranjang Belanja

Background:
  Given saya sudah login sebagai pengguna "siti"
  And saya memiliki keranjang belanja yang kosong

Scenario: Menambah barang ke keranjang
  When saya menambahkan "Buku Pemrograman" ke keranjang
  Then keranjang belanja saya seharusnya berisi 1 barang

Scenario: Menghapus barang dari keranjang
  Given saya sudah menambahkan "Buku Pemrograman" ke keranjang
  When saya menghapus "Buku Pemrograman" dari keranjang
  Then keranjang belanja saya seharusnya kosong

3. Satu Skenario, Satu Aturan Bisnis

Setiap skenario harus menguji satu aturan atau perilaku bisnis yang spesifik. Hindari membuat skenario "monster" yang mencoba menguji seluruh alur kerja dalam satu kali jalan.

  • Mengapa ini penting? Skenario yang fokus lebih mudah dibaca, lebih cepat dieksekusi, dan lebih mudah untuk di-debug ketika terjadi kegagalan. Ketika sebuah tes gagal, Anda akan tahu persis aturan bisnis mana yang bermasalah.

Contoh yang Kurang Baik (Menguji Terlalu Banyak Hal):

Gherkin

Scenario: Proses checkout lengkap
  Given saya memiliki barang di keranjang
  When saya menuju halaman checkout
  And saya mengisi alamat pengiriman
  And saya memilih metode pembayaran "Transfer Bank"
  And saya mengkonfirmasi pesanan
  Then saya seharusnya melihat halaman "Terima Kasih"
  And saya seharusnya menerima email konfirmasi
  And stok barang seharusnya berkurang

Contoh yang Baik (Dipecal menjadi Skenario Fokus):

Gherkin

Scenario: Pengguna berhasil mengkonfirmasi pesanan
  Given saya sudah mengisi alamat pengiriman dan memilih metode pembayaran
  When saya mengkonfirmasi pesanan
  Then saya seharusnya melihat halaman "Terima Kasih"
  And pesanan saya tercatat di sistem

Scenario: Email konfirmasi terkirim setelah pesanan dibuat
  Given sebuah pesanan telah berhasil dibuat oleh pengguna
  When proses konfirmasi pesanan selesai
  Then email konfirmasi seharusnya dikirimkan ke pengguna

Scenario: Stok barang berkurang setelah pesanan dikonfirmasi
  Given sebuah pesanan telah berhasil dibuat
  When pesanan tersebut dikonfirmasi
  Then stok untuk barang yang dipesan seharusnya berkurang

4. Gunakan Bahasa Bisnis, Bukan Jargon Teknis

Ingat, Gherkin ditujukan untuk semua orang. Hindari menggunakan istilah teknis seperti "database", "API response", "validasi CSS", atau "endpoint". Terjemahkan konsep teknis ke dalam bahasa yang relevan dengan domain bisnis.

  • Mengapa ini penting? Penggunaan bahasa bisnis memastikan bahwa analis bisnis dan pemilik produk dapat memvalidasi skenario tersebut dan benar-benar berkolaborasi dalam prosesnya.

Contoh yang Kurang Baik (Teknis):

Gherkin

Scenario: Validasi data pengguna baru
  When saya mengirim request POST ke endpoint "/users"
  Then saya seharusnya mendapat response code 201
  And sebuah record baru harus dibuat di tabel 'users'

Contoh yang Baik (Berorientasi Bisnis):

Gherkin

Scenario: Pendaftaran pengguna baru berhasil
  When saya mendaftarkan akun baru dengan informasi yang valid
  Then sistem seharusnya mengenali saya sebagai pengguna terdaftar

5. Manfaatkan Scenario Outline untuk Data Beragam

Ketika Anda perlu menguji aturan bisnis yang sama dengan berbagai kombinasi data input dan output, gunakan Scenario Outline. Ini jauh lebih efisien daripada menyalin-tempel skenario yang sama berulang kali.

  • Mengapa ini penting? Scenario Outline menyajikan pengujian berbasis data dalam format tabel yang sangat mudah dibaca. Ini membuat cakupan tes menjadi jelas dan ringkas.

Contoh yang Kurang Baik (Skenario Berulang):

Gherkin

Scenario: Diskon untuk member Silver
  Given saya adalah member dengan level "Silver"
  And total belanja saya adalah Rp500.000
  When saya melakukan checkout
  Then saya seharusnya mendapatkan diskon sebesar Rp25.000

Scenario: Diskon untuk member Gold
  Given saya adalah member dengan level "Gold"
  And total belanja saya adalah Rp500.000
  When saya melakukan checkout
  Then saya seharusnya mendapatkan diskon sebesar Rp50.000

Contoh yang Baik (Menggunakan Scenario Outline):

Gherkin

Baca juga : Wakil Rektor UTI Presentasikan Penelitiannya di Parallel Session ICMEM 2025 di SBM ITB Bandung

Scenario Outline: Perhitungan diskon berdasarkan level member
  Given saya adalah member dengan level "<Level>"
  And total belanja saya adalah Rp500.000
  When saya melakukan checkout
  Then saya seharusnya mendapatkan diskon sebesar Rp<Diskon>

  Examples:
    | Level  | Diskon |
    | Silver | 25000  |
    | Gold   | 50000  |
    | Platinum| 75000  |

Dengan menerapkan kelima tips ini, Anda dapat mengubah feature file Gherkin dari sekadar skrip pengujian menjadi aset kolaborasi yang kuat. Skenario yang jitu tidak hanya memastikan perangkat lunak bekerja sesuai harapan, tetapi juga memastikan seluruh tim memiliki pemahaman yang sama tentang harapan tersebut.

Penulis : helen putri marsela