Domain Knowledge in Software Testing – is it really needed and how do you address the dearth of experts?
Until a few years ago, testing was a horizontal discipline. Someone with core disciplinary knowledge, who understood how the Software Test Life Cycle (STLC) worked, who understood test implementation from standpoints of test strategy and planning, test case design and execution, defect management could really test any product at hand.
Then came in a timeframe, where specialization in test started gaining prominence. Someone with specialized skills in areas such as performance testing, security testing, database testing, localization testing could build a niche for themselves in these areas going deeper into each of these disciplines.
Over the last few years though, product domain knowledge is becoming more important than ever. Just the horizontal knowledge or specialized testing knowledge is not proving sufficient in adequately ensuring quality in the competitive market landscape. The vertical or domain knowledge is becoming increasingly important due to several reasons – mandated by compliances, audits and checks, need to verify domain specific content or simply put even to be able to bring in the edge in testing from the standpoint of realistic end user workflows. Diagrammatically, this is how the ecosystem is now looking like:
Some examples of popular domains include: Health care, Life sciences, Education, Banking, Financial Services and Insurance (BFSI), Transportation, Government, Banking, Retail, Media. If we were to look at examples in these domains that necessitate the vertical knowledge:
1. An understanding of the banking transactions, protocols, Sarbanes-Oxley is really going to help in the banking space
2. How Learning Management Systems (LMSs) work, the foundation of SCORM/AICC form a great knowledge base in testing for educational applications
3. Knowing how claims processing works, understanding various categories and associated workflows in insurance for life, health, fire, auto go a long way in effectively testing in the insurance domain
4. How file formats function, various media types, the kinds of testing associated with media such as install/uninstall, checksum validations help in ensuring successful media testing
With all of these said, one also has to understand the reality on ground. It is quite a challenging task to build and maintain a team rich in testing and domain knowledge. It is easy to find one or the other, but can get very tedious and expensive, to find the combination. Some of specific challenges in staffing such a team include:
1. Dearth of subject matter experts with knowledge in both testing and the domain at hand
2. Expensive to maintain such an in-house team of experts often because of the shortage of such testers
3. Ineffective to keep them in-house year round, as you actually need their expertise only in specific phases of the project
We, at QA InfoTech, being independent test experts that specialize in a handful of domains such as BFSI, Education and Publishing, Media, Retail have certainly faced this challenge too, over the last few years. Here’s how we’ve addressed or mitigated them, which will hopefully come in handy for you too, for your specific project needs.
1. Build a common test repository for domain specific test cases that largely cover user and business workflows, which can then be leverage and customized specific to individual project needs
2. Hire subject matter experts and train them on software testing. This strategy has successfully worked for us, where for a call center software testing, we actually hired real time support engineers and trained them on testing
3. Train your internal team on the domain that they need to work on, by inviting domain experts to formally impart subject matter expertise. Over time build core training material that you can use for ramping up newer engineers
4. Hire selective engineers who have both domain and test knowledge but share them across projects such that they are resident experts in the company who consult across the board, subject to projects’ NDA requirements
5. Collaborate with organizations and universities to bring in domain experts on an as needed basis which will be both cost effective and really have them cater to your demands as and when you have them
We’ve had success in each of these forms presented above in our projects. Think through your subject matter needs specific to your project and its constraints to decide the approach you want to take; obviously you can go in for one or more of these techniques to give you that right balance of domain and testing disciplinary knowledge coverage. Happy testing!