Subscribe by Email

Thursday, December 22, 2011

What are the benefits of finding faults early?

There are several benefits of finding faults in a software system, program or application early during the development phase. Two famous researchers from the famous software engineering institute or SEI as it is called in short form, carried out a research to find benefits of detecting or finding faults early while the software project is in development phase.

There are numerous benefits of finding faults early in some software system or application. Below listed are some of the observations of the research:

- Around 70 percent of the total errors and bugs creep in to the software system during the early stages of the software development cycle. Out of these 70 percent faults, only 3.5 percent faults are found.
- Around 80 percent of the errors and faults are discovered in the later stages of the software development cycle.
- The cost of fixing faults early was recorded around the rate of 25x.
- The cost of fixing faults later in the development stages was recorded to be around 16x or sometimes even higher.

According to the finding of the results of the research, one can save himself/ herself over a large percentage on rework and software repair works by finding and fixing the records early during the initial stages of the software development cycle. Since the quality of the software is elusive, it is difficult to define it and also impossible to measure it.

The quality of a software system is affected by some essential factors which cannot be measured. Some such kinds of factors are:

- Reliability
- Efficiency
- Portability
- Usability
- Testability
- Modifiability
- Understandability

Also it won’t be enough to define the quality of software based on the above factors only. "The faults may occur in the software system itself or in the surrounding testing environment which includes the test cases and documentation. Some times the reported anomalies can also be faults."

An anomaly is scientifically defined as a condition which is deviated from the expectations regarding requirements, design, documentation, specifications and standards. The errors are made which cause failures which in turn lead to the reported anomalies. These reported anomalies are analyzed and the errors or bugs causing those failures are found and fixed. Sometimes the whole source is reworked up on. Rework is the process of revising the whole part of the software or application. It is one of the methodologies to correct the reported anomalies.
There are basically 2 types of rework:

- Avoidable Rework
It can be defined as the rework which would have been avoided if the previous source code of the software program would have been error free, consistent and complete. It depends on the hard work and efforts made to fix the problems of the software system that could have been found earlier, fixed and avoided.

- Unavoidable Rework
It can be defined as the rework which could not have been avoided since the software developers and programmers could not foresee or predict the error being made while programming the software system or application. Some such changes are changing the environmental constraints and user requirements.

In some cases, software system benefits from the avoidable rework. It is so because sometimes it is more cost effective to check for the errors and modify the system afterwards rather than putting in the significant loads of efforts for fixing the errors correctly up front. Avoidable rework is mostly preferred since in some cases a fault or an error occurs in a particular phase but it is not profitable to look for that fault in the same phase.

No comments:

Facebook activity