Who Is This Course For?
For QA engineers and automation testers who already work with Python and Selenium/Playwright and want to add real AI capabilities to their toolkit. Over 15 days you will use scikit-learn, google-genai, ollama, streamlit, make.com, GitHub Actions, GitHub Copilot, Playwright MCP, and Antigravity — building practical tools, end-to-end workflows, and an AI-healing test framework that you can deploy in your actual work, not just toy demos.
Build Your Own AI Model
Before using anyone else's AI, you build your own — a small linear-regression model that predicts a real value (land price), save it to disk, expose it as an API, and give it a friendly UI. By the end of this module the abstract phrase "AI model" stops being mysterious.
- The 3 ingredients of every AI app: Algorithm + Data + Model
- ML fundamentals with
scikit-learn: prepare data, train aLinearRegressionmodel, make predictions - The "train once, use many" pattern — why training every run wastes hours
- Save the trained model with
pickle; load it back later in a single line - Expose the model as a REST API with
FastAPI+uvicorn—uvicorn demo:my_api - Call your API from the browser:
http://127.0.0.1:8000/predict?square_feet=8 - Build a no-HTML UI with
streamlit:pip install streamlit, thenstreamlit run demo.py - Train → save → API → UI: the standard ML deployment pipeline in under 100 lines of Python
Gemini API & Prompt Engineering
Move from building a tiny model to commanding a state-of-the-art LLM. You get a free Gemini API key, learn the 7-element prompt structure that makes the difference between mediocre and great output, and build a chatbot that remembers context.
- Sign up to Google AI Studio (
aistudio.google.com), generate a Gemini API key - Install the official SDK:
pip install google-genai - The 7-element prompt framework: role · task · context · tone · format · constraints · question
- Single-turn requests:
genai.GenerativeModel(...).generate_content(prompt) - Stateful chatbot:
model.start_chat(history=[]),chat.send_message()— preserves conversation context - System instructions: keep the model on-topic across a long session
- Trade-offs of cloud LLMs: cost · security / data leakage · internet dependence · version drift
- Why this matters: every other module in the course leans on prompts you write yourself
Local LLM with Ollama
Cloud LLMs are great until cost, latency or data privacy stops you. Ollama lets you run a capable LLM entirely on your own laptop — no internet required, no tokens billed, no data leaving the machine. You'll use a 1.5 B model that's small enough to run anywhere.
- Install Ollama; verify it's running at
http://localhost:11434 - Pull a model:
ollama pull qwen2.5-coder:1.5b - List, run and chat:
ollama list·ollama run qwen2.5-coder:1.5b - The 3 message roles every chat API uses:
user·system·assistant - Call Ollama from Python with the
requestslibrary — same pattern you'll reuse for any LLM - Install
Open WebUIfor a ChatGPT-style local interface:pip install open-webui - When to choose local over cloud: data sensitivity, predictable latency, zero per-call cost
RAG & Email Automation
An LLM only knows what it was trained on. RAG (Retrieval-Augmented Generation) plugs in live information so the model can answer today's questions, not last year's. You'll build two RAG pipelines — one with a free search engine, one with Google's — and then automate Gmail-sending from Python.
- What RAG actually means: Retrieval (fetch fresh data) · Augmented (merge with prompt) · Generation (LLM answers with context)
- Free pipeline: DuckDuckGo (
pip install ddgs) feeds search results to local qwen2 - Paid pipeline: SerpAPI (
pip install google-search-results) feeds Google results to Gemini - Sign up at
serpapi.com, copy API key, hit the same Google index Google itself uses - Send Gmail from Python: enable 2-factor auth, generate an App Password at
myaccount.google.com/apppasswords - SMTP send pattern using stdlib — no third-party email service required
- When to choose which: DDG/Ollama for cost · SerpAPI/Gemini for quality and structured results
AI Agents & make.com Workflows
Two ways to build the same agent. First the Python version: read a question from Excel, ask AI, reply by email. Then the visual version on make.com: same agent in 15 minutes with zero custom code. You'll know when to reach for which.
- Python AI Agent: read questions from Excel with
openpyxl, compose AI reply, send email - Google Forms → Google Sheets: collect responses without writing a backend
- Publish a Sheet as a public CSV URL — instant data feed for any pipeline
- make.com scenarios: visual node editor for workflow automation
- "Watch new rows" Google Sheets trigger — fires automatically on new submissions
- Make AI module: drop-in LLM step inside the scenario
- Gmail action: send formatted reply email back to the user
- Decision rule: Python when you need control and integration; make.com when you need speed and zero ops
GitHub Actions CI/CD with AI Reporting
Connect everything from the previous modules into one self-running pipeline: push code → GitHub Actions runs the framework → Allure report deploys to GitHub Pages → an AI summarises results → email lands in your inbox. You leave this module with a workflow you can drop into any client repo on Monday.
- Trigger on push: when code lands on master, GitHub Actions kicks off a full test run
- Ubuntu runner setup: install Python · Java · Allure CLI · pytest · Playwright · browsers
- Run tests with
--alluredir=allure-results --junitxml=junit.xml - Generate Allure HTML report from results
- Deploy report to GitHub Pages via
peaceiris/actions-gh-pages - Parse
junit.xmlinline (Python heredoc) for total / passed / failed / skipped counts - POST JSON payload to a make.com webhook URL stored in
MAKE_WEBHOOK_URLsecret - make.com receives the payload, feeds it to "You are a Senior QA Automation Lead" prompt, sends email
- Upload
videos/artifact so failures are debuggable later
AI for Manual Testing
Manual testing is not going away — but it is changing. This module shows the manual-tester end of the pipeline: feed a requirements doc to an LLM and generate scenarios, steps, data and defect reports. You also learn the two parameters (temperature, top_p) that decide whether AI sounds robotic or unpredictable, and how to spot when it's hallucinating.
- Temperature (0 = robotic / 0.3 = controlled / 0.8 = creative / 1.0 = unpredictable)
- top_p: word-probability cutoff — pairs with temperature to shape output
- Why markdown beats
.doc/.pdf/.xlsxas AI input - Convert
.docxrequirements to.mdwithpypandoc+pandocbinary - Prompts to generate: test scenarios · test steps · test data · review comments · defect reports
- Realistic vs scale-generated test data — when to write each by hand
- AI Bias — Representation Bias from skewed training data
- Hallucination — AI confidently producing data that doesn't exist
- QA habits to catch bad output before it ships
AI-Assisted Coding in IDE
Where AI changes test-automation writing the most. You'll use GitHub Copilot for vibe coding inside PyCharm, swap it for a free local LLM via the Continue plugin and Ollama, then connect Microsoft's Playwright MCP so an AI agent can drive a real browser as it generates the script.
- Vibe coding: describe what you want in plain English, AI writes the code
- PyCharm setup: enable Code Completion, install GitHub Copilot plugin
- The 6 daily uses: write · explain · refactor · debug · MTC → automation · code migration (Selenium ↔ Playwright)
- Convert JS Playwright to Python Playwright (or the reverse) with one prompt
- Use a local LLM inside the IDE — install Continue plugin, point it at
localhost:11434 - MCP — Model Context Protocol: standardised way AI tools talk to applications
- Install Microsoft's Playwright MCP: requires Node.js →
npm install @playwright/mcp@latest - Wire up
mcp.jsonin PyCharm; enable MCP Server in settings - Use Copilot in Agent mode + Playwright MCP: AI opens a real browser, finds locators, writes verified script
AI-Generated Frameworks & Self-Healing
The final module is the headline result of the course. You install Antigravity (Google's agentic IDE), describe the framework you want in English, watch it generate a working pytest + Playwright + Page Object framework, then upgrade it with an AI-healing mechanism that auto-fixes broken locators — caching the fixes so you only pay the AI tax once per locator.
- Agentic AI: AI manager → AI tools → real-world actions (the conceptual map)
- Install Antigravity from
antigravity.google/, sign in with Gmail - Generate a Python Playwright + pytest framework via prompt: BaseTest, page objects, sample test
- Approve plan → Antigravity writes the files → run the sample test → it just works
- Convert an Excel manual test case (OSPOS) to an automated Page Object Model script via prompt
- Configure
config.properties+ framework conventions so AI follows your structure - Add an AI-based self-healing locator mechanism using Gemini:
- Try original locator → on failure, call Gemini for a new working locator → use it
- Log both attempts; expose a single utility
findElementWithHealing(page, locator) - Cache healed locators in
locator_db.json— try original → check DB → call AI only on cache miss - Result: the locator-breaking UI change that used to kill your suite is now a logged warning
What did you build with scikit-learn?
A LinearRegression model that predicts land price from square-feet, trained once on a small dataset, saved with pickle, served via FastAPI as /predict?square_feet=8, with a Streamlit UI on top — the full ML deployment pipeline in under 100 lines.
What is the 7-element prompt framework?
Role · Task · Context · Tone · Format · Constraints · Question. Hitting all seven turns a vague Gemini request into a reliable scenario-generator or defect-summariser. Most prompt failures in QA work happen because one of the seven is missing.
Why would you choose Ollama over Gemini?
Cost (zero per-call), security (data never leaves the box), latency (predictable), no internet dependence. For banking/healthcare/government QA where you cannot send test data to a US-hosted endpoint, Ollama is the only practical answer.
When would you use make.com over Python code?
Use make.com when connecting pre-built services (Sheets, Gmail, Slack, GitHub) with standard data flows — OAuth, retries and error workflows come free. Write Python when you need custom logic or tight integration with an existing pytest / Playwright codebase.
How does your GitHub Actions pipeline report results?
The Actions workflow runs pytest with JUnit + Allure outputs, deploys the Allure HTML report to GitHub Pages, then POSTs total / passed / failed counts to a make.com webhook. make.com prompts Gemini ("You are a Senior QA Automation Lead…") and emails a professional summary on every push.
What is MCP and what does Playwright MCP do?
Model Context Protocol is an open standard for connecting LLMs to external tools. Microsoft's Playwright MCP gives Copilot or Claude direct browser control — navigate, click, fill, screenshot, read DOM — turning vibe coding into verified vibe coding: the AI tests its own script before saving it.
How does your AI self-healing mechanism work?
A utility findElementWithHealing(page, locator) tries the original first. On failure, it checks locator_db.json; a hit means the locator was previously healed — reuse it. A miss calls Gemini for a new working locator, uses it, and writes it back to the JSON so the next run is cache-warm. Net effect: AI tax paid once per change.
How do you catch AI hallucination in tests?
Three habits: (1) every AI-generated locator runs in MCP before being saved, (2) every AI-generated defect report is read against the actual log, (3) low temperature (0.2–0.3) for scenario / data work so output stays grounded. Hallucinations sneak in when teams treat AI output as "done".