Continuous Integration

“Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily – leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. “

– Martin Fowler, martinfowler.com

AppContinuum is capable of configuring an existing Continuous Integration server, such as Jenkins or Hudson, so that it can perform automated client and server builds. These automated builds include code metrics such as JUnit report generating and Cobertura code coverage reports, which are then integrated into the Continuous Integration Job Dashboard. Additionally the Continuous Integration server can be optionally configured to handle system deployment to various targets.

Build Automation

AppContinuum utilizes the AppFoundation Ant Framework known as Af Ant in order to handle the build infrastructure. This framework abstracts build process in order to provide a simplified and flexible mechanism for dealing with packaging Java server applications, packaging Ext JS/Sencha applications, and handling database updates.

Test Automation

The server build process includes automated unit level and integration level testing. Unit testing is handled through JUnit while integration testing makes use of the SpringUnit framework. Testing reporting is done in a format which is publishable to the Continuous Integration server for dashboard display and historical tracking.

Code Coverage

The server build process includes the ability to generate a code coverage report using Cobertura, which is based off of what amount of code covered by the unit and integration tests.