You are currently viewing a new version of our website. To view the old version click .
Entropy
  • Article
  • Open Access

19 January 2019

Quantitative Quality Evaluation of Software Products by Considering Summary and Comments Entropy of a Reported Bug

,
,
,
,
and
1
Department of Computer Science, Delhi College of Arts and Commerce, Delhi 110023, India
2
Department of Informatics, Technical University of Munich, 80333 Munich, Germany
3
Department of Computer Engineering, Atilim University, Ankara 06830, Turkey
4
Department of Electrical and Information Engineering, Covenant University, Ota, Ogun State 112212, Nigeria

Abstract

A software bug is characterized by its attributes. Various prediction models have been developed using these attributes to enhance the quality of software products. The reporting of bugs leads to high irregular patterns. The repository size is also increasing with enormous rate, resulting in uncertainty and irregularities. These uncertainty and irregularities are termed as veracity in the context of big data. In order to quantify these irregular and uncertain patterns, the authors have appliedentropy-based measures of the terms reported in the summary and the comments submitted by the users. Both uncertainties and irregular patterns have been taken care of byentropy-based measures. In this paper, the authors considered that the bug fixing process does not only depend upon the calendar time, testing effort and testing coverage, but it also depends on the bug summary description and comments. The paper proposed bug dependency-based mathematical models by considering the summary description of bugs and comments submitted by users in terms of the entropy-based measures. The models were validated on different Eclipse project products. The models proposed in the literature have different types of growth curves. The models mainly follow exponential, S-shaped or mixtures of both types of curves. In this paper, the proposed models were compared with the modelsfollowingexponential, S-shaped and mixtures of both types of curves.

1. Introduction

Software is indispensable in modern society. The development of software follows different process models. During the last few decades, due to the exponential growth in software applications, pressure has been mounting on the software industries to produce reliable software in a short space of time. Consequently, software development life cycle models have shifted from the traditional waterfall model to extreme programming and object-oriented life cycle models. In each life phase of software development, programmers try to minimizeinherent errors by walk-through and code inspectionmethods.Recently, a paradigm shift has been taking place in software development due to advancements in the communication technology which has resulted to the emergence of open source software. The evolution of software takes place through an active participation of different users and developers working from different geographical locations. Among the various issues raised by users around the world one may highlight bugs, new feature introduction, and feature improvement that needs to be incorporated in the software over a long run. Once the issues raisedare reported on the issue tracking system, they are verified, diagnosed and then fixed. The fixing of bugs follows different growth curves and it has been modeled quantitatively by using different software reliability growth models. These mathematical models quantitatively evaluate the reliability level of software in terms of the number ofbugs removed from the software.The reliability level measures the quality of software products as it is one of theimportant software quality attributes which can be measured and predicted [1]. To incorporate the issues arising from the use of these software products, the source code of software isfrequentlychanged. During the changes in the source code of the software, a set of files gets modified. These source code modifications in different files, for a given period of time, follow a specific probability distribution. This has been quantified in [2] by applying Shannon’s entropy proposed in [3]. This entropy measure has been used to quantify theuncertainty arising from source code changes. In [4], the authors proposed models to predict the complexity of code changes, i.e., the entropy that can be diffused into the software overa period of time. The authors also proposed to develop entropy-based models to predict the bugs that can occurin software due to code changes [5]. The entropy has also been used to predict the software code smell [6]. A review of the literature in this regard, revealed that an NHPP-based SRGM hasbeen proposed to evaluate the reliability level of the software in terms of the number of bugs fixed and the number remaining. The information about the bugs remaining in the software may affect the software quality. The authors thus developed SRGM by considering the software development environment and different environmental factors. The SRGM is based on calendar time, testing effort and testing coverage [7,8,9,10,11,12,13,14,15,16,17,18,19,20]. In another study, various SRGMweredevelopedby considering the dependency of bugs. The bugs are dependent in the sense that the removal/fixing of bugs relies upon the removal of other bugs on which these bugs are dependent [8,12,13]. During the study of SRGM, it was observed that the models developed in the literature did not take into account the intrinsic characteristics of the bugs which were reported by all the users from various geographical locations. The models developed in the literature was also observed not to have addressed the diverse comments submitted by different developers in the process of bug fixing. Until the descriptions of the bugs areclearly stated, the root cause of the problems affecting smooth operations cannot be traced, hence the bugs cannot be appropriately fixed. It is thus the assumption of this paper that that the fixing of the bugs correlates highly with theappropriate identification and description of the issues associated with the bugs, as reported by the users. Across the different latitude and longitude of the globe, users and developers report bugs for an open source software to bug tracking systems. The size of software repositories which consists of source code, bugs and archive communication are increasing with enormous rates. The increasing size of software repositories and heterogeneous nature of this semi-structured data leads it to suffer from veracity issues. Veracity is an important attribute of Big Data and refers to biases, noise, uncertainty and distortions in data. In a recent study, authors have used Shannon’s entropy to learn from uncertainty for big data [21]. The reporting of bugs on bug tracking systems also leads to highly irregular patterns and it has also resulted in uncertainty. Both uncertainty and irregular patterns have been taken care by entropy-based measures, i.e.,summary_entropy metric and comment_entropy metric.
The reporting of bugs and others issues on issue tracking systems generates software repositories. These repositories help in software evolution. On the other hand, irregular patterns observed inthese repositories negatively affects the software quality. Once prediction models based on machine learning techniques and mathematical models are developed, the performance of the built in classifiers and models could be significantly degradedif care is not taken to avoid the emergenceof irregular patterns. In addition, where the irregular patterns are not measured, the built model’s accuracy will be degraded.
The summary attribute contains the textual description of bug reports. It plays the major role in predicting severityand priority of newly incoming bug reports. The comments are attached to the bug by users. The numbers of comments filed and counted are attached to a bug report. The textual description of user comments can affect the comprehensibility of a bug report.Therefore, it assists in fixing of a bug. Number of comments, and occurrences of terms, are the indicators of the software quality. Figure 1 shows a bug report of bug id 139050 of BIRT products of the Eclipse project.
Figure 1. A part of the bug report for bug id 139050 of BIRT products of Eclipse projects with its three comments and summary.
The authors of this paper have proposed models to predict the potential number of bugs to be fixed over a long run in the software. To understand the effect of summary_entropy and comment_entropy metric in the bug fixing process, the following cases have been designed:
Case 1:
Prediction of latent bugs based on calendar time (month).
Case 2:
Prediction of latent bugs based on summary_entropy.
Case 3:
Prediction of latent bugs based on comment_entropy.
These cases are summarized as follows:
Case 1Time vs. bugsIn this case, the software reliability growth models in [7,8,9,12,14,15] have been used to predict the potential bugs lying dormant in the software.
Case 2Summary_entropyvs. bugsIn this case, summary_entropy based bug prediction models have been proposed.
Case 3Comment_entropyvs. bugsIn this case, comment_entropy based bug prediction models have been proposed.
The summary and comment entropy is also a function of time. Consequently, the proposed models are alsopredicting the number of bugs in a given time window.The proposed models have been empirically validated on different products of Eclipse project. The performance of the proposed modelshave been validated using different performance measures, namely R2, bias, variation, mean squared error (MSE) and root mean squared prediction error (RMSPE).
The rest of the paper is organized as follows: Section 2 discusses the data collection and model building for bug prediction approaches. Section 3 describes the result and analysis. Section 4 deals with related works and finally, the paper is concluded in Section 5 with future research directions.

2. Data Collection, Preprocessing and Model Building for Bug Prediction

2.1. Data Collection

To validate the entropy-based proposed models, the authors considered different products of the Eclipse project [22]. The reports of the bug were taken for status as “CLOSED”, “RESOLVED” and “VERIFIED” and resolution as “FIXED” and “WORKSFORME”. Table 1 shows the number of bug reports in each product of the Eclipse project.
Table 1. Number of bug reports in each product of Eclipse project.

2.2. Extraction ofthe Terms and Its Weight Using Summary Attributes

Summary weight attribute is derived from the bug attributessubmitted by the users. To compute the summary weight of a reported bug, the authors pre-processed the bug summary in Rapid Miner tools with the steps Tokenization, Stop Word Removal, Stemming to base stem, Feature Reduction and InfoGain [23].

2.3. Entropy

The primary objective of software development is to deliver high quality product at low cost.Bug reporting on software repository system is inan irregular state. Irregularity leads to uncertainty. The size of the software repositoriesis also growing at an enormous rate. This increased size usually has a lot of noise and uncertainty. The representation, measurement, modeling, and processing of uncertainty embedded throughout the data analysis process has a significant impact on the performance of learning from software repositories. If these uncertainties and noises are not handled properly, the performance of the learning strategy can be greatly reduced. To combine and consider these two phenomena, the authors utilized entropy as an attribute. Entropy is used to enhance the software project quality. In general, entropyis a measure of uncertainty in a software system. This paper thus calculated the summary_entropy and comment_entropyfor model building using Shannon’s entropy, where a random variable is defined by A = {a1, a2, a3,…, an} and its probability distribution is P = {p1, p2, p3,…, pn}, the random uncertainty is measured by Shannon’sentropy, Sn is defined as:
S n = p i log 2 p i
In the case of summary_entropy, p is calculated as:
p i = T o t a l   n u m b e r   o f   o c c u r e n c e   o f   t e r m s   i n   i t h   b u g   r e p o r t T o t a l   n u m b e r   o f   t e r m s
In the case of comment_entropy, p is calculated as:
p i = N u m b e r   o f   c o m m e n t s   i n   i t h   b u g   r e p o r t T o t a l   n u m b e r   o f   c o m m e n t s
In this study, the authors considered top 200 terms based on weight from the corpus of total terms. For each bug report, efforts was made to count the summary terms found in the set of 200 top terms and after which it was divided by the total number of terms considered in the study, i.e., 200.

2.4. Software Reliability Growth Modeling

The software reliability growth models measure the reliability growth of software in terms of number of bugs fixed in respect of the execution of the program. The software reliability growth models available in literature follow different types of growth curves. The growth curve may be exponential, S-shaped or some mix of both. There is also a separate category of models which incorporate the concept of bug dependency and followan S-shaped growth curve. The models developed in the literature are based on either calendar time or testing effort functions. In this paper, the auhors developed software reliability growth models based on summary and comment entropy. To validate the performance of the proposed models, the paper comparesthe software reliability growth models which follow exponential, S-shaped and or a mixture of both growth curves.
The block diagram of the proposed methodology is given in Figure 2.
Figure 2. Block diagram of proposed methodology.
In the following section, the paper revisits the software reliability growth models which have been used to compare them with the proposed work.

2.4.1. Software Reliability Growth Models (Time vs. Bugs, i.e.,Case 1 in Introduction Section)

In this section, the software reliability growth models, namely G-O model [14],Yamada-delayed S-shaped model [9], Kapur-3-stage model [15], K-G model [7], Error Dependency model [8], Huang et al. model 1 [12] and Huang et al. model 2 [12], have all been revisited. These models have been validated on different products of eclipse project, namely BIRT, CDT, Community, EclipseLink, EMF, Equinox, Orion and Platform.
The models developed in the literature for this study, considered different testing and debugging environments which resulted to the development of models with different mean value functions. These models are based on NHPP property. x(t) described the cumulative number of bugs detected/fixed in a time interval [0,t].
The bug detection/fixing can be described as:
d x ( t ) d t ( y x ( t ) ) ,   o r   d x ( t ) d t = g ( t ) ( y x ( t ) ) ,
Here, g(t) is the time dependent fixing rate of bug per remaining bug.SolvingEquation (2), we get the following at time t = 0, x(0) = 0:
x ( t ) = y ( 1 exp 0 t g ( t ) d t )
From the above Equation (3), the paper derived different mean value functions depending upon the rate of bug fixing which are given as follows:
Model 1. G-O model [14]:
If g ( t ) = g , Equation (3) reduces to:
x ( t ) = y ( 1 exp ( g t ) )
Model 2. Yamada-delayed S-shaped model [9]:
If g ( t ) = g 2 t 1 + g t , Equation (3) reduces to:
x ( t ) = y ( 1 ( 1 + g t ) exp ( g t ) )
Model 3. Kapur-3-stage model [15]:
If g ( t ) = g 3 t 2 1 + g t + g 2 t 2 2 , Equation (3) reduces to:
x ( t ) = y ( 1 ( 1 + g t + g 2 t 2 2 ) exp ( g t ) )
Model 4. K-G model [7]:
If g ( t ) = g ( 1 + β exp ( g t ) ) , Equation(3) reduces to:
x ( t ) = y ( 1 exp ( g t ) ) ( 1 + β exp ( g t ) )
During software development, after the design phase of the software, programmers write the code in a programming language to implement it. During the writing of codes, programmers generate different types of errors. Some errors are independent in the sense that they can be removed independently. This means the removal of the errors are not dependent on any other error. There is another category of errors which are known as dependent errors whose removals are dependent on those errors on which they are dependent on, and the fixing of these dependent bugs/errors follow different types of debugging time lag functions denoted by θ(t). Based on these assumptions, bug dependency models have been proposed in literature as follows [12,13]: software consists of both dependent and independent bugs, hence, the equations for them could be written thus:
y = y 1 + y 2
where y1 and y2 are the number of independent and dependent bugs respectively.
Let x(t) represent the mean number of bugs removed in time [ t , t + Δ t ] . The fixing of independent and dependent bugs follows an NHPP property:
x ( t ) = x 1 ( t ) + x 2 ( t )
In the above equation, x1(t) and x2(t) denote the mean value functions of independent and dependent bugs fixed in a time interval. The fixing of independent bugs follows exponential growth curves as these bugs are simple in nature and removed immediately. The following differential equation has thus been written as follows in [14]:
d x 1 ( t ) d t = r × [ y 1 x 1 ( t ) ]
Solving Equation (10), leads to obtaining the following results at time t = 0, x ( 0 ) = 0 .
x 1 ( t ) = y 1 ( 1 exp ( r t ) )
For the dependent bug fixing phenomenon, the following equation has be written in the following manner [8]:
d x 2 ( t ) d t = c × [ y 2 x 2 ( t ) ] × x 1 ( t θ ( t ) ) y
In the paragraphs that follow, the authors presentthe bug dependency models as proposed in [8,12]. The developed software reliability growth models are based on dependency of the errors and various debugging time lag functions.
Model 5. Error Dependency Model [8]:
Here, the following took place:
y 1 = q y ,   a n d   y 2 = ( 1 q ) y ,     0 q 1
Putting the value of x1(t) from Equation (11) in Equation (12) and by taking θ(t) = 0, we get the following:
d x 2 ( t ) d t = c × [ y 2 x 2 ( t ) ] × y 1 ( 1 exp ( r t ) ) y
Solving Equation (14) and using Equation (9), the following results were obtained at time t = 0 ,   x 2 ( 0 ) = 0 :
x ( t ) = y ( 1 q exp [ r t ] ( 1 q ) exp [ q c r ( 1 exp [ r t ] ) t q c ] )
Model 6. Huang et al. Model 1 [12]:
If θ ( t ) = [ 1 r log ( 1 + r t ) ] Equation (12) becomes:
d x 2 ( t ) d t = c × [ y 2 x 2 ( t ) ] × y 1 ( 1 ( 1 + r t ) exp ( r t ) ) y
Solving Equation (16) and using Equation (9), we get the following at time t = 0 ,   x 2 ( 0 ) = 0
x ( t ) = y ( 1 q ( 1 + r t ) exp [ r t ] ( 1 q ) exp [ 2 q c r ( 1 exp [ r t ] ) t q c ( 1 + exp [ r t ] ) ] )
Model 7. Huang et al. Model 2 [12]:
If θ ( t ) = [ 1 r log ( ( ψ + 1 ) 1 + ψ exp ( r t ) ) ] Equation (12) becomes:
d x 2 ( t ) d t = c × [ y 2 x 2 ( t ) ] × y 1 ( 1 exp ( r t ) ) y ( 1 + ψ exp ( r t ) )
Solving Equation (14) and using Equation (9), we get the following at time t = 0 , x 2 ( 0 ) = 0
x ( t ) = y ( 1 q ( 1 + ψ ) exp [ r t ] 1 + ψ exp [ r t ] ( 1 q ) exp [ q t c ] ( 1 + ψ 1 + ψ exp [ r t ] ) q c ( 1 + ψ ) r ψ )

2.4.2. Entropy-Based Software Reliability Growth Models (Entropy Vs bugs, i.e.,Case 2 and Case 3 in the Introduction Section)

This section proposes a summary and comments of entropy metric-based software reliability growth models in the line of the models proposed in [7,8,9,12,14,15]. The proposed models are based on entropy derived from the bug summary reported by the user and comments submitted by different developers/active users. In this section, the models based on summary and comments have the same functional form as has been made known in the same notation for entropy variable derived from the summary and comments, butthis paper has validated it for the both approaches, i.e.,summary_entropyvs bugs and comment_entropyvs bugs by taking different data sets.
Let x ( H ( t ) ) be the mean value function of cumulative number of bugs fixed in entropy interval [ 0 , H ( t ) ] here, entropy is a function of time window. The bug detection/fixing can thus be defined as:
d x ( t ) / d t d H ( t ) / d t [ p x ( H ( t ) ) ] ,   o r   d x ( t ) / d t d H ( t ) / d t = k ( H ( t ) ) ( p x ( H ( t ) ) )
where k(H(t)) is the rate of bug fixed per remaining bug at entropy value H(t).
Solving above equation with the initial conditions at t = 0, H ( 0 ) = 0 leads to thefollowing:
x ( t ) = p ( 1 exp 0 t k ( H ( t ) ) d ( H ( t ) ) )
By taking different values of k(H(t)) in Equation (21), the following proposed models can be derivedbased on these values:
Model 8:
If k(H(t)) = k Equation(21) reduces to:
x ( H ( t ) ) = p ( 1 exp ( k H ( t ) ) )
Model 9:
If k ( H ( t ) ) = k 2 H ( t ) 1 + k H ( t ) , Equation (21) reduces to:
x ( H ( t ) ) = p ( 1 ( 1 + k H ( t ) ) exp ( k H ( t ) ) )
Model 10:
If k ( H ( t ) ) = k 3 H ( t ) 2 1 + k H ( t ) + k 2 H ( t ) 2 2 , Equation (21) reduces to
x ( H ( t ) ) = p ( 1 ( 1 + k H ( t ) + k 2 H ( t ) 2 2 ) exp ( k H ( t ) ) )
Model 11:
If k ( H ( t ) ) = k ( 1 + δ exp ( k H ( t ) ) ) , Equation (21) reduces to:
x ( H ( t ) ) = p ( 1 exp ( k H ( t ) ) ) ( 1 + δ exp ( k H ( t ) ) )
Let p1 and p2 be the proportion of independent and dependent software bugs lying dormant in the software. The following equation where p is the sum of both independent and dependent bugs, can be written:
p = p 1 + p 2
Let x ( H ( t ) ) represents the mean number of bugs removed in time [ t , t + Δ t ] . The fixing of independent and dependent bugs follows an NHPP property:
x ( H ( t ) ) = x 1 ( H ( t ) ) + x 2 ( H ( t ) )
In the above equation, x1(H(t)) and x2(H(t)) denote the mean value functions of independent and dependent bugs fixed in time interval [0,t].
The fixing of independent bugs follows exponential growth curves as these bugs are simple in nature and removed immediately. The following equations could thusemerge from the differential equation:
d x 1 ( t ) / d t d H ( t ) / d t [ p 1 x 1 ( H ( t ) ) ] ,   o r   d x 1 ( t ) / d t d H ( t ) / d t = l ( H ( t ) ) ( p 1 x 1 ( H ( t ) ) )
Solving Equation (28), The following is ensured at time t = 0 ,   x 1 ( H ( 0 ) ) = 0
x 1 ( H ( t ) ) = p 1 ( 1 exp ( l H ( t ) ) )
For the dependent bug fixing phenomenon, the equations emanating from it could be written thus:
d x 2 ( t ) / d ( t ) d H ( t ) / d ( t ) = d × [ p 2 x 2 H ( t ) ] × x 1 ( H ( t ) θ ( H ( t ) ) ) p
In the following, the bug dependency models are presented. The developed software reliability growth models are based on dependency of the errors and various debugging time lag functions.
Thus, the following steps are taken:
p 1 = q p ,   a n d   p 2 = ( 1 q ) p ,   0 q 1
Model 12:
Putting the value of x1(H(t)) from Equation (29) and by taking φ ( H ( 0 ) ) = 0 in Equation (30), the following ensues:
d x 2 ( t ) / d ( t ) d H ( t ) / d ( t ) = d × [ p 2 x 2 ( H ( t ) ) ] × p 1 ( 1 exp ( l H ( t ) ) ) p
Solving Equation (32) and using Equation (27), the authors arrive at the following at time t = 0 ,   x 2 ( H ( 0 ) ) = 0
x H ( t ) = p ( 1 q exp [ l H ( t ) ] ( 1 q ) exp [ q d l ( 1 exp [ l H ( t ) ] ) H ( t ) q d ] )
The following models are developed using different debugging time lag functions.
Model 13:
If θ ( H ( t ) ) = [ 1 l log ( 1 + l H ( t ) ) ] , Equation (30) reduces to:
d x 2 ( t ) / d ( t ) d H ( t ) / d ( t ) = d × [ p 2 x 2 H ( t ) ] × p 1 ( 1 ( 1 + l H ( t ) ) exp ( l H ( t ) ) ) p
Solving Equation (34) and using Equation (27), the following results emerge at time t = 0 ,   x 2 ( H ( 0 ) ) = 0
x H ( t ) = p ( 1 q ( 1 + l H ( t ) ) exp [ l H ( t ) ] ( 1 q ) exp [ 2 q d k ( 1 exp [ l H ( t ) ] ) H ( t ) q d ( 1 + exp [ l H ( t ) ] ) ] )
Model 14:
If θ ( H ( t ) ) = [ 1 l log ( ( ψ + 1 ) 1 + ψ exp ( l H ( t ) ) ) ] , Equation (30) reduces to:
d x 2 ( t ) / d ( t ) d H ( t ) / d ( t ) = d × [ p 2 x 2 ( H ( t ) ) ] × p 1 ( 1 exp ( l H ( t ) ) ) p ( 1 + ψ exp ( l H ( t ) ) )
Solving Equation (36) and using Equation (27), the following results emerge at time t = 0 ,   x 2 ( H ( 0 ) ) = 0 :
x H ( t ) = p ( 1 q ( 1 + ψ ) exp [ l H ( t ) ] 1 + ψ exp [ l H ( t ) ] ( 1 q ) exp [ q H ( t ) d ] ( 1 + ψ 1 + ψ exp [ k H ( t ) ] ) q d ( 1 + ψ ) p l ψ )
The value of parameters for the models (model 1 to model 14) have been estimated for different products of the Eclipse project. The values of parameters y and p give the potential number of bugs lying dormant in the software. x ( t )   a n d   x ( H ( t ) ) gives the number of bugs fixed. The differences y x ( t ) and p x ( H ( t ) ) indicate the number of bugs still lying in the software and this quantity determines the reliability level of the software. It is the quantitative quality measurement of the software product. The parameter value q indicates the proportion of independent bugs. With the help of this parameter, we can find the proportion of independent and dependent bugs still lying dormant in software. The values of β and ψ give the nature of the growth curves. A high value indicates that the bugs are complex and will take more time in fixing. The bug fixing rate tells us about the bug fixing efficiency.

3. Results and Analysis

So far, the authors have validated the proposed summary_entropy and comment_entropy-based software reliability growth models on eight datasets, namely the BIRT, CDT, Community, EclipseLink, EMF, Equinox, Orion and Platform products of Eclipse project. In our study, we have developed three cases, namely calendar time vs. bugs (case1), summary_entropyvsbugs(case2) and comment_entropyvsbugs(case3). The paper identified a total number of 168 cases, i.e., eight datasets *three cases* seven models. The paper has estimated the unknown parameters of the models using the Statistical Package for Social Sciences Software (SPSS, https://www.ibm.com/products/spss-statistics) and tabulated the results in Table 2, Table 3, Table 4, Table 5, Table 6, Table 7, Table 8 and Table 9. The performance measures, namely R2, MSE, Bias, Variance and RMSPE of all the models have been tabulated in Table 10, Table 11, Table 12, Table 13, Table 14, Table 15, Table 16 and Table 17. In the performance table, the bold value indicates the maximum value of R2 across all the cases for all the products.
Table 2. Parameter Estimates for BIRT.
Table 3. Parameter Estimates for CDT.
Table 4. Parameter Estimates for Community.
Table 5. Parameter Estimates for EclipseLink.
Table 6. Parameter Estimates for EMF.
Table 7. Parameter Estimates for Equinox.
Table 8. Parameter Estimates for Orion.
Table 9. Parameter Estimates for Platform.
Table 10. Performance Measures for BIRT.
Table 11. Performance Measures for CDT.
Table 12. Performance Measures for Community.
Table 13. Performance Measures for EclipseLink.
Table 14. Performance Measures for EMF.
Table 15. Performance Measures for Equinox.
Table 16. Performance Measures for Orion.
Table 17. Performance Measures for Platform.
A comparison of case 1 and case 2, indicates that case 2 gives better performance in 44 cases while case 1 gives only 10 cases. A comparison of both cases reveals that in two cases both cases have equal performance. Model 13 and model 14 outperforms across all the products in case 2 in comparison with case 1.
A comparison of case 1 and case 3, reveals that case 3 gives a better performance than case 1 in 48 cases in only eight cases for all the products of Eclipse project. Model 11, model 12, model 13 and model 14 outperform across all the products in case 3 in comparison with case 1.
Comparing cases 2 and 3, reveals that case 3 gave better performance in 25 cases whilecase 2 gives better performance in 20 cases. In all, in11 cases both the cases gave equal performance.
The study discovered that the models depending on calendar time, summary_entropy, and comment_entropy performed better in 18, 64and 73 cases, respectively, out of 168 cases in terms of various performance measures. We can conclude that the entropy-based models perform best in 137 out of 168 cases.
Summary_entropy metric-based proposed models have performed better in 78.57% cases and Comment_entropy metric-based proposed models performed better in 85.71% cases in comparison with time-based models. Comment_entropy-based proposed models performed better in 44.64% cases in comparison with summary_entropy-based proposed models. The authors conclude that entropy-based proposed models outperform in 81.55% cases. We also observed that in the cases, where case 1 i.e., time-based models perform better, it overestimated the value of the potential number of bugs. The authors concluded that the entropy-based proposed models (model 8 to 14) performed significantly better in comparison with time-based models (model 1 to 7).
The results analysis arising from the table of performance measures for the different products reviewed for the study revealed that, model 11 of case 3, model 11 of case 2 andcase 3, model 11 of case 2, model 14 of case 3, model 14 of case 3, give the best performance for the BIRT, Community, EclipseLink, EMF and Platform products, respectively. For the CDT and Equinox products model 11 of case 2 and case 3, model 12 of case 2 and model 14 of case 2 and case 3, gave the best performance. For the Orion product model 13 and model 14 of case 3 gave the best performance.
The authors have so far presented the goodness of fit curves of proposed models in Figure 3, Figure 4, Figure 5, Figure 6, Figure 7, Figure 8, Figure 9 and Figure 10 for case 2 and Figure 11, Figure 12, Figure 13, Figure 14, Figure 15, Figure 16, Figure 17 and Figure 18 for case 3. It was observed that the predicted values of the proposed models were very close to the observed value. The proposed models exhibit better goodness of fit in most of the cases in comparison with the existing models.
Figure 3. Goodness of fit curves of proposed models for BIRT.
Figure 4. Goodness of fit curves of proposed models for CDT.
Figure 5. Goodness of fit of curves proposed models for Community.
Figure 6. Goodness of fit curves of proposed models for EclipseLink.
Figure 7. Goodness of fit curves of proposed models for EMF.
Figure 8. Goodness of fit curves of proposed models for Equinox product.
Figure 9. Goodness of fit curves of proposed models for Orion.
Figure 10. Goodness of fit curves of proposed models for Platform.
Figure 11. Goodness of fit curves of proposed models for BIRT.
Figure 12. Goodness of fit curves of proposed models for CDT.
Figure 13. Goodness of fit curves of proposed models for Community.
Figure 14. Goodness of fit curves of proposed models for EclipseLink.
Figure 15. Goodness of fit curves of proposed models for EMF.
Figure 16. Goodness of fit curves of proposed models for Equinox.
Figure 17. Goodness of fit curves of proposed models for Orion.
Figure 18. Goodness of fit curves of proposed models for Platform.

5. Conclusions

In this study so far, efforts were made to proposed novel approach for developing software reliability growth models. The paper considered the summary description of a bug reported by users on a bug tracking system and the number of comments submitted by active users/developers during the bug fixing process.The paper also quantified the value of summary description and comments in terms of entropy which also measured the uncertainty arisingas a result of the enormous size of bug repositories and irregularity on the bug tracking system. The authors of this paper thus developed the models of different nature, ranging from exponential to S-shaped or mixture of both, depending larglyon summary and comments metrics. Bug dependencies are always present in software due to errors in code writing, misunderstanding of users requirements and faults in software architecture.The developed models considered bug dependency with different delay-effect factors in debugging. By this, the authors validated the proposed models on eight products of the Eclipse project, namely BIRT, CDT, Community, EclipseLink, EMF, Equinox, Orion and Platform. The proposed models were compared with the existing time-based models. Here, it was observed that the models based on calendar time, summary_entropy, and comment _entropy perform better in 18, 64 and 73 cases, respectively, out of 168 cases in terms ofthe performance measures R2, variation and RMSPE. Summary entropy metric-based proposed modelswere observed to have performed better in 78.57%of the cases in comparison with time-based models. Comment entropy metric-based proposed models performed better in 85.71% cases in comparison withtime-based models.We also observed that in the cases, where case 1, i.e., t vs. bugs performs better, it overestimated the value of the potential number of bugs. From this premise, the authors concluded that the proposed models performed significantly better in comparison with t vs. bugs models (model 1 to 7). It also provided an optimal value of potential bugs. In the future, further work could be done in the area of the summary_entropy and comment_entropymetric-based models using other project data to make it general.

Author Contributions

All authors discussed the contents of the manuscript and contributed to its preparation. V.B.S. supervised the research and helped M.K. in every step (defining the topic, Model building and implementation). M.K. contributed the idea, estimated the parameters and interpreted the results. S.M., A.M.,L.F.S., and R.D. helped in the analysis of the result, Literature review and in the writing of the manuscript. V.B.S. helped M.K. in applying entropy concept in the proposed model.

Funding

This research received no external funding.

Conflicts of Interest

The authors declare no conflict of interest.

Abbreviations

Acronyms
OSSOpen Source Software
NHPPNon Homogenous Poisson Process
SPSSStatistical Package for Social Sciences
SRGMSoftware Reliability Growth Model
Notations
tTime
y/pPotential number of bugs lying dormant in the software that can be fixed over a long run
y1/p1Number of independent bugs
y2/p2Number of dependent bugs
x(t)Mean value function of bug detection/fixed up to time t
x1(t)Mean value function of the expected number of independent bugs
x2(t)Mean value function of the expected number of dependent bugs
g/kRate of bug detection/fixed
r/lRate of bug detection/fixed of independent bugs
c/dRate of bug detection/fixed of dependent bugs
θ(t)/θ(H(t))Delay–effect factor i.e., debugging time lag
ψInflection factor
qProportion of the independent bugs
βConstant and >0
H(t) or H(t)The value of summary/comment entropy at time t be consistent writing H or H
x(H(t))Bugs removed by cumulative entropy value H(t)
δConstant and >0

References

  1. Godbole, N.S. Software Quality Assurance: Principles and Practice; Alpha Science Intl Ltd.: Oxford, UK, 2004. [Google Scholar]
  2. Hassan, A.E. Predicting bugs using the complexity of code changes. In Proceedings of the 31st International Conference on Software Engineering, Washington, DC, USA, 16–24 May 2009; pp. 78–88. [Google Scholar]
  3. Shannon, C.E. A Mathematical Theory of Communication. Bell Syst. Tech. J. 1948, 27, 379–423. [Google Scholar] [CrossRef]
  4. Chaturvedi, K.K.; Kapur, P.K.; Anand, S.; Singh, V.B. Predicting the complexity of code changes using entropy based measures. Int. J. Syst. Assur. Eng. Manag. 2014, 5, 155–164. [Google Scholar] [CrossRef]
  5. Singh, V.B.; Chaturvedi, K.K.; Khatri, S.K.; Kumar, V. Bug prediction modeling using complexity of code changes. Int. J. Syst. Assur. Eng. Manag. 2015, 6, 44–60. [Google Scholar] [CrossRef]
  6. Gupta, A.; Suri, B.; Kumar, V.; Misra, S.; Blažauskas, T.; Damaševičius, R. Software Code Smell Prediction Model Using Shannon, Rényi and Tsallis Entropies. Entropy 2018, 20, 372. [Google Scholar] [CrossRef]
  7. Kapur, P.K.; Garg, R.B. A software reliability growth model for an error-removal phenomenon. Softw. Eng. J. 1992, 7, 291–294. [Google Scholar] [CrossRef]
  8. Kapur, P.K.; Younes, S. Software reliability growth model with error dependency. Microelectron. Reliab. 1995, 35, 273–278. [Google Scholar] [CrossRef]
  9. Yamada, S.; Ohba, M.; Osaki, S. S-shaped reliability growth modeling for software error detection. IEEE Trans. Reliab. 1983, 32, 475–484. [Google Scholar] [CrossRef]
  10. Kapur, P.K.; Singh, V.B.; Anand, S.; Yadavalli, V.S.S. Software reliability growth model with change-point and effort control using a power function of the testing time. Int. J. Prod. Res. 2008, 46, 771–787. [Google Scholar] [CrossRef]
  11. Kapur, P.K.; Gupta, A.; Yadavalli, V.S.S. Software reliability growth modeling using power function of testing time. Int. J. Oper. Quant. Manag. 2006, 12, 127–140. [Google Scholar]
  12. Huang, C.Y.; Lin, C.T. Software reliability analysis by considering fault dependency and debugging time lag. IEEE Trans. Reliab. 2006, 55, 436–450. [Google Scholar] [CrossRef]
  13. Singh, V.B.; Yadav, K.; Kapur, R.; Yadavalli, V.S.S. Considering the fault dependency concept with debugging time lag in software reliability growth modeling using a power function of testing time. Int. J. Autom. Comput. 2007, 4, 359–368. [Google Scholar] [CrossRef]
  14. Goel, A.L.; Okumoto, K. Time-dependent error-detection rate model for software reliability and other performance measures. IEEE Trans. Reliab. 1979, 28, 206–211. [Google Scholar] [CrossRef]
  15. Kapur, P.K.; Younes, S.; Agarwala, S. Generalized Erlang software reliability growth model. Asor Bull. 1995, 14, 5–11. [Google Scholar]
  16. Huang, C.Y.; Kuo, S.Y.; Chen, Y. Analysis of a software reliability growth model with logistic testing-effort function. In Proceedings of the Eighth International Symposium on Software Reliability Engineering, Albuquerque, NM, USA, 2–5 November 1997; pp. 378–388. [Google Scholar]
  17. Yamada, S.; Ohtera, H.; Narihisa, H. Software reliability growth models with testing-effort. IEEE Trans. Reliab. 1986, 35, 19–23. [Google Scholar] [CrossRef]
  18. Huang, C.Y. Performance analysis of software reliability growth models with testing-effort and change-point. J. Syst. Softw. 2005, 76, 181–194. [Google Scholar] [CrossRef]
  19. Huang, C.Y.; Kuo, S.Y. Analysis of incorporating logistic testing-effort function into software reliability modeling. IEEE Trans. Reliab. 2002, 51, 261–270. [Google Scholar] [CrossRef]
  20. Malaiya, Y.K.; Li, M.N.; Bieman, J.M.; Karcich, R. Software reliability growth with test coverage. Ieee Trans. Reliab. 2002, 51, 420–426. [Google Scholar] [CrossRef]
  21. Wang, X.; He, Y. Learning from uncertainty for big data: Future analytical challenges and strategies. IEEE Syst. ManCybern. Mag. 2016, 2, 26–31. [Google Scholar] [CrossRef]
  22. Available online: http://bugs.eclipse.org/bugs/ (accessed on 28 June 2018).
  23. Porter, M.F. An algorithm for suffix stripping. Program 1980, 14, 130–137. [Google Scholar] [CrossRef]
  24. Murphy, G.; Cubranic, D. Automatic bug triage using text categorization. In Proceedings of the Sixteenth International Conference on Software Engineering & Knowledge Engineering, Banff, AB, Canada, 20–24 June 2004; pp. 1–6. [Google Scholar]
  25. Anvik, J.; Hiew, L.; Murphy, G.C. Who should fix this bug? In Proceedings of the 28th international Conference on Software Engineering, Shanghai, China, 20–28 May 2006; pp. 361–370. [Google Scholar]
  26. Moin, A.; Neumann, G. Assisting bug triage in large open source projects using approximate string matching. In Proceedings of the 7th nternational Conference on Software Engineering Advances (ICSEA 2012), Lissabon, Portugal, 18–23 November 2012; pp. 1–6. [Google Scholar]
  27. Bhattacharya, P.; Neamtiu, I.; Shelton, C.R. Automated, highly-accurate, bug assignment using machine learning and tossing graphs. J. Syst. Softw. 2012, 85, 2275–2292. [Google Scholar] [CrossRef]
  28. Tamrawi, A.; Nguyen, T.T.; Al-Kofahi, J.M.; Nguyen, T.N. Fuzzy set and cache-based approach for bug triaging. In Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering, Szeged, Hungary, 5–9 September 2011; pp. 365–375. [Google Scholar]
  29. Bhattacharya, P.; Neamtiu, I. Fine-grained incremental learning and multi-feature tossing graphs to improve bug triaging. In Proceedings of the 2010 IEEE International Conference Software Maintenance (ICSM), Timisoara, Romania, 12–18 September 2010; pp. 1–10. [Google Scholar]
  30. Alenezi, M.; Magel, K.; Banitaan, S. Efficient Bug Triaging Using Text Mining. JSW 2013, 8, 2185–2190. [Google Scholar] [CrossRef]
  31. Jeong, G.; Kim, S.; Zimmermann, T. Improving bug triage with bug tossing graphs. In Proceedings of the the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on The Foundations of Software Engineering, Amsterdam, The Netherlands, 24–28 August 2009; pp. 111–120. [Google Scholar]
  32. Xuan, J.; Jiang, H.; Ren, Z.; Yan, J.; Luo, Z. Automatic bug triage using semi-supervised text classification. arXiv, 2017; arXiv:1704.04769. [Google Scholar]
  33. Govindasamy, V.; Akila, V.; Anjanadevi, G.; Deepika, H.; Sivasankari, G. Data reduction for bug triage using effective prediction of reduction order techniques. In Proceedings of the 2016 International Conference on Computation of Power, Energy Information and Commuincation (ICCPEIC), Chennai, India, 20–21 April 2016; pp. 85–90. [Google Scholar]
  34. Xuan, J.; Jiang, H.; Hu, Y.; Ren, Z.; Zou, W.; Luo, Z.; Wu, X. Towards effective bug triage with software data reduction techniques. IEEE Trans. Knowl. Data Eng. 2014, 27, 264–280. [Google Scholar] [CrossRef]
  35. Tian, Y.; Wijedasa, D.; Lo, D.; Le Goues, C. Learning to rank for bug report assignee recommendation. In Proceedings of the 2016 IEEE 24th International Conference on Program Comprehension (ICPC), Austin, TX, USA, 16–17 May 2016; pp. 1–10. [Google Scholar]
  36. Anvik, J.; Murphy, G.C. Reducing the effort of bug report triage: Recommenders for development-oriented decisions. ACM Trans. Softw. Eng. Methodol. (TOSEM) 2011, 20, 10. [Google Scholar] [CrossRef]
  37. Shokripour, R.; Anvik, J.; Kasirun, Z.M.; Zamani, S. Why so complicated? simple term filtering and weighting for location-based bug report assignment recommendation. In Proceedings of the 2013 10th IEEE Working Conference on Mining Software Repositories (MSR), San Francisco, CA, USA, 18–19 May 2013; pp. 2–11. [Google Scholar]
  38. Goyal, A.; Sardana, N. Efficient bug triage in issue tracking systems. In Proceedings of the Doctoral Consortium at the 13th International Conference on Open Source Systems, Buenos Aires, Argentina, 22 May 2017; pp. 15–24. [Google Scholar]
  39. Jin, K.; Dashbalbar, A.; Yang, G.; Lee, B. Improving Predictions about Bug Severity by Utilizing Bugs Classified as Normal. Contemp. Eng. Sci. 2016, 9, 933–942. [Google Scholar] [CrossRef]
  40. Zhang, T.; Yang, G.; Lee, B.; Chan, A.T. Predicting severity of bug report by mining bug repository with concept profile. In Proceedings of the 30th Annual ACM Symposium on Applied Computing, Salamanca, Spain, 13–17 April 2015; pp. 1553–1558. [Google Scholar]
  41. Roy, N.K.S.; Rossi, B. Towards an improvement of bug severity classification. In Proceedings of the 2014 40th EUROMICRO Conference on Software Engineering and Advanced Applications (SEAA), Verona, Italy, 27–29 August 2014; pp. 269–276. [Google Scholar]
  42. Chaturvedi, K.K.; Singh, V.B. An empirical comparison of machine learning techniques in predicting the bug severity of open and closed source projects. Int. J. Open Source Softw. Process. (IJOSSP) 2012, 4, 32–59. [Google Scholar] [CrossRef]
  43. Tian, Y.; Lo, D.; Sun, C. Information retrieval based nearest neighbor classification for fine-grained bug severity prediction. In Proceedings of the 2012 19th Working Conference on Reverse Engineering, Kingston, ON, Canada, 15–18 October 2012; pp. 215–224. [Google Scholar]
  44. Yang, C.Z.; Hou, C.C.; Kao, W.C.; Chen, X. An Empirical Study on Improving Severity Prediction of Defect Reports using Feature Selection. In Proceedings of the 19th Asia-Pacific Software Engineering Conference, Hong Kong, China, 4–7 December 2012; pp. 240–249. [Google Scholar]
  45. Chaturvedi, K.K.; Singh, V.B. Determining Bug Severity Using Machine Learning Techniques. In Proceedings of the 2012 CSI Sixth International Conference on Software Engineering, Indore, India, 5–7 September 2012; pp. 1–6. [Google Scholar]
  46. Lamkanfi, A.; Demeyer, S.; Giger, E.; Goethals, B. Predicting the Severity of a Reported Bug. In Proceedings of the 2010 7th IEEE Working Conference on Mining Software Repositories, Cape Town, South Africa, 2–3 May 2010; pp. 1–10. [Google Scholar]
  47. Lamkanfi, A.; Demeyer, S.; Soetens, Q.D.; Verdonck, T. Comparing Mining Algorithms for Predicting the Severity of a Reported Bug. In Proceedings of the 2011 15th European Conference on Software Maintenance and Reengineering, Oldenburg, Germany, 1–4 March 2011; pp. 249–258. [Google Scholar]
  48. Menzies, T.; Marcus, A. Automated Severity Assessment of Software Defect Reports. In Proceedings of the 2008 IEEE International Conference Software Maintenance, Beijing, China, 28 September–4 October 2008; pp. 346–355. [Google Scholar]
  49. Alenezi, M.; Banitaan, S. Bug Reports Prioritization: Which Features and Classifier to Use? In Proceedings of the 2013 12th International Conference on Machine Learning and Applications, Miami, FL, USA, 4–7 December 2013; pp. 112–116. [Google Scholar]
  50. Kanwal, J.; Maqbool, O. Managing open bug repositories through bug report prioritization using SVMs. In Proceedings of the International Conference on Open-Source Systems and Technologies, Lahore, Pakistan, 22–24 December 2010. [Google Scholar]
  51. Kanwal, J.; Maqbool, O. Bug prioritization to facilitate bug report triage. J. Comput. Sci. Technol. 2012, 27, 397–412. [Google Scholar] [CrossRef]
  52. Sharma, M.; Bedi, P.; Chaturvedi, K.K.; Singh, V.B. Predicting the priority of a reported bug using machine learning techniques and cross project validation. In Proceedings of the 2012 12th International Conference on Intelligent Systems Design and Applications (ISDA), Kochi, India, 27–29 November 2012; pp. 539–545. [Google Scholar]
  53. Dit, B.; Poshyvanyk, D.; Marcus, A. Measuring the semantic similarity of comments in bug reports. Proc. 1st Stsm 2008, 8, 64. [Google Scholar]
  54. Xuan, J.; Jiang, H.; Zhang, H.; Ren, Z. Developer recommendation on bug commenting: A ranking approach for the developer crowd. Sci. China Inf. Sci. 2017, 60, 072105. [Google Scholar] [CrossRef]
  55. Pham, H.; Zhang, X. NHPP software reliability and cost models with testing coverage. Eur. J. Oper. Res. 2003, 145, 443–454. [Google Scholar] [CrossRef]
  56. Inoue, S.; Yamada, S. Two-dimensional software reliability measurement technologies. In Proceedings of the 2009 IEEE International Conference on Industrial Engineering and Engineering Management, Hong Kong, China, 8–11 December 2009; pp. 223–227. [Google Scholar]
  57. Kapur, P.K.; Garg, R.B.; Aggarwal, A.G.; Tandon, A. Two dimensional flexible software reliability growth model and related release policy. In Proceedings of the 4th National Conference, INDIACom-2010, New Delhi, India, 25–26 February 2010. [Google Scholar]
  58. Zhang, W.; Cui, Y.; Yoshida, T. En-LDA: An novel approach to automatic bug report assignment with entropy optimized latent dirichletallocation. Entropy 2017, 19, 173. [Google Scholar] [CrossRef]
  59. Singh, V.B.; Sharma, M.; Pham, H. Entropy Based Software Reliability Analysis of Multi-Version Open Source Software. IEEE Trans. Softw. Eng. 2018, 44, 1207–1223. [Google Scholar] [CrossRef]
  60. Wu, H.; Li, Y.; Bi, X.; Zhang, L.; Bie, R.; Wang, Y. Joint entropy based learning model for image retrieval. J. Vis. Commun. Image Represent. 2018, 55, 415–423. [Google Scholar] [CrossRef]

Article Metrics

Citations

Article Access Statistics

Multiple requests from the same IP address are counted as one view.