Continuous Integration (CI)

Slides:



Advertisements
Similar presentations
Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Advertisements

Continuous Integration (CI) By Jim Rush Version Control Build Test Report.
HP Quality Center Overview.
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
1 Software & Grid Middleware for Tier 2 Centers Rob Gardner Indiana University DOE/NSF Review of U.S. ATLAS and CMS Computing Projects Brookhaven National.
CASE Tools CIS 376 Bruce R. Maxim UM-Dearborn. Prerequisites to Software Tool Use Collection of useful tools that help in every step of building a product.
WORKDAY TECHNOLOGY Stan Swete CTO - Workday 1.
Maintaining and Updating Windows Server 2008
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Improving Software Quality with Continuous Integration
Who am I? ● Catalin Comanici ● QA for 10 years, doing test automation for about 6 years ● fun guy and rock star wannabe.
Talend 5.4 Architecture Adam Pemble Talend Professional Services.
ENTERPRISE JOB SCHEDULER SAJEEV RAMAKRISHNAN 29 AUG 2014.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
XNA Studio: Introduction to XNA Brian Keller Product Manager Microsoft Corporation.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Joel Bapaga on Web Design Strategies Technologies Commercial Value.
Tool name : Firebug A URL for more information about the tool, or where to buy or download it : Firebug is.
Trimble Connected Community
Framework for Automated Builds Natalia Ratnikova CHEP’03.
Testing Tools using Visual Studio Randy Pagels Sr. Developer Technology Specialist Microsoft Corporation.
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
Framework Universal & Infinite Software Solution.
XML in Development of Distributed Systems Tooling Programming Runtime.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
MAE Continuous Integration Administration guide July 8th, 2013.
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
KMS Products By Justin Saunders. Overview This presentation will discuss the following: –A list of KMS products selected for review –The typical components.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
Perforce Software Version Everything.. Visual Studio Industry Partner Perforce Software NEXT STEPS Contact us at: Perforce products.
Confidential Continuous Integration Framework (CIF) 5/18/2004.
Cluster Consistency Monitor. Why use a cluster consistency monitoring tool? A Cluster is by definition a setup of configurations to maintain the operation.
SQL Server 2008 R2 Manageability. Challenges facing database administrators today: Scaling management to multiple data centers Proactively monitoring.
TACTIC | Workflow: Project Management OSS on Microsoft Azure Helps Enterprises to Create Streamline, Manage, and Track Digital Content MICROSOFT AZURE.
Build automation. Prerequisites for Continuous Integration (CI)  Version Control System  Build automation  Notification on build result sent to related.
+ Logentries Is a Real-Time Log Analytics Service for Aggregating, Analyzing, and Alerting on Log Data from Microsoft Azure Apps and Systems MICROSOFT.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
GROUP PresentsPresents. WEB CRAWLER A visualization of links in the World Wide Web Software Engineering C Semester Two Massey University - Palmerston.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
Maintaining and Updating Windows Server 2008 Lesson 8.
DECTRIS Ltd Baden-Daettwil Switzerland Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)
PRODUCT - ORGANIZATION - AGILE - LEAN CD - Agile on Steroids - (and what Jenkins got to do with it) Paul Bakker linkedin.com/paulgbakker github.com/p-bakker.
Ognjen Bajić Ana Roje Ivančić Ekobit Efficient Application Testing.
Real Testing Scenario Strategy: A Real-life TestOps Environment
How We Do Test Automation at HomeAdvisor
DevOps for the IT Pro with Azure and Visual Studio Team Services
Appium Studio Appium testing made easy at any scale.
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Platform Overview Provide your marketing and sales groups with a single, integrated, web based on-demand platform that allows them to easily automate and.
Chapter 18 Maintaining Information Systems
Trends like agile development and continuous integration speak to the modern enterprise’s need to build software hyper-efficiently Jenkins:  a highly.
Brian Leonard ブライアン レオナルド
Enterprise Quality Roadmap
IBM Start Now Host Integration Solutions
Visual Studio 2005 “Personalized productivity”
Real Testing Scenario Strategy: Bringing this all together – Success!
Leigh Grundhoefer Indiana University
Simplified Development Toolkit
Module 01 ETICS Overview ETICS Online Tutorials
Software Test Automation and Tools
DAT381 Team Development with SQL Server 2005
Touchstone Testing Platform
Continuous Integration
CONTINUOUS INTEGRATION –WHY WE DO IT?
Node.js Test Automation using Oracle Developer Cloud- Simplified
Continuous Integration
Mark Quirk Head of Technology Developer & Platform Group
Jamie Cool Program Manager Microsoft
Presentation transcript:

Continuous Integration (CI) Report Test Version Control Build By Jim Rush 1

Agenda About Me What is Continuous Integration Components of Continuous Integration Commonly used Tools Tour through an actual Jenkins deployment Exploration of major components Advice 2

About Me Development Manager building enterprise products for Call Centers I work for Enghouse, which is a Canadian holding (acquisition) company. The local office was once known as Syntellect. In the last seven years we’ve built various types of products that are built and validated by CI systems: Telephony (call control) API (middleware) and User Interfaces (Winforms & SilverLight) Multiple development languages (Java, C#, C++) Different test tools and frameworks Team consists of those fresh out of school to the young at heart me@jimrush.net www.jimrush.net 3

What is Continuous Integration continuous integration (CI) implements continuous processes of applying quality control — small pieces of effort, applied frequently. Continuous integration aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development. ---Wikipedia 4

Periodically, Validate your Project More Simply Periodically, Validate your Project 5

Periodically, Validate your Project More Simply Periodically, Validate your Project Periodically – as often as you can afford to. Ideally, anytime something changes Validate – insure project is operating within a margin of expected results Project – Everything that constitutes the creation, validation and maintenance of your software. 6

Why Know when you break existing functionality. Issues are typically easier to address the sooner they are found. Issues are typically easier to address when the number of changes between working and failing is small. Visibility into health of project Fail fast – If there is a problem, discover and plan for it early. Don’t wait until the end of your project to realize it doesn’t work. 7

Common CI Components Software Repository (version control) Build Software Build scripts (Batch files, Ant Scripts, Make files, Visual Studio) Monitor and trigger process Software package that monitors software repositories for changes and triggers a build Identifies and reports failures/successes Automated Testing Unit, Integration, System, X-ability testing Metrics Collection and Reporting ESLOC, Test Counts, Code Coverage, performance data, … 8

Common CI Workflow Continuous Integration Manager Version Control Build Unit Test Integration Test System Test Reporting / Monitoring / Metrics 9

Continuous Integration Manager Manages the CI Workflow Monitors Version Control Handles CI workflow and dependencies Reporting Common Tools Cruise control Jenkins/Hudson Custom scripts and code http://en.wikipedia.org/wiki/List_of_build_automation_software 10

Why do I like Jenkins Reasonably friendly web based administration, but uses easy to change XML for persistence Flexible Enables distributed build and testing Provides a plugin for nearly every other available tool in the CI workflow Various artifact repositories Various triggers Authentication system, including not having one Very rich set of reporting components 11

Very Quick Tour of Jenkins 12

Our Main Page 13

Job Configuration 14

17

A Build Job (Compiles Project) 18

A Test Job 19

Custom Test Detail Report 20

Version Control System (VCS) If you aren’t using Version Control, why not? It can be free It’s fairly easy to setup and manage a basic repository Why to have it Backups Tracking changes to time, person, feature, … Support multiple versions of code including exploratory versions Common Solutions Subversion (SVN) Mercurial GIT … 21

Building A build is any set of steps that creates a distribution Compiles(if needed) are usually technology driven Common tools: Apache Ant Maven Batch files / Shell scripts Common Challenges Repositories or other intermediate build components Error reporting Dependency management Build efficiency 23

Build Advice Build a complete product including installation Invest in quality build scripts Well documented Good logging Good error handling and reporting Build all distribution flavors Multiple project members can maintain the build Apply static code analysis or other tools that can validate your code Profile your builds Design builds to support distribution 24

Testing Testing Types Common automation tools/frameworks Unit – modular, isolated Integration – not modular nor isolated System – Complete distribution and dependencies Common automation tools/frameworks Code testing: xUnit (Junit, NetUnit,…) UI Testing tools: Accessibility layers and/or commercial products Custom scripts, frameworks and simulators Testing Results Junit XML files are the most flexible Test count Code coverage 25

Testing Advice Write quality tests cases as they can become harder to maintain than the product Provide good feedback for working and failing steps Test failure recovery can be hard Integration and Testing frameworks can be more complicated and more difficult than the project you are creating 26

Metrics Collect what is important or useful Most data is only valuable as a trend There are no magic goals for some data 27

Metrics Advice Unless you have a tool that captures what you want, build your own. Simple code to collect and a database is all you need. Writing small applications that grab data and generate HTML isn’t hard. Linking graphs to data tables in Excel is easy. Periodically review the data 28

Metrics presented with Excel 29

Detail Test Report Showing last 10 test results 30

Code Coverage with Cobertura 31

Thinking about your CI Infrastructure It can be general purpose trigger and scheduling tool It can be a reporting / metrics hub It doesn’t have to be singular Multiple sites / teams Different versions or types of projects 32

Parting Advice Treat your CI environment as a core part of your project Multiple people should understand it your CI system Knowledge is power (metrics/project insight), but use it carefully Data doesn’t have to be pretty, focus on content and value Continuously Improve – Allocate time to improve Don’t let your process or metrics make you stupid; focus on your goals and how you are going to get there There isn’t enough time to do everything, prioritize It is both easier, and harder than it appears Your infrastructure needs to be reliable enough to be trusted 33

Questions ? 34