Repository navigation
Testing Plan and Continuous Integration
To ensure the system continues to work as intended between changes, the following testing strategy will be implemented:
Unit tests will be performed to ensure individual components render and behave correctly such as displaying the correct data and returning the right data. Django's built-in testing framework will be used for the backend, and Jest will be used for the frontend. Everyone is in charge of writing tests for the features they implement.
Integration tests will be written to ensure different modules interact as intended. These tests will involve frontend-backend communication and communication between different modules. Everyone in in charge of writing tests for the components they implement.
Once core functionalities are implemented, alpha testing will be performed. Depending on the progress of the project, a final product may be released to the stakeholder for beta testing.
We’re setting up a GitHub Actions pipeline so that every push or pull request builds and triggers a full test run.
-
Install Dependencies and Compile
- Create a virtual environment and install dependencies, builds
-
Run Tests
- Automatically run tests for the frontend and backend
-
Notifications
- GitHub sends an automatic pass/fail status on each pull request.
- Writing Tests: Everyone writes tests for the features they develop.
- Reviewing PRs: Two members must review and approve PRs. The person initiating the PR can request a review from at least 2 other members. The reviewers must look over all the changes and give constructive feedback when both approving or requesting changes.
- Monitoring CI: If a build fails, the developer who owns that feature is responsible for fixing it quickly.