Anomaly in software
Encyclopedia
In software testing
, a software anomaly is anything that differs from expectation. This expectation can result from many things like from a document (e.g. the expected behaviour is not always written down explicitly, so the developer may implement it differently) or from a person's view (e.g. the person has different opinion regarding usability) or experiences (e.g. the specification is not clear on one thing and the person also knows competitor products, where such a feature is implemented or where the tested software behaves different than these).
An anomaly also can point to a new feature or a usability
problem, because the software may be correct with respect to the specification, but has room for improvement.
Another possibility for an anomaly is that a tester executed the test case incorrectly and therefore the expected result is also incorrect (Garbage In, Garbage Out
).
Some other common terms for software anomalies are: bug
, fault
, failure
, error
, defect, problem
, deviation, glitch
, incident, crash
. According to IEEE, the word anomaly should be favored because it has a more neutral meaning.
'Software' in this article is more than just source code
. It also refers to: programs, procedures and documentation, and data for the concerning processing on a computer system. Testing software ("testware
") is also regarded as software in this context.
The time and place of anomalies can be pretty much anywhere in the software development life cycle - it should not be seen from end user perspective only. Most people see anomalies (e.g. failures) during analytical quality assurance measures, but in fact the reason for this anomaly probably occurred earlier. This is why preventive quality assurance are more important: anomalies are found earlier, which can result in lower costs.
Software anomalies can be a contributoring factor in software ageing.
Software testing
Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software...
, a software anomaly is anything that differs from expectation. This expectation can result from many things like from a document (e.g. the expected behaviour is not always written down explicitly, so the developer may implement it differently) or from a person's view (e.g. the person has different opinion regarding usability) or experiences (e.g. the specification is not clear on one thing and the person also knows competitor products, where such a feature is implemented or where the tested software behaves different than these).
An anomaly also can point to a new feature or a usability
Usability
Usability is the ease of use and learnability of a human-made object. The object of use can be a software application, website, book, tool, machine, process, or anything a human interacts with. A usability study may be conducted as a primary job function by a usability analyst or as a secondary job...
problem, because the software may be correct with respect to the specification, but has room for improvement.
Another possibility for an anomaly is that a tester executed the test case incorrectly and therefore the expected result is also incorrect (Garbage In, Garbage Out
Garbage In, Garbage Out
Garbage in, garbage out is a phrase in the field of computer science or information and communication technology. It is used primarily to call attention to the fact that computers will unquestioningly process the most nonsensical of input data and produce nonsensical output...
).
Some other common terms for software anomalies are: bug
Software bug
A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways. Most bugs arise from mistakes and errors made by people in either a program's...
, fault
Fault (technology)
In document ISO/CD 10303-226, a fault is defined as an abnormal condition or defect at the component, equipment, or sub-system level which may lead to a failure....
, failure
Failure
Failure refers to the state or condition of not meeting a desirable or intended objective, and may be viewed as the opposite of success. Product failure ranges from failure to sell the product to fracture of the product, in the worst cases leading to personal injury, the province of forensic...
, error
Error
The word error entails different meanings and usages relative to how it is conceptually applied. The concrete meaning of the Latin word "error" is "wandering" or "straying". Unlike an illusion, an error or a mistake can sometimes be dispelled through knowledge...
, defect, problem
Problem
A problem is an obstacle, impediment, difficulty or challenge, or any situation that invites resolution; the resolution of which is recognized as a solution or contribution toward a known purpose or goal...
, deviation, glitch
Glitch
A glitch is a short-lived fault in a system. It is often used to describe a transient fault that corrects itself, and is therefore difficult to troubleshoot...
, incident, crash
Crash (computing)
A crash in computing is a condition where a computer or a program, either an application or part of the operating system, ceases to function properly, often exiting after encountering errors. Often the offending program may appear to freeze or hang until a crash reporting service documents...
. According to IEEE, the word anomaly should be favored because it has a more neutral meaning.
'Software' in this article is more than just source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...
. It also refers to: programs, procedures and documentation, and data for the concerning processing on a computer system. Testing software ("testware
Testware
Generally speaking, Testware is a sub-set of software with a special purpose, that is, for software testing, especially for software testing automation. Automation testware for example is designed to be executed on automation frameworks...
") is also regarded as software in this context.
The time and place of anomalies can be pretty much anywhere in the software development life cycle - it should not be seen from end user perspective only. Most people see anomalies (e.g. failures) during analytical quality assurance measures, but in fact the reason for this anomaly probably occurred earlier. This is why preventive quality assurance are more important: anomalies are found earlier, which can result in lower costs.
Software anomalies can be a contributoring factor in software ageing.
Examples for anomalies
- List of notable software bugs
- different screens of death: Screen of Death, Blue Screen of DeathBlue Screen of DeathTo forse a BSOD Open regedit.exe,Then search: HKLM\SYSTEM\CurrentControlSet\services\i8042prt\ParametersThen make a new DWORD called "CrashOnCtrlScroll" And set the value to 1....
- an anomaly in the game Super Mario Bros.Super Mario Bros.is a 1985 platform video game developed by Nintendo, published for the Nintendo Entertainment System as a sequel to the 1983 game Mario Bros. In Super Mario Bros., the player controls Mario as he travels through the Mushroom Kingdom in order to rescue Princess Toadstool from the antagonist...
: the Minus World - in white box testingWhite box testingWhite-box testing is a method of testing software that tests internal structures or workings of an application, as opposed to its functionality...
: data flow anomaly and control flow anomaly - Easter eggEaster egg (media)Image:Carl Oswald Rostosky - Zwei Kaninchen und ein Igel 1861.jpg|250px|thumb|right|Example of Easter egg hidden within imagerect 467 383 539 434 desc none...
- buffer overflowBuffer overflowIn computer security and programming, a buffer overflow, or buffer overrun, is an anomaly where a program, while writing data to a buffer, overruns the buffer's boundary and overwrites adjacent memory. This is a special case of violation of memory safety....
, deadlockDeadlockA deadlock is a situation where in two or more competing actions are each waiting for the other to finish, and thus neither ever does. It is often seen in a paradox like the "chicken or the egg"...
, division by zeroDivision by zeroIn mathematics, division by zero is division where the divisor is zero. Such a division can be formally expressed as a / 0 where a is the dividend . Whether this expression can be assigned a well-defined value depends upon the mathematical setting...
, memory leakMemory leakA memory leak, in computer science , occurs when a computer program consumes memory but is unable to release it back to the operating system. In object-oriented programming, a memory leak happens when an object is stored in memory but cannot be accessed by the running code...
, hang (computing)Hang (computing)In computing, a hang or freeze occurs when either a single computer program, or the whole system ceases to respond to inputs. In the most commonly encountered scenario, a workstation with a graphical user interface, all windows belonging to the frozen program become static, and though the mouse... - more examples you can find in following categories: :Category:Computer errors, :Category:Programming bugs, :Category:Screens of death
See also
- Bug tracking system: the place, where anomalies are collected during software development life cycle
- Issue tracking systemIssue tracking systemAn issue tracking system is a computer software package that manages and maintains lists of issues, as needed by an organization...
: can also used like the bug tracking system, in general used for anomalies by customers - Crash (computing)Crash (computing)A crash in computing is a condition where a computer or a program, either an application or part of the operating system, ceases to function properly, often exiting after encountering errors. Often the offending program may appear to freeze or hang until a crash reporting service documents...
- List of commercial failures in computer and video gaming
- Undocumented featureUndocumented featureUndocumented features are frequently found in computer software releases. Sometimes the documentation is omitted through simple oversight, but undocumented features are often elements of the software not intended for use by end users, but left available for use by the vendor for software support...
External links
- Large database with errors and solutions A website with a large number of software errors and solutions