DevOps is a process, where all the team will work towards a goal to achieve as quickly as possible. DevOps is a short form of development and Operations. It combines the skills of the development team and Operations team. The testing team falls under the Development Team.
DevOps is a continuous process which combines:
Each process will have different tools according to their need, these tools are sometimes called DevOps tools.
Before we start talking on the continuous integration, let's understand what was it like in Traditional way.
For example, Consider a Requirement which is to build a face, Considering that the head is present already.
The development team has Three members and they received different functionalities like Developer1 received to build a Mouth, Developer2 received to build eyes, developer3 is building nose.
In the traditional way, when the developer completes his task he will merge the Mouth with head and he waits for other developers to complete their task so that he can Test. Developer two also follows the same, and so on.
So the developers whoever is completed their work needs to wait for all the developers to complete then send their code to the tester for testing. What if the developer1 have a defect but developer2 and did not have any defects. The developer1 is been waiting but now he got to work again. Not only developer1 waits but the total testing team waits for the build all the time.
Below Images shows, developser1 has built has ear rather than nose, Which is a defect.
This was the problem with traditional methods, to overcome this most of the teams follow continuous integration.
In Continous integration, developer 1 will not wait for developer2 and 3 to complete their work. As soon as one developer completes the work, he can send the build to the testing team. Where testing team's automation code picks up the build and starts executing the tests. If there is any problem with the build then developers will get to know it very quickly.
Cost of the defect which is caught in the early stages is less.
Okay, That's true, here the most of the time the sanity/regression functionalities are tested. But when CI is closely associated with the Agile methodology. In agile methodology, the tester also works at the same time as a developer but without having actual items.
As soon as the build comes testers will change the placeholder/dummies using the actual ones from the build like locators in automation, So defects will be caught very soon.
Continuous Integration helps to build the software,
Continuous delivery is a deployment of build that occurs to the QA/dev/Automation/UAT environments. Continuous delivery all the feature of the requirement will be tested thoroughly.
The build is deployed to the production environment, most of the time this occurs after the Continuous delivery.