Subtopik 1.3.3 AI dalam QA: Penerapan BDD auto-test pada platform marketplace dan visual checker untuk dashboard fintech
Di tengah cepatnya transformasi digital, dunia Quality Assurance (QA) juga ikut mengalami perubahan besar. Salah satu perkembangan paling menarik adalah mulai digunakannya Artificial Intelligence (AI) dalam proses QA.
Namun, AI di sini bukan berarti proses QA sepenuhnya diserahkan pada robot atau mesin. Sebaliknya, AI berperan sebagai “asisten cerdas” yang membantu QA bekerja lebih cepat, lebih cermat, dan lebih efisien. Misalnya, AI mampu:
● Mendeteksi pola dan kejanggalan (anomaly) yang sulit dikenali oleh manusia
● Mengotomatiskan pengujian berulang
● Mempercepat proses regression testing
● Memberikan rekomendasi dan insight yang membantu pengambilan keputusan
Dua penerapan utama AI dalam QA yang kini semakin populer di industri digital adalah:
- Behavior-Driven Development (BDD) yang didukung AI untuk otomatisasi pengujian
- Visual testing berbasis AI untuk memverifikasi tampilan antarmuka
Kedua pendekatan ini banyak digunakan dalam proyek pengembangan perangkat lunak di sektor marketplace dan fintech, yang sangat mengandalkan kecepatan rilis serta konsistensi visual dan fungsional antarmuka.
⬛ BDD Auto-Test: Otomatisasi Kolaboratif Berbasis Bahasa Alami
Behavior-Driven Development atau BDD adalah pendekatan dalam pengembangan perangkat lunak yang mendorong kolaborasi antara tim teknis dan non-teknis. QA, developer, product manager, dan pemangku kepentingan lainnya berkolaborasi dan berkomunikasi 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.
Dalam BDD, spesifikasi kebutuhan disusun dalam bentuk skenario menggunakan format Gherkin. Gherkin adalah bahasa yang digunakan oleh alat bantu Cucumber untuk mendukung pendekatan Behavior-Driven Development (BDD). Bahasa ini memungkinkan tim untuk menulis skenario pengujian dalam format yang mudah dibaca oleh manusia, dan nantinya dapat diotomatisasi untuk memverifikasi perilaku sistem. Karena sifatnya yang sederhana dan jelas, Gherkin menjadi alat komunikasi yang efektif antara developer, tester, dan pemangku kepentingan bisnis.
Gambar 1.3.5 Contoh skenario BDD sederhana ditulis dalam format Gherkin
Sintaks Gherkin disusun menggunakan beberapa kata kunci utama berikut:
● Feature: Menjelaskan fitur atau fungsi sistem yang sedang diuji.
● Scenario: Menggambarkan situasi atau contoh penggunaan tertentu.
● Given: Menyatakan kondisi awal atau konteks sebelum tindakan dilakukan.
● When: Menunjukkan aksi atau peristiwa yang memicu suatu proses.
● Then: Menjelaskan hasil atau dampak yang diharapkan setelah aksi.
● And / But: Digunakan untuk menambahkan syarat atau langkah tambahan pada bagian Given, When, maupun Then.
Fitur Lanjutan dalam Gherkin
Selain struktur dasar Feature, Scenario, Given, When, dan Then, Gherkin juga menyediakan beberapa fitur lanjutan yang dapat digunakan untuk menyederhanakan skenario dan meningkatkan keterbacaan, terutama ketika menghadapi skenario yang berulang atau kompleks.
Background
Digunakan untuk mendefinisikan langkah Given yang berulang dan sama pada beberapa skenario dalam satu fitur. Dengan Background, kita tidak perlu menulis ulang kondisi awal tersebut di setiap Scenario. Ini sangat membantu menjaga skenario tetap ringkas dan konsisten. Setiap Scenario dalam fitur tersebut akan otomatis memiliki kondisi awal seperti di atas.
Scenario Outline
Digunakan ketika ingin menjalankan satu skenario yang sama berulang kali dengan data yang berbeda-beda. Ini sangat berguna untuk menguji berbagai kombinasi input tanpa perlu menulis banyak skenario secara manual. Dengan Scenario Outline, Gherkin akan menjalankan skenario tersebut sebanyak jumlah data yang ada di tabel Examples.
Gambar 1.3.6 Contoh skenario BDD dalam format Gherkin dengan Fitur Lanjutan
⬛ Peran AI dalam BDD Automation
Gambar 1.3.7 Penggunaan AI dalam BDD
Sebelumnya, QA perlu secara manual menulis dan memetakan setiap langkah skenario BDD ke dalam kode. Kini, AI dapat membantu menyederhanakan proses tersebut dengan:
● Menghasilkan kode uji secara otomatis dari skenario BDD
● Memprediksi maksud pengguna dan menyarankan langkah uji
● Mengenali skenario yang mirip untuk digunakan ulang (reuse)
● Menentukan skenario uji yang relevan berdasarkan perubahan kode (test selection)
Beberapa alat pengujian software yang yang didukung oleh AI:
● Testim.io — otomatisasi pembuatan uji dengan AI
● Mabl — pengujian self-healing dan analisis AI
● Copilot Github / ChatGPT – dapat diberi prompt yang menghasilkan skenario Gherkin
● Katalon — otomatisasi pengujian dengan dukungan plugin berbasis AI
⬛ Visual Testing Berbasis AI: Menjaga Konsistensi Tampilan Aplikasi
Visual testing atau pengujian visual pada dasarnya adalah proses membandingkan tampilan visual antarmuka pengguna (user interface) dalam kondisi actual (terbaru) dengan baseline (expected result) yang sudah disepakati sebelumnya. Tujuannya untuk mendeteksi adanya perubahan tampilan, baik pergeseran, perubahan warna, ukuran, maupun detail lain yang mungkin terjadi setelah update atau perubahan sistem.
Contoh aspek yang diuji dalam visual testing:
● Ukuran dan warna teks
● Posisi tombol dan elemen input
● Tata letak halaman pada berbagai ukuran layar
● Grafik, ikon, dan elemen visual lainnya
Bagaimana AI Membantu Visual Testing?
Dengan AI, QA dapat mendeteksi perubahan visual secara otomatis, bahkan hingga perbedaan sekecil satu piksel. AI juga dapat:
● Menganalisis tampilan di berbagai resolusi layar dan perangkat.
● Membedakan antara perubahan minor (misalnya, jarak antar elemen berubah 2px) dan mayor (misalnya tombol hilang).
● Mengelompokkan perubahan yang tidak berdampak dan yang butuh perhatian QA.
Beberapa alat visual testing berbasis AI:
● Applitools Eyes — membandingkan tampilan dengan baseline visual menggunakan AI.
● Percy — menggabungkan visual diff dengan integrasi CI/CD.
● Testim Visual AI — pengujian UI cerdas berbasis visual.
● LambdaTest Visual Regression — pengujian tampilan multi-browser dan lintas-perangkat.
Gambar 1.3.8 Visual Testing pada Applitools
Pada gambar kiri (Baseline) adalah gambar yang menjadi acuan/referensi (expected result). Dapat kita lihat bahwa seharusnya ada checklist Remember Me pada halaman Login. Namun, yang kita lihat pada gambar kanan (Checkpoint) adalah kondisi saat ini (actual result), di mana checklist Remember Me tidak ada, sehingga Applitools meng-highlight dengan warna merah muda yang menunjukkan perbedaan antara Baseline dan Checkpoint. Sebaliknya, jika antara Baseline dan Checkpoint memiliki gambar yang sama, maka tidak ada perbedaan secara visual dan Applitools tidak meng-highlight bagian tertentu.
Gambar 1.3.9 Visual Testing pada Applitools: Perbandingan kolom “Remember Me”
⬛ Konsep Dasar Sistem Kontainerisasi
Kontainerisasi adalah metode untuk mengemas aplikasi beserta seluruh dependensi, konfigurasi, dan pustaka yang dibutuhkan ke dalam satu unit bernama “container”. Container ini menciptakan lingkungan yang terisolasi dan portabel sehingga aplikasi bisa berjalan konsisten di mana saja, baik di komputer lokal, server, maupun cloud, tanpa khawatir terjadi masalah perbedaan lingkungan.
1. Konsep Dasar:
● Container berjalan di atas satu sistem operasi host, namun setiap aplikasi yang dikemas berada di sandbox terpisah, tidak saling mengganggu.
● Container hanya membawa aplikasi serta kebutuhan inti (file, pustaka) tanpa perlu sistem operasi penuh seperti pada virtual machine. Ini membuat container lebih ringan dan efisien.
● Platform populer: Docker, Kubernetes, dan beberapa lainnya, yang membantu pembuatan, pengelolaan, sampai orkestrasi container dalam proses CI/CD (Continuous Integration/Continuous Deployment).
2. Manfaat Utama:
● Portabilitas: Aplikasi bisa dijalankan konsisten di manapun.
● Isolasi: Setiap aplikasi terjaga dari konflik dependensi aplikasi lain.
● Efisiensi dan Skalabilitas: Konsumsi sumber daya rendah & mudah diskalakan sesuai kebutuhan.
● Konsistensi hasil pengujian: Environment uji tidak akan berbeda (misal, dalam visual testing hasil screenshot antar mesin akan sama selama di container), sehingga error akibat perbedaan sistem berkurang drastis.
Dengan memahami pengertian dan konsep dasar di atas, implementasi kontainerisasi pada proses pengembangan dan pengujian aplikasi akan menjadikan workflow lebih stabil dan andal.
Kesimpulan Singkat
Pemanfaatan AI dalam QA bukan hanya tren sesaat, melainkan bagian dari strategi peningkatan kualitas perangkat lunak yang lebih adaptif dan efisien. Melalui BDD auto-test dan visual testing berbasis AI, tim QA dapat bekerja lebih cepat, lebih akurat, dan tetap kolaboratif sehingga menjawab tantangan industri digital yang menuntut kecepatan sekaligus ketelitian.
BDD Auto-Test (Behavior-Driven Development):
Pendekatan BDD Auto-Test sangat membantu meningkatkan kolaborasi antara anggota tim dari berbagai latar belakang, baik teknis seperti developer dan QA, maupun non-teknis seperti business analyst atau product owner. Dengan menggunakan bahasa alami (seperti bahasa Indonesia atau Inggris biasa), semua pihak dapat ikut serta menulis dan memahami skenario pengujian tanpa harus tahu kode pemrograman. Misalnya, alih-alih menulis baris kode, kamu bisa menuliskan skenario seperti: "Jika pengguna berada di halaman login, lalu memasukkan email dan kata sandi yang benar, maka ia akan diarahkan ke dashboard." AI kemudian akan membantu mengubah kalimat tersebut menjadi skrip otomatis yang bisa langsung diuji di aplikasi. Ini membuat proses pengujian lebih cepat, kolaboratif, dan mudah dipelihara.
Visual Testing berbasis AI:
Visual Testing AI fokus pada memastikan tampilan antarmuka pengguna (UI) tetap rapi dan konsisten setelah aplikasi diperbarui. Kadang, bug visual seperti tombol yang tertutup, teks yang keluar dari kotak, grafik yang tidak muncul, atau jarak antar elemen yang berubah, tidak terdeteksi oleh pengujian fungsional biasa. Di sinilah AI berperan: ia membandingkan tampilan baru dengan versi sebelumnya hingga ke tingkat piksel, lalu secara otomatis memberi tahu QA jika ada perubahan yang mencurigakan. Proses ini sangat penting untuk mendukung rilis cepat (continuous deployment) karena tim bisa segera tahu jika ada gangguan tampilan sebelum fitur diluncurkan ke pengguna. Jadi, kamu bisa tetap berinovasi tanpa takut merusak tampilan aplikasi.
⬛ Studi Kasus 1: BDD Auto Test pada Marketplace – Fitur Pembayaran Multi Channel
Pada platform marketplace, proses checkout biasanya melibatkan banyak metode pembayaran seperti transfer bank, e-wallet, QRIS, dan kartu kredit. Kompleksitas ini menyebabkan fitur pembayaran sangat rentan terhadap bug, terutama ketika ada perubahan kecil dalam logika sistem yang sulit dilacak dengan pengujian manual biasa.
Tantangan:
Tim QA mengalami kesulitan dalam menguji seluruh skenario pembayaran setiap kali ada pembaruan sistem. Hal ini sering menyebabkan bug tidak terdeteksi hingga fitur dirilis ke pengguna.
Solusi:
Untuk mengatasi hal ini, tim QA bekerja sama dengan tim produk menggunakan pendekatan Behavior-Driven Development atau BDD. Mereka menyusun skenario pengujian dalam format Gherkin, yang menggambarkan langkah-langkah pengguna dengan bahasa yang dapat dipahami oleh tim teknis dan non teknis.
Langkah yang dilakukan meliputi:
● Menyusun skenario Gherkin untuk setiap metode pembayaran.
Gambar 1.3.10 Skenario Gherkin untuk Metode Pembayaran
● Mengintegrasikan skenario tersebut dengan alat otomatisasi.
● Menggunakan teknologi AI untuk menyarankan pengujian tambahan berdasarkan perubahan kode pada sistem.
● Menghubungkan hasil pengujian regresi secara otomatis ke dalam pipeline pengembangan perangkat lunak (CI/CD) melalui GitLab.
Hasil:
● Jumlah bug yang muncul pada fitur checkout menurun hingga 70 persen dalam waktu tiga bulan.
● Durasi pengujian regresi berkurang dari enam jam menjadi 45 menit per siklus.
● Tim produk dapat memahami cakupan pengujian tanpa harus membaca atau memahami kode pemrograman.
⬛ Studi Kasus 2: Visual Testing Berbasis AI pada Dashboard Keuangan Fintech
Dalam sektor fintech, dashboard keuangan sering digunakan untuk menampilkan grafik data secara real-time dan menghasilkan laporan dalam format PDF. Setelah adanya pembaruan pada pustaka tampilan antarmuka, muncul berbagai masalah visual seperti grafik yang tidak tampil, perubahan ukuran font, dan posisi tombol yang tidak sesuai. Masalah ini tidak terdeteksi oleh pengujian fungsional biasa.
Tantangan:
Bug visual seringkali tidak mudah terlihat oleh pengujian otomatis berbasis logika fungsi, dan proses pengecekan manual pada berbagai ukuran layar sangat memakan waktu.
Solusi:
Tim QA mengadopsi alat visual testing berbasis AI seperti Applitools Eyes untuk membandingkan tampilan baru dengan versi sebelumnya secara otomatis dan akurat.
Langkah yang dilakukan:
● Menerapkan sistem visual baseline untuk setiap halaman dashboard.
● Mengintegrasikan pemeriksaan visual ke dalam pipeline otomatis (CI/CD) menggunakan Jenkins.
● Mengelompokkan hasil deteksi bug berdasarkan tingkat dampaknya: kritis, sedang, dan kosmetik.
Contoh bug yang terdeteksi oleh sistem:
● Grafik tidak tampil dalam mode tampilan gelap.
● Tabel laporan mengalami gangguan saat dilihat di layar kecil.
● Posisi elemen saling bertabrakan karena perubahan pengaturan margin.
Hasil:
● Pengujian tampilan antarmuka kini dapat dilakukan otomatis di berbagai perangkat dan resolusi layar tanpa perlu tangkapan layar manual.
● Waktu untuk melakukan regresi visual berkurang dari tiga jam menjadi hanya 20 menit.
● Tim pengembang dan pemangku kepentingan lebih yakin bahwa tampilan sistem akan tetap konsisten dan profesional di berbagai situasi.
RefleksiPendekatan Behavior-Driven Development (BDD) banyak digunakan dalam proyek Agile karena dapat mempermudah kolaborasi antara tim teknis dan non-teknis. Namun, dalam praktiknya, penerapan BDD tidak selalu berjalan lancar.Menurut kamu, apa tantangan terbesar yang mungkin muncul saat mengimplementasikan BDD dalam lingkungan kerja yang cepat dan dinamis? Apakah terkait waktu penulisan skenario, koordinasi antar tim, atau integrasi dengan sistem yang sudah ada? |