“Software Defect, Bug, Failure, Fault & Error” : These words play a very critical role in Software testing life cycle.
Although they are used interchangeably by developers and sometimes by QA person, but they surely have precise meaning after-all.
Let’s discuss each one in detail.
A human mistake which causes the flaw in the software is called an Error hence normally it is related to Development process. Introduced Error can be either syntactical or logical depending on the nature of the mistake.
In other words anything that is stopping the execution of application is considered as an Error.
In simple words, it is the deviation between the expected and actual result. Anything that prevents the software to perform required action or leads the application to produce unexpected result is called a Bug.
An incorrect step or data definition in a software which becomes the reason of the unanticipated behavior of the application is called a Fault. It can be an accidental condition which is not documented and you come to know about such flaws when you hit them causing the failure.
When the Fault is executed, Failure occurs. Basically it is the inability of the application, system or a single component to execute expected function.
An error or fault which is found and reported by Tester is called a Software Defect. When the actual outcome deviates from the expected result, such behavior is generated as a
defect and resolved being part of the Defect life cycle.