Термините на пръв поглед са сходни, но си имат характерните разлики.
1. Anomaly - всяко едно състояние, което се различава от очакваното състояние на софтуера, базирано на requirement-тите (изискванията), стандартите или от това на някой човек, е аномалия. Не е задължително да е бъг, просто може да не съответства на това, което сме очаквали.
Error - Може да се нарече и mistake - не е бъг. Това е човешко действие, което предизвиква некоректен резултат.
Problem/Fault/ Bug/Defect - Дупка, проблем в софтуера, който ако се осъществи, може да причини грешка в софтуера (системата). Също така и като се изпълни, причинява самия failure (провал) на софтуера.
Failure – промяната в поведението на софтуера и разминаването в очакванията на спецификациите и т.н.
Тънкостта е, че bug-а предизвиква failurе.
2. Тестването е самия процес, при който намираме бъгове в софтуера. Докато дебъгването е процес, при който намираме причинителя (source-a) на бъга, и го премахваме.
3. Bug masking е когато един бъг пречи на друг да се изпълни и така го маскира. Примерно 1 бъг не ти дава да видиш нещо (показва ти,че нямаш permission) , а в самото нещо си има отделен бъг.