I noticed many times in the interview, you’ll find the question always about the difference between some words or terminology used in QA like Bug, Defect, Failure etc. Most people I see are really confused about this types of questions and give random answers which affect their interview. The question most probably asked the freshers. In general, we use these terms whenever the system/application acts abnormally. Sometimes we call it’s an error and sometimes bug and so on. Many of the newbies in Software Testing industry have confusion in using this.
Let’s see the difference between defect, bug, error, fault, incident, and failure.
Incident: An incident is basically any situation where the system exhibits questionable behaviour, but often we refer to an incident as a defect only when the root cause is some problem in the item we are testing. Other causes of incidents include misconfiguration or failure of the test environment, corrupted test data, bad tests, invalid expected results and tester mistakes.
Defect: The variation between the actual results and expected results is known as a defect. If a developer finds an issue and corrects it by himself in the development phase then it’s called a defect. The defect is an error found AFTER the application goes into production. Simply defect can be defined as a variance between expected and actual. The defect is an error found AFTER the application goes into production.
Bug: If testers find any mismatch in the application/system in testing phase then they call it as Bug. As I mentioned earlier, there is a contradiction in the usage of Bug and Defect. People widely say the bug is an informal name for the defect. Simply Bug is an error found BEFORE the application goes into production. A programming error that causes a program to work poorly, produce incorrect results, or crash. An error in software or hardware that causes a program to malfunction.
Error: We can’t compile or run a program due to a coding mistake in a program. If a developer unable to successfully compile or run a program then they call it as an error. It the one which is generated because of wrong login, loop or due to syntax. The error means normally arises in software Error means to change the functionality of the program.
Failure: Once the product is deployed and customers find any issues then they call the product as a failure product. After release, if an end user finds an issue then that particular issue is called a failure.
Fault: An incorrect step, process or data definition in a computer program which causes the program to perform in an unintended or unanticipated manner. A fault is introduced into the software as the result of an error. It is an anomaly in the software that may cause it to behave incorrectly, and not according to its specification. It is the result of the error.
These are not a standard definitions and it may change from different views, but at least these are the final definition which you can use for an answer in your interview.