To understand this question, the user needs to know the basic concept of software testing. Fault masking is a technique used in software testing to hide one fault by another one, which makes it difficult to identify the original fault.
Now, let's go through each option:
A. Error condition hiding another error condition: This option correctly defines fault masking. It means that one error condition is hiding another one.
B. Creating a test case which does not reveal a fault: This option is incorrect. It defines a technique called "passive testing," where the tester creates a test case that does not reveal any faults. It is not related to fault masking.
C. Masking a fault by developer: This option is incorrect. Developers write code to fix faults, not mask them.
D. Masking a fault by a tester: This option is incorrect. Testers are responsible for identifying faults, not masking them.
Therefore, the correct answer is: A. Error condition hiding another error condition.