Backward Compatibility Tester Home
Project requested and approved at java.net: https://bct.dev.java.net/
Detailed project description
The goal of the project is to add support for testing backward compatibility of services to an existing continuous integration server. The general idea is to build/integrate the new version (of the service we want to test) against projects that use the old version.
We already have a Proof-of-Concept implementation that shows how this can be achieved with Continuum and Maven2 projects. See my Master thesis for a thorough description.
Overview of PoC
Part 1: Create derived projects
The PoC create a new, derived project where the original dependency have been replaced by the new version of the dependency. For each project that use this dependency, there will be one new, derived project. If we want to test multiple services for backward compatibility, derived projects that cover all combinations of original and derived dependencies will be created.
Part2: Build the derived projects
The derived projects are built by Continuum like any other Continuum project. A successful build means that the new version of the service is backward compatible with regards to the projects in y our CI server. To improve coverage and accuracy, simply add more projects that depend on the service. A build failure means that the service is definitely not backward compatible, and the output from the build and tests should indicate why.
(Under the cover we make sure that the derived projects don't interfere with the version control system, and that the our changes are not overwritten when Continuum updates the original project from version control.)
Other project information
-
Source Code: http://jira.codehaus.org/secure/attachment/29379/2007.09.11_poc-ed.patch
-
License: Apache 2.0
Pages
Resources
Presentation at JavaZone2007 Continuum jira issue Research options for testing dependency version ranges Master thesis
AlphaWorks Backward Compatibility Tester - A Java-based tool for testing the backward compatibility of JAR files. Backword Testing