what is the difference between bug, defect, problem , fault and issue
"According to me the definition and difference is as under:
Error:
It is the term used to describe a non-conformance to the explicitly stated requirement.
For example: Let me explain with an example. If the requirement mentions 5 Plus 3 Divided by 4; the programmer codes to add 5 and 3 first; and then divides the result [8] by 4 to arrive at result 2.
But if the actual/intended application requirement is to first divide 3 by 4 and then add 5; expecting a result 5.75 then this is a classic Design/Code Error.
Bug:
Assume that the programmer has actually understood the intended requirement correctly but has declared/stored the result as an integer to show a result of 5 instead of 5.75 – this is called a Bug. Here the programmer has to declare the variable as “double or float” and not “int”.
Defect:
A defect is any of the above but found/un-covered in the “released-application” - running in the “Production Servers” [gone “Live”] or may be in “Beta-Release”.
“Defect Trackers” have been christened as such, because they are used to report “Defects” in the software post-release; whereas the issues reported by the Testing Team are predominantly called “Incident Reports” and not “Defect Reports”!
However each organization follows its own terminologies for different contexts and processes; many individuals, may want to contradict and confront me with his/her opinion, on this. But that is a fact-of-life in Software Industry and an Occupational Hazard at that!!!
Fault:
When the application runs without any issues in the intended Production Environment under normal circumstances, but misbehaves after continuously running for about a month or after performing about a million transactions, then we call this condition as Fault.
Let me explain this with an example – Lets say an ‘Order Entry cum Processing’ application has been deployed in a server accessed by public to place orders for movie tickets. Initially when the application starts running – that is when the Application Server is re-started with old log files trashed/removed – the application runs with a throughput of 100 transactions per minute. But after about one million transactions, if the application’s throughput reduces to about 50 transactions per minute, then, we call this condition as a FAULT.
Technically, in this case, probably the Database connections are not closed properly, leading to too many Open Connections and hence waiting for a DB connection-object in the Connection Pool - leading to degradation of performance/throughput. Or may be the application is constructed to create avoidable “new” objects and expecting the JVM to clean up the garbage – which may also cause degradation in throughput over time. This is what I call as Fault. On restart the application works fine – so this is a classic case, where you don’t find any apparent Error.
Oxford Definitions are as under:
ERROR >>> :
noun 1 a mistake. 2 the state of being wrong in conduct or judgment. 3 technical a measure of the estimated difference between the observed or calculated value of a quantity and its true value.
ORIGIN Latin, from errare ‘to stray, err’
BUG >>> :
noun - an error in a computer program or system.
ORIGIN of unknown origin
DEFECT >>> :
noun - a shortcoming, imperfection, or lack.
ORIGIN Latin defectus, from deficere ‘desert or fail’
FAULT >>> :
noun 1 an unattractive or unsatisfactory feature; a defect or mistake. 2 responsibility for an accident or misfortune. 3 (in tennis) a service that infringes the rules. 4 Geology an extended break in a rock formation, marked by the relative displacement and discontinuity of strata.
DERIVATIVES faultless adjective faultlessly adverb.
ORIGIN from Latin fallere ‘deceive’
- Vignesh
