# Testing & Deployment Concepts

In 
Published 2022-12-03

# 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 Concepts

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, but we don't need necessarily 2 environments. 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%.