SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
#GitLabCommit
Ubiquitous Quality Through Continuous Testing
#GitLabCommit
Ubiquitous Quality Through Continuous Testing
Joe Lust @ Mabl Engineering
#GitLabCommit#GitLabCommit
Outline
● Why do you need Continuous Testing
● How you can deliver Continuous Testing
on GitLab CI / CD
● Real world examples
@lustcoder
● Building the web for twenty years
● Cloud Infra Lead @ mabl
● Blogger, meetup organizer, speaker
About me
Joe Lust
#GitLabCommit
Continuous Testing
#GitLabCommit
What is Continuous Testing?
Testing at all levels of your code lifecycle
● At the commit
● In the merge request
● In the CI / CD pipeline
● In the blue / green environments
● In production
#GitLabCommit#GitLabCommit
Testing
Pre-DevOps
● Infrequent testing
○ Weekly / Monthly / Quarterly
● Manual testing
● Limited coverage
● Sparse / static environments
● Reams of log output
Testing
Post-DevOps
● Continuous testing
○ Test every commit
● Highly automated
● End to end coverage
● Unlimited environments
● Targeted insights
#GitLabCommit
Shifting quality left: Go to the source
The further left you shift application testing, the greater the time / money saved
● Catch the bugs before they merge, for greatest savings
● Reduce developer firefighting
● Let QA focus on the meaty testing problems
● Shift as far left as possible
Push Bug
Commit
Author
Bug
Merge
Bug
Bug to QA Bug to
Prod
Business
Impact
#GitLabCommit
Implementing
Continuous Testing in GitLab
#GitLabCommit
For Continuous Testing, We’ll Need to Scale
● Scalable Testing Environment Solution
○ e.g. GitLab Review Apps
● Scalable Test Running Solution
○ SaaS: e.g. mabl
○ Self Hosted: e.g. Puppeteer on Kubernetes
#GitLabCommit
What’s mabl?
Mabl is an intelligent test automation platform
● Easily create reliable automated UI tests that are just as easy to maintain.
● Unified platform integrations with bug tracking, source control, and CI /CD
● Comprehensive test results help you gain actionable insights across the
entire development lifecycle
● Create customer-centric end-to-end tests from your end users perspective
#GitLabCommit
What are Preview Environments?
● On demand, short live environments
● Used to validate changes and deployments
● No / minimal impact if broken
○ Single use
● Also known as:
○ Review App / Ephemeral Environments
#GitLabCommit
Slide option 1 of 2
This seems like a
completely innocuous
MR, especially if you
don’t speak CSS.
#GitLabCommit
Slide option 1 of 2
But what if we could
SEE the changes in a
Preview Environment?
#GitLabCommit
Slide option 1 of 2
Oh, no! This certainly
isn’t what I meant to
approve!
#GitLabCommit#GitLabCommit
Challenges to pervasive
Preview Environments
● Server cost
● Networking complexity
● Domain routing
● Cost $$$
#GitLabCommit#GitLabCommit
Challenges to pervasive
Preview Environments
● Server cost
● Networking complexity
● DNS setup
● Cost $$$
Serverless
Solution
● No servers
● Networking outsourced
● Wildcard domains
● “Scale to zero” low cost
#GitLabCommit
Making a Serverless Preview Environment
Let’s look at the Single Page Application case (SPA)
● Host the static contents in a bucket
● Host the dynamic parts on a function
● High scalability for low cost
#GitLabCommit
e.g. Preview Environments on Google Cloud
Real world example at mabl:
● Push HTML/JS to a bucket with commit hash in path
○ Place bucket behind vanity domain / CDN
● Place dynamic bits in container on Cloud Run
● Host 1,000 preview environments for $1
preview.acme.com/petstore/a32df28
app name commit hash
Read more detailed
examples with
source code here.
#GitLabCommit
Harness Your Preview Environments
Make the preview environment work for you
● Run your end to end automation against the preview
● Link your merge requests to the preview
○ Show, don’t tell reviewers what you changed
● Test merges to main before you merge
○ Keep main green!
#GitLabCommit
Real World Examples
#GitLabCommit
Testing on GitLab Pipelines
Make the preview environment work for you
● Use Review Apps
○ Just add hosting
● Use Dynamic Environments
○ Pass environment URL to your testing tools
#GitLabCommit
Testing on GitLab Pipelines: In YAML - Deploy
#GitLabCommit
Mabl GitLab Pipelines Integration
Easily run intelligent tests in the mabl cloud in just a few lines of YAML
● Unlimited parallel test execution for quick commit feedback
● Test status updates and results in your merge request
● Rich test results for rapid root cause analysis
#GitLabCommit
Mabl GitLab Pipelines Integration
Easily run intelligent tests in the mabl cloud in just a few lines of YAML
● Unlimited parallel test execution for quick commit feedback
● Test status updates and results in your merge request
● Rich test results for rapid root cause analysis
Easily track the status of
your hundreds of tests
and thousands of test
runs.
#GitLabCommit
Mabl GitLab Pipelines Integration
Easily run intelligent tests in the mabl cloud in just a few lines of YAML
● Unlimited parallel test execution for quick commit feedback
● Test status updates and results in your merge request
● Rich test results for rapid root cause analysis
Dive deep into fine
grained test run details
for easy diagnostics
#GitLabCommit
Testing on GitLab Pipelines: In YAML - Test
#GitLabCommit
Mabl CLI: For the DevOps Experts
DevOps experts can use the mabl CLI
● Script complex test suites with bash scripts
● Don’t leave your developer workflow
● View real time test completion and results
#GitLabCommit
Conclusions
#GitLabCommit
Key Takeaways
● DevOps ia an enabling group for Continuous Testing
● Serverless enables cost effective, scalable
○ Testing environments
○ Testing tools
● Shift your testing as far left as possible
#GitLabCommit
References
Serverless
● Serverless Preview Environments on AWS and GCP
● Presentation Slide Deck - bit.ly/2DyiEfU
Testing w/ mabl
● Mabl GitLab Integration - www.mabl.com/integrations/gitlab
● Try mabl for free - mabl.com/trial-registration
@lustcoder@mablhq
#GitLabCommit
Thank You

Weitere ähnliche Inhalte

Was ist angesagt?

Active record, standalone migrations, and working with Arel
Active record, standalone migrations, and working with ArelActive record, standalone migrations, and working with Arel
Active record, standalone migrations, and working with ArelAlex Tironati
 
Appcelerator OSS & Platform
Appcelerator OSS & PlatformAppcelerator OSS & Platform
Appcelerator OSS & PlatformFokke Zandbergen
 
Golang taipei #45 10th birthday
Golang taipei #45 10th birthdayGolang taipei #45 10th birthday
Golang taipei #45 10th birthdayEvan Lin
 
Continuous delivery journey at LesFurets.com
Continuous delivery journey at LesFurets.comContinuous delivery journey at LesFurets.com
Continuous delivery journey at LesFurets.comRaphaël Brugier
 
How I become Go GDE
How I become Go GDEHow I become Go GDE
How I become Go GDEEvan Lin
 
Building a Portable Testing Rig with GoConvey and Docker
Building a Portable Testing Rig with GoConvey and DockerBuilding a Portable Testing Rig with GoConvey and Docker
Building a Portable Testing Rig with GoConvey and DockerAlison Rowland
 
Github, Travis-CI and Perl
Github, Travis-CI and PerlGithub, Travis-CI and Perl
Github, Travis-CI and PerlDave Cross
 
Improving Untestable Code
Improving Untestable CodeImproving Untestable Code
Improving Untestable CodeTony Bibbs
 
'IS THERE JAVASCRIPT ON SWAGGER PLUGINS?' by Dmytro Gusev
'IS THERE JAVASCRIPT ON SWAGGER PLUGINS?' by  Dmytro Gusev'IS THERE JAVASCRIPT ON SWAGGER PLUGINS?' by  Dmytro Gusev
'IS THERE JAVASCRIPT ON SWAGGER PLUGINS?' by Dmytro GusevOdessaJS Conf
 
I Love APIs 2015: Getting **IT Done Workshop
I Love APIs 2015: Getting **IT Done WorkshopI Love APIs 2015: Getting **IT Done Workshop
I Love APIs 2015: Getting **IT Done WorkshopApigee | Google Cloud
 
Let Salt saltify it self!
Let Salt saltify it self!Let Salt saltify it self!
Let Salt saltify it self!Love Nyberg
 
How to master a programming language: a Golang example"
How to master a programming language: a Golang example"How to master a programming language: a Golang example"
How to master a programming language: a Golang example"Evan Lin
 
PUG Romagna - Pipeline + Deployer PHP
PUG Romagna - Pipeline + Deployer PHPPUG Romagna - Pipeline + Deployer PHP
PUG Romagna - Pipeline + Deployer PHPGiuseppe Morelli
 

Was ist angesagt? (20)

Git - A soft introduction
Git - A soft introductionGit - A soft introduction
Git - A soft introduction
 
XP Days Ukraine 2019
XP Days Ukraine 2019XP Days Ukraine 2019
XP Days Ukraine 2019
 
Active record, standalone migrations, and working with Arel
Active record, standalone migrations, and working with ArelActive record, standalone migrations, and working with Arel
Active record, standalone migrations, and working with Arel
 
Project52
Project52Project52
Project52
 
Appcelerator OSS & Platform
Appcelerator OSS & PlatformAppcelerator OSS & Platform
Appcelerator OSS & Platform
 
Dev ops
Dev opsDev ops
Dev ops
 
Golang taipei #45 10th birthday
Golang taipei #45 10th birthdayGolang taipei #45 10th birthday
Golang taipei #45 10th birthday
 
Git & GitLab
Git & GitLabGit & GitLab
Git & GitLab
 
Continuous delivery journey at LesFurets.com
Continuous delivery journey at LesFurets.comContinuous delivery journey at LesFurets.com
Continuous delivery journey at LesFurets.com
 
How I become Go GDE
How I become Go GDEHow I become Go GDE
How I become Go GDE
 
Building a Portable Testing Rig with GoConvey and Docker
Building a Portable Testing Rig with GoConvey and DockerBuilding a Portable Testing Rig with GoConvey and Docker
Building a Portable Testing Rig with GoConvey and Docker
 
Github, Travis-CI and Perl
Github, Travis-CI and PerlGithub, Travis-CI and Perl
Github, Travis-CI and Perl
 
Improving Untestable Code
Improving Untestable CodeImproving Untestable Code
Improving Untestable Code
 
'IS THERE JAVASCRIPT ON SWAGGER PLUGINS?' by Dmytro Gusev
'IS THERE JAVASCRIPT ON SWAGGER PLUGINS?' by  Dmytro Gusev'IS THERE JAVASCRIPT ON SWAGGER PLUGINS?' by  Dmytro Gusev
'IS THERE JAVASCRIPT ON SWAGGER PLUGINS?' by Dmytro Gusev
 
I Love APIs 2015: Getting **IT Done Workshop
I Love APIs 2015: Getting **IT Done WorkshopI Love APIs 2015: Getting **IT Done Workshop
I Love APIs 2015: Getting **IT Done Workshop
 
Let Salt saltify it self!
Let Salt saltify it self!Let Salt saltify it self!
Let Salt saltify it self!
 
Git & Github
Git & GithubGit & Github
Git & Github
 
3 workflow
3 workflow3 workflow
3 workflow
 
How to master a programming language: a Golang example"
How to master a programming language: a Golang example"How to master a programming language: a Golang example"
How to master a programming language: a Golang example"
 
PUG Romagna - Pipeline + Deployer PHP
PUG Romagna - Pipeline + Deployer PHPPUG Romagna - Pipeline + Deployer PHP
PUG Romagna - Pipeline + Deployer PHP
 

Ähnlich wie GitLab Commit 2020: Ubiquitous quality through continuous testing pipelines

Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesLars Rosenquist
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesLars Rosenquist
 
The Key to DevOps? Testing Early in the Pipeline
The Key to DevOps? Testing Early in the PipelineThe Key to DevOps? Testing Early in the Pipeline
The Key to DevOps? Testing Early in the PipelineDevOps.com
 
Code review and automated testing for Puppet code
Code review and automated testing for Puppet codeCode review and automated testing for Puppet code
Code review and automated testing for Puppet codewzzrd
 
Continuous Delivery at Snyk
Continuous Delivery at SnykContinuous Delivery at Snyk
Continuous Delivery at SnykAnton Drukh
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneciberkleid
 
Infrastructure as Code for Network
Infrastructure as Code for NetworkInfrastructure as Code for Network
Infrastructure as Code for NetworkDamien Garros
 
Intro to Git for Project Managers
Intro to Git for Project ManagersIntro to Git for Project Managers
Intro to Git for Project ManagersOyeLabs
 
DevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback LoopsDevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback LoopsAndreas Grabner
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Gibran Badrulzaman
 
GitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialHeather McNamee
 
GitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab, Inc
 
Gitlab for PHP developers (Brisbane PHP meetup, 2019-Jan-29)
Gitlab for PHP developers (Brisbane PHP meetup, 2019-Jan-29)Gitlab for PHP developers (Brisbane PHP meetup, 2019-Jan-29)
Gitlab for PHP developers (Brisbane PHP meetup, 2019-Jan-29)Vladimir Roudakov
 
Continuous Deployment to the cloud
Continuous Deployment to the cloudContinuous Deployment to the cloud
Continuous Deployment to the cloudVMware Tanzu
 
Gradle Show and Tell
Gradle Show and TellGradle Show and Tell
Gradle Show and TellSteve Pember
 
Yet Another Continuous Integration Story
Yet Another Continuous Integration StoryYet Another Continuous Integration Story
Yet Another Continuous Integration StoryAnton Serdyuk
 
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)Martin Spier
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Applitools
 
Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Bruno Capuano
 

Ähnlich wie GitLab Commit 2020: Ubiquitous quality through continuous testing pipelines (20)

Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
The Key to DevOps? Testing Early in the Pipeline
The Key to DevOps? Testing Early in the PipelineThe Key to DevOps? Testing Early in the Pipeline
The Key to DevOps? Testing Early in the Pipeline
 
Code review and automated testing for Puppet code
Code review and automated testing for Puppet codeCode review and automated testing for Puppet code
Code review and automated testing for Puppet code
 
Continuous Delivery at Snyk
Continuous Delivery at SnykContinuous Delivery at Snyk
Continuous Delivery at Snyk
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOne
 
Infrastructure as Code for Network
Infrastructure as Code for NetworkInfrastructure as Code for Network
Infrastructure as Code for Network
 
Intro to Git for Project Managers
Intro to Git for Project ManagersIntro to Git for Project Managers
Intro to Git for Project Managers
 
DevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback LoopsDevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback Loops
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
 
Integration testing - A&BP CC
Integration testing - A&BP CCIntegration testing - A&BP CC
Integration testing - A&BP CC
 
GitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorial
 
GitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorial
 
Gitlab for PHP developers (Brisbane PHP meetup, 2019-Jan-29)
Gitlab for PHP developers (Brisbane PHP meetup, 2019-Jan-29)Gitlab for PHP developers (Brisbane PHP meetup, 2019-Jan-29)
Gitlab for PHP developers (Brisbane PHP meetup, 2019-Jan-29)
 
Continuous Deployment to the cloud
Continuous Deployment to the cloudContinuous Deployment to the cloud
Continuous Deployment to the cloud
 
Gradle Show and Tell
Gradle Show and TellGradle Show and Tell
Gradle Show and Tell
 
Yet Another Continuous Integration Story
Yet Another Continuous Integration StoryYet Another Continuous Integration Story
Yet Another Continuous Integration Story
 
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)Ensuring Performance in a Fast-Paced Environment (CMG 2014)
Ensuring Performance in a Fast-Paced Environment (CMG 2014)
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
 
Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?Que nos espera a los ALM Dudes para el 2013?
Que nos espera a los ALM Dudes para el 2013?
 

Mehr von Joseph Lust

Serverless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOpsServerless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOpsJoseph Lust
 
Making CLIs with Node.js
Making CLIs with Node.jsMaking CLIs with Node.js
Making CLIs with Node.jsJoseph Lust
 
Serverless preview environments to the rescue
Serverless preview environments to the rescueServerless preview environments to the rescue
Serverless preview environments to the rescueJoseph Lust
 
Serverless Apps on Google Cloud: more dev, less ops
Serverless Apps on Google Cloud:  more dev, less opsServerless Apps on Google Cloud:  more dev, less ops
Serverless Apps on Google Cloud: more dev, less opsJoseph Lust
 
mabl's Machine Learning Implementation on Google Cloud Platform
mabl's Machine Learning Implementation on Google Cloud Platformmabl's Machine Learning Implementation on Google Cloud Platform
mabl's Machine Learning Implementation on Google Cloud PlatformJoseph Lust
 
Going Microserverless on Google Cloud @ mabl
Going Microserverless on Google Cloud @ mablGoing Microserverless on Google Cloud @ mabl
Going Microserverless on Google Cloud @ mablJoseph Lust
 
Going Microserverless on Google Cloud
Going Microserverless on Google CloudGoing Microserverless on Google Cloud
Going Microserverless on Google CloudJoseph Lust
 
Kubernetes & Google Container Engine @ mabl
Kubernetes & Google Container Engine @ mablKubernetes & Google Container Engine @ mabl
Kubernetes & Google Container Engine @ mablJoseph Lust
 
Embracing Serverless with Google
Embracing Serverless with GoogleEmbracing Serverless with Google
Embracing Serverless with GoogleJoseph Lust
 
Firebase Cloud Functions: a quick overview
Firebase Cloud Functions: a quick overviewFirebase Cloud Functions: a quick overview
Firebase Cloud Functions: a quick overviewJoseph Lust
 

Mehr von Joseph Lust (10)

Serverless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOpsServerless Preview Environments @ Boston DevOps
Serverless Preview Environments @ Boston DevOps
 
Making CLIs with Node.js
Making CLIs with Node.jsMaking CLIs with Node.js
Making CLIs with Node.js
 
Serverless preview environments to the rescue
Serverless preview environments to the rescueServerless preview environments to the rescue
Serverless preview environments to the rescue
 
Serverless Apps on Google Cloud: more dev, less ops
Serverless Apps on Google Cloud:  more dev, less opsServerless Apps on Google Cloud:  more dev, less ops
Serverless Apps on Google Cloud: more dev, less ops
 
mabl's Machine Learning Implementation on Google Cloud Platform
mabl's Machine Learning Implementation on Google Cloud Platformmabl's Machine Learning Implementation on Google Cloud Platform
mabl's Machine Learning Implementation on Google Cloud Platform
 
Going Microserverless on Google Cloud @ mabl
Going Microserverless on Google Cloud @ mablGoing Microserverless on Google Cloud @ mabl
Going Microserverless on Google Cloud @ mabl
 
Going Microserverless on Google Cloud
Going Microserverless on Google CloudGoing Microserverless on Google Cloud
Going Microserverless on Google Cloud
 
Kubernetes & Google Container Engine @ mabl
Kubernetes & Google Container Engine @ mablKubernetes & Google Container Engine @ mabl
Kubernetes & Google Container Engine @ mabl
 
Embracing Serverless with Google
Embracing Serverless with GoogleEmbracing Serverless with Google
Embracing Serverless with Google
 
Firebase Cloud Functions: a quick overview
Firebase Cloud Functions: a quick overviewFirebase Cloud Functions: a quick overview
Firebase Cloud Functions: a quick overview
 

Kürzlich hochgeladen

Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 

Kürzlich hochgeladen (20)

Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 

GitLab Commit 2020: Ubiquitous quality through continuous testing pipelines

  • 2. #GitLabCommit Ubiquitous Quality Through Continuous Testing Joe Lust @ Mabl Engineering
  • 3. #GitLabCommit#GitLabCommit Outline ● Why do you need Continuous Testing ● How you can deliver Continuous Testing on GitLab CI / CD ● Real world examples @lustcoder ● Building the web for twenty years ● Cloud Infra Lead @ mabl ● Blogger, meetup organizer, speaker About me Joe Lust
  • 5. #GitLabCommit What is Continuous Testing? Testing at all levels of your code lifecycle ● At the commit ● In the merge request ● In the CI / CD pipeline ● In the blue / green environments ● In production
  • 6. #GitLabCommit#GitLabCommit Testing Pre-DevOps ● Infrequent testing ○ Weekly / Monthly / Quarterly ● Manual testing ● Limited coverage ● Sparse / static environments ● Reams of log output Testing Post-DevOps ● Continuous testing ○ Test every commit ● Highly automated ● End to end coverage ● Unlimited environments ● Targeted insights
  • 7. #GitLabCommit Shifting quality left: Go to the source The further left you shift application testing, the greater the time / money saved ● Catch the bugs before they merge, for greatest savings ● Reduce developer firefighting ● Let QA focus on the meaty testing problems ● Shift as far left as possible Push Bug Commit Author Bug Merge Bug Bug to QA Bug to Prod Business Impact
  • 9. #GitLabCommit For Continuous Testing, We’ll Need to Scale ● Scalable Testing Environment Solution ○ e.g. GitLab Review Apps ● Scalable Test Running Solution ○ SaaS: e.g. mabl ○ Self Hosted: e.g. Puppeteer on Kubernetes
  • 10. #GitLabCommit What’s mabl? Mabl is an intelligent test automation platform ● Easily create reliable automated UI tests that are just as easy to maintain. ● Unified platform integrations with bug tracking, source control, and CI /CD ● Comprehensive test results help you gain actionable insights across the entire development lifecycle ● Create customer-centric end-to-end tests from your end users perspective
  • 11. #GitLabCommit What are Preview Environments? ● On demand, short live environments ● Used to validate changes and deployments ● No / minimal impact if broken ○ Single use ● Also known as: ○ Review App / Ephemeral Environments
  • 12. #GitLabCommit Slide option 1 of 2 This seems like a completely innocuous MR, especially if you don’t speak CSS.
  • 13. #GitLabCommit Slide option 1 of 2 But what if we could SEE the changes in a Preview Environment?
  • 14. #GitLabCommit Slide option 1 of 2 Oh, no! This certainly isn’t what I meant to approve!
  • 15. #GitLabCommit#GitLabCommit Challenges to pervasive Preview Environments ● Server cost ● Networking complexity ● Domain routing ● Cost $$$
  • 16. #GitLabCommit#GitLabCommit Challenges to pervasive Preview Environments ● Server cost ● Networking complexity ● DNS setup ● Cost $$$ Serverless Solution ● No servers ● Networking outsourced ● Wildcard domains ● “Scale to zero” low cost
  • 17. #GitLabCommit Making a Serverless Preview Environment Let’s look at the Single Page Application case (SPA) ● Host the static contents in a bucket ● Host the dynamic parts on a function ● High scalability for low cost
  • 18. #GitLabCommit e.g. Preview Environments on Google Cloud Real world example at mabl: ● Push HTML/JS to a bucket with commit hash in path ○ Place bucket behind vanity domain / CDN ● Place dynamic bits in container on Cloud Run ● Host 1,000 preview environments for $1 preview.acme.com/petstore/a32df28 app name commit hash Read more detailed examples with source code here.
  • 19. #GitLabCommit Harness Your Preview Environments Make the preview environment work for you ● Run your end to end automation against the preview ● Link your merge requests to the preview ○ Show, don’t tell reviewers what you changed ● Test merges to main before you merge ○ Keep main green!
  • 21. #GitLabCommit Testing on GitLab Pipelines Make the preview environment work for you ● Use Review Apps ○ Just add hosting ● Use Dynamic Environments ○ Pass environment URL to your testing tools
  • 22. #GitLabCommit Testing on GitLab Pipelines: In YAML - Deploy
  • 23. #GitLabCommit Mabl GitLab Pipelines Integration Easily run intelligent tests in the mabl cloud in just a few lines of YAML ● Unlimited parallel test execution for quick commit feedback ● Test status updates and results in your merge request ● Rich test results for rapid root cause analysis
  • 24. #GitLabCommit Mabl GitLab Pipelines Integration Easily run intelligent tests in the mabl cloud in just a few lines of YAML ● Unlimited parallel test execution for quick commit feedback ● Test status updates and results in your merge request ● Rich test results for rapid root cause analysis Easily track the status of your hundreds of tests and thousands of test runs.
  • 25. #GitLabCommit Mabl GitLab Pipelines Integration Easily run intelligent tests in the mabl cloud in just a few lines of YAML ● Unlimited parallel test execution for quick commit feedback ● Test status updates and results in your merge request ● Rich test results for rapid root cause analysis Dive deep into fine grained test run details for easy diagnostics
  • 26. #GitLabCommit Testing on GitLab Pipelines: In YAML - Test
  • 27. #GitLabCommit Mabl CLI: For the DevOps Experts DevOps experts can use the mabl CLI ● Script complex test suites with bash scripts ● Don’t leave your developer workflow ● View real time test completion and results
  • 29. #GitLabCommit Key Takeaways ● DevOps ia an enabling group for Continuous Testing ● Serverless enables cost effective, scalable ○ Testing environments ○ Testing tools ● Shift your testing as far left as possible
  • 30. #GitLabCommit References Serverless ● Serverless Preview Environments on AWS and GCP ● Presentation Slide Deck - bit.ly/2DyiEfU Testing w/ mabl ● Mabl GitLab Integration - www.mabl.com/integrations/gitlab ● Try mabl for free - mabl.com/trial-registration @lustcoder@mablhq