C4.5: programs for machine learning
C4.5: programs for machine learning
Experimentation in software engineering: an introduction
Experimentation in software engineering: an introduction
Diagnosing Rediscovered Software Problems Using Symptoms
IEEE Transactions on Software Engineering
Mutation 2000: uniting the orthogonal
Mutation testing for the new century
Automated support for classifying software failure reports
Proceedings of the 25th International Conference on Software Engineering
Active learning for automatic classification of software behavior
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
Locating causes of program failures
Proceedings of the 27th international conference on Software engineering
Is mutation an appropriate tool for testing experiments?
Proceedings of the 27th international conference on Software engineering
Scalable statistical bug isolation
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Predicting the Location and Number of Faults in Large Software Systems
IEEE Transactions on Software Engineering
Quickly Finding Known Software Problems via Automated Symptom Matching
ICAC '05 Proceedings of the Second International Conference on Automatic Computing
SOBER: statistical model-based bug localization
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Empirical Software Engineering
The Vital Few Versus the Trivial Many: Examining the Pareto Principle for Software
COMPSAC '05 Proceedings of the 29th Annual International Computer Software and Applications Conference - Volume 01
Empirical evaluation of the tarantula automatic fault-localization technique
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
A similarity-aware approach to testing based fault localization
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Effective program debugging based on execution slices and inter-block data dependency
Journal of Systems and Software - Special issue: Selected papers from the 11th Asia Pacific software engineering conference (APSEC 2004)
An empirical analysis and comparison of random testing techniques
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
Failure proximity: a fault localization-based approach
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Discriminative pattern mining in software fault detection
Proceedings of the 3rd international workshop on Software quality assurance
Using Mutation Analysis for Assessing and Comparing Testing Coverage Criteria
IEEE Transactions on Software Engineering
On the Use of Mutation Faults in Empirical Assessments of Test Case Prioritization Techniques
IEEE Transactions on Software Engineering
Techniques for Classifying Executions of Deployed Software to Support Software Engineering Tasks
IEEE Transactions on Software Engineering
Trace anomalies as precursors of field failures: an empirical study
Empirical Software Engineering
Effective Fault Localization using Code Coverage
COMPSAC '07 Proceedings of the 31st Annual International Computer Software and Applications Conference - Volume 01
A Crosstab-based Statistical Method for Effective Fault Localization
ICST '08 Proceedings of the 2008 International Conference on Software Testing, Verification, and Validation
Expert Systems with Applications: An International Journal
HOLMES: Effective statistical debugging via efficient path profiling
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Lightweight fault-localization using multiple coverage types
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Capturing propagation of infected program states
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Using Mutation to Automatically Suggest Fixes for Faulty Programs
ICST '10 Proceedings of the 2010 Third International Conference on Software Testing, Verification and Validation
Does testing help to reduce the number of potentially faulty statements in debugging?
TAIC PART'10 Proceedings of the 5th international academic and industrial conference on Testing - practice and research techniques
Proceedings of the 2010 Conference of the Center for Advanced Studies on Collaborative Research
Diagnosing new faults using mutants and prior faults (NIER track)
Proceedings of the 33rd International Conference on Software Engineering
Cause clue clauses: error localization using maximum satisfiability
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
An Analysis and Survey of the Development of Mutation Testing
IEEE Transactions on Software Engineering
Lightweight defect localization for java
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
On the Comparison of User Space and Kernel Space Traces in Identification of Software Anomalies
CSMR '12 Proceedings of the 2012 16th European Conference on Software Maintenance and Reengineering
Using Mutants to Locate "Unknown" Faults
ICST '12 Proceedings of the 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation
Injecting mechanical faults to localize developer faults for evolving software
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Hi-index | 0.00 |
Debugging deployed systems is an arduous and time consuming task. It is often difficult to generate traces from deployed systems due to the disturbance and overhead that trace collection may cause on a system in operation. Many organizations also do not keep historical traces of failures. On the other hand earlier techniques focusing on fault diagnosis in deployed systems require a collection of passing-failing traces, in-house reproduction of faults or a historical collection of failed traces. In this paper, we investigate an alternative solution. We investigate how artificial faults, generated using software mutation in test environment, can be used to diagnose actual faults in deployed software systems. The use of traces of artificial faults can provide relief when it is not feasible to collect different kinds of traces from deployed systems. Using artificial and actual faults we also investigate the similarity of function call traces of different faults in functions. To achieve our goal, we use decision trees to build a model of traces generated from mutants and test it on faulty traces generated from actual programs. The application of our approach to various real world programs shows that mutants can indeed be used to diagnose faulty functions in the original code with approximately 60-100% accuracy on reviewing 10% or less of the code; whereas, contemporary techniques using pass-fail traces show poor results in the context of software maintenance. Our results also show that different faults in closely related functions occur with similar function call traces. The use of mutation in fault diagnosis shows promising results but the experiments also show the challenges related to using mutants.