Yes, you’ve read it right. Quality Assurance indeed can be the new black. However, the definitions of what exactly is QA are blurring. A modern Quality Assurance Professionals need to have a peculiar set of skills to ride the wave, but the wave is completely worth riding.
The world of software development evolves: people automate everything that can be automated and struggle to automate the rest. It makes lives easier… Well for the most part. IT employees have to adapt to this process to get their kicks out of it and stay in the maximum demand.
Most recently, IT industry received a wonderful gift — DevOps Engineers, which in combination with cloud computing, shifted the paradigm of software development from “OMG, let’s hope our deployment infrastructure does not crush” to “Hey, everything is going so smooth and clean; that’s how the absence of stress feels?”
The introduction of DevOps likely made for software development what the introduction of a conveyer did to the automotive industry. Or at least, similar to that.
At the same time, DevOps became partly responsible for the quality of a software product as they control the development pipeline, aiming to minimize defects. Besides, automation of certain testing processes requires a new approach to Quality Assurance as well as the tight cooperation of QAs with other departments.
What did not really change that drastically — the requirements for the quality of software. They just grew bigger.
So, we have a QA who stands amidst this streamlined digital world of creation, observers all its complex elements that work in unison, and wonders, “Well, I have quite a work to do. Don't I?”
Yes, they absolutely do. And their work starts when a product is not even being developed while finishes only after a company stops working with the product. However, the way people may imagine traditional QA process is not the way it is unfolding to be.
QA Role Transforms
Traditionally, QA was concerned with a final product that needed to be tested in order to find bugs and imperfections. With the implementation of cloud computing, expansion and automation of a deployment infrastructure, a role of QA shifted and changed to include performance testing, security testing, integration testing, and testing of a system as a whole on a conceptual level.
Currently, QAs are not really independent players who simply run tests and, with a crafty smile, tell developers they found a rather peculiar bug in their code. QAs became an integral part of DevOps team, Developers team, and Business Analysts team.
Sidenote: Don’t worry, Dear Quality Assurance Professionals. The pleasure of telling developers about bugs in code still belongs to you.
The QA process should be a bright red thread that permeates all software development infrastructure and supports it to ensure the reliability of a final product.
Therefore, the borders of QA responsibilities blur, the way they think change, the way they interact with a project transform.
We see three primary attributes of a modern QA:
1. System, Strategic Thinking
Complex projects, supported by a complex infrastructure with a bunch of automated processes require QA to have an understanding of the whole picture and strategic thinking. The necessity to look at particular components of a product and test their functionality apart from the whole system is reduced significantly.
For instance, arguably one of the most important stages of Quality Assurance starts during the planning stage when the system requirements should be developed and tested.
System Requirements Analysis is the foundation of all further testing as well as a bug-prevention mechanism because only comprehensive, unambiguous instructions allow for reliable results.
This is where QAs should work in tight collaboration with Business Analysts in order to develop and test functional system requirements that are
-Clear and understandable in only one way
-Stated positively instead of negatively
-Cannot be misinterpreted
-Free of unverifiable terms
And non-functional system requirements that help ensure the final product is
-Has quality documentation
It is impossible to achieve such results without strategic thinking and a clear vision of the whole picture.
It also means that QAs are pioneers who lead the development of a product as it is based on the functional and non-functional requirements. Basically, QAs test an application on a conceptual level before it is developed, which provides a strong foundation for reliable and secure product.
On later stages, strategic thinking comes in handy when conducting integration and regression testing. As far as smaller tests for different components are automated and conducted by developers, QAs focus more on tests that deal with the integration of different subsystems and how they work together.
Also, QAs should encourage test-driven development and ensure that quality assurance is a foundation of continuous delivery. Testers can provide valuable insights throughout the cycle of development as their mindset differs from the mindset of developers.
As you can see, during these stages, QA should work in a team with developers and DevOps Engineers, constantly providing their input.
2. Pivotal Role and Creativity
As QA drifts further away from the hustle of the manual testing, the employees can get away from the “micro testing” routine of small components and focus more on “macro testing” of a system. As a result, we have a stronger focus on performance, security, and integration testing - on the most important stuff.
Moreover, QAs obtain a possibility to move up on the organizational ladder because their extensive expertise provides the possibility to make higher-level strategic decisions. Quality Assurance Architect is a thing for a reason.
Also, there is one thing that machines will most likely never achieve, or at least not soon enough - directed creativity. There are a lot of wonderful (or horrible if you are a developer) things a creative QA can do to a digital product to check it.
While automated tests check whether the components of a product work as they should work, a QA can think about/develop a creative way of screwing up the system to determine implicit issues.
And let us tell you, a QA who manages to screw up a system in a creative way is a valuable QA.
The world of software development without mentors is quite inefficient and Darwinian environment to be. The amount of value a knowledgeable mentor can provide is immeasurable.
QAs who are experienced enough will become mentors that will provide guidance on all stages of a product’s lifecycle to help other Testers, Developers, and DevOps create software with quality in mind.
Also, QAs can write tests in tandem with developers in order to create meticulously planned ultimate tests that have no remorse for any code… the best kind of tests.
You may think that "Automation takes work away from QAs and induces in them anxiety about the future.” However, it is a very superficial view of the situation that does not take into account its deeper, long-term implications.
In fact, automation and shift of the software paradigm provide QAs with free space and gives them more power to become an essential part of a product’s lifecycle. A person who managed to master all the elements that a modern QA should master would be among the most valuable players of every software development team. You can call such a Quality Assurance Professional, a universal soldier of software development to spice things up.
Overall, the modern tendencies demonstrate that QAs will move from dry execution of tests to the conceptual level where they can elevate testing to the new standards and control the process of continuous delivery from the tester’s perspective. This is the way of achieving bulletproof software.
So, Dear Testers, feel the current, master your balance, and ride the wave to make QA the new Black.
We know you’ll succeed.