Linzhi Huangand Jun Ai
School of Reliability and Systems Engineering,Beihang University,Beijing 100191,China
Automatic software fault localization based on artificia bee colony
Linzhi Huang?and Jun Ai
School of Reliability and Systems Engineering,Beihang University,Beijing 100191,China
Software debugging accounts for a vast majority of the financia and time costs in software developing and maintenance. Thus,approaches of software fault localization that can help automate the debugging process have become a hot topic in the fielof software engineering.Given the great demand for software fault localization,an approach based on the artificia bee colony (ABC)algorithm is proposed to be integrated with other related techniques.In this process,the source program is initially instrumented after analyzing the dependence information.The test case sets are then compiled and run on the instrumented program,and execution results are input to the ABC algorithm.The algorithm can determine the largest fitnes value and best food source by calculating the average fitnes of the employed bees in the iterative process.The program unit with the highest suspicion score corresponding to the best test case set is regarded as the fina fault localization.Experiments are conducted with the TCAS program in the Siemens suite.Results demonstrate that the proposed fault localization method is effective and efficient The ABC algorithm can efficientlavoid the local optimum,and ensure the validity of the fault location to a larger extent.
software debugging,software fault localization,artificia bee colony(ABC)algorithm,program instrumentation.
Software testing,which is the most significan analytic qualityassurancemeasure forsoftwaremaintenance,is addressed as one of the key phases in software system development.More than 30%of software expenditure is allocated to testing.Among a series of software testing activities,fault localization is an expensive one[1].Although manual fault localization has proven to be prohibitively time-consuming and tedious,the demand for automatic fault localization techniques is fueled.To meet this demand,a large number of fault localization techniques have been proposed.Each technique attempts to automatically guide programmers to the locations of faults with minimal human intervention.
Fault localization methods can be divided into two categories,namely,static analysis-based fault localization (SABFL)and test-based fault localization(TBFL),based on whether the software needs to run or not during the localization process.The most critical step in SABFL is to statically analyze dependencies between the software structure and program statements from the perspective of syntax and semantics.The widely cognitive methods of SABFL are symbolic execution[2,3],formal method[4] and pointer analysis[5,6].However,the SABFL approach is inefficien and intractable because of the tremendous amount of data that need to be examined.The key part of TBFL is designing test cases and executing the program which is instrumented around suspicious code to print out the values of some variables.The executiontraces and outputs of the instrumentedprogram will identify the possible locations of program faults.Renieres and Reiss proposed a method called nearest neighbor queries(NNQ)based on the similar program spectrum which is obtained by comparing the differences between the traces of passed and failed executions[7].Jones and Harrold held the opinion that the suspicion of the statement is related to the participation of the statement in failed executions,and their prototype tool“Tarantula”uses colors to visually map the participation of each statement in the outcome of both the passed and failed execution of the program[8].Then several methods of calculating the suspicions of statements were proposed and yet the localization accuracy was not improved much[9,10].Abreu introduced the coefficien Ochiai,which is originally used in the molecular biology domain,to quantify the resemblance between vectors and calculate the suspicions,and the localization accuracy was enhanced compared with Tarantula in the terms of multifaults localization[11].And the crosstab-based statistical method proposed by Wong was proved to be effective in fault localization and performs better(in terms of a smaller percentage of executable statements that have tobe examined until the firs statement containing the fault is reached)than other methods such as Tarantula[12,13]. Hao et al.proposed a similarity-aware fault-localization approach,which takes each test case as a fuzzy set to calculate the similarity between test cases and the statements’suspicions are calculated based on the probability theory [14].A bunch of model-based approaches are proposed to describe the behavior or status of software execution, and the fault localization is conducted based on the models such as SOBER,which is a statistical model-based bug localization method[15].Cleve and Zeller identifie thestate differencesthatcausethefailurebycomparingthe programstates ofafailingandapassingrun,thenthe cause transitions are located by narrowing down the state differences[16].The test-based approaches are dependent on large-scale test data sets and require the execution traces being recorded.
The application of optimization method-based techniques to software fault localization has been proposed by several researchers to overcome the aforementioned problems[17,18].Optimization method based techniques are adaptiveandrobust,and can producemodelsbased on data withlimitedhumaninteraction.Theimminentproblemcan be expressed as an attempt to learn or deduce the location of a fault based on input data,such as statement coverage. However,the genetic algorithm can be easily trapped into the local best,so a satisfying localizationmay not be determined.The lack of an initial pheromone in the ant colony algorithm[19,20]leads to low search efficien y,and the positive feedback mechanism is prone to premature phenomenon.
The artificia bee colony(ABC)algorithm was originally presented by Dervis Karaboga in 2007[21]under the inspiration of the collective behavior of honey bees, and it has been adopted to solve problems such as numerical optimization[21,22],distributed generation allocation and sizing in distribution systems[23,24],target recognition[25],etc.Typical optimization algorithms conduct only one search operation in each iteration.For instance, the particle swarm optimization(PSO)algorithm[26]carries out a global search at the beginning and a local search in the later stage.Compared with the usual algorithms,the major advantage of the ABC algorithm is that it conducts both global and local searches in each iteration.Thus,the probability of findin the optimal parameters is signifi cantly increased,which efficientlavoids the local optimum to a large extent.Although the ABC algorithm has rarely been used in software testing,we adopte this algorithm because of the aforementioned advantages.
The remainder of this paper is organized as follows. Section 2 introduces the background of the fault localization method combined with the ABC algorithm.Section 3 specifie the ABC algorithm for fault localization.In Section 4,the implementation of the algorithm and results of anempirical studyusingthe implementationare discussed. Next,the technique presented is compared with the related work.The fina section discusses the concluding remarks and future work.
The process of the ABC algorithm,which simulates the bees searching for food sources by exchanging information,highly resembles the process of software fault localization,which is to execute test cases and cover the faults constantly until the faults are specificalllocated. The model of the ABC algorithm has three basic elements: food sources,employed foragers,and unemployed foragers.All the program inputs correspond to the bee colony. The location of one food source is define as a software fault,andthenectaramountofthefoodsourcecorresponds to the fitnes of the fault localization.Execution of the selected set of test cases resembles the employed foragers associated with the particularfoodsource that theyare currently exploiting.Once execution of any test case fails,it means that execution has covered at least one fault,this food source is considered to be a valid one,which resembles the foragers returning to the hive and unloading the nectar to the food area in the hive to evaluate the fitnes of the food source.If the nectar amount decreases to a low level,the foraging bee abandons the food source and becomes an unemployed bee,which means that the current execution path is not suitable for fault localization.If a sufficien amount of nectar still exists in the food source, the foragers can go to the dance area to perform a waggle dance to inform the onlookers about the food source, and lead them to search for the nearby food sources.In this way,the next set of test cases is generated by performing mutation operators and local search schemes to change the original set.Some scout bees start searching spontaneously and globally for new food sources without any knowledge,which correspondsto the process that new sets of test cases are generated randomlyin the input space and executed.Thus,the three basic elements of the behavior model,namely,searching for food sources,recruiting bees for food sources,and abandoning food sources,are defined
The ABC algorithm is utilized to fin the optimal food source with the largest amount of nectar.When applied to the localization of software faults,a set of test cases with maximumpossibility to locate the faults can be found.The corresponded execution paths which covered the software faults are obtained.During the searching time,the execu-tion data are gathered,the participation of each program unitinthe executionsis countedandthesuspicionsofthem are calculated,thus the faults can be located.
Compared with the foraging process of a bee colony,several problems should be solved when applying the ABC algorithm on software fault localization:
(i)How to design and make an extension of the ABC algorithm to solve the localization problem;
(ii)How to defin and select the fitnes function of the ABC algorithm related to the localization problem;
(iii)How to gather the execution data and make it valid for the ABC algorithm to recognize.
3.1ABC algorithm analysis associated with the localization problem
Suppose that all the possible fault locations of a program withD-dimensional input space areS=RD,whereSrefers to the global search space of the bee colony,andDrefers to the dimension of individual vectors.The total number of bees isNs=Ne+Nu,in whichNerepresents the number of employed foragers,andNurepresents the number of unemployed foragers.If we assume thatXi∈S(i=1,2,...,Nε)is an individual test case,X=(X1,...XNε)stands for a set of test cases corresponding to an employed bee colony.X(0)represents the initial test case set,andX(n)represents the test cases executed in thenth iteration corresponding to thenthgeneration employed foragers.The fitnes function is represented asf∶S→R,whereRis related to the localization accuracy of the current test cases.The process for solving the fault localization problem using the ABC algorithm can be described in six steps.
Step 1The initial test case set is generated and executed,after which the cost value of each test case is calculated.The test cases whose cost values rank in the firsNeare chosen as the valid food sources.
Step 2The employed bees of the next generation search around their current positions to fin new solutions, which means that the current test caseis mutated into a new one according to the search strategy.Thus,the execution paths are changed,and the positions are updated if the new cost value is lower than the original value.The search strategy can be described as follows:
wherej∈{1,2,...,D},k∈{1,2,...Nε}andk/=i;refers to the new test case,kandjare chosen randomly,is a random value between?1 and 1,andV∈Sis required.
Step 3The better case is selected between the newly generated test caseViand original test caseXi,which is represented asTs∶S2→S.The probability distribution ofTsis shown as follows:
This progam assures that the elite individual can be sustainedandtheevolutionarydirectionwillnotretreat,which means that the better cases are reserved.
Step 4The unemployed bees apply the roulette selection method to choose the individual bee that maintains a relatively low cost value as the leading bee,according to the calculated cost results of employed bees.Each recruited unemployed bee continues to search for new solutions only around the leading bee’s solution space,similar to Step 2.The cost values of these solutions are then calculated.The selection operatorTs1∶SNe→Sis used to select an individual in employed bees,of which the selection possibility is shown as
Step 5The best fitnes valuef bestand corresponding parameters are updated after the current iteration of the colony is completed.
Step 6If the search timeBasis larger than a certain maximum valueLimit,the employed bee surrenders the solution and searches for new food resources,which can be realized by re-initializing the parameters.
where rand(0,1)is a random value between 0 and 1.Once the iteration-stopping criterion is met,the algorithm stops and outputs the global best fitnes valuef bestand corresponding parameters.Otherwise,the algorithm continues and returns to Step 2[21].
3.2Fitness function analysis
The calculation of the cost value in the ABC algorithm is determined by the selection of the fitnes function.Thus, the convergence rate of the algorithm and accuracy of the optimal solution can be determined.The selection of the fitnes functionhas greatsignificanc onthe resultsofsoftware fault localization.
In the process of software fault localization,the approachtocalculatethecostvalueoffoodsourcesis tocompare the test cases that failed in executing with those that succeeded.The test results are then evaluated.The more faults exposed,the higher the suspicion scores are.
The firs factor of the fitnes function considered in this paper is the correlation coefficien in Tarantula[8],which is define as
The symbols in the correlation coefficien formula can be related to the observation matrix of the program spectrum and execution results of test cases.In this formula,a11(sk)is the number of test cases that execute the basic unitskand return a result of fail,a10(sk)is the number of test cases that execute the basic unitskand return a result of pass,a01(sk)is the number of test cases that do not execute the basic unitskand return a result of fail,anda00(sk)is the number of test cases that do not execute the basic unitskand return a result of pass.
The second factor considered to construct the fitnes function in this paper is the program dependence relationship.Consider two program unitssiandsj.Ifsihas control or data dependency onsj,then it contributes some score tosj.The suspicion score ofsjmultiplies a coefficienaij,which is greater than one when rating the suspicion score ofsi.Similarly,if the suspicion score ofsjis higher,it weakens the score ofsi.The suspicion score ofsjmultiplies a coefficienaij,which is less than one.
Finally,the two main factors are synthesized,and the suspicion score of program unitskisScore(k)=,whereNis the numberof basic program units.
An illustrative example is shown in Table 1,the coverage conditions and execution results are included.In the table,“1”means that the test case executes the statement and“0”means not.The last row of the table shows if the execution passed(P)or failed(F).
The correlation coefficien of each statement are calculated:
The control dependences in the example program are shown in Fig.1.s4 and s8 has control dependency on s3, then they contribute some score to s3.
Table 1 Sample program with coverage and execution data
Fig.1 Control dependence graph of the example
The multiple coefficien is 0.8 as an assumption,then the scores of the statements are calculated:
Therefore,the fitnes values of the execution are obtained,andScore(4)=1.152,which shows that the statement with max score is s4.Then the location of the fault is found,which matches the real location exactly.
3.3 Achievement in data gathering
The collection of program execution information is the basis of the cost value calculation in the searching process of a bee colony.The main process of data gathering is to obtain the information of the statement coverage, branch coverage,and program variable data during program execution.This study mainly uses the program structure analysis,data analysis,and instrumentation technology to gather data for the algorithm.
Both the control fl w and data fl w of the program can trigger the control dependency and data dependency betweenprogramunits,whichaffectthe outerbehaviorofthe program.Analyzing the structure of the program and data, as well as comprehendingthe relationship among program units,can provide guidance for program instrumentation. Program dependency is a factor to obtain the fitnes function of the ABC algorithmin this paper,andplays a crucial role in the process of fault localization.
Toobtainthepredicateexecutioninformation,statement coveringinformation,anddatafl winformation,statement coverage probes,conditional branch probes,and variable tracking probes are instrumented in the program without changing the logical accuracy and structural integrity.The programinformationwill be stored where the probeis executed after program execution.The variable information and branchcoverageinformationcan be processeddirectly in the approach of locating faults using the ABC algorithm.The program location coverage information records the coverage of units or statements by all the executed test cases.The abstract representation of the program spectrum is adopted to record the coverage of unit location in this paper.The coverage probe of a basic program unit is assigned as 1 when one of the test cases is executing through it.Otherwise,it is assigned as 0.The view matrix of the executed program spectrum will be obtained as
Spectra=[Insij]M×Nafter all the test cases are executed,whereInsijrepresents the value of the coverage probe,Mis the number of test cases,andNis the number of basic program units.
The TCAS program in the Siemens suite is selected as an experiment in this paper.The programs of the Siemens suite have been employed by many fault localizationrelated studies in their experiments(such as in[16]).All the correct and faulty versions of the programs(written in the C language)and test cases are downloaded from the software-artifact infrastructure repository[27].The TCAS program comes in 41 faulty versions,together with a reference implementation and 1 608 test cases,whose faults can be classifie into operandmutation,operatormutation, logic mutation,and code missing.Eight wrong versions of the program are selected as the experiment data in this paper.The output of fault localization contains the suspicion value of basic program units,highest fitnes value at each iteration,and optimal test case set.This experimentis mainly conducted in VC 6.0++.
4.1 Experiment design and specificatio
The fl wchart of the experiment is shown in Fig.2.After preprocessing,compiling,executing,and collecting information,the cost value is calculated by analyzing program dependency and view matrix of the program spectrum. Thus,the suspicion of each program unit is scored.The searching process ends when the iterations reach the maximum limit or the cost value of food source meets the requirements.The searching result is obtained,and the fault is located where the probe with the highest suspicion score lies.
Fig.2 Flowchart of the experiment
After analyzingthe programdependencyrelationshipof TCAS,several probes are instrumented manually in some basic program units.The structure of the inserted probes is shown in Fig.3.Thenumrecords the serial number of the probe,and the value records the variable values that the probe tracks.If no variable is to be tracked,the value will be set to 0.The pass records whether the basic program unit is covered while the program is being executed. Fourteen probes are inserted in TCAS to obtain program execution information in this experiment.
Fig.3 Structure of probes
To determine whether the test cases are executed successfully or not,the correct version of the program in the Siemens suite is also compiled and executed,and the expected outputs are obtained.The wrong versions with instrumented probes are then compiled and executed.Thetest result(success/failure)can be obtained by comparing the outputof the wrongversionswith the expectedoutputs.
After compiling and executing the program,the view matrix of the program spectrum can be obtained from the coverage information of the program units.The coverage information and results of the execution are input to the ABC algorithm to calculate the correlation coefficien and suspicion score of each basic program unit.The initial parameter setting of the ABC algorithm is shown in Fig.4.
Fig.4 Initial parameters of the ABC algorithm
Finally,the suspicion scores of the basic units are added to obtain the cost value of the current searching iteration.
If the fitnes value of the ABC algorithm,namely,the cost value of the food source,cannot meet the iterationstopping criterion,the local and global search for food sources will continue.The current test cases will be mutated in terms of rules set to create new test cases for executing the program.
4.2 Experimental results and analysis
The results of fault localization using the proposed approach are shown in Table 2,which reflect the accuracy of this experiment.Considering the wrong version 4 as an example,the fault is located in line 75,and probe 9 located in lines 73–76 has the highest suspicion score.
Table 2 Experimental results
The method proposed in this paper can successfully locate the fault position for all the above wrong versions. However,the locating efficien y,reflecte with the number of iterations,is not the same under different types of faults.The differences among each type of fault and the number of iterations are shown in Fig.5.
Fig.5 Number of iterations
Fig.5 shows that the number of iterations is relatively lower and the efficien y is high for the fault type of operator mutation.However,the efficien y is lower when dealing with the problem of operandmutation.The main cause of this phenomenon is the difference in exposure degrees of different types.The defects that are easy to expose have a high probability of leading to failure during execution of the test cases,so they are easily discovered.Meanwhile, defects that are hard to expose may not lead to failure; therefore,they need more test iterations to be determined.
The ABC algorithmand PSO algorithmare comparedto verifythe efficien yand superiorityof the ABC algorithm. As showninFig.6 andFig.7,the red-fille graphonthe left refersto theexperimentalresultsusing theABC algorithm, and the green-fille graph on the right refers to the experimental results using the PSO algorithm.The histograms are the results of fault localization,in which the horizontal axis shows the number of probes,and the vertical axis shows the suspicion scores.The curves show the growth trend of the fitnes value with the number of iterations,in which the horizontal axis shows the number of iterations, and the vertical axis shows the value of fitnes degree(the best cost value of food sources in each iteration).
Fig.6 shows the results of the experiment conductedwith wrong version 4.The contrast graphs show that the suspicion scores of the ABC algorithm are higher than those of PSO,which indicates that the fault exposure degree of test cases generated by the PSO algorithm is less than that by the ABC algorithm.The fitnes value of the ABC algorithm slowly rises in the firs ten iterations and then peaks quickly.By contrast,the PSO algorithm requires 35 iterations to reach the peak,which proves the efficien y of the ABC algorithm.
Fig.6 Contrast between ABC and PSO in the experiment of wrong version 4
Fig.7 shows the results of the experiment conducted with wrong version 29.The effect of fault localization of the ABC algorithm is great,whereas the fitnes value of PSO remains the same all the time.The PSO algorithm falls into the local optimum in the iterations so that it provides the same scores to probe 12 and probe 13.Probe 12 is not the correctfault location,whichindicates that the experiment using the PSO algorithm fails to locate the fault.
Fig.7 Contrast between ABC and PSO in the experiment of wrong version 29
In summary,the experimental results show that:
(i)The ABC algorithm can avoid the local optimum to the largest extent,so the faults can be located without the threat of local optimal searches.
(ii)Whensolvingthe problemofsoftware fault localization,the efficien y of the ABC algorithmis better than that of the PSO algorithm,which is known for being fast and efficient Therefore,the proposed method is effective and has great potential.
An approach adopting the ABC algorithm is proposed in this paper to locate software faults.First,the test cases areinput to the wrong versions of the program,which are instrumented with probes to obtain the execution data.The program execution information is then abstracted into the program spectrum to obtain the view matrix.Finally,according to the view matrix and results of program execution,the correlation coefficien of each basic unit is calculated.Combined with the analysis of the dependency relationship between program units,the fitnes value is obtained.
The Siemens suite,which is widely used in fault localization,is adopted in this study.The results show that the approach presented in this paper is effective and efficient The proposed method outperforms the PSO algorithm in terms of feasibility and efficien y.
Our future work will focus on implementing our proposedsoftwarefaultlocalizationmethodbasedontheABC algorithm in more complex software,which is a challenging topic in software debugging.
[1]I.Vessey.Expertise in debugging computer programs:a process analysis.International Journal of Man-Machine Studies, 1985,23(5):459–494.
[2]J.C.King.Symbolic execution and program testing.Communications of the ACM,1976,19(7):385–394.
[3]M.Young,R.N.Taylor.Combining static concurrency analysis with symbolic execution.IEEE Trans.on Software Engineering,1988,14(10):1499–1511.
[4]E.M.Clarke,J.M.Wing.Formal methods:state of the art and future directions.ACM Computing Surveys(CSUR),1996, 28(4):626–643.
[5]L.Hubert,T.Jensen,D.Pichardie.Semantic foundations and inference of non-null annotations.Formal Methods for Open Object Based Distributed Systems,2008,5051:132–149.
[6]Spoto F.Precise null-pointer analysis.Software&Systems Modeling,2011,10(2):219–252.
[7]M.Renieres,S.P.Reiss.Fault localization with nearest neighbor queries.Proc.of the 18th IEEE International Conference on Automated Software Engineering,2003:30–39.
[8]J.A.Jones,M.J.Harrold,J.Stasko.Visualization of test information to assist fault localization.Proc.of the 24th International Conference on Software Engineering,2002:467–477.
[9]K.Yu,M.Lin,Q.Gao,et al.Locating faults using multiple spectra-specifi models.Proc.of the ACM Symposium on Applied Computing,2011:1404–1410.
[10]X.P.Wang.Research on software fault localization based on execution trace.Computer Science,2009,36(10):168–166.
[11]R.Abreu,P.Zoeteweij,A.J.C.Van Gemund.On the accuracy of spectrum-based fault localization.Proc.of the Testing: Academic and Industrial Conference Practice and Research Techniques,2007:89–98.
[12]W.E.Wong,Y.Qi,L.Zhao,et al.Effective fault localization using code coverage.Proc.of the 31st IEEE Annual International Conference on Computer Software and Applications, 2007:449–456.
[13]W.E.Wong,T.Wei,Y.Qi,et al.A crosstab-based statistical method for effective fault localization.Proc.of International Conference on Software Testing Verificatio&Validation,2008:42–51.
[14]D.Hao,L.Zhang,Y.Pan,et al.On similarity-awareness in testing-based fault localization.Automated Software Engineering,2008,15(2):207–249.
[15]C.Liu,X.F.Yan,L.Fei,et al.SOBER:statisticalmodel-based bug localization.ACM SIGSOFT Software Engineering Notes, 2005,30(5):286–295.
[16]H.Cleve,A.Zeller.Locating causes of program failures.Proc. of the ACM 27th International Conference on Software Engineering,2005:342–351.
[17]R.P.Pargas,M.J.Harrold,R.R.Peck.Test-data generation using genetic algorithms.Software TestingVerificatio and Reliability,1999,9(4):263–282.
[18]D.Berndt,J.Fisher,L.Johnson,et al.Breeding software test cases with genetic algorithms.Proc.of the 36th IEEE Annual Hawaii International Conference on System Sciences,2003: 10.
[19]R.Zha,D.Zhang.An optimized software testing strategy based on ant colony algorithm.Computer Applications&Software,2011,28(12):151–155.
[20]J.Qi.Improved research of software test based on genetic algorithm and ant colony algorithm.Industrial Instrumentation&Automation,2013,6:112–116.
[21]D.Karaboga,B.Basturk.A powerful and efficien algorithm for numerical function optimization:artificia bee colony (ABC)algorithm.Journal of Global Optimization,39(3), 459–471.
[22]S.G.Qureshi,U.A.Ansari.Enhanced form of solving real coded numerical optimization problem using ABC algorithm with linear crossover operator.International Journal on Computer Science&Engineering,2012,4(6):1265–1270.
[23]F.S.Abu-Mouti,M.E.El-Hawary.Optimal distributed generation allocation and sizing in distribution systems via artificia bee colony algorithm.IEEE Trans.on Power Delivery,2011, 26(4):2090–2101.
[24]H.Nasiraghdam,S.Jadid.Optimal hybrid PV/WT/FC sizing and distribution system reconfiguratio using multi-objective artificia bee colony(MOABC)algorithm.Solar Energy,2012, 86(10):3057–3071.
[25]C.Xu,H.Duan.Artificia bee colony(ABC)optimized edge potential function(EPF)approach to target recognition for low-altitude aircraft.Pattern Recognition Letters,2010, 31(13):1759–1772.
[26]Y.Shi,R.C.Eberhart.Empirical study of particle swarm optimization.Proc.of the IEEE Congress on Evolutionary Computation,1999:32–49.
[27]Software-artifact infrastructure repository.http://sir.unl.edu/ portal/index.php.
Linzhi Huangwas born in 1991.She received her B.S.degree from Beihang University in 2013. Now she is pursuing her M.S.degree in the School of Reliability and Systems Engineering,Beihang University,Beijing,China,and she is also a member of Key Laboratory of Reliability and Environmental Engineering Technology,Beihang University.Her research interests include software reliability and complex networks.
E-mail:linzhihuang@buaa.edu.cn
Jun Aiwas born in 1978.He received his Ph.D.degree from Beihang University in 2006.He is currently an associate professor and Master’s supervisor at Beihang University,Beijing,China.His research interests include software failure mechanism, software complex networks,software defect data mining technology,software defect detection,diagnosis,forecast and localization technology,and system quality evaluation.
E-mail:aijun@buaa.edu.cn
10.1109/JSEE.2015.00145
Manuscript received January 22,2015.
*Corresponding author.
Journal of Systems Engineering and Electronics2015年6期