Does backend need QA Engineer?
Does it make sense to allocate a single person “responsible” for the QA column during the entire software development life cycle?
Is it common sense that nowadays these questions don’t make sense anymore?
All QA is a team responsibility. Everyone test and works to achieve better quality processes throughout the whole software lifecycle, contributing to each step of the cycle.
But what about the backend? When everything is based in API calls, Kafka message systems or another pub/sub system.
Does it make sense to have a “traditional” QA person in our team?
We ( =Team ) can implement unit, integration test and get good coverage to all the behaviours from our product/services.
Who can implement these tests better and faster than developers? No one in the team is more equipped with tools and knowledge that developers, from language knowledge to coding capacity.
So, again, where can QA engineer/person bring some benefits?
We can give an independent view when performing refinement of stories and daily, giving a not so technical point of view but more a view of the product as one.
Also, we have knowledge/information about tasks being developed between teams inside the same boundary, giving us a good point of contact between teams (and give support to team leads and product owners)
And when the product is on development? What can we do?
We can sit with the developer and try to understand what he is implementing, raising questions, maybe catching a “failure”, or not, during this “pairing” sessions.
But perhaps, the best we can due in this phase is to gather with the developer and try do write some test with him, giving some advice what can be tested or should be tested, performing some kind of pair testing.
After development is completed we come to code review.
Normally QA engineering is not well equipped to perform code review but, it should try to see and review as much as they can. Also, we can always learn something
Now we get to ready for the test or test column. What can a QA do now? It’s supposed that all test are already implemented.
What kind of validations can we do now?
Putting all the microservices together and see that our boundary still behave as it should be? But, if we test each of the microservice individually, shouldn’t this be guaranteed?
So, back to the first question, does a backend product, that relays on API or messaging systems, need a QA engineer?
It definitely does, maybe not in the sense of the person exclusively running manual or creating automation test.
But more a Quality Owner / Ambassador. Someone with testing skills, to help the rest of the team, sharing know-how, best practices, pair programming test and keep doing some exploratory testing to gather the information that we may not know about our product (and in case we have some external dependencies, dig in other services/dependencies) or be “public relationships” with other teams that can work with us.
This way, QA can be free to investigate other topics and bring new know-how and practices to discuss within the team.
How could we promote a person to Quality Owner / Ambassador? How many years as test/QA should they have? What expertise is needed? Only in test functions or technology/tech stack in use? And knowledge in the business?