Praktikum Topik 2.3 Dasar BDD dengan Kasus Uji yang Dihasilkan AI
Judul Praktikum
Implementasi Behavior-Driven Development (BDD): Menyusun Skenario Uji AI dan Manajemen Kasus Uji Otomatis via GitHub Issues
Tujuan Praktikum
● Memahami konsep BDD dan format Gherkin secara praktis tanpa alat Cucumber.
● Menggunakan AI untuk menghasilkan skenario BDD berbentuk Given–When–Then.
● Mendokumentasikan serta mengelola skenario uji BDD pada platform GitHub secara terstruktur.
● Mengotomatisasi pelacakan dan eksekusi skenario uji menggunakan GitHub Actions.
Deskripsi Singkat Aktivitas
Peserta menyusun skenario BDD dengan bantuan AI dalam format Given–When–Then untuk sebuah fitur e-commerce. Skenario ini didokumentasikan sebagai issue di GitHub, lalu otomasi verifikasi dilakukan dengan membuat skrip uji atau simulasi sederhana menggunakan GitHub Actions. Praktikum menekankan integrasi BDD dalam workflow CI/CD.
Langkah-Langkah Praktikum
1. Persiapan
● Buat akun GitHub (https://github.com).
● Fork atau buat repository baru dengan nama bdd-ai-github-issues.
● Pastikan sudah menginstal:
○ Git (untuk commit/push lokal)
○ Editor seperti VSCode/IntelliJ (untuk edit file uji)
○ Akses ke AI assistant (seperti GitHub Copilot atau ChatGPT) di browser/editor
2. Menyusun Skenario BDD dengan menggunakan AI
● Ambil user story berikut:
Sebagai pengguna, saya ingin mendapatkan diskon otomatis sebesar 10% saat checkout jika belanja saya ≥ Rp500.000 dan membayar menggunakan ShopeePay.
● Gunakan AI: Minta AI assistant untuk menghasilkan skenario BDD (Given–When–Then), contoh prompt:
Buatkan skenario Given–When–Then untuk fitur promo otomatis saat checkout minimal Rp500.000 dengan ShopeePay.
● Review & salin 3 skenario yang dihasilkan AI (minimal 1 positif & 1 negatif) ke format teks.
3. Dokumentasi Kasus Uji ke GitHub Issues
● Buat satu Issue di GitHub untuk setiap skenario, gunakan format:
○ Judul: [BDD] Promo Otomatis: [Judul Skenario Ringkas]
○ Isi issue:
Feature: Promo Otomatis Saat Checkout
Scenario: [Penjelasan Skenario]
Given ...
When ...
Then ...
And ...
○ Label: bdd, test-case, dll.
4. Automasi Simulasi Uji di GitHub Actions
● Tambahkan file skrip Python/JavaScript di repo, misal promo_test.py, yang memverifikasi logika (contoh Python untuk diskon):
def promo_price(total, payment):
if total >= 500_000 and payment.lower() == "shopeepay":
return total * 0.9
return total
assert promo_price(500_000, "ShopeePay") == 450_000
assert promo_price(499_999, "ShopeePay") == 499_999
assert promo_price(550_000, "OVO") == 550_000
● Buat file workflow GitHub Actions .github/workflows/test.yml:
name: Test Promo Logic
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.x
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Run Promo Test
run: python promo_test.py
● Commit dan push semua perubahan ke repository GitHub.
Tabel Analisis
No. |
Aktivitas Praktikum |
Kendala/Observasi |
Solusi/Perbaikan |
1. |
Menyusun skenario BDD dengan menggunakan AI |
|
|
2. |
Dokumentasi test case ke issues |
|
|
3. |
Mengimplementasikan skrip logika |
|
|
4. |
Setup GitHub Actions |
|
|
5. |
Automasi & Validasi hasil |
|
|
Output yang Diharapkan
● File screenshot dari Issue GitHub berisi skenario BDD.
● Log workflow GitHub Actions yang menunjukkan hasil uji otomatis “success”.
● File skrip pengujian (promo_test.py atau serupa) di repo.
● Isian tabel analisis sesuai pengalaman peserta.
Kriteria Keberhasilan
● Skenario BDD (Given–When–Then) terdokumentasi di GitHub Issues.
● Semua kasus terpenuhi: skenario positif dan negatif ada.
● Skrip otomatisasi pengujian berjalan sukses di GitHub Actions (build status “passed”).
● Peserta dapat melakukan refleksi dan mengisi tabel analisis.
Petunjuk Troubleshooting
● Issue tidak muncul di tab: Reload halaman repo, cek permission.
● Skrip uji gagal berjalan: Cek ulang penulisan skrip, perhatikan indentasi/penamaan variabel.
● GitHub Actions error: Pastikan file workflow .yml valid dan tidak salah indentasi.
● AI tidak menghasilkan skenario relevan: Ulangi prompt dengan bahasa yang lebih eksplisit atau buat sedikit penyesuaian manual.
Estimasi Waktu
± 2–2,5 jam