Back to Search
Start Over
B-Refactoring: Automatic test code refactoring to improve dynamic analysis
- Source :
- Information and Software Technology, Information and Software Technology, 2016, 76, pp.65-80. ⟨10.1016/j.infsof.2016.04.016⟩, Information and Software Technology, Elsevier, 2016, 76, pp.65-80. ⟨10.1016/j.infsof.2016.04.016⟩
- Publication Year :
- 2016
- Publisher :
- Elsevier BV, 2016.
-
Abstract
- The problem of automatic test code refactoring for dynamic analysis.B-Refactoring, an approach to automatically refactoring test cases.Assisting dynamic analysis tasks: automatic repair and exception contract analysis.Empirical results of test suite refactoring on five open source projects. Context: Developers design test suites to verify that software meets its expected behaviors. Many dynamic analysis techniques are performed on the exploitation of execution traces from test cases. In practice, one test case may imply various behaviors. However, the execution of a test case only yields one trace, which can hide the others.Objective: In this article, we propose a new technique of test code refactoring, called B-Refactoring. The idea behind B-Refactoring is to split a test case into small test fragments, which cover a simpler part of the control flow to provide better support for dynamic analysis.Method: For a given dynamic analysis technique, B-Refactoring monitors the execution of test cases and constructs small test cases without loss of the testability. We apply B-Refactoring to assist two existing analysis tasks: automatic repair of if-condition bugs and automatic analysis of exception contracts.Results: Experimental results show that B-Refactoring can effectively improve the execution traces of the test suite. Real-world bugs that could not be previously fixed with the original test suites are fixed after applying B-Refactoring; meanwhile, exception contracts are better verified via applying B-Refactoring to original test suites.Conclusions: We conclude that applying B-Refactoring improves the execution traces of test cases for dynamic analysis. This improvement can enhance existing dynamic analysis tasks.
- Subjects :
- Programming language
Computer science
business.industry
020207 software engineering
[INFO.INFO-SE]Computer Science [cs]/Software Engineering [cs.SE]
02 engineering and technology
Automatic test pattern generation
computer.software_genre
Test harness
Computer Science Applications
Test script
Test case
Code refactoring
020204 information systems
0202 electrical engineering, electronic engineering, information engineering
Test suite
Test Management Approach
Software engineering
business
computer
Software
Testability
Information Systems
Subjects
Details
- ISSN :
- 09505849 and 18736025
- Volume :
- 76
- Database :
- OpenAIRE
- Journal :
- Information and Software Technology
- Accession number :
- edsair.doi.dedup.....dd36f42e217f5c756e65b8cde7b6f890