AI-powered test automation platform
Vision-based testing with natural language — no code required
BugBuster is a test automation platform powered by Vision Language Models (VLM) that sees the UI like a user and understands natural language. Write test cases in plain language, without selectors, DOM knowledge, or code.
| Stack | Extensibility |
|---|---|
| VLM + Grounding + Playwright | Support for other frameworks; mobile testing roadmap |
- No coding skills required — describe test steps in natural language
- Free-form test cases — no rigid structure like Gherkin, no extra abstraction layers
- No selectors or locators — no DOM access, no maintenance when layout changes
- Stable interaction with dynamic UI elements through visual perception
- Natural language steps — use verbs like click, type, scroll, hover, wait
| Audience | Use Case |
|---|---|
| QA specialists | Fast automation without long setup; easier test maintenance |
| Teams without QA Automation | Introduce automated testing without dedicated automation engineers |
| Non-technical users | Automate scenarios without programming knowledge |
This repository uses Git LFS for Playwright binaries and related files. Without Git LFS, these files may be missing and related functionality will not work.
1. Install Git LFS (one time per machine)
Follow the official guide for your OS: git-lfs.com
Windows (Chocolatey):
choco install git-lfs
git lfs installIf Git LFS is already installed, enable it in this repo:
git lfs install2. Clone the repository
git clone <THIS_REPOSITORY_URL>
cd bugbuster
git lfs pullCreate network and start infrastructure
- Create Docker network:
docker network create bugbuster- Start MinIO, PostgreSQL, Redis, RabbitMQ, ClickHouse:
docker compose -p infrastructure -f infra/docker-compose.infrastructure.yml --env-file infra/infrastructure.env.example up -d-
Configure MinIO — open http://localhost:9001 and create buckets:
happypass,langfuse,run-cases,backend-files,backend-images
-
Create databases:
docker exec -it postgres psql -U postgres -c "CREATE DATABASE portal WITH ENCODING 'UTF8';"
docker exec -it postgres psql -U postgres -c "CREATE DATABASE langfuse WITH ENCODING 'UTF8';"Install and configure Langfuse
- Start Langfuse:
docker compose -p langfuse -f infra/docker-compose.langfuse.yml --env-file infra/langfuse.env.example up -d-
Configure — open http://localhost:3300:
- Register an account
- Create an organization (e.g.,
bugbuster) - Create two projects:
clickerandrewriter - Generate API keys for both projects
- Add keys to
services.env.example
Build and run application services
-
Configure
infra/services.env.example:- Add Langfuse API keys:
LANGFUSE_CLICKER_PUBLIC_KEY,LANGFUSE_CLICKER_SECRET_KEY,LANGFUSE_REWRITER_PUBLIC_KEY,LANGFUSE_REWRITER_SECRET_KEY - Add
OPENROUTER_API_KEY:INFERENCE_API_KEY,SOP_REWRITER_API_KEY
- Add Langfuse API keys:
-
Build images:
docker compose -p services -f infra/docker-compose.services.yml --env-file infra/services.env.example build- Run migrations (one-time):
docker compose -p services -f infra/docker-compose.services.yml --env-file infra/services.env.example run --rm alembic upgrade head- Start services:
docker compose -p services -f infra/docker-compose.services.yml --env-file infra/services.env.example up -dAfter startup, the platform is available at:
| Service | URL |
|---|---|
| Platform (Frontend) | http://localhost:3000 |
| Langfuse UI | http://localhost:3300 |
| Backend API (Swagger) | http://localhost:7665/docs |
| MinIO Console | http://localhost:9001 |
| Playwright Trace Viewer | http://localhost:3209 |
Ports are defined in
infra/services.env.exampleanddocker-compose.*.yml. Adjust addresses above if you change them.
Create your first test case
Coming soon — TBD






