2.3.2 Studi Kasus: BDD Pada Aplikasi E-Commerce
Dalam dunia e-commerce, perkembangan aplikasi sangat cepat dan kompleks. Setiap minggu, tim produk merilis fitur baru, mulai dari sistem diskon, metode pembayaran baru, hingga personalisasi produk. Dengan siklus iterasi yang begitu cepat, tantangan utama bagi QA adalah memastikan bahwa setiap perilaku aplikasi berjalan sesuai dengan harapan pengguna, tanpa merusak fungsi lain yang sudah ada (regresi).
Behavior-Driven Development (BDD) menjadi pendekatan yang sangat efektif dalam konteks ini. BDD mendorong semua pihak untuk menyepakati "bagaimana sistem seharusnya berperilaku" sebelum proses pengembangan dimulai. Pendekatan ini dilakukan dengan menulis skenario berbasis Gherkin, sebuah bahasa semi-natural (semi-natural language) yang terdiri dari struktur Given, When, Then. Dengan Gherkin, skenario pengujian dapat dipahami oleh semua pihak, mulai dari developer, QA, product owner, hingga business stakeholder.
Penerapan BDD dalam e-commerce memberikan banyak manfaat, antara lain:
- Menjembatani kesenjangan komunikasi antara bisnis dan tim teknis
Alih-alih hanya memberikan user story yang ambigu, tim bisa menyepakati perilaku sistem secara konkret. - Mempermudah otomasi pengujian di lingkungan CI/CD
Skenario Gherkin yang ditulis dengan baik dapat langsung digunakan oleh tools seperti Cucumber (untuk Java) guna menjalankan tes otomatis. - Meningkatkan regresi coverage secara efisien
Setiap fitur baru memiliki skenario perilaku yang otomatis diuji setiap kali terjadi perubahan kode, sehingga meminimalkan risiko regresi. - Menyusun dokumentasi pengujian yang bersifat living document
Skenario BDD bisa disimpan dalam repository Git, tetap sinkron dengan kode, dan terus diperbarui sejalan dengan perkembangan aplikasi.
Di industri e-commerce dengan traffic tinggi dan banyak kasus khusus (edge case), BDD membantu meningkatkan ketahanan produk terhadap perubahan tanpa memperlambat siklus pengembangan. Lingkungan yang dinamis membuat BDD sangat tepat karena memfasilitasi proses kolaborasi serta otomatisasi pengujian yang lebih terstruktur dan efisien.
Behavior-Driven Development sangat relevan untuk mengelola sistem kompleks yang sering berubah, seperti fitur promosi, alur pembayaran, dan manajemen stok. Bahasa Gherkin memudahkan kolaborasi lintas fungsi karena skenario yang dibuat dapat dibaca tanpa membutuhkan pemahaman teknis mendalam.
Selain itu, skenario BDD bisa dijadikan dasar untuk automated testing. Tools seperti Cucumber membaca file .feature dan menjalankan definisi langkah (step definition) secara otomatis. Integrasi ini dapat disambungkan ke pipeline CI/CD, sehingga setiap kali ada perubahan kode di repository seperti GitHub, Jenkins dapat menjalankan skenario BDD secara otomatis dan memberikan laporan hasil pengujian secara real-time.
⬛ Studi Kasus: BDD Pada Aplikasi E-Commerce
Sebuah perusahaan e-commerce Indonesia menambahkan fitur berikut
Jika pengguna melakukan checkout dengan total belanja minimum Rp500.000 dan menggunakan metode pembayaran ShopeePay, maka secara otomatis akan mendapatkan diskon sebesar 10%.
Fitur ini merupakan strategi pemasaran yang umum, tetapi memerlukan validasi dari sisi QA untuk menjamin keandalannya. Pengujian manual sering kali berisiko melewatkan untuk menguji kombinasi edge case. Oleh karena itu, tim memutuskan menggunakan pendekatan BDD (Behavior Driven Development) untuk mendokumentasikan dan mengotomatisasi pengujian dengan cara yang bisa dimengerti oleh semua pihak (QA, Developer, dan Product Owner).
User Story (Dari Jira)
Sebagai pengguna, saya ingin mendapatkan diskon otomatis saat memenuhi syarat promo, agar proses checkout menjadi lebih hemat dan praktis.
1. Skenario dalam Format Gherkin (Manual)
Feature: Promo otomatis saat checkout Scenario: Pengguna mendapat promo saat memenuhi syarat Given pengguna memiliki produk di keranjang senilai Rp500.000 atau lebih And memilih metode pembayaran "ShopeePay" When pengguna melanjutkan ke halaman checkout Then sistem otomatis menambahkan diskon 10% ke total belanja And total yang ditampilkan sudah termasuk diskon |
Langkah pembuatan BDD dengan Xray:
● Buka project di Jira: QA Test 2025
● Klik “Create” → Pilih Work Type: “Test”
● Masukkan summary: Promo otomatis saat checkout → Klik “Create”
● Set priority: High
● Pada Test details, pilih Test Type: Cucumber
● Masukkan skenario dalam format Gherkin
1. Skenario dalam Format Gherkin (Cucumber + Gen-AI)
Dengan bantuan Gen-AI (seperti ChatGPT atau Github Copilot), QA bisa mempercepat penulisan variasi baik positif maupun negatif skenario.
Sebelum itu, dibutuhkan untuk instalasi tools terlebih dahulu, seperti:
● Intellij IDEA (Java IDE), bisa diunduh pada tautan berikut https://www.jetbrains.com/idea/download/?section=windows
● Cucumber for Java, untuk mendukung pembuatan test case dengan format BDD
● ChatGPT atau Github Copilot plugin, sebagai asisten AI dalam pembuatan skenario BDD
Langkah pembuatan BDD dengan Cucumber dan Gen-AI (Github Copilot):
- Unduh dan install Intellij IDEA community pada tautan yang telah disediakan.
- Unduh plugin: Cucumber for Java dan Github Copilot. Pastikan semua sudah terinstall dengan baik.
- Buat project baru di Intellij IDEA. Untuk tutorial dapat melihat tautan berikut https://www.jetbrains.com/help/idea/new-project-wizard.html
Catatan: Pembahasan lebih lengkap akan dijelaskan pada program selanjutnya - Buat .feature file pada src > test > java > feature.
Catatan: Pembahasan lebih lengkap terkait BDD akan dijelaskan pada program selanjutnya - Buka Github Copilot pada sisi kanan layar
- Ketikkan prompt dan tekan Enter:
“Sebagai pengguna, saya ingin mendapatkan diskon otomatis sebesar 10% saat checkout dengan belanja minimum Rp500.000 dan menggunakan metode pembayaran ShopeePay. Buatkan skenario BDD, baik positif maupun negatif skenario.”
- Berikut hasil dari prompt untuk pembuatan test skenario dengan format BDD dengan tools Cucumber - Github Copilot (AI), yang dapat kita lihat bahwa hasil ini sudah mencakup positif dan negatif skenario.
Berikut ini adalah hasil prompt pada gambar yang sudah diterjemahkan ke dalam Bahasa Indonesia:
Feature: Diskon Otomatis 10% saat Checkout Scenario: Pengguna mendapat promo saat memenuhi syarat Given pengguna memiliki barang di keranjang dengan total minimal belanja Rp500.000 And pengguna memilih ShopeePay sebagai metode pembayaran When pengguna melanjutkan ke halaman checkout Then diskon 10% secara otomatis diterapkan pada total pembayaran And pengguna melihat harga setelah diskon Scenario: Pengguna tidak mendapatkan diskon karena total pembelian tidak mencukupi Given pengguna memiliki barang di keranjang dengan total belanja kurang dari Rp500.000 And pengguna memilih ShopeePay sebagai metode pembayaran When pengguna melanjutkan ke halaman checkout Then tidak ada diskon yang diterapkan And pengguna melihat harga normal Scenario: Pengguna tidak mendapatkan diskon karena menggunakan metode pembayaran lain Given pengguna memiliki barang di keranjang dengan total belanja minimal Rp500.000 And pengguna memilih metode pembayaran selain ShopeePay When pengguna melanjutkan ke halaman checkout Then tidak ada diskon yang diterapkan And pengguna melihat harga normal |
|
Perbandingan Manual vs AI-Generated BDD
● Manual:
○ Cocok untuk QA senior yang sudah terbiasa menulis skenario dengan akurasi tinggi.
○ Lebih presisi, tetapi memakan waktu terutama saat menulis banyak kombinasi.
● AI-Generated:
○ Mempercepat pembuatan awal skenario.
○ Tetap memerlukan validasi dan penyesuaian oleh QA agar sesuai dengan konteks bisnis.
Cocok untuk ideasi cepat atau mempercepat dokumentasi awal saat grooming.