There’s no denying that the advent of the Agile and DevOps methodologies have changed the way software gets written. DevOps, with its emphasis on collaboration and communication, especially fits in today’s fast-paced business world. Many enterprises now aspire to a continuous deployment model so new features or bug fixes don’t have to wait a few weeks before making it into production.
So how does a faster software development process affect Quality Assurance? Are QA engineers now stuck in meetings most of the day with minimal time to actually test software? What follows is a look at the changing process of QA in this era of DevOps.
Software Development: One Process and One Team
At many enterprises, the executive team perceives the task of software development as being performed by one group, even if legacy methodologies like the Waterfall are still in use. The distinction between separate software engineering, QA, and network administration teams doesn’t matter to them. With DevOps, this perception finally becomes a bit closer to reality with everyone working closely together towards the common goal of rapid software delivery.
For the QA role to succeed in the world of DevOps, automation and a robust set of tools to support the testing process are vital. This allows the QA engineer to accomplish more within an 8-hour day that now includes additional interaction with developers, network engineers, and business analysts.
Their ultimate goal is to find defects as quickly and as early in SDLC as possible. Continuous and automated software deployment in today’s business world makes the concept of a software release schedule almost seem quaint by comparison.
Automation is a Key for QA in the DevOps Era
Being able to automate the software testing process helps QA operate at the faster speed necessary in the DevOps era. Leveraging automation also speeds up the software build process — at the developer, QA, and production release levels.
Additionally, if the development staff follows TDD (test-driven development) principles, their unit tests will catch many programming defects, allowing QA personnel to direct a portion of their efforts towards other aspects of software or system quality. This is one example of how DevOps forces team members to share responsibility for the overall product, instead focusing on what used to be their own specific area.
In DevOps, QA can now serve a role as a final arbiter for overall system and process quality, a point emphasized by Carl Schmidt, CTO for Unibounce. “I’m of the mindset that any change at all (software or systems configuration) can flow through one unified pipeline that ends with QA verification. In a more traditional organization, QA is often seen as being gatekeepers between environments. However, in a DevOps-infused culture, QA can now verify the environments themselves, because now infrastructure is code,” said Schmidt.
So migrating to a DevOps methodology doesn’t make QA go away. In fact, with additional responsibilities on their plate, QA engineers depend on state of the art tools to accomplish more tasks at a faster rate. Ensuring quality throughout the process — including software delivery — is the ultimate goal.
In the upcoming weeks, we’ll look more closely at some of the tools used by QA personnel to help them do their jobs — whether on an Agile or DevOps project as well as any other software development methodology.