Towards Software Configuration Management for Test-Driven Development

Size: px
Start display at page:

Download "Towards Software Configuration Management for Test-Driven Development"

Transcription

1 Towards Software Configuration Management for Test-Driven Development Tammo Freese OFFIS, Escherweg 2, Oldenburg, Germany Abstract. Test-Driven Development is a technique where each change to the observable behavior of a program is motivated by a failing test. High design quality is maintained by continuous small design improvements called refactorings. While some integrated development environments support automated refactoring, they do not handle problems that occur if refactorings are used in development teams or on published interfaces. This paper outlines the idea of a specialized software configuration management tool which integrates into a development environment to record the steps of Test-Driven Development as operations. These operations are useful for summarizing local changes, merging parallel changes and for migrating code that uses published interfaces. 1 Introduction Test-Driven Development (TDD) [3] is the core development strategy of Extreme Programming [2]. The main ideas of TDD are to test a program before writing it, and to continuously maintain a simple design. Each change of the observable program behavior has to be motivated by a failing test. Seeing the test fail is important, as it verifies that the code does not fulfil the test s expectations. After writing just enough code to meet the new expectations, all the tests have to pass to verify that the new expectation as well as all the old ones are fulfilled. The tests are written by developers in the development language itself using a testing framework like JUnit [10]. The GUI front ends of these frameworks provide visual feedback. A green bar means that all tests passed, while a red one means that at least one test failed. Each development step may be understood as a state transition green red green. Every development step introduces new behavior. The current design is often not fitted to incorporate the new behavior, so it may grow more complex with every change. To keep the design straightforward and easy to understand, it is required to improve it without changing the observable behavior of the code. This is known as refactoring [7]. In TDD, refactoring is only allowed if all existing tests pass. Since refactorings do not change the observable behavior, all tests still have to pass afterwards. Refactoring steps thus may be understood as state transitions green green. Refactoring steps are typically small. Bigger refactorings are achieved by many small steps. Examples for refactorings in Java are renaming classes, interfaces or methods as well as extracting and inlining methods.

2 As performing refactorings manually is slow and error-prone, tool support is essential. Some integrated development environments (IDEs) support automated refactoring and thus speed up TDD. However, there are still some shortcomings in using local version histories, merging changes and applying changes to published interfaces. 1.1 Local Version History TDD is a feedback-driven development style with many small steps. From time to time the development may take a wrong path, so that backtracking is necessary. Common examples are a new test requiring too much code to be written so that the developer does not get back to a green state quickly, or an experimental refactoring route which led to an overly complex or otherwise inappropriate design. Many IDEs provide undo/redo features, some even provide local histories that allow backtracking to every saved version. However, the huge number of steps in TDD clutters local histories, making it difficult to identify interesting targets for backtracking. An additional problem is that local changes and versions often do not carry additional information, like whether they are refactorings or whether the tests passed. Undo/redo is usually file-related and not projectrelated, and too fine-grained for backtracking. Common implementations even lose information, since undone development routes cannot be reached again after changes. 1.2 Merging Changes Commercial software configuration management (SCM) tools usually rely on textual merging [12]. Refactorings often lead to problems when using textual merging. Suppose we have a method x(). While developer A renames the method to y(), developer B implements a new method using the old signature x(). Textoriented SCM tools will show no merge conflicts, but the resulting code will not compile. Even worse, if both developers rename the same method to different names, textual merging leads to conflicts at every invocation of the method. Another problem is method inlining. If developer A inlines method x() while developer B invokes it in a new code fragment, no merge conflicts will be shown, although the resulting code will not compile. 1.3 Changing Published Interfaces Many software development projects work on libraries or frameworks. Changing published interfaces breaks client code and is therefore discouraged. Typical recommendations are to publish as little as possible as late as possible or to make changes additions [8, 5]. While following these rules is generally useful, it makes TDD more difficult, since refactorings cannot be applied easily to published interfaces.

3 2 Software Configuration Management for Test-Driven Development The main reason for the problems described in section 1 is the missing support for Test-Driven Development in current SCM systems, as they are not aware of the development steps. Our goal is therefore to build a specialized SCM for Test-Driven Development. 2.1 Local Change History As the SCM should be based on the steps of TDD, these steps have to be recorded. By integration into an IDE, events like saving files, refactorings, compilation success/failure and test success/failure may be gathered. With additional information from the source code, we get a sequence of changes, each of them either a delta for some source files or an automated refactoring. Each change may carry additional information on compilation success (compilable change) or failure (non-compilable change) and test success (green change) or failure (red change). With these changes, a simple mechanism for backtracking may be implemented. Backtracking itself is recorded as a kind of change as well. The stream of changes contains the complete development path, but it does not provide an overview. To focus on important information, the changes are structured into a tree by organizing changes under new parent nodes. Each parent node is regarded as a change and inherits the additional information from its last child. Parent nodes are introduced for various change sequences: backtracking changes with all preceding changes they have undone changes where compilation was triggered with all preceding changes that were not compiled compilable changes with all preceding non-compilable changes changes where tests were invoked with all preceding changes where the tests were not invoked a maximal sequence of red changes followed by a green change, i.e. a TDD development step a maximal sequence of green changes after a green change, i.e. a sequence of TDD refactoring steps Figure 1 shows a small example where 11 changes are structured in a tree. In the collapsed form, the tree only shows 3 elements. 2.2 Merging Changes The local change sequence provides valuable information for merging parallel changes. Our goal is to combine operation-based merging [11] with syntactic software merging [4]. Operation-based merging uses the operations that were performed during development. Syntactic software merging takes the programming language syntax into account.

4 before aggregation after aggregation number type compile test number type compile test non-compilable change F 38 change F 38 change F 37 change 37 change refactoring step S S 36 refactoring S S 36 refactoring S S 35 refactoring S 35 refactoring S development step S S green change S S 34 change S S 34 change S S 33 change F 33 change F red change S F compilable change S F 32 change S F 32 change S F 31 change 31 change 30 change 30 change non-compilable change F 29 change F 29 change F 28 change 28 change S: success, F: failure Fig. 1. Aggregating changes For merging parallel changes, we would like to use operation sequences where the code compiles after each change. Thus it is required that the local change sequence starts and ends with compilable code. The operation sequence is created by pruning all the development paths that were undone by backtracking, and combining each compilable change with all its preceding non-compilable changes. Each operation, then, is either a refactoring or a change to one or more source files. We assume that we have an initial state X of the source code and two operation sequences (transformations in [11]) T a = T a,n T a,n 1... T a,1 and T b = T b,m T b,m 1... T b,1. The typical situation is that a developer (B) would like to release his changes T b to X into the repository. While he worked on his changes, another developer (A) has released his changes T a. The result of the release should then be T b T a X = T b,m T b,m 1... T b,1 T a,n T a,n 1... T a,1 X. Since the operations T b were applied to X and not to T a X, conflicts may occur. The approach followed here is to check each operations of T b for conflicts with operations of T a. Conflicts are resolved by modifying the operations of T b (automatically or manually). The rationale behind this is that T a is never changed, since it is already stored in the repository. In merging, the basic assumption for operation-based merging is used: If the result of applying two transformations stays the same after changing their order, the result is a good candidate for merging [11]. For merging two non-refactoring operations, syntactic software merging [4] should be used to minimize conflicts. If a change cannot be applied after a refactoring, it is often sufficient to apply the refactoring on the change itself. The same strategy works for many conflicting

5 refactorings. If this strategy does not work, in most cases the conflict is due to a name clash. An example would be a change operation which adds method x() and a refactoring renaming method y() to x(). These cases may be resolved automatically by either modifying the change operation or the refactoring to use another target name. Remaining conflicts should be solved interactively. 2.3 Changing Published Interfaces If a library or framework is developed, refactorings on published interfaces have to be applied to dependent code, too. Since the change operations themselves are stored in the SCM, a refactoring script may be created for the operation sequence since the last published version of the library. A migration tool may apply these refactorings on dependent code by using the refactoring capabilities of existing tools. Such a tool is expected to reduce migration costs in these cases drastically, so that the development team may establish more liberate change policies on published interfaces. 3 Related Work The SCM tool outlined here combines various ideas, among them using the change history in the development process, operation-based and syntactic software merging as well as applying refactorings to code that uses published interfaces. This section summarizes these ideas and relates them to this paper. 3.1 Version Sensitive Editing In [1], David L. Atkins describes the idea of enhancing the development process by making the change history easily available to the programmer. The tool described there is capable of showing the history for each line of code, thus simplifying the identification of errors introduced earlier. The local change history described in section 2.1 is guided by the same idea, but takes another approach. In TDD, different ideas for a code change are often just tried one after another, so it is important to be able to roll back the whole project to an earlier version. So instead of showing the history of a line of code, the change history here shows the history of the whole project. 3.2 Local Change Histories Some IDEs ([6, 9]) include local change histories which allow rolling back either single methods or files or the whole project to older versions. The local change history proposed here only allows to roll back the whole project. Its advantages are that it simplifies finding interesting targets for backtracking by structuring the development steps, and its awareness for refactoring operations which may later be used in merging.

6 3.3 Operation-Based Merging Most SCM tools use state-based merging, as they only have initial and final versions available. Operation-based merging [11] uses the operations that were performed during development. As refactorings are typical operations in TDD, section 2.2 proposes to use them as operations in merging. All other changes are combined to change operations. In [11], the operation sequences leading to different versions may both be changed to create the merge result. The approach described here requires that the sequence already in the repository is not changed: All changes have to be applied to the sequence which is not in the repository. As a result, the repository contains a stream of operations from version to version, which may be used for migration of dependent code. 3.4 Syntactic Software Merging In [4], Jim Buffenbarger provides an overview on methods of software merging, including the idea of syntactic software merging that uses the programming language for merging. Since the source code is compilable before and after each change operation in section 2.2, two non-refactoring operations are good candidates for syntactic merging. 3.5 Refactoring Tags The strategies for changing published interfaces mentioned in section 1.3 are inappropriate for Extreme Programming, since they focus on avoiding change. In [13], Stefan Roock and Andreas Havenstein describe the concept of special tags for framework development. The tags describe refactorings applied to the framework. They are used by a migration tool to help application developers in migrating their source code to a new version of the framework. In comparison to the approach described here, the advantage of refactoring tags is their independence of the development environment: They may be used in every IDE or editor. However, the refactoring information is not gathered automatically, but has to be added manually. 4 Current Status and Future Work The SCM outlined in this paper is currently under development for the Java programming language. It is integrated into the open source IDE Eclipse [6] which provides a huge number of plug-in points which greatly simplify tool integration. At the time of writing (February 2003), the local change history works, and plug-in points for providing local change types as well as building the tree structure for the change sequence are finished. Since Eclipse does not yet provide information on invoked refactorings, we added a related plug-in point, and currently work on creating the operation sequence from the local development steps.

7 References 1. Atkins, D.L.: Version Sensitive Editing: Change History as a Programming Tool. In: Magnusson, B.: Software Configuration Management: ECOOP 98 SCM-8 Symposium. Springer (1998) 2. Beck, K.: Extreme Programming Explained: Embrace Change. Addison-Wesley (1999) 3. Beck, K.: Test-Driven Development: By Example. Addison-Wesley (2003) 4. Buffenbarger, J.: Syntactic Software Merging. In: Estublier, J. (ed.): Software Configuration Management: Selected Papers SCM-4 and SCM-5. Springer (1995) 5. des Rivières, J.: Evolving Java-based APIs. development/java-api-evolution.html (2002) 6. Eclipse home page Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley (1999) 8. Fowler, M.: Public versus Published Interfaces. In: IEEE Software (March/April 2002) 9. IntelliJ IDEA home page JUnit home page Lippe, E., van Oosterom, N.: Operation-based Merging. Lecture Notes in Computer Science, Vol In: Proceedings of ACM SIGSOFT 92: Fifth Symposium on Software Development Environments (SDE5) (1992) 12. Mens, T.: A State-of-the-Art Survey on Software Merging. In: IEEE Transactions on Software Engineering, vol. 28, no. 5 (2002) 13. Roock, S., Havenstein, A.: Refactoring Tags for automated refactoring of framework dependent applications. XP2002 Conference (2002)

Continuous Integration with Jenkins. Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8 dt08ps5]@student.lth.

Continuous Integration with Jenkins. Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8 dt08ps5]@student.lth. 1 Continuous Integration with Jenkins Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8 dt08ps5]@student.lth.se Faculty of Engineering, Lund Univeristy (LTH) March 5, 2013 Abstract

More information

Agile Techniques for Object Databases

Agile Techniques for Object Databases db4o The Open Source Object Database Java and.net Agile Techniques for Object Databases By Scott Ambler 1 Modern software processes such as Rational Unified Process (RUP), Extreme Programming (XP), and

More information

Agile Software Development

Agile Software Development Agile Software Development Lecturer: Raman Ramsin Lecture 13 Refactoring Part 3 1 Dealing with Generalization: Pull Up Constructor Body Pull Up Constructor Body You have constructors on subclasses with

More information

Mining a Change-Based Software Repository

Mining a Change-Based Software Repository Mining a Change-Based Software Repository Romain Robbes Faculty of Informatics University of Lugano, Switzerland 1 Introduction The nature of information found in software repositories determines what

More information

Meister Going Beyond Maven

Meister Going Beyond Maven Meister Going Beyond Maven A technical whitepaper comparing OpenMake Meister and Apache Maven OpenMake Software 312.440.9545 800.359.8049 Winners of the 2009 Jolt Award Introduction There are many similarities

More information

TAPE. Test Code Adaptation Plugin for Eclipse. Lehmia Kiran Department of Computer Sciences NUCES-FAST Lahore, Pakistan lehmia.kiran@nu.edu.

TAPE. Test Code Adaptation Plugin for Eclipse. Lehmia Kiran Department of Computer Sciences NUCES-FAST Lahore, Pakistan lehmia.kiran@nu.edu. TAPE Test Code Adaptation Plugin for Eclipse Lehmia Kiran Department of Computer Sciences NUCES-FAST Lahore, Pakistan lehmia.kiran@nu.edu.pk Dr. Fakhar Lodhi Department of Computer Sciences NUCES-FAST

More information

TAPE. Test Code Adaptation Plugin for Eclipse. Lehmia Kiran Department of Computer Sciences NUCES-FAST Lahore, Pakistan lehmia.kiran@nu.edu.

TAPE. Test Code Adaptation Plugin for Eclipse. Lehmia Kiran Department of Computer Sciences NUCES-FAST Lahore, Pakistan lehmia.kiran@nu.edu. TAPE Test Code Adaptation Plugin for Eclipse Lehmia Kiran Department of Computer Sciences NUCES-FAST Lahore, Pakistan lehmia.kiran@nu.edu.pk Fakhar Lodhi Department of Computer Sciences NUCES-FAST Lahore,

More information

Configuration & Build Management

Configuration & Build Management Object-Oriented Software Engineering Using UML, Patterns, and Java Configuration & Build Management Outline of the Lecture Purpose of Software Configuration Management (SCM) Some Terminology Software Configuration

More information

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture Pipeline Orchestration for Test Automation using Extended Buildbot Architecture Sushant G.Gaikwad Department of Computer Science and engineering, Walchand College of Engineering, Sangli, India. M.A.Shah

More information

Software Configuration Management. Addendum zu Kapitel 13

Software Configuration Management. Addendum zu Kapitel 13 Software Configuration Management Addendum zu Kapitel 13 Outline Purpose of Software Configuration Management (SCM) Motivation: Why software configuration management? Definition: What is software configuration

More information

Nick Ashley TOOLS. The following table lists some additional and possibly more unusual tools used in this paper.

Nick Ashley TOOLS. The following table lists some additional and possibly more unusual tools used in this paper. TAKING CONTROL OF YOUR DATABASE DEVELOPMENT Nick Ashley While language-oriented toolsets become more advanced the range of development and deployment tools for databases remains primitive. How often is

More information

Agile.NET Development Test-driven Development using NUnit

Agile.NET Development Test-driven Development using NUnit Agile.NET Development Test-driven Development using NUnit Jason Gorman Test-driven Development Drive the design and construction of your code on unit test at a time Write a test that the system currently

More information

Page 1. Outline of the Lecture. What is Software Configuration Management? Why Software Configuration Management?

Page 1. Outline of the Lecture. What is Software Configuration Management? Why Software Configuration Management? Books: Software Configuration Management 1. B. Bruegge and A. H. Dutoit, Object-Oriented Software Engineering: Using UML, Patterns, and Java (Chapter 13) Outline of the Lecture Purpose of Software Configuration

More information

Continuous Integration (CI)

Continuous Integration (CI) Introduction A long standing problem for software development teams has been to maintain the stability of an application while integrating the changes made by multiple developers. The later that integration

More information

Projectory A Framework for teaching Object Oriented Design and Object Oriented Programming

Projectory A Framework for teaching Object Oriented Design and Object Oriented Programming Projectory A Framework for teaching Object Oriented Design and Object Oriented Programming ElanLunch@L3S, 3.05.003 Jens Gößner, Thomas Mück Educational Setting To learn the construction of object-oriented

More information

ASSISTING REFACTORING TOOL DEVELOPMENT THROUGH REFACTORING CHARACTERIZATION

ASSISTING REFACTORING TOOL DEVELOPMENT THROUGH REFACTORING CHARACTERIZATION ASSISTING REFACTORING TOOL DEVELOPMENT THROUGH REFACTORING CHARACTERIZATION Raúl Marticorena, Carlos López Language and Informatic Systems, University of Burgos, EPS Campus Vena Edificio C, Burgos, Spain

More information

Test Driven Development Part III: Continuous Integration Venkat Subramaniam venkats@agiledeveloper.com http://www.agiledeveloper.com/download.

Test Driven Development Part III: Continuous Integration Venkat Subramaniam venkats@agiledeveloper.com http://www.agiledeveloper.com/download. Test Driven Development Part III: Continuous Integration Venkat Subramaniam venkats@agiledeveloper.com http://www.agiledeveloper.com/download.aspx Abstract In this final part of the three part series on

More information

Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment

Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment Wyatt Spear, Allen Malony, Alan Morris, Sameer Shende {wspear, malony, amorris, sameer}@cs.uoregon.edu

More information

We (http://www.newagesolution.net) have extensive experience in enterprise and system architectures, system engineering, project management, and

We (http://www.newagesolution.net) have extensive experience in enterprise and system architectures, system engineering, project management, and We (http://www.newagesolution.net) have extensive experience in enterprise and system architectures, system engineering, project management, and software design and development. We will be presenting a

More information

Introduction to Programming Tools. Anjana & Shankar September,2010

Introduction to Programming Tools. Anjana & Shankar September,2010 Introduction to Programming Tools Anjana & Shankar September,2010 Contents Essentials tooling concepts in S/W development Build system Version Control System Testing Tools Continuous Integration Issue

More information

Delivery. Continuous. Jez Humble and David Farley. AAddison-Wesley. Upper Saddle River, NJ Boston Indianapolis San Francisco

Delivery. Continuous. Jez Humble and David Farley. AAddison-Wesley. Upper Saddle River, NJ Boston Indianapolis San Francisco Continuous Delivery Jez Humble and David Farley AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid Cape Town Sydney Tokyo Singapore

More information

Industrial Adoption of Automatically Extracted GUI Models for Testing

Industrial Adoption of Automatically Extracted GUI Models for Testing Industrial Adoption of Automatically Extracted GUI Models for Testing Pekka Aho, VTT Technical Research Centre of Finland International Workshop on Experiences and Empirical Studies in Software Modelling

More information

Human Aspects of Software Engineering: The Case of Extreme Programming

Human Aspects of Software Engineering: The Case of Extreme Programming 1 Human Aspects of Software Engineering: The Case of Extreme Programming Orit Hazzan 1 and Jim Tomayko 2 1 Department of Education in Technology and Science, Technion - IIT, Haifa 32000, Israel oritha@tx.technion.ac.il

More information

Going Interactive: Combining Ad-Hoc and Regression Testing

Going Interactive: Combining Ad-Hoc and Regression Testing Going Interactive: Combining Ad-Hoc and Regression Testing Michael Kölling 1, Andrew Patterson 2 1 Mærsk Mc-Kinney Møller Institute, University of Southern Denmark, Denmark mik@mip.sdu.dk 2 Deakin University,

More information

Editors Comparison (NetBeans IDE, Eclipse, IntelliJ IDEA)

Editors Comparison (NetBeans IDE, Eclipse, IntelliJ IDEA) České vysoké učení technické v Praze Fakulta elektrotechnická Návrh Uživatelského Rozhraní X36NUR Editors Comparison (NetBeans IDE, Eclipse, ) May 5, 2008 Goal and purpose of test Purpose of this test

More information

Surround SCM Best Practices

Surround SCM Best Practices Surround SCM Best Practices This document addresses some of the common activities in Surround SCM and offers best practices for each. These best practices are designed with Surround SCM users in mind,

More information

Test Driven Development with Continuous Integration: A Literature Review

Test Driven Development with Continuous Integration: A Literature Review Test Driven Development with Continuous Integration: A Literature Review Sheikh Fahad Ahmad Deptt. of Computer Science & Engg. Mohd. Rizwan Beg Deptt. of Computer Science & Engg. Mohd. Haleem Deptt. of

More information

Global Software Change Management for PVCS Version Manager

Global Software Change Management for PVCS Version Manager Global Software Change Management for PVCS Version Manager... www.ikanalm.com Summary PVCS Version Manager is considered as one of the leading versioning tools that offers complete versioning control.

More information

creating a text-based editor for eclipse

creating a text-based editor for eclipse creating a text-based editor for eclipse By Elwin Ho Contact author at: Elwin.Ho@hp.com June 2003 2003 HEWLETT-PACKARD COMPANY TABLE OF CONTENTS Purpose...3 Overview of the Eclipse Workbench...4 Creating

More information

Continuous Integration For Real: The Perforce Java Platform. Hamish Reid Perforce Software Inc.

Continuous Integration For Real: The Perforce Java Platform. Hamish Reid Perforce Software Inc. Continuous Integration For Real: The Perforce Java Platform Hamish Reid Perforce Software Inc. OVERVIEW What do we mean by Agile? Continuous Integration? Product line highlights: P4Eclipse + Mylin + MergeQuest

More information

An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases

An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases Paul L. Bergstein, Priyanka Gariba, Vaibhavi Pisolkar, and Sheetal Subbanwad Dept. of Computer and Information Science,

More information

Testing Rails. by Josh Steiner. thoughtbot

Testing Rails. by Josh Steiner. thoughtbot Testing Rails by Josh Steiner thoughtbot Testing Rails Josh Steiner April 10, 2015 Contents thoughtbot Books iii Contact us................................ iii Introduction 1 Why test?.................................

More information

Augmenting software development with information scripting

Augmenting software development with information scripting Augmenting software development with information scripting Master Thesis Description Lukas Vogel luvogel@student.ethz.ch May 26, 2015 1 Introduction Today s large software projects are associated with

More information

The Real Challenges of Configuration Management

The Real Challenges of Configuration Management The Real Challenges of Configuration Management McCabe & Associates Table of Contents The Real Challenges of CM 3 Introduction 3 Parallel Development 3 Maintaining Multiple Releases 3 Rapid Development

More information

JetBrains ReSharper 2.0 Overview Introduction ReSharper is undoubtedly the most intelligent add-in to Visual Studio.NET 2003 and 2005. It greatly increases the productivity of C# and ASP.NET developers,

More information

Test-Driven Development

Test-Driven Development Test-Driven Development An Introduction Mattias Ståhlberg mattias.stahlberg@enea.com Debugging sucks. Testing rocks. Contents 1. What is unit testing? 2. What is test-driven development? 3. Example 4.

More information

tools that make every developer a quality expert

tools that make every developer a quality expert tools that make every developer a quality expert Google: www.google.com Copyright 2006-2010, Google,Inc.. All rights are reserved. Google is a registered trademark of Google, Inc. and CodePro AnalytiX

More information

Continuous Integration: Aspects in Automation and Configuration Management

Continuous Integration: Aspects in Automation and Configuration Management Context Continuous Integration: Aspects in and Configuration Management Christian Rehn TU Kaiserslautern January 9, 2012 1 / 34 Overview Context 1 Context 2 3 4 2 / 34 Questions Context How to do integration

More information

Chapter 13 Configuration Management

Chapter 13 Configuration Management Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 13 Configuration Management Outline of the Lecture Purpose of Software Configuration Management (SCM)! Motivation: Why software

More information

VisCG: Creating an Eclipse Call Graph Visualization Plug-in. Kenta Hasui, Undergraduate Student at Vassar College Class of 2015

VisCG: Creating an Eclipse Call Graph Visualization Plug-in. Kenta Hasui, Undergraduate Student at Vassar College Class of 2015 VisCG: Creating an Eclipse Call Graph Visualization Plug-in Kenta Hasui, Undergraduate Student at Vassar College Class of 2015 Abstract Call graphs are a useful tool for understanding software; however,

More information

Learning and Coaching Agile Methods. Görel Hedin Computer Science Lund University, Sweden

Learning and Coaching Agile Methods. Görel Hedin Computer Science Lund University, Sweden Learning and Coaching Agile Methods Görel Hedin Computer Science Lund University, Sweden Background Two undergraduate courses at Lund University XP course (mandatory, 2nd year, around 100 students) Coaching

More information

Generating Aspect Code from UML Models

Generating Aspect Code from UML Models Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany Iris.Groher@fh-hagenberg.at Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,

More information

Chapter 13 Configuration Management

Chapter 13 Configuration Management Chapter 13 Configuration Management Using UML, Patterns, and Java Object-Oriented Software Engineering Outline of the Lecture Purpose of Software Configuration Management (SCM)! Motivation: Why software

More information

INTERNET-BASED COLLABORATIVE PROGRAMMING TECHNIQUES AND ENVIRONMENTS

INTERNET-BASED COLLABORATIVE PROGRAMMING TECHNIQUES AND ENVIRONMENTS INTERNET-BASED COLLABORATIVE PROGRAMMING TECHNIQUES AND ENVIRONMENTS By Haifeng Shen A DISSERTATION SUBMITTED IN FULFILLMENT OF THE REQUIREMENTS OF THE DEGREE OF DOCTOR OF PHILOSOPHY AT THE SCHOOL OF COMPUTING

More information

TE TER. Continuous testing and delivery. number 21. SUBSCRIBE It s FREE for testers. Including articles by: Roy de Kleijn Polteq.

TE TER. Continuous testing and delivery. number 21. SUBSCRIBE It s FREE for testers. Including articles by: Roy de Kleijn Polteq. TE TER SUBSCRIBE It s FREE for testers Essential for software Continuous testing and delivery Including articles by: Bogdan Bereza VictO Roy de Kleijn Polteq Mark Lehky Jessica Schiffmann Prism Informatics

More information

JRefleX: Towards Supporting Small Student Software Teams

JRefleX: Towards Supporting Small Student Software Teams JRefleX: Towards Supporting Small Student Software Teams Kenny Wong, Warren Blanchet, Ying Liu, Curtis Schofield, Eleni Stroulia, Zhenchang Xing Department of Computing Science University of Alberta {kenw,blanchet,yingl,schofiel,stroulia,xing}@cs.ualberta.ca

More information

Stas Levin Advanced Software Tools Seminar, Tel Aviv University March 28, 2011

Stas Levin Advanced Software Tools Seminar, Tel Aviv University March 28, 2011 1 Collaboration support in SW 2 Collaborative Real Time Coding Stas Levin Advanced Software Tools Seminar, Tel Aviv University March 28, 2011 3 Agenda Collaborative software & SCM systems The CRTC approach

More information

Exploiting Dynamic Information in IDEs Eases Software Maintenance

Exploiting Dynamic Information in IDEs Eases Software Maintenance Exploiting Dynamic Information in IDEs Eases Software Maintenance David Röthlisberger Software Composition Group, University of Bern, Switzerland roethlis@iam.unibe.ch Abstract The integrated development

More information

Continuous Integration

Continuous Integration Continuous Integration Collaborative development issues Checkout of a shared version of software ( mainline ) Creation of personal working copies of developers Software development: modification of personal

More information

Referências Bibliográficas

Referências Bibliográficas Referências Bibliográficas ALPAYDIN, E. Introduction to Machine Learning (Adaptive Computation and Machine Learning). MIT Press, ISBN 0262012111. 2004. AMSTEL, M. F.; BRAND, M. G. J.; PROTIC, Z. Version

More information

Software Configuration Management. Slides derived from Dr. Sara Stoecklin s notes and various web sources.

Software Configuration Management. Slides derived from Dr. Sara Stoecklin s notes and various web sources. Software Configuration Management Slides derived from Dr. Sara Stoecklin s notes and various web sources. What is SCM? SCM goals Manage the changes to documents, programs, files, etc. Track history Identify

More information

Implementing Continuous Integration Testing Prepared by:

Implementing Continuous Integration Testing Prepared by: Implementing Continuous Integration Testing Prepared by: Mr Sandeep M Table of Contents 1. ABSTRACT... 2 2. INTRODUCTION TO CONTINUOUS INTEGRATION (CI)... 3 3. CI FOR AGILE METHODOLOGY... 4 4. WORK FLOW...

More information

Continuous integration for databases using

Continuous integration for databases using Continuous integration for databases using Red Wie Sie Gate die tools Microsoft SQL An overview Continuous integration for databases using Red Gate tools An overview Contents Why continuous integration?

More information

Using Continuous Code Change Analysis to Understand the Practice of Refactoring

Using Continuous Code Change Analysis to Understand the Practice of Refactoring Using Continuous Code Change Analysis to Understand the Practice of Refactoring Stas Negara, Nicholas Chen, Mohsen Vakilian, Ralph E. Johnson, Danny Dig University of Illinois at Urbana-Champaign Urbana,

More information

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery! Continuous Delivery for Alfresco Solutions Satisfied customers and happy developers with!! Continuous Delivery! About me Roeland Hofkens #rhofkens roeland.hofkens@westernacher.com http://opensource.westernacher.com

More information

Refactoring-aware Software Configuration Management

Refactoring-aware Software Configuration Management Refactoring-aware Software Configuration Management Danny Dig University of Illinois at Urbana-Champaign dig@uiuc.edu Tien N. Nguyen Iowa State University tien@iastate.edu Ralph Johnson University of Illinois

More information

IBM Business Monitor. BPEL process monitoring

IBM Business Monitor. BPEL process monitoring IBM Business Monitor BPEL process monitoring 2011 IBM Corporation This presentation will give you an understanding of monitoring BPEL processes using IBM Business Monitor. BPM_BusinessMonitor_BPEL_Monitoring.ppt

More information

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited Continuous Integration: Improving Software Quality and Reducing Risk Preetam Palwe Aftek Limited One more title Do you love bugs? Or Are you in love with QC members? [Courtesy: Smita N] Agenda Motivation

More information

Tools, Trends and Techniques for Developing Scientific Software

Tools, Trends and Techniques for Developing Scientific Software Tools, Trends and Techniques for Developing Scientific Software Tom Clune - NASA GSFC Brice Womack - NASA/NGC-TASC Brian Foote - The Refactory, Inc. Jeffrey Overbey - University of Illinois ASTG Advanced

More information

Software Configuration Management and Continuous Integration

Software Configuration Management and Continuous Integration 1 Chapter 1 Software Configuration Management and Continuous Integration Matthias Molitor, 1856389 Reaching and maintaining a high quality level is essential for each today s software project. To accomplish

More information

A Thread Monitoring System for Multithreaded Java Programs

A Thread Monitoring System for Multithreaded Java Programs A Thread Monitoring System for Multithreaded Java Programs Sewon Moon and Byeong-Mo Chang Department of Computer Science Sookmyung Women s University, Seoul 140-742, Korea wonsein@nate.com, chang@sookmyung.ac.kr

More information

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods Topics covered Chapter 3 Agile Software Development Agile methods Plan-driven and agile Extreme programming Agile project management Scaling agile methods 1 2 Need for rapid software Rapid software Changing

More information

User-Driven Adaptation of Model Differencing Results

User-Driven Adaptation of Model Differencing Results User-Driven Adaptation of Model Differencing Results Klaus Müller, Bernhard Rumpe Software Engineering RWTH Aachen University Aachen, Germany http://www.se-rwth.de/ Abstract In model-based software development,

More information

An Exception Monitoring System for Java

An Exception Monitoring System for Java An Exception Monitoring System for Java Heejung Ohe and Byeong-Mo Chang Department of Computer Science, Sookmyung Women s University, Seoul 140-742, Korea {lutino, chang@sookmyung.ac.kr Abstract. Exception

More information

Baseline Code Analysis Using McCabe IQ

Baseline Code Analysis Using McCabe IQ White Paper Table of Contents What is Baseline Code Analysis?.....2 Importance of Baseline Code Analysis...2 The Objectives of Baseline Code Analysis...4 Best Practices for Baseline Code Analysis...4 Challenges

More information

Continuous integration for databases using Redgate tools

Continuous integration for databases using Redgate tools Continuous integration for databases using Redgate tools Wie Sie die Microsoft SQL Server Data Tools mit den Tools von Redgate ergänzen und kombinieren können An overview 1 Continuous integration for

More information

An Automated Testing Tool Using UI Structure

An Automated Testing Tool Using UI Structure , March 12-14, 2014, Hong Kong An Automated Testing Tool Using UI Structure Nutharat Harnvorawong, Taratip Suwannasart, Member, IAENG Abstract Testers usually run a new version of software against existing

More information

SOFTWARE DEVELOPMENT BASICS SED

SOFTWARE DEVELOPMENT BASICS SED SOFTWARE DEVELOPMENT BASICS SED Centre de recherche Lille Nord Europe 16 DÉCEMBRE 2011 SUMMARY 1. Inria Forge 2. Build Process of Software 3. Software Testing 4. Continuous Integration 16 DECEMBRE 2011-2

More information

The Impact of Test-Driven Development on Software Development Productivity An Empirical Study

The Impact of Test-Driven Development on Software Development Productivity An Empirical Study This is a preprint of an article: Lech Madeyski and Lukasz Sza la, The Impact of Test-Driven Development on Software Development Productivity An Empirical Study, in Software Process Improvement, ser. Lecture

More information

A Case Study on Model-Driven and Conventional Software Development: The Palladio Editor

A Case Study on Model-Driven and Conventional Software Development: The Palladio Editor A Case Study on Model-Driven and Conventional Software Development: The Palladio Editor Klaus Krogmann, Steffen Becker University of Karlsruhe (TH) {krogmann, sbecker}@ipd.uka.de Abstract: The actual benefits

More information

Kevin Lee Technical Consultant kevin.lee@uk.ibm.com. As part of a normal software build and release process

Kevin Lee Technical Consultant kevin.lee@uk.ibm.com. As part of a normal software build and release process Agile SCM: Realising Continuous Kevin Lee Technical Consultant kevin.lee@uk.ibm.com Agenda What is Continuous? Continuous in Context As part of a normal software build and release process Realising Continuous

More information

Leveraging Rational Team Concert's build capabilities for Continuous Integration

Leveraging Rational Team Concert's build capabilities for Continuous Integration Leveraging Rational Team Concert's build capabilities for Continuous Integration Krishna Kishore Senior Engineer, RTC IBM Krishna.kishore@in.ibm.com August 9-11, Bangalore August 11, Delhi Agenda What

More information

TIME. Programming in the large. Lecture 22: Configuration Management. Agenda for today. About your Future. CM: The short version. CM: The long version

TIME. Programming in the large. Lecture 22: Configuration Management. Agenda for today. About your Future. CM: The short version. CM: The long version 1 2 Last update: 17 June 2004 Programming in the large Bertrand Meyer Lecture 22: Configuration Management Bernd Schoeller bernd.schoeller@inf.ethz.ch Agenda for today 3 About your Future 4 Motivation

More information

CSE 4415 / SWE 5415 Software Testing 2 Fall 2004 Olin Engineering Building, Room 128 Credits: 3.00

CSE 4415 / SWE 5415 Software Testing 2 Fall 2004 Olin Engineering Building, Room 128 Credits: 3.00 CSE 4415 / SWE 5415 Software Testing 2 Fall 2004 Olin Engineering Building, Room 128 Credits: 3.00 SOFTWARE TESTING 2. (Catalog description) Explores structural (glass box) methods for testing software.

More information

Manage Software Development in LabVIEW with Professional Tools

Manage Software Development in LabVIEW with Professional Tools Manage Software Development in LabVIEW with Professional Tools Introduction For many years, National Instruments LabVIEW software has been known as an easy-to-use development tool for building data acquisition

More information

In depth study - Dev teams tooling

In depth study - Dev teams tooling In depth study - Dev teams tooling Max Åberg mat09mab@ Jacob Burenstam Linder ada09jbu@ Desired feedback Structure of paper Problem description Inconsistencies git story explanation 1 Introduction Hypotheses

More information

Test Driven Development

Test Driven Development Test Driven Development Introduction Test Driven development (TDD) is a fairly recent (post 2000) design approach that originated from the Extreme Programming / Agile Methodologies design communities.

More information

Hands on exercise for

Hands on exercise for Hands on exercise for João Miguel Pereira 2011 0 Prerequisites, assumptions and notes Have Maven 2 installed in your computer Have Eclipse installed in your computer (Recommended: Indigo Version) I m assuming

More information

Desktop, Web and Mobile Testing Tutorials

Desktop, Web and Mobile Testing Tutorials Desktop, Web and Mobile Testing Tutorials * Windows and the Windows logo are trademarks of the Microsoft group of companies. 2 About the Tutorial With TestComplete, you can test applications of three major

More information

Continuous Integration. CSC 440: Software Engineering Slide #1

Continuous Integration. CSC 440: Software Engineering Slide #1 Continuous Integration CSC 440: Software Engineering Slide #1 Topics 1. Continuous integration 2. Configuration management 3. Types of version control 1. None 2. Lock-Modify-Unlock 3. Copy-Modify-Merge

More information

Delivering Quality Software with Continuous Integration

Delivering Quality Software with Continuous Integration Delivering Quality Software with Continuous Integration 01 02 03 04 Unit Check- Test Review In 05 06 07 Build Deploy Test In the following pages we will discuss the approach and systems that together make

More information

JUnit. Introduction to Unit Testing in Java

JUnit. Introduction to Unit Testing in Java JUnit Introduction to Unit Testing in Java Testing, 1 2 3 4, Testing What Does a Unit Test Test? The term unit predates the O-O era. Unit natural abstraction unit of an O-O system: class or its instantiated

More information

Refactoring-aware Configuration Management for Object-Oriented Programs

Refactoring-aware Configuration Management for Object-Oriented Programs Refactoring-aware Configuration Management for Object-Oriented Programs Danny Dig, Kashif Manzoor, Ralph Johnson University of Illinois at Urbana-Champaign {dig, manzoor2, rjohnson@uiuc.edu Tien N. Nguyen

More information

Software Development Tools

Software Development Tools Software Development Tools COMP220/COMP285 Sebastian Coope More on Automated Testing and Continuous Integration These slides are mainly based on Java Tools for Extreme Programming R.Hightower & N.Lesiecki.

More information

Eclipse Help

Eclipse Help Software configuration management We ll start with the nitty gritty and then get more abstract. Configuration and build Perdita Stevens School of Informatics University of Edinburgh 1. Version control

More information

IBM Tivoli Workload Scheduler Integration Workbench V8.6.: How to customize your automation environment by creating a custom Job Type plug-in

IBM Tivoli Workload Scheduler Integration Workbench V8.6.: How to customize your automation environment by creating a custom Job Type plug-in IBM Tivoli Workload Scheduler Integration Workbench V8.6.: How to customize your automation environment by creating a custom Job Type plug-in Author(s): Marco Ganci Abstract This document describes how

More information

feature t e s t- dr iven development Tool Support for Change- Centric Test Development

feature t e s t- dr iven development Tool Support for Change- Centric Test Development feature t e s t- dr iven development Tool Support for Change- Centric Test Development Jan Wloka, IBM Rational Einar W. Høst, Norwegian Computing Center Barbara G. Ryder, Virginia Tech Applying change

More information

Successfully managing geographically distributed development

Successfully managing geographically distributed development IBM Rational SCM solutions for distributed development August 2004 Successfully managing geographically distributed development Karen Wade SCM Product Marketing Manager IBM Software Group Page 2 Contents

More information

Essential Visual Studio Team System

Essential Visual Studio Team System Essential Visual Studio Team System Introduction This course helps software development teams successfully deliver complex software solutions with Microsoft Visual Studio Team System (VSTS). Discover how

More information

Visualizing Software Projects in JavaScript

Visualizing Software Projects in JavaScript Visualizing Software Projects in JavaScript Tim Disney Abstract Visualization techniques have been used to help programmers deepen their understanding of large software projects. However the existing visualization

More information

A Knowledge-based Product Derivation Process and some Ideas how to Integrate Product Development

A Knowledge-based Product Derivation Process and some Ideas how to Integrate Product Development A Knowledge-based Product Derivation Process and some Ideas how to Integrate Product Development (Position paper) Lothar Hotz and Andreas Günter HITeC c/o Fachbereich Informatik Universität Hamburg Hamburg,

More information

OpenText Output Transformation Server

OpenText Output Transformation Server OpenText Output Transformation Server Seamlessly manage and process content flow across the organization OpenText Output Transformation Server processes, extracts, transforms, repurposes, personalizes,

More information

Sonatype CLM for Maven. Sonatype CLM for Maven

Sonatype CLM for Maven. Sonatype CLM for Maven Sonatype CLM for Maven i Sonatype CLM for Maven Sonatype CLM for Maven ii Contents 1 Introduction 1 2 Creating a Component Index 3 2.1 Excluding Module Information Files in Continuous Integration Tools...........

More information

Curriculum Vitae. Zhenchang Xing

Curriculum Vitae. Zhenchang Xing Curriculum Vitae Zhenchang Xing Computing Science Department University of Alberta, Edmonton, Alberta T6G 2E8 Phone: (780) 433 0808 E-mail: xing@cs.ualberta.ca http://www.cs.ualberta.ca/~xing EDUCATION

More information

Optimizing Your Software Process

Optimizing Your Software Process Optimizing Your Software Process Software Configuration Management Best Practices Executive Summary Software configuration management (SCM) comprises of factors such as compliance, workflow, security,

More information

SourceAnywhere Service Configurator can be launched from Start -> All Programs -> Dynamsoft SourceAnywhere Server.

SourceAnywhere Service Configurator can be launched from Start -> All Programs -> Dynamsoft SourceAnywhere Server. Contents For Administrators... 3 Set up SourceAnywhere... 3 SourceAnywhere Service Configurator... 3 Start Service... 3 IP & Port... 3 SQL Connection... 4 SourceAnywhere Server Manager... 4 Add User...

More information

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS In order to ease the burden of application lifecycle management,

More information

Mapping Business Process Modeling constructs to Behavior Driven Development Ubiquitous Language

Mapping Business Process Modeling constructs to Behavior Driven Development Ubiquitous Language Mapping Business Process Modeling constructs to Behavior Driven Development Ubiquitous Language Rogerio Atem de Carvalho, Fernando Luiz de Carvalho e Silva, Rodrigo Soares Manhaes Emails: ratem@iff.edu.br,

More information

Software Developer Activity as a Source for Identifying Hidden Source Code Dependencies

Software Developer Activity as a Source for Identifying Hidden Source Code Dependencies Software Developer Activity as a Source for Identifying Hidden Source Code Dependencies Martin Konôpka, Mária Bieliková Slovak University of Technology, Faculty of Informatics and Information Technologies,

More information

1-04-10 Configuration Management: An Object-Based Method Barbara Dumas

1-04-10 Configuration Management: An Object-Based Method Barbara Dumas 1-04-10 Configuration Management: An Object-Based Method Barbara Dumas Payoff Configuration management (CM) helps an organization maintain an inventory of its software assets. In traditional CM systems,

More information