Font Size: a A A

Research On Software Fault Localization Based On Context Aware

Posted on:2019-11-06Degree:MasterType:Thesis
Country:ChinaCandidate:D LuoFull Text:PDF
GTID:2428330545964172Subject:Engineering
Abstract/Summary:PDF Full Text Request
Software testing is an effective way to reduce the risk of software under the circumstance of ever-expanding software scale,increasingly complicated system structure and gradually increasing project requirements.The technology of fault location is one of the important ways to avoid software failure or crash.Fault location is an integral part of unit testing,system testing and integration testing and it fixes potential defects by determining the error process,instructions or data definitions in the program.The problems that need to be improved in the current methods of software fault location are as follows: ignoring the internal dependencies in the program,consuming more resources and getting less efficiency;neglecting the logical relationships among program entities and paying less attention to the data state information that affects the cost of fault localization;with regard to software multi-fault positioning,the adopted method is difficult to calculate and the accuracy is limited.In order to solve these problems,the paper explores the technology of program slicing and the algorithms of data mining.It focuses on three context-aware aspects which include the program slicing technique that takes into account the internal dependencies,the data chain relations that take into account the changes of variables in the operating states and the multi-fault location that take into account the cluster analysis.The paper analyzes theoretically the influencing factors of fault positioning efficiency and establishes model to determine the realization of methods.The validity and correctness of the methods are verified through experiments.The research work of this paper includes:1.A software fault localization method based on variable slicing and association rules is proposed.For Java program,variable slicing is used to build the transaction database by utilizing slice location information.Sets of association rule are obtained through association analysis to generate the priority order of inspection statements and locate where the fault occurred.Experiments on five benchmark programs shows that the proposed method reduces the fault localization cost by at least 10% through comparing with the seven methods based on the coverage analysis,which improves the efficiency of fault localization and reduced the cost of software testing.2.A software fault localization method based on the relationship of data chain and information volume is proposed.After obtaining the data chain relation of Java program which contains single fault,the amount of information of each data chain relationship should be calculated by using the coverage information in the scenario of success and failure.Then the suspicion of each statement is derived and the order of suspicion is applied to generate the priority of check statements which could contribute to positioning fault.Experiments on four benchmark programs demonstrates that the fault localization cost is reduced by 6.35% on average through comparing with the seven methods based on the skeptic formula,which provides a solution for identifying the cause of the fault.3.A software multi-fault localization method based on path clustering and failure weighting is proposed.Running the complete test cases before the path matrix of execution trajectory is constructed.After classifying clusters by clustering analysis,the paper calculates the suspicion of statements through the formula of failure-weighted suspicion to troubleshoot multiple faults in the program.Experiments on four benchmark programs shows that the proposed method reduces the fault localization cost by 19.15% on average through comparing with the five equivalent evaluation function fault localization methods,which overcomes the computational complexity and improves the accuracy of multi-fault localization.4.The system of context-aware software fault locating is achieved.The system is modeled using the sequence diagram and interaction diagram in the Unified Modeling Language(UML).At the same time,the paper identifies faults in the program based on contextual information and develops a software fault localization system with single fault and multiple faults.
Keywords/Search Tags:fault location, variable slicing, data chain, path clustering
PDF Full Text Request
Related items