AetherTest β Autonomous AI-Powered Software Testing with Amazon Nova
A generative AI application built on AWS using Amazon Nova as the core foundation model.
Describe what to test in plain English. Watch AI agents analyze requirements, generate test cases, execute them in a live browser, validate results with computer vision, and deliver a quality report β entirely autonomously. No scripts. No selectors. No manual translation.
πΉ Demo Video #AmazonNova
βΆοΈ Click the image above to watch the demo video Β· Recorded from a locally running instance via Docker Compose
π Amazon Nova Hackathon Submission
| Field | Details |
|---|---|
| Project | AetherTest β The Autonomous STLC Engine |
| Category | Agentic AI Β· UI Automation Β· Multimodal Understanding |
| Core Model | Amazon Nova Lite (amazon.nova-lite-v1:0) on Amazon Bedrock |
| Agentic Framework | Strands Agents SDK with Amazon Bedrock |
| UI Automation | Amazon Nova Act (integration implemented, see Nova Act note) |
| Vision | Claude Haiku 4.5 via Bedrock (primary) + Amazon Nova Pro (fallback) |
| Demo Video | βΆοΈ Watch Demo Video #AmazonNova |
| Repository | This repository β see Quick Start for setup |
Short Description
AetherTest is an autonomous software testing platform that uses Amazon Nova foundation models on AWS Bedrock to eliminate the gap between requirements and test execution. Users describe tests in plain English; a multi-agent AI pipeline powered by Strands Agents and Amazon Nova orchestrates the entire testing lifecycle β from requirement analysis through browser execution to vision-validated quality reports β with zero manual scripting.
How Amazon Nova Powers AetherTest
AetherTest is built from the ground up on Amazon Nova and AWS Bedrock services:
| Amazon Nova Component | Role in AetherTest | Implementation |
|---|---|---|
Amazon Nova Lite (amazon.nova-lite-v1:0) |
Primary orchestrator and reasoning model β plans test strategies, dispatches tools, manages the 5-agent pipeline | backend/app/agents/orchestrator.py β Bedrock Converse API |
Amazon Nova Pro (amazon.nova-pro-v1:0) |
Strands Agents orchestration model + vision fallback for screenshot analysis | backend/app/agents/strands_orchestrator.py, backend/app/tools/vision_tools.py |
| Amazon Nova Act | UI automation β browser interaction via natural language commands | Integration code implemented (see Nova Act section) |
| Amazon Nova Lite (memory) | AI-powered memory consolidation and semantic querying of past test sessions | backend/app/memory/service.py |
Model Usage Breakdown
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AMAZON BEDROCK β
β β
β ββββββββββββββββββββββββ ββββββββββββββββββββββββ βββββββββββββββββββββββββ β
β β Amazon Nova Lite β β Amazon Nova Pro β β Claude Haiku 4.5 β β
β β (Orchestrator) β β (Strands Agent + β β (Vision Analysis + β β
β β Planning, Reasoning β β Vision Fallback) β β Browser Automation) β β
β β Tool Dispatch β β β β β β
β ββββββββββββββββββββββββ ββββββββββββββββββββββββ βββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββ ββββββββββββββββββββββββ β
β β Amazon Nova Act β β Amazon Nova Lite β β
β β (UI Automation) β β (Memory Layer) β β
β β Browser Interaction β β Consolidation & β β
β β via NL Commands β β Semantic Queries β β
β ββββββββββββββββββββββββ ββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Hackathon Categories Addressed
1. Agentic AI
AetherTest implements a full agentic AI pipeline using Strands Agents SDK on Amazon Bedrock:
- A 5-agent pipeline (Requirement Analyst β Test Case Architect β Browser Specialist β Monitor Validator β Report Generator) orchestrated by Amazon Nova
- Each agent has specialized tools and responsibilities, coordinated through Bedrock's Converse API
- Strands Agents SDK provides the agent loop, streaming, and tool orchestration (
USE_STRANDS=true) - The orchestrator uses Amazon Nova Pro (
amazon.nova-pro-v1:0) as theBedrockModelin Strands mode
2. UI Automation
- Amazon Nova Act integration for natural-language-driven browser automation (see Nova Act section)
- CDP-based browser control with vision-guided element identification
- Self-healing test execution β AI adapts to UI changes without brittle selectors
3. Multimodal Understanding
- Screenshot capture and vision analysis using Claude Haiku 4.5 via Bedrock (primary)
- Amazon Nova Pro as a vision fallback β analyzes screenshots when Claude Haiku is unavailable
- The AI validates test results by visually inspecting browser state, not DOM assertions
π€ Amazon Nova Act Integration
AetherTest includes integration code for Amazon Nova Act, Amazon's foundation model purpose-built for UI automation and browser interaction.
What Nova Act Enables
- Natural language browser commands (e.g., "Click the login button and enter credentials")
- Vision-based element targeting without DOM selectors
- Resilient UI automation that adapts to layout changes
Setup
To enable Nova Act, create a local .env file with the following:
# Amazon Nova Act Configuration
NOVA_ACT_ENABLED=true
NOVA_ACT_API_KEY=your-nova-act-api-key
AWS_REGION=us-east-1
β οΈ Important Note on Nova Act Testing
Nova Act could not be fully end-to-end tested due to lack of available AWS credits during the hackathon period. The integration code is fully implemented and wired into the tool dispatch pipeline, but live validation against the Nova Act API was not possible. The architecture is designed so that enabling
NOVA_ACT_ENABLED=trueactivates Nova Act as the primary browser automation engine, with the existing CDP + browser-use pipeline serving as the fallback.
The current working browser automation uses:
- browser-use library with Claude Haiku 4.5 via
ChatAWSBedrockfor AI-driven navigation - Chrome DevTools Protocol (CDP) for direct browser control (navigate, click, type, screenshot)
- PageAgent bridge for indexed DOM element interactions
The Problem β The Translation Gap
Current tools don't solve this. Selenium, Cypress, even "low-code" tools still require:
- Manual authoring of test scripts
- DOM selector maintenance (breaks on every UI change)
- Testing can only start after code is "stable"
| Dimension | Selenium / Cypress | AetherTest + Amazon Nova |
|---|---|---|
| Test Creation | Manual scripting | Plain English description (seconds) |
| Element Targeting | DOM selectors | Vision-based β identifies by appearance |
| UI Change Resilience | Breaks, manual fix | Self-heals via Amazon Nova reasoning |
| Maintenance | 30% of tester time | Near-zero β AI adapts automatically |
AetherTest eliminates this translation gap entirely.
Architecture
Local Development Architecture (Demo Environment)
πΉ The demo video showcases AetherTest running entirely locally via Docker Compose on a developer machine. All 3 services (backend, frontend, browser sandbox) run as local containers, with Amazon Bedrock accessed over the internet for AI model inference.
ββ Developer Machine (Docker Compose) βββββββββββββββββββββββββββββββββββββββββββββ
β β
β βββββββββββββββββββββββββ βββββββββββββββββββββ ββββββββββββββββββββββββββββββ
β β FastAPI Backend β β Next.js 14 β β Browser Sandbox ββ
β β β’ Nova Orchestrator β β β’ Dashboard β β β’ Chromium + CDP ββ
β β β’ Strands Agents β β β’ Live VNC β β β’ Xvfb + x11vnc ββ
β β β’ WebSocket β β β’ Test Results β β β’ noVNC streaming ββ
β β β’ Memory (SQLite) β β β’ 3D Visuals β β β’ FFmpeg recording ββ
β β Port: 8001 β β Port: 3001 β β Ports: 9222, 6080, 8888 ββ
β ββββββββββββ¬βββββββββββββ βββββββββββββββββββββ ββββββββββββββββββββββββββββββ
β β β
βββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β HTTPS (Bedrock API)
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AWS CLOUD (Amazon Bedrock) β
β β
β ββββββββββββββββββββββββ ββββββββββββββββββββββββ βββββββββββββββββββββββββ β
β β Amazon Nova Lite β β Amazon Nova Pro β β Claude Haiku 4.5 β β
β β (Orchestrator) β β (Strands + Vision) β β (Vision + Browser) β β
β ββββββββββββββββββββββββ ββββββββββββββββββββββββ βββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββ β
β β Amazon Nova Act β β
β β (UI Automation) β β
β ββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Local ports:
| Port | Service | Description |
|---|---|---|
| 3001 | Frontend | Next.js dashboard |
| 8001 | Backend | FastAPI + WebSocket |
| 6080 | noVNC | Live browser view |
| 5900 | VNC | Raw VNC connection |
| 9222 | CDP | Chrome DevTools Protocol |
| 8888 | Recorder | FFmpeg recording API |
Proposed Production Architecture (AWS Cloud)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AWS CLOUD β
β β
β ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββββββββββββββ β
β β CloudFront β β API Gateway β β Cognito β β
β β CDN + Frontend β β REST + WS β β User Authentication β β
β ββββββββββ¬ββββββββββ ββββββββββ¬ββββββββββ ββββββββββββββββββββββββββββββββ β
β β β β
β βΌ βΌ β
β ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββββββββββββββ β
β β S3 β β AgentCore β β ECS Fargate β β
β β Static Assets β β Runtime β β Browser Sandbox β β
β β Reports β β Strands Agent β β Chromium + CDP + noVNC β β
β β Recordings β β (Nova Pro) β β FFmpeg Recording β β
β ββββββββββββββββββββ ββββββββββ¬ββββββββββ ββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββββββββΌββββββββββββββββββββββ β
β βΌ βΌ βΌ β
β ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββββββββββββββ β
β β Amazon Bedrock β β AgentCore β β DynamoDB β β
β β Nova Lite/Pro β β Memory β β Sessions + Test Cases β β
β β Claude Haiku β β Short/Long β β β β
β β Nova Act β β Term Memory β β β β
β ββββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββ ββββββββββββββββββββ β
β β CloudWatch β β X-Ray β β
β β Logs + Metrics β β Distributed β β
β β Alarms β β Tracing β β
β ββββββββββββββββββββ ββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Key differences from local to production:
| Aspect | Local (Demo) | Production (AWS) |
|---|---|---|
| Frontend hosting | Docker container (port 3001) | CloudFront + S3 |
| Backend hosting | Docker container (port 8001) | Bedrock AgentCore Runtime |
| Browser sandbox | Docker container (Chromium) | ECS Fargate (auto-scaling) |
| Database | SQLite files | DynamoDB |
| Memory layer | SQLite (local_store.py) |
AgentCore Memory (agentcore_store.py) |
| Authentication | None (local dev) | Amazon Cognito |
| API access | Direct HTTP | API Gateway + WebSocket |
| Storage | Local filesystem | S3 (reports, recordings, screenshots) |
| Observability | Console logs | CloudWatch + X-Ray |
5-Agent Pipeline (Powered by Amazon Nova)
| Phase | Agent | Amazon Nova Role | Tools | Output |
|---|---|---|---|---|
| 1 | Requirement Analyst | Nova Lite plans analysis | β | Structured breakdown |
| 2 | Test Case Architect | Nova Lite generates cases | register_test_cases |
BDD test cases |
| 3 | Browser Specialist | Nova Act / CDP execution | execute_browser_task, get_credentials, CDP tools |
Live browser actions |
| 4 | Monitor Validator | Nova Pro / Haiku vision | capture_screenshot, analyze_screenshot |
PASS/FAIL verdicts |
| 5 | Report Generator | Nova Lite summarizes | save_report |
Quality report |
Quick Start
Prerequisites
- Docker Desktop
- AWS Account with Bedrock access (Amazon Nova Lite, Nova Pro, Claude Haiku 4.5)
- (Optional) Amazon Nova Act API key for UI automation
1. Clone the Repository
git clone <repository-url>
cd AetherTest-Amazon-Nova
2. Configure Environment
cp .env.example .env
Edit .env with your AWS credentials:
# Required β AWS Bedrock access
AWS_ACCESS_KEY_ID=AKIA...
AWS_SECRET_ACCESS_KEY=...
AWS_REGION=us-east-1
# Optional β Enable Strands Agents SDK
USE_STRANDS=true
# Optional β Enable Amazon Nova Act for UI automation
NOVA_ACT_ENABLED=true
NOVA_ACT_API_KEY=your-nova-act-api-key
3. Launch with Docker
docker compose up --build
4. Access the Application
| Service | URL |
|---|---|
| Dashboard | http://localhost:3001 |
| Live Browser (noVNC) | http://localhost:6080 |
| API Docs (Swagger) | http://localhost:8001/docs |
5. Run a Test
- Enter a requirement: "Test login with valid and invalid credentials"
- Enter target URL: "https://the-internet.herokuapp.com/login"
- Select test scope (Quick / Standard / Thorough)
- Click Launch and watch Amazon Nova orchestrate the test pipeline
AWS Services Used
| AWS Service | Purpose | Model ID |
|---|---|---|
| Amazon Bedrock | AI platform for all model access | β |
| Amazon Nova Lite | Primary orchestrator β planning, reasoning, tool dispatch, memory queries | amazon.nova-lite-v1:0 |
| Amazon Nova Pro | Strands Agent model + vision analysis fallback | amazon.nova-pro-v1:0 |
| Amazon Nova Act | UI automation via natural language (integration implemented) | β |
| Claude Haiku 4.5 (via Bedrock) | Primary vision analysis + browser-use automation | us.anthropic.claude-haiku-4-5-20251001-v1:0 |
| Strands Agents SDK | Agentic orchestration framework on Bedrock | β |
| Bedrock AgentCore Memory | Production memory persistence (target deployment) | β |
| Bedrock AgentCore Runtime | Production agent hosting (target deployment) | β |
Strands Agents SDK
AetherTest supports the Strands Agents SDK for agentic orchestration:
# Enable Strands mode in .env
USE_STRANDS=true
In Strands mode:
- Amazon Nova Pro serves as the
BedrockModelfor the agent loop - Tools are registered as Strands-compatible functions
- Built-in streaming, callback support, and memory integration
- Ready for deployment to AWS Bedrock AgentCore Runtime
Vision Pipeline
Vision-related tasks are handled through a tiered approach using Bedrock models:
- Primary: Claude Haiku 4.5 (
us.anthropic.claude-haiku-4-5-20251001-v1:0) viainvoke_modelβ optimized for screenshot analysis with vision support - Fallback: Amazon Nova Pro (
amazon.nova-pro-v1:0) via Bedrock Converse API β used when Claude Haiku is unavailable or throttled - Memory queries: Amazon Nova Lite (
amazon.nova-lite-v1:0) β fast AI-powered consolidation and semantic search over past test sessions
# Vision analysis flow (vision_tools.py)
# 1. Try Claude Haiku 4.5 (3 attempts with exponential backoff)
# 2. If all fail β fallback to Amazon Nova Pro vision
# 3. Both use Bedrock β no external API calls
Memory Layer (Always-On, Nova-Powered)
The memory layer uses Amazon Nova Lite for AI-powered operations:
| Feature | Description | Model |
|---|---|---|
| Memory Storage | Structured memories with entities, topics, importance | SQLite / AgentCore |
| Semantic Search | Text-based memory retrieval | Amazon Nova Lite |
| Consolidation | Pattern discovery across sessions | Amazon Nova Lite |
| Query | Natural language memory queries | Amazon Nova Lite |
Configuration
# Local development (SQLite)
MEMORY_STORE_TYPE=local
MEMORY_DB_PATH=./data/memory.db
# Production (AWS Bedrock AgentCore Memory)
MEMORY_STORE_TYPE=agentcore
AGENTCORE_MEMORY_ID=your-memory-id
AGENTCORE_MEMORY_REGION=us-west-2
Tech Stack
Backend
| Component | Technology |
|---|---|
| API Framework | FastAPI 0.115.0 |
| AI Platform | Amazon Bedrock |
| Orchestrator Model | Amazon Nova Lite |
| Agentic Framework | Strands Agents SDK |
| Vision (Primary) | Claude Haiku 4.5 via Bedrock |
| Vision (Fallback) | Amazon Nova Pro via Bedrock |
| UI Automation | Amazon Nova Act (implemented) |
| Browser Automation | browser-use + CDP |
| Memory AI | Amazon Nova Lite |
| Database | SQLite (aiosqlite) |
Frontend
| Component | Technology |
|---|---|
| Framework | Next.js 14 (App Router) |
| Styling | Tailwind CSS 3.4 |
| State | Zustand 4.5 |
| Animations | Framer Motion |
| 3D Visuals | React Three Fiber |
| Live Browser | noVNC iframe |
Infrastructure
| Component | Technology |
|---|---|
| Containers | Docker Compose (3 services) |
| Browser Sandbox | Chromium + CDP + noVNC |
| Recording | FFmpeg |
| VNC | x11vnc + noVNC |
Project Structure
AetherTest-Amazon-Nova/
βββ docker-compose.yml # 3 services: frontend, backend, sandbox
βββ .env.example # Environment template
β
βββ backend/
β βββ app/
β β βββ agents/
β β β βββ orchestrator.py # Amazon Nova Lite β Bedrock Converse loop
β β β βββ strands_orchestrator.py # Amazon Nova Pro β Strands SDK agent
β β βββ memory/
β β β βββ service.py # Amazon Nova Lite β AI memory queries
β β β βββ local_store.py # SQLite store (dev)
β β β βββ agentcore_store.py # AWS AgentCore (prod)
β β βββ tools/
β β β βββ browser_tools.py # browser-use + CDP automation
β β β βββ cdp_tools.py # Direct CDP WebSocket tools
β β β βββ nova_act_tools.py # Amazon Nova Act UI automation
β β β βββ pageagent_bridge.py # Indexed DOM interactions
β β β βββ vision_tools.py # Claude Haiku 4.5 + Nova Pro vision
β β β βββ storage_tools.py # Reports + credentials
β β βββ api/
β β βββ sessions.py # Session management
β β βββ credentials.py # Encrypted credentials
β β βββ recording.py # Screen recording
β β βββ memory.py # Memory Layer API
β βββ requirements.txt
β
βββ frontend/ # Next.js 14 frontend
β βββ app/ # App Router pages
β βββ components/ # React components (3D, animations, UI)
β βββ hooks/ # WebSocket + state hooks
β βββ store/ # Zustand stores
β
βββ sandbox/
βββ Dockerfile # Debian + Chromium + noVNC
βββ start.sh # Container entrypoint
βββ recorder.py # FFmpeg recording API
Demo
πΉ The demo video is recorded from a locally running instance of AetherTest using Docker Compose. All AI inference calls go to Amazon Bedrock in the cloud, but the application itself (frontend, backend, browser sandbox) runs entirely on the developer's local machine. This demonstrates the full end-to-end flow without requiring any cloud infrastructure beyond Bedrock model access.
Demo flow (tag: #AmazonNova):
- Type a test requirement in plain English
- Select test scope (Quick: 3 / Standard: 5 / Thorough: 20 test cases)
- Click Launch β watch the Amazon Nova-powered 5-agent pipeline activate
- Live browser panel shows real Chromium executing tests via CDP (running locally in Docker)
- Test cases populate with live PASS/FAIL status (vision-validated by Bedrock models)
- Quality report generated with score, summary, and MP4 recording
Code Repository Access
- Clone this repository
- Copy
.env.exampleto.envand fill in your AWS credentials - Run
docker compose up --buildto start all 3 services - Open http://localhost:3001 to access the dashboard
For local development without Docker:
# Backend
cd backend
python -m venv .venv && source .venv/bin/activate # or .venv\Scripts\activate on Windows
pip install -r requirements.txt
playwright install chromium
uvicorn app.main:app --host 0.0.0.0 --port 8001 --reload
# Frontend (separate terminal)
cd frontend
npm install
npm run dev
Cost Estimate
| Component | Model | Cost per Test |
|---|---|---|
| Orchestration | Amazon Nova Lite | ~$0.005 |
| Vision analysis | Claude Haiku 4.5 / Nova Pro | ~$0.01 |
| Browser task | Claude Haiku 4.5 | ~$0.02 |
| Per test case | ~$0.035 | |
| 100 test cases | ~$3.50 |
License
MIT License
Built with β€οΈ for the Amazon Nova Hackathon using Amazon Nova on Amazon Bedrock
#AmazonNova
Built With
- amazon
- awsbedrock
- browser-use
- cdp
- dockerfile
- fastapi
- ffmpeg
- langchain
- nextjs
- novnc
- sanbox
- sqlite
- strandsagents
- typescript
Log in or sign up for Devpost to join the conversation.