diff --git a/testing.md.-.md b/testing.md.-.md new file mode 100644 index 0000000..44743ad --- /dev/null +++ b/testing.md.-.md @@ -0,0 +1,154 @@ +## Test strategy + +The test strategy for **gitjet.ru** will involve the following steps: + +1. Unit testing of core components (CI/CD pipeline, Docker image build process, Helm chart deployment) +2. Integration testing between the components +3. Manual rollout testing to ensure platform stability and functionality + +## Test tactics + +The test tactics for **gitjet.ru** will involve the following techniques: + +1. Black box testing: Testing without prior knowledge of the system architecture or implementation details +2. White box testing: Testing with prior knowledge of the system architecture and implementation details +3. Regression testing: Testing against known issues to ensure that new changes do not introduce regressions + +## Test cases (mapped to use cases) + +### Use case 1: Deploying Platform via CI/CD Pipeline + +**Test case:** Verify that the CI/CD pipeline correctly builds and publishes Docker images to the private registry. + +**Tactic:** Black box testing + +**Steps:** +1. Trigger a new commit to the `main` branch of the **[gitjet/core-scm](../core-scm)** repository. +2. Verify that the CI/CD pipeline builds and publishes Docker images to the private registry. + +### Use case 2: Manual Rollout of Platform + +**Test case:** Verify that the manual rollout script correctly deploys the platform changes. + +**Tactic:** White box testing + +**Steps:** +1. Execute the `core-scm/deploy/helm-upgrade-k3s-lab.sh` script to manually roll out the platform changes. +2. Verify that the platform is deployed correctly using Helm charts. + +## Smoke + +The smoke tests for **gitjet.ru** will involve the following components: + +1. CI/CD pipeline (defined in `.gitjet/workflows/core-scm-production.yml`) +2. Docker image build process +3. Helm chart deployment + +### Smoke test 1: CI/CD pipeline + +**Test case:** Verify that the CI/CD pipeline is correctly configured and running. + +**Tactic:** Black box testing + +**Steps:** +1. Trigger a new commit to the `main` branch of the **[gitjet/core-scm](../core-scm)** repository. +2. Wait for the CI/CD pipeline to complete successfully. + +### Smoke test 2: Docker image build process + +**Test case:** Verify that the Docker image build process is correctly configured and running. + +**Tactic:** Black box testing + +**Steps:** +1. Build a new Docker image using the `docker build` command. +2. Verify that the image is built successfully. + +### Smoke test 3: Helm chart deployment + +**Test case:** Verify that the Helm chart deployment process is correctly configured and running. + +**Tactic:** Black box testing + +**Steps:** +1. Deploy the platform using Helm charts. +2. Verify that the platform is deployed successfully. + +## Regression + +The regression tests for **gitjet.ru** will involve the following components: + +1. CI/CD pipeline (defined in `.gitjet/workflows/core-scm-production.yml`) +2. Docker image build process +3. Helm chart deployment + +### Regression test 1: CI/CD pipeline + +**Test case:** Verify that the CI/CD pipeline correctly handles errors and failures during the build and publish process. + +**Tactic:** White box testing + +**Steps:** +1. Introduce an error in the `.gitjet/workflows/core-scm-production.yml` file. +2. Trigger a new commit to the `main` branch of the **[gitjet/core-scm](../core-scm)** repository. +3. Verify that the CI/CD pipeline handles errors and failures correctly. + +### Regression test 2: Docker image build process + +**Test case:** Verify that the Docker image build process correctly handles errors and failures during the build process. + +**Tactic:** White box testing + +**Steps:** +1. Introduce an error in the `Dockerfile` of the **[gitjet/core-scm](../core-scm)** repository. +2. Build a new Docker image using the `docker build` command. +3. Verify that the image is built successfully and handles errors and failures correctly. + +### Regression test 3: Helm chart deployment + +**Test case:** Verify that the Helm chart deployment process correctly handles errors and failures during the deployment process. + +**Tactic:** White box testing + +**Steps:** +1. Introduce an error in the `Chart.yaml` file of the **[gitjet/core-scm](../core-scm)** repository. +2. Deploy the platform using Helm charts. +3. Verify that the platform is deployed successfully and handles errors and failures correctly. + +## Edge cases + +The edge cases for **gitjet.ru** will involve the following components: + +1. CI/CD pipeline (defined in `.gitjet/workflows/core-scm-production.yml`) +2. Docker image build process +3. Helm chart deployment + +### Edge case 1: CI/CD pipeline with multiple concurrent builds + +**Test case:** Verify that the CI/CD pipeline handles multiple concurrent builds correctly. + +**Tactic:** White box testing + +**Steps:** +1. Trigger multiple new commits to the `main` branch of the **[gitjet/core-scm](../core-scm)** repository. +2. Verify that the CI/CD pipeline handles multiple concurrent builds correctly. + +### Edge case 2: Docker image build process with large images + +**Test case:** Verify that the Docker image build process handles large images correctly. + +**Tactic:** White box testing + +**Steps:** +1. Build a large Docker image using the `docker build` command. +2. Verify that the image is built successfully and handles large images correctly. + +### Edge case 3: Helm chart deployment with multiple releases + +**Test case:** Verify that the Helm chart deployment process handles multiple releases correctly. + +**Tactic:** White box testing + +**Steps:** +1. Deploy the platform using Helm charts multiple times. +2. Verify that the platform is deployed successfully and handles multiple releases correctly. \ No newline at end of file