BERT: a tool for behavioral regression testing
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Platform support for developing testing and analysis plug-ins
Proceedings of the 1st Workshop on Developing Tools as Plug-ins
eXpress: guided path exploration for efficient regression test generation
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Reducing test effort: A systematic mapping study on existing approaches
Information and Software Technology
Proceedings of the 34th International Conference on Software Engineering
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Expressing and checking intended changes via software change contracts
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Automatic testing of sequential and concurrent substitutability
Proceedings of the 2013 International Conference on Software Engineering
Partition-based regression verification
Proceedings of the 2013 International Conference on Software Engineering
Maintaining the health of software monitors
Innovations in Systems and Software Engineering
GUI testing assisted by human knowledge: Random vs. functional
Journal of Systems and Software
Hi-index | 0.00 |
When a program is modified during software evolution, developers typically run the new version of the program against its existing test suite to validate that the changes made on the program did not introduce unintended side effects (i.e., regression faults). This kind of regression testing can be effective in identifying some regression faults, but it is limited by the quality of the existing test suite. Due to the cost of testing, developers build test suites by finding acceptable tradeoffs between cost and thoroughness of the tests. As a result, these test suites tend to exercise only a small subset of the program's functionality and may be inadequate for testing the changes in a program. To address this issue, we propose a novel approach called Behavioral Regression Testing (BERT). Given two versions of a program, BERT identifies behavioral differences between the two versions through dynamical analysis, in three steps. First, it generates a large number of test inputs that focus on the changed parts of the code. Second, it runs the generated test inputs on the old and new versions of the code and identifies differences in the tests' behavior. Third, it analyzes the identified differences and presents them to the developers. By focusing on a subset of the code and leveraging differential behavior, BERT can provide developers with more (and more detailed) information than traditional regression testing techniques. To evaluate BERT, we implemented it as a plug-in for Eclipse, a popular Integrated Development Environment, and used the plug-in to perform a preliminary study on two programs. The results of our study are promising, in that BERT was able to identify true regression faults in the programs.