Defect

A defect in software is an unexpected condition, features or bugs in the software which may not be a user requirement or may lead to misfunctioning or malfunctioning of the software itself.

A Defect can occur at any time in the running of the software or may be induced in the development phase of the software itself.

A defect may be external or internal. External defects are easy to sort out and are not that dangerous. Whereas the internal or the hidden defects can crash the entire software or force it to compromise.

There may be different reasons for a defect in the software. Such as- mistake of programmers, bad programming style, mismanagement in the program files, easily breakable algorithms, etc. The reason behind a defect is infinite. In this article, we shall see the types of defects, reasons for defects, etc.



Defect Life Cycle

Classification of Defects

Severity:

It classifies whether the defect is ignorable or severe. Whether it may create drastic damage to the software and its operations, or whether it can crash the software to lead to data compromise.

This is a parameter which determines how much positive and negative impacts, the defect may have on the software. This parameter directly reflects what are the major consequences the software may face due to the presence of the defect in the software.

Now the severity of the defect may of different degree. And thus can be classified as follows-Critical, Major, Minor, and Trivial.

Critical Defects:

Critical Defects are those defects, which affects the critical functionalities of the software. The induction or occurrence of these kinds of defects may cause the software functionality to fail or even the security may break internally in the software.

This kind of defect may be very hard no defect and these defects are present in those part of source codes which are responsible for security, installation, process initiation, algorithm selection, etc

To defect critical defects are generally found by professionals who have a good knowledge of the coding as well as the hardware.

This defect may impact the software and force it to reach a state, which can be either a deadlock or may not be a workaround (That is cannot be solved without stopping the software.)

The critical defects may cause problems, such as- installation errors, software crash down, loosing of security features or lack in any important features.
Major Defects:

Major defects are the defects which can impact the software's major functionality such as working of its components, interface, security protocols, etc. But this is not that severe compared to critical defect. This may have a workaround.

Major defects also may lead to a total software failure, but there are possibilities that the software can roll back into its normal state or even choose a basis path or an alternate path to execute the tasks normally.

A Software may not get executed when trying to follow a direct path and may fail in the first step of process creation, but the software can choose different paths to somehow initiate the process of a module and shift the program control to other modules.

Some of the major defects in software may be as follows :

  • Incorrect calculations.
  • Incorrect Data Edit and Saving.
  • Incorrect Coding.
  • Incorrect Format output or input of files.
  • Incorrect variation in performance of the software.
  • Confusing or misleading data.
  • Incorrect data type accaptance or no proper validation.
  • Poor File handling.
  • Incorrect or corrupted data after recovery from encryption.
  • Incorrect handling of data or files.
  • Invalid creations or overwriting of directories.
  • Incorrect selection of algorithms or problem in encryption

The list will go on ! So, we shall not keep pointing out more.

Note : This is important to note that, these are major problems, but still be overcome with necessary procedures and steps and may not put the software into deadlock.
Minor Defects:

Minor defects are the defects which are not that, severe nither compared to the critical defects nor the major defects. This kind of defects are small defects and can be ignorable sometimes, and can be sorted later on.

Minor defects though simple and easy to sort must not be taken that lightly, as the good fact is only that, it will not affect the system severely or may not affect the operations but in long term, if the defect is sustained, it may act as a critical defect, it overlooked.

Some examples of minor defects are listed below:

  • Change in a function variable, which may affect the load time.
  • Non-supportability of plug-ins, etc.
Trivial Defects:

Trivial Defects are those defects which are so minor that can be ignored. This defect does not affect the functionality of the software and so can be ignored. The defect will not have any change or modifications in data or program and so, the defect does not require any action.

Examples of Trivial Defects are: Invalid Form Validation, increased response time, etc.

Defect Probability:

Probability of defect means the frequency of encountering the defect by the user. It may be noted that all the defects will not come across in the normal functioning of the software again and again. The user is less likely to face the defect which is hidden.

For example, the function to clear the cache may not clear the cache, when the clear button will be hit. But the user will seldom come across this defect, as the user may wish to clear the cache wither after many days or in the very need to clearing it.

Note: Defect Probability is also known as- Defect Visibility, Bug Probability, Bug Visibility.

Now, the probability that a defect will be encountered by the user while using the software can be - high, medium and low.

Before, proceeding, it should be mentioned that there are different users for the software. Such as the administrator, the clients, naive users, etc. All the different users use the software from different perspectives.

The technical in-charge will use functionalities such as updating_database, shell_management, Protocol_checking, etc.

The administrator will use functionalities such as content_management, account_management, etc.

The client will use the functionalities such as account creation, content review, etc.

The naive user will dive into the interface of the software to understand how it works and what are the different things to learn for using the software.

The defect with the high degree of the Defect Probability means the defect will be seen by all users of the software.
The defect with the medium degree of the Defect Probability means the defect will be seen at least by 50 % of the users.
The defect with the low degree of Defect Probality means the defect will be seen by a handful or very few numbers of users.

Defect Priority:

Defect priority means how fast and how sooner the defect should be fixed. Priority is the parameter which reflects how important is the defect and how effectively the defect should be fixed.

Based on defect priority, the defects can be categorized. They are:

  • Urgent : Urgent defect must be fixed efficiently within a shorter period of time, as not fixing the defect could hamper the software badly.
  • High: High priority defect is the defect which has to be fixed before any other defect is fixed. This type of defect has relatively lower than the urgent defect but still has a higher priority than all other defects. This defect can be ignored for a shorter period of time, but not more.
  • Medium: This kind of defect can be tolerated for a small span of time, but necessary steps should be taken to fix the defect in later versions or in the later builds of the software,
  • Low: This kind of defects can be ignored for a longer period of time. It has to be fixed, that's true, but the software can be released with this kind of defect in it.

Defect Dimensions:

When we talk about dimensions, there are different attributes which affect the quality of the software, in terms of its usability and security. There are more than thousands of dimensions of a softwares which decides the quality, we shall discuss the most important ones.

Below we mention the attributes and define them:

  • Accessibility : This is that attribute of the software which defines the usability and access of the software. Accessibility of the software means, the ease of access into different features and functionalities of the softwares.
  • Compatibility : This attribute defines the compatibility of the software with different softwares and systems. A software should be compatible with OS, hardware, kernels, etc.
  • Functionality : Functionality of the software means the ability of the software to carry out different operations as per the requirements of the users. This attribute takes care of the fulfillment of the functional requirements of the software.
  • Installability : This property of the software-defined whether the software is installable in various environment and situations.
  • Maintainability : This attribute is totally used after the release of the software or after the Beta-launch of the software.
  • Scalability : Scalability of a software means whether the software is scalable, which means whether the software can be expanded by connecting different modules, interfaces, network elements or even different supporting software to enhance the functionality of the software.

There are different elements which contribute to the quality of the software.

This is the module in which the defect of the software is found. When a defect occurs in software it occurs in part of the software and not in the entire software. The modules are categorized and when the defect is encountered, the module can be easily referred, by its category.

The defect can be addressed as-> defect in Component1 of module A.

Phase Detected:

This is a category in which the defect is identified or detected. This can be any of the phases of the software testing cycle. The defect can be identified in the Unit Testing, Integration Testing, System Testing, Acceptance Testing, etc.

Phase Injected:

This indicates the phase in which the bug or the defects is injected into the software. It may be noted that the defect is always injected in a phase earlier to the phase in which the defect is identified.

The phases in which the defect gets injected are:

  • Requirements And Development.
  • Design.
  • Coding.
  • Development.

Comment / Suggestion Section
Point our Mistakes and Post Your Suggestions