Home »
Software Engineering
Classification of Software Failures in Software Engineering
In this tutorial, we will learn about the software failures, why software failure arises, and the various classification of software failures.
By Monika Sharma Last updated : April 07, 2023
Why Software Failure Arises?
Software failure arises due to the presence of errors in the software. However, the presence of errors in the software does not always lead to system failures. System failures are very critical and also their recovery is costly because they sometimes also affect the software, most of the times damaging the hardware completely. However, every software failure does not result in such situations, but still many of them do. Also, if the user requirements that the software was intended to offer, are not fulfilled, then this is also considered as a software failure.
Hence, the classification of software failures was done in order to find out its behavior on the hardware, its nature: whether recoverable or non-recoverable, etc.
Classification of Software Failures
The classification of software failures is categorized into 5 types which are:
- Transient
- Permanent
- Recoverable
- Unrecoverable
- Cosmetic
Now let us see what each of the following means...
1) Transient
The transient software failures occur only for certain input values. Most of the time, these values turn to be out of the range that the system is able to handle which leads to system crashing and thus failure. Hence, while testing, the software is tested for both valid and invalid inputs to check the behavior and reliability of the software so that such conditions can be eliminated to the maximum extent.
2) Permanent
Their type of software failures occurs for all the input values. In such cases, a function that has error is invoked through the internal calling and then the error in it causes the failure. Some examples of it are the infinite loops that the function undergoes which causes the system to bear extra load which when exceeds the limit result in complete system failure.
3) Recoverable
The recoverable system failures are such that for a time duration, they fail to respond to any of the user’s command. In such cases, the system usually gets hanged, it does not respond or sometimes the screen may also go blank, but after a duration of time, the system itself tries to resolve the issue and the software again starts to function.
4) Unrecoverable
The unrecoverable software is usually the most damage causing to the hardware. This software, when failed, does not recover itself. Most of the time they destroy the hardware components, or the system needs to be restarted which causes an unexpected behavior to the other running applications too.
5) Cosmic
The cosmic classification of software failures is the least damaging. They hardly cause any problem to the other software or hardware. They may just cause some minor irritations like getting the mouse to be stuck at a place for a while, etc. No incorrect results are produced in this type of software failure.