What Defines a Software Bug?

January 15, 2019
John Kensinger
John Kensinger

A software bug could be something as menial as a misaligned image on a landing page, or as serious as a mobile app spontaneously crashing during use. Here are some explanations:

“A software bug is a problem causing a program to crash or produce invalid output. The problem is caused by insufficient or erroneous logic. A bug can be an error, mistake, defect or fault, which may cause failure or deviation from expected results.” (techopedia)

“A software bug is defined as an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected result, or to behave in unintended ways.” (steelkiwi)

“A Software DEFECT / BUG is a condition in a software product which does not meet a software requirement (as stated in the requirement specifications) or end-user expectation (which may not be specified but is reasonable). In other words, a defect is an error in coding or logic that causes a program to malfunction or to produce incorrect/unexpected results.” (softwaretestingfundamentals)

While the definition of a bug may vary slightly, one thing is clear: in order to prevent the large variety of issues that can occur before, during, or after a product launch, companies and individuals must be proactive in making sure that their applications are meeting the high standards of consumers today. How can they do this? By running thorough QA tests to find rampant bugs.


How do you categorize the variety of software bugs?

At test IO, we organize our bugs by type (visual, content, usability) and severity (critical, high, low):

  • Critical: Preventing a core function of the app or website, causes a potential loss of income for the company running the app or website - e.g. an app crash or ‘not able to login’
  • High: Serious impact on user experience but doesn’t prevent the function of the app or website
  • Low: Minimal impact on user experience
  • Visual: The user can accomplish a task, but the interface looks wrong, typically because of responsive design, CSS, HTML, or layout framework problems
  • Content: missing data, images, or broken links
  • Usability: Improvements to existing features and functions that would make the product easier and more intuitive to use

How do you find these bugs?

The type of testing you choose depends on what you're looking to find:

Functional Testing: checking that all functions work from a user perspective

  • Smoke Test: testing core functional pieces of the software before moving to the next stage of testing
  • Sanity Test: confirming that code changes have not created new issues
  • Compatibility Test: testing across devices or environments
  • Regression Test: a more in-depth version of a smoke test
  • User Acceptance Test: testing with actual users of an application to ensure that functionality is as expected, without the biases of internal testing

Exploratory Testing: unscripted testing that allows testers the freedom to go down multiple different -- perhaps less common or intuitive -- paths to identify bugs that would otherwise slip through the cracks of a scripted test (test IO provides a variety of exploratory test types, listed below)

  • Rapid Test: a test that is designed to catch only high-priority bugs, and can be completed in as little as (2) hours
  • Focused Test: testing a specific feature of section of an application
  • Coverage Test: testing whether your application will work on devices of varying screen sizes, different browsers, on multiple versions of iOS, or on different Android devices
  • Usability Test: gathering feedback from users on the ease and intuitiveness of an application’s use
  • Custom Test: the most versatile and broad type of test, allowing you to pull in different components from each of the tests we offer in order to offer a broader scope of insight

Beta Testing: testing pre-release

Black Box Testing: testing with zero knowledge of how the software has been put together

Mobile Testing: testing on mobile devices, such as iPhone and Android

Wearables Testing: testing on wearable devices, such as Apple Watches

IoT Testing: Internet of Things; testing a variety of connected devices


As you can see, there are a variety of ways to test software, all useful given the right situation. Matching the proper form of testing to your needs is the first and most important step; after that, it's all about finding the right method to test.

While it will probably never be possible to create the "perfect software," devoid of any kind of software issue, you can certainly get closer to maintaining near-perfect software by making a thorough QA process part of your development routine. We prefer crowdtesting here at test IO, but we may be biased.

Read More

June 13, 2019
The Important of Manual-Stage Testing

Incorporating manual testing into your development pipeline, without bottlenecks.

June 7, 2019
Regression Testing: Where Does Crowdtesting Fit In?

What is regression testing, and how does crowdtesting benefit it?

May 30, 2019
HUM Nutrition: A Test a Day Keeps the Bugs Away

test IO helps HUM Nutrition provide customers with life-changing products.

Ship Faster, Sleep Better

Get a Demo
testIO Logo Footer
test IO Inc.
1111 Broadway, Floor 3 
Oakland, CA 94607
USA

test IO GmbH
Sonnenallee 223 a
12059 Berlin
Deutschland
twitterfacebooklinkedin