- Domain/subject matter expert
- Test automation expert
- Deployment/build expert
- Security testing expert
- Performance testing expert
- Database technology expert
My personal belief is, having a great QA process will do nothing if the right set of skills are not available in your team. A particular QA team may have best automation engineers, but that will not produce good results if their knowledge on the domain or subject matter of the AUT (Application Under Test) is minimum. Saying that, we cannot expect the same automation gurus are trained in application domain will resolve the issue.
Therefore, we should make sure to employ the experts in different QA technologies. During the test planning and design, domain expert could identify the potential issues in the application according to his/her vast knowledge in the subject and include those problems in the QA test plan.
Automation expert will analyze the architecture of the product and plan for UI or some other system level test automation.
A team member with exceptional deployment skills can provide the relevant inputs to identify the installation/deployment specific problems as early as possible. Also, the same person could prepare the QA environment while the other members of the QA team is busy with the test plaiing and designing tasks.
The DB expert is expected to play an important character in a balanced QA team. He should be able to derive test scenarios and test cases by analyzing the data base design of the AUT.
A Security testing expert will verify how secure the AUT by generating test scenarios with his/her knowledge in system/web security.
Finally a person with vast experience and knowledge in various performance tools and benchmarks will facilitate performance/load and stress testing of the AUT in effective and efficient manner.
By discussing the above I should say that the different experts should not work individually in isolate manner. I don't say that the 'TEAM WORK' concept is no longer applicable in a balanced QA team. Each member should communicate frequently by giving their opinions to have a solid QA plan/test cases which will eventually become the one and only one reference in test execution. Everybody must follow the same guidelines paying attention to the assigned area. Each member should take care of the respective technology they are having the expertise knowledge with.
In other words, application domain expert must be responsible for the functional aspects of the product. He or she should derive functional test scenarios by getting the inputs from the other technical experts in the team and execute them in functional test cycles.
After all, I hope you should raise questions like, 'How do we form such a team with so called experts?' 'Are these type of resources available in the SQA world?'
Yes, these questions are absolutely valid! Most QA teams do not even have a subject matter expert rather having various tech gurus. How do we find them? I strictly believe we should create the experts from our own existing teams. We should identify what are they capable of , which testing methodologies they re handling in ease in their daily works and how well the particular skill can be improved. We shouldn't overload each QA team member with all QA methods and technologies. We should identify individuals and provide necessary trainings to improve their knowledge in ONE particular area. So that the non-hypothetical balanced QA team can be realized.