AbstractsEngineering

Introducing Continuous Integration in an Enterprise Scale Environment

by Staffan Persson




Institution: Uppsala University
Department:
Year: 2008
Keywords: Civilingenjörsprogrammet i informationsteknologi; Master of Science Programme in Information Technology Engineering; teknik; Technology
Record ID: 1362032
Full text PDF: http://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-88744


Abstract

This thesis investigates how continuous integration best should be incorporated into a current development environment in order to acquire a shorter time for the regression testing feedback loop. The product in target is a high availability enterprise scale software product within mobile telecom. It utilizes a large commercial relational database for customer associated data and employs approximately one hundred designers. A continuous integration system needs automatic database integration, compilation, testing, inspection, deployment, and feedback. Measures that are valuable to the build process regardless of build time should be given the highest priorities of implementation. Feedback has been developed in the form of Continuous Integration Web. The first priority at this stage is to introduce unit testing of the database which also has to be automatically built whenever updated or changed. The amount of time used to integrate should be as close to ten minutes as possible. This goal is reachable if the build process is split into at least two integrations by differentiating unit tests from component tests and, if the software’s functionally divided parts are built separately on local integration servers. Starting integrations automatically could potentially allow broken source code to reside in the source code repository. This problem can however be mitigated with the aid of good routines and sufficient communication between developers and the continuous integration server. If the latter is possible it is recommended to make use of a continuous integration server. Otherwise it is recommended to perform integrations manually.