The Refactoring Tool Tester

Purpose

to systematically test refactoring tools by automatically applying refactorings to large open source code bases, and checking their unchanged behavior with certain oracles as the compiler or associated JUnit tests.

System requirements

Description

Each Refactoring Tool Under Test is plugged into the Refactoring Tool Tester using a specific refactoring adapter . An adapter specifies where a refactoring may be performed and which parameters are supplied.

Large Open Source Projects are the most realistic scenario for testing refactoring tools because they are representative of the real world of software development. While adapters and open source projects provide the test input, the compiler and the unit tests of the projects provide the Oracle: After application of a refactoring by the Refactoring Tool Tester, the sample program must still compile, and its test cases must still pass.

The programmer implements the refactoring adapter as an Eclipse plugin. Quite similar to JUnit tests, the refactoring tool tests get started using a run configuration in which a refactoring adapter and a set of Open Source Projects (from an arbitraty SVN repositories) can be selected. During the test run a new Eclipse workbench will open in which the refactorings will be performed. A result view shows the test results and allows to rerun certain refactoring applications.

Installation

The Refactoring Tool Tester plugin is updateable from http://www.fernuni-hagen.de/ps/prjs/rtt/update/ or you can download the plugins' source code. Installation details and first steps are described in the quick start guide (german, only) and quick start examples.

Publications

Team