Ashley Hunsberger, Greg Sypolt and Chris Riley contributed to this post.
How do you build an effective team of quality assurance (QA) engineers? Where do you look to recruit the best QA professionals? How should you integrate your QA team within the rest of your organization? These and other questions related to the topic of team building came up during a recent webinar hosted by Chris Riley, Ashley Hunsberger, and Greg Sypolt. Here are links to the first and second post in this series.
Team building is an essential part of an effective QA operation, of course. Your testing strategy and execution are only as strong as the people who design and conduct them. And in today’s IT world, where DevOps is changing the way different types of engineers interact, and the supply of good QA professionals outstrips demand, having a well-planned and executed approach to team building is crucial.
Below are some of the most important team-building questions that came up during the webinar, along with answers from participants.
One thing I have noticed lately is that QA engineers are getting more respect. With automation, their skillset looks more like those of a developer. Do you agree?
Ashley: That’s a great observation. I think that as we shift QA 'left', thereby helping define the acceptance criteria and the definition of done, we are finding there is much more visibility into the mindset of testing and what is required to meet our expectations. This visibility into our world has helped us be seen as vital members of the team, and we have earned the respect of our engineers.
Greg: It's odd how developers respect changes when shifting to Quality Engineers (QE). It shouldn't be this way, but I have observed similar reactions to non-technical and technical QA team members over the years. It shouldn't matter, but when QEs start working closer with developers by sharing automated testing, operation tasks, and vocalizing the necessary quality gates on user stories, they start to respect QA value. It starts by changing the culture—by educating the entire team, letting them know that everyone owns quality. It's more than a QA task.
What strategy can you suggest for retaining engineers with strong technical and testing backgrounds?
Ashley: I think it's a matter of perception and buy-in from the team. One thing I look for when building teams is a passion behind testing, not viewing it as a means to an end. For existing team members, I look at how I can foster and grow that passion. What makes testing interesting? How can you apply your technical aptitude to implement what interests you in testing? I don't see it as a lack of respect. They are very different roles and viewpoints—It's unlocking that potential and showing the teams what you've been up to, and why you love what you do.
Greg: Is it such a bad idea for QA engineers to transition to full-stack developers? I have seen many of our young software developers in testing make this change over the last year. The expectation when they make this transition is that they have learned how to test the application, and they will test their code better. It is another way to share their testing knowledge with the rest of the developers and promote that everyone owns quality.
If you were going to gather a functional QA team for an Agile project, would you select only QA analysts with automation experience? Or do you think manual testers are still needed?
Ashley: I've said it before, and I'll say it again. Manual testing is still needed. There are things that automation just can't tell you. But, I do think it's important to find people who can think, and have the ability to learn a new skillset. In an Agile world, the TEAM owns quality—So it may be engineers writing the automated tests (as it is where I am), but our functional QA team members need to understand what needs to be tested (driving the overall test strategy), they need to know how to write tests so they are able to be automated, need to be able to review what the engineers wrote, be able to debug any failures, etc.
Greg: I agree and disagree that you need a full-time manual tester on your project teams. The team owns quality and must understand what needs to be tested. The software developer in test should be driving the overall testing strategy, but it is a team effort. I do see the value of having manual testers when attempting to automate complex scenarios (i.e. upgrades or push notifications).
Modern QA to me means that QA is involved in dev designs, participates in code reviews with devs, does upfront testing in dev boxes, and so on. Do you agree with this tight integration between the QA and dev teams?
Greg and Ashley: Yes, we agree. Modern QA is part of that 'shift left' mentality where QA is very involved from the get-go, and not just when a dev finishes code and says 'test this now.' Even if we aren't writing the low level tests, we should be involved in determining what tests we need, at whatever level.
There are manual QA testers who are hesitant to transition to modern QA. How do you help your team embrace the transition to modern QA?
Greg and Ashley: You might have seen this article about getting your team onboard with automated testing.
Can you define a list of essential skills every modern QA team member should have?
Greg: We don't have dedicated DevOps resources in a Platform-as-a-Service (PaaS), so we are experimenting with what the modern QA team member would need in terms of both QA and DevOps responsibilities. QA is the gatekeeper of quality, and it makes sense for the QA team to maintain and champion continuous integration tooling.
Ashley: I still maintain that QA engineers, whether they practice automation or not, are incredibly valuable in determining a holistic test strategy. You always need to be able to consider the end user, how the system works at a broader level than your team's feature du jour, what other types of testing to consider (not just automated tests, but also accessibility, localization, performance, usability, security, exploratory). The key is figuring out how to incorporate that into your sprint and really push to the definition of done.
Since QA team members generally do not have a developer background, what route do you recommend to help them begin automated testing?
Greg and Ashley: In general, start with best practices. It doesn't matter what your tool of choice is. Understand locators, the DOM, etc. Get familiar with Git. Start with something simple—Do a very simple update, commit changes, learn the process. Start fixing a broken test. Write a new test.
This blog post about test automation for newbies may be helpful.
A modern QA team looks very different from one a decade ago. The rise of test automation has helped blur the lines between developers and QA engineers. So has the DevOps revolution, and shift-left testing. These changes mean that acquiring and keeping QA talent requires organizations to integrate their QA teams closely with the rest of the software engineering staff. Encouraging automation is also important, but organizations should let QA professionals choose their own toolsets, and keep in mind that manual testing is still sometimes necessary.
Chris Riley (@HoardingInfo) is a technologist who has spent 12 years helping organizations transition from traditional development practices to a modern set of culture, processes and tooling. In addition to being a research analyst, he is an O’Reilly author, regular speaker, and subject matter expert in the areas of DevOps strategy and culture. Chris believes the biggest challenges faced in the tech market are not tools, but rather people and planning.
Ashley Hunsberger is a Quality Architect at Blackboard, Inc. and co-founder of Quality Element. She’s passionate about making an impact in education and loves coaching team members in product and client-focused quality practices. Most recently, she has focused on test strategy implementation and training, development process efficiencies, and preaching Test Driven Development to anyone that will listen. In her downtime, she loves to travel, read, quilt, hike, and spend time with her family.
Greg Sypolt (@gregsypolt) is a senior engineer at Gannett and co-founder of Quality Element. The last 5 years focused on creation and deployment of automated test strategies, frameworks, tools, and platforms.