Abstract

The IT industry tries to employ a number of models to identify the defects in the construction of software projects. In this paper, we present COQUALMO and its limitations and aim to increase the quality without increasing the cost and time. The computation time, cost, and effort to predict the residual defects are very high; this was overcome by developing an appropriate new quality model named the software testing defect corrective model (STDCM). The STDCM was used to estimate the number of remaining residual defects in the software product; a few assumptions and the detailed steps of the STDCM are highlighted. The application of the STDCM is explored in software projects. The implementation of the model is validated using statistical inference, which shows there is a significant improvement in the quality of the software projects.

1. Introduction

Due to the rapid development of the software industry today, software companies are now facing a highly competitive market. To succeed, companies have to make efficient project plans to reduce the cost of software construction [1]. However, in medium to large scale projects, the problem of project planning is very complex and challenging [2, 3]. Despite numerous efforts in the past decade at defining and measuring software quality, the management of software quality remains in its infancy and the quality concept is still unutilized. The objectives of software testing are to qualify a software program’s quality by measuring its attributes and capabilities against expectations and applicable standards. Software testing also provides valuable information to the software development effort. Throughout the history of software development, there have been many definitions and advances in software testing. Figure 1 graphically illustrates these evolutions [4].

The life cycle development or waterfall approach breaks the development cycle down into discrete phases, each with a rigid sequential beginning and end. Each phase is fully completed before the next is started. Once a phase is completed, in theory during development, one never goes back to change it [4]. A software product is successful, if the requirements are fulfilled and no budget or deadline overflows occur [5]. So, the Software size contains important information for project planning. The method estimates the software size by counting the “function points” of the system. This method, developed by [6], is widely used in the USA and Europe.

Software quality assurance activities play an important role in producing high quality software. The majority of quality assurance research is focused on defect prediction models that identify defect-prone modules [711]. Although such models can be useful in some contexts, they also have their drawbacks. The literature makes two things clear about defect prediction. First, no single prediction technique dominates [12] and, second, making sense of the many prediction results is hampered by the use of different data sets, data preprocessing, validation schemes, and performance statistics [1215]. These differences are compounded by the lack of any agreed reporting procedure or even the need to share code and algorithms [16].

The COQUALMO model can play an important role in facilitating the balance of cost/schedule and quality [17]. Recognizing this important association, COQUALMO was created as an extension of the Constructive Cost Model (COCOMO), for predicting the number of residual defects in a software product. The COQUALMO model contains two submodels (the model shown in Figure 2):(1)the defect introduction model,(2)the defect removal model.

The defect introduction model uses a subset of COCOMO cost drivers and three internal baseline defect rates (requirements, design, code, and test baselines) to produce a prediction of defects, which will be introduced in each defect category during software development. The defect removal model uses the three defect removal profile levels, along with the prediction produced by the defect introduction model, to produce an estimate of the number of defects that will be removed from each category [17]. However, there are also a number of studies that do not confirm these results, especially regarding residual defects.

The importance of finding residual defects and reducing them (defect-free) in software products need not be accentuated. To reduce the number of defects during the design and development stage, well known product development tools such as the failure mode and effects analysis (FMEA), failure mode effects and criticality analysis (FMECA), quality function deployment (QFD), and sneak analysis (SA) are employed [18]. They provide the reader with a historical sketch of software testing, followed by a description of how to transform requirements to test cases, when there are well-defined or not so well-defined requirements.

This paper aims to overcome these issues and combine these models (waterfall and COQUALMO) to develop a suitable new model, namely, software testing defect corrective model (STDCM). The STDCM will serve as a better model for finding the number of defects and producing high quality software in the IT industry, without increasing the cost and schedule.

2. Limitations of COQUALMO

(i)The effort to fix the defect introduced and removed is not quantified directly by the model.(ii)COQUALMO does not associate the time aspect with the defect removal and fixing process.(iii)Defects are not given weights and classifications, in terms of the software artifact they originated from.

3. Motivation for Construction of Software Testing Defect Corrective Model

(1)Can the existing model (waterfall and COQUALMO) achieve the maximum quality?(2)Is the prediction of errors necessary in the testing phase?(3)What are the possible ways to achieve the maximum quality of the model without increasing the cost and time?

These questions were answered by collecting the relevant literature in the area of software quality and a detailed Integrated model was constructed, as shown in Figure 3.

This study was aimed at improving the quality and testing the process in the software projects, by reducing and finding the residual defects in software application projects. More numbers of papers relevant to the area are listed in below.

Phan et al. (1995) used IBM’s OS/400 R.1 project to address key quality management and control issues in large development projects. The major task is improving the software quality during and after development. During the development of OS/400 R.1 at IBM corporation, thousands of programmers were involved in writing and refining millions of lines of code. Such an effort would fail without good software quality management. Hence, software developers cannot make good software quality products [19].

Cai (1998) applied a new static model for estimating the number of remaining defects and used a set of real data to test the new model. The new model resembles the Mills model in a particular case and is attractive in its applicability to a broader scope of circumstances. A practical example shows that the new model can offer good estimates for a number of software defects. It is also applicable to statistical problems other than software reliability modeling. They have not given a systematic review and hence cannot be applied for estimating the number of remaining defects [20].

Biffl et al. (2003) compared and investigated the performance of objective and subjective defect content estimation techniques. For the validation of these techniques they conducted a controlled experiment with 31 inspection teams, each of which consisted of 4–6 persons. They reported the data from an experiment with number of software engineering defects in a requirement document. They used the relative error, a confidence level, and the correctness for deciding reinspection as the main evaluation criterion, but they did not provide the major defects in the requirement document [21].

Chun (2006) applied a new method (capture-recapture model) that estimates the number of undetected errors in complex software design documents. This idea used the correlation matrix of multiple inspectors to formulate the estimation problem as a goal program. The capture-recapture model initially used by biologists to estimate the size of wildlife population has been widely used to estimate the number of software design errors. It shows that undetected errors are present and this leads to Software fault or failure [22].

Ravishanker et al.  (2008) applied the nonhomogeneous Poisson process model and the multivariate model, that applies Markov switching to characterize the software defect discovery process. However, the process remains complex and hence there is an increase in failure rate [23].

Jacobs et al.  (2007) studied the defect injection (DI) and defect detection (DD) influencing factors and their grouping, resulting in their use in development projects. To decrease the number of injected defects in a development project, the DI factors could be used as areas of attention, while the quality of documentation is poor, leading to a lack of product quality [24].

Quah et al. (2009) studied defect tracking as a proxy method to predict software readiness. They developed the defect predictive model, divided into three parts: prediction model for presenting the logic tire, prediction model for the business tier, and prediction model for the data access tier. Evaluating the software readiness is very complex [25].

Chulani (1999) applied the COCQUALMO model to predict the defect density of the software under development, where defects conceptually flow into a holding tank through various defect introduction pipes and are removed through various defect removal pipes. In this model, it is difficult to increase the quality without increasing the cost and time. They inject the defects and remove them, but it involves more computation time, cost, and man power to predict the residual defects.

Westland (2004) analysed that the short software development life cycle appears to be in favor of higher rates of detection, but for some reasonable development cycle, most of the errors will be found incorrected. Short life cycles are likely to force constrained software development cycles and are likely to exacerbate the risk from postrelease defects. Defining uncorrected defects becomes exponentially costlier in each phase [26].

Turakhia et al.  (2006) used statistical testing to isolate the embedded outlier population, test conditions, and test application support for the statistical testing framework and the data modeling for identifying the outliers. The identification of outliers that correlate to latent defects critically depends on the choice of the test response and the statistical model’s effectiveness in estimating the healthy-die response, but it provides low efficiency and less reliability, and the cost is very high [27].

Xiaode et al.  (2009) studied the quality prediction model and found that the number of faults is negatively correlated with the workload fluctuation, which indicates that the quality is decreasing due to the heavy workload. Due to the problems that occurred in the testing pahse for overheads, there is a decrease in the quality of the product [28].

Catal (2011) studied the software engineering discipline that contains several prediction approaches such as test effort prediction, correction cost prediction, fault prediction, reusability prediction, security prediction, effort prediction, and quality prediction. They investigated 90 software fault prediction papers published between 1990 and 2009. They gave a road map for research scholars in the area of software fault prediction [29].

However, the related works summarized are found to be more relevant for defect-free software products. “Estimating the remaining defects” and “predicting the residual defects” were found to be more suitable for the construction of STDCM. “Software estimation models” COQUALMO can play an important role in facilitating the balance of cost/schedule and quality. COQUALMO was created as an extension of the constructive cost model (COCOMO). The COQUALMO model contains two submodels.

The following conclusions can be drawn from the review of the literature.(i)None of the alternatives is better than the others in all aspects.(ii)The waterfall and COQUALMO models do not emphasize more the correctiveness of software testing.(iii)The strengths and weaknesses of the other techniques are complementary.

5. Model Development Methodology

The STDCM has been developed based on two important traditional models, namely, waterfall and COQUALMO. The integration of these models was developed in a stagewise manner. The validation process of the model was built in a stagewise fashion. The framework of STDCM is shown in Figure 3. The following are the steps for the development of STDCM methodology.

Step 1 (requirement analysis). The customer requirements of the project are collected in the requirements phase of STDCM. The requirements are analyzed using soft QFD (SQFD), in which the house of quality (HoQ) matrix was used, to validate the requirements of the given project.

Step 2 (design). The input of this phase is SRS and the output is DD. This phase is validated using the design document process.

Step 3 (coding). The lines of code are estimated using COCOMO/FPA. The code review process is used and it can be validated using statistical tools.

Step 4 (testing). The inputs for this phase are the test cases and SWFMEA.

6. Application and Implementation of STDCM

A case study was conducted in a leading software company in India. The company was CMM level-5 certified in developing software projects for banking applications. It uses the offline review process for software quality improvement.

This project is basically used for credit card transaction (CCT) in the banking sector. It helps in the following cases:(i)within project team communication validation,(ii)to address the credit card business problem,(iii)within project team URL (uniform resource locator) validation,(iv)centralized location for all URL and phone numbers,(v)transaction services (TS) team with online screens to monitor and validate,(vi)a monthly scan process that allows for a continual review and update of the phone number and URLs.

The STDCM model was applied in this credit card transaction to improve the quality of project delivery. The following are the implementation details.(i)The house of quality (HoQ) matrix was used to validate the correlations and relationships of customer requirements and functional requirements (see Figure 5).(ii)The absolute and relative importance of TRs are computed using the customer importance of CIs and the relationship ratings of the project (see Figure 5).(iii)The STDCM model conducted the code review process for the code developer and external code reviewer to reveal the code defects and resolve it (see Tables 1 and 2).(iv)The STDCM model includes occurrence rating, severity rating, and detecting ability rating table for finding the defects criteria (see Table 3).(v)The STDCM models were implemented corrective actions in the developing software projects with the help of SWFMEA (see Table 4 and Figure 3).(vi)The SWFMEA is validated using the single paired -test. The statistical paired -test shows that there is significant improvement in the quality, in terms of the revised RPN values (Figure 4), due to the implementation of the SWFMEA (see Tables 5, 6, 7, and 8).(vii)A Paired correlation report highly correlated in the projects is 0.77. So there is a significant difference between RPN1 and RPN2. It increases the confidence level up to 98% (see Tables 68).

6.1. Building the Software-HOQ (Table 1)
6.1.1. WHATs

Customer requirements are structured using affinity and tree diagrams and incorporated as WHATs of the software-HOQ. The WHATs are ranked in the order of importance using the analytic hierarchy process and comparison by pairs [30], which are shown in Figure 5. The priority of customer importance displayed in the HOQ next to each customer’s voice has been obtained from the QFD team in a scale of 1 to 10. This gives the customer importance or priority rating for the WHATs of the software-HOQ. Number one implies low importance of priority and ten implies high importance of priority.

6.1.2. HOWs

The HOWs usually represent the product features, design requirements, product characteristics, product criteria, substitutes of quality characteristics, and technical requirements. The HOWs represent the means by which a company responds to what the user wants and needs. These technical requirements are listed along the top of the software house of quality. Each technical requirement may affect one or more of the customer voices. Using the voice of the engineer table (Figure 5), the technical requirements were identified as similar to the customer requirements and are represented as HOWs in the software-HOQ.

The entire soft QFD process has been carried out by a QFD team with members from all departments (development, quality management, marketing, sales, service, etc.) and extended in several team meetings by the representatives of the client company.

6.2. Absolute and Relative Importance
6.2.1. Absolute Importance

In Soft QFD applications, a cell (, ) in the relationship matrix of HOQ, that is, th row and th column of HOQ, is assigned 9, 3, and 1 to represent a strong, medium, or weak relationship, respectively, between the th customer requirement (CR) and the th Technical requirement (TR). The absolute and relative importance of TRs are computed using the customer importance of CIs and the relationship ratings, that is, 9–3–1. For each TR, the absolute importance rating is computed as where is the absolute importance of , . is the customer importance, that is, importance rating of , . is the relationship rating representing the strength of the relationship between and . () Relative importance: the absolute importance rating can then be transformed into the relative importance rating, , as

The larger the is, the more important the is. Thus, without consideration of any other constraints such as cost and time, TRs should be incorporated into the product of interest in the order of their relative importance rating to achieve more customer satisfaction.

The absolute importance for each technical requirement is calculated using (1). Referring to Table 1, the technical requirement “Skillset” has a strong relationship with the customer requirement “Import valid URLs/Phone Numbers.” Thus the column weight for the first column is computed as (9 × 9) + (8 × 9) + (8 × 9) + (7 × 9) + (7 × 9) + (5 × 9) + (4 × 9) + (4 × 9) + (4 × 9) + (5 × 9) = 549. The column weights are used to identify the technical requirements for quality improvement. The relative importance for each technical requirement is calculated using (2).

6.3. Test of Hypotheses

Hypothesis testing helps to decide the basis of sample data, whether a hypothesis about the population is likely to be true or false. Statisticians have developed several tests of hypotheses (also known as tests of significance) for the purpose of testing of hypotheses which can be classified as (a) parametric tests or standard tests of hypotheses and (b) nonparametric tests or distribution-free test of hypotheses. Parametric tests usually assume certain properties of the parent population from which we draw samples. So, we have chosen parametric tests for testing our project samples [31].

6.3.1. Important Parametric Tests

The important parametric tests are   -test, -test,   -test, and -test. All these tests are based on the assumption of normality; that is, the source of data is considered to be normally distributed. Our project sample data size is small; so, we have chosen the -test. The relevant test statistic, , is calculated from the sample data and then compared with its probable value based on -distribution (to be read from the table that gives probable values of for different levels of significance for different degrees of freedom) at a specified level of significance concerning the degrees of freedom for accepting or rejecting the null hypothesis [31].

6.3.2. Hypothesis Testing of Means

Hypothesis testing refers to the formal procedures used by statisticians to accept or reject statistical hypotheses.

In such a situation -test is used and the test statistic is worked out as follows under where = mean of the sample, = hypothesized mean for population, = standard deviation of sample, and = number of items in a sample.

7. Conclusion

This paper discusses the development of a new model, namely, the STDCM, which uses the estimation of the COQUALMO and waterfall models. Its construction and applicability have been discussed. The limitations of other models are highlighted, in particular, the COQUALMO and waterfall. The framework shows the application of the SQFD and SWFMEA in STDCM and the size estimation computation of COCOMO/FPA. The STDCM will serve as a better model for finding the number of defects and producing high quality software in the software industry. The model was demonstrated using banking applications and specializes in developing credit cards. Moreover, the model was successfully validated, using the statistical inference.

Conflict of Interests

The authors declare that there is no conflict of interests regarding the publication of this paper.