Latent and Masked Software Bugs: What’s the Difference?

by Nataliia Vasylyna | October 21, 2011 12:30 pm

Note: the article was updated in October 2018

Bugs can attack your software at any time especially when you do not expect to meet them. Some software defects are not identified during testing as they can mask or stay latent. It is important to understand the difference between these two types of bugs and keep them in mind.

So, a software bug is a defection from the requirement that leads to the software failure. Software functions are generally specified in the Software Requirement Specifications (SRS)[1] and all the deviations must be recognized and registered.

A masked bug is an existing error that has not yet caused a failure just because another error has prevented that piece of the code from being performed. The main feature of these bugs is that they hide other system defects.

A latent bug is an existing error that has not yet caused a failure because the accurate set of conditions was never met. Such bugs can stay in a system for a long time and be detected in different software releases.

Practical description of latent errors

Let’s suppose that the application can print a document either by a laser printer or by dot matrix printer. To perform this, the application searches for the laser printer first. In the case the application finds a laser printer, it uses this one and prints. In the case, it does not find a laser printer, the application searches for a dot matrix printer. And if the application finds a dot matrix printer, it prints a document or gives an error.

As a result, this app will never search for the dot matrix printer. And the application has never been tested for the dot matrix printer. It means that the accurate conditions were never met for the dot matrix printer. This is the example of a latent software bug.Latent Masked Bugs

Practical description of masked errors

Now the same application has 2 errors:

As the search of the dot matrix printer fails, the print error of this printer is never detected. That is why the print error of a dot matrix printer is a masked software bug[2].


Sometimes it is difficult to determine that a certain error is a software deviation. Latent and masked bugs are hard to detect and reproduce as they do not stay on the surface. Regardless, a qualified tester must recognize and identify such bugs by implementing the suitable tools and test cases.

Learn more from QATestLab

Related Posts:

  1. Software Requirement Specifications (SRS):
  2. software bug:
  3. 2 Groups of Significant Software Bugs:
  4. Main Types of Defects in Software Testing:
  5. Types of Bugs in Software Testing:

Source URL: