SlideShare a Scribd company logo
CD test strategies
1
26 October 2017, Hylke Stapersma, @hylke1982
2
AGENDA
CD test strategies
Why continuous delivery
Why (automatic) testing
CI/CD Testing strategy
Functional testing strategies
Non functional testing strategies
Hylke Stapersma
Software
craftsman, Java,
CI/CD, DevOps.
Streaming data
3
Personal introduction
4
Why continuous delivery
Code is value
Every line of code should be focused on delivering
value as soon as possible. This means the code
should be delivered to the end-user within the smallest
time window possible.
5
Why continuous delivery
Small increments
Take small steps that can be released more often,
instead of big steps that have a high risk of failing.
6
Why continuous delivery
Higher quality & quality build in
Automation makes process more reliable, instead of
having a human making mistakes automation needs to
be setup once right instead.
7
Why continuous delivery
Faster time to market
Software only makes money in production, this can
only be done with a strategy that delivers software
automatically as fast as possible. Reliable delivery is
key here.
8
Why continuous delivery
Faster feedback
Almost know instantly if the software has defects and
get notified on these defects.
9
Why continuous delivery
Chain of trust
Every step/test will add (automatically) add trust to a
version of a application.
10
Why continuous delivery
11
Why (automatic) testing
End-user should not experience defects
End-users who experience defects in a production
environment will loose confidence in the product. Trust
is key in making or saving money with software.
12
Why (automatic) testing
Find defects early
How sooner a defect is found how cheaper it will be to
fix it. A defect in production can have severe cost and
cause reputation damages.
13
Why (automatic) testing
Documentation
Tests descriptions and results are great ways to
document how the system supposed to work.
Automation can give the ability to create this
completely automatically.
14
Why (automatic) testing
Ready for refactoring
Having a automated test setup gives confidence to
refactor and find regression problems when changing
the software.
15
Why (automatic) testing
Performance
Being able to say something about how the system is
going to performance under certain loads instead of
finding it out by end-users.
16
Why (automatic) testing
Security
Find security problems in early stage. Security
problems can lead up to penalties and reputation
damages.
17
Why (automatic) testing
18
CI/CD testing strategy
Automate everything
Automation is a great way to eliminate unnecessary
manual repetitions. Run all tests with a minimal set of
commands.
19
CI/CD testing strategy
Code and version everything
Writing tests as code offers a great way to collaborate
as a team, because code can be versioned, reviewed
and changed by multiple versions.
20
CI/CD testing strategy
Adopt TDD strategy
Write tests before writing code. This helps to get a
better understanding of the problem, and code is
covered by test before being written.
21
CI/CD testing strategy
Align
Choose a test framework that aligns with the solution
being build. For example choose the same
programming language for application and tests.
22
CI/CD testing strategy
Automate documentation
Every step that runs test should create documentation
automatically, use, share and distribute this
documentation in a automated fashion.
23
CI/CD testing strategy
Fail fast – fail early
Validate if every condition is met before starting
‘expensive’ tests. For example see if application is
available or there is enough disk space.
24
CI/CD testing strategy
25
Functional testing
strategy
Test pyramid
Use the testing pyramid for a fast but complete test
setup. Try to cover almost everything with ‘cheap’ unit
tests and only do ’expensive’ the necessary
functional/acceptance tests.
26
Functional testing strategy
Unit testing
One unit tests should focus a single atomic part of the
application in a certain state. (good practice is one
assert per test). Execute thousands per second and
use a TDD approach.
27
Functional testing strategy
Mutation testing
To validate the validity of unit test use mutation testing.
See if tests fail when a line of code is changed. Will
prove the strength of the unit tests.
28
Functional testing strategy
Property based testing
Instead of example use properties to validate. For
example everything in a range is true. This will validate
the range.
29
Functional testing strategy
Integration/component testing
Validate if software components work together.
30
Functional testing strategy
Contract testing
Validate if interfaces are compliant on the server and
on the client side. Share documentation about
assumptions of a API. Use PACT for example.
31
Functional testing strategy
Functional / Acceptance testing
Describe on a high level assumptions how to end-user
will interact with the system. Use a language that can
be understood by machine and humans.
32
Functional testing strategy
Manual testing
Only focus manual testing on things that are hard to
understand for a computer. For example does look
right and does the response feels right.
33
Functional testing strategy
34
Non functional testing
strategy
Security testing
Based on known security issues try to break the
application.
35
Non functional testing strategy
Performance testing
Find the limits, normal behavior, stress behavior and
sizing for the application. Works great by adopting a
cloud strategy.
36
Non functional testing strategy
Compliance testing
Automatically validate if the system is compliant with
internal and external rules.
37
Non functional testing strategy
Chaos monkey / Resilience testing
By introducing stress or failure find weak spots within
a system.
38
Non functional testing strategy
39
Thank you

More Related Content

What's hot

Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
Hicham El Hammouchi
 
Cost of defects
Cost of defectsCost of defects
Cost of defects
Michael Garcia
 
Unit testing for project managers
Unit testing for project managersUnit testing for project managers
Unit testing for project managers
Zend by Rogue Wave Software
 
Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?
David Alfaro
 
ISTQB Foundation Agile Tester 2014 Training, Agile SW Development
ISTQB Foundation Agile Tester 2014 Training, Agile SW DevelopmentISTQB Foundation Agile Tester 2014 Training, Agile SW Development
ISTQB Foundation Agile Tester 2014 Training, Agile SW Development
Amr Ali (ISTQB CTAL Full, CSM, ITIL Foundation)
 
Test-Driven development; why you should never code without it
Test-Driven development; why you should never code without itTest-Driven development; why you should never code without it
Test-Driven development; why you should never code without it
Jad Salhani
 
Continues Integration for Android
Continues Integration for AndroidContinues Integration for Android
Continues Integration for Android
CODETE
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
Intetics
 
Optimizing Your Agile Testing Processes
Optimizing Your Agile Testing ProcessesOptimizing Your Agile Testing Processes
Optimizing Your Agile Testing Processes
Stanton Champion
 
Automation testing in Agile project
Automation testing in Agile projectAutomation testing in Agile project
Automation testing in Agile project
Hien Nguyen
 
TDD in Agile
TDD in AgileTDD in Agile
TDD in Agile
Atish Narlawar
 
Agile QA and Testing process
Agile QA and Testing processAgile QA and Testing process
Agile QA and Testing process
Gloria Stoilova
 
Why Automated Testing Matters To DevOps
Why Automated Testing Matters To DevOpsWhy Automated Testing Matters To DevOps
Why Automated Testing Matters To DevOps
dpaulmerrill
 
Agile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User GroupAgile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User Group
suwalki24.pl
 
Improving the Quality of Incoming Code
Improving the Quality of Incoming CodeImproving the Quality of Incoming Code
Improving the Quality of Incoming Code
Naresh Jain
 
Test Driven Development by Sameer Arora
Test Driven Development by Sameer AroraTest Driven Development by Sameer Arora
Test Driven Development by Sameer Arora
Xebia IT Architects
 
While You Are Coding
While You Are CodingWhile You Are Coding
While You Are Coding
Zeynep Düzyurt
 
A Concise QA Process
A Concise QA Process A Concise QA Process
A Concise QA Process
Arslan Ali
 
Project Delivery
Project DeliveryProject Delivery
Project Delivery
CODETE
 

What's hot (19)

Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Cost of defects
Cost of defectsCost of defects
Cost of defects
 
Unit testing for project managers
Unit testing for project managersUnit testing for project managers
Unit testing for project managers
 
Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?Test-Driven Design - ¿Porqué?
Test-Driven Design - ¿Porqué?
 
ISTQB Foundation Agile Tester 2014 Training, Agile SW Development
ISTQB Foundation Agile Tester 2014 Training, Agile SW DevelopmentISTQB Foundation Agile Tester 2014 Training, Agile SW Development
ISTQB Foundation Agile Tester 2014 Training, Agile SW Development
 
Test-Driven development; why you should never code without it
Test-Driven development; why you should never code without itTest-Driven development; why you should never code without it
Test-Driven development; why you should never code without it
 
Continues Integration for Android
Continues Integration for AndroidContinues Integration for Android
Continues Integration for Android
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
Optimizing Your Agile Testing Processes
Optimizing Your Agile Testing ProcessesOptimizing Your Agile Testing Processes
Optimizing Your Agile Testing Processes
 
Automation testing in Agile project
Automation testing in Agile projectAutomation testing in Agile project
Automation testing in Agile project
 
TDD in Agile
TDD in AgileTDD in Agile
TDD in Agile
 
Agile QA and Testing process
Agile QA and Testing processAgile QA and Testing process
Agile QA and Testing process
 
Why Automated Testing Matters To DevOps
Why Automated Testing Matters To DevOpsWhy Automated Testing Matters To DevOps
Why Automated Testing Matters To DevOps
 
Agile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User GroupAgile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User Group
 
Improving the Quality of Incoming Code
Improving the Quality of Incoming CodeImproving the Quality of Incoming Code
Improving the Quality of Incoming Code
 
Test Driven Development by Sameer Arora
Test Driven Development by Sameer AroraTest Driven Development by Sameer Arora
Test Driven Development by Sameer Arora
 
While You Are Coding
While You Are CodingWhile You Are Coding
While You Are Coding
 
A Concise QA Process
A Concise QA Process A Concise QA Process
A Concise QA Process
 
Project Delivery
Project DeliveryProject Delivery
Project Delivery
 

Similar to Continuous delivery test strategies

Acceptance Testing Driven Development, TDD
Acceptance Testing Driven Development, TDDAcceptance Testing Driven Development, TDD
Acceptance Testing Driven Development, TDD
Laurent PY
 
Increasing Quality with DevOps
Increasing Quality with DevOpsIncreasing Quality with DevOps
Increasing Quality with DevOps
Coveros, Inc.
 
Test Driven Development - Overview and Adoption
Test Driven Development - Overview and AdoptionTest Driven Development - Overview and Adoption
Test Driven Development - Overview and Adoption
Pyxis Technologies
 
Software coding and testing
Software coding and testingSoftware coding and testing
Software coding and testing
Sandeep Kumar Nayak
 
Combinatorial testing
Combinatorial testingCombinatorial testing
Combinatorial testing
Kedar Kumar
 
Future of QA
Future of QAFuture of QA
Future of QA
amitagarwal2006
 
Futureofqa
FutureofqaFutureofqa
Futureofqa
amitagarwal2006
 
Build And Test Automation - Shortening the Feedback Loop
Build And Test Automation - Shortening the Feedback LoopBuild And Test Automation - Shortening the Feedback Loop
Build And Test Automation - Shortening the Feedback Loop
Rally Software
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
QA or the Highway
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
Sauce Labs
 
Everything You Need to Know About Regression Testing Automation.pdf
Everything You Need to Know About Regression Testing Automation.pdfEverything You Need to Know About Regression Testing Automation.pdf
Everything You Need to Know About Regression Testing Automation.pdf
RohitBhandari66
 
Automation Best Practices.pptx
Automation Best Practices.pptxAutomation Best Practices.pptx
Automation Best Practices.pptx
pavelpopov43
 
Software Testing Concepts
Software Testing  ConceptsSoftware Testing  Concepts
Software Testing Concepts
Shahram Foroozan
 
Automating The Process For Building Reliable Software
Automating The Process For Building Reliable SoftwareAutomating The Process For Building Reliable Software
Automating The Process For Building Reliable Software
guest8861ff
 
An Ultimate Guide to Continuous Testing in Agile Projects.pdf
An Ultimate Guide to Continuous Testing in Agile Projects.pdfAn Ultimate Guide to Continuous Testing in Agile Projects.pdf
An Ultimate Guide to Continuous Testing in Agile Projects.pdf
KMSSolutionsMarketin
 
A more successful model for multi-shore testing
A more successful model for multi-shore testingA more successful model for multi-shore testing
A more successful model for multi-shore testing
Perficient, Inc.
 
Automation Concepts
Automation ConceptsAutomation Concepts
Automation Concepts
Nishant Worah
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
adrianmitev
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
harinderpisces
 
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptxOS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
ShivareddyGangam
 

Similar to Continuous delivery test strategies (20)

Acceptance Testing Driven Development, TDD
Acceptance Testing Driven Development, TDDAcceptance Testing Driven Development, TDD
Acceptance Testing Driven Development, TDD
 
Increasing Quality with DevOps
Increasing Quality with DevOpsIncreasing Quality with DevOps
Increasing Quality with DevOps
 
Test Driven Development - Overview and Adoption
Test Driven Development - Overview and AdoptionTest Driven Development - Overview and Adoption
Test Driven Development - Overview and Adoption
 
Software coding and testing
Software coding and testingSoftware coding and testing
Software coding and testing
 
Combinatorial testing
Combinatorial testingCombinatorial testing
Combinatorial testing
 
Future of QA
Future of QAFuture of QA
Future of QA
 
Futureofqa
FutureofqaFutureofqa
Futureofqa
 
Build And Test Automation - Shortening the Feedback Loop
Build And Test Automation - Shortening the Feedback LoopBuild And Test Automation - Shortening the Feedback Loop
Build And Test Automation - Shortening the Feedback Loop
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 
Everything You Need to Know About Regression Testing Automation.pdf
Everything You Need to Know About Regression Testing Automation.pdfEverything You Need to Know About Regression Testing Automation.pdf
Everything You Need to Know About Regression Testing Automation.pdf
 
Automation Best Practices.pptx
Automation Best Practices.pptxAutomation Best Practices.pptx
Automation Best Practices.pptx
 
Software Testing Concepts
Software Testing  ConceptsSoftware Testing  Concepts
Software Testing Concepts
 
Automating The Process For Building Reliable Software
Automating The Process For Building Reliable SoftwareAutomating The Process For Building Reliable Software
Automating The Process For Building Reliable Software
 
An Ultimate Guide to Continuous Testing in Agile Projects.pdf
An Ultimate Guide to Continuous Testing in Agile Projects.pdfAn Ultimate Guide to Continuous Testing in Agile Projects.pdf
An Ultimate Guide to Continuous Testing in Agile Projects.pdf
 
A more successful model for multi-shore testing
A more successful model for multi-shore testingA more successful model for multi-shore testing
A more successful model for multi-shore testing
 
Automation Concepts
Automation ConceptsAutomation Concepts
Automation Concepts
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
 
TDD - Agile
TDD - Agile TDD - Agile
TDD - Agile
 
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptxOS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
OS-Final-Transform-Manual-Testing-Processes-to-incorporate-Automatio....pptx
 

Recently uploaded

Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
aymanquadri279
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Envertis Software Solutions
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 

Recently uploaded (20)

Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 

Continuous delivery test strategies

  • 1. CD test strategies 1 26 October 2017, Hylke Stapersma, @hylke1982
  • 2. 2 AGENDA CD test strategies Why continuous delivery Why (automatic) testing CI/CD Testing strategy Functional testing strategies Non functional testing strategies
  • 3. Hylke Stapersma Software craftsman, Java, CI/CD, DevOps. Streaming data 3 Personal introduction
  • 5. Code is value Every line of code should be focused on delivering value as soon as possible. This means the code should be delivered to the end-user within the smallest time window possible. 5 Why continuous delivery
  • 6. Small increments Take small steps that can be released more often, instead of big steps that have a high risk of failing. 6 Why continuous delivery
  • 7. Higher quality & quality build in Automation makes process more reliable, instead of having a human making mistakes automation needs to be setup once right instead. 7 Why continuous delivery
  • 8. Faster time to market Software only makes money in production, this can only be done with a strategy that delivers software automatically as fast as possible. Reliable delivery is key here. 8 Why continuous delivery
  • 9. Faster feedback Almost know instantly if the software has defects and get notified on these defects. 9 Why continuous delivery
  • 10. Chain of trust Every step/test will add (automatically) add trust to a version of a application. 10 Why continuous delivery
  • 12. End-user should not experience defects End-users who experience defects in a production environment will loose confidence in the product. Trust is key in making or saving money with software. 12 Why (automatic) testing
  • 13. Find defects early How sooner a defect is found how cheaper it will be to fix it. A defect in production can have severe cost and cause reputation damages. 13 Why (automatic) testing
  • 14. Documentation Tests descriptions and results are great ways to document how the system supposed to work. Automation can give the ability to create this completely automatically. 14 Why (automatic) testing
  • 15. Ready for refactoring Having a automated test setup gives confidence to refactor and find regression problems when changing the software. 15 Why (automatic) testing
  • 16. Performance Being able to say something about how the system is going to performance under certain loads instead of finding it out by end-users. 16 Why (automatic) testing
  • 17. Security Find security problems in early stage. Security problems can lead up to penalties and reputation damages. 17 Why (automatic) testing
  • 19. Automate everything Automation is a great way to eliminate unnecessary manual repetitions. Run all tests with a minimal set of commands. 19 CI/CD testing strategy
  • 20. Code and version everything Writing tests as code offers a great way to collaborate as a team, because code can be versioned, reviewed and changed by multiple versions. 20 CI/CD testing strategy
  • 21. Adopt TDD strategy Write tests before writing code. This helps to get a better understanding of the problem, and code is covered by test before being written. 21 CI/CD testing strategy
  • 22. Align Choose a test framework that aligns with the solution being build. For example choose the same programming language for application and tests. 22 CI/CD testing strategy
  • 23. Automate documentation Every step that runs test should create documentation automatically, use, share and distribute this documentation in a automated fashion. 23 CI/CD testing strategy
  • 24. Fail fast – fail early Validate if every condition is met before starting ‘expensive’ tests. For example see if application is available or there is enough disk space. 24 CI/CD testing strategy
  • 26. Test pyramid Use the testing pyramid for a fast but complete test setup. Try to cover almost everything with ‘cheap’ unit tests and only do ’expensive’ the necessary functional/acceptance tests. 26 Functional testing strategy
  • 27. Unit testing One unit tests should focus a single atomic part of the application in a certain state. (good practice is one assert per test). Execute thousands per second and use a TDD approach. 27 Functional testing strategy
  • 28. Mutation testing To validate the validity of unit test use mutation testing. See if tests fail when a line of code is changed. Will prove the strength of the unit tests. 28 Functional testing strategy
  • 29. Property based testing Instead of example use properties to validate. For example everything in a range is true. This will validate the range. 29 Functional testing strategy
  • 30. Integration/component testing Validate if software components work together. 30 Functional testing strategy
  • 31. Contract testing Validate if interfaces are compliant on the server and on the client side. Share documentation about assumptions of a API. Use PACT for example. 31 Functional testing strategy
  • 32. Functional / Acceptance testing Describe on a high level assumptions how to end-user will interact with the system. Use a language that can be understood by machine and humans. 32 Functional testing strategy
  • 33. Manual testing Only focus manual testing on things that are hard to understand for a computer. For example does look right and does the response feels right. 33 Functional testing strategy
  • 35. Security testing Based on known security issues try to break the application. 35 Non functional testing strategy
  • 36. Performance testing Find the limits, normal behavior, stress behavior and sizing for the application. Works great by adopting a cloud strategy. 36 Non functional testing strategy
  • 37. Compliance testing Automatically validate if the system is compliant with internal and external rules. 37 Non functional testing strategy
  • 38. Chaos monkey / Resilience testing By introducing stress or failure find weak spots within a system. 38 Non functional testing strategy

Editor's Notes

  1. Build up software and gather feedback
  2. Baseline testing Compliance testing Documentation testing Endurance testing Load testing Localization testing and Internationalization testing Performance testing Recovery testing Resilience testing Security testing Scalability testing Stress testing Usability testing Volume testing