Masked Defect - The Hidden face of a Defect

To start with, lets us first know why to software defects arise? The possible reasons could be as below:

  • The individual using the software application or product may not have enough knowledge of the product. It is possible the software is not being used in an appropriate way which leads to the defects or failures.
  • The developers may have coded incorrectly and there can be defects present in the design.
  • Incorrect setup of the testing environments.

Talking about defects, this blog will take you through an interesting defect – Masked Defect. As the name suggests, this defect is masked or hidden by other defect. Read on..

Masked defect is commonly known as a defect that hides other defects in the system. This defect is of the kind which is not detected at a given point of time. Meaning that if there is an existing defect which is not caused (found) to reproduce another defect, the other defect is masked with the previous defect. It means that there is certainly an existing defect that is not caused for reproducing another defect.

Masked defect can be observed in page navigations. If there is a defect in current page and it causes problem in moving to another page, then the defects in the next page cannot be seen. Consider this example, suppose there is a link to add employee on a portal. On clicking this link you can also add a task for the employee. Let’s assume, both the functionalities have bugs. However, the first bug (Add an employee) goes unnoticed. Because of this the bug in the add task is masked.

Lets us take another example: If you are testing the ‘Help’ section of any application. If there is a defect in a link in ‘Add Customer’. But somehow this defect was not diagnosed by QA and the application went live. Now, the defect residing in the ‘Add Customer’ link does not allow it to work or function when the customer tries to, say for instance add job details on this link. Then adding job details is a masked defect. It means it is been masked with the Add Customer defect.

Masked defect is one that exists but does not cause failure due to another bug/error that is also present and this error prohibited that piece of the code from being executed.

A practical explanation of Masked Errors

Let’s imagine that an application is able to print a document either by laser printer or by dot matrix printer. To reach this, the application first searches for the laser printer. In this case if it finds a laser printer (used by default) it uses this one and prints. In case if it does not find a laser printer, the application searches for dot matrix printer. And if the application finds a dot matrix printer, it gives an error message.

Now the same application has 2 errors:

  • the dot matrix printer search
  • the dot matrix printer print

But as the search of the dot matrix printer fails, the print dot matrix printer error is never detected. So the print dot matrix printer error is a masked software bug.

Since a masked defect hides another defect which is unidentified, failing to test a subsystem might also cause not testing other parts of it which might have defects but remain unidentified as the subsystem was not tested due to its own defects.

Also Read: Latent Defect: The Hide ‘n’ Seek Defect in Software Testing