7 Types of Software Errors That Every Tester Should Know

It's time again for a post on software testing basics. This post is on types of software errors that every testers should know.

Software bugs are of many types. A bug is a bug no matter what. But sometimes, it is important to understand the nature, its implications and the cause to process it better.

This helps for faster reaction and most importantly, appropriate reaction.

In this article, we will be discussing common kinds of software errors and how to identify them during testing with some examples and simple exercises.

Let us start by defining software error and bugs.

categories of software errors

Software Errors and Bugs

As defined in WikipediaAn error is a deviation from accuracy or correctness” and  “A software bug is 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 “.

So, the following can be inferred:

  • Error is a variance of the actual result from the expected result.
  • Errors are a category of software bugs.
  • Errors can be introduced as result of incomplete or inaccurate requirements or due to human data entry problems.

Common Categories of Software Errors:

#1) Functionality Errors:

Functionality is a way the software is intended to behave. Software has a functionality error if something that you expect it to do is hard, awkward, confusing, or impossible.

Check this screenshot:

Functionality errors 1

Expected Functionality for Cancel button is that the ‘Create new project’ window should close and none of the changes should be saved (i.e. no new project must be created). If the Cancel button is not clickable then it is a functionality error.

#2) Communication Errors:

These errors occur in communication from software to end-user. Anything that the end user needs to know in order to use the software should be made available on screen.

Few examples of communication errors are – No Help instructions/menu provided, features that are part of the release but are not documented in the help menu, a button named ‘Save’ should not erase a file etc.

#3) Missing command errors:

This happens to occur when an expected command is missing. See this screenshot:

Functionality errors 2

This window allows the user to create a new project. However, there is no option for the user to exit from this window without creating the project. Since ‘Cancel’ option/button is not provided to the user, this is a missing command error.

#4) Syntactic Error:

Syntactic errors are misspelled words or grammatically incorrect sentences and are very evident while testing software GUI. Please note that we are NOT referring to syntax errors in code. The compiler will warn the developer about any syntax errors that occur in the code

Note the misspelled word ‘Cancel':

misspelt Cancel

Note the grammatically incorrect message:

grammatically incorrect message

#5) Error handling errors:

Any errors that occur while the user is interacting with the software needs to be handled in a clear and meaningful manner. If not, it is called as an Error Handling Error.

Take a look at this image. The error message gives no indication of what the error actually is. Is it missing mandatory field, saving error, page loading error or is it a system error? Hence, this is an ‘Error Handing Error'.

Error Handing Error

When possible, further steps should be listed for the user to follow.

If the software has certain mandatory fields that need to be filled before they can save the information on a form, the validation messages should be clear and indicative of the action that is required by the user.

Here are other examples:

other example 1

other example 2

#6) Calculation Errors:

These errors occur due to any of the following reasons:

  • Bad logic
  • Incorrect formulae
  • Data type mismatch
  • Coding errors
  • Function call issues , etc.

In 1999, NASA lost its Mars climate orbiter because one of the subcontractors NASA employed had used English units instead of the intended metric system, which caused the orbiter’s thrusters to work incorrectly. Due to this bug, the orbiter crashed almost immediately when it arrived at Mars.

#7) Control flow errors:

The control flow of a software describes what it will do next and on what condition.

For example, consider a system where user has to fill in a form and the options available to user are: Save, Save and Close, and Cancel. If a user clicks on ‘Save and Close’ button, the user information in the form should be saved and the form should close. If clicking on the button does not close the form, then it is a control flow error.

An Exercise:

Let’s identify what error categories the following fall into:

Exercise #1:

error categories 1

keyboard error

These are Error Handling Errors.

Exercise #2:

Error Handing Errors

This is a Missing command error. Cancel button is required but is missing. Also, both buttons ‘Proceed’ and ‘Delete’ are redundant and perform the same function.

Exercise #3

Syntactic Error

This is Syntactic Error.

Next step:

Reporting an error once identified is essential. For best results, report immediately.

Include the description, priority, severity, the triggers and steps to recreate the scenario, screen captures (if any) in the bug report.

For more information on writing effective defect reports, check this post.


Defect identification, categorization, reporting and eventually removal are all part of Quality Control activities.

But, Prevention is better than cure. The very crux of Software Quality Assurance is to establish monitoring and inspecting processes at each stage of the Software Development Life Cycle.

The aim is to detect errors as early as possible. This is because the costs to find and fix errors increase dramatically as software development progresses. Hence identifying errors early on is essential.

Fixing an error is the cheapest during the requirement analysis stage, gets progressively expensive with each stage and is most expensive in the post release maintenance phase.

As QA engineers, we may or may not be directly involved in requirements definition. We also may have little or no direct control on the quality of the requirements.

Therefore, it is essential that we are able to identify, seek and report any errors that we come across during testing phase.

About the author: This useful article is written by Neha B. She is currently working as a Quality Assurance Manager and specialize in leading and managing In-house and Offshore QA teams.

Do let us know other types of software errors that you know or encountered with.

Recommended Reading

52 thoughts on “7 Types of Software Errors That Every Tester Should Know”

  1. At one of the interview i got this question, Write as many as test cases for – If you are a new customer and you want to open a credit card account then there are three conditions first you will get a 15% discount on all your purchases today, second if you are an existing customer and you hold a loyalty card, you get a 10% discount and third if you have a coupon, you can get 20% off today (but it can’t be used with the ‘new customer’ discount). Discount amounts are added, if applicable.

    Can somebody please help me with it.

  2. Hi, bhawana kumari
    Below are some scenarios that might be help you..

    1. To verify whether user will get 15% discount on all today’s purchase items
    2. To verify whether user will get 15% discount again on tomorrow on all purchase items
    3. To verify whether existing customer having loyalty card should get 10% discount
    4. To verify whether existing customer having loyalty card get more 10% discount all purchase items
    5. To verify whether existing customer having loyalty card get less than 10% discount all purchase items
    6. To verify whether existing customer having coupon should get 20% discount on all today’s purchase items
    7. To verify whether that new customer having coupon should not get 20% discount on all today’s purchase items.

  3. Very good article. Really helpful for all testers.
    I have seen experienced testers are also not aware about all these details though finding defects from application is their daily job.

    Its helpful for beginner as wel as experienced one!

  4. We all know that if any problem occurs or any pop up comes on our screen we automatically say that it is an error but we can’t identify what kind of error it is this blog helps me a lot in identifying errors, it’s very helpful thanks to the software testing help.

  5. There are few other errors that are not listed here:
    1. Requirements error: – wrong , incomplete requirement, requirement contradicting with other requirements, requirement implemented incorrectly, requirement that can not be traced to any source
    2. Design Error: The design do not correspond to requirements.
    3. Tasking and Timing errors: Task priority not assigned correctly, Task lock, Task can’t complete the assigned work due to timing restrictions.
    4. BIT error: false alarm, wrong display…
    5. Memory leck, data overwritting on existing data
    6. Program cresh (instead of degraded performance) due to wrong treatment when errors are encounter.

  6. Hi Doron

    Thank you for adding on the list of errors.
    My article focuses on error encountered mostly while doing black box testing. Errors listed by you would be frequently encountered by testers doing white box testing and provide a good context about the commonly occurring errors.


  7. dgjtdhkjhhjjfjdfjfjfjfjfjdjdfjfjfjfjfjfjfjjkfkkfjjjxjdjdjdjdjddjdjddjdjfjfjnfnfjfjfnfnfnfnfnfnfjfhdjdjdjdhdjdjdjdjdjdjdjdjdndjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjjfjdjdjrjjdjdjdjdhfhdhdhdjdjsijenebrjdjdndjskosidjebdjdjdjjdbdhfjdhdhdhdjdhdbhdhebbdhdjdhbdhddj

  8. Hi Mahesh

    Sorry, I do not follow. I have not heard the term ‘sticky bug’ before. Please provide some more details or the context where this term is used.


  9. It is very useful to all the students that study in school and college because it’s help all the basic concept are clear for limitations and error.

Leave a Comment