#
Testing & Deployment Concepts
#
Testing Concepts
Smoke Testing
Test to verify if the basic functionalities of that particular build are working fine as expected. This is and should always be the first test to be done.
Sanity Testing
Sanity Testing is done to check the new functionality/bugs have been fixed.
Unit Testing
Test of an individual unit or component of a software system and verifies its behavior independently of other parts of the system. In Object-Oriented Programming, the unit of functionality is usually defined as single class.
Integration Testing
Integration Tests should test multiple modules or components that are combined. Some components might still be
mocked.
Acceptance Testing
Test of a system or component to see if it satisfies the needs of a user or a customer.
A/B testing
We deploy 2 versions of a service/application and let the users decide which fits better for them.
#
Deployment Strategies
Blue-Green Deployment
In this deployment type, we have 2 environments and each have a version of the application/service. The old version is considered Blue, and the new version is considered Green. The Green version is initially available for testing and the Blue one is available for production. When the Green version is tested and all looks good, the traffic is redirected to the Green version and the Blue version will stay for a while in case we need to roll it back.
Canary Deployments
We have 2 versions of the service/application like in Blue-Green Deployment model. A little percentage of a requests are directed to the new version to see if all looks good. If there are no complains, the percentage of traffic which is redirected to the new version will increase until 100%.
Rolling Deployment
The new version is rolled out incrementally across servers or instances. We have no downtime.
Mixed versions can temporarily coexist.
Recreate Deployment
The old version is stopped, and the new version is deployed.
Shadow Deployment
The new version runs in parallel with the current version but does not handle live traffic. Instead,
it receives a copy of the live requests to test in real-time without affecting users.