SlideShare a Scribd company logo
1 of 35
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
SAS Enterprise
Transforming Automation into Continuous Release
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Trivia Time!
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
What will we talk about today?
● The differences between testing in an
enterprise environment
● One particular way to adapt the testing of
monthly releases into the Continuous
Delivery of features
● The types of testing and why we identify
them
● How to change the tires on a moving car
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Hi, Nice to Meet You
Ken Dickinson
Director, Research & Development
SAS Institute
● Tenures in both tiny startups and
multiple fortune 500 enterprises
● Led teams across testing,
development, operations, and product
disciplines.
● Advocate for humanity in automated
testing
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
What is SAS?
● Founded in 1976 by grad students at
NCSU
● One of the “godfathers” of modern
analytics
● Approaching 14,000 employees worldwide
● Totally not evil...
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Welcome to the Institute
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
What is the Enterprise ?
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
● Not a startup
● What has made us successful before
will make us successful in the future
● Change “must” apply to all
● Hidden innovators waiting to be
discovered
● Firepower
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
What is DevOps?
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
You are.
● Prepare yourself to become the ideas
you believe in
● Your conviction and passion will be
observed and measured
● Know when you have the answers, but
also when you don’t
● Much of this is about advocacy. Never
sleep
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Where do we begin?
● Customer Intelligence is an AWS
based platform for Marketing
Analytics
● SAS but also SaaS
● Our only cloud native offering (for
now)
● Used by hundreds of enterprise
customers to connect to their own
customers
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
You guessed it, Marketing Analytics.
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
In the Beginning
● Single monolithic platform deploying all at
once
● Monthly scheduled releases
● Planned manual testing phases
● No production monitoring or observability
outside of the AWS console
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
An Ambitious Mission
● Turn monthly releases into Continuous
Delivery
● Normalize automation first culture
● Unify and streamline automation development
● Shrink the barrier of entry to automation
contribution
● Test everything, everywhere
● Begin pushing the AI envelope
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
This is Software Engineering, not Testing
● We are not goalies or quality police
● Quality is everyone’s responsibility
● We implement quality into systems
● Sometimes we write tests, sometimes we
don’t
● Our mandate is to produce valuable changes
to our customers that are of the highest quality
possible
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Ok Fine, But How?
Unit Tests
Contract Tests
API Tests
Acceptance Tests
Exploratory | Usability Tests
Functional Automation
Security and Vulnerability
Performance and Load Testing
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Why Layers?
• Small, Purposeful, Libraries. Separating tests into distributed layers encourages the
development of maintainable libraries with clear purpose.
• Clear Expectations. When tests are defined on a given layer, they inherit clearly defined
expectations of what the do and don’t do.
• Reporting & Triage. Testing on specific layers of a stack create more meaningful
reporting and actionable logging
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Layers of Testing
Unit Testing
Designed to validate behavior on a function or method level. Can and should use mocked
dependencies. Run as part of the build process for the service they represent. Measured in
Code Coverage, which will be held above a defined percentage.
public void TestPhoneValidator()
{
string goodPhone = "(123) 555-1212";
string badPhone = "555 12"
PhoneValidator validator = new PhoneValidator();
Assert.IsTrue(validator.IsValid(goodPhone));
Assert.IsFalse(validator.IsValid(badPhone));
}
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Layers of Testing
Consumer Driven Contracts
Designed to validate schema of API contracts between dependencies and dependents
(some call this consumers and providers). Runs as part of the build process, should be
included for every service level dependency.
Given "there is no user called Mary"
When "creating a user with username Mary"
POST /users { "username": "mary", email: "...", ...
}
Then
Expected Response is 200 OK
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Layers of Testing
Contract Testing Tooling
One straightforward way to manage consumer driven contracts is with an
open source framework called PACT. I also recommend a plug in called
PACT Broker to visualize it.
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Layers of Testing
API Testing
An extension of contract testing, some will know this as integration testing. Designed to
validate the functionality of our private and public API’s. Targets request/response behavior
of each endpoint using a shared requests library across all teams.
When "creating a user with a username with 21 characters"
POST /users { "username": "thisisalooongusername", email: "...", ... }
Then
Expected Response is 400 Bad Request
Expected Response body is { "error": "username cannot be more than 20
characters" }
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Layers of Testing
Acceptance Testing
Designed to validate the acceptance criteria and the general health of our user experience.
Written in Behavior Driven Development (BDD) language and only expressed thru customer
accessible interfaces. Gating deployments of released features.
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
What is the Value of BDD
Single source of truth. When requirements are built around user behavior, there can be a
single point of reference for stakeholder, developer, and tester.
Human readability. Scenarios can be well understood by both technical and non technical
audiences.
Built for collaboration. Because they are written in a language that all contributing parties
understand, cross discipline collaboration becomes far more natural.
Designed for authenticity. By driving tests from customer facing interfaces, BDD scenarios
allow us to test our applications the way our users do.
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Layers of Testing
Functional Automation
Similar to Acceptance Testing, but of lesser impact and non gating. This automation will be
written to accommodate corner cases and negative approaches. Written in BDD language
and only expressed thru customer accessible interfaces. Executed with each deployment but
non gating.
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Layers of Testing
Performance and Load Testing
Designed to discover and communicate inefficiencies in performance that can impact the
customer experience or stability of the system. These are not functional performance
standards, which are run inside of pipeline and considered part of functional testing.
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Too Much Noise
A word about ephemeral environments and CI/CD
● Performance testing can be difficult in a constantly changing continuous environment
with unpredictable usage patterns
● To solve for this we leverage ephemeral environments for each deployable unit (usually
a service)
● Requests and responses are measured in
isolation, automatically creating defects
when exceeding a standard deviation
● Environments are created and destroyed
automatically as part of the deployment
process
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Layers of Testing
Passive IAST
Passive or “Self Sufficient” Interactive Application Security Testing (IAST) will be run in every
environment and hardness the full potential of our preexisting functional automation to
detect vulnerabilities in our application security.
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Layers of Testing
Exploratory Testing
Designed to expose defects based upon exploratory testing charters. Can be executed by
anyone. Will not be run inside of any deployment pipeline but is often a requirement for
production exposure of a Feature in its definition of done (DoD)
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
What goes into a charter?
● Start with with “Why”
● Guide them to the neighborhood, not the
house
● Identify personas
● Maximize creativity
● Focus on customer experience
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
More art than science
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Test Executions
Conditional Executions
Most will know this as “Tagging”. Tests will be decorated for each independently deployable
component of the system, usually by service or client. Often more than one. Tags will also
be introduced to identify priority levels, which will dictate their behavior inside of our quality
gates.
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Diversity in Executions
● Not in the business of managing selenium
grids
● Parallelization will allow you to cast a wider
net
● 3rd party executors will allow you to focus
on your own business logic
● One more reason to keep tests lean
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Designing for CI/CD
What do I have to consider?
● Keep test scenarios agnostic of environment.
Each scenario should be reusable across all of
your environments
● Plan for instability. Continuously delivered
applications are often less stable that their
traditional counterparts. Embrace this and see
quality from a holistic point of view.
● Be mindful of your runtimes. Especially with
gated tests. CI/CD derives a significant portion of
its value from its short feedback loop, be careful
not to undermine that.
● Automate everything you can. The CI/CD delivery
model is designed for automation. Introducing
manual steps will mitigate its purpose.
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Exit Criteria and Definition of Done
How do we know its ready?
We establish a Definition of Done (DoD) as a set of criteria necessary for the exposure of a
feature to customers in the Production environment. A feature is not considered finished
until it is exposed to all customers in the Production environment.
Example:
• All Acceptance Level tests have been written,
executed, and are passing in all environments
• Exploratory testing has been performed
• Performance metrics are within nominal margins
• Necessary Documentation and Training has been
completed
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Decoupling Deployment from Release
Launching Darkly
● Every user story is associated to an Epic or
Feature which is initially flagged off for all
users outside of the development team.
Features will be built iteratively along with
the automated tests that validate their
health.
● When a feature has met its obligation to the
Definition of Done it becomes eligible for
exposure to customers in Production.
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Dark Launches
What is the impact?
● Granular exposure. You will gain a new level of control over
your customer experience. You will decide who sees what
and when.
● Introduce a new level of readiness. When you gain the
ability to control the exposure of features, you can then
“release” them when your entire organization
is ready. From Support to PSO to Documentation to
Marketing, you can ensure an entire company level of
readiness.
● Remove development bottlenecks. Dark launches allow
for your development and testing organization to
continue work on new features while other parts of your
organization complete their contributions.
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Dark Launches
But stay vigilant
● Management is key. Make sure your organization is prepared
to manage feature flags at scale. The absence of this is the
most common risk of process failure. Tools exist to assist
with this but responsibility will ultimately fall onto your
people.
● So is training. Have a plan in place that empowers your
workforce to learn these concepts. Dark launches will impact
parts of your organization beyond
development, so be sure to include them too.
● Start small and measure everything. There is no detail
involved in dark launches that requires an aburbt or total
switch. Start with a single feature and practice. Your
observations will become valuable lessons to your
implementation. Act upon them and follow your
instincts!
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Key Takeaways
● Invest your time and energy into
Automation. These skills will be critical
in all things continuous.
● Design for portability. Your tests will
provide the most value when they can be
run in any environment, long running or
not.
● Become as collaborative as possible.
Contributing to shared goals and shared
approaches across teams and offices will
be critical to our success.
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Key Takeaways
@ken_dickinson https://www.linkedin.com/in/kennethdickinson/
● Value innovation. Ensure that your
standardization is not limiting your
implementation. Design for growth and
experimentation.
● Find your balance and be patient. Each
application and each organization will
discover its own unique recipe
standardization and liberty.
● Encourage a culture of distributed
contribution. Be ready for code
contributions from a distributed base.
Remember, trading a little structure for a
lot of enthusiasm can be totally worth it!
sas.com
Company Confidential– For Internal Use Only
Copyright © SAS Institute Inc. All rights reserved.
Interested in our work?
http://2.sas.com/TSQA
or
https://sas.com/careers

More Related Content

What's hot

Quickstart Templates with the Salesforce CLI
Quickstart Templates with the Salesforce CLIQuickstart Templates with the Salesforce CLI
Quickstart Templates with the Salesforce CLIKeir Bowden
 
Add Security Testing Tools to Your Delivery Pipeline
Add Security Testing Tools to Your Delivery PipelineAdd Security Testing Tools to Your Delivery Pipeline
Add Security Testing Tools to Your Delivery PipelineTechWell
 
Robert polak matrix skills-web developer 2018-3
Robert polak   matrix skills-web developer 2018-3Robert polak   matrix skills-web developer 2018-3
Robert polak matrix skills-web developer 2018-3Robert Polak
 
Building Enterprise Apps Rapidly with Salesforce Mobile Packs Webinar
Building Enterprise Apps Rapidly with Salesforce Mobile Packs WebinarBuilding Enterprise Apps Rapidly with Salesforce Mobile Packs Webinar
Building Enterprise Apps Rapidly with Salesforce Mobile Packs WebinarSalesforce Developers
 
Release and-dependency-management memphis python
Release and-dependency-management memphis pythonRelease and-dependency-management memphis python
Release and-dependency-management memphis pythonJoe Ferguson
 
Apex for Admins: Beyond the Basics (Part 2)
Apex for Admins: Beyond the Basics (Part 2) Apex for Admins: Beyond the Basics (Part 2)
Apex for Admins: Beyond the Basics (Part 2) Salesforce Developers
 
Intro to Apex - Salesforce Force Friday Webinar
Intro to Apex - Salesforce Force Friday Webinar Intro to Apex - Salesforce Force Friday Webinar
Intro to Apex - Salesforce Force Friday Webinar Abhinav Gupta
 

What's hot (7)

Quickstart Templates with the Salesforce CLI
Quickstart Templates with the Salesforce CLIQuickstart Templates with the Salesforce CLI
Quickstart Templates with the Salesforce CLI
 
Add Security Testing Tools to Your Delivery Pipeline
Add Security Testing Tools to Your Delivery PipelineAdd Security Testing Tools to Your Delivery Pipeline
Add Security Testing Tools to Your Delivery Pipeline
 
Robert polak matrix skills-web developer 2018-3
Robert polak   matrix skills-web developer 2018-3Robert polak   matrix skills-web developer 2018-3
Robert polak matrix skills-web developer 2018-3
 
Building Enterprise Apps Rapidly with Salesforce Mobile Packs Webinar
Building Enterprise Apps Rapidly with Salesforce Mobile Packs WebinarBuilding Enterprise Apps Rapidly with Salesforce Mobile Packs Webinar
Building Enterprise Apps Rapidly with Salesforce Mobile Packs Webinar
 
Release and-dependency-management memphis python
Release and-dependency-management memphis pythonRelease and-dependency-management memphis python
Release and-dependency-management memphis python
 
Apex for Admins: Beyond the Basics (Part 2)
Apex for Admins: Beyond the Basics (Part 2) Apex for Admins: Beyond the Basics (Part 2)
Apex for Admins: Beyond the Basics (Part 2)
 
Intro to Apex - Salesforce Force Friday Webinar
Intro to Apex - Salesforce Force Friday Webinar Intro to Apex - Salesforce Force Friday Webinar
Intro to Apex - Salesforce Force Friday Webinar
 

Similar to TSQA 2020: SAS ENTERPRISE: ACHIEVING WARP SPEED BY TRANSFORMING AUTOMATION INTO CONTINUOUS RELEASE

XebiaLabs Demo: Application Release Automation with Deployit
XebiaLabs Demo: Application Release Automation with DeployitXebiaLabs Demo: Application Release Automation with Deployit
XebiaLabs Demo: Application Release Automation with DeployitXebiaLabs
 
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdfDEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdfAmazon Web Services
 
Thought frameworks brochure
Thought frameworks brochureThought frameworks brochure
Thought frameworks brochureSwetha Muthu
 
CWIN17 Toulouse / Safe 4.5 and agile devops-ca technologies-r.bajul
CWIN17 Toulouse / Safe 4.5 and agile devops-ca technologies-r.bajulCWIN17 Toulouse / Safe 4.5 and agile devops-ca technologies-r.bajul
CWIN17 Toulouse / Safe 4.5 and agile devops-ca technologies-r.bajulCapgemini
 
Testing and Troubleshooting with AWS Device Farm - MBL301 - re:Invent 2017
Testing and Troubleshooting with AWS Device Farm - MBL301 - re:Invent 2017Testing and Troubleshooting with AWS Device Farm - MBL301 - re:Invent 2017
Testing and Troubleshooting with AWS Device Farm - MBL301 - re:Invent 2017Amazon Web Services
 
Functional and Non-functional Test automation
Functional and Non-functional Test automationFunctional and Non-functional Test automation
Functional and Non-functional Test automationDr Ganesh Iyer
 
Evolving Team Structure in DevOps
Evolving Team Structure in DevOpsEvolving Team Structure in DevOps
Evolving Team Structure in DevOpsSherry Chang
 
Agile for Embedded & System Software Development : Presented by Priyank KS
Agile for Embedded & System Software Development : Presented by Priyank KS Agile for Embedded & System Software Development : Presented by Priyank KS
Agile for Embedded & System Software Development : Presented by Priyank KS oGuild .
 
Improve operational excellence & reduce downtime for your IoT devices.pptx
Improve operational excellence & reduce downtime for your IoT devices.pptxImprove operational excellence & reduce downtime for your IoT devices.pptx
Improve operational excellence & reduce downtime for your IoT devices.pptxNeel688696
 
Quality Assurance Engineer - Insight360
Quality Assurance Engineer - Insight360Quality Assurance Engineer - Insight360
Quality Assurance Engineer - Insight360joblessworker6219
 
CWIN17 New-York / Drive continuous delivery with continous testing
CWIN17 New-York / Drive continuous delivery with continous testingCWIN17 New-York / Drive continuous delivery with continous testing
CWIN17 New-York / Drive continuous delivery with continous testingCapgemini
 
Resume of Ashish Deshmukh
Resume of Ashish DeshmukhResume of Ashish Deshmukh
Resume of Ashish DeshmukhAshish Deshmukh
 
T Bytes Agile & AI Operations
T Bytes Agile & AI OperationsT Bytes Agile & AI Operations
T Bytes Agile & AI OperationsEGBG Services
 
Design for Compliance - AWS FS Cloud Symposium Apr 2019.pdf
Design for Compliance - AWS FS Cloud Symposium Apr 2019.pdfDesign for Compliance - AWS FS Cloud Symposium Apr 2019.pdf
Design for Compliance - AWS FS Cloud Symposium Apr 2019.pdfAmazon Web Services
 
#ATAGTR2019 Presentation "Top 10 quality engineering best practices to achiev...
#ATAGTR2019 Presentation "Top 10 quality engineering best practices to achiev...#ATAGTR2019 Presentation "Top 10 quality engineering best practices to achiev...
#ATAGTR2019 Presentation "Top 10 quality engineering best practices to achiev...Agile Testing Alliance
 
Understanding the Salesforce Architecture: How We Do the Magic We Do
Understanding the Salesforce Architecture: How We Do the Magic We DoUnderstanding the Salesforce Architecture: How We Do the Magic We Do
Understanding the Salesforce Architecture: How We Do the Magic We DoSalesforce Developers
 
DevOps in Practice: When does "Practice" Become "Doing"?
DevOps in Practice: When does "Practice" Become "Doing"?DevOps in Practice: When does "Practice" Become "Doing"?
DevOps in Practice: When does "Practice" Become "Doing"?Michael Elder
 
QAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with AppiumQAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with AppiumQAAgility Technologies
 
A Complete Guide to Functional Testing
A Complete Guide to Functional TestingA Complete Guide to Functional Testing
A Complete Guide to Functional TestingMatthew Allen
 
Powering Safe Launch @ Scale (Feature Flags, Targeting, Experimentation)
Powering Safe Launch @ Scale (Feature Flags, Targeting, Experimentation)Powering Safe Launch @ Scale (Feature Flags, Targeting, Experimentation)
Powering Safe Launch @ Scale (Feature Flags, Targeting, Experimentation)Split Software
 

Similar to TSQA 2020: SAS ENTERPRISE: ACHIEVING WARP SPEED BY TRANSFORMING AUTOMATION INTO CONTINUOUS RELEASE (20)

XebiaLabs Demo: Application Release Automation with Deployit
XebiaLabs Demo: Application Release Automation with DeployitXebiaLabs Demo: Application Release Automation with Deployit
XebiaLabs Demo: Application Release Automation with Deployit
 
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdfDEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
DEV305_Manage Your Applications with AWS Elastic Beanstalk.pdf
 
Thought frameworks brochure
Thought frameworks brochureThought frameworks brochure
Thought frameworks brochure
 
CWIN17 Toulouse / Safe 4.5 and agile devops-ca technologies-r.bajul
CWIN17 Toulouse / Safe 4.5 and agile devops-ca technologies-r.bajulCWIN17 Toulouse / Safe 4.5 and agile devops-ca technologies-r.bajul
CWIN17 Toulouse / Safe 4.5 and agile devops-ca technologies-r.bajul
 
Testing and Troubleshooting with AWS Device Farm - MBL301 - re:Invent 2017
Testing and Troubleshooting with AWS Device Farm - MBL301 - re:Invent 2017Testing and Troubleshooting with AWS Device Farm - MBL301 - re:Invent 2017
Testing and Troubleshooting with AWS Device Farm - MBL301 - re:Invent 2017
 
Functional and Non-functional Test automation
Functional and Non-functional Test automationFunctional and Non-functional Test automation
Functional and Non-functional Test automation
 
Evolving Team Structure in DevOps
Evolving Team Structure in DevOpsEvolving Team Structure in DevOps
Evolving Team Structure in DevOps
 
Agile for Embedded & System Software Development : Presented by Priyank KS
Agile for Embedded & System Software Development : Presented by Priyank KS Agile for Embedded & System Software Development : Presented by Priyank KS
Agile for Embedded & System Software Development : Presented by Priyank KS
 
Improve operational excellence & reduce downtime for your IoT devices.pptx
Improve operational excellence & reduce downtime for your IoT devices.pptxImprove operational excellence & reduce downtime for your IoT devices.pptx
Improve operational excellence & reduce downtime for your IoT devices.pptx
 
Quality Assurance Engineer - Insight360
Quality Assurance Engineer - Insight360Quality Assurance Engineer - Insight360
Quality Assurance Engineer - Insight360
 
CWIN17 New-York / Drive continuous delivery with continous testing
CWIN17 New-York / Drive continuous delivery with continous testingCWIN17 New-York / Drive continuous delivery with continous testing
CWIN17 New-York / Drive continuous delivery with continous testing
 
Resume of Ashish Deshmukh
Resume of Ashish DeshmukhResume of Ashish Deshmukh
Resume of Ashish Deshmukh
 
T Bytes Agile & AI Operations
T Bytes Agile & AI OperationsT Bytes Agile & AI Operations
T Bytes Agile & AI Operations
 
Design for Compliance - AWS FS Cloud Symposium Apr 2019.pdf
Design for Compliance - AWS FS Cloud Symposium Apr 2019.pdfDesign for Compliance - AWS FS Cloud Symposium Apr 2019.pdf
Design for Compliance - AWS FS Cloud Symposium Apr 2019.pdf
 
#ATAGTR2019 Presentation "Top 10 quality engineering best practices to achiev...
#ATAGTR2019 Presentation "Top 10 quality engineering best practices to achiev...#ATAGTR2019 Presentation "Top 10 quality engineering best practices to achiev...
#ATAGTR2019 Presentation "Top 10 quality engineering best practices to achiev...
 
Understanding the Salesforce Architecture: How We Do the Magic We Do
Understanding the Salesforce Architecture: How We Do the Magic We DoUnderstanding the Salesforce Architecture: How We Do the Magic We Do
Understanding the Salesforce Architecture: How We Do the Magic We Do
 
DevOps in Practice: When does "Practice" Become "Doing"?
DevOps in Practice: When does "Practice" Become "Doing"?DevOps in Practice: When does "Practice" Become "Doing"?
DevOps in Practice: When does "Practice" Become "Doing"?
 
QAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with AppiumQAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with Appium
 
A Complete Guide to Functional Testing
A Complete Guide to Functional TestingA Complete Guide to Functional Testing
A Complete Guide to Functional Testing
 
Powering Safe Launch @ Scale (Feature Flags, Targeting, Experimentation)
Powering Safe Launch @ Scale (Feature Flags, Targeting, Experimentation)Powering Safe Launch @ Scale (Feature Flags, Targeting, Experimentation)
Powering Safe Launch @ Scale (Feature Flags, Targeting, Experimentation)
 

Recently uploaded

New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Recently uploaded (20)

New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 

TSQA 2020: SAS ENTERPRISE: ACHIEVING WARP SPEED BY TRANSFORMING AUTOMATION INTO CONTINUOUS RELEASE

  • 1. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. SAS Enterprise Transforming Automation into Continuous Release
  • 2. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Trivia Time! @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 3. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. What will we talk about today? ● The differences between testing in an enterprise environment ● One particular way to adapt the testing of monthly releases into the Continuous Delivery of features ● The types of testing and why we identify them ● How to change the tires on a moving car @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 4. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Hi, Nice to Meet You Ken Dickinson Director, Research & Development SAS Institute ● Tenures in both tiny startups and multiple fortune 500 enterprises ● Led teams across testing, development, operations, and product disciplines. ● Advocate for humanity in automated testing @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 5. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. What is SAS? ● Founded in 1976 by grad students at NCSU ● One of the “godfathers” of modern analytics ● Approaching 14,000 employees worldwide ● Totally not evil... @ken_dickinson https://www.linkedin.com/in/kennethdickinson/ Welcome to the Institute
  • 6. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. What is the Enterprise ? @ken_dickinson https://www.linkedin.com/in/kennethdickinson/ ● Not a startup ● What has made us successful before will make us successful in the future ● Change “must” apply to all ● Hidden innovators waiting to be discovered ● Firepower
  • 7. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. What is DevOps? @ken_dickinson https://www.linkedin.com/in/kennethdickinson/ You are. ● Prepare yourself to become the ideas you believe in ● Your conviction and passion will be observed and measured ● Know when you have the answers, but also when you don’t ● Much of this is about advocacy. Never sleep
  • 8. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Where do we begin? ● Customer Intelligence is an AWS based platform for Marketing Analytics ● SAS but also SaaS ● Our only cloud native offering (for now) ● Used by hundreds of enterprise customers to connect to their own customers @ken_dickinson https://www.linkedin.com/in/kennethdickinson/ You guessed it, Marketing Analytics.
  • 9. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. In the Beginning ● Single monolithic platform deploying all at once ● Monthly scheduled releases ● Planned manual testing phases ● No production monitoring or observability outside of the AWS console @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 10. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. An Ambitious Mission ● Turn monthly releases into Continuous Delivery ● Normalize automation first culture ● Unify and streamline automation development ● Shrink the barrier of entry to automation contribution ● Test everything, everywhere ● Begin pushing the AI envelope @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 11. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. This is Software Engineering, not Testing ● We are not goalies or quality police ● Quality is everyone’s responsibility ● We implement quality into systems ● Sometimes we write tests, sometimes we don’t ● Our mandate is to produce valuable changes to our customers that are of the highest quality possible @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 12. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Ok Fine, But How? Unit Tests Contract Tests API Tests Acceptance Tests Exploratory | Usability Tests Functional Automation Security and Vulnerability Performance and Load Testing @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 13. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Why Layers? • Small, Purposeful, Libraries. Separating tests into distributed layers encourages the development of maintainable libraries with clear purpose. • Clear Expectations. When tests are defined on a given layer, they inherit clearly defined expectations of what the do and don’t do. • Reporting & Triage. Testing on specific layers of a stack create more meaningful reporting and actionable logging @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 14. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Layers of Testing Unit Testing Designed to validate behavior on a function or method level. Can and should use mocked dependencies. Run as part of the build process for the service they represent. Measured in Code Coverage, which will be held above a defined percentage. public void TestPhoneValidator() { string goodPhone = "(123) 555-1212"; string badPhone = "555 12" PhoneValidator validator = new PhoneValidator(); Assert.IsTrue(validator.IsValid(goodPhone)); Assert.IsFalse(validator.IsValid(badPhone)); } @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 15. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Layers of Testing Consumer Driven Contracts Designed to validate schema of API contracts between dependencies and dependents (some call this consumers and providers). Runs as part of the build process, should be included for every service level dependency. Given "there is no user called Mary" When "creating a user with username Mary" POST /users { "username": "mary", email: "...", ... } Then Expected Response is 200 OK
  • 16. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Layers of Testing Contract Testing Tooling One straightforward way to manage consumer driven contracts is with an open source framework called PACT. I also recommend a plug in called PACT Broker to visualize it. @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 17. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Layers of Testing API Testing An extension of contract testing, some will know this as integration testing. Designed to validate the functionality of our private and public API’s. Targets request/response behavior of each endpoint using a shared requests library across all teams. When "creating a user with a username with 21 characters" POST /users { "username": "thisisalooongusername", email: "...", ... } Then Expected Response is 400 Bad Request Expected Response body is { "error": "username cannot be more than 20 characters" } @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 18. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Layers of Testing Acceptance Testing Designed to validate the acceptance criteria and the general health of our user experience. Written in Behavior Driven Development (BDD) language and only expressed thru customer accessible interfaces. Gating deployments of released features. @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 19. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. What is the Value of BDD Single source of truth. When requirements are built around user behavior, there can be a single point of reference for stakeholder, developer, and tester. Human readability. Scenarios can be well understood by both technical and non technical audiences. Built for collaboration. Because they are written in a language that all contributing parties understand, cross discipline collaboration becomes far more natural. Designed for authenticity. By driving tests from customer facing interfaces, BDD scenarios allow us to test our applications the way our users do. @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 20. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Layers of Testing Functional Automation Similar to Acceptance Testing, but of lesser impact and non gating. This automation will be written to accommodate corner cases and negative approaches. Written in BDD language and only expressed thru customer accessible interfaces. Executed with each deployment but non gating. @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 21. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Layers of Testing Performance and Load Testing Designed to discover and communicate inefficiencies in performance that can impact the customer experience or stability of the system. These are not functional performance standards, which are run inside of pipeline and considered part of functional testing. @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 22. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Too Much Noise A word about ephemeral environments and CI/CD ● Performance testing can be difficult in a constantly changing continuous environment with unpredictable usage patterns ● To solve for this we leverage ephemeral environments for each deployable unit (usually a service) ● Requests and responses are measured in isolation, automatically creating defects when exceeding a standard deviation ● Environments are created and destroyed automatically as part of the deployment process @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 23. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Layers of Testing Passive IAST Passive or “Self Sufficient” Interactive Application Security Testing (IAST) will be run in every environment and hardness the full potential of our preexisting functional automation to detect vulnerabilities in our application security. @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 24. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Layers of Testing Exploratory Testing Designed to expose defects based upon exploratory testing charters. Can be executed by anyone. Will not be run inside of any deployment pipeline but is often a requirement for production exposure of a Feature in its definition of done (DoD) @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 25. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. What goes into a charter? ● Start with with “Why” ● Guide them to the neighborhood, not the house ● Identify personas ● Maximize creativity ● Focus on customer experience @ken_dickinson https://www.linkedin.com/in/kennethdickinson/ More art than science
  • 26. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Test Executions Conditional Executions Most will know this as “Tagging”. Tests will be decorated for each independently deployable component of the system, usually by service or client. Often more than one. Tags will also be introduced to identify priority levels, which will dictate their behavior inside of our quality gates. @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 27. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Diversity in Executions ● Not in the business of managing selenium grids ● Parallelization will allow you to cast a wider net ● 3rd party executors will allow you to focus on your own business logic ● One more reason to keep tests lean @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 28. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Designing for CI/CD What do I have to consider? ● Keep test scenarios agnostic of environment. Each scenario should be reusable across all of your environments ● Plan for instability. Continuously delivered applications are often less stable that their traditional counterparts. Embrace this and see quality from a holistic point of view. ● Be mindful of your runtimes. Especially with gated tests. CI/CD derives a significant portion of its value from its short feedback loop, be careful not to undermine that. ● Automate everything you can. The CI/CD delivery model is designed for automation. Introducing manual steps will mitigate its purpose. @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 29. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Exit Criteria and Definition of Done How do we know its ready? We establish a Definition of Done (DoD) as a set of criteria necessary for the exposure of a feature to customers in the Production environment. A feature is not considered finished until it is exposed to all customers in the Production environment. Example: • All Acceptance Level tests have been written, executed, and are passing in all environments • Exploratory testing has been performed • Performance metrics are within nominal margins • Necessary Documentation and Training has been completed @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 30. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Decoupling Deployment from Release Launching Darkly ● Every user story is associated to an Epic or Feature which is initially flagged off for all users outside of the development team. Features will be built iteratively along with the automated tests that validate their health. ● When a feature has met its obligation to the Definition of Done it becomes eligible for exposure to customers in Production. @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 31. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Dark Launches What is the impact? ● Granular exposure. You will gain a new level of control over your customer experience. You will decide who sees what and when. ● Introduce a new level of readiness. When you gain the ability to control the exposure of features, you can then “release” them when your entire organization is ready. From Support to PSO to Documentation to Marketing, you can ensure an entire company level of readiness. ● Remove development bottlenecks. Dark launches allow for your development and testing organization to continue work on new features while other parts of your organization complete their contributions. @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 32. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Dark Launches But stay vigilant ● Management is key. Make sure your organization is prepared to manage feature flags at scale. The absence of this is the most common risk of process failure. Tools exist to assist with this but responsibility will ultimately fall onto your people. ● So is training. Have a plan in place that empowers your workforce to learn these concepts. Dark launches will impact parts of your organization beyond development, so be sure to include them too. ● Start small and measure everything. There is no detail involved in dark launches that requires an aburbt or total switch. Start with a single feature and practice. Your observations will become valuable lessons to your implementation. Act upon them and follow your instincts! @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 33. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Key Takeaways ● Invest your time and energy into Automation. These skills will be critical in all things continuous. ● Design for portability. Your tests will provide the most value when they can be run in any environment, long running or not. ● Become as collaborative as possible. Contributing to shared goals and shared approaches across teams and offices will be critical to our success. @ken_dickinson https://www.linkedin.com/in/kennethdickinson/
  • 34. Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Key Takeaways @ken_dickinson https://www.linkedin.com/in/kennethdickinson/ ● Value innovation. Ensure that your standardization is not limiting your implementation. Design for growth and experimentation. ● Find your balance and be patient. Each application and each organization will discover its own unique recipe standardization and liberty. ● Encourage a culture of distributed contribution. Be ready for code contributions from a distributed base. Remember, trading a little structure for a lot of enthusiasm can be totally worth it!
  • 35. sas.com Company Confidential– For Internal Use Only Copyright © SAS Institute Inc. All rights reserved. Interested in our work? http://2.sas.com/TSQA or https://sas.com/careers