What is a software bug?
- The expression bug in software engineering doesn’t have an as positive connotation as e.g. ladybug
- If you find a bug, a software isn’t working the way it should.
- If an application has several bugs, you call it “buggy” and a new version of a software that removes these bugs, is called “bugfix”.
- You distinguish between functional and technical bugs: When there’s a functional bug a feature of the application isn’t working and when there’s a technical bug the error is more extensive and a whole system doesn’t work. Security holes can arise that may be exploited by hackers.
- In each and every kind of software like operating systems, games, web pages software bugs can occur.
Probably the first computer bug
The first computer bug was documented at the 9th of September 1947 in the logbook of Navi Officer Grace Hopper. The problem was a moth between the relays of the Harvard Mark II computer that filled rooms as usual at that time. The logbook entry says: “First actual case of bug being found.” Flies, moths and other insects were attracted by the warmth inside the computer and then caused shorts that led to computer failures. Here the expression “debugging“ became a new signification. Grace Hopper spread the expression software bug, since the word had been utilized already to describe technical problems, for example in the radar electronic industry in WW2 or earlier in the end of the 19th century by Thomas Edison and in the telegrapher jargon.
Why do software bugs occur?
- Communication: When a developer misunderstands a requirement or the requirement is wrongly or not enough specified or even not specified at all.
- Time pressure: Projects usually have clear deadlines that have to be met, then the team is under time pressure that inadvertent mistakes happen. There may be a lack of time to execute software tests as well.
- Features vs. safety: For users new features are more obvious than a hidden software security update. We recommend not to neglect security standards.
- Insufficient Testing: Development departments still led slide software tests. This can have several reasons: Lack of time, budget restrictions or lack of commitment to quality.
- Complex projects: Projects are becoming more and more extensive and due to increasing digitalization applications’ requirements increase. Keeping the overview in this complexity of logic and correlations, is an effort. More lines of code lead to a higher likelihood for software bugs.
- Development vs. test vs. deployment environment: In case the different environments differ a lot, unexpected effects may happen. Data volume and data type can vary what can lead to untested scenarios.
- Code recycling: If code is reused, this copied code can run different than expected e.g. if the copied code isn’t documented enough. Often the recycled code isn’t entirely tested when deployed.
- Last but not least the human factor: You can't make an omelette without breaking eggs and so everyone can have a bad day that lead to typing and clerical mistakes.
|Kind of software||Errors per 1,000 lines of code|
|Ordinary untested software||15 to 50 errors|
|Untested Microsoft application||10 to 20 errors|
|Good and tested software||2 errors|
|GTested Microsoft application||0,5 errors|
|Space shuttle software||<1 error per 10,000 lines of code|
Software Bugs – potentially very expensive and even dangerous
Software bugs can lead to great financial damage and in worst case be a danger to life. Online are many software bug lists, here is a very extensive one: Collection of software bugs
The “Millenium Bug” – the most expensive software bug hitherto
The so called “Y2K-Bug” was the most expensive software bug until then, that occurred in history. Its fixing costs are estimated to up to 600 billion of dollars worldwide. Its origin lies in the two-digit display of the year dates e.g. 99 stood for 1999 and then 00 for 2000. A sorting like this would have led to 2000 at the very beginning. Or calculating the age of users would have been wrong as will with 00 – 60, a negative age is not possible. The most negative effects were anticipated and resolved in advance. A very funny case was for a driver in the United States who got a car tax invoice for the last 100 years with an amount of 760,000 dollars.
We are committed in software quality and want to avoid software bugs. That’s why we launched QF-Test our Java and Web GUI Testing tool in 2001.
QF-Test stands especially for GUI Regression tests, functionalities are tested this starts at a very specific basis up to complete system tests. QF-Test is tested by itself every night with around 25,000 tests.
If you want to improve your software quality, QF-Test may be an option.