In my career, I have learned that building an excellent QA team is an art form as well as a science. Quality Assurance doesn’t just represent finding defects, it’s the bedrock of successful software delivery, and building a high-functioning team requires a combination of thinking about the technical parts, but also the human parts.

One of the best lessons I received was from an executive toward whom I have a great deal of respect, and whom I have had the privilege to work with a few times over my career. “Technology can be taught, however, attitude, passion, and drive cannot.” I consider them to be the key ideas to building my own philosophy around hiring. When I interview candidates for positions of Quality Assurance, those three words are generally number one on my list, and usually ahead of any technical skills. Ultimately, my approach has led me to assemble some of the most cohesive and effective teams that I have had the pleasure of being a part of.

During my career, I have witnessed QA teams transition from being the “bug finders” of the software development process to being strategic influencers on that process as team members. I have experienced the thrill of seeing team members advance to industry leaders and I have learned from moments of hardship and challenge, of which I could share many of those. What I have to share is not theoretical, but rather battle-tested experience, developed over the course of my career contributing to the development of many high performing, productive and, most importantly, happy quality assurance teams.

I will share the important aspects of building and maintaining a high-performance QA team in your organization. This information is based on experience, past team (and personal) hiring decisions, and the input of team members who have contributed to our collective success. If you are building a team from nothing, or optimizing an existing team, this information will give you the practical strategies to develop high performance technical knowledge and practice human dynamics. I have learned from experience that both of these are necessary and the true measure of a great quality assurance organization.

Team Structure and Roles:

QA Team Lead/Manager

The QA Team Lead is the foundation of your quality assurance execution and needs a distinct combination of technical skills and leadership attributes. This role needs someone who has spent ample time “in the trenches” (7+ years) practicing hands-on QA work, as well as, developed people management skills. The ideal person in this position has expert-level knowledge of testing methodologies and frameworks, while having hands-on experience with test automation.

What separates the exceptional QA leaders from the leaders is their communication skills with every level of the organization. They are able to translate technical concepts around, for example, test automation, test coverage, etc. to the non-technical stakeholder, while also providing their team members with granular specifics when needed. The best leaders in the QA space are also strategic thinkers in planning for test coverage and test resource allocation but can also assess a technical question or challenge in to deep vertically into the mix.

Senior QA Engineer

Senior QA Engineers serve as the technical anchors of your team, offering you both depth and breadth of testing experience. Generally having 5+ years’ experience, they have seen it all regarding testing scenarios and come with battle-tested experience. A Senior QA Engineer is a true expert in advanced automation scenarios and testing frameworks, allowing them to focus on the larger engineering picture rather than merely implementing testing.

Their value lies in their insight into current testing but also their ability to understand when there could be potential quality issues in the development cycle early on. They are comfortable leading technical discussions, mentoring junior-level team members, and providing technical direction to the engineering team. Senior QA Engineers generally have experience with performance testing and API testing, which allows them to create more complex testing scenarios but still provide a level of quality assurance.

Automation Engineer

The automation engineer position reflects the changing nature of quality assurance in contemporary software development. Automation engineer are more than just testers who also code, they are developers who develop test automation frameworks and tools to modernize and enhance the testing process in its entirety. Automation developers, therefore, serve to bridge the important gap between development and QA teams. They provide a development perspective founded in a deep understanding of software development and quality assurance measurement principles.

Automation engineers have high-quality software development skills which are on par with software engineers, and they are proficient in writing in multiple programming languages and frameworks. They are highly skilled in designing and developing complex test automation architectures which can scale with your applications. Their knowledge of software architecture and design enables them to create maintainable, efficient test solutions which nest seamlessly within your development pipeline.

In addition to their technical skills, successful automation engineers show evidence of architectural thinker, mentor to both QA and development teams, and taking the lead on driving testing infrastructure improvements and best practices across teams. This leadership role suits the nature of the automation engineer position and provides an opportunity to drive better collaboration across development and QA teams ultimately leading to improved quality of software delivery.

QA Engineer

QA Engineers provide the operational foundation to your testing effort. Generally, a QA Engineer will have 2-4 years of industry experience and will fulfil the daily testing activities that provides the quality of your product. The QA Engineer requires a little of both manual testing experience and automation experience, combined with an understanding of quality assurance.

An effective QA Engineer applies analytical work to their testing with an equal balance of creativity and thoroughness. They may or may not be the automation experts, but they should have enough programming background to maintain the pre-existing test scripts and contribute to test automation.

Building for Success: Key Elements to an Effective QA Team

The Human Element

Building an effective QA team is not purely about technical skills and competency. It is a matter of finding people who are qualified in attitude, belief, mindset and human personalities. Look for the following qualities in your candidates.

  • Natural Curiosity and Investigation: The most effective QA professionals are naturally curious thinkers who are always asking questions, discovering edge cases that their peers haven’t thought about, or playing detective when assessing the testing process.
  • Robust Analytical Skills: Seek candidates who have the ability to decompose complex problems into manageable pieces and approach to problem-solving in a systematic manner.
  • Communication: Members of testing teams should be able to articulate issues clearly, write discreet and comprehensive bug reports, and effectively present problems to a wide range of stakeholders, both technical and non-technical.
  • Process Flexibility: Technology is changing quickly, so you need people on your team who will be flexible enough to learn new tools and methodologies quickly. Attention to detail, while it is always mentioned and understood, cannot be emphasized strong enough.

Attention detail is not just about catching bugs, but also managing consistent test coverage, writing bug reports with appropriate detail, and keeping test documentation up to date and useful. In fact, the most effective QA professionals combine this attention to detail with strong organizational skills, which allows them to manage complex test scenarios while delivering a high standard of work.

Technical Proficiency

Modern quality assurance needs to maintain a wide-ranging technical proficiency that adjusts as technology changes. Core technical skills are:

  • Core Testing Fundamentals
  • Design and execute test cases
  • Report and track bugs
  • Plan and develop strategy for testing
  • Assess and mitigate risk
  • Automation Proficiency
  • Develop and maintain scripts
  • Design and implement frameworks
  • Integrate into CI/CD pipeline
  • Manage version control and code

Successful teams are also the teams that successfully balance automated testing and manual testing capabilities. Automated testing is critically important as it provides efficient testing, and regression testing. However, there are some forms of testing that cannot be automated, such as exploratory testing and aspects of the user experience. Manual testing skills are a necessary part of effective software testing. Moreover, each team should periodically upskill technical skills via continuous learning and sharing knowledge amongst team members.

But How Do You Measure Success?

Measuring quality assurance success shouldn’t solely be about defect finding. It’s also important to demonstrate the value added to the quality and reliability of your software products. Here are the primary metrics and indicators you should measure:

  • Quantitative indicators
  • Defect detection rate
  • Automation coverage
  • Average time to test execution completion
  • Defect resolution time
  • Qualitative indicators
  • Contributions towards requirements refinement
  • Involvement in early designs discussions
  • Quality improvement initiatives identified proactively
  • Knowledge transfer and documentation quality

On top of all these measurements you may want to factor in the contributions of your team to the development process. High performing quality assurance teams usually contribute to refining the requirements, participate in design discussions, and assist in mitigating quality problems prior to development. That sort of prevention represents the highest level of effectiveness a QA team can achieve.

Conclusion

As with anything, building a successful QA team starts with considering the human aspects along with the technical capabilities. Success is determined by your ability to thoughtfully balance team dynamics around roles, responsibilities, and pathways for progress. Continually reviewing your team’s performance against defined metrics leads to continuous development and an assurance of quality standards.

Keep in mind that team building is never complete. You should continually review and modify how you build and grow your team. Review with the team itself, the requirements of the project, and the state of the industry. Given the right balance of capability, personalities, and leadership, the QA team can be significant driver of the quality of software produced.

One saying that I have enjoyed throughout my career and a favourite of mine has been, “You can’t test Quality In. It has to be built in.”