Beruflich Dokumente
Kultur Dokumente
Abstract: Troubleshooting is an important part of software development. It starts when a bug is detected, for example, when
testing the system and ends when the relevant source code is fixed. Among different researches, a paradigm has been presented
to incorporate Artificial Intelligence (AI) in the modern software troubleshooting process. This paradigm have been used some
methods named as Learn, Diagnose and Plan (LDP) and integrated three AI technologies. However, this approach is required
for improving its performance of diagnosis accuracy. Hence, in this paper, LDP paradigm is incorporated the Spectrum-based
Fault Localization (SFL)-based software diagnosis to improve the diagnosis accuracy. SFL is a statistical method which aims at
guiding software developers to find faults quickly by providing a ranking of the most probable faulty components. In this
approach, a training set is a set of Software Components (SCs) and a labeling that denotes which components are faulty and
which are not. After that, the diagnoser is integrated with the Spectrum Enhanced Dynamic Slicing fault prediction model. The
input to the diagnoser is the observed system behavior in the form of a set of tests that are executed and their result-pass or fail.
Test planner accepts the set of diagnoses outputted by the diagnoser and if required, suggests additional tests that the tester
should perform to discover the correct diagnosis. The experimental results show that the proposed approach provides better
results. The experimental results show that the proposed approach provides better results.
Keywords: Spectrum-based Fault Localization, Diagnoser, Software developers, Test planner, Artificial Intelligence.
I. INTRODUCTION
This Troubleshooting is an important part of software development. It starts once a bug is detected, for example, once testing the
system and ends when the relevant source code is fixed. Key actors in this process are the tester, who runs the tests and the
developer, who writes the program and is able for fixing bugs (that is, to debug them). In modern software engineering [1-2], the
interaction between tester and developer during troubleshooting is usually as follows. First, the tester executes a suite of tests and
finds a bug. The tester then files a bug report, usually in some issue tracking system such as Bugzilla [3].
A new paradigm [4] has been presented for integrating AI with the modern software troubleshooting process. This paradigm was
used LDP, incorporate three AI approaches: (1) machine learning (2) automated diagnosis (3) automated planning. These AI
methods were integrated in LDP in a synergistic manner: the diagnosis approach was altered for assuming the learned fault
predictions and the planner was changed the possible diagnoses outputted via the diagnosis approach. But, this approach has low
diagnosis accuracy.
In this paper, LDP paradigm is integrated the SFL-based software diagnosis to improve the diagnosis accuracy. SFL is a statistical
technique which aims at guiding software developers to discover faults by providing a ranking of the most probable faulty
components. Initially, a training set is a set of SCs and a labeling that denotes which components are faulty and which are not. Then,
the diagnoser is included with the Spectrum Enhanced Dynamic Slicing fault prediction model. The input to the diagnoser is the
observed system behavior in the form of a set of tests that are executed and their result-pass or fail. Finally, test planner accepts the
set of diagnoses outputted by the diagnoser and if needed, suggests additional tests that the tester must perform to find the correct
diagnosis.
The remainder of the article is organized as follows: Section 2 describes about the software fault prediction. Section 3 describes
about the proposed methods. Section 4 illustrates the performance evaluation of the proposed techniques. Section 5 concludes the
research work.
an assumption which a particular group of software components is faulty. It is expected to output for every diagnosis an
estimate of the probability which it is correct.
5) Test Planner: It is an approach which accepts the group of diagnoses outputted through the diagnoser and if required,
recommends additional tests which the tester must execute to discover the correct diagnosis, that is, the software components
which caused the abnormal system behavior.
C. Diagnoser
The diagnoser elements are described in LDP, and in particular how it integrates with the fault prediction model described in the
previous section. The input to the diagnoser is the observed system behavior in the form of a set of tests that were executed and their
outcome—pass or fail. The output is one or more explanations, which are sets of software components (e.g., class or method) that, if
faulty, explain the observed failed and passes tests. The diagnoser we implemented is an extension of the Barinel software diagnosis
algorithm. We provide here a brief description of Barinel. Barinel is a combination of model-based diagnosis (MBD) and spectrum-
based fault localization (SFL). In MBD, we are given a tuple ⟨ ,,⟩, where is a formal description of the diagnosed system’s
behavior, is the set of components in the system that may be faulty, and is a set of observations. A diagnosis problem
arises when and are inconsistent with the assumption that all the components in are healthy.
D. Test Planer
In this section, we explain the test planner element of LDP. The test planner runs after the diagnoser, for cases where the diagnose
outputted several plausible diagnoses. Indeed, a known limitation of software diagnosis algorithms is that they may output a large
set of diagnoses. The task of the test planner is to plan additional tests for the tester to perform. The purpose of these tests is to
provide additional information for the diagnoser, so that it will be able to find more accurate diagnoses. Test generation is a well-
developed topic in software engineering. In LDP, we focus test planning by considering the diagnoses outputted by the diagnoser, as
the purpose of these test is not to find new bugs but to improve the accuracy of the returned diagnoses (possibly pruning diagnoses
that are found to be incorrect).
1) Integrating the AI components in LDP: A key strength of LDP is in its effective integration of its AI components. We illustrate
this integration. The fault prediction algorithm generates a fault prediction model from the data in the issue tracking and source
control systems. This fault prediction model is used to generate priors for the diagnoser. The diagnoser uses these priors, along
with the knowledge it has about the analyzed software system, to output a set of diagnoses. Each of these diagnoses is
associated with a likelihood score. These diagnoses are then passed to the test planner along with their likelihood scores. If
needed, the test planner plans additional test, taking into consideration the given set of diagnoses. After performing these tests,
new observations will be obtained and considered by the diagnoser.
In this equation, ( ) represents the number of failed runs in that component is involved, ( ) denotes the number of passed
runs in that component is involved, ( ) indicates the number of failed runs in that component is not involved and ()
represents the number of passed runs in that component is not involved. Then,
( )= | = 0⋀ =0 (3)
( )= | = 0⋀ =1 (4)
( )= | = 1⋀ =0 (5)
( )= | = 1⋀ = 1 (6)
It is assumed that a high similarity to the error vector represents a high probability which the corresponding component of the
software causes the detected error. In this assumption, the calculated similarity coefficients rank the parts of the program with
respect to their likelihood of being faulty.
G. Spectrum-based Reasoning
Model-based diagnosis techniques deduce component failure through logic reasoning using propositional models of component
behavior. An inherent, strong point of model-based diagnosis is that it reasons in terms of multiple faults. In addition, BARINEL
models program behavior in terms of program spectra. It uses a Bayesian technique for deducing multiple-fault candidates and their
associated probabilities. So, it yields a probabilistic, information-rich diagnostic report. This algorithm is contained three main
phases. In the initial phase, a list of candidates D is calculated from an activity matrix A and error vector e by STACCATO, a ultra-
low cost approach to measure diagnosis candidates. The required performance is obtained at the cost of completeness, due to
solutions are truncated at 100 candidates. In the next phase, ( ) (probability which a given candidate is faulty) is measured
for every candidate in D. In the last phase, for every the diagnoses are ranked along with ( ) that is calculated through the
EVALUATE function using the usual Bayesian update for every row. This approach is independent of test case ordering.
A. Precision
Precision value is evaluated according to the feature classification at true positive prediction; false positive.It is expressed as
follows:
True positive
Precision =
True positive + False positive
B. Recall
Recall value is evaluated according to the feature classification at true positive prediction, false negative. It is given as,
Truepositive
Recall =
(Truepositive + Falsenegative)
C. Accuracy
The accuracy is the proportion of true results (both true positives and true negatives) among the total number of cases examined.
Accuracy can be calculated from formula given as follows:
TP + TN
Accuracy =
TP + TN + FP + FN
In the above equation, TP denotes true positive, TN represents true negative, FP denotes false positive and FN represents false
negative.
V. CONCLUSION
In this work, LDP paradigm is integrated the SFL-based software diagnosis for enhancing the diagnosis accuracy. In the proposed
approach, a training set is a set of SCs and a labeling that represents which components are faulty and which are not. After that, the
diagnoser is incorporated with the Spectrum Enhanced Dynamic Slicing fault prediction model. The input to the diagnoser is the
observed system behavior in the form of a set of tests that are implemented and their result-pass or fail. Finally, test planner accepts
the set of diagnoses outputted by the tester must perform to find the correct diagnosis. The experimental results show that the
proposed approach provides better results.
REFERENCES
[1] P. A. Ng and R. T. Yeh, Modern software engineering, foundations and current perspectives, Van Nostrand Reinhold Co., 1989.
[2] I. Jacobson, Object-oriented software engineering: a use case driven approach, Pearson Education India, 1993.
[3] N. Serrano and I. Ciordia, “Bugzilla, itracker, and other bug trackers,” IEEE software, vol. 22, no. 2, pp. 11-13, 2005.
[4] A. Elmishali, R. Stern, and M. Kalech, “An Artificial Intelligence paradigm for troubleshooting software bugs,” Engineering Applications of Artificial
Intelligence, vol. 69, pp. 147-156, 2018.
[5] T. Zamir, R. T. Stern, and M. Kalech, “Using Model-Based Diagnosis to Improve Software Testing,” in AAAI, vol. 14, pp. 1135-1141, 2014.
[6] G. Abaei, A. Selamat, and H. Fujita, “An empirical study based on semi-supervised hybrid self-organizing map for software fault prediction,” Knowledge-
Based Systems, vol. 74, pp. 28-39, 2015.
[7] C. Jin and S. W. Jin, “Prediction approach of software fault-proneness based on hybrid artificial neural network and quantum particle swarm
optimization,” Applied Soft Computing, vol. 35, pp. 717-725, 2015.
[8] R. Mahajan, S. K. Gupta, and R. K. Bedi, “Design of software fault prediction model using BR technique,” Procedia Computer Science, vol. 46, pp. 849-858,
2015.
[9] J. Moeyersoms, E. J. de Fortuny, K. Dejaeger, B. Baesens, and D. Martens, “Comprehensible software fault and effort prediction: A data mining
approach,” Journal of Systems and Software, vol. 100, pp. 80-90, 2015.
[10] Y. Zhao, Y. Yang, H. Lu, Y. Zhou, Q. Song, and B. Xu, “An empirical analysis of package-modularization metrics: Implications for software fault-
proneness,” Information and Software Technology, vol. 57, pp. 186-203, 2015.
[11] A. Elmishali, R. Stern, and M. Kalech, “Data-Augmented Software Diagnosis,” in AAAI, pp. 4003-4009, 2016.
[12] G. R. Choudhary, S. Kumar, K. Kumar, A. Mishra, and C. Catal, “Empirical analysis of change metrics for software fault prediction,” Computers & Electrical
Engineering, vol. 67, pp. 15-24, 2018.