On test repair using symbolic execution
Proceedings of the 19th international symposium on Software testing and analysis
Crowdsourcing suggestions to programming problems for dynamic web development languages
CHI '11 Extended Abstracts on Human Factors in Computing Systems
ReAssert: a tool for repairing broken unit tests
Proceedings of the 33rd International Conference on Software Engineering
Retrofitting unit tests for parameterized unit testing
FASE'11/ETAPS'11 Proceedings of the 14th international conference on Fundamental approaches to software engineering: part of the joint European conferences on theory and practice of software
WATER: Web Application TEst Repair
Proceedings of the First International Workshop on End-to-End Test Script Engineering
Automatic test suite evolution
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Is it dangerous to use version control histories to study source code evolution?
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Understanding myths and realities of test-suite evolution
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
TestEvol: a tool for analyzing test-suite evolution
Proceedings of the 2013 International Conference on Software Engineering
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
Is this a bug or an obsolete test?
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Invited talk on refactoring: from concurrency to mobility
Proceedings of the 2013 ACM workshop on Mobile development lifecycle
Automating property-based testing of evolving web services
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
Developers often change software in ways that cause tests to fail. When this occurs, developers must determine whether failures are caused by errors in the code under test or in the test code itself. In the latter case, developers must repair failing tests or remove them from the test suite. Repairing tests is time consuming but beneficial, since removing tests reduces a test suite's ability to detect regressions. Fortunately, simple program transformations can repair many failing tests automatically.We present ReAssert, a novel technique and tool that suggests repairs to failing tests' code which cause the tests to pass.Examples include replacing literal values in tests, changing assertion methods, or replacing one assertion with several.If the developer chooses to apply the repairs, ReAssert modifies the code automatically.Our experiments show that ReAssert can repair many common test failures and that its suggested repairs correspond to developers' expectations.