-
Notifications
You must be signed in to change notification settings - Fork 53
Non deterministic Test Tracker
SimpleReport engineers recently identified a pain point pertaining to CI/CD: non-deterministic or "flaky" tests.
Non-deterministic tests cannot be guaranteed to behave predictably, and may cause CI/CD failures even if the underlying code is healthy.
Below, please document any such automated tests. Unit tests, integration tests, and end-to-end tests are all relevant to this effort and may all be tracked on this page. Engineers did a flaky-test bug bash session in the 9/7 eng sync. Agenda and notes can be found here.
A log of flaky tests are kept here
- Java, use Intellij's repeat until failure can help make it troubleshoot
- Javascript, use jest's test.each() to repeat the test many times.
Periodically our Cypress test user gets locked out and CI runs will fail in bulk with a 401 Unauthorized error. We suspect something is wrong with the way we're programmatically generating our MFA logins during e2e runs but can't be bothered to fix it. In those cases, go into Okta and unlock that user (ask an engineer for the account details) and rerun the test.
- Getting Started
- [Setup] Docker and docker compose development
- [Setup] IntelliJ run configurations
- [Setup] Running DB outside of Docker (optional)
- [Setup] Running nginx locally (optional)
- [Setup] Running outside of docker
- Accessing and testing weird parts of the app on local dev
- Accessing patient experience in local dev
- API Testing with Insomnia
- Cypress
- How to run e2e locally for development
- E2E tests
- Database maintenance
- MailHog
- Running tests
- SendGrid
- Setting up okta
- Sonar
- Storybook and Chromatic
- Twilio
- User roles
- Wiremock
- CSV Uploader
- Log local DB queries
- Code review and PR conventions
- SimpleReport Style Guide
- How to Review and Test Pull Requests for Dependabot
- How to Review and Test Pull Requests with Terraform Changes
- SimpleReport Deployment Process
- Adding a Developer
- Removing a developer
- Non-deterministic test tracker
- Alert Response - When You Know What is Wrong
- What to Do When You Have No Idea What is Wrong
- Main Branch Status
- Maintenance Mode
- Swapping Slots
- Monitoring
- Container Debugging
- Debugging the ReportStream Uploader
- Renew Azure Service Principal Credentials
- Releasing Changelog Locks
- Muting Alerts
- Architectural Decision Records
- Backend Stack Overview
- Frontend Overview
- Cloud Architecture
- Cloud Environments
- Database ERD
- External IDs
- GraphQL Flow
- Hibernate Lazy fetching and nested models
- Identity Verification (Experian)
- Spring Profile Management
- SR Result bulk uploader device validation logic
- Test Metadata and how we store it
- TestOrder vs TestEvent
- ReportStream Integration
- Feature Flag Setup
- FHIR Resources
- FHIR Conversions
- Okta E2E Integration
- Deploy Application Action
- Slack notifications for support escalations
- Creating a New Environment Within a Resource Group
- How to Add and Use Environment Variables in Azure
- Web Application Firewall (WAF) Troubleshooting and Maintenance
- How to Review and Test Pull Requests with Terraform Changes