Test smart: how to establish a QA culture in your team
Some time ago I joined a development team as a QA Tester. From the very beginning, I didn’t intend to become a Developer. I tried to code a few times… And I must confess I’ve enjoyed creating a quality assurance system for the projects more than coding. After years of diving into theory and practice, I’ve decided to share a few insights on establishing a QA culture in the team.
Quality assurance is an essential practice in the rapidly growing software industry. QA is not only about searching for bugs in the product that could affect the whole experience but it is all about drawing a fresh perspective that Developers, Designers, or Product Owners usually can’t provide on their own.
To become a QA Tester or QA Manager, you’ll need to apply a different set of skills and mindset than Developers have. Ideally, a person who tests software on the user interface level is a representative of the customers in the team.
Mature companies and development teams do care about the customer’s feedback. Consequently, they pay attention to the feedback that the QA person gives.
If you release the software without any UI testing, you will very likely get unpleasant feedback from frustrated customers. They might quit using your product as soon as they run into the first signs of a bad user experience. And that is where user experience and quality management go hand in hand. Enhancing a quality assurance culture in your team is the key to its success.
What is not QA
Quality assurance is not about humans testing software like machines. In a DevOps approach that requires rapid release cycles, fully manual testing might be a bottleneck of the development process in case you have just one or a few QAs on board. If you have more than 100 tests to be run on your regression testing checklist, they may be time-consuming when done manually. So, if there are enough Developers in your team, why not automate the recurring UI tests at least partially? That will offload Testers and give them a chance to devote more time to product research and thus find more edge cases and UX discrepancies.
Quality assurance is not about an obsession with hunting for all the potential bugs. Life is not perfect. There is an infinite number of scenarios. Your team (including QA) might have not discovered a few edge cases (and bugs) in advance. Overall, get ready that your customer may run into an undiscovered bug as your app goes live. This way, it makes sense to collect feedback from your end-users and react to it promptly as soon as the product is released. It is also a good idea to test the app or website regularly in the live environment (Production).
Quality assurance is not about “c’mon, just click it around and let me know”. Like any other project activity, testing needs to be done frequently using the methods and tools that match the product specifics. If it is done randomly then you won’t get the relevant results. Overall, you might end up extinguishing the blaze in the chimney while the roof is on fire. That is why it’s always smart to maintain good test coverage and execute multiple testing methods systematically. The holistic approach to testing is the healthiest one.
What is QA about
Quality assurance is about exploring the product. The exploratory testing is executed without a written script: the Tester invents new test cases and runs them on the fly. QA experts say this method is one of the most efficient as it helps discover the product's new dimensions. When you explore the system intuitively, you’ll find new test scenarios and make brand-new observations about UX.
Quality assurance is about giving feedback to the team. Providing well-timed feedback on the readiness of the product is a vital part of the QA job. The Tester is the one who builds the bridges between logic-oriented Developers and irrational End-users. It is the one who discusses requirements with the Product Owner. Different people have various experiences and perspectives. No matter how communication evolves, it is smart to use techniques of nonviolent communication. On the other hand, the “voice” of End-users should be heard by the team.
Quality assurance is about studying the customer’s feedback. Here, usability testing might help a lot. It is done involving the current or potential end-users and aims to collect the customer’s reactions to how the software is functioning in action. Don’t get upset once you get negative feedback. Critique opens the sides of the product that the team haven’t thought about in advance. After all, people’s suggestions will help you to build a robust solution according to their real needs (and not based on your assumptions only). This way, you’ll get a clear picture of what can be improved.
Quality assurance is about building a custom-made testing system that works. In agile teams, quality assurance activities are a shared responsibility. However, the QA person is the one who establishes the trends of testing by exploring the product and takes care of the communication with Developers when building new features or fixing current issues. Shared responsibility means that Developers discover and report the bugs, and create test cases, as well as QAs. Teamwork is essential in every step of the QA process: from planning what to test to reviewing the received feedback. Exclusively, QA people take care of the testing system and make sure that it is in line with the changing business requirements and the customer’s needs.
Finally, QA is all about appropriate communication. It is smart to encourage healthy communication in the team, and here soft skills matter. Even if some things don’t go smoothly on the way to the delivery, it’s good to remember that the deadlines go away but the relationships stay. Still, all of the team members are in the same boat. From my observations, mature teams express mutual respect and readiness to support each other in the most stressful situations.
Before you start building a QA system for a new project, it might be a good idea to have a few brainstorming sessions on how quality assurance should be functioning in your team. Just try to discuss with your team members which methods and tools should be picked for collaboration, documentation management, test execution, and reporting.
By the way, handy test management tools can improve the visualization of your testing process, organize your test cases, and help to establish efficient communication in your team. Multiple automation tools can make the testing flow effortless and save precious time.
If you decide to strengthen quality assurance in your project, observe, explore, and polish your product. And communicate with your team! Communication is the key point on the way to brilliant achievements. Finally, the QA Tester is not the one who wants to break the Developer’s code. In successful teams, both Developers and QAs share one goal — to release a high-quality product that the customers will love. Quality is the common thing to work on.