Middle
What Quality Gates do you know?
sobes.tech AI
Answer from AI
Quality Gates (quality checkpoints) are a set of criteria that must be met before moving on to the next phase of the software development lifecycle (SDLC).
Examples:
-
Planning (Requirements/Design Phase):
- Requirements are documented, unambiguous, and verifiable.
- Architecture and design are approved.
- Work volume estimates are agreed upon.
-
Development (Development Phase):
- Successful completion of unit tests (specified code coverage percentage).
- Static code analysis passed (no critical errors or style violations).
- Code review conducted and fixes accepted.
-
Testing (Testing Phase):
- Integration tests passed.
- System tests passed.
- Regression tests passed (specified success rate).
- Acceptance tests successfully completed (or an approved defect list for bypassing).
- The severity level of open defects meets criteria (e.g., no critical or blocking defects).
- Test coverage (e.g., coverage of functionality requirements).
- Performance and security testing, if applicable, passed successfully or with acceptable results.
- Documentation (e.g., user, technical) is up to date.
-
Release (Release Phase):
- All necessary build artifacts are ready.
- Deployment plan is approved.
- Rollback plan is approved.
- Pre-production environment testing (UAT, Staging) is completed.
-
Support (Maintenance Phase):
- Problem resolution documentation is updated.
- Monitoring is set up and functioning.
Tools used for automating Quality Gates:
- CI/CD systems: Jenkins, GitLab CI, GitHub Actions (for running tests, code analysis).
- Test management systems: TestRail, Zephyr (for tracking test results).
- Static code analysis tools: SonarQube, Fortify, Checkstyle.
- Defect management systems: Jira, Bugzilla (for tracking defect status).
- Code coverage tools: JaCoCo, Cobertura.
Example of integrating a Quality Gate into a CI/CD pipeline:
# Example in .gitlab-ci.yml
stages:
- build
- test
- analyze
- deploy # After passing the Quality Gate
build:
stage: build
script:
- mvn clean install
test:
stage: test
script:
- mvn test
artifacts: # Saving test results
paths:
- target/surefire-reports/
analyze:
stage: analyze
script:
- sonar-scanner # Running static analysis via SonarQube
allow_failure: false # Pipeline will fail if SonarQube Quality Gate is not passed
variables:
SONAR_TOKEN: $SONAR_TOKEN # Token for accessing SonarQube
SONAR_HOST_URL: $SONAR_HOST_URL # SonarQube server URL
deploy:
stage: deploy
script:
- echo "Deploying..." # Action that occurs only after successful completion of all previous stages (including Quality Gate)
needs: # Specify dependencies
- analyze