Containers are an important part of the DevOps conversation because they can help developers and IT Ops work better together. But if focus only on this benefit of containers, you miss the important advantages that containers also offer to quality assurance engineers.
Part of the reason why Docker became so popular—despite not being the first container framework to enter the market—is that Docker was launched in 2013, around the same time that DevOps was revolutionizing the way organizations approach software delivery.
DevOps emphasizes constant collaboration between developers and IT Ops admins. Containers help to facilitate such collaboration by providing a consistent application deployment environment.
In other words, containers allow developers to write and build code designed to run inside containers. Later in the delivery pipeline, IT Ops admins deploy applications using the same container images.
Because the containerized host environment remains the same from the beginning of the delivery pipeline to the end, developers and the IT Ops team have a consistent frame of reference for discussing and troubleshooting the application. The environment consistency that containers enable improves the ability of development and IT Ops to communicate and collaborate.
QA Testing and Containers
Containers can benefit other teams beyond developers and IT Ops, however.
One important example of another group that can improve its workflows significantly by leveraging containers is QA engineers—the people whose job it is to ensure that an application behaves as intended.
At a basic level, containers give QA less reason to worry in general about unexpected software behavior because, again, containers significantly reduce the number of environment variables and changes that separate development from production. This feature reduces the number of QA tests that need to be performed.
But even for those tests that you do complete, containers can make the process faster and simpler. Instead of having to pull an application build from a CI server and install it inside a (usually virtualized) testing environment each time an application changes, QA teams can test against a container image. Because the image can be run in a testing environment with no special installation or configuration requirements, testing requires less time and is easier to automate.
Containers can also help QA to identify the root cause of an application problem faster. Because there are fewer configuration variables to sort through when something unexpected happens, engineers can get to the bottom of an issue more quickly.
And in a worst-case situation—one in which a major usability flaw is not discovered until an application is already in production —containers make it easier to revert the change that caused the problem, or apply a fix, more quickly.
All of the above helps QA engineers to work more quickly and efficiently. In turn, these benefits enable the rapid testing cycles that are essential for achieving continuous delivery.