SlideShare a Scribd company logo
Testing Automaton
Luis Majano @lmajano
Who am I
• Luis Majano
• Computer Engineer
• Imported from El Salvador
• CEO of Ortus Solutions
• Creator of all things Box
Why people don’t test
Why we need to test
How to test
How to automate
Where to start?
Write Tests
WHY PEOPLE DON’T TEST
COMFORT
WHY PEOPLE DON’T TEST
New Methodology
New Learned Behavior
It is a leap….
BIGGEST LIE IN SOFTWARE DEV


Don’t worry, we will create the
tests and refactor it later!
Testing Automaton - CFSummit 2016
Bugs cost money
Cost To Fix Time detected
Requirements Design Building Testing Post-Release
Time
Introduced
Requirements 1x 3x 5-10x 10x 10-100x
Design --- 1x 10x 15x 25-100x
Building -- -- 1x 10x 10-25x
^ Kaner, Cem; James Bach, Bret Pettichord (2001). Lessons Learned in Software Testing: A Context-Driven Approach. Wiley. p. 4. ISBN 0-471-08112-4.
• Just do it!
• You will get dirty
• It can hurt (a little)
• Learned behavior
NO MORE EXCUSES
IT WILL ACCELERATE YOUR
DEVELOPMENT
TDD/BDD	=	Process	
Continuous	Integration	
Continuous	Delivery	
Continuous	Improvement
AUTOMATION
Testing Automaton - CFSummit 2016
TestBox : What you get
API Docs
Core
Test Browser
Test Harness
Test Runner
Samples
install testbox —saveDev
install testbox@be —saveDev
Test Harness
Automated test
results!
xUnit/BDDTest
Bundles
Harness bootstrap
HTML Runner
ANT Runner
Test Bundle CFCs
• Inherits from testbox.system.BaseSpec

• TesBox will then execute all tests/specs/suites within 1 or more bundles
RUN TESTS
• Execute bundles via the URL
• http://localhost/tests/bundle.cfc?method=runRemote
• SOAP Runner
• HTTP/REST Runner
• ANT Runner
• NodeJS Runner
• CommandBox Runner
• Custom Runner
TESTBOX REPORTERS
•ANTJunit :Variant of JUnit for Jenkins
•Codexwiki : Mediawiki syntax
•Console : Server console
•Doc : Semantic HTML
•Dot :Awesome Dots
•JSON
•JUnit
•Raw : CFML Struct
•Simple :A basic HTML reporter
•Text : Back to the 80’s,Text
•MinText : Great for CommandBox Runners
•XML 
•Tap :A test anything protocol reporter
•Min : Minimalistic Report
MANUAL TESTING
Bundle	CFC Runner
CommandBox Runner
package set testbox.runner = "http://127.0.0.1:57538/tests/runner.cfm"
testbox run
1
2
{
"runner": "http://127.0.0.1:57538/tests/runner.cfm",
"directory": "/tests/specs",
"recurse": true
}
NodeJS Test Runner
npm install -g testbox-runner
create .testbox-runnerrc
1
2
Run it : testbox-runner2
ANT TESTING
DEVELOPER AUTOMATION
1.Grunt Watchers + LiveReload
2.Grunt Watchers + testbox-runner
3.Grunt Watchers + commanbox
4.ColdBox Elixir
CONTINOUS INTEGRATION
CI SERVERS
Jenkins + CommandBox
wget http://mirrors.jenkins-ci.org/war-stable/latest/jenkins.war
box server start warpath=jenkins.war
1
2
Travis CI - Sign Up
https://travis-ci.org/
Sign Up
1
2
Accounts
Activate For Repositories
1
2
Create .travis.yml3
Commit to repository4
Travis CI - Getting Started
TRAVIS + ANTlanguage: java
branches:
only:
- development
sudo: required
dist: trusty
before_install:
- sudo apt-key adv --keyserver keys.gnupg.net --recv 6DA70622
- sudo echo "deb http://downloads.ortussolutions.com/debs/noarch /" | sudo tee -a
/etc/apt/sources.list.d/commandbox.list
install:
- sudo apt-get update && sudo apt-get --assume-yes install commandbox
- box install
- box server start
before_script:
# Startup the app
- curl http://localhost:49616/
script:
- ant -f workbench/build.xml
TRAVIS + COMMANDBOXlanguage: java
sudo: required
dist: trusty
before_install:
- sudo apt-key adv --keyserver keys.gnupg.net --recv 6DA70622
- sudo echo "deb http://downloads.ortussolutions.com/debs/noarch /" | sudo tee -a
/etc/apt/sources.list.d/commandbox.list
install:
- sudo apt-get update && sudo apt-get --assume-yes install commandbox
- cd tests
- box install
- box server start
before_script:
# Startup the app
- curl http://localhost:49615/
script: >
testResults="echo $(box testbox run)";
echo "$testResults";
if grep -i "[Failures: [1-9][0-9]?[0-9]?]|[Errors: [1-9][0-9]?[0-9]?]|
<t[^>]*>|<b[^>]*>" <<< $testResults; then exit 1; fi
MULTIPLE VERSIONS
MULTIPLE ENGINES
TRAVIS + MULTIPLE ENGINESlanguage: java
sudo: required
jdk:
- oraclejdk8
env:
matrix:
- ENGINE=lucee@4.5
- ENGINE=lucee@5
- ENGINE=adobe@2016
- ENGINE=adobe@11
- ENGINE=adobe@10
before_install:
- sudo apt-key adv --keyserver keys.gnupg.net --recv 6DA70622
- sudo echo "deb http://downloads.ortussolutions.com/debs/noarch /" | sudo tee -a
/etc/apt/sources.list.d/commandbox.list
install:
- sudo apt-get update && sudo apt-get --assume-yes install commandbox
- box install
before_script:
- box server start cfengine=$ENGINE port=8500
script: >
testResults="$(box testbox run runner='http://127.0.0.1:8500/tests/runner.cfm' )";
echo "$testResults";
if grep -i "[(Failures|Errors): [1-9][0-9]?[0-9]?]|[Errors: [1-9][0-9]?[0-9]?]|<t[^>]*>|
<b[^>]*>" <<< $testResults; then exit 1; fi
notifications:
email: false
Resources
• TestBox : ortussolutions.com/products/testbox
• CommandBox: ortussolutions.com/products/commandbox
• Slack: boxteam.herokuapp.com
• CFML Slack: #box-products
• travis-ci.org
• jenkins.io
Thank
you!
Ad

More Related Content

What's hot (19)

In The Trenches With Tomster, Upgrading Ember.js & Ember Data
In The Trenches With Tomster, Upgrading Ember.js & Ember DataIn The Trenches With Tomster, Upgrading Ember.js & Ember Data
In The Trenches With Tomster, Upgrading Ember.js & Ember Data
Stacy London
 
Load Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusionLoad Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusion
ColdFusionConference
 
Command box
Command boxCommand box
Command box
ColdFusionConference
 
ITB2015 - Go Commando with CommandBox CLI
ITB2015 - Go Commando with CommandBox CLIITB2015 - Go Commando with CommandBox CLI
ITB2015 - Go Commando with CommandBox CLI
Ortus Solutions, Corp
 
Tuenti Release Workflow
Tuenti Release WorkflowTuenti Release Workflow
Tuenti Release Workflow
Tuenti
 
Command box, Package Manager, Automation, REPL
Command box, Package Manager, Automation, REPLCommand box, Package Manager, Automation, REPL
Command box, Package Manager, Automation, REPL
ColdFusionConference
 
CommandBox REPL, CLI, and Package Manager
CommandBox REPL, CLI, and Package ManagerCommandBox REPL, CLI, and Package Manager
CommandBox REPL, CLI, and Package Manager
bdw429s
 
Stress Free Deployment - Confoo 2011
Stress Free Deployment  - Confoo 2011Stress Free Deployment  - Confoo 2011
Stress Free Deployment - Confoo 2011
Bachkoutou Toutou
 
How to Supercharge your PHP Web API
How to Supercharge your PHP Web APIHow to Supercharge your PHP Web API
How to Supercharge your PHP Web API
Aurimas Niekis
 
They why behind php frameworks
They why behind php frameworksThey why behind php frameworks
They why behind php frameworks
Kirk Madera
 
The Many Ways to Test Your React App
The Many Ways to Test Your React AppThe Many Ways to Test Your React App
The Many Ways to Test Your React App
All Things Open
 
Serverless Media Workflow
Serverless Media WorkflowServerless Media Workflow
Serverless Media Workflow
MooYeol Lee
 
Robotframework
RobotframeworkRobotframework
Robotframework
Ella Sun
 
CommandBox at CFCamp 2014
CommandBox at CFCamp 2014CommandBox at CFCamp 2014
CommandBox at CFCamp 2014
Ortus Solutions, Corp
 
CommandBox : Free CFML
CommandBox : Free CFMLCommandBox : Free CFML
CommandBox : Free CFML
Ortus Solutions, Corp
 
Getting started with PHP on IBM i
Getting started with PHP on IBM iGetting started with PHP on IBM i
Getting started with PHP on IBM i
Zend by Rogue Wave Software
 
Dev objective2015 lets git together
Dev objective2015 lets git togetherDev objective2015 lets git together
Dev objective2015 lets git together
ColdFusionConference
 
Ruby on Rails All Hands Meeting
Ruby on Rails All Hands MeetingRuby on Rails All Hands Meeting
Ruby on Rails All Hands Meeting
Dan Davis
 
美团点评技术沙龙08 - 分布式监控系统实践
美团点评技术沙龙08 - 分布式监控系统实践美团点评技术沙龙08 - 分布式监控系统实践
美团点评技术沙龙08 - 分布式监控系统实践
美团点评技术团队
 
In The Trenches With Tomster, Upgrading Ember.js & Ember Data
In The Trenches With Tomster, Upgrading Ember.js & Ember DataIn The Trenches With Tomster, Upgrading Ember.js & Ember Data
In The Trenches With Tomster, Upgrading Ember.js & Ember Data
Stacy London
 
Load Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusionLoad Balancing, Failover and Scalability with ColdFusion
Load Balancing, Failover and Scalability with ColdFusion
ColdFusionConference
 
ITB2015 - Go Commando with CommandBox CLI
ITB2015 - Go Commando with CommandBox CLIITB2015 - Go Commando with CommandBox CLI
ITB2015 - Go Commando with CommandBox CLI
Ortus Solutions, Corp
 
Tuenti Release Workflow
Tuenti Release WorkflowTuenti Release Workflow
Tuenti Release Workflow
Tuenti
 
Command box, Package Manager, Automation, REPL
Command box, Package Manager, Automation, REPLCommand box, Package Manager, Automation, REPL
Command box, Package Manager, Automation, REPL
ColdFusionConference
 
CommandBox REPL, CLI, and Package Manager
CommandBox REPL, CLI, and Package ManagerCommandBox REPL, CLI, and Package Manager
CommandBox REPL, CLI, and Package Manager
bdw429s
 
Stress Free Deployment - Confoo 2011
Stress Free Deployment  - Confoo 2011Stress Free Deployment  - Confoo 2011
Stress Free Deployment - Confoo 2011
Bachkoutou Toutou
 
How to Supercharge your PHP Web API
How to Supercharge your PHP Web APIHow to Supercharge your PHP Web API
How to Supercharge your PHP Web API
Aurimas Niekis
 
They why behind php frameworks
They why behind php frameworksThey why behind php frameworks
They why behind php frameworks
Kirk Madera
 
The Many Ways to Test Your React App
The Many Ways to Test Your React AppThe Many Ways to Test Your React App
The Many Ways to Test Your React App
All Things Open
 
Serverless Media Workflow
Serverless Media WorkflowServerless Media Workflow
Serverless Media Workflow
MooYeol Lee
 
Robotframework
RobotframeworkRobotframework
Robotframework
Ella Sun
 
Dev objective2015 lets git together
Dev objective2015 lets git togetherDev objective2015 lets git together
Dev objective2015 lets git together
ColdFusionConference
 
Ruby on Rails All Hands Meeting
Ruby on Rails All Hands MeetingRuby on Rails All Hands Meeting
Ruby on Rails All Hands Meeting
Dan Davis
 
美团点评技术沙龙08 - 分布式监控系统实践
美团点评技术沙龙08 - 分布式监控系统实践美团点评技术沙龙08 - 分布式监控系统实践
美团点评技术沙龙08 - 分布式监控系统实践
美团点评技术团队
 

Viewers also liked (20)

Coldbox developer training – session 5
Coldbox developer training – session 5Coldbox developer training – session 5
Coldbox developer training – session 5
Billie Berzinskas
 
Физика и техника.
Физика и техника.Физика и техника.
Физика и техника.
Alex_Shutova
 
Day 2 filming
Day 2 filmingDay 2 filming
Day 2 filming
LucyAnne97
 
Office administrative assistant
Office administrative assistantOffice administrative assistant
Office administrative assistant
dersonsaman
 
Q2 how does your media product represent particular social
Q2 how does your media product represent particular socialQ2 how does your media product represent particular social
Q2 how does your media product represent particular social
LucyAnne97
 
Conceptos de información-1
Conceptos de información-1Conceptos de información-1
Conceptos de información-1
Leonardo Melo
 
CBDW2014 - This is ColdBox 4
CBDW2014 - This is ColdBox 4CBDW2014 - This is ColdBox 4
CBDW2014 - This is ColdBox 4
Ortus Solutions, Corp
 
Presentation1
Presentation1Presentation1
Presentation1
nimmysajikumar
 
Into The Box 2015 Keynote
Into The Box 2015 KeynoteInto The Box 2015 Keynote
Into The Box 2015 Keynote
Ortus Solutions, Corp
 
TESIS JORDI FEO
TESIS JORDI FEOTESIS JORDI FEO
TESIS JORDI FEO
Jordi Feo
 
Costumes
CostumesCostumes
Costumes
LucyAnne97
 
Michael Jackson
Michael JacksonMichael Jackson
Michael Jackson
LucyAnne97
 
Administrative director
Administrative directorAdministrative director
Administrative director
dersonsaman
 
Customer service director
Customer service directorCustomer service director
Customer service director
prattchris734
 
Atvidade powerpoint anapaulakremer
Atvidade powerpoint anapaulakremerAtvidade powerpoint anapaulakremer
Atvidade powerpoint anapaulakremer
0879
 
Planning booklet
Planning bookletPlanning booklet
Planning booklet
Duncan Warren-Rix
 
Storyboard (day 1 of filming)
Storyboard (day 1 of filming)Storyboard (day 1 of filming)
Storyboard (day 1 of filming)
LucyAnne97
 
CBDW2014 - Railo 5.0 and Beyond
CBDW2014 - Railo 5.0 and BeyondCBDW2014 - Railo 5.0 and Beyond
CBDW2014 - Railo 5.0 and Beyond
Ortus Solutions, Corp
 
Андрію Благому
Андрію БлагомуАндрію Благому
Андрію Благому
Наталія Дорощук
 
Fc, cp, dps
Fc, cp, dpsFc, cp, dps
Fc, cp, dps
laurenjewell
 
Coldbox developer training – session 5
Coldbox developer training – session 5Coldbox developer training – session 5
Coldbox developer training – session 5
Billie Berzinskas
 
Физика и техника.
Физика и техника.Физика и техника.
Физика и техника.
Alex_Shutova
 
Office administrative assistant
Office administrative assistantOffice administrative assistant
Office administrative assistant
dersonsaman
 
Q2 how does your media product represent particular social
Q2 how does your media product represent particular socialQ2 how does your media product represent particular social
Q2 how does your media product represent particular social
LucyAnne97
 
Conceptos de información-1
Conceptos de información-1Conceptos de información-1
Conceptos de información-1
Leonardo Melo
 
TESIS JORDI FEO
TESIS JORDI FEOTESIS JORDI FEO
TESIS JORDI FEO
Jordi Feo
 
Michael Jackson
Michael JacksonMichael Jackson
Michael Jackson
LucyAnne97
 
Administrative director
Administrative directorAdministrative director
Administrative director
dersonsaman
 
Customer service director
Customer service directorCustomer service director
Customer service director
prattchris734
 
Atvidade powerpoint anapaulakremer
Atvidade powerpoint anapaulakremerAtvidade powerpoint anapaulakremer
Atvidade powerpoint anapaulakremer
0879
 
Storyboard (day 1 of filming)
Storyboard (day 1 of filming)Storyboard (day 1 of filming)
Storyboard (day 1 of filming)
LucyAnne97
 
Ad

Similar to Testing Automaton - CFSummit 2016 (20)

Automate Thyself
Automate ThyselfAutomate Thyself
Automate Thyself
Ortus Solutions, Corp
 
I am afraid of no test! The power of BDD
I am afraid of no test! The power of BDDI am afraid of no test! The power of BDD
I am afraid of no test! The power of BDD
Ortus Solutions, Corp
 
Continuous Integration Testing in Django
Continuous Integration Testing in DjangoContinuous Integration Testing in Django
Continuous Integration Testing in Django
Kevin Harvey
 
Stop Being Lazy and Test Your Software
Stop Being Lazy and Test Your SoftwareStop Being Lazy and Test Your Software
Stop Being Lazy and Test Your Software
Laura Frank Tacho
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
Rogue Wave Software
 
Containerize your Blackbox tests
Containerize your Blackbox testsContainerize your Blackbox tests
Containerize your Blackbox tests
Kevin Beeman
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons Learned
LB Denker
 
Test driven development_continuous_integration
Test driven development_continuous_integrationTest driven development_continuous_integration
Test driven development_continuous_integration
haochenglee
 
Unit testing for Cocoa developers
Unit testing for Cocoa developersUnit testing for Cocoa developers
Unit testing for Cocoa developers
Graham Lee
 
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
CloudBees
 
Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testing
BestBrains
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated Testing
Lars Thorup
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
Dennis van der Stelt
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous Integration
Zahra Golmirzaei
 
Continuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CIContinuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CI
wajrcs
 
DevOps - Boldly Go for Distro
DevOps - Boldly Go for DistroDevOps - Boldly Go for Distro
DevOps - Boldly Go for Distro
Paul Boos
 
Rentv
RentvRentv
Rentv
Timothy Tsvetkov
 
Unit Testing in R with Testthat - HRUG
Unit Testing in R with Testthat - HRUGUnit Testing in R with Testthat - HRUG
Unit Testing in R with Testthat - HRUG
egoodwintx
 
Continuous Testing
Continuous TestingContinuous Testing
Continuous Testing
jaredrrichardson
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Lean IT Consulting
 
I am afraid of no test! The power of BDD
I am afraid of no test! The power of BDDI am afraid of no test! The power of BDD
I am afraid of no test! The power of BDD
Ortus Solutions, Corp
 
Continuous Integration Testing in Django
Continuous Integration Testing in DjangoContinuous Integration Testing in Django
Continuous Integration Testing in Django
Kevin Harvey
 
Stop Being Lazy and Test Your Software
Stop Being Lazy and Test Your SoftwareStop Being Lazy and Test Your Software
Stop Being Lazy and Test Your Software
Laura Frank Tacho
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
Rogue Wave Software
 
Containerize your Blackbox tests
Containerize your Blackbox testsContainerize your Blackbox tests
Containerize your Blackbox tests
Kevin Beeman
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons Learned
LB Denker
 
Test driven development_continuous_integration
Test driven development_continuous_integrationTest driven development_continuous_integration
Test driven development_continuous_integration
haochenglee
 
Unit testing for Cocoa developers
Unit testing for Cocoa developersUnit testing for Cocoa developers
Unit testing for Cocoa developers
Graham Lee
 
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
JUC Europe 2015: How to Optimize Automated Testing with Everyone's Favorite B...
CloudBees
 
Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testing
BestBrains
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated Testing
Lars Thorup
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous Integration
Zahra Golmirzaei
 
Continuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CIContinuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CI
wajrcs
 
DevOps - Boldly Go for Distro
DevOps - Boldly Go for DistroDevOps - Boldly Go for Distro
DevOps - Boldly Go for Distro
Paul Boos
 
Unit Testing in R with Testthat - HRUG
Unit Testing in R with Testthat - HRUGUnit Testing in R with Testthat - HRUG
Unit Testing in R with Testthat - HRUG
egoodwintx
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Lean IT Consulting
 
Ad

More from Ortus Solutions, Corp (20)

Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
BoxLang JVM Language : The Future is Dynamic
BoxLang JVM Language : The Future is DynamicBoxLang JVM Language : The Future is Dynamic
BoxLang JVM Language : The Future is Dynamic
Ortus Solutions, Corp
 
Building Dynamic AWS Lambda Applications with BoxLang
Building Dynamic AWS Lambda Applications with BoxLangBuilding Dynamic AWS Lambda Applications with BoxLang
Building Dynamic AWS Lambda Applications with BoxLang
Ortus Solutions, Corp
 
A Summary of “Out of the Tar Pit” by Jacob Beers
A Summary of “Out of the Tar Pit” by Jacob BeersA Summary of “Out of the Tar Pit” by Jacob Beers
A Summary of “Out of the Tar Pit” by Jacob Beers
Ortus Solutions, Corp
 
Modern Functional Fluent CFML REST by Luis Majano
Modern Functional Fluent CFML REST by Luis MajanoModern Functional Fluent CFML REST by Luis Majano
Modern Functional Fluent CFML REST by Luis Majano
Ortus Solutions, Corp
 
BoxLang DNA - Feature: World-Class Support
BoxLang DNA - Feature: World-Class SupportBoxLang DNA - Feature: World-Class Support
BoxLang DNA - Feature: World-Class Support
Ortus Solutions, Corp
 
ITB 2023 cbq - Jobs And Tasks In the Background - Eric Peterson.pdf
ITB 2023 cbq - Jobs And Tasks In the Background - Eric Peterson.pdfITB 2023 cbq - Jobs And Tasks In the Background - Eric Peterson.pdf
ITB 2023 cbq - Jobs And Tasks In the Background - Eric Peterson.pdf
Ortus Solutions, Corp
 
ITB 2023 - cbElasticSearch Modern Searching for Modern CFML - Jon Clausen.pdf
ITB 2023 - cbElasticSearch Modern Searching for Modern CFML - Jon Clausen.pdfITB 2023 - cbElasticSearch Modern Searching for Modern CFML - Jon Clausen.pdf
ITB 2023 - cbElasticSearch Modern Searching for Modern CFML - Jon Clausen.pdf
Ortus Solutions, Corp
 
ITB 2023 Modernizing the App A tale from the trenches- David Paul Belanger.pdf
ITB 2023 Modernizing the App A tale from the trenches- David Paul Belanger.pdfITB 2023 Modernizing the App A tale from the trenches- David Paul Belanger.pdf
ITB 2023 Modernizing the App A tale from the trenches- David Paul Belanger.pdf
Ortus Solutions, Corp
 
ITB 2023 Creating and managing a QA focused production-replicating environmen...
ITB 2023 Creating and managing a QA focused production-replicating environmen...ITB 2023 Creating and managing a QA focused production-replicating environmen...
ITB 2023 Creating and managing a QA focused production-replicating environmen...
Ortus Solutions, Corp
 
ITB 2023 10 Techniques for writing easy yet stupidly thorough unit tests_Dan ...
ITB 2023 10 Techniques for writing easy yet stupidly thorough unit tests_Dan ...ITB 2023 10 Techniques for writing easy yet stupidly thorough unit tests_Dan ...
ITB 2023 10 Techniques for writing easy yet stupidly thorough unit tests_Dan ...
Ortus Solutions, Corp
 
ITB 2023 Headless eCommerce with CFML - Jon Clausen.pdf
ITB 2023 Headless eCommerce with CFML - Jon Clausen.pdfITB 2023 Headless eCommerce with CFML - Jon Clausen.pdf
ITB 2023 Headless eCommerce with CFML - Jon Clausen.pdf
Ortus Solutions, Corp
 
Crash Course in CSS Grid plus FlexBox - Nolan Erck
Crash Course in CSS Grid plus FlexBox - Nolan ErckCrash Course in CSS Grid plus FlexBox - Nolan Erck
Crash Course in CSS Grid plus FlexBox - Nolan Erck
Ortus Solutions, Corp
 
ITB 2023 - 800 Pounds Gorilla - a Design session for no designers - Jona Lain...
ITB 2023 - 800 Pounds Gorilla - a Design session for no designers - Jona Lain...ITB 2023 - 800 Pounds Gorilla - a Design session for no designers - Jona Lain...
ITB 2023 - 800 Pounds Gorilla - a Design session for no designers - Jona Lain...
Ortus Solutions, Corp
 
ITB 2023 cbPlaywright End-to-end Tests with Playwright and TestBox - Eric Pet...
ITB 2023 cbPlaywright End-to-end Tests with Playwright and TestBox - Eric Pet...ITB 2023 cbPlaywright End-to-end Tests with Playwright and TestBox - Eric Pet...
ITB 2023 cbPlaywright End-to-end Tests with Playwright and TestBox - Eric Pet...
Ortus Solutions, Corp
 
ITB 2023 - The Many Layers of OAuth - Keith Casey .pdf
ITB 2023 - The Many Layers of OAuth - Keith Casey .pdfITB 2023 - The Many Layers of OAuth - Keith Casey .pdf
ITB 2023 - The Many Layers of OAuth - Keith Casey .pdf
Ortus Solutions, Corp
 
ITB 2023 - Chatgpt Box! AI All The Things - Scott Steinbeck.pdf
ITB 2023 - Chatgpt Box! AI All The Things - Scott Steinbeck.pdfITB 2023 - Chatgpt Box! AI All The Things - Scott Steinbeck.pdf
ITB 2023 - Chatgpt Box! AI All The Things - Scott Steinbeck.pdf
Ortus Solutions, Corp
 
ITB 2023 Build Vue Apps Using tdd (Test-Driven Development).pptx
ITB 2023 Build Vue Apps Using tdd (Test-Driven Development).pptxITB 2023 Build Vue Apps Using tdd (Test-Driven Development).pptx
ITB 2023 Build Vue Apps Using tdd (Test-Driven Development).pptx
Ortus Solutions, Corp
 
ITB 2023 - Create as many web sites or web apps as you want - George Murphy.pdf
ITB 2023 - Create as many web sites or web apps as you want - George Murphy.pdfITB 2023 - Create as many web sites or web apps as you want - George Murphy.pdf
ITB 2023 - Create as many web sites or web apps as you want - George Murphy.pdf
Ortus Solutions, Corp
 
ITB 2023 qb, Migration, Seeders. Recipe For Success - Gavin-Pickin.pdf
ITB 2023 qb, Migration, Seeders. Recipe For Success - Gavin-Pickin.pdfITB 2023 qb, Migration, Seeders. Recipe For Success - Gavin-Pickin.pdf
ITB 2023 qb, Migration, Seeders. Recipe For Success - Gavin-Pickin.pdf
Ortus Solutions, Corp
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
BoxLang JVM Language : The Future is Dynamic
BoxLang JVM Language : The Future is DynamicBoxLang JVM Language : The Future is Dynamic
BoxLang JVM Language : The Future is Dynamic
Ortus Solutions, Corp
 
Building Dynamic AWS Lambda Applications with BoxLang
Building Dynamic AWS Lambda Applications with BoxLangBuilding Dynamic AWS Lambda Applications with BoxLang
Building Dynamic AWS Lambda Applications with BoxLang
Ortus Solutions, Corp
 
A Summary of “Out of the Tar Pit” by Jacob Beers
A Summary of “Out of the Tar Pit” by Jacob BeersA Summary of “Out of the Tar Pit” by Jacob Beers
A Summary of “Out of the Tar Pit” by Jacob Beers
Ortus Solutions, Corp
 
Modern Functional Fluent CFML REST by Luis Majano
Modern Functional Fluent CFML REST by Luis MajanoModern Functional Fluent CFML REST by Luis Majano
Modern Functional Fluent CFML REST by Luis Majano
Ortus Solutions, Corp
 
BoxLang DNA - Feature: World-Class Support
BoxLang DNA - Feature: World-Class SupportBoxLang DNA - Feature: World-Class Support
BoxLang DNA - Feature: World-Class Support
Ortus Solutions, Corp
 
ITB 2023 cbq - Jobs And Tasks In the Background - Eric Peterson.pdf
ITB 2023 cbq - Jobs And Tasks In the Background - Eric Peterson.pdfITB 2023 cbq - Jobs And Tasks In the Background - Eric Peterson.pdf
ITB 2023 cbq - Jobs And Tasks In the Background - Eric Peterson.pdf
Ortus Solutions, Corp
 
ITB 2023 - cbElasticSearch Modern Searching for Modern CFML - Jon Clausen.pdf
ITB 2023 - cbElasticSearch Modern Searching for Modern CFML - Jon Clausen.pdfITB 2023 - cbElasticSearch Modern Searching for Modern CFML - Jon Clausen.pdf
ITB 2023 - cbElasticSearch Modern Searching for Modern CFML - Jon Clausen.pdf
Ortus Solutions, Corp
 
ITB 2023 Modernizing the App A tale from the trenches- David Paul Belanger.pdf
ITB 2023 Modernizing the App A tale from the trenches- David Paul Belanger.pdfITB 2023 Modernizing the App A tale from the trenches- David Paul Belanger.pdf
ITB 2023 Modernizing the App A tale from the trenches- David Paul Belanger.pdf
Ortus Solutions, Corp
 
ITB 2023 Creating and managing a QA focused production-replicating environmen...
ITB 2023 Creating and managing a QA focused production-replicating environmen...ITB 2023 Creating and managing a QA focused production-replicating environmen...
ITB 2023 Creating and managing a QA focused production-replicating environmen...
Ortus Solutions, Corp
 
ITB 2023 10 Techniques for writing easy yet stupidly thorough unit tests_Dan ...
ITB 2023 10 Techniques for writing easy yet stupidly thorough unit tests_Dan ...ITB 2023 10 Techniques for writing easy yet stupidly thorough unit tests_Dan ...
ITB 2023 10 Techniques for writing easy yet stupidly thorough unit tests_Dan ...
Ortus Solutions, Corp
 
ITB 2023 Headless eCommerce with CFML - Jon Clausen.pdf
ITB 2023 Headless eCommerce with CFML - Jon Clausen.pdfITB 2023 Headless eCommerce with CFML - Jon Clausen.pdf
ITB 2023 Headless eCommerce with CFML - Jon Clausen.pdf
Ortus Solutions, Corp
 
Crash Course in CSS Grid plus FlexBox - Nolan Erck
Crash Course in CSS Grid plus FlexBox - Nolan ErckCrash Course in CSS Grid plus FlexBox - Nolan Erck
Crash Course in CSS Grid plus FlexBox - Nolan Erck
Ortus Solutions, Corp
 
ITB 2023 - 800 Pounds Gorilla - a Design session for no designers - Jona Lain...
ITB 2023 - 800 Pounds Gorilla - a Design session for no designers - Jona Lain...ITB 2023 - 800 Pounds Gorilla - a Design session for no designers - Jona Lain...
ITB 2023 - 800 Pounds Gorilla - a Design session for no designers - Jona Lain...
Ortus Solutions, Corp
 
ITB 2023 cbPlaywright End-to-end Tests with Playwright and TestBox - Eric Pet...
ITB 2023 cbPlaywright End-to-end Tests with Playwright and TestBox - Eric Pet...ITB 2023 cbPlaywright End-to-end Tests with Playwright and TestBox - Eric Pet...
ITB 2023 cbPlaywright End-to-end Tests with Playwright and TestBox - Eric Pet...
Ortus Solutions, Corp
 
ITB 2023 - The Many Layers of OAuth - Keith Casey .pdf
ITB 2023 - The Many Layers of OAuth - Keith Casey .pdfITB 2023 - The Many Layers of OAuth - Keith Casey .pdf
ITB 2023 - The Many Layers of OAuth - Keith Casey .pdf
Ortus Solutions, Corp
 
ITB 2023 - Chatgpt Box! AI All The Things - Scott Steinbeck.pdf
ITB 2023 - Chatgpt Box! AI All The Things - Scott Steinbeck.pdfITB 2023 - Chatgpt Box! AI All The Things - Scott Steinbeck.pdf
ITB 2023 - Chatgpt Box! AI All The Things - Scott Steinbeck.pdf
Ortus Solutions, Corp
 
ITB 2023 Build Vue Apps Using tdd (Test-Driven Development).pptx
ITB 2023 Build Vue Apps Using tdd (Test-Driven Development).pptxITB 2023 Build Vue Apps Using tdd (Test-Driven Development).pptx
ITB 2023 Build Vue Apps Using tdd (Test-Driven Development).pptx
Ortus Solutions, Corp
 
ITB 2023 - Create as many web sites or web apps as you want - George Murphy.pdf
ITB 2023 - Create as many web sites or web apps as you want - George Murphy.pdfITB 2023 - Create as many web sites or web apps as you want - George Murphy.pdf
ITB 2023 - Create as many web sites or web apps as you want - George Murphy.pdf
Ortus Solutions, Corp
 
ITB 2023 qb, Migration, Seeders. Recipe For Success - Gavin-Pickin.pdf
ITB 2023 qb, Migration, Seeders. Recipe For Success - Gavin-Pickin.pdfITB 2023 qb, Migration, Seeders. Recipe For Success - Gavin-Pickin.pdf
ITB 2023 qb, Migration, Seeders. Recipe For Success - Gavin-Pickin.pdf
Ortus Solutions, Corp
 

Recently uploaded (20)

UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 

Testing Automaton - CFSummit 2016

  • 2. Who am I • Luis Majano • Computer Engineer • Imported from El Salvador • CEO of Ortus Solutions • Creator of all things Box
  • 3. Why people don’t test Why we need to test How to test How to automate
  • 5. WHY PEOPLE DON’T TEST COMFORT
  • 6. WHY PEOPLE DON’T TEST New Methodology New Learned Behavior It is a leap….
  • 7. BIGGEST LIE IN SOFTWARE DEV 
 Don’t worry, we will create the tests and refactor it later!
  • 9. Bugs cost money Cost To Fix Time detected Requirements Design Building Testing Post-Release Time Introduced Requirements 1x 3x 5-10x 10x 10-100x Design --- 1x 10x 15x 25-100x Building -- -- 1x 10x 10-25x ^ Kaner, Cem; James Bach, Bret Pettichord (2001). Lessons Learned in Software Testing: A Context-Driven Approach. Wiley. p. 4. ISBN 0-471-08112-4.
  • 10. • Just do it! • You will get dirty • It can hurt (a little) • Learned behavior NO MORE EXCUSES IT WILL ACCELERATE YOUR DEVELOPMENT
  • 13. TestBox : What you get API Docs Core Test Browser Test Harness Test Runner Samples install testbox —saveDev install testbox@be —saveDev
  • 15. Test Bundle CFCs • Inherits from testbox.system.BaseSpec
 • TesBox will then execute all tests/specs/suites within 1 or more bundles
  • 16. RUN TESTS • Execute bundles via the URL • http://localhost/tests/bundle.cfc?method=runRemote • SOAP Runner • HTTP/REST Runner • ANT Runner • NodeJS Runner • CommandBox Runner • Custom Runner
  • 17. TESTBOX REPORTERS •ANTJunit :Variant of JUnit for Jenkins •Codexwiki : Mediawiki syntax •Console : Server console •Doc : Semantic HTML •Dot :Awesome Dots •JSON •JUnit •Raw : CFML Struct •Simple :A basic HTML reporter •Text : Back to the 80’s,Text •MinText : Great for CommandBox Runners •XML  •Tap :A test anything protocol reporter •Min : Minimalistic Report
  • 19. CommandBox Runner package set testbox.runner = "http://127.0.0.1:57538/tests/runner.cfm" testbox run 1 2
  • 20. { "runner": "http://127.0.0.1:57538/tests/runner.cfm", "directory": "/tests/specs", "recurse": true } NodeJS Test Runner npm install -g testbox-runner create .testbox-runnerrc 1 2 Run it : testbox-runner2
  • 22. DEVELOPER AUTOMATION 1.Grunt Watchers + LiveReload 2.Grunt Watchers + testbox-runner 3.Grunt Watchers + commanbox 4.ColdBox Elixir
  • 25. Jenkins + CommandBox wget http://mirrors.jenkins-ci.org/war-stable/latest/jenkins.war box server start warpath=jenkins.war 1 2
  • 26. Travis CI - Sign Up https://travis-ci.org/ Sign Up 1 2
  • 27. Accounts Activate For Repositories 1 2 Create .travis.yml3 Commit to repository4 Travis CI - Getting Started
  • 28. TRAVIS + ANTlanguage: java branches: only: - development sudo: required dist: trusty before_install: - sudo apt-key adv --keyserver keys.gnupg.net --recv 6DA70622 - sudo echo "deb http://downloads.ortussolutions.com/debs/noarch /" | sudo tee -a /etc/apt/sources.list.d/commandbox.list install: - sudo apt-get update && sudo apt-get --assume-yes install commandbox - box install - box server start before_script: # Startup the app - curl http://localhost:49616/ script: - ant -f workbench/build.xml
  • 29. TRAVIS + COMMANDBOXlanguage: java sudo: required dist: trusty before_install: - sudo apt-key adv --keyserver keys.gnupg.net --recv 6DA70622 - sudo echo "deb http://downloads.ortussolutions.com/debs/noarch /" | sudo tee -a /etc/apt/sources.list.d/commandbox.list install: - sudo apt-get update && sudo apt-get --assume-yes install commandbox - cd tests - box install - box server start before_script: # Startup the app - curl http://localhost:49615/ script: > testResults="echo $(box testbox run)"; echo "$testResults"; if grep -i "[Failures: [1-9][0-9]?[0-9]?]|[Errors: [1-9][0-9]?[0-9]?]| <t[^>]*>|<b[^>]*>" <<< $testResults; then exit 1; fi
  • 31. TRAVIS + MULTIPLE ENGINESlanguage: java sudo: required jdk: - oraclejdk8 env: matrix: - [email protected] - ENGINE=lucee@5 - ENGINE=adobe@2016 - ENGINE=adobe@11 - ENGINE=adobe@10 before_install: - sudo apt-key adv --keyserver keys.gnupg.net --recv 6DA70622 - sudo echo "deb http://downloads.ortussolutions.com/debs/noarch /" | sudo tee -a /etc/apt/sources.list.d/commandbox.list install: - sudo apt-get update && sudo apt-get --assume-yes install commandbox - box install before_script: - box server start cfengine=$ENGINE port=8500 script: > testResults="$(box testbox run runner='http://127.0.0.1:8500/tests/runner.cfm' )"; echo "$testResults"; if grep -i "[(Failures|Errors): [1-9][0-9]?[0-9]?]|[Errors: [1-9][0-9]?[0-9]?]|<t[^>]*>| <b[^>]*>" <<< $testResults; then exit 1; fi notifications: email: false
  • 32. Resources • TestBox : ortussolutions.com/products/testbox • CommandBox: ortussolutions.com/products/commandbox • Slack: boxteam.herokuapp.com • CFML Slack: #box-products • travis-ci.org • jenkins.io