How QA can benefit when application is deployed using Dockers / Containers?


What is Docker Container?
"A container image is a lightweight, stand-alone, executable package of a piece of software that includes everything needed to run it: code, runtime, system tools, system libraries, settings. Available for both Linux and Windows based apps, containerized software will always run the same, regardless of the environment."
What is Container?


What is the difference between a Virtual Machine and a Container?
"VMs and Containers differ on quite a few dimensions, but primarily because containers provide a way to virtualize an OS in order for multiple workloads to run on a single OS instance, whereas with VMs, the hardware is being virtualized to run multiple OS instances. Containers’ speed, agility and portability make them yet another tool to help streamline software development."
Docker containers vs. virtual machines: What’s the difference?


Hidden benefits of Docker / Container for QA
Quite a few companies started deploying containers in the production environment lately and the numbers are growing steadily. With this trend of companies going towards Docker way, the days are not far, when QA needs to tweak their testing strategy; for testing applications deployed in containers. We will discuss this test strategy some other time but in this blog, we will explore hidden benefits of Docker / Container for QA. One of the key benefit of Docker / Container for QA is that it ease the setup of clean test environment and drastically reduce the difference between development and production environment. The other benefits / scenarios could be are as follows -

»  Docker image file can be shared to developers for a bug that is not reproducible at their machine / environment
»  Easier to catch configuration related issues while doing system testing
»  Reduces regression execution time as subsets of test suite can be executed against multiple containers in parallel
»  Testing of application’s different configurations can be automated by bringing up and down of different Docker’s image files
»  Similarly application can be tested against different flavour of databases (MySQL, SQL Server, Oracle etc.) programmatically
»  Negative scenarios like unavailability of databases, services etc. can be easily automated / tested by bringing up or down the containers
»  An emulator or service virtualization can be containerized and shared across different environments when needed
»  QA professional can set up production like environment in their laptop and can execute tests against it
»  Scaling up of web, app and database servers can be done programmatically with ease and less cost, which in turn helps in validating the reliability and scalability of application earlier in the test cycle
»  Quick testing by peer(s) can be done for freshly developed component without understanding the nitty gritty of setting up the environment
»  Many testers can do the exploratory testing in parallel w/o worrying about changing the state of application for other testers
»  Helps in conducting bug bashing or crazy testing w/o having fear of bringing the test environment down
»  Docker image file can be sent to remote testing team for early feedback (before starting their work next day)
»  Test tools setup (like Selenium Grid) can also be containerized for easy & fast access to team members
»  Crowdsource testing becomes simpler and can be conducted on a large scale with less cost and more ease
»  Workshops & Trainings can be arranged easily w/o having mandatory need of internet access and fear of unavailability of test environment
The hidden benefits of Docker for QA


Comments

Popular posts from this blog

Performance Test Run Report Template

Financial Measures for Managing Professional Service Projects

Understanding Blockchain