SlideShare a Scribd company logo
1 of 21
TESTING
TESTING
EVERYWHERE
KEV MCCABE
14TH MAY 2014
CF OBJECTIVE 2014
http://nud.gr/QIZntJ
INTRODUCTION
http://nud.gr/QIZntJ
SLIDES LINK
http://nud.gr/QIZntJ
http://nud.gr/QIZntJ
TESTING PYRAMID
Exploratory
Acceptance*
Integration*
Unit Tests*
* Automated Testshttp://nud.gr/QIZntJ
INVERTED TESTING
PYRAMID
E x p l o r a t o r y
Acceptance*
Integration*
Unit
Tests** Automated Tests
http://nud.gr/QIZntJ
AUTOMATED TESTS
Comment from my Unit Testing Session @
CF Summit:
This one I liked the least. Seems like overkill to
write 10 times more code just to test one tiny piece
of the application. I can understand how it would
be helpful for large teams where the work is split
among multiple developers, but for a small team
and a rapid dev cycle, this just seems like
unnecessary overhead. I wasn't convinced of the
real-world applicability.
If this was you I hope I can convince you 
http://nud.gr/QIZntJ
YOUR APPLICATION
STACK
HTML
JavaScript
CFML
Database
http://nud.gr/QIZntJ
AUTOMATION
CFML Code
• Beans
• Services
• Handlers
JavaScript
• Plain Javascript
• jQuery
• AngularJS etc
Database
UI
http://nud.gr/QIZntJ
DATABASE TESTING
To be honest – not found a good one
So test using TestBox
This is actually good!
You need a DB Instance just for this.
So you can tear it down and refresh as needed
http://nud.gr/QIZntJ
CFML
Testing of Beans
• Make sure they hold the data you intended
• Have any special functions?
Services
• SRP
• Right calls
Handlers
• If using a MVC framework make sure it’s doing what you
wanted
http://nud.gr/QIZntJ
JAVASCRIPT
Yes you can test your JavaScript
Test Plain JavaScript
jQuery calls
AngularJS applications
http://nud.gr/QIZntJ
FULL INTEGRATION
TESTS
Testing in different browsers
Create a Framework
Make it interesting for the business
• They will really care about this level!
• Once you show them it working
http://nud.gr/QIZntJ
TESTING TYPES
TDD
POUT
BDD
Automated
Exploratory
http://nud.gr/QIZntJ
TDD
Why do we do TDD? We do TDD for one overriding reason
and several less important reasons. The less important
reasons are:
• We spend less time debugging.
• The tests act as accurate, precise, and unambiguous
documentation at the lowest level of the system.
• Writing tests first requires decoupling that other testing
strategies do not; and we believe that such decoupling is
beneficial.
Those are ancillary benefits of TDD; and they are debatable.
There is, however, one benefit that, given certain conditions
are met, cannot be debated:
Robert “Uncle Bob” Martin
http://blog.8thlight.com/uncle-bob/2014/04/25/MonogamousTDD.html
http://nud.gr/QIZntJ
TDD
If you have a test suite that you trust
so much that you are willing to deploy
the system based solely on those
tests passing; and if that test suite
can be executed in seconds, or
minutes, then you can quickly and
easily clean the code without fear.
Robert “Uncle Bob” Martin
http://blog.8thlight.com/uncle-bob/2014/04/25/MonogamousTDD.html
http://nud.gr/QIZntJ
http://nud.gr/QIZntJ
http://nud.gr/QIZntJ
OTHER SESSIONS @
CF OBJECTIVE
Thursday @ 10:15am
Stop Making Excuses And Start Testing Your JavaScript! - Ryan Anklam
Thursday @ 11:30am
BDD - Change the way you code - Luis Majano
Thursday @ 4:15pm
Updating/Hotfixing ColdFusion 10, 9 and 8: Tips and Traps - Charlie Arehart
Friday @ 11:30am
Leveling-Up at Javascript: Organization, Performance & Testing - Raymond
Camden
Friday @ 1:45pm
Real World Selenium Testing - Mary Jo Sminkey
http://nud.gr/QIZntJ
THANK YOU &
QUESTIONS?
http://nud.gr/QIZntJ
SLIDES LINK
http://nud.gr/QIZntJ
http://nud.gr/QIZntJ
ABOUT ME
Software Craftsmanship Mentor
@ General Electric
• ColdFusion since 1996 (v2)
• London CFML & Web
Community Leader
• Scrum Master
• Kanban Practitioner
• Agile Coach
T: @bigmadkev
W: BigMadKev.com
http://nud.gr/QIZntJ

More Related Content

What's hot

JavaLand 2022 - Software architecture in a DevOps world
JavaLand 2022 - Software architecture in a DevOps worldJavaLand 2022 - Software architecture in a DevOps world
JavaLand 2022 - Software architecture in a DevOps worldBert Jan Schrijver
 
Test driven development - Zombie proof your code
Test driven development - Zombie proof your codeTest driven development - Zombie proof your code
Test driven development - Zombie proof your codePascal Larocque
 
TDD CrashCourse Part2: TDD
TDD CrashCourse Part2: TDDTDD CrashCourse Part2: TDD
TDD CrashCourse Part2: TDDDavid Rodenas
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven DevelopmentLim Chanmann
 
JavaLand 2022 - Debugging distributed systems
JavaLand 2022 - Debugging distributed systemsJavaLand 2022 - Debugging distributed systems
JavaLand 2022 - Debugging distributed systemsBert Jan Schrijver
 
Continuous Integration and Continuous Deployment in Enterprise scenario
Continuous Integration and Continuous Deployment in Enterprise scenarioContinuous Integration and Continuous Deployment in Enterprise scenario
Continuous Integration and Continuous Deployment in Enterprise scenarioDavide Benvegnù
 
Tdd practices
Tdd practicesTdd practices
Tdd practicesaxykim00
 
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...Bert Jan Schrijver
 
Getting your project_started
Getting your project_startedGetting your project_started
Getting your project_startedAdam Culp
 
JavaOne 2016 - The DevOps Disaster
JavaOne 2016 -  The DevOps DisasterJavaOne 2016 -  The DevOps Disaster
JavaOne 2016 - The DevOps DisasterBert Jan Schrijver
 
Introduction to test_driven_development
Introduction to test_driven_developmentIntroduction to test_driven_development
Introduction to test_driven_developmenthaochenglee
 
TDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOps
TDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOpsTDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOps
TDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOpsBert Jan Schrijver
 
Outside-in Testing in Vue with Cypress
Outside-in Testing in Vue with CypressOutside-in Testing in Vue with Cypress
Outside-in Testing in Vue with CypressJosh Justice
 

What's hot (19)

JavaLand 2022 - Software architecture in a DevOps world
JavaLand 2022 - Software architecture in a DevOps worldJavaLand 2022 - Software architecture in a DevOps world
JavaLand 2022 - Software architecture in a DevOps world
 
Tdd
TddTdd
Tdd
 
Test driven development - Zombie proof your code
Test driven development - Zombie proof your codeTest driven development - Zombie proof your code
Test driven development - Zombie proof your code
 
That worked before
That worked beforeThat worked before
That worked before
 
TDD CrashCourse Part2: TDD
TDD CrashCourse Part2: TDDTDD CrashCourse Part2: TDD
TDD CrashCourse Part2: TDD
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
JavaLand 2022 - Debugging distributed systems
JavaLand 2022 - Debugging distributed systemsJavaLand 2022 - Debugging distributed systems
JavaLand 2022 - Debugging distributed systems
 
Test driven development(tdd)
Test driven development(tdd)Test driven development(tdd)
Test driven development(tdd)
 
Continuous Integration and Continuous Deployment in Enterprise scenario
Continuous Integration and Continuous Deployment in Enterprise scenarioContinuous Integration and Continuous Deployment in Enterprise scenario
Continuous Integration and Continuous Deployment in Enterprise scenario
 
Tdd practices
Tdd practicesTdd practices
Tdd practices
 
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
 
Getting your project_started
Getting your project_startedGetting your project_started
Getting your project_started
 
Check in dance
Check in danceCheck in dance
Check in dance
 
Debugging distributed systems
Debugging distributed systemsDebugging distributed systems
Debugging distributed systems
 
JavaOne 2016 - The DevOps Disaster
JavaOne 2016 -  The DevOps DisasterJavaOne 2016 -  The DevOps Disaster
JavaOne 2016 - The DevOps Disaster
 
Tdd
TddTdd
Tdd
 
Introduction to test_driven_development
Introduction to test_driven_developmentIntroduction to test_driven_development
Introduction to test_driven_development
 
TDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOps
TDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOpsTDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOps
TDC 2021 - Better software, faster: Principles of Continuous Delivery and DevOps
 
Outside-in Testing in Vue with Cypress
Outside-in Testing in Vue with CypressOutside-in Testing in Vue with Cypress
Outside-in Testing in Vue with Cypress
 

Viewers also liked

CF Camp 2013 Software Craftsmanship for CFML Developers
CF Camp 2013 Software Craftsmanship for CFML DevelopersCF Camp 2013 Software Craftsmanship for CFML Developers
CF Camp 2013 Software Craftsmanship for CFML DevelopersKev McCabe
 
Herramientas de comunicación de la web 2.0
Herramientas de comunicación de la web 2.0Herramientas de comunicación de la web 2.0
Herramientas de comunicación de la web 2.0Karyliz95
 
Программа практического курса по обучению интернет-торговли
Программа практического курса по обучению интернет-торговлиПрограмма практического курса по обучению интернет-торговли
Программа практического курса по обучению интернет-торговлиJulia Onishchuk
 
Accelerate your ColdFusion Applications using Caching
Accelerate your ColdFusion Applications using CachingAccelerate your ColdFusion Applications using Caching
Accelerate your ColdFusion Applications using CachingColdFusionConference
 
Cf objective2014 software-craftsmanship
Cf objective2014   software-craftsmanshipCf objective2014   software-craftsmanship
Cf objective2014 software-craftsmanshipKev McCabe
 

Viewers also liked (7)

CF Camp 2013 Software Craftsmanship for CFML Developers
CF Camp 2013 Software Craftsmanship for CFML DevelopersCF Camp 2013 Software Craftsmanship for CFML Developers
CF Camp 2013 Software Craftsmanship for CFML Developers
 
Herramientas de comunicación de la web 2.0
Herramientas de comunicación de la web 2.0Herramientas de comunicación de la web 2.0
Herramientas de comunicación de la web 2.0
 
Программа практического курса по обучению интернет-торговли
Программа практического курса по обучению интернет-торговлиПрограмма практического курса по обучению интернет-торговли
Программа практического курса по обучению интернет-торговли
 
Accelerate your ColdFusion Applications using Caching
Accelerate your ColdFusion Applications using CachingAccelerate your ColdFusion Applications using Caching
Accelerate your ColdFusion Applications using Caching
 
Cf objective2014 software-craftsmanship
Cf objective2014   software-craftsmanshipCf objective2014   software-craftsmanship
Cf objective2014 software-craftsmanship
 
Agile Commerce
Agile CommerceAgile Commerce
Agile Commerce
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
 

Similar to Testing Strategies and Techniques

Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...Abdelkrim Boujraf
 
Test-Driven Development In Action
Test-Driven Development In ActionTest-Driven Development In Action
Test-Driven Development In ActionJon Kruger
 
Better Functional Design through TDD
Better Functional Design through TDDBetter Functional Design through TDD
Better Functional Design through TDDPhil Calçado
 
Hey You Got Your TDD in my SQL DB by Jeff McKenzie
Hey You Got Your TDD in my SQL DB by Jeff McKenzieHey You Got Your TDD in my SQL DB by Jeff McKenzie
Hey You Got Your TDD in my SQL DB by Jeff McKenzieQA or the Highway
 
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...mCloud
 
PHPUnit with Magento
PHPUnit with MagentoPHPUnit with Magento
PHPUnit with MagentoTu Hoang
 
Test Drive Development
Test Drive DevelopmentTest Drive Development
Test Drive Developmentsatya sudheer
 
Tdd is not about testing (C++ version)
Tdd is not about testing (C++ version)Tdd is not about testing (C++ version)
Tdd is not about testing (C++ version)Gianluca Padovani
 
GREAT STEP 2. TDD & MockMVC
GREAT STEP 2. TDD & MockMVCGREAT STEP 2. TDD & MockMVC
GREAT STEP 2. TDD & MockMVCCovenant Ko
 
TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019Paulo Clavijo
 
Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Mastering BDD - Eran Kinsbruner Workshop Quest 2018Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Mastering BDD - Eran Kinsbruner Workshop Quest 2018Perfecto Mobile
 
How to test a Mainframe Application
How to test a Mainframe ApplicationHow to test a Mainframe Application
How to test a Mainframe ApplicationMichael Erichsen
 
Case studies of Test Driven Development
Case studies of Test Driven DevelopmentCase studies of Test Driven Development
Case studies of Test Driven DevelopmentSimform
 
Android tdd
Android tddAndroid tdd
Android tddNhan Cao
 
TDD - Unit testing done right and programmer happiness
TDD - Unit testing done right and programmer happinessTDD - Unit testing done right and programmer happiness
TDD - Unit testing done right and programmer happinessErez Cohen
 
Continuous delivery test strategies
Continuous delivery test strategiesContinuous delivery test strategies
Continuous delivery test strategiesHylke Stapersma
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Developmentadrianmitev
 

Similar to Testing Strategies and Techniques (20)

Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
 
Test-Driven Development In Action
Test-Driven Development In ActionTest-Driven Development In Action
Test-Driven Development In Action
 
Better Functional Design through TDD
Better Functional Design through TDDBetter Functional Design through TDD
Better Functional Design through TDD
 
Ian Cooper webinar for DDD Iran: Kent beck style tdd seven years after
Ian Cooper webinar for DDD Iran: Kent beck style tdd   seven years afterIan Cooper webinar for DDD Iran: Kent beck style tdd   seven years after
Ian Cooper webinar for DDD Iran: Kent beck style tdd seven years after
 
Hey You Got Your TDD in my SQL DB by Jeff McKenzie
Hey You Got Your TDD in my SQL DB by Jeff McKenzieHey You Got Your TDD in my SQL DB by Jeff McKenzie
Hey You Got Your TDD in my SQL DB by Jeff McKenzie
 
Python and test
Python and testPython and test
Python and test
 
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
 
PHPUnit with Magento
PHPUnit with MagentoPHPUnit with Magento
PHPUnit with Magento
 
Test Drive Development
Test Drive DevelopmentTest Drive Development
Test Drive Development
 
Tdd is not about testing (C++ version)
Tdd is not about testing (C++ version)Tdd is not about testing (C++ version)
Tdd is not about testing (C++ version)
 
GREAT STEP 2. TDD & MockMVC
GREAT STEP 2. TDD & MockMVCGREAT STEP 2. TDD & MockMVC
GREAT STEP 2. TDD & MockMVC
 
TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019
 
Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Mastering BDD - Eran Kinsbruner Workshop Quest 2018Mastering BDD - Eran Kinsbruner Workshop Quest 2018
Mastering BDD - Eran Kinsbruner Workshop Quest 2018
 
How to test a Mainframe Application
How to test a Mainframe ApplicationHow to test a Mainframe Application
How to test a Mainframe Application
 
Cucumber - Maria Machlowska
Cucumber - Maria MachlowskaCucumber - Maria Machlowska
Cucumber - Maria Machlowska
 
Case studies of Test Driven Development
Case studies of Test Driven DevelopmentCase studies of Test Driven Development
Case studies of Test Driven Development
 
Android tdd
Android tddAndroid tdd
Android tdd
 
TDD - Unit testing done right and programmer happiness
TDD - Unit testing done right and programmer happinessTDD - Unit testing done right and programmer happiness
TDD - Unit testing done right and programmer happiness
 
Continuous delivery test strategies
Continuous delivery test strategiesContinuous delivery test strategies
Continuous delivery test strategies
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
 

Recently uploaded

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 

Recently uploaded (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 

Testing Strategies and Techniques

  • 1. TESTING TESTING EVERYWHERE KEV MCCABE 14TH MAY 2014 CF OBJECTIVE 2014 http://nud.gr/QIZntJ
  • 5. INVERTED TESTING PYRAMID E x p l o r a t o r y Acceptance* Integration* Unit Tests** Automated Tests http://nud.gr/QIZntJ
  • 6. AUTOMATED TESTS Comment from my Unit Testing Session @ CF Summit: This one I liked the least. Seems like overkill to write 10 times more code just to test one tiny piece of the application. I can understand how it would be helpful for large teams where the work is split among multiple developers, but for a small team and a rapid dev cycle, this just seems like unnecessary overhead. I wasn't convinced of the real-world applicability. If this was you I hope I can convince you  http://nud.gr/QIZntJ
  • 8. AUTOMATION CFML Code • Beans • Services • Handlers JavaScript • Plain Javascript • jQuery • AngularJS etc Database UI http://nud.gr/QIZntJ
  • 9. DATABASE TESTING To be honest – not found a good one So test using TestBox This is actually good! You need a DB Instance just for this. So you can tear it down and refresh as needed http://nud.gr/QIZntJ
  • 10. CFML Testing of Beans • Make sure they hold the data you intended • Have any special functions? Services • SRP • Right calls Handlers • If using a MVC framework make sure it’s doing what you wanted http://nud.gr/QIZntJ
  • 11. JAVASCRIPT Yes you can test your JavaScript Test Plain JavaScript jQuery calls AngularJS applications http://nud.gr/QIZntJ
  • 12. FULL INTEGRATION TESTS Testing in different browsers Create a Framework Make it interesting for the business • They will really care about this level! • Once you show them it working http://nud.gr/QIZntJ
  • 14. TDD Why do we do TDD? We do TDD for one overriding reason and several less important reasons. The less important reasons are: • We spend less time debugging. • The tests act as accurate, precise, and unambiguous documentation at the lowest level of the system. • Writing tests first requires decoupling that other testing strategies do not; and we believe that such decoupling is beneficial. Those are ancillary benefits of TDD; and they are debatable. There is, however, one benefit that, given certain conditions are met, cannot be debated: Robert “Uncle Bob” Martin http://blog.8thlight.com/uncle-bob/2014/04/25/MonogamousTDD.html http://nud.gr/QIZntJ
  • 15. TDD If you have a test suite that you trust so much that you are willing to deploy the system based solely on those tests passing; and if that test suite can be executed in seconds, or minutes, then you can quickly and easily clean the code without fear. Robert “Uncle Bob” Martin http://blog.8thlight.com/uncle-bob/2014/04/25/MonogamousTDD.html http://nud.gr/QIZntJ
  • 18. OTHER SESSIONS @ CF OBJECTIVE Thursday @ 10:15am Stop Making Excuses And Start Testing Your JavaScript! - Ryan Anklam Thursday @ 11:30am BDD - Change the way you code - Luis Majano Thursday @ 4:15pm Updating/Hotfixing ColdFusion 10, 9 and 8: Tips and Traps - Charlie Arehart Friday @ 11:30am Leveling-Up at Javascript: Organization, Performance & Testing - Raymond Camden Friday @ 1:45pm Real World Selenium Testing - Mary Jo Sminkey http://nud.gr/QIZntJ
  • 21. ABOUT ME Software Craftsmanship Mentor @ General Electric • ColdFusion since 1996 (v2) • London CFML & Web Community Leader • Scrum Master • Kanban Practitioner • Agile Coach T: @bigmadkev W: BigMadKev.com http://nud.gr/QIZntJ