An intelligent, end-to-end bug reproduction assistant that reads bug reports and automatically executes UI test steps using Playwright—enhanced with AI-driven fallback selectors and DOM understanding.
- ✅ Natural language bug report parsing via Phi-3 mini instruct (LLM)
- ✅ Converts bug descriptions into structured JSON test steps
- ✅ Executes steps with Playwright
- ✅ Uses AI fallback for dynamic DOM-based selector recovery
- ✅ Streamlit UI for easy interaction
- ✅ Generates detailed markdown reports with screenshots
- ✅ Browser runs in headed mode for live inspection
- Uses Phi-3 Mini (Locally running via LM Studio) for:
- Parsing bug descriptions
- Suggesting fallback selectors dynamically by analyzing live DOM
- Recovering from broken test steps
| Layer | Technology |
|---|---|
| UI | Streamlit |
| Backend | FastAPI |
| Test Execution | Playwright (Python) |
| AI Integration | Phi-3 via LM Studio (GGUF LLM) |
| Markdown + Screenshot | Python Imaging, Base64 |
ai-auto-bug-tester/
├── backend/
│ ├── main.py # FastAPI entry point
│ ├── executor.py # Core test executor with Playwright
│ ├── gpt_parser.py # LLM integration & bug parsing
│ └── outputs/ # Screenshots + Reports
├── frontend/
│ └── app.py # Streamlit interface
-
Clone the repository
git clone https://github.com/guptasoumya26/ai-auto-bug-tester.git -
Install dependencies
pip install -r requirements.txt -
Install Playwright browsers
playwright install -
Run LM Studio locally (phi-3-mini with instruct GGUF)
-
Launch backend
cd backend && uvicorn main:app --reload --port 8000 -
Launch frontend
cd frontend && streamlit run app.py
After running, the following is generated:
- Markdown bug reproduction report
- Step-wise screenshots
- Stored inside
backend/outputs/
Feed this:
“Steps to Reproduce: Open login page, type wrong password, click login. Expect error message 'Invalid credentials'. No message shown.”
🧠 AI will:
- Convert into JSON steps
- Execute UI actions
- Capture errors + screenshots
- Generate a detailed report
Want to add GitHub issue parsing? LLM selector scoring? Multi-browser support?
Open a PR or connect on LinkedIn!