Managing module dependencies to facilitate continuous testing

  • Authors:
  • Brad Long

  • Affiliations:
  • Oracle Corporation, Brisbane, Qld 4000, Australia

  • Venue:
  • Information Processing Letters
  • Year:
  • 2008

Quantified Score

Hi-index 0.89

Visualization

Abstract

Developing large commercial software systems is complex. Techniques have been proposed to deal with such large-scale systems development. One approach that has had some success is the combination of continuous integration and unit testing. Large systems are often divided into modules based on an area of functionality with potentially different teams developing each module. Invariably these modules rely on and interact with each other. Problems arise when teams wishing to test their module depend on code from other teams that is in development or under modification during maintenance. This paper describes an approach to managing module dependencies that allows teams to test their code in isolation or in conjunction with other modules. This facilitates the ability to continually run tests without being negatively impacted by the state of other modules. An additional side-effect is that the approach exceeds the requirements of the GNU Lesser General Public License by allowing a software vendor to easily provide a limited amount of source code, rather than potentially releasing source code for large portions of their product suite, or allowing reverse engineering of potentially large portions of their proprietary product.