Skip to content

Testing Framework and Team Synchronization

goldy4719 edited this page Apr 10, 2026 · 1 revision

This section describes the strategies and tools used to validate the application and the processes that enabled a 40-person development team to maintain a consistent environment.

Overview:

Testing for this project was divided into local UI development, isolated API verification, and end-to-end integration. To manage a large team of contributors, we prioritized environment synchronization and standardized testing workflows to ensure that code developed on 40 different machines behaved identically in the cloud.

Prerequisites:

  • Postman (or a similar REST client) installed for API testing.
  • Access to the AWS Console with permissions to view CloudWatch logs.
  • Standardized .env.local template provided in the repository root.

Implementation / Steps:

1. Local UI Verification

  • The npm development server (localhost:3000) allowed frontend developers to preview UI changes in real-time. By proxying requests to the live AWS API Gateway, developers could test frontend components against real data without needing a full local backend.

2. API Testing with Postman

  • Before integrating with the frontend, Python Lambda functions were tested in isolation using Postman. This allowed us to verify status codes, JSON response structures, and Rekognition tag accuracy by simulating API Gateway triggers.

3. Integration and End-to-End Testing

  • Integration testing focused on the "handshake" between services.
  • Example Case 1 (Upload Flow): Verifying that a successful S3 upload correctly triggers the Lambda function to start the Rekognition process.
  • Example Case 2 (Auth Flow): Ensuring that DynamoDB queries only return images associated with the subID of the currently logged-in Cognito user.

4. Team Sync and Environment Management

  • With 40 developers, keeping .env files synced was a primary challenge. We addressed this through:
    • Centralized Documentation: A master reference for environment variables (API endpoints, Cognito Client IDs) was maintained in a secure project channel.
    • AWS Console Training: All team members were trained on how to navigate the AWS Console to find their own resource identifiers, ensuring they could rebuild or point to specific cloud stacks independently.

Clone this wiki locally