Quality Assurance

QA Pains & Remedies

Comprehensive tips to revamp your QA experience in an agile team
Over the last decades, the approach to software development has undergone a dramatic shift from the waterfall type to agile. This has affected all the departments involved in the development cycle - from Project Owners to Quality Assurance specialists - and forced the whole industry to reconsider roles and responsibilities typically performed by its members.

In the scope of this drastic change, we've looked into the difficulties Quality Assurance (QA) teams are suffering and attempted to give recommendations on how to relief everyday pains of QA.
1. Sharing responsibility

Stop treating quality assurance as somebody else's pain. The ultimate aim of everyone working on a project should be to deliver a brilliant product. This can only be achieved when each member of the team efficiently contributes to the development process and performs their duties with due commitment.

Remember that quality assurance is not a last-step activity. It is much more effective when integrated continuously in the development cycle and performed gradually at every next stage. If the project manager makes sure specification does cover all the necessary details, developers review code before submitting it, designers check alignment of visual elements and UI text, then QAs will be able to evaluate the quality and success of the output product – not just fix your mistakes or bounce bugs back to their authors. Keep in mind that nobody wants, and more importantly, has to fix your mistakes. Make quality reviews an indispensable part of your own working activities and you will see how much the results will improve.

2. Treating QAs as allies, not enemies

Whether in an office or in remote, developers and QAs should tightly collaborate with each other. You both are on the same side of the barricade, fighting for the same goal, and promoting the same ideology. This is crucial for understanding because QAs, if treated as enemies, cannot be as efficient as supposed to be. There are still developers who see the QA team as a root of all evil, a source of endless criticism and complaints. Such a stereotypical approach most probably stems from the waterfall methodology when development was followed by testing, and developers mistreated QAs as bug-finders and felt pressure from their side.

Fortunately, these days are long gone, and with the introduction of agile approach, QAs have become a part of the development force. What characterizes a good QA is the ability to see a wider picture and think several steps ahead, which can open new perspectives for the developer and, eventually, result in a higher quality of the output product.
3. Involving QAs from scratch

Engaging QAs early in the development lifecycle has proved to be a fruitful experience, turning quality assurance into an everyday activity, rather than a "last-on-the-line" step. Widely known as a "shift-left", this approach has revamped the whole testing workflow and included quality checks in every stage of the project.

Involve QAs at the very beginning of the development process, let them participate in planning, contribute to making decisions, join design sessions, and even talk to customers to understand what they are expecting from the product or service being delivered. Working closely with developers allows QAs to sketch possible testing scenarios and find UI&UX flaws at the early stages. By doing so, you let the QA team add value throughout the development process, without idling around until code is written.

Sure such workflow does require a lot of communication and collaboration within the team, but thanks to 21-century wonders we don't need to be sitting in one office to keep in touch throughout the working day.
4. Automating what can be automated

Working under the agile methodology presupposes meeting sprint deadlines and requires thoughtful estimation of workload a team can afford. When literally every minute counts, automation of certain procedures comes as a safety ring and frees space for testing areas that need human interference. Typically, in a team there are more developers than QAs, they have a stronger technical background, and can write automated testing frameworks with less effort. Delegate automation of testing to software developers, rather than QAs, and you will receive an upturn in the team's productivity.

Another painkiller in terms of QA automation is code review checks. There is a certain share of bugs in a software that occur due to typos in code or incompliance with project guidelines. Don't let a human factor take its toll on the quality of your software. Running automated code review audits before handing the results of your work to the QA team not only helps purify the code, but allows QAs to focus more on functional testing.
Evidently, there's much more to say about hardships QA engineers are facing in their routine. Each case is unique and there's no universal remedy. But keeping in mind these four tips will help your team take its best out of quality assurance in an agile workflow.