Inspiration

Every developer knows the pain of trying to get honest feedback on a website. You ship a new feature, refresh the page a hundred times, and hope you didn’t miss anything obvious. You ask friends to “click around really quick,” but half the time they don’t check thoroughly — and the other half, you forget to test some edge case. Manual QA is boring, repetitive, and the first thing people skip when moving fast. We wanted a tool that could act like a junior QA engineer: proactive, thorough, and always available. That’s what inspired us to build QaBot.

What it does

QaBot is an autonomous agent that tests websites the way a human would. Give it a URL, and it automatically explores the site — clicking navigation links, following internal pages, filling out forms with dummy data, and watching for broken links, 404s, 500s, blank pages, and forms that silently fail. At the end, it generates a clean, developer-friendly bug report with severity levels, steps to reproduce, and screenshots. No scripts, no setup, no manual testing — just instant QA.

How we built it

We built QaBot using a Python/FastAPI backend that orchestrates an intelligent browser agent powered by the AGI SDK. The agent uses real browser actions via Playwright and receives structured observations (DOM tree, screenshots, URLs) to decide its next steps. We implemented exploration heuristics to prioritize navigation elements and forms, and applied simple yet powerful logic to detect likely UX or functional issues.

For reporting, we use OpenAI (GPT-4o) to transform raw logs into human-readable bug reports. On the frontend, we created a clean “QA mission control” dashboard using Next.js, React, TypeScript, and Tailwind, complete with real-time scan status, an animated timeline of agent actions, and a polished Markdown report viewer.

Challenges we ran into

  • Ensuring the autonomous agent explored sites reliably without looping or getting stuck
  • Handling timing issues where the agent acted before pages fully loaded
  • Parsing diverse DOM structures across different website layouts
  • Designing lightweight heuristics to detect real issues without producing false positives
  • Transforming raw, noisy agent logs into clean, developer-readable bug reports
  • Balancing exploration depth with the need for fast, real-time scans

Accomplishments that we're proud of

  • Built a fully autonomous QA agent end-to-end within 24 hours
  • Achieved stable multi-step browsing with meaningful action selection
  • Generated clear, structured, human-friendly bug reports automatically
  • Designed a polished, animated frontend that visualizes the agent's actions in real time
  • Created a tool developers can actually use without writing test scripts
  • Successfully integrated AGI SDK, Playwright, OpenAI models, and a modern frontend stack

What we learned

  • Autonomy requires guardrails: agents need boundaries to behave predictably
  • UX transparency (showing each agent action live) builds user trust and engagement
  • Simple heuristics — like checking for “404”, comparing before/after DOM, or detecting blank pages — catch many real-world issues
  • The AGI SDK is powerful but demands careful handling of timing, state, and navigation
  • Good prompt engineering significantly improves the clarity and usefulness of generated reports

What's next for QaBot

  • CI/CD integration so QaBot can automatically test every pull request
  • Support for deeper flows such as login, checkout, and onboarding
  • Smarter, context-aware form testing using generated user data
  • Multi-path and multi-tab exploration for greater coverage
  • Accessibility, SEO, and performance signal detection
  • Packaging QaBot into a plug-and-play developer tool for frontend teams

Built With

Share this project:

Updates