When you want to “Check”, no domain knowledge is needed but when you want to “Test”, domain knowledge is very important. Confused? Let me explain this in detail. Let’s take an example to understand how domain knowledge is important for testers. Say, you have written few automation scripts which “check” for some UI or basic functionality. To run them, your computer software doesn’t need any domain knowledge, it is just checking that whatever is written in that auto test should pass but when you do testing or make test cases from SRS/FRD documents then you need to understand each requirement and the expected output very clearly and hence need some domain knowledge for that.
Few of the projects in which domain knowledge plays a vital role are:
- Mobile application testing.
- Network testing ( For example: LTE)
- Banking and Finance sector.
- Insurance and Manufacturing sector.
- VoIP testing.
- Health care software.
Main advantage which makes difference here is that when a tester has common sense, he can find obvious bugs but when he has domain knowledge, he can find bugs which are related to core functionality since he know the flow of the application and know what goes where. Here, I am going to take an example of mobile application testing. Say tester has to test an application which is related to music. If he does not have any prior domain knowledge of the application then he will not know the various options we have to sync music from and whether all of them working fine or not! Also what type of music files are supported by the application and which are not compatible with it. But if has domain knowledge then he can even give his ideas to make that application better and more usable.
Another example is of banking domain:
In such type of applications, only UI and functionality knowledge is not enough but how the data flow goes and most important part is security. Unique username and password, how secured data is encrypted and then decrypted properly, how it is transferred and what are the challenges tester can face while testing these type of application are some of the very important aspects to keep in mind. In today’s world when cyber-crime has increased so much, banking applications and website’s security testing has become challenging part. Without domain knowledge, this can become risky for the business too.
Here are some of the advantages and disadvantages of having domain knowledge:
- If a tester has domain knowledge then he may take a step ahead and think out of the box to question the current functionality of an application. Domain knowledge helps tester to execute negative test scenarios.
- If a tester has domain knowledge then he may contribute in test cases review by comparing the application requirements against test cases.
- Domain knowledge makes sure testing team is putting the right effort in the right direction and it may speed up the overall testing progress as the effort of training the resources in the mid of project is not needed.
- Tester with domain knowledge are flexible to accommodate new changes or requirements that are introduced in the mid of the project.
- Client always demands the quality testing which project management can make sure after recruiting the human resources with domain knowledge as well as technical expertise.
- Testers with domain knowledge ensure less or no risk to application testing.
- If testers have domain knowledge then it saves cost of training to tester for an organization.
- Tester with domain knowledge may take an additional role in project for requirement gathering or direct interaction with client after spending considerable time in the project.
- Tester with domain knowledge may prove asset to an organization in long run as they may become professional trainer for new joiners.
- Only con for an organization is that, since the skill set of domain knowledge as well as technical expertise is rare in market therefore cost of employment can be very high at moments which may increase the testing budget of the project. Also cost of human resource retention may become high.
As we know all business applications are very critical and they demand very high quality end to end testing. Therefore not only technical knowledge of testing tools is desired by the organization but they demand a mix skill set of software testing technical as well as domain knowledge. It can be seen as a good opportunity with good pay to tester and an asset to the organization in long run and at the same time quality testing deliverable to the client. Thus domain knowledge goes hand in hand with good testing skills and technical expertise. So while software tester is hired, interviewer makes sure that he possesses all of these qualities.
Many freshers not aware of different software testing domains. Comment your domain below, it would really help to understand the different software domains to our readers.