Skip to main content

Testing Philosophy

Aurora prioritizes practical testing approaches that ensure reliability without hindering development velocity. Before adding new test infrastructure, consult with the team to align on testing strategies.

Manual Testing

Manual testing is currently the primary testing method for Aurora. This guide covers how to effectively test your changes.

Starting the Test Environment

Start Aurora in development mode to test your changes:
This starts all services with hot reloading enabled:
  • Backend changes auto-reload in Flask
  • Frontend changes rebuild instantly with Turbopack

Viewing Logs

Monitor logs to debug issues:

Testing Checklist

When testing your changes, verify:

Backend Changes

  • Service starts successfully: No errors in startup logs
  • API endpoints respond: Test with curl or Postman
  • Database operations work: Check PostgreSQL logs
  • Error handling: Test with invalid inputs
  • Logging is appropriate: No excessive debug logs
  • Security: Verify authentication/authorization

Frontend Changes

  • Page loads without errors: Check browser console
  • Responsive design: Test on different screen sizes
  • User interactions work: Click buttons, submit forms
  • Error states: Test error handling and user feedback
  • Accessibility: Keyboard navigation, screen reader support
  • Cross-browser compatibility: Test on Chrome, Firefox, Safari

Integration Testing

  • End-to-end flows: Test complete user journeys
  • Cloud provider integrations: Test with actual credentials
  • WebSocket communication: Test chatbot interactions
  • Background tasks: Verify Celery tasks complete
  • State persistence: Check data saves correctly

Testing Cloud Integrations

AWS Integration Testing

  1. Configure credentials in Vault or .env:
  1. Test resource listing:
  1. Verify in UI: Navigate to AWS dashboard and check resources display

GCP Integration Testing

  1. Place service account JSON in server/connectors/gcp_connector/:
  1. Set project ID in .env:
  1. Test via chatbot: Ask “List my GCP compute instances”

Azure Integration Testing

  1. Configure Azure credentials:
  1. Test subscription listing:

Testing the Chatbot

WebSocket Connection Testing

  1. Open browser console on http://localhost:3000/chat
  2. Check WebSocket connection: Look for connection established message
  3. Send test message: “Hello” should receive a response
  4. Monitor backend logs:

Agent Tool Testing

Test agent tools by asking specific questions:

LangGraph Workflow Testing

Monitor the agent workflow in logs:
Look for:
  • Agent state transitions
  • Tool invocations
  • LLM API calls
  • Error handling

Testing Database Operations

PostgreSQL Testing

  1. Connect to database:
  1. Verify schema:
  1. Check data:
  1. Exit:

Weaviate Vector Database Testing

  1. Access Weaviate console: http://localhost:8080/v1
  2. Test semantic search:
  1. Verify embeddings: Check that knowledge base documents are indexed

Testing Vault Integration

Store Test Secret

Retrieve Test Secret

Test in Application

Verify secrets are resolved correctly:

Testing Storage (SeaweedFS)

Access Web Interface

Test S3 API

Test in Application

Testing Celery Background Tasks

Monitor Task Queue

Trigger Test Task

Trigger a background task and monitor execution:

Testing Infrastructure Provisioning

Terraform Workflow Testing

  1. Request infrastructure via chatbot:
  1. Review generated Terraform:
  1. Approve changes: Confirm in UI
  2. Monitor execution:
  1. Verify in cloud console: Check resource was created
  2. Test cleanup:

Performance Testing

Monitor Resource Usage

Database Query Performance

Frontend Performance

  1. Open Chrome DevTools (F12)
  2. Network tab: Check request timing
  3. Performance tab: Record page load
  4. Lighthouse: Run audit (Performance, Accessibility, Best Practices)

Security Testing

Authentication Testing

Authorization Testing

Test that users can only access their own resources:
  1. Create two test users
  2. Create projects for each user
  3. Verify User A cannot access User B’s projects

Input Validation Testing

Test with malicious inputs:
Verify these attacks are properly sanitized.

Automated Testing (Future)

While Aurora currently focuses on manual testing, future test infrastructure may include:

Backend Testing (pytest)

Frontend Testing (Playwright)

CI/CD Testing

Aurora includes CI/CD pipelines that run on every PR:
  • Environment validation: Checks Docker Compose files are in sync
  • Linting: Runs ESLint on frontend code
  • Build verification: Ensures containers build successfully
Monitor CI/CD status in your pull request.

Troubleshooting Test Issues

Services Won’t Start

Database Connection Errors

WebSocket Connection Failures

Frontend Build Errors

Backend Import Errors

Best Practices

  • Test early and often: Test changes as you make them
  • Test edge cases: Don’t just test the happy path
  • Test with real data: Use actual cloud credentials when possible
  • Document test scenarios: Record steps for reproducing issues
  • Clean up test resources: Delete test cloud resources after testing
  • Check logs: Always review logs for warnings/errors
  • Test cross-browser: Don’t assume all browsers behave the same
  • Test mobile: Verify responsive design on mobile devices

Next Steps

Development Setup

Set up your local development environment

Architecture

Learn about Aurora’s architecture

Contributing

Guidelines for contributing to Aurora