2.3 Dasar BDD dengan Test Case yang Dibuat oleh AI (Studi Kasus: Menyusun Skenario BDD Untuk Sistem Keuangan Digital Berbasis Web [Fintech] & E-Commerce)
Dalam dunia pengembangan perangkat lunak modern yang bergerak dengan cepat, kolaborasi erat antara tim bisnis dan teknis semakin penting. Salah satu pendekatan yang menjembatani kedua pihak tersebut adalah Behavior-Driven Development (BDD). Metode ini memungkinkan pengujian dilakukan menggunakan bahasa sehari-hari yang mudah dipahami oleh semua pemangku kepentingan, mulai dari developer, QA, Product Owner, hingga pengguna akhir. Dengan begitu, test yang dibuat dapat dipahami oleh semua orang, baik pihak teknis maupun non teknis.
BDD tidak sekadar menulis test case dengan format Given-When-Then. Lebih dari itu, BDD menekankan pentingnya pemahaman bersama mengenai kebutuhan sistem melalui spesifikasi berbasis perilaku. Dengan cara ini, implementasi fitur benar-benar sesuai dengan kebutuhan pengguna dan kualitas aplikasi dapat terjaga sejak awal proses pengembangan.
Di sisi lain, kemajuan teknologi Artificial Intelligence (AI) membawa perubahan signifikan dalam dunia QA. Saat ini, tersedia alat berbasis AI yang mampu secara otomatis membuat skenario uji (test scenario) dari berbagai sumber, seperti dokumentasi produk, user story, hingga wireframe. Proses yang sebelumnya dilakukan secara manual kini menjadi jauh lebih cepat dan akurat.
Penggabungan antara BDD dan pembuatan test case otomatis berbasis AI membuka peluang besar bagi QA Engineer dan tim pengembang untuk meningkatkan efisiensi, tingkat akurasi, dan cakupan pengujian (testing coverage). Selain mempercepat penulisan skenario uji, AI juga membantu memastikan bahwa tidak ada skenario penting yang terlewatkan, terutama pada aplikasi yang kompleks dan terus berkembang.
Pendekatan ini sangat relevan untuk startup, pengembangan produk digital, dan industri yang mengadopsi metode agile development. Ketika tim harus melakukan iterasi dan deployment dengan cepat, namun tetap menjaga kualitas dan kestabilan sistem, praktik BDD yang didukung oleh AI dapat menjadi solusi terbaik untuk menjaga keseimbangan antara kecepatan pengembangan dan kualitas produk.
Untuk membuka pembelajaran pada topik ini, berikut beberapa pertanyaan awal yang dapat membantu Digiers melihat gambaran besarnya.
Apakah Digiers pernah mengalami kesulitan memahami maksud sebuah fitur dari perspektif bisnis ketika menulis test case? Jika ya, bagaimana cara untuk menyiasatinya?
Bagaimana cara Digiers untuk memastikan bahwa test case yang dibuat oleh AI benar-benar relevan dengan konteks bisnis dan tidak asal-asalan?
Selain itu, sebelum kita masuk ke materi, yuk kenali dulu apa saja yang akan Digiers capai di akhir pembelajaran topik ini. Memahami tujuan pembelajaran membantu proses belajar menjadi lebih fokus dan terarah.
2.3.1 Konsep BDD dan Skenario yang Dihasilkan AI (Gherkin Format)
Gambar 2.3.1 Konsep BDD
Behavior-Driven Development (BDD) adalah sebuah pendekatan dalam pengembangan perangkat lunak yang berfokus pada kolaborasi dan komunikasi antara tim teknis (developer, QA) dan non-teknis (product owner, stakeholder bisnis) melalui bahasa yang mudah dipahami oleh semua pihak. Tujuan utama BDD bukan sekadar menguji sistem, tetapi lebih kepada menyepakati perilaku sistem yang diinginkan sebelum proses pengembangan dimulai.
Behavior-Driven Development (BDD) adalah pengembangan dari metode Test-Driven Development (TDD), dengan cakupan yang lebih luas. TDD sendiri merupakan metode pengembangan perangkat lunak di mana fokus utamanya adalah menulis pengujian otomatis dalam bentuk unit test sebelum menulis kode aktual untuk suatu fitur dalam aplikasi atau produk. Pendekatan ini menggunakan siklus pengembangan singkat yang diulang-ulang untuk memverifikasi kualitas dan kebenaran kode. Jika TDD berfokus pada penulisan unit test oleh developer untuk memastikan fungsi kode berjalan sesuai harapan, maka BDD melibatkan seluruh pihak terkait agar bekerja sama dan memiliki pemahaman sama mengenai kebutuhan pengguna akhir.
BDD menawarkan pendekatan yang terstruktur untuk mendefinisikan dan menguji perilaku sistem berdasarkan kebutuhan pengguna. Berikut ini adalah beberapa aspek penting dalam penerapan BDD yang menjadikannya efektif dalam menyelaraskan kebutuhan bisnis dan proses pengujian.
1. Mendefinisikan perilaku sistem dari sudut pandang pengguna
Fokus BDD adalah apa yang dilakukan sistem, bukan bagaimana sistem dibangun. Pendekatan ini membuat spesifikasi lebih relevan bagi kebutuhan bisnis dan proses QA.
2. Menggunakan format Gherkin untuk mendeskripsikan skenario
Gherkin adalah bahasa semi-natural yang terdiri dari Given-When-Then, yang memungkinkan semua pihak untuk memahami dan menyepakati ekspektasi perilaku sistem secara jelas.
3. Menghubungkan user story dengan testing
Skenario BDD biasanya diturunkan langsung dari user story dan dapat langsung digunakan sebagai dasar untuk pengujian, baik manual maupun otomatis.
4. Dapat diintegrasikan ke tools otomasi
BDD dapat diintegrasikan dengan berbagai tools otomasi seperti Cucumber, SpecFlow, atau Behave, yang mampu membaca skenario Gherkin dan mengeksekusinya sebagai automated test scripts.
Format Gherkin dan Struktur Skenario BDD
Spesifikasi kebutuhan dalam BDD disusun dalam bentuk skenario menggunakan format Gherkin. Gherkin adalah bahasa semi-natural yang mudah dibaca oleh manusia sekaligus bisa diproses secara otomatis oleh mesin, sehingga memudahkan komunikasi lintas tim. Hal ini, memudahkan komunikasi antar tim tanpa hambatan teknis.
|
Contoh:
user story:
As a [regular user]
I want to [login to my dashboard]
So that [I can access all features on my dashboard]
Feature: Login ke aplikasi Scenario: Pengguna berhasil login dengan kredensial yang benar Given pengguna berada di halaman login When pengguna mengisi username dan password dengan benar And menekan tombol "Login" Then pengguna diarahkan ke halaman dashboard |
Selain struktur dasar seperti Feature, Scenario, Given, When, dan Then, Gherkin juga menyediakan beberapa fitur lanjutan yang berguna untuk menyederhanakan skenario dan meningkatkan keterbacaan, terutama ketika menghadapi skenario yang berulang atau kompleks.
● Background
Digunakan untuk mendefinisikan langkah Given yang sama dan berulang pada beberapa skenario dalam satu fitur. Dengan Background, kita tidak perlu menulis ulang kondisi awal tersebut di setiap skenario. Hal ini sangat membantu menjaga skenario tetap ringkas dan konsisten. Setiap skenario dalam fitur tersebut secara otomatis memiliki kondisi awal yang sama seperti yang didefinisikan di Background.
● Scenario Outline
Digunakan ketika ingin menjalankan satu skenario yang sama berulang kali dengan data yang berbeda-beda. Fitur ini sangat berguna untuk menguji berbagai kombinasi input tanpa harus menulis banyak skenario secara manual. Dengan Scenario Outline, Gherkin akan menjalankan skenario tersebut sebanyak jumlah data yang ada di tabel Examples.
Contoh:
Feature: Login ke aplikasi
Background: Given pengguna membuka halaman login
Scenario Outline: Pengguna berhasil login dengan kredensial yang benar Given pengguna memasukkan username "<username>" And memasukkan password "<password>" When pengguna menekan tombol "Login" Then pengguna diarahkan ke halaman dashboard And pesan sambutan "<pesan>" ditampilkan
Examples: | username | password | pesan | | ani | ani123 | Selamat datang, Ani! | | budi | budi456 | Selamat datang, Budi! | | admin | admin789 | Selamat datang, Admin! | |
Dengan format ini, semua pihak, termasuk yang tidak memiliki latar belakang teknis, dapat dengan mudah membaca dan memahami apa yang diuji serta bagaimana sistem seharusnya berperilaku.
Mengapa BDD Penting?
Penggunaan Behavior-Driven Development (BDD) semakin luas dalam pengembangan perangkat lunak modern bukan hanya karena format skenario yang mudah dipahami, tetapi juga karena nilai strategis yang ditawarkannya. Berikut beberapa alasan utama mengapa BDD sangat relevan saat ini:
● Meningkatkan Kolaborasi dan Pemahaman Bersama
Sering kali terjadi kesenjangan komunikasi antara pengembang dan pemilik produk sehingga fitur yang dibuat tidak sesuai harapan. Dengan spesifikasi yang jelas dan terstruktur dalam BDD, semua pihak dapat memiliki pemahaman yang sama mengenai apa yang harus dikembangkan dan diuji.
● Mendukung Agile dan DevOps
Skenario BDD dapat dengan mudah diintegrasikan ke dalam pipeline continuous integration dan continuous delivery (CI/CD), sehingga proses definisi dan pengujian perilaku aplikasi bisa berjalan secara otomatis dan berulang.
● Meningkatkan Kualitas Produk
Pendekatan ini mengurangi risiko miskomunikasi dan memastikan cakupan pengujian meliputi fungsi-fungsi yang benar-benar penting bagi pengguna karena fokusnya pada perilaku sistem dari sudut pandang pengguna.
Dengan demikian, BDD bukan hanya sekedar teknik menulis skenario, tetapi juga alat strategis untuk mempercepat kolaborasi, meningkatkan kualitas, serta mendukung proses pengembangan yang gesit dan terintegrasi.
Tantangan Penerapan BDD
Meskipun menawarkan banyak manfaat, akan tetapi penerapan BDD di dunia nyata tidak selalu mudah. Ada beberapa tantangan umum yang perlu diperhatikan oleh tim pengembang maupun QA, terutama ketika proyek semakin besar dan kompleks.
● Menulis skenario dengan menggunakan format Gherkin memakan waktu dan sulit dilakukan
Menulis skenario menggunakan format Gherkin membutuhkan kejelasan pada user story serta pengalaman menulis perilaku yang relevan dan mudah dipahami oleh semua pihak.
● Dokumentasi seringkali ambigu
Apabila tim produk tidak menyediakan spesifikasi yang jelas dan lengkap, maka QA dan developer akan mengalami kesulitan dalam menyusun skenario yang tepat dan akurat.
● Masalah skalabilitas
Dalam proyek besar dengan banyak fitur, menyusun dan memelihara ratusan bahkan ribuan skenario pengujian dapat menjadi beban berat yang memerlukan perhatian khusus dari tim.
Memahami dan menyadari tantangan-tantangan tersebut, membantu tim pengembang dan QA dalam membuat strategi untuk mengatasinya, sehingga penerapan BDD dapat berjalan lebih efektif dan memberikan hasil yang optimal.
Peran AI dalam Pengembangan Test Case
Di era Quality Assurance (QA) modern, kehadiran Artificial Intelligence (AI) membawa perubahan besar dalam proses pengembangan test case, khususnya skenario berbasis Gherkin. AI memungkinkan pembuatan skenario pengujian secara otomatis dari berbagai sumber input, seperti user story di Jira, desain UI dari Figma, dokumentasi Product Requirement Document (PRD), hingga screenshot atau flow diagram. Beberapa contoh tools yang memanfaatkan kemampuan AI ini antara lain:
● TestSigma: Mengubah deskripsi fitur menjadi skenario Gherkin lengkap dengan test case siap dijalankan.
● Functionize: Menghasilkan test case dari prototipe UI dengan menggunakan bantuan AI.
● Mabl & Testim.io: Merekam interaksi pengguna dan secara otomatis menyarankan skenario uji.
● Copilot for Test / ChatGPT: Dapat diberi prompt berupa user story dan menghasilkan skenario Gherkin yang siap pakai.
Dengan bantuan AI, penulisan skenario yang biasanya memakan waktu berjam-jam kini dapat dipercepat menjadi dalam hitungan detik. Meski begitu, peran QA tetap sangat penting untuk melakukan validasi agar skenario yang dihasilkan relevan dan akurat, baik dari sisi bisnis maupun teknis. Adapun beberapa keunggulan dari dari skenario yang dihasilkan AI (AI-Generated Scenario) antara lain:
● Mengotomatisasi proses penulisan skenario
AI mampu menganalisis sumber, seperti user story, PRD, atau bahkan UI prototipe untuk menghasilkan skenario Given-When-Then yang relevan.
● Menghemat waktu dan tenaga QA
Proses yang biasanya membutuhkan waktu berjam-jam menjadi jauh lebih singkat, sehingga QA dapat lebih fokus pada validasi dan eksplorasi uji.
● Mempercepat adopsi BDD di tim yang belum terbiasa
Bagi tim yang baru mengenal Behavior-Driven Development (BDD), AI dapat membantu memulai dengan memberikan saran skenario awal yang bisa dikembangkan lebih lanjut.
Meskipun AI dapat membantu menghasilkan skenario secara otomatis, validasi dari manusia tetap sangat penting karena hasil AI tidak selalu sesuai konteks atau kebutuhan bisnis. Oleh karena itu, QA tetap bertanggung jawab untuk memastikan skenario yang dibuat akurat dan relevan. Dengan demikian, AI bukan menggantikan peran QA, melainkan menjadi alat bantu yang mempercepat dan memudahkan proses pembuatan test case sekaligus menjaga kualitas pengujian secara menyeluruh.
Integrasi BDD, AI, dan QA Automation
Pemanfaatan Artificial Intelligence (AI) dalam pembuatan skenario Gherkin tidak hanya mempercepat proses penulisan test case, tetapi juga memperkuat implementasi Behavior-Driven Development (BDD) melalui integrasi dengan tools QA automation. Berikut adalah alur kerjanya:
- Tim produk membuat user story.
- AI membaca user story dan mengkonversinya menjadi skenario Gherkin.
- Skenario tersebut kemudian dikonversi menjadi skrip automated test, menggunakan Cucumber, SpecFlow, atau Behave.
- Skrip dijalankan dalam pipeline Continuous Integration/Continuous Delivery (CI/CD).
- Tim menerima feedback secara cepat jika terdapat perilaku sistem yang tidak sesuai dengan ekspektasi.
Alur ini membantu perusahaan menerapkan prinsip Shift Left Testing secara optimal, yang bertujuan untuk mendeteksi kesalahan lebih awal, mengurangi biaya debugging, dan mempercepat waktu peluncuran produk ke pasar.
Perkembangan teknologi, khususnya AI, telah memperkaya praktik BDD dan QA automation. Integrasi AI, BDD, dan QA automation dapat meningkatkan efektivitas pengujian sekaligus mendukung proses pengembangan perangkat lunak yang lebih cepat dan berkualitas. Dalam praktik industri, hal ini terlihat melalui beberapa manfaat berikut:
● Mendorong kolaborasi lintas fungsi
Skenario BDD mempermudah komunikasi antara QA, developer, dan Product Owner karena semua pihak dapat membaca dan memahami test case yang sama.
● Mempercepat feedback loop dalam agile/scrum
Skenario yang dihasilkan dan dijalankan secara otomatis dalam CI/CD pipeline memungkinkan tim untuk segera mengetahui adanya error atau ketidaksesuaian dengan cepat.
● Meningkatkan traceability dan dokumentasi
Skenario BDD dapat langsung dilacak ke user story (misalnya di Jira), sehingga sehingga hubungan antara kebutuhan bisnis dan pengujian menjadi lebih transparan dan kuat.
Dengan demikian, BDD menjadi pondasi kolaborasi yang mendukung pengembangan perangkat lunak yang cepat, berkualitas, dan adaptif, terutama dengan dukungan teknologi AI dan otomatisasi.
⬛ Studi Kasus: Pengembangan Fitur "Promo Otomatis" di Aplikasi E-Commerce
Sebuah perusahaan e-commerce berskala nasional sedang mengembangkan fitur baru, yaitu:
“Promo otomatis akan ditambahkan pada halaman checkout apabila pengguna memenuhi syarat tertentu, misalnya melakukan pembelian minimal Rp300.000 dengan menggunakan metode pembayaran tertentu.
Tim pengembang terdiri dari Product Owner, Developer, QA Manual dan Automation.
Proses Manual (Tanpa AI dan Tanpa BDD)
- QA membaca user story dari Jira (yang sering kali singkat dan ambigu).
- QA bertanya ke PO dan developer untuk melengkapi informasi.
- QA menulis test case manual dalam Excel atau Xray.
- Setelah fitur selesai dikembangkan, QA menjalankan test case.
- Jika ditemukan gap, QA akan melaporkannya kepada developer, yang dapat menyebabkan proses feedback loop menjadi lambat.
Format regular test case:
Field |
Deskripsi |
Test Case ID |
TC_ECOM_PROMO_001 |
Test Case Name |
Promo Otomatis - Diskon 10% saat checkout dengan ShopeePay |
Precondition |
● Pengguna sudah login ● Produk di keranjang senilai ≥ Rp300.000 |
Test Steps |
1. Buka aplikasi e-commerce 2. Tambahkan produk total Rp300.000 ke keranjang 3. Pilih metode pembayaran ShopeePay 4. Masuk ke halaman checkout |
Expected Result |
Sistem otomatis menambahkan diskon 10% ke total belanja |
Test Data |
● Produk A: Rp150.000 ● Produk B: Rp160.000 ● Metode pembayaran: ShopeePay |
Priority |
High |
Masalah:
● Proses lambat, banyak interpretasi berbeda.
● Dokumentasi test case tidak reusable.
● Tidak bisa dijalankan otomatis (karena tidak dalam format scripting).
Proses dengan BDD dan AI-Generated Scenario
- PO menuliskan user story di Jira seperti:
"Sebagai pengguna, saya ingin mendapatkan promo otomatis jika belanja saya ≥ Rp300.000 dan membayar dengan e-wallet." - QA membuka AI Test Assistant (misalnya ChatGPT atau Github Copilot), lalu memasukkan user story.
- AI menghasilkan skenario Gherkin secara instan:
Feature: Promo otomatis saat checkout Scenario: Pengguna mendapat promo otomatis saat memenuhi syarat Given pengguna memiliki produk di keranjang senilai Rp300.000 atau lebih And memilih metode pembayaran "ShopeePay" When pengguna masuk ke halaman checkout Then sistem otomatis menambahkan diskon 10% ke total belanja |
- QA hanya melakukan review dan adjust jika diperlukan.
- Skenario ini langsung dimasukkan ke automation framework berbasis Cucumber dan dijalankan otomatis via Jenkins + Selenium.