-
Notifications
You must be signed in to change notification settings - Fork 8
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.
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.
- Postman (or a similar REST client) installed for API testing.
- Access to the AWS Console with permissions to view CloudWatch logs.
-
Standardized
.env.localtemplate provided in the repository root.
- 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.
- 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.
- 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
subIDof the currently logged-in Cognito user.
- With 40 developers, keeping
.envfiles 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.