SOFTWARE DEVELOPMENT BASICS SED

Similar documents
Software configuration management

Continuous Integration

Introduction to Programming Tools. Anjana & Shankar September,2010

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Software Configuration Management and Continuous Integration

vs. Web Site: Blog: blog.soebes.com Dipl.Ing.(FH) Karl Heinz Marbaise

Continuous Integration and Delivery at NSIDC

Source Control Systems

Version Control with Subversion

Version Control! Scenarios, Working with Git!

Jenkins: The Definitive Guide

Continuous Integration

Beginners guide to continuous integration. Gilles QUERRET Riverside Software

Delivering Quality Software with Continuous Integration

GENiC. Deliverable D5.1 Development & Integration guidelines including integration environment & means. Dissemination Level: Public

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

Software infrastructure for Java development projects

Content. Development Tools 2(63)

Continuous Integration: Put it at the heart of your development

Software Configuration Management. Context. Learning Objectives

November 12 th 13 th London: Mastering Continuous Integration with Jenkins

DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014

SMZ. SocialMedia. Z olutions

Continuous Integration (CI)

Revision control systems (RCS) and

LECTURES NOTES Organisational Aspects of Software Development

Mastering Continuous Integration with Jenkins

SA4 Software Developer Survey Survey Specification v2.2

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

Software Configuration Management

Build management & Continuous integration. with Maven & Hudson

Version Control with Subversion and Xcode

JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones

Version Control Tools

Continuous Integration: A case study

Version Control Systems

CSE 70: Software Development Pipeline Version Control with Subversion, Continuous Integration with Bamboo, Issue Tracking with Jira

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

In depth study - Dev teams tooling

<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style

NXTware Remote. Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms

Meister Going Beyond Maven

Software Construction

Advanced Computing Tools for Applied Research Chapter 4. Version control

Java Software Quality Tools and techniques

Software Delivery Integration and Source Code Management. for Suppliers

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

Beginner s guide to continuous integration. Gilles QUERRET Riverside Software

Hudson Continous Integration Server. Stefan Saasen,

Kevin Lee Technical Consultant As part of a normal software build and release process

SOE. managing change in system development projects: configuration management

Maven the Beautiful City. Healthy, Viable, and Productive Build Infrastructures

HP SAP. Where Development, Test and Operations meet. Application Lifecycle Management

Leveraging Rational Team Concert's build capabilities for Continuous Integration

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

How To Use An Orgsync With Anorgfusion Middleware

Building, testing and deploying mobile apps with Jenkins & friends

Case Study: Using Jenkins to Build WebSphere Portal Applications for the Enterprise. #jenkinsconf. Jenkins User Conference Boston #jenkinsconf

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

Version control with GIT

ALERT installation setup

Theme 1 Software Processes. Software Configuration Management

Global Software Change Management for PVCS Version Manager

Version Control. Luka Milovanov

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Continuous Delivery. Alejandro Ruiz

Quality Cruising. Making Java Work for Erlang. Erik (Happi) Stenman

Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat

Developer Workshop Marc Dumontier McMaster/OSCAR-EMR

Build Automation for Mobile. or How to Deliver Quality Apps Continuously. Angelo Rüggeberg

@jenkinsconf. Maintaining huge Jenkins clusters - Have we reached the limit of Jenkins?

One solution for all your Source Configuration Management Needs

Continuous Integration Processes and SCM To Support Test Automation

Continuous Integration Multi-Stage Builds for Quality Assurance

Building Value with Continuous Integration

Zero-Touch Drupal Deployment

Continuous Integration. CSC 440: Software Engineering Slide #1

Modulo II Software Configuration Management - SCM

Software Development Processes For Embedded Development A checklist for efficient development using open-source tools

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

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

TEST AUTOMATION FRAMEWORK

Developing Applications Using Continuous Integration 12c (12.2.1)

Jenkins on Windows with StreamBase

Software Engineering Process. Kevin Cathey

Deliverable DS4.3.2: Report on Development Infrastructure Usage and Adoption

Transcription:

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

1 INRIA FORGE 16 DECEMBRE 2011-3

Inria Forge You will learn How To: Create and configure an Inria Forge account; Use the main features of Inria Forge; Use a source code manager (SCM). 16 DECEMBRE 2011-4

Inria Forge 1. What is Inria Forge? 2. How to get started? 3. Source code management (SCM). 4. Get support. 16 DECEMBRE 2011-5

What is Inria Forge? Wikipedia: «A software forge is a collaboration platform allowing collaborative software development over the Internet. [...] Software developers who are registered as contributors to the hosted projects can then use the various project management tools, and software development tools.» Associated tools: Source code management (svn and git); Web hosting, wiki; Bug tracker; File manager; Task manager; news, web forums... 16 DECEMBRE 2011-6

What is Inria Forge? When to use Inria Forge? Paper writing with other people; Software development; Paper or software collaboration with non-inria people. - Personal files! 16 DECEMBRE 2011-7

How to Get Started? Connect you on: https://gforge.inria.fr Create a user account Upload your ssh key Create a new project or ask to join an existing one 16 DECEMBRE 2011-8

Source Code Management A definition: «Source code management (SCM) is the task of tracking and controlling changes in the software, allows to recover older versions of your data and manages concurrent version.» Version Control System (VCS) in the Inria Forge: Subversion (centralized) Git (distributed) Centralized: only one central repository. Distributed: several repositories, peer to peer approach. 16 DECEMBRE 2011-9

Source Code Management Example with Subversion... Repository [//server/repository/] Working copy [~/my_project/] project 1 project 1 project 2 project 3 all versions «history» information folder structure : private workspace state information - trunk - branches - tags 16 DECEMBRE 2011-10

Source Code Management Example with Subversion... Repository [//server/repository/] Working copy [~/my_project/] Best Practice project 1 Prevent your code base from turning into a museum. project 1 project 2 project 3 all versions «history» information folder structure : private workspace state information - trunk - branches - tags 16 DECEMBRE 2011-11

Source Code Management Example with Subversion... checkout Developer A Repository Developer B 16 DECEMBRE 2011-12

Source Code Management Example with Subversion... development Developer A Repository Developer B 16 DECEMBRE 2011-13

Source Code Management Example with Subversion... development Developer A Best Practice Repository One change at a time. Developer B 16 DECEMBRE 2011-14

Source Code Management Example with Subversion... commit Developer A Repository Developer B 16 DECEMBRE 2011-15

Source Code Management Example with Subversion... update Developer A Repository Developer B 16 DECEMBRE 2011-16

Source Code Management Example with Subversion... commit Developer A Repository Developer B 16 DECEMBRE 2011-17

Source Code Management Example with Subversion... commit Developer A Repository Developer B 16 DECEMBRE 2011-18

Source Code Management Example with Subversion... merge Developer A Repository Developer B conflict 16 DECEMBRE 2011-19

Source Code Management Example with Subversion... diff Developer A Repository Developer B conflict 16 DECEMBRE 2011-20

Source Code Management Example with Subversion... commit Developer A Repository Developer B 16 DECEMBRE 2011-21

Decentralized Version Control System Anarchic Centralized Linux kernel model Branch by functionality or Release train How do you think of making to manage your project? 16 DECEMBRE 2011-22

Get Support Introduction: http://siteadmin.gforge.inria.fr/gforge.html FAQ: http://siteadmin.gforge.inria.fr/faq.html Support: help.et.gforge@inria.fr 16 DECEMBRE 2011-23

2 BUILD PROCESS OF SOFTWARE 16 DECEMBRE 2011-24

Build Process of Software You will learn How To: Automate different tasks of software development: Compiling source code into binary; Dependencies management; Software portability. 16 DECEMBRE 2011-25

Build Process of Software 1. What is the build? 2. Associated tools 3. Create a project 16 DECEMBRE 2011-26

What is the Build? A definition: «Build process consists in scripting or automating different tasks (compiling, packaging, running test...) that software developers do to build an operational software from source files.» Examples of tasks: Dependencies management; Software portability; Compilation; Software testing; Package management;... 16 DECEMBRE 2011-27

What is the Build? A definition: «Build process consists in scripting or automating different tasks (compiling, packaging, running test...) that software developers do to build an operational software from source files.» Best Practice Examples of tasks: Dependencies management; Three strikes Software portability; Compilation; Software testing; Package management;... and you automate. 16 DECEMBRE 2011-28

Tools (not exhaustive) C++ JAVA Make et Autotools; CMake; Qmake. ANT; Maven. 16 DECEMBRE 2011-29

CMake Developed by Kitware on BSD Licence, Cmake is a cross-platform, open-source system for managing the build process of software using a compiler independent method.

Maven Convention over configuration! Build tool ++ a set of standards, a project lifecycle, a dependency management system, and logic for executing plugin goals at defined phases in a lifecycle.

Build Process of Software You will learn How To: Implement unit testing; Implement integration testing. Practical class https://gforge.inria.fr/frs/download.php/29987/build.tar.gz 16 DECEMBRE 2011-32

Build Process of Software Feedback 16 DECEMBRE 2011-33

3 SOFTWARE TESTING 16 DECEMBRE 2011-34

Software Testing You will learn How To: Implement unit testing; Implement integration testing. 16 DECEMBRE 2011-35

Software Testing 1. Why software testing? 2. Main tests 3. Politic of testing 16 DECEMBRE 2011-36

Why Software Testing? A definition: «Software testing is an activity which allows to verify during development life cycle than a software respects functional requirements and specifications.» Minimizing the risks of failures. Testing is less costly than debugging (wikipedia) 16 DECEMBRE 2011-37

Main Tests Unit testing; Integration testing; Acceptance testing; Regression testing. 16 DECEMBRE 2011-38

Main Tests Unit testing; Integration testing; Best Practice Think of code and tests as one. Acceptance testing; Regression testing. Best Practice Don't change code without a test. 16 DECEMBRE 2011-39

Politic of Testing C++ JAVA CMake; Unit testing frameworks: CppTest; Unit++; CxxTest; Junit. Cobertura. Valgrind; LCOV. 16 DECEMBRE 2011-40

Software Testing Practical class https://gforge.inria.fr/frs/download.php/29992/tests.tar.gz 16 DECEMBRE 2011-41

Software Testing Feedback Requirements management Software testing and SCM 16 DECEMBRE 2011-42

4 CONTINUOUS INTEGRATION 16 DECEMBRE 2011-43

Continuous Integration You will learn How To: run and configure Jenkins; create new jobs; and bind jenkins with a SVN server. 16 DECEMBRE 2011-44

Continuous Integration 1. What is Continuous Integration? 2. First steps with Continuous Integration 3. Continuous Integration @ Lille 16 DECEMBRE 2011-45

What is Continuous Integration? Help to validate integration at each change on the project Comes from Extreme Programming (XP), as 1 of 12 original practices Improve quality of software Reduce the time to deliver it Automation is the way Automate recurrent tasks related to development environment build tests publish doc and executables Minimum daily 16 DECEMBRE 2011-46

CI Servers Common Features Build management Manually SCM polling Temporal scheduling Parallel (several projects simultaneously) Distributed Test reporting Notification email, IM, RSS,... 16 DECEMBRE 2011-47

First steps with Continuous Integration A single source code repository An automated build process A test suite A continuous integration software

Hudson Jenkins 16 DECEMBRE 2011-49

Hudson Jenkins 16 DECEMBRE 2011-50

Continuous Integration @ Lille Towards continuous integration as a service! Request a project at http://ci.lille.inria.fr/register Your project available at http://ci.lille.inria.fr/myproject Documentation : http://ci.lille.inria.fr

CI Servers Common Features Features Hosted web portal Backup Network Security Reliability Unix slave upon request Integration with other slaves Continuous Integration portal management Users Software revision Dedicated qualification area SSH key for slave connection 16 DECEMBRE 2011-52

Continuous Integration Practical class https://gforge.inria.fr/frs/download.php/29979/ci.tar.gz 16 DECEMBRE 2011-53

Continuous Integration Easier to find and remove bugs Continuous Integration reduces risks No long iteration, eliminate the blind spot At all time you know where you are Help to focus on tests Encourage more frequent deployments 16 DECEMBRE 2011-54

Thank you for your attention sed-lille@inria.fr https://sed.lille.inria.fr