AetherTest β€” Autonomous AI-Powered Software Testing with Amazon Nova

AetherTest Logo

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

AetherTest Demo β€” Click to Watch
▢️ 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 the BedrockModel in 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=true activates 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 ChatAWSBedrock for 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

  1. Enter a requirement: "Test login with valid and invalid credentials"
  2. Enter target URL: "https://the-internet.herokuapp.com/login"
  3. Select test scope (Quick / Standard / Thorough)
  4. 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 BedrockModel for 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:

  1. Primary: Claude Haiku 4.5 (us.anthropic.claude-haiku-4-5-20251001-v1:0) via invoke_model β€” optimized for screenshot analysis with vision support
  2. Fallback: Amazon Nova Pro (amazon.nova-pro-v1:0) via Bedrock Converse API β€” used when Claude Haiku is unavailable or throttled
  3. 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):

  1. Type a test requirement in plain English
  2. Select test scope (Quick: 3 / Standard: 5 / Thorough: 20 test cases)
  3. Click Launch β€” watch the Amazon Nova-powered 5-agent pipeline activate
  4. Live browser panel shows real Chromium executing tests via CDP (running locally in Docker)
  5. Test cases populate with live PASS/FAIL status (vision-validated by Bedrock models)
  6. Quality report generated with score, summary, and MP4 recording

Code Repository Access

  1. Clone this repository
  2. Copy .env.example to .env and fill in your AWS credentials
  3. Run docker compose up --build to start all 3 services
  4. 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

Share this project:

Updates