SlideShare una empresa de Scribd logo
1 de 84
Descargar para leer sin conexión
TEST MANAGERS FORUM 2014
SYDNEY, AUSTRALIA
CONTINUOUS INTEGRATION
CONTINUOUS DELIVERY
1
2
WHO AM I?
Gridfusion Software Solutions
Contact:
Michael Palotas
Gerbiweg 2
8853 Lachen
SWITZERLAND
Tel.: +41 79 6690708
Email: michael.palotas@gridfusion.net
Head of Productivity & Test Engineering, eBay
Founder / Principal Consultant
Gridfusion Software Solutions
SETTING THE STAGE
Tell me about yourself J
What are your expectations for today?
3
Your setup
How do you build software?
4
WHAT IS SO SPECIAL ABOUT AGILE?
5
WHY CI/CD?
6
WHAT IS IMPORTANT IN AGILE?
7
Agile
=
Release working software anytime
8
Traditional waterfall model / tools do not support
“build and deploy anytime”
9
WHAT IS CI / CD?
CI and CD
=
Automated Build?
Automated Tests?
Automated Quality?
Automated Deployment?
Automated Feedback?
10
WHY CI / CD
Deliver value to the business more frequently
Better Quality
Early Bugs
Bug Prevention instead of late detection
Fast & frequent feedback
11
WHY CI / CD
Automated frequent builds
Automated frequent tests
Automated frequent code quality metrics
(Hopefully) Fewer bugs
Fast feedback
12
WITHOUT CI
Slow / long release cycles
Late testing
Waterfall (WaterScrum)
Bugs
Slow feedback
Complex integration
13
CORE PRINCIPLES
Every build could be a release
Everything should be automated
Stable and trustworthy automated tests
Build pipelines
14
RELEASING IN THE OLD WORLD
15
Coding Deploy to
QA
QA Deploy to
Production
Production
Smoke
Tests
Bug
Bashes
CI / CD - CORE WORKFLOW
16
Compile
Unit Test
Deploy to QA
Acceptance tests
Deploy to Production
Production Smoke Tests
Code Quality
THE MAIN TASKS
Automated build
Automated code quality
Automated testing
Automated deployment
17
18
Wakaleo.com
CAN YOU MEASURE AUTOMATED CODE
QUALITY? DOES THAT MAKE SENSE?
19
AUTOMATED CODE QUALITY?
Sonar gives you information on:
-  Lines of code
-  % of comments
-  Duplications
-  Complexity
-  Rules compliance
-  Unit test coverage
-  Unit test success rate
-  Unit test duration
-  Hotspots
20
CAN / SHOULD YOU AUTOMATE EVERYTHING?
21
WHAT SHOULD YOU AUTOMATE?
22
WHAT ARE BARRIERS TO CI / CD?
23
WHAT IS CONTIUOUS INTEGRATION?
24
Continuous integration (CI) is the practice, in software engineering,
of merging all developer working copies with a shared mainline
several times a day. It was first named and proposed as part of
extreme programming (XP). Its main aim is to prevent integration
problems, referred to as "integration hell" in early descriptions of XP.
CI can be seen as an intensification of practices of periodic
integration advocated by earlier published methods of incremental
and iterative software development, such as the Booch method. CI
isn't universally accepted as an improvement over frequent
integration, so it is important to distinguish between the two as there
is disagreement about the virtues of each.
WHAT IS CONTINUOUS DELIVERY?
25
Continuous Delivery (CD) is a design practice used in software
development to automate and improve the process of software
delivery. Techniques such as automated testing, continuous
integration and continuous deployment allow software to be
developed to a high standard and easily packaged and
deployed to test environments, resulting in the ability to
rapidly, reliably and repeatedly push out enhancements and
bug fixes to customers at low risk and with minimal manual
overhead. The technique was one of the assumptions of
extreme programming but at an enterprise level has
developed into a discipline of its own, with job descriptions for
roles such as "buildmaster" calling for CD skills as mandatory.
THE MANAGEMENT / ORGANIZATIONAL ASPECT
What are the changes for developers and
testers?
What needs to be changed in the organization to
enable them to implement CI / CD?
What role has management in creating a devops
culture?
26
OUR TOOLS
Version Control System GIT
Build Tool MAVEN
Unit Test Framework JUNIT / TESTNG
End To End Test Framework SELENIUM
Build Server / Deployment JENKINS
27
Branching & Merging
Small and Fast
Distributed
Data Assurance
Staging Area
Free and Open Source
VERSION CONTROL: GIT
28
http://git-scm.com/about/
GIT: BRANCHING & MERGING
29
Git-scm.com
GIT: SMALL & FAST
30
Git-scm.com
GIT: THE REST
Distributed
Data Assurance
Staging Area
Free & Open Source
31
GIT
Distributed / local
Download: http://git-scm.com/
Initialize directory: git init
Status: git status
Add files and directories to git: git add file1 dir2
Commit: git commit –am “commit message”
32
SHARE YOUR CODE - GITHUB
Create repository on Github: https://github.com
Create remote: git remote add origin https://…
Push code to Github: git push origin master
Tag your code: git tag –a v0.1 –m “initial version”
Push tag to Github: git push origin v0.1
33
GITHUB
34
CONNECT GIT AND GITHUB
35
Silverpeas.org
MAVEN
36
Apache Maven is a software project
management and comprehension tool. Based
on the concept of a project object model (POM),
Maven can manage a project's build, reporting
and documentation from a central piece of
information.
http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
POM.XML
The pom.xml file is the core of a project's
configuration in Maven. It is a single
configuration file that contains the majority of
information required to build a project in just
the way you want.
37
POM.XML
38
MAVEN TARGETS
validate: validate the project is correct and all necessary information is available
compile: compile the source code of the project
test: test the compiled source code using a suitable unit testing framework. These tests should not
require the code be packaged or deployed
package: take the compiled code and package it in its distributable format, such as a JAR.
integration-test: process and deploy the package if necessary into an environment where integration
tests can be run
verify: run any checks to verify the package is valid and meets quality criteria
install: install the package into the local repository, for use as a dependency in other projects locally
deploy: done in an integration or release environment, copies the final package to the remote repository
for sharing with other developers and projects.
clean: cleans up artifacts created by prior builds
39
EXAMPLES
mvn clean
mvn compile
mvn test
40
CONTINUOUS INTEGRATION - JENKINS
Download at http://jenkins-ci.org/
41
RECAP
WHAT DO WE EXPECT
THE CI SYSTEM TO DO?
42
43
A JENKINS JOB
44
WHAT JENKINS DOES
Jenkins checks out the workspace from Github
Builds and runs tests locally according to POM
Runs maven targets according to POM
description
45
A SIMPLE BUILD JOB
46
A SIMPLE BUILD JOB
1.  Add / change some code
2.  Push to Github repository
3.  Let Jenkins pick up the change
4.  Perform mvn clean compile targets
5.  Perform mvn test target (unit tests only)
47
TEST AUTOMATION
Unit Tests
E2E
Tests
Manual Tests
Integration Tests
WHAT IS SELENIUM?
Selenium automates browsers
that’s it
…
E2E / UAT AUTOMATION WITH SELENIUM
50
CLIENT SERVER
JSON Wire Protocol
BROWSER
SELENIUM
JSON WIRE
PROTOCOL
Client
Java
C#
Ruby
Python
Server Driver
Driver
Driver
CLIENT
Is seen as „Selenium“ by the users
Generates HTTP requests which are received by the server
Is called by the test framework or the CI server
Supported languages: Java, C#, Python, Ruby, Perl, PHP,
JS
SERVER
Receives HTTP requests
Start and teardown of browser
Translates requests into browser specific commands
Communicates back to the client
SELENIUM GRID
Sequential Execution
Test 1 Test 2
Test
…
Test
4500
Execution Time
Test 3
Parallel Execution
Test Test Test
Execution Time
Test
Test Test TestTest
Test Test TestTest
ParallelExecution
ParallelExecution
SELENIUM GRID
TEST INFRASTRUCTURE
AUT
DB
API
Browsers
Mobiles
CLIENT
57
A SIMPLE SELENIUM TEST
58
59
LET’S BUILD A BUILD / DEPLOYMENT PIPELINE
60
THE MASTER JOB
61
Unit Test
Deploy to QA
Acceptance tests
Deploy to Production
Production Smoke Tests
Code Coverage
THE APPLICATION
62
63
CONNECT CODE WITH GITHUB
64
UNIT TESTS
65
RUN UNIT TESTS LOCALLY
Run from eclipse
Run from maven
66
67
UNIT TEST COVERAGE - COBERTURA
68
69
SONAR: CODE ANALYSIS / CODE QUALITY
70
71
WE ARE READY FOR THE NEXT STEP
ADD CI JENKINS
SET UP JENKINS JOBS
-  Master Job
-  Run unit tests
-  Deploy to QA
-  Run E2E tests
-  Deploy to PROD
-  Run PROD smoke tests
72
MASTER JOB
73
JOB: UNIT TESTS (1)
74
JOB: UNIT TEST (2)
75
JOB: DEPLOY TO QA
76
JOB: INTEGRATION TESTS
77
JOB: DEPLOY TO PRODUCTION
78
JOB: PRODUCTION SMOKE TESTS
79
JOB: SONAR
80
JOB: COBERTURA
81
PIPELINE: HAPPY PATH
82
PIPELINE: UNHAPPY PATH
83
THANK YOU!
84

Más contenido relacionado

La actualidad más candente

Continuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryContinuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryJohn Ferguson Smart Limited
 
Increasing Quality with DevOps
Increasing Quality with DevOpsIncreasing Quality with DevOps
Increasing Quality with DevOpsCoveros, Inc.
 
CLA Summit 2013: Connecting LabVIEW to Everything Else
CLA Summit 2013: Connecting LabVIEW to Everything ElseCLA Summit 2013: Connecting LabVIEW to Everything Else
CLA Summit 2013: Connecting LabVIEW to Everything ElseJKI
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Mike McGarr
 
不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradlesam chiu
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0Jasmine Conseil
 
NIWeek 2012: Fire and Forget / Bulletproof Builds Using Continuous Integratio...
NIWeek 2012: Fire and Forget / Bulletproof Builds Using Continuous Integratio...NIWeek 2012: Fire and Forget / Bulletproof Builds Using Continuous Integratio...
NIWeek 2012: Fire and Forget / Bulletproof Builds Using Continuous Integratio...JKI
 
10 Things You Might Not Know: Continuous Integration
10 Things You Might Not Know: Continuous Integration10 Things You Might Not Know: Continuous Integration
10 Things You Might Not Know: Continuous IntegrationCoveros, Inc.
 
Building Security in Using CI
Building Security in Using CIBuilding Security in Using CI
Building Security in Using CICoveros, Inc.
 
Simple ci cd with strider cd
Simple ci cd with strider cdSimple ci cd with strider cd
Simple ci cd with strider cdAmandeep Singh
 
Continuous Delivery vs Continuous Deployment | DevOps Methodology | Devops Tr...
Continuous Delivery vs Continuous Deployment | DevOps Methodology | Devops Tr...Continuous Delivery vs Continuous Deployment | DevOps Methodology | Devops Tr...
Continuous Delivery vs Continuous Deployment | DevOps Methodology | Devops Tr...Edureka!
 
Continuous Integration for Beginners
Continuous Integration for BeginnersContinuous Integration for Beginners
Continuous Integration for BeginnersYüce Çelikel
 
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to BeKeeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to BeAbraham Marin-Perez
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDGlobalLogic Ukraine
 
Automate your build on Android with Jenkins
Automate your build on Android with JenkinsAutomate your build on Android with Jenkins
Automate your build on Android with JenkinsBeMyApp
 
CI-CD and DevOps with Ruby
CI-CD and DevOps with RubyCI-CD and DevOps with Ruby
CI-CD and DevOps with RubyPierluigi Riti
 
Introduction to dev ops
Introduction to dev opsIntroduction to dev ops
Introduction to dev opsAbdul Rahim
 

La actualidad más candente (19)

Continuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryContinuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous Delivery
 
Increasing Quality with DevOps
Increasing Quality with DevOpsIncreasing Quality with DevOps
Increasing Quality with DevOps
 
CLA Summit 2013: Connecting LabVIEW to Everything Else
CLA Summit 2013: Connecting LabVIEW to Everything ElseCLA Summit 2013: Connecting LabVIEW to Everything Else
CLA Summit 2013: Connecting LabVIEW to Everything Else
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)
 
不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
 
The Eclipse Way
The Eclipse WayThe Eclipse Way
The Eclipse Way
 
NIWeek 2012: Fire and Forget / Bulletproof Builds Using Continuous Integratio...
NIWeek 2012: Fire and Forget / Bulletproof Builds Using Continuous Integratio...NIWeek 2012: Fire and Forget / Bulletproof Builds Using Continuous Integratio...
NIWeek 2012: Fire and Forget / Bulletproof Builds Using Continuous Integratio...
 
10 Things You Might Not Know: Continuous Integration
10 Things You Might Not Know: Continuous Integration10 Things You Might Not Know: Continuous Integration
10 Things You Might Not Know: Continuous Integration
 
Building Security in Using CI
Building Security in Using CIBuilding Security in Using CI
Building Security in Using CI
 
Simple ci cd with strider cd
Simple ci cd with strider cdSimple ci cd with strider cd
Simple ci cd with strider cd
 
Continuous Delivery vs Continuous Deployment | DevOps Methodology | Devops Tr...
Continuous Delivery vs Continuous Deployment | DevOps Methodology | Devops Tr...Continuous Delivery vs Continuous Deployment | DevOps Methodology | Devops Tr...
Continuous Delivery vs Continuous Deployment | DevOps Methodology | Devops Tr...
 
Continuous Integration for Beginners
Continuous Integration for BeginnersContinuous Integration for Beginners
Continuous Integration for Beginners
 
DevOps Delivery Pipeline
DevOps Delivery PipelineDevOps Delivery Pipeline
DevOps Delivery Pipeline
 
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to BeKeeping Your CI/CD Pipeline as Fast as It Needs to Be
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CD
 
Automate your build on Android with Jenkins
Automate your build on Android with JenkinsAutomate your build on Android with Jenkins
Automate your build on Android with Jenkins
 
CI-CD and DevOps with Ruby
CI-CD and DevOps with RubyCI-CD and DevOps with Ruby
CI-CD and DevOps with Ruby
 
Introduction to dev ops
Introduction to dev opsIntroduction to dev ops
Introduction to dev ops
 

Similar a TMF2014 CI-CD Workshop Michael Palotas

Continuous Everything
Continuous EverythingContinuous Everything
Continuous EverythingAndrea Tino
 
Building a CI/CD Pipeline for PHP apps
Building a CI/CD Pipeline for PHP appsBuilding a CI/CD Pipeline for PHP apps
Building a CI/CD Pipeline for PHP appsJuan Manuel Torres
 
OpenTuesday: Aktuelle Standards der agilen Softwareentwicklung
OpenTuesday: Aktuelle Standards der agilen SoftwareentwicklungOpenTuesday: Aktuelle Standards der agilen Softwareentwicklung
OpenTuesday: Aktuelle Standards der agilen SoftwareentwicklungDigicomp Academy AG
 
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...Puppet
 
Deploying Mule Applications with Jenkins, Azure and BitBucket (1).pptx
Deploying Mule Applications with Jenkins, Azure and BitBucket (1).pptxDeploying Mule Applications with Jenkins, Azure and BitBucket (1).pptx
Deploying Mule Applications with Jenkins, Azure and BitBucket (1).pptxPankaj Goyal
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery AppliedExcella
 
SCALABLE CI CD DEVOPS
SCALABLE CI CD DEVOPSSCALABLE CI CD DEVOPS
SCALABLE CI CD DEVOPSG R VISHAL
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsMohamed Samy
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applicationsSunil Dalal
 
Continuous integration for se group meeting
Continuous integration for se group meetingContinuous integration for se group meeting
Continuous integration for se group meetingSergii Shmarkatiuk
 
Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Mike McGarr
 
CICD_BestPractices.pdf
CICD_BestPractices.pdfCICD_BestPractices.pdf
CICD_BestPractices.pdfmotupalli2
 
Edureka-DevOps-Ebook.pdf
Edureka-DevOps-Ebook.pdfEdureka-DevOps-Ebook.pdf
Edureka-DevOps-Ebook.pdfrelekarsushant
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthGrace Jansen
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle ManagementAmazon Web Services
 
Scale security for a dollar or less
Scale security for a dollar or lessScale security for a dollar or less
Scale security for a dollar or lessMohammed A. Imran
 
Transform Digital Business with DevOps
Transform Digital Business with DevOpsTransform Digital Business with DevOps
Transform Digital Business with DevOpsDaniel Oh
 
CICD Pipeline - AWS Azure
CICD Pipeline - AWS AzureCICD Pipeline - AWS Azure
CICD Pipeline - AWS AzureRatan Das
 

Similar a TMF2014 CI-CD Workshop Michael Palotas (20)

Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Building a CI/CD Pipeline for PHP apps
Building a CI/CD Pipeline for PHP appsBuilding a CI/CD Pipeline for PHP apps
Building a CI/CD Pipeline for PHP apps
 
OpenTuesday: Aktuelle Standards der agilen Softwareentwicklung
OpenTuesday: Aktuelle Standards der agilen SoftwareentwicklungOpenTuesday: Aktuelle Standards der agilen Softwareentwicklung
OpenTuesday: Aktuelle Standards der agilen Softwareentwicklung
 
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
PuppetConf 2016: Continuous Delivery and DevOps with Jenkins and Puppet Enter...
 
Deploying Mule Applications with Jenkins, Azure and BitBucket (1).pptx
Deploying Mule Applications with Jenkins, Azure and BitBucket (1).pptxDeploying Mule Applications with Jenkins, Azure and BitBucket (1).pptx
Deploying Mule Applications with Jenkins, Azure and BitBucket (1).pptx
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
SCALABLE CI CD DEVOPS
SCALABLE CI CD DEVOPSSCALABLE CI CD DEVOPS
SCALABLE CI CD DEVOPS
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
Continuous integration for se group meeting
Continuous integration for se group meetingContinuous integration for se group meeting
Continuous integration for se group meeting
 
Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)
 
DevOps-Ebook
DevOps-EbookDevOps-Ebook
DevOps-Ebook
 
CICD_BestPractices.pdf
CICD_BestPractices.pdfCICD_BestPractices.pdf
CICD_BestPractices.pdf
 
Edureka-DevOps-Ebook.pdf
Edureka-DevOps-Ebook.pdfEdureka-DevOps-Ebook.pdf
Edureka-DevOps-Ebook.pdf
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
Scale security for a dollar or less
Scale security for a dollar or lessScale security for a dollar or less
Scale security for a dollar or less
 
Transform Digital Business with DevOps
Transform Digital Business with DevOpsTransform Digital Business with DevOps
Transform Digital Business with DevOps
 
CICD Pipeline - AWS Azure
CICD Pipeline - AWS AzureCICD Pipeline - AWS Azure
CICD Pipeline - AWS Azure
 

Más de KJR

5 Reasons to attend iqnite 2014 Conference
5 Reasons to attend iqnite 2014 Conference5 Reasons to attend iqnite 2014 Conference
5 Reasons to attend iqnite 2014 ConferenceKJR
 
Test process improvement (TPI) By KJ Ross
Test process improvement (TPI) By KJ RossTest process improvement (TPI) By KJ Ross
Test process improvement (TPI) By KJ RossKJR
 
TMF2014 Mobile Testing Workshop Michael Palotas
TMF2014 Mobile Testing Workshop Michael PalotasTMF2014 Mobile Testing Workshop Michael Palotas
TMF2014 Mobile Testing Workshop Michael PalotasKJR
 
TMF 2014 Event Proceedings
TMF 2014 Event ProceedingsTMF 2014 Event Proceedings
TMF 2014 Event ProceedingsKJR
 
TMF2014 Andrew Prentice presentation
TMF2014 Andrew Prentice presentationTMF2014 Andrew Prentice presentation
TMF2014 Andrew Prentice presentationKJR
 
TMF2014 Thinksoft Automation Presentation
TMF2014 Thinksoft Automation PresentationTMF2014 Thinksoft Automation Presentation
TMF2014 Thinksoft Automation PresentationKJR
 
TMF2014 C Birmele-Microsoft Azure presentation
TMF2014 C Birmele-Microsoft Azure presentationTMF2014 C Birmele-Microsoft Azure presentation
TMF2014 C Birmele-Microsoft Azure presentationKJR
 
TMF2014 Testing Disruption-K Ross
TMF2014 Testing Disruption-K RossTMF2014 Testing Disruption-K Ross
TMF2014 Testing Disruption-K RossKJR
 
KJ Ross Whitepaper Crash Test your Requirements
KJ Ross Whitepaper Crash Test your RequirementsKJ Ross Whitepaper Crash Test your Requirements
KJ Ross Whitepaper Crash Test your RequirementsKJR
 
KJ Ross Whitepaper How CXO's can reduce IT Project risk by improving software...
KJ Ross Whitepaper How CXO's can reduce IT Project risk by improving software...KJ Ross Whitepaper How CXO's can reduce IT Project risk by improving software...
KJ Ross Whitepaper How CXO's can reduce IT Project risk by improving software...KJR
 
KJ Ross Software Testing Training Pack
KJ Ross Software Testing Training PackKJ Ross Software Testing Training Pack
KJ Ross Software Testing Training PackKJR
 

Más de KJR (11)

5 Reasons to attend iqnite 2014 Conference
5 Reasons to attend iqnite 2014 Conference5 Reasons to attend iqnite 2014 Conference
5 Reasons to attend iqnite 2014 Conference
 
Test process improvement (TPI) By KJ Ross
Test process improvement (TPI) By KJ RossTest process improvement (TPI) By KJ Ross
Test process improvement (TPI) By KJ Ross
 
TMF2014 Mobile Testing Workshop Michael Palotas
TMF2014 Mobile Testing Workshop Michael PalotasTMF2014 Mobile Testing Workshop Michael Palotas
TMF2014 Mobile Testing Workshop Michael Palotas
 
TMF 2014 Event Proceedings
TMF 2014 Event ProceedingsTMF 2014 Event Proceedings
TMF 2014 Event Proceedings
 
TMF2014 Andrew Prentice presentation
TMF2014 Andrew Prentice presentationTMF2014 Andrew Prentice presentation
TMF2014 Andrew Prentice presentation
 
TMF2014 Thinksoft Automation Presentation
TMF2014 Thinksoft Automation PresentationTMF2014 Thinksoft Automation Presentation
TMF2014 Thinksoft Automation Presentation
 
TMF2014 C Birmele-Microsoft Azure presentation
TMF2014 C Birmele-Microsoft Azure presentationTMF2014 C Birmele-Microsoft Azure presentation
TMF2014 C Birmele-Microsoft Azure presentation
 
TMF2014 Testing Disruption-K Ross
TMF2014 Testing Disruption-K RossTMF2014 Testing Disruption-K Ross
TMF2014 Testing Disruption-K Ross
 
KJ Ross Whitepaper Crash Test your Requirements
KJ Ross Whitepaper Crash Test your RequirementsKJ Ross Whitepaper Crash Test your Requirements
KJ Ross Whitepaper Crash Test your Requirements
 
KJ Ross Whitepaper How CXO's can reduce IT Project risk by improving software...
KJ Ross Whitepaper How CXO's can reduce IT Project risk by improving software...KJ Ross Whitepaper How CXO's can reduce IT Project risk by improving software...
KJ Ross Whitepaper How CXO's can reduce IT Project risk by improving software...
 
KJ Ross Software Testing Training Pack
KJ Ross Software Testing Training PackKJ Ross Software Testing Training Pack
KJ Ross Software Testing Training Pack
 

Último

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 

Último (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 

TMF2014 CI-CD Workshop Michael Palotas

  • 1. TEST MANAGERS FORUM 2014 SYDNEY, AUSTRALIA CONTINUOUS INTEGRATION CONTINUOUS DELIVERY 1
  • 2. 2 WHO AM I? Gridfusion Software Solutions Contact: Michael Palotas Gerbiweg 2 8853 Lachen SWITZERLAND Tel.: +41 79 6690708 Email: michael.palotas@gridfusion.net Head of Productivity & Test Engineering, eBay Founder / Principal Consultant Gridfusion Software Solutions
  • 3. SETTING THE STAGE Tell me about yourself J What are your expectations for today? 3
  • 4. Your setup How do you build software? 4
  • 5. WHAT IS SO SPECIAL ABOUT AGILE? 5
  • 7. WHAT IS IMPORTANT IN AGILE? 7
  • 9. Traditional waterfall model / tools do not support “build and deploy anytime” 9
  • 10. WHAT IS CI / CD? CI and CD = Automated Build? Automated Tests? Automated Quality? Automated Deployment? Automated Feedback? 10
  • 11. WHY CI / CD Deliver value to the business more frequently Better Quality Early Bugs Bug Prevention instead of late detection Fast & frequent feedback 11
  • 12. WHY CI / CD Automated frequent builds Automated frequent tests Automated frequent code quality metrics (Hopefully) Fewer bugs Fast feedback 12
  • 13. WITHOUT CI Slow / long release cycles Late testing Waterfall (WaterScrum) Bugs Slow feedback Complex integration 13
  • 14. CORE PRINCIPLES Every build could be a release Everything should be automated Stable and trustworthy automated tests Build pipelines 14
  • 15. RELEASING IN THE OLD WORLD 15 Coding Deploy to QA QA Deploy to Production Production Smoke Tests Bug Bashes
  • 16. CI / CD - CORE WORKFLOW 16 Compile Unit Test Deploy to QA Acceptance tests Deploy to Production Production Smoke Tests Code Quality
  • 17. THE MAIN TASKS Automated build Automated code quality Automated testing Automated deployment 17
  • 19. CAN YOU MEASURE AUTOMATED CODE QUALITY? DOES THAT MAKE SENSE? 19
  • 20. AUTOMATED CODE QUALITY? Sonar gives you information on: -  Lines of code -  % of comments -  Duplications -  Complexity -  Rules compliance -  Unit test coverage -  Unit test success rate -  Unit test duration -  Hotspots 20
  • 21. CAN / SHOULD YOU AUTOMATE EVERYTHING? 21
  • 22. WHAT SHOULD YOU AUTOMATE? 22
  • 23. WHAT ARE BARRIERS TO CI / CD? 23
  • 24. WHAT IS CONTIUOUS INTEGRATION? 24 Continuous integration (CI) is the practice, in software engineering, of merging all developer working copies with a shared mainline several times a day. It was first named and proposed as part of extreme programming (XP). Its main aim is to prevent integration problems, referred to as "integration hell" in early descriptions of XP. CI can be seen as an intensification of practices of periodic integration advocated by earlier published methods of incremental and iterative software development, such as the Booch method. CI isn't universally accepted as an improvement over frequent integration, so it is important to distinguish between the two as there is disagreement about the virtues of each.
  • 25. WHAT IS CONTINUOUS DELIVERY? 25 Continuous Delivery (CD) is a design practice used in software development to automate and improve the process of software delivery. Techniques such as automated testing, continuous integration and continuous deployment allow software to be developed to a high standard and easily packaged and deployed to test environments, resulting in the ability to rapidly, reliably and repeatedly push out enhancements and bug fixes to customers at low risk and with minimal manual overhead. The technique was one of the assumptions of extreme programming but at an enterprise level has developed into a discipline of its own, with job descriptions for roles such as "buildmaster" calling for CD skills as mandatory.
  • 26. THE MANAGEMENT / ORGANIZATIONAL ASPECT What are the changes for developers and testers? What needs to be changed in the organization to enable them to implement CI / CD? What role has management in creating a devops culture? 26
  • 27. OUR TOOLS Version Control System GIT Build Tool MAVEN Unit Test Framework JUNIT / TESTNG End To End Test Framework SELENIUM Build Server / Deployment JENKINS 27
  • 28. Branching & Merging Small and Fast Distributed Data Assurance Staging Area Free and Open Source VERSION CONTROL: GIT 28 http://git-scm.com/about/
  • 29. GIT: BRANCHING & MERGING 29 Git-scm.com
  • 30. GIT: SMALL & FAST 30 Git-scm.com
  • 31. GIT: THE REST Distributed Data Assurance Staging Area Free & Open Source 31
  • 32. GIT Distributed / local Download: http://git-scm.com/ Initialize directory: git init Status: git status Add files and directories to git: git add file1 dir2 Commit: git commit –am “commit message” 32
  • 33. SHARE YOUR CODE - GITHUB Create repository on Github: https://github.com Create remote: git remote add origin https://… Push code to Github: git push origin master Tag your code: git tag –a v0.1 –m “initial version” Push tag to Github: git push origin v0.1 33
  • 35. CONNECT GIT AND GITHUB 35 Silverpeas.org
  • 36. MAVEN 36 Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
  • 37. POM.XML The pom.xml file is the core of a project's configuration in Maven. It is a single configuration file that contains the majority of information required to build a project in just the way you want. 37
  • 39. MAVEN TARGETS validate: validate the project is correct and all necessary information is available compile: compile the source code of the project test: test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed package: take the compiled code and package it in its distributable format, such as a JAR. integration-test: process and deploy the package if necessary into an environment where integration tests can be run verify: run any checks to verify the package is valid and meets quality criteria install: install the package into the local repository, for use as a dependency in other projects locally deploy: done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects. clean: cleans up artifacts created by prior builds 39
  • 41. CONTINUOUS INTEGRATION - JENKINS Download at http://jenkins-ci.org/ 41
  • 42. RECAP WHAT DO WE EXPECT THE CI SYSTEM TO DO? 42
  • 43. 43
  • 45. WHAT JENKINS DOES Jenkins checks out the workspace from Github Builds and runs tests locally according to POM Runs maven targets according to POM description 45
  • 46. A SIMPLE BUILD JOB 46
  • 47. A SIMPLE BUILD JOB 1.  Add / change some code 2.  Push to Github repository 3.  Let Jenkins pick up the change 4.  Perform mvn clean compile targets 5.  Perform mvn test target (unit tests only) 47
  • 49. WHAT IS SELENIUM? Selenium automates browsers that’s it …
  • 50. E2E / UAT AUTOMATION WITH SELENIUM 50 CLIENT SERVER JSON Wire Protocol BROWSER
  • 52. CLIENT Is seen as „Selenium“ by the users Generates HTTP requests which are received by the server Is called by the test framework or the CI server Supported languages: Java, C#, Python, Ruby, Perl, PHP, JS
  • 53. SERVER Receives HTTP requests Start and teardown of browser Translates requests into browser specific commands Communicates back to the client
  • 54. SELENIUM GRID Sequential Execution Test 1 Test 2 Test … Test 4500 Execution Time Test 3 Parallel Execution Test Test Test Execution Time Test Test Test TestTest Test Test TestTest ParallelExecution ParallelExecution
  • 57. 57
  • 58. A SIMPLE SELENIUM TEST 58
  • 59. 59
  • 60. LET’S BUILD A BUILD / DEPLOYMENT PIPELINE 60
  • 61. THE MASTER JOB 61 Unit Test Deploy to QA Acceptance tests Deploy to Production Production Smoke Tests Code Coverage
  • 63. 63
  • 64. CONNECT CODE WITH GITHUB 64
  • 66. RUN UNIT TESTS LOCALLY Run from eclipse Run from maven 66
  • 67. 67
  • 68. UNIT TEST COVERAGE - COBERTURA 68
  • 69. 69
  • 70. SONAR: CODE ANALYSIS / CODE QUALITY 70
  • 71. 71
  • 72. WE ARE READY FOR THE NEXT STEP ADD CI JENKINS SET UP JENKINS JOBS -  Master Job -  Run unit tests -  Deploy to QA -  Run E2E tests -  Deploy to PROD -  Run PROD smoke tests 72
  • 74. JOB: UNIT TESTS (1) 74
  • 75. JOB: UNIT TEST (2) 75
  • 76. JOB: DEPLOY TO QA 76
  • 78. JOB: DEPLOY TO PRODUCTION 78