The document presents an interactive fault localization technique called TALK that leverages simple user feedback to improve upon existing static spectrum-based fault localization approaches. TALK iteratively updates its fault localization model based on user feedback on whether examined program elements are buggy or clean. An evaluation on 12 C programs found that TALK significantly improved fault localization accuracy over conventional techniques. The two main rules of TALK are identifying likely root causes of reported false positives and prioritizing elements covered in execution profiles with fewest covered elements.
Diversity Maximization Speedup for Fault LocalizationLiang Gong
Fault localization is useful for reducing debugging effort. However, many fault localization techniques require non-trivial number of test cases with oracles, which can determine whether a program behaves correctly for every test input. Test oracle creation is expensive because it can take much manual labeling effort. Given a number of test cases to be executed, it is challenging to minimize the number of test cases requiring manual labeling and in the meantime achieve good fault localization accuracy. To address this challenge, this paper presents a novel test case selection strategy based on Diversity Maximization Speedup (DMS). DMS orders a set of unlabeled test cases in a way that maximizes the effectiveness of a fault localization technique. Developers are only expected to label a much smaller number of test cases along this ordering to achieve good fault localization results. Our experiments with more than 250 bugs from the Software-artifact Infrastructure Repository show (1) that DMS can help existing fault localization techniques to achieve comparable accuracy with on average 67% fewer labeled test cases than previously best test case prioritization techniques, and (2) that given a labeling budget (i.e., a fixed number of labeled test cases), DMS can help existing fault localization techniques reduce their debugging cost (in terms of the amount of code needed to be inspected to locate faults). We conduct hypothesis test and show that the saving of the debugging cost we achieve for the real C programs are statistically significant.
Software analytics (for software quality purpose) is a statistical or machine learning classifier that is trained to identify defect-prone software modules. The goal of software analytics is to help software engineers prioritize their software testing effort on the most-risky modules and understand past pitfalls that lead to defective code. While the adoption of software analytics enables software organizations to distil actionable insights, there are still many barriers to broad and successful adoption of such analytics systems. Indeed, even if software organizations can access such invaluable software artifacts and toolkits for data analytics, researchers and practitioners often have little knowledge to properly develop analytics systems. Thus, the accuracy of the predictions and the insights that are derived from analytics systems is one of the most important challenges of data science in software engineering.
In this work, we conduct a series of empirical investigation to better understand the impact of experimental components (i.e., class mislabelling, parameter optimization of classification techniques, and model validation techniques) on the performance and interpretation of software analytics. To accelerate a large amount of compute-intensive experiment, we leverage the High-Performance-Computing (HPC) resources of Centre for Advanced Computing (CAC) from Queen’s University, Canada. Through case studies of systems that span both proprietary and open- source domains, we demonstrate that (1) realistic noise does not impact the precision of software analytics; (2) automated parameter optimization for classification techniques substantially improve the performance and stability of software analytics; and (3) the out-of- sample bootstrap validation technique produces a good balance between bias and variance of performance estimates. Our results lead us to conclude that the experimental components of analytics modelling impact the predictions and associated insights that are derived from software analytics. Empirical investigations on the impact of overlooked experimental components are needed to derive practical guidelines for analytics modelling.
Reliability is concerned with decreasing faults and their impact. The earlier the faults are detected the better. That's why this presentation talks about automated techniques using machine learning to detect faults as early as possible.
Diversity Maximization Speedup for Fault LocalizationLiang Gong
Fault localization is useful for reducing debugging effort. However, many fault localization techniques require non-trivial number of test cases with oracles, which can determine whether a program behaves correctly for every test input. Test oracle creation is expensive because it can take much manual labeling effort. Given a number of test cases to be executed, it is challenging to minimize the number of test cases requiring manual labeling and in the meantime achieve good fault localization accuracy. To address this challenge, this paper presents a novel test case selection strategy based on Diversity Maximization Speedup (DMS). DMS orders a set of unlabeled test cases in a way that maximizes the effectiveness of a fault localization technique. Developers are only expected to label a much smaller number of test cases along this ordering to achieve good fault localization results. Our experiments with more than 250 bugs from the Software-artifact Infrastructure Repository show (1) that DMS can help existing fault localization techniques to achieve comparable accuracy with on average 67% fewer labeled test cases than previously best test case prioritization techniques, and (2) that given a labeling budget (i.e., a fixed number of labeled test cases), DMS can help existing fault localization techniques reduce their debugging cost (in terms of the amount of code needed to be inspected to locate faults). We conduct hypothesis test and show that the saving of the debugging cost we achieve for the real C programs are statistically significant.
Software analytics (for software quality purpose) is a statistical or machine learning classifier that is trained to identify defect-prone software modules. The goal of software analytics is to help software engineers prioritize their software testing effort on the most-risky modules and understand past pitfalls that lead to defective code. While the adoption of software analytics enables software organizations to distil actionable insights, there are still many barriers to broad and successful adoption of such analytics systems. Indeed, even if software organizations can access such invaluable software artifacts and toolkits for data analytics, researchers and practitioners often have little knowledge to properly develop analytics systems. Thus, the accuracy of the predictions and the insights that are derived from analytics systems is one of the most important challenges of data science in software engineering.
In this work, we conduct a series of empirical investigation to better understand the impact of experimental components (i.e., class mislabelling, parameter optimization of classification techniques, and model validation techniques) on the performance and interpretation of software analytics. To accelerate a large amount of compute-intensive experiment, we leverage the High-Performance-Computing (HPC) resources of Centre for Advanced Computing (CAC) from Queen’s University, Canada. Through case studies of systems that span both proprietary and open- source domains, we demonstrate that (1) realistic noise does not impact the precision of software analytics; (2) automated parameter optimization for classification techniques substantially improve the performance and stability of software analytics; and (3) the out-of- sample bootstrap validation technique produces a good balance between bias and variance of performance estimates. Our results lead us to conclude that the experimental components of analytics modelling impact the predictions and associated insights that are derived from software analytics. Empirical investigations on the impact of overlooked experimental components are needed to derive practical guidelines for analytics modelling.
Reliability is concerned with decreasing faults and their impact. The earlier the faults are detected the better. That's why this presentation talks about automated techniques using machine learning to detect faults as early as possible.
Realtime, Non-Intrusive Evaluation of VoIP Using Genetic Programmingadil raja
Realtime, Non-Intrusive Evaluation of VoIP Using Genetic Programming
A presentation made and delivered for our entry in human competitive awards competition in GECCO 2007.
Software Defect Prediction Using Local and Global AnalysisEditor IJMTER
The software defect factors are used to measure the quality of the software. The software
effort estimation is used to measure the effort required for the software development process. The defect
factor makes an impact on the software development effort. Software development and cost factors are
also decided with reference to the defect and effort factors. The software defects are predicted with
reference to the module information. Module link information are used in the effort estimation process.
Data mining techniques are used in the software analysis process. Clustering techniques are used
in the property grouping process. Rule mining methods are used to learn rules from clustered data
values. The “WHERE” clustering scheme and “WHICH” rule mining scheme are used in the defect
prediction and effort estimation process. The system uses the module information for the defect
prediction and effort estimation process.
The proposed system is designed to improve the defect prediction and effort estimation process.
The Single Objective Genetic Algorithm (SOGA) is used in the clustering process. The rule learning
operations are carried out sing the Apriori algorithm. The system improves the cluster accuracy levels.
The defect prediction and effort estimation accuracy is also improved by the system. The system is
developed using the Java language and Oracle relation database environment.
To debug, programmers must first be able to identify exactly where the bugs are, which is known as fault localization. Basically, this approach aims at prioritizing the program code based on its suspicious levels. Thus, it allows the code segments which are more likely to contain bug to be examined first. In this talk, we present the fundamental techniques of fault localization, which include model-based, proof-based and spectrum-based techniques. In addition, we also give a demonstration of a self-developed online education tool to help students locate the potential root causes of the programming errors occurring in their exercises.
Industry-Academia Communication In Empirical Software EngineeringPer Runeson
Researchers in software engineering must communicate with industry practitioners, both engineers and managers. Communication may be about collaboration buy-in, problem identification, empirical data collection, solution design, evaluation, and reporting. In order to gain mutual benefit of the collaboration, ensuring relevant research and improved industry practice, researchers and practitioners must be good at communicating. The basis for a researcher to be good at industry-academia communication is firstly to be “bi-lingual”. Understanding and being able to translate between these “languages” is essential. Secondly, it is also about being “bi-cultural”.Understanding the incentives in industry and academia respectively, is a basis for being able to find balances between e.g. rigor and relevance in the research. Time frames is another aspect that is different in the two cultures. Thirdly, the choice of communication channels is key to reach the intended audience.A wide range of channels exist, from face to face meetings, via tweets and blogs, to academic journal papers and theses; each having its own audience and purposes. The keynote speech will explore the challenges of industry-academia communication, based on two decades of collaboration experiences, both successes and failures. It aims to support primarily the academic side of the communication to help achieving industry impact through rigorous and relevant empirical software engineering research.
The International Journal of Engineering and Science (IJES)theijes
The International Journal of Engineering & Science is aimed at providing a platform for researchers, engineers, scientists, or educators to publish their original research results, to exchange new ideas, to disseminate information in innovative designs, engineering experiences and technological skills. It is also the Journal's objective to promote engineering and technology education. All papers submitted to the Journal will be blind peer-reviewed. Only original articles will be published.
An Application-Oriented Approach for Computer Security EducationXiao Qin
In the past few years, numerous universities have incorporated computer security courses into their
undergraduate curricula. Recent studies show that students can effectively gain their knowledge and
experience in building secure computer systems by conducting course projects. However, existing
computer security laboratory exercises are comprised of small-scale, fragmented, and isolated course projects, making it inadequate to prepare undergraduate students to implement real-world secure computing systems. Conventional wisdom in designing computer security course projects pays little
attention to train students to assemble small building blocks into a large-scale secure computing and information system. To overcome students’ lack of experience in implementing large-scale secure software, we propose a novel application-oriented approach to teaching computer security courses by constructing course projects for computer security education. In this pilot project we will develop an extensible application framework for computer security course projects. The framework will provide valuable learning materials that can enable undergraduate students to gain unique experience of building large-scale trustworthy computer systems. Course projects are implemented as plugin modules of an application-based framework. After integrating all the security modules together in the framework, undergraduate students can experiment with various ways of implementing sophisticated
secure computer and information systems.
an error in that computer program. In order to improve the software quality, prediction of faulty modules is
necessary. Various Metric suites and techniques are available to predict the modules which are critical and
likely to be fault prone. Genetic Algorithm is a problem solving algorithm. It uses genetics as its model of
problem solving. It’s a search technique to find approximate solutions to optimization and search
problems.Genetic algorithm is applied for solving the problem of faulty module prediction and as well as
for finding the most important attribute for fault occurrence. In order to perform the analysis, performance
validation of the Genetic Algorithm using open source software jEdit is done. The results are measured in
terms Accuracy and Error in predicting by calculating probability of detection and probability of false
Alarms
The adoption of machine learning techniques for software defect prediction: A...RAKESH RANA
The adoption of machine learning techniques for software defect prediction: An initial industrial validation
Presented at:
11th Joint Conference On Knowledge-Based Software Engineering, JCKBSE, Volgograd, Russia, 2014
Get full text of publication at:
http://rakeshrana.website/index.php/work/publications/
Software analytics focuses on analyzing and modeling a rich source of software data using well-established data analytics techniques in order to glean actionable insights for improving development practices, productivity, and software quality. However, if care is not taken when analyzing and modeling software data, the predictions and insights that are derived from analytical models may be inaccurate and unreliable. The goal of this hands-on tutorial is to guide participants on how to (1) analyze software data using statistical techniques like correlation analysis, hypothesis testing, effect size analysis, and multiple comparisons, (2) develop accurate, reliable, and reproducible analytical models, (3) interpret the models to uncover relationships and insights, and (4) discuss pitfalls associated with analytical techniques including hands-on examples with real software data. R will be the primary programming language. Code samples will be available in a public GitHub repository. Participants will do exercises via either RStudio or Jupyter Notebook through Binder.
The reliability of a prediction model depends on the quality of the data from which it was trained. Therefore, defect prediction models may be unreliable if they are trained using noisy data. Recent research suggests that randomly-injected noise that changes the classification (label) of software modules from defective to clean (and vice versa) can impact the performance of defect models. Yet, in reality, incorrectly labelled (i.e., mislabelled) issue reports are likely non-random. In this paper, we study whether mislabelling is random, and the impact that realistic mislabelling has on the performance and interpretation of defect models. Through a case study of 3,931 manually-curated issue reports from the Apache Jackrabbit and Lucene systems, we find that: (1) issue report mislabelling is not random; (2) precision is rarely impacted by mislabelled issue reports, suggesting that practitioners can rely on the accuracy of modules labelled as defective by models that are trained using noisy data; (3) however, models trained on noisy data typically achieve 56%-68% of the recall of models trained on clean data; and (4) only the metrics in top influence rank of our defect models are robust to the noise introduced by mislabelling, suggesting that the less influential metrics of models that are trained on noisy data should not be interpreted or used to make decisions.
Software Quality Analysis Using Mutation Testing SchemeEditor IJMTER
The software test coverage is used measure the safety measures. The safety critical analysis is
carried out for the source code designed in Java language. Testing provides a primary means for
assuring software in safety-critical systems. To demonstrate, particularly to a certification authority, that
sufficient testing has been performed, it is necessary to achieve the test coverage levels recommended or
mandated by safety standards and industry guidelines. Mutation testing provides an alternative or
complementary method of measuring test sufficiency, but has not been widely adopted in the safetycritical industry. The system provides an empirical evaluation of the application of mutation testing to
airborne software systems which have already satisfied the coverage requirements for certification.
The system mutation testing to safety-critical software developed using high-integrity subsets of
C and Ada, identify the most effective mutant types and analyze the root causes of failures in test cases.
Mutation testing could be effective where traditional structural coverage analysis and manual peer
review have failed. They also show that several testing issues have origins beyond the test activity and
this suggests improvements to the requirements definition and coding process. The system also
examines the relationship between program characteristics and mutation survival and considers how
program size can provide a means for targeting test areas most likely to have dormant faults. Industry
feedback is also provided, particularly on how mutation testing can be integrated into a typical
verification life cycle of airborne software. The system also covers the safety and criticality levels of
Java source code.
Software engineering practitioners often spend significant amount of time and effort to debug. To help practitioners perform this crucial task, hundreds of papers have proposed various fault localization techniques. Fault localization helps practitioners to find the location of a defect given its symptoms (e.g., program failures). These localization techniques have pinpointed the locations of bugs of various systems of diverse sizes, with varying degrees of success, and for various usage scenarios. Unfortunately, it is unclear whether practitioners appreciate this line of research. To fill this gap, we performed an empirical study by surveying 386 practitioners from more than 30 countries across 5 continents about their expectations of research in fault localization. In particular, we investigated a number of factors that impact practitioners’ willingness to adopt a fault localization technique. We then compared what practitioners need and the current state-of-research by performing a literature review of papers on fault localization techniques published in ICSE, FSE, ESEC-FSE, ISSTA, TSE, and TOSEM in the last 5 years (2011-2015). From this comparison, we highlight the directions where researchers need to put effort to develop fault localization techniques that matter to practitioners.
Locating Crashing Faults based on Crash Stack TracesLiang Gong
Software crashes due to its increasing complexity. Once a crash happens, a crash report could be sent to software developers for investigation upon user permission. Because of the large number of crash reports and limited information, debugging for crashes is often a tedious and labor-intensive task. In this paper, we propose a statistical fault localization framework to help developers locate functions that contain crashing faults. We generate the execution traces for the failing traces based on the crash stack, and the passing traces from normal executions. We form program spectra by combining generated passing and failing trace, and then apply statistical fault localization techniques such as Ochiai to locate the crashing faults. We also propose two heuristics to improve the fault localization performance. We evaluate our approach using the real-world Firefox crash report data. The results show that the performance of our method is promising. Our approach permits developers to locate 63.9% crashing faults by examining only 5% Firefox 3.6 functions in the spectra.
Realtime, Non-Intrusive Evaluation of VoIP Using Genetic Programmingadil raja
Realtime, Non-Intrusive Evaluation of VoIP Using Genetic Programming
A presentation made and delivered for our entry in human competitive awards competition in GECCO 2007.
Software Defect Prediction Using Local and Global AnalysisEditor IJMTER
The software defect factors are used to measure the quality of the software. The software
effort estimation is used to measure the effort required for the software development process. The defect
factor makes an impact on the software development effort. Software development and cost factors are
also decided with reference to the defect and effort factors. The software defects are predicted with
reference to the module information. Module link information are used in the effort estimation process.
Data mining techniques are used in the software analysis process. Clustering techniques are used
in the property grouping process. Rule mining methods are used to learn rules from clustered data
values. The “WHERE” clustering scheme and “WHICH” rule mining scheme are used in the defect
prediction and effort estimation process. The system uses the module information for the defect
prediction and effort estimation process.
The proposed system is designed to improve the defect prediction and effort estimation process.
The Single Objective Genetic Algorithm (SOGA) is used in the clustering process. The rule learning
operations are carried out sing the Apriori algorithm. The system improves the cluster accuracy levels.
The defect prediction and effort estimation accuracy is also improved by the system. The system is
developed using the Java language and Oracle relation database environment.
To debug, programmers must first be able to identify exactly where the bugs are, which is known as fault localization. Basically, this approach aims at prioritizing the program code based on its suspicious levels. Thus, it allows the code segments which are more likely to contain bug to be examined first. In this talk, we present the fundamental techniques of fault localization, which include model-based, proof-based and spectrum-based techniques. In addition, we also give a demonstration of a self-developed online education tool to help students locate the potential root causes of the programming errors occurring in their exercises.
Industry-Academia Communication In Empirical Software EngineeringPer Runeson
Researchers in software engineering must communicate with industry practitioners, both engineers and managers. Communication may be about collaboration buy-in, problem identification, empirical data collection, solution design, evaluation, and reporting. In order to gain mutual benefit of the collaboration, ensuring relevant research and improved industry practice, researchers and practitioners must be good at communicating. The basis for a researcher to be good at industry-academia communication is firstly to be “bi-lingual”. Understanding and being able to translate between these “languages” is essential. Secondly, it is also about being “bi-cultural”.Understanding the incentives in industry and academia respectively, is a basis for being able to find balances between e.g. rigor and relevance in the research. Time frames is another aspect that is different in the two cultures. Thirdly, the choice of communication channels is key to reach the intended audience.A wide range of channels exist, from face to face meetings, via tweets and blogs, to academic journal papers and theses; each having its own audience and purposes. The keynote speech will explore the challenges of industry-academia communication, based on two decades of collaboration experiences, both successes and failures. It aims to support primarily the academic side of the communication to help achieving industry impact through rigorous and relevant empirical software engineering research.
The International Journal of Engineering and Science (IJES)theijes
The International Journal of Engineering & Science is aimed at providing a platform for researchers, engineers, scientists, or educators to publish their original research results, to exchange new ideas, to disseminate information in innovative designs, engineering experiences and technological skills. It is also the Journal's objective to promote engineering and technology education. All papers submitted to the Journal will be blind peer-reviewed. Only original articles will be published.
An Application-Oriented Approach for Computer Security EducationXiao Qin
In the past few years, numerous universities have incorporated computer security courses into their
undergraduate curricula. Recent studies show that students can effectively gain their knowledge and
experience in building secure computer systems by conducting course projects. However, existing
computer security laboratory exercises are comprised of small-scale, fragmented, and isolated course projects, making it inadequate to prepare undergraduate students to implement real-world secure computing systems. Conventional wisdom in designing computer security course projects pays little
attention to train students to assemble small building blocks into a large-scale secure computing and information system. To overcome students’ lack of experience in implementing large-scale secure software, we propose a novel application-oriented approach to teaching computer security courses by constructing course projects for computer security education. In this pilot project we will develop an extensible application framework for computer security course projects. The framework will provide valuable learning materials that can enable undergraduate students to gain unique experience of building large-scale trustworthy computer systems. Course projects are implemented as plugin modules of an application-based framework. After integrating all the security modules together in the framework, undergraduate students can experiment with various ways of implementing sophisticated
secure computer and information systems.
an error in that computer program. In order to improve the software quality, prediction of faulty modules is
necessary. Various Metric suites and techniques are available to predict the modules which are critical and
likely to be fault prone. Genetic Algorithm is a problem solving algorithm. It uses genetics as its model of
problem solving. It’s a search technique to find approximate solutions to optimization and search
problems.Genetic algorithm is applied for solving the problem of faulty module prediction and as well as
for finding the most important attribute for fault occurrence. In order to perform the analysis, performance
validation of the Genetic Algorithm using open source software jEdit is done. The results are measured in
terms Accuracy and Error in predicting by calculating probability of detection and probability of false
Alarms
The adoption of machine learning techniques for software defect prediction: A...RAKESH RANA
The adoption of machine learning techniques for software defect prediction: An initial industrial validation
Presented at:
11th Joint Conference On Knowledge-Based Software Engineering, JCKBSE, Volgograd, Russia, 2014
Get full text of publication at:
http://rakeshrana.website/index.php/work/publications/
Software analytics focuses on analyzing and modeling a rich source of software data using well-established data analytics techniques in order to glean actionable insights for improving development practices, productivity, and software quality. However, if care is not taken when analyzing and modeling software data, the predictions and insights that are derived from analytical models may be inaccurate and unreliable. The goal of this hands-on tutorial is to guide participants on how to (1) analyze software data using statistical techniques like correlation analysis, hypothesis testing, effect size analysis, and multiple comparisons, (2) develop accurate, reliable, and reproducible analytical models, (3) interpret the models to uncover relationships and insights, and (4) discuss pitfalls associated with analytical techniques including hands-on examples with real software data. R will be the primary programming language. Code samples will be available in a public GitHub repository. Participants will do exercises via either RStudio or Jupyter Notebook through Binder.
The reliability of a prediction model depends on the quality of the data from which it was trained. Therefore, defect prediction models may be unreliable if they are trained using noisy data. Recent research suggests that randomly-injected noise that changes the classification (label) of software modules from defective to clean (and vice versa) can impact the performance of defect models. Yet, in reality, incorrectly labelled (i.e., mislabelled) issue reports are likely non-random. In this paper, we study whether mislabelling is random, and the impact that realistic mislabelling has on the performance and interpretation of defect models. Through a case study of 3,931 manually-curated issue reports from the Apache Jackrabbit and Lucene systems, we find that: (1) issue report mislabelling is not random; (2) precision is rarely impacted by mislabelled issue reports, suggesting that practitioners can rely on the accuracy of modules labelled as defective by models that are trained using noisy data; (3) however, models trained on noisy data typically achieve 56%-68% of the recall of models trained on clean data; and (4) only the metrics in top influence rank of our defect models are robust to the noise introduced by mislabelling, suggesting that the less influential metrics of models that are trained on noisy data should not be interpreted or used to make decisions.
Software Quality Analysis Using Mutation Testing SchemeEditor IJMTER
The software test coverage is used measure the safety measures. The safety critical analysis is
carried out for the source code designed in Java language. Testing provides a primary means for
assuring software in safety-critical systems. To demonstrate, particularly to a certification authority, that
sufficient testing has been performed, it is necessary to achieve the test coverage levels recommended or
mandated by safety standards and industry guidelines. Mutation testing provides an alternative or
complementary method of measuring test sufficiency, but has not been widely adopted in the safetycritical industry. The system provides an empirical evaluation of the application of mutation testing to
airborne software systems which have already satisfied the coverage requirements for certification.
The system mutation testing to safety-critical software developed using high-integrity subsets of
C and Ada, identify the most effective mutant types and analyze the root causes of failures in test cases.
Mutation testing could be effective where traditional structural coverage analysis and manual peer
review have failed. They also show that several testing issues have origins beyond the test activity and
this suggests improvements to the requirements definition and coding process. The system also
examines the relationship between program characteristics and mutation survival and considers how
program size can provide a means for targeting test areas most likely to have dormant faults. Industry
feedback is also provided, particularly on how mutation testing can be integrated into a typical
verification life cycle of airborne software. The system also covers the safety and criticality levels of
Java source code.
Software engineering practitioners often spend significant amount of time and effort to debug. To help practitioners perform this crucial task, hundreds of papers have proposed various fault localization techniques. Fault localization helps practitioners to find the location of a defect given its symptoms (e.g., program failures). These localization techniques have pinpointed the locations of bugs of various systems of diverse sizes, with varying degrees of success, and for various usage scenarios. Unfortunately, it is unclear whether practitioners appreciate this line of research. To fill this gap, we performed an empirical study by surveying 386 practitioners from more than 30 countries across 5 continents about their expectations of research in fault localization. In particular, we investigated a number of factors that impact practitioners’ willingness to adopt a fault localization technique. We then compared what practitioners need and the current state-of-research by performing a literature review of papers on fault localization techniques published in ICSE, FSE, ESEC-FSE, ISSTA, TSE, and TOSEM in the last 5 years (2011-2015). From this comparison, we highlight the directions where researchers need to put effort to develop fault localization techniques that matter to practitioners.
Locating Crashing Faults based on Crash Stack TracesLiang Gong
Software crashes due to its increasing complexity. Once a crash happens, a crash report could be sent to software developers for investigation upon user permission. Because of the large number of crash reports and limited information, debugging for crashes is often a tedious and labor-intensive task. In this paper, we propose a statistical fault localization framework to help developers locate functions that contain crashing faults. We generate the execution traces for the failing traces based on the crash stack, and the passing traces from normal executions. We form program spectra by combining generated passing and failing trace, and then apply statistical fault localization techniques such as Ochiai to locate the crashing faults. We also propose two heuristics to improve the fault localization performance. We evaluate our approach using the real-world Firefox crash report data. The results show that the performance of our method is promising. Our approach permits developers to locate 63.9% crashing faults by examining only 5% Firefox 3.6 functions in the spectra.
Statistical debuging for programs written in dynamic programming language rubyAdeel Akhter
The Statistical debugging technique sketch out the program’s source code to gather data flow, program flows, program state trace information and then perform the statistical analysis on collected information to figure out the bug traces.
Instrumentation is a process of predicates insertion with in the source code.
Analysis of instrumented code will provide the visualization of buggy areas with in the source code.
The aim of this study is to investigate existing statistical debugging techniques for programs coded in modern dynamic programming languages like Ruby.
Evaluating the Usefulness of IR-Based Fault LocalizationTechniquesAlex Orso
Software debugging is tedious and time consuming. To reduce the manual effort needed for debugging, researchers have proposed a considerable number of techniques to automate the process of fault localization; in particular, techniques based on information retrieval (IR) have drawn increased attention in recent years. Although reportedly effective, these techniques have some potential limitations that may affect their performance. First, their effectiveness is likely to depend heavily on the quality of the bug reports; unfortunately, high-quality bug reports that contain rich information are not always available. Second, these techniques have not been evaluated through studies that involve actual developers, which is less than ideal, as purely analytical evaluations can hardly show the actual usefulness of debugging techniques. The goal of this work is to evaluate the usefulness of IR-based techniques in real-world scenarios. Our investigation shows that bug reports do not always contain rich information, and that low-quality bug reports can considerably affect the effectiveness of these techniques. Our research also shows, through a user study, that high-quality bug reports benefit developers just as much as they benefit IR-based techniques. In fact, the information provided by IR-based techniques when operating on high-quality reports is only helpful to developers in a limited number of cases. And even in these cases, such information only helps developers get to the faulty file quickly, but does not help them in their most time consuming task: understanding and fixing the bug within that file.
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...Debdoot Mukherjee
There has been widespread interest in both academia and industry around techniques to help in fault localization. Much of this work leverages static or dynamic code analysis and hence is constrained by the programming language used or presence of test cases. In order to provide more generically applicable techniques, recent work has focused on devising text search based approaches that recommend source files which a developer can modify to fix a bug. Text search may be used for fault localization in either of the following ways. We can search a repository of past bugs with the bug description to find similar bugs and recommend the source files that were modified to fix those bugs. Alternately, we can directly search the code repository to find source files that share words with the bug report text. Few interesting questions come to mind when we consider applying these text-based search techniques in real projects. For example, would searching on past fixed bugs yield better results than searching on code? What is the accuracy one can expect? Would giving preference to code words in the bug report better the search results? In this paper, we apply variants of text-search on four open source projects and compare the impact of different design considerations on search efficacy.
We introduce in this paper a new flow-driven and constraint-based approach for error localization. The input is a faulty program for which a counter-example and a postcondition are provided. To identify helpful information for error location, we generate a constraint system for the paths of the control flow graph for which at most k conditional statements may be erroneous. Then, we calculate Minimal Correction Sets (MCS) of bounded size for each of these paths. The removal of one of these sets of constraints yields a maximal satisfiable subset, in other words, a maximal subset of constraints satisfying the post condition. To compute the MCS, we extend the algorithm proposed by Liffiton and Sakallah in order to handle programs with numerical statements more efficiently. The main advantage of this flow-driven approach is that the computed sets of suspicious instructions are small, each of them being associated to an identified path. Moreover, the constraint-programming based framework allows mixing Boolean and numerical constraints in an efficient and straightforward way. Preliminary experiments are quite encouraging.
This is an updated version of the opening talk I gave on February 4, 2013 at the Dagstuhl Seminar on Fault Prediction, Localization, and Repair (http://goo.gl/vc6Cl).
Abstract: Software debugging, which involves localizing, understanding, and removing the cause of a failure, is a notoriously difficult, extremely time consuming, and human-intensive activity. For this reason, researchers have invested a great deal of effort in developing automated techniques and tools for supporting various debugging tasks. Although potentially useful, most of these techniques have yet to fully demonstrate their practical effectiveness. Moreover, many current debugging approaches suffer from some common limitations and rely on several strong assumptions on both the characteristics of the code being debugged and how developers behave when debugging such code. This talk provides an overview of the state of the art in the broader area of software debugging, discuss strengths and weaknesses of the main existing debugging techniques, present a set of open challenges in this area, and sketch future research directions that may help address these challenges.
The second part of the talk discusses joint work with Chris Parnin presented at ISSTA 2011: C. Parnin and A. Orso, "Are Automated Debugging Techniques Actually Helping Programmers?", in Proceedings of the International Symposium on Software Testing and Analysis (ISSTA 2011), pp 199-209, http://doi.acm.org/10.1145/2001420.2001445
178 - A replicated study on duplicate detection: Using Apache Lucene to searc...ESEM 2014
Context: Duplicate detection is a fundamental part of issue management. Systems able to predict whether a new defect report will be closed as a duplicate, may decrease costs by limiting rework and collecting related pieces of information. Goal: Our work explores using Apache Lucene for large- scale duplicate detection based on textual content. Also, we evaluate the previous claim that results are improved if the title is weighted as more important than the description. Method: We conduct a conceptual replication of a well-cited study conducted at Sony Ericsson, using Lucene for searching in the public Android defect repository. In line with the original study, we explore how varying the weight- ing of the title and the description affects the accuracy. Results: We show that Lucene obtains the best results when the defect report title is weighted three times higher than the description, a bigger difference than has been previously acknowledged. Conclusions: Our work shows the potential of using Lucene as a scalable solution for duplicate detection.
SURVEY ON LINK LAYER ATTACKS IN COGNITIVE RADIO NETWORKSijcseit
Cognitive Radio Network (CRNs) is a novel technology for improving the future bandwidth utilization.
CRNs have many security threats due its opportunistic exploitation of the bandwidth. Each layer of the
CRNs consisting of several attacks starting from the physical layer and moving up to the transport layer.
This paper concentrates on the Link layer attacks. The future work uses Signature based Authentication
Coded Intrusion Detection Scheme to detect the Byzantine attack. It works in asynchronous system like
Internet and incorporates optimization to improve detection response time.
According to my previous slide share, Introduction to software engineering, http://www.slideshare.net/ssuser45a683/introduction-to-software-engineering-48462625. I would like to expand further in part of software testing.
Software testing is vital, no less than software development. It can be said that software testing should be the same level as software development.
The content of this slide will discuss the meaning of software testing. The importance of software and concepts of software testing.
A Large-Scale Empirical Comparison of Static and DynamicTest Case Prioritizat...Kevin Moran
The large body of existing research in Test Case Prioritization (TCP) techniques, can be broadly classified into two categories: dynamic techniques (that rely on run-time execution information) and static techniques (that operate directly on source and test code). Absent from this current body of work is a comprehensive study aimed at understanding and evaluating the static approaches and comparing them to dynamic approaches on a large set of projects.
In this work, we perform the first extensive study aimed at empirically evaluating four static TCP techniques comparing them with state-of-research dynamic TCP techniques at different test-case granularities (e.g., method and class level) in terms of effectiveness, efficiency and similarity of faults detected. This study was performed on 30 real-word Java programs encompassing 431 KLoC. In terms of effectiveness, we find that the static call-graph based technique outperforms the other static techniques at test-class level, but the topic-model-based technique performs better at test-method level. In terms of efficiency, the static call-graph based technique is also the most efficient when compared to other static techniques. When examining the similarity of faults detected for the four static techniques compared to the four dynamic ones, we find that on average, the faults uncovered by these two groups of techniques are quite dissimilar, with the top 10% of test cases agreeing on only ~ 25% - 30% of detected faults. This prompts further research into the severity/importance of faults uncovered by these techniques, and into the potential for combining static and dynamic information for more effective approaches.
A Complexity Based Regression Test Selection StrategyCSEIJJournal
Software is unequivocally the foremost and indispensable entity in this technologically driven world.
Therefore quality assurance, and in particular, software testing is a crucial step in the software
development cycle. This paper presents an effective test selection strategy that uses a Spectrum of
Complexity Metrics (SCM). Our aim in this paper is to increase the efficiency of the testing process by
significantly reducing the number of test cases without having a significant drop in test effectiveness. The
strategy makes use of a comprehensive taxonomy of complexity metrics based on the product level (class,
method, statement) and its characteristics.We use a series of experiments based on three applications with
a significant number of mutants to demonstrate the effectiveness of our selection strategy.For further
evaluation, we compareour approach to boundary value analysis. The results show the capability of our
approach to detect mutants as well as the seeded errors.
Optimal Selection of Software Reliability Growth Model-A StudyIJEEE
People use software and sometime software fails.so they try to quantify software reliability and try to understand how and why it fails.For this purpose so many software Reliability models have been developed to estimate the defects in the software while delivering it to the customer.Till now so many software Reliability models have been developed,but main issue is that it remain largely unsolved that how to calculate software reliability efficiently.In everycircumstance we cannotuse one model because no single model can completely represent all features.This paper describes the circumstances and criteria under which particular model can be selected.
Taking Open Source Security to the Next LevelWhiteSource
Join us for a webinar featuring Forrester VP and Research Director Amy DeMartine to learn more about why open source security has become critical for securing modern applications, the main considerations when evaluating an open source security and license compliance solution and what she sees in store for the future.
Additionally, WhiteSource Senior Director of Product Marketing, Jeff Crum, will discuss recent analysis of the Software Composition Analysis (SCA) market, including takeaways from The Forrester Wave™: Software Composition Analysis, Q2 2019.
Software Testing and Quality Assurance Assignment 2Gurpreet singh
Short questions :
Q1: What is stress testing?
Q2: What is Cyclomatic complexity?
Q3: Define Object Oriented Testing
Q4: What is regression testing? When it is done?
Q5: How loop testing is different from the path testing?
Q6: What is client server environment?
Q7: What is graph based testing?
Q8: How security testing is useful in real applications?
Q9: What are main characteristics of real time system?
Q10: What are the benefits of data flow testing?
Long Questions:
Q1: Design test case for: ERP, Traffic controller and university management system?
Q2: Assuming a real time system of your choice, discuss the concepts. Analysis and design factors of same, elaborate
Q3: How testing in multiplatform environment is performed?
Q4: Explain graph based testing in detail
Q5: Differentiate between Equivalence partitioning and boundary value analysis
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...Pavneet Singh Kochhar
In this paper, we analyse two large software systems to
measure the relationship of code coverage and its effectiveness in killing real bugs from the software systems.
Sensors, threats, responses and challenges - Dr Emil Lupu (Imperial College L...Comit Projects Ltd
Presentation by Dr Emil Lupu (Imperial College London)at COMIT 2016: Digitally Building Britain, September 2016
More information: http://www.comit.org.uk/liveblog
Similar to Interactive fault localization leveraging simple user feedback - by Liang Gong (20)
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Interactive fault localization leveraging simple user feedback - by Liang Gong
1. Interactive Fault Localization
Leveraging Simple User Feedback
Liang Gong1, David Lo2, Lingxiao Jiang2, and Hongyu Zhang1
Funded by
1
Tsinghua University
2
Singapore Management University
3. Diversity Maximization Speedup
Interactive Fault Localization
Leveraging Simple User Feedback
for Fault Localization
Debugging
Software errors cost the US economy
59.5 billion dollars (0.6% of 2002's GDP) [1]
Testing and debugging activities are
labor-intensive (30% to 90% of a Project) [2]
Problem
Presented by
Liang Gong
School of Software
Tsinghua University
[1] National Institute of Standards and Technology (NIST). Software Errors Cost
U.S. Economy $59.5 Billion Annually, June 28, 2002.
[2] B. Beizer. Software Testing Techniques. International Thomson Computer
Press, Boston, 2nd edition, 1990.
4. Diversity Maximization Speedup
Interactive Fault Localization
Leveraging Simple User Feedback
for Fault Localization
Spectrum-based Fault Localization(abbr. SBFL)
• Automatically recommend a list of suspicious
program elements for inspection.
SBFL
Introduction
• Program Spectra consists of coverage information
and execution labels.
Program Spectra
Coverage information of one
element (si) in all executions
Profile of an execution trace
Correct or incorrect?
5. Diversity Maximization Speedup
Interactive Fault Localization
Leveraging Simple User Feedback
for Fault Localization
For a given statement S
The formula
Tarantula calculates the suspiciousness of S.
No. of failed traces covering S
Approaches
Fault Localization
Ochiai
No. of failed traces
Jaccard
Presented by
Liang Gong
School of Software
Tsinghua University
No. of traces covering S
Intuition: If S is covered more in failed traces
and less in passed traces, it is more likely to
contain faults.
6. Diversity Maximization Speedup
Interactive Fault Localization
Leveraging Simple User Feedback
for Fault Localization
Program Goal:
Research Spectra
Process
Motivation
Fault Localization
Techniques
• An interactive fault localization
method leveraging user feedback
• Requires trivial or no additional effort
Developer
Static List of
Suspicious Elements
Batch Mode Fault Localization
No feedback from human is utilized.
Presented by
Liang Gong
School of Software
Tsinghua University
7. Diversity Maximization Speedup
Interactive Fault Localization
Leveraging Simple User Feedback
for Fault Localization
FaulT LocAlization Leveraging
User FeedbacK (TALK)
Our Method
Introduction
• Interactively and iteratively updates
model according to feedback
• Leveraging only simple feedback
• one-size-fits-all approach
Presented by
Liang Gong
School of Software
Tsinghua University
8. Diversity Maximization Speedup
Interactive Fault Localization
Leveraging Simple User Feedback
for Fault Localization
Process
Program Spectra
Feedback
Motivation
Fault Localization
Techniques
Developer
Interactive List of
Suspicious Elements
Interactive Fault Localization
Presented by
Liang Gong
School of Software
Tsinghua University
9. Diversity Maximization Speedup
Interactive Fault Localization
Leveraging Simple User Feedback
for Fault Localization
How to provide feedback which
requires trivial additional effort?
No.
Feedback
Opportunities
Susp.
S12
S11
S8
S9
S5
0.756
0.707
0.671
0.667
0.603
Program Element
other += 1;}
else if(isprint(c))
let += 1;
else if('0'<=c && '9'>c)
if('A'<=c && 'Z'>=c)
Proposed Inspection List (interactive)
Conventional Inspection List (static)
Presented by
Liang Gong
School of Software
Tsinghua University
Buggy?
Commit
When developer examine the inspection list, they
must judge if those statements are clean or faulty.
10. Diversity Maximization Speedup
Interactive Fault Localization
Leveraging Simple User Feedback
for Fault Localization
With provided feedback, how to improve
fault localization accuracy?
Once a false positive(symptom) has been found
Find the likely root cause for that symptom
Feedback
How to utilize ?
Adjust the suspiciousness of root cause and re-rank
No.
Susp.
S12
S11
S8
S9
S5
0.756
0.707
0.671
0.667
0.603
Program Element
Buggy?
other += 1;}
else if(isprint(c))
let += 1;
else if('0'<=c && '9'>c)
if('A'<=c && 'Z'>=c)
likely root cause
Presented by
Liang Gong
School of Software
Tsinghua University
11. Diversity Maximization Speedup
Interactive Fault Localization
Leveraging Simple User Feedback
for Fault Localization
How to find the likely root cause of a symptom?
Investigating co-occurrences of program elements in
failed executions to identify root cause candidate
Root Cause
How to find ?
t1
t2
t3
…
…
…
…
s1
s2
s3
s4
s5
s6
…
…
…
…
p/f
fail
fail
pass
False positive (Symptom)
Intuition: If s3 has been identified as false positive,
Presented by
Liang Gong
School of Software
Tsinghua University
then s2 is more likely to be the root cause than s1.
As s2 co-appears more with s3 in failed traces.
12. Diversity Maximization Speedup
Interactive Fault Localization
Leveraging Simple User Feedback
for Fault Localization
Identifying a Root Cause from Its Symptom.
• Evaluate the co-appearance score of
statements (root cause candidate)
Rule: R1
Detailed Approach
Co-appearance from traces covering
less statements weights higher
• Select candidate with most co-appearance score
as the root cause
Presented by
Liang Gong
School of Software
Tsinghua University
Intuition: Statements co-appeared more with
symptom in failed traces covering less statements
are more likely to be chosen as the root cause.
13. With the spectra T and symptom S, and how to
Diversity Maximization Speedup
for Fault Localization
the suspiciousness score of the root cause Sr ?
Consists of all traces covering root cause Sr
adjust
If Sr is the real root cause,
then fT(Sr)(s) be very HIGH.
split
Test Case
Prioritization
introduction
Spectra T(Sr)
Suspiciousness
of Symptom: fT(Sr)(s)
fT(Sr)(s) - fT(Sr)(s)
Spectra T
Spectra T(Sr)
Presented by
Liang Gong
Consists of all traces
not covering root cause Sr
School of Software
Tsinghua University
The larger this metric is,
the more suspiciousness
Suspiciousness
score Sr will get.
of Symptom: fT(Sr)(s)
If Sr is the real root cause,
then fT(Sr)(s) be very LOW
14. Diversity Maximization Speedup
Interactive Fault Localization
Leveraging Simple User Feedback
for Fault Localization
Rule: R1
Detailed Approach
Presented by
Liang Gong
School of Software
Tsinghua University
With the symptom, how to adjust the
suspiciousness score of the root cause?
• Calculate the suspiciousness difference of symptom
in spectra covering and not covering root cause.
• Contribute the suspiciousness difference of symptom
to the suspiciousness of its root cause
Intuition: If the suspiciousness of symptom becomes
larger when root cause is covered, the root cause is
more suspicious.
15. Diversity Maximization Speedup
Interactive Fault Localization
Leveraging Simple User Feedback
for Fault Localization
Rule 2
Focusing on a Single Failed Execution Profile
t1
t2
t3
…
…
…
…
s1
s2
s3
s4
s5
s6
…
…
…
…
p/f
fail
fail
pass
In this case, focusing on statements covered by
t1 will quickly identify at least one bug. As only
two statements have to be examined.
Introduction
•
Find out the failed profile tmin covering
the least number of unexamined elements.
•
For each program element si that is covered in tmin
Presented by
Liang Gong
School of Software
Tsinghua University
A constant making sure that statements
covered by tmin are examined first.
16. Diversity Maximization Speedup
Interactive Fault Localization
Leveraging Simple User Feedback
for Fault Localization
Initial Process: Conventional
Fault Localization
Processing
Overall
False Positive
with Rule
Algorithm1
Introduction
If a bug has been confirmed,
record it for Rule 2
Apply Rule 2
Presented by
Liang Gong
School of Software
Tsinghua University
Processing
Feedback
17. Diversity Maximization Speedup
Interactive Fault Localization
Leveraging Simple User Feedback
for Fault Localization
Benchmarks for Fault Localization
1
Experiment
Dataset &
Evaluation Metric
2
1 Siemens Suite
2 UNIX Programs
Evaluation Metric for Fault Localization:
Presented by
Liang Gong
School of Software
Tsinghua University
18. Diversity Maximization Speedup
Interactive Fault Localization
Leveraging Simple User Feedback
for Fault Localization
Research Questions Investigated:
Experiment
Research Questions
Presented by
Liang Gong
School of Software
Tsinghua University
Is user feedback helpful for improving
fault localization accuracy?
What is the relative effectiveness
of the two rules to improve fault
localization?
19. Diversity Maximization Speedup
Interactive Fault Localization
Leveraging Simple User Feedback
for Fault Localization
Conventional Fault Localization Technique
f
Interactive Fault Localization Technique f+
f+ vs f
f+ requires 40% less debugging cost
than f on faulty version 4
Comparison
Introduction
Presented by
Liang Gong
School of Software
Tsinghua University
f+ requires 30% more debugging cost
than f on faulty version 2
20. Diversity Maximization Speedup
for Fault Localization
Improvement of TALK on Existing Methods
Test Case
Prioritization
introduction
Ochiai+ vs Ochiai
Presented by
Liang Gong
School of Software
Tsinghua University
Jaccard+ vs Jaccard
Tarantula+ vs Tarantula
Pair-wised T-test shows the improvements are
statistically significant at 95% interval.
21. Diversity Maximization Speedup
Interactive Fault Localization
Leveraging Simple User Feedback
for Fault Localization
Research Questions Investigated:
Experiment
Research Questions
Presented by
Liang Gong
School of Software
Tsinghua University
Is user feedback helpful for improving
fault localization accuracy?
What is the relative effectiveness
of the two rules to improve fault
localization?
22. Contributions of R1 and R2
Diversity Maximization Speedup
for Fault Localization
on Improving Fault Localization Effectiveness
Test Case
Prioritization
introduction
Improvement from R1
Presented by
Liang Gong
School of Software
Tsinghua University
Improvement from R2
Improvement from R1 + R2
23. Diversity Maximization Speedup
Interactive Fault Localization
for Fault Localization
Leveraging Simple User Feedback
Fault Localization (state-of-the-arts)
Related Works
Introduction
WHITHER[Renieris and Reiss]
Liblit05[Liblit]
Delta Debugging[Zeller]
Tarantula[Harrold], Ochiai etc.
Interactive Fault Localization
Hao et al. propose an technique [JCST]
Record sequential execution trace
Judge whether the fault is executed before or after
the checking point.
Presented by
Liang Gong
School of Software
Tsinghua University
Lucia et al. adopt user feedback for clone-based bug
detection approaches [ICSE 12]
Insa et al. propose a strategy for algorithmic
debugging which asks user questions concerning
program state. [ASE 11]
24. Diversity Maximization Speedup
Interactive Fault Localization
for Fault Localization
Leveraging Simple User Feedback
Threats to
Validity
Construct Validity (Evaluation Metric)
We use a cost metric that has been utilized to
evaluate past fault localization techniques. We
believe this is a fair and well-accepted metric.
External Validity (Generalizability)
All of subjects are written in C. In the future,
we plan to investigate more programs written
in various programming languages.
What if user provides a wrong feedback?
Presented by
Liang Gong
School of Software
Tsinghua University
25. Diversity Maximization Speedup
Interactive Fault Localization
for Fault Localization
Leveraging Simple User Feedback
What if user provides a wrong feedback?
Since we use simple feedbacks,
mistakes can only be:
Threats to
Validity
Clean Statement labeled as Faulty
In this case, when developers try to fix the
“bug”, they will realize their mistake.
Faulty Statement labeled as Clean
Most fault localization techniques are evaluated
by assuming a user is always correct when
ascertaining if an element is buggy or correct.
Presented by
Liang Gong
School of Software
Tsinghua University
In future: Allow users to rollback their
feedback if they made mistakes.
26. Diversity Maximization Speedup
Interactive Fault Localization
for Fault Localization
Leveraging Simple User Feedback
• Conclusions
A novel interactive method TALK for fault localization:
TALK leverages user feedback while limits the
additional manual cost incurred.
Conclusion
& Future Work
TALK is a one-size-fits-all approach that can be
applied to most existing static SBFL techniques.
Thank you!
Empirical studies on 12 C programs shows that TALK
can help to significantly improve the fault localization
accuracy.
•• Any questions?
Future Work
...
• Evaluate on more subject programs.
• Try different strategies to further utilize user feedback
Presented by
Liang Gong
School of Software
Tsinghua University
• Enhance TALK by allowing users to rollback their
feedback if they made mistakes