Testing Policy

This document defines the testing policies, deployment strategies, and types of tests applied to the Datalyz project to ensure a high level of quality.

1. Types of Tests

Our strategy integrates several types of tests to cover different aspects of the software:

  • Unit Tests: * Purpose: Validate the correct functioning of individual and isolated code components (functions, methods). They are fast to execute and facilitate early debugging.

  • Integration Tests: * Purpose: Ensure that different modules or services work correctly when interacting. They are essential to ensure the system works harmoniously.

  • Performance Tests: * Purpose: Assess the responsiveness and stability of the software under different load conditions. They help identify bottlenecks and ensure a smooth user experience.

  • Security Tests: * Purpose: Identify potential vulnerabilities in the code and infrastructure. Tools like TruffleHog for secret detection and SonarQube for vulnerability analysis are used.

2. Testing Strategy and Code Quality

  • Automation: Tests are integrated into the CI/CD pipeline and executed automatically on each push to ensure continuous validation.

  • Multi-Platform Compatibility: GitHub Actions run tests on a matrix of multiple operating systems (OS) to ensure code compatibility and robustness.

  • Code Quality: The SonarQube tool is used for continuous code quality analysis. It detects bugs, vulnerabilities, duplicated code, and code smells. It also provides metrics on test coverage and technical debt.

3. Deployment Strategy

Production deployment is conditioned on the successful completion of all validation steps. Only code that has successfully passed all tests is integrated and deployed, reinforcing the quality and stability of the project.