SlideShare a Scribd company logo
BDD & Beyond
Past, Present Future
ABOUT ME
CONTACT
• Multidisciplinary background
• QA practitioner for 5 years
• Corporate, startup, mid-size
• Agile & waterfall
• Stoked about:
• Agile
• CI/CD
• AWS
• Open-source
• Wife/kid/jiu-jitsu/eating
Email (fordprior@gmail.com)
GitHub (fordprior)
LinkedIn (Ford Prior)
TOC
Agenda.
Agile.
Unit testing.
3
Selenium.
WebDriver.
BDD & friends.
Frameworks.
Getting started.
The Future.
NASA’s Mercury Project, 1961
Monolithic architecture =
monologue
One guy, totally opaque, barely
making sense
Client-server architecture =
two people talking
Two people with obvious
intentions, personalities,
concerns
procedural
8
linear • functions • imperative
AND THAT’S WHEN THE AMERICANS HEARD ABOUT IT, CALLED IT
“SCRUM”, AND STARTED SELLING IT.
Rugby analogy: Small teams + self-organization + objectives (instead of tasks) =
Success!
✓ Prof. Ogunnaike Tunde
✓ 1995
✓ “Agile is statistically better
than waterfall for making
software.”
Extreme!
✓ 1997
✓ Kent Beck
✓ Chrysler
✓ Small teams, changing requirements
✓ Code reviews & testing?!?!
xUnit, et. al.
✓ Smalltalk
✓ Self-contained
✓ SUnit, JUnit, etc...
So 2004…
✓ iMac UI
✓ MySpace
✓ Ask Jeeves
✓ Trashy interstitials
✓ 1010XOXO_v26?
Hugs!
✓ Jason Huggins
✓ ThoughtWorks
✓ CI/CD testing
✓ Boo Mercury!
✓ Yay Selenium!
Yay!:
✓ Supports most browsers
✓ Supports most languages
✓ Popular w/ big community
✓ IDE allows bootstrapping test creation
✓ Selenium Grid = massive parallelization
Not so good:
○ SOP compliance
○ Limitations of JavaScript
○ Infrequent releases
○ Doesn’t like Safari
So 2008…
✓ Internet presidents ✓ Netbooks
✓ Twitter is cool
Plucky!
✓ 2008
✓ ThoughtWorks
✓ WebDriver Project
✓ Simon Stewart
✓ Fan of Selenium
Yay!:
✓ Small, comprehensible API
✓ Durable to change b/c uses native OS
✓ Speed & performance (w/ trade-offs)
✓ Tiny (no server process)
✓ Accommodates Selenium API
Not so good:
○ Writing native browser code
○ Doesn’t like IE
○ Only supports Java?!
○ <?>
25
They join forces:
✓ 2010
✓ Google
✓ JSON
Why JSON?:
✓ W3C standard
✓ Every lingo has JSON parsing lib
✓ Every lingo has HTTP library
27
Selenium Architecture
Ugh! Lots of code, until...
✓ 2011
✓ SeleniumConf
✓ OperaDriver
✓ ChromeDriver
Selenium 3.x
✓ 2016
✓ Default = browser’s maintained driver
✓ More API-based
✓ W3C spec (almost)
Today!
✓ Still open-source
✓ RIP Selenium IDE
✓ W3C spec (still almost)
Still bad
● Documentation
● Specific language support
● IDE Driver (EdgeDriver is focus of Microsoft)
Selenium 4.x & Beyond
■ ALL browser drivers spec compliant
■ Vendor adoption
■ Only bindings & Js Common Code
PhantomJs!
✓ 2011
✓ Ariya Hidayat
✓ Browser w/out UI
✓ Webscraping
Chromium!
✓ WebKit fork (Blink & v8)
✓ Google, but open-source
✓ 2017 (v59)
Tech is neat-o,
but what about a framework?
TDD, BDD, ATDD
HUGE POTENTIAL, JUST TREMENDOUS.
TDD, BDD, ATDD
New software development methodologies
They do just 2 things:
Problem Solution How
Changing, complex
requirements
1. Makes it easy to talk
about specs & stories
universal language and
format
High velocity 2. Helps developer “flow” w/ a fast, elegant,
automated feedback loop
RED
Outline an aspect of the
product that’s failing the
customer in some way.
GREEN
Come up with a solution so
that the customer wins
instead of loses.
REFACTOR
Streamline and slim down
experience while making
sure customer is still
winning.
BDD
(red, green, refactor)
For business people:
RED
Write some unit test code
that fails because the
feature it’s testing is non-
existent.
GREEN
Write some real code until
that test code is passing
instead of failing.
REFACTOR
Refactor the real code as
much as possible while unit
tests still pass.
TDD
(red, green, refactor)
For programmers:
RED
Write some acceptance test
code that fails because the
feature it’s testing is non-
existent.
GREEN
Give it to the programmer
and let him write real code
until your tests pass.
REFACTOR
Add test to “regression” list.
Programmer refactors/adds
new code without
regressing.
ATDD
(red, green, refactor)
For testers:
RED
Outline an aspect of the
product that’s failing the
customer in some way.
GREEN
Come up with a
solution so that
the customer
wins instead of
loses.
REFACTOR
Streamline and slim down
experience while making
sure customer is still
winning.
BDD
(red, green, refactor)
Put ‘em together:
RED
Write some test code
that fails because the
feature it’s testing is
non-existent.
GREEN
Write some real
code until that
test code is
passing instead
of failing.
REFACTOR
Refactor the real
code as much as
possible while
still passing
tests.
TDD
(red, green, refactor)
REFACTOR
Add test to “regression” list.
Programmer refactors/adds
new code without regressing.
RED
Write some
acceptance test
code that fails
because the
feature it’s testing
is non-existent.
GREEN
Give it to the
programmer and
let him write
real code until
your tests pass.
ATDD
(red, green, refactor)
Gherkin
✓ 2005
✓ Chris Matts
✓ ThoughtWorks
“Let’s start using a common way of talking
about requirements between Devs, PO’s,
and QA’s.”
JBehave
✓ 2006
✓ Dan North
✓ ThoughtWorks
✓ Agiledox (JUnit utility)
✓ TDD
“...And this format is specific enough for us to write
into test code.”
RSpec
✓ 2006
✓ Aslak Hellesøy
✓ ThoughtWorks
✓ BDD
“...And it can also be a way to communicate
specifications before they’re even coded.”
RSpec Story Runner
✓ 2007
✓ David Chelimsky
✓ ThoughtWorks
✓ BDD
“In fact, let’s abstract it all so that it runs off
of plain text in a Given/When/Then format!”
StoryRunner
Cucumber
✓ 2008
✓ Aslak Hellesøy
✓ ThoughtWorks
✓ Forked from RSpec
✓ ATDD
“...and now it’s even better, plus in a bunch
of different languages!”
What about the future?
More commoditization.
✓ More SaaS tooling
✓ Data-driven testing (canaries)
✓ Less of a “discipline”
AI & ML are here.
✓ Trained on 1000’s of apps
✓ Less CSS targeting
✓ Based on natural language
Regression Classification Anomaly detection Pattern recognition
The high tomorrow will
probably be 84.6 F.
Tomorrow will be
muggy.
Tomorrow will be
abnormally hot.
Wear a raincoat
tomorrow, no need for
rain boots, and maybe
an umbrella.
This type of bug will
probably take 3 weeks to
fix and impact 1,000
users per day.
This page is a form, and
these are the relevant
fields and that’s the
Submit button.
This shouldn’t exist. That
shouldn’t have
happened.
That is a user profile,
and here’s how you
update it.
Here to stay (for now):
✓ “QA brain”
✓ Domain knowledge
✓ HTTP/Web (Selenium
WebDriver)

More Related Content

What's hot

Cucumber_Training_ForQA
Cucumber_Training_ForQACucumber_Training_ForQA
Cucumber_Training_ForQA
Meenakshi Singhal
 
Test Driven Development (TDD) on Force.com projects
Test Driven Development (TDD) on Force.com projectsTest Driven Development (TDD) on Force.com projects
Test Driven Development (TDD) on Force.com projects
Aldo Fernandez
 
Testing for Agility: Bringing Testing into Everything
Testing for Agility: Bringing Testing into EverythingTesting for Agility: Bringing Testing into Everything
Testing for Agility: Bringing Testing into Everything
Camille Bell
 
DevoxxUK 2019 - Better software, faster.
DevoxxUK 2019 - Better software, faster.DevoxxUK 2019 - Better software, faster.
DevoxxUK 2019 - Better software, faster.
Bert Jan Schrijver
 
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
Bert Jan Schrijver
 
Multiple Formats, One Source: Supporting Multi-Format Publishing with a Singl...
Multiple Formats, One Source: Supporting Multi-Format Publishing with a Singl...Multiple Formats, One Source: Supporting Multi-Format Publishing with a Singl...
Multiple Formats, One Source: Supporting Multi-Format Publishing with a Singl...
Alexander Berman
 
Don't get blamed for your choices - Techorama 2019
Don't get blamed for your choices - Techorama 2019Don't get blamed for your choices - Techorama 2019
Don't get blamed for your choices - Techorama 2019
Hannes Lowette
 
Being Test-Driven: It's not really about testing
Being Test-Driven: It's not really about testingBeing Test-Driven: It's not really about testing
Being Test-Driven: It's not really about testing
Raj Indugula
 
Continuous Delivery: better software, faster.
Continuous Delivery: better software, faster.Continuous Delivery: better software, faster.
Continuous Delivery: better software, faster.
Bert Jan Schrijver
 
Salesforce DevOps: Where Do You Start?
Salesforce DevOps: Where Do You Start?Salesforce DevOps: Where Do You Start?
Salesforce DevOps: Where Do You Start?
Chandler Anderson
 
Cyberland 2020 - Better software, faster: Principles of Continuous Delivery a...
Cyberland 2020 - Better software, faster: Principles of Continuous Delivery a...Cyberland 2020 - Better software, faster: Principles of Continuous Delivery a...
Cyberland 2020 - Better software, faster: Principles of Continuous Delivery a...
Bert Jan Schrijver
 
Is Groovy better for testing than Java?
Is Groovy better for testing than Java?Is Groovy better for testing than Java?
Is Groovy better for testing than Java?
Trisha Gee
 
Adapting Agility: Getting your Agile Transformation Unstuck
Adapting Agility: Getting your Agile Transformation UnstuckAdapting Agility: Getting your Agile Transformation Unstuck
Adapting Agility: Getting your Agile Transformation Unstuck
Camille Bell
 
The Road to DevOps V3
The Road to DevOps V3The Road to DevOps V3
The Road to DevOps V3
Ahmed Misbah
 
Extreme Programming (XP): Revisted
Extreme Programming (XP): RevistedExtreme Programming (XP): Revisted
Extreme Programming (XP): Revisted
Mike Harris
 
Belgium Testing Days - Making Test Automation Work in Agile Projects
Belgium Testing Days - Making Test Automation Work in Agile ProjectsBelgium Testing Days - Making Test Automation Work in Agile Projects
Belgium Testing Days - Making Test Automation Work in Agile Projects
lisacrispin
 
Minding your own business - TestBash 2 talk
Minding your own business - TestBash 2 talkMinding your own business - TestBash 2 talk
Minding your own business - TestBash 2 talk
lisacrispin
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
Ike Ellis
 
What testers can learn to work more effectively with programmers
What testers can learn to work more effectively with programmersWhat testers can learn to work more effectively with programmers
What testers can learn to work more effectively with programmers
lisacrispin
 
Friday final test
Friday final testFriday final test
Friday final test
bcoder
 

What's hot (20)

Cucumber_Training_ForQA
Cucumber_Training_ForQACucumber_Training_ForQA
Cucumber_Training_ForQA
 
Test Driven Development (TDD) on Force.com projects
Test Driven Development (TDD) on Force.com projectsTest Driven Development (TDD) on Force.com projects
Test Driven Development (TDD) on Force.com projects
 
Testing for Agility: Bringing Testing into Everything
Testing for Agility: Bringing Testing into EverythingTesting for Agility: Bringing Testing into Everything
Testing for Agility: Bringing Testing into Everything
 
DevoxxUK 2019 - Better software, faster.
DevoxxUK 2019 - Better software, faster.DevoxxUK 2019 - Better software, faster.
DevoxxUK 2019 - Better software, faster.
 
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
Den Bosch Java User Group April 2020 - Better software, faster - Principles o...
 
Multiple Formats, One Source: Supporting Multi-Format Publishing with a Singl...
Multiple Formats, One Source: Supporting Multi-Format Publishing with a Singl...Multiple Formats, One Source: Supporting Multi-Format Publishing with a Singl...
Multiple Formats, One Source: Supporting Multi-Format Publishing with a Singl...
 
Don't get blamed for your choices - Techorama 2019
Don't get blamed for your choices - Techorama 2019Don't get blamed for your choices - Techorama 2019
Don't get blamed for your choices - Techorama 2019
 
Being Test-Driven: It's not really about testing
Being Test-Driven: It's not really about testingBeing Test-Driven: It's not really about testing
Being Test-Driven: It's not really about testing
 
Continuous Delivery: better software, faster.
Continuous Delivery: better software, faster.Continuous Delivery: better software, faster.
Continuous Delivery: better software, faster.
 
Salesforce DevOps: Where Do You Start?
Salesforce DevOps: Where Do You Start?Salesforce DevOps: Where Do You Start?
Salesforce DevOps: Where Do You Start?
 
Cyberland 2020 - Better software, faster: Principles of Continuous Delivery a...
Cyberland 2020 - Better software, faster: Principles of Continuous Delivery a...Cyberland 2020 - Better software, faster: Principles of Continuous Delivery a...
Cyberland 2020 - Better software, faster: Principles of Continuous Delivery a...
 
Is Groovy better for testing than Java?
Is Groovy better for testing than Java?Is Groovy better for testing than Java?
Is Groovy better for testing than Java?
 
Adapting Agility: Getting your Agile Transformation Unstuck
Adapting Agility: Getting your Agile Transformation UnstuckAdapting Agility: Getting your Agile Transformation Unstuck
Adapting Agility: Getting your Agile Transformation Unstuck
 
The Road to DevOps V3
The Road to DevOps V3The Road to DevOps V3
The Road to DevOps V3
 
Extreme Programming (XP): Revisted
Extreme Programming (XP): RevistedExtreme Programming (XP): Revisted
Extreme Programming (XP): Revisted
 
Belgium Testing Days - Making Test Automation Work in Agile Projects
Belgium Testing Days - Making Test Automation Work in Agile ProjectsBelgium Testing Days - Making Test Automation Work in Agile Projects
Belgium Testing Days - Making Test Automation Work in Agile Projects
 
Minding your own business - TestBash 2 talk
Minding your own business - TestBash 2 talkMinding your own business - TestBash 2 talk
Minding your own business - TestBash 2 talk
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
 
What testers can learn to work more effectively with programmers
What testers can learn to work more effectively with programmersWhat testers can learn to work more effectively with programmers
What testers can learn to work more effectively with programmers
 
Friday final test
Friday final testFriday final test
Friday final test
 

Similar to BDD & Beyond: The Past, Present, & Future of Test Automation

Acceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot FrameworkAcceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot Framework
Steve Zhang
 
Why You Need to Stop Using "The" Staging Server
Why You Need to Stop Using "The" Staging ServerWhy You Need to Stop Using "The" Staging Server
Why You Need to Stop Using "The" Staging Server
Outlyer
 
TDD and BDD in Sky Deutschland
TDD and BDD in Sky DeutschlandTDD and BDD in Sky Deutschland
TDD and BDD in Sky Deutschland
Murphy Meng
 
DevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDays Jakarta Igites
DevOpsDays Jakarta Igites
DevOpsDaysJKT
 
BDD for APIs
BDD for APIsBDD for APIs
BDD for APIs
Jason Harmon
 
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
 
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
Perfecto Mobile
 
Test driven development v1.0
Test driven development v1.0Test driven development v1.0
Test driven development v1.0
Ganesh Kondal
 
Inside Behavior Driven Development
Inside Behavior Driven DevelopmentInside Behavior Driven Development
Inside Behavior Driven Development
Camille Bell
 
Moving faster with CI/CD: Best DevOps practices and lessons learnt
Moving faster with CI/CD: Best DevOps practices and lessons learntMoving faster with CI/CD: Best DevOps practices and lessons learnt
Moving faster with CI/CD: Best DevOps practices and lessons learnt
Malinda Kapuruge
 
BDD presentation
BDD presentationBDD presentation
BDD presentation
temebele
 
Javascript Tests with Jasmine for Front-end Devs
Javascript Tests with Jasmine for Front-end DevsJavascript Tests with Jasmine for Front-end Devs
Javascript Tests with Jasmine for Front-end Devs
Chris Powers
 
Behaviour testing for single-page applications and API’s
Behaviour testing for single-page applications and API’sBehaviour testing for single-page applications and API’s
Behaviour testing for single-page applications and API’s
Andrew Kirkpatrick
 
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Jason Tice
 
TDD CrashCourse Part2: TDD
TDD CrashCourse Part2: TDDTDD CrashCourse Part2: TDD
TDD CrashCourse Part2: TDD
David Rodenas
 
Gradle 101
Gradle 101Gradle 101
Gradle 101
Kurt Mbanje
 
DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.
Vlad Fedosov
 
Understanding Why Testing is Importaint
Understanding Why Testing is ImportaintUnderstanding Why Testing is Importaint
Understanding Why Testing is Importaint
Sana Nasar
 
It is a sunny day
It is a sunny dayIt is a sunny day
It is a sunny day
bcoder
 
Bdd
BddBdd

Similar to BDD & Beyond: The Past, Present, & Future of Test Automation (20)

Acceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot FrameworkAcceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot Framework
 
Why You Need to Stop Using "The" Staging Server
Why You Need to Stop Using "The" Staging ServerWhy You Need to Stop Using "The" Staging Server
Why You Need to Stop Using "The" Staging Server
 
TDD and BDD in Sky Deutschland
TDD and BDD in Sky DeutschlandTDD and BDD in Sky Deutschland
TDD and BDD in Sky Deutschland
 
DevOpsDays Jakarta Igites
DevOpsDays Jakarta IgitesDevOpsDays Jakarta Igites
DevOpsDays Jakarta Igites
 
BDD for APIs
BDD for APIsBDD for APIs
BDD for APIs
 
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
 
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
 
Test driven development v1.0
Test driven development v1.0Test driven development v1.0
Test driven development v1.0
 
Inside Behavior Driven Development
Inside Behavior Driven DevelopmentInside Behavior Driven Development
Inside Behavior Driven Development
 
Moving faster with CI/CD: Best DevOps practices and lessons learnt
Moving faster with CI/CD: Best DevOps practices and lessons learntMoving faster with CI/CD: Best DevOps practices and lessons learnt
Moving faster with CI/CD: Best DevOps practices and lessons learnt
 
BDD presentation
BDD presentationBDD presentation
BDD presentation
 
Javascript Tests with Jasmine for Front-end Devs
Javascript Tests with Jasmine for Front-end DevsJavascript Tests with Jasmine for Front-end Devs
Javascript Tests with Jasmine for Front-end Devs
 
Behaviour testing for single-page applications and API’s
Behaviour testing for single-page applications and API’sBehaviour testing for single-page applications and API’s
Behaviour testing for single-page applications and API’s
 
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
 
TDD CrashCourse Part2: TDD
TDD CrashCourse Part2: TDDTDD CrashCourse Part2: TDD
TDD CrashCourse Part2: TDD
 
Gradle 101
Gradle 101Gradle 101
Gradle 101
 
DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.DevOps Fest 2020. immutable infrastructure as code. True story.
DevOps Fest 2020. immutable infrastructure as code. True story.
 
Understanding Why Testing is Importaint
Understanding Why Testing is ImportaintUnderstanding Why Testing is Importaint
Understanding Why Testing is Importaint
 
It is a sunny day
It is a sunny dayIt is a sunny day
It is a sunny day
 
Bdd
BddBdd
Bdd
 

More from Ford Prior

This Month in Cloud - March 2022
This Month in Cloud - March 2022This Month in Cloud - March 2022
This Month in Cloud - March 2022
Ford Prior
 
Get a-job-richmond-va
Get a-job-richmond-vaGet a-job-richmond-va
Get a-job-richmond-va
Ford Prior
 
Ford's AWS Service Update - April 2020 (Richmond AWS User Group)
Ford's AWS Service Update - April 2020 (Richmond AWS User Group)Ford's AWS Service Update - April 2020 (Richmond AWS User Group)
Ford's AWS Service Update - April 2020 (Richmond AWS User Group)
Ford Prior
 
Ford's AWS Service Update - May 2020 (Richmond AWS User Group)
Ford's AWS Service Update - May 2020 (Richmond AWS User Group)Ford's AWS Service Update - May 2020 (Richmond AWS User Group)
Ford's AWS Service Update - May 2020 (Richmond AWS User Group)
Ford Prior
 
Ford's AWS Service Update - March 2020 (Richmond AWS User Group)
Ford's AWS Service Update - March 2020 (Richmond AWS User Group)Ford's AWS Service Update - March 2020 (Richmond AWS User Group)
Ford's AWS Service Update - March 2020 (Richmond AWS User Group)
Ford Prior
 
Ford's AWS Service Update - February 2020 (Richmond AWS User Group)
Ford's AWS Service Update - February 2020 (Richmond AWS User Group)Ford's AWS Service Update - February 2020 (Richmond AWS User Group)
Ford's AWS Service Update - February 2020 (Richmond AWS User Group)
Ford Prior
 
Ford's AWS Service Update - January 2020 (Richmond AWS User Group)
Ford's AWS Service Update - January 2020 (Richmond AWS User Group)Ford's AWS Service Update - January 2020 (Richmond AWS User Group)
Ford's AWS Service Update - January 2020 (Richmond AWS User Group)
Ford Prior
 
re:Cap RVA - A Recap of AWS re:Invent 2019
re:Cap RVA - A Recap of AWS re:Invent 2019re:Cap RVA - A Recap of AWS re:Invent 2019
re:Cap RVA - A Recap of AWS re:Invent 2019
Ford Prior
 
KubeCon 2019 Recap (Parts 1-3)
KubeCon 2019 Recap (Parts 1-3)KubeCon 2019 Recap (Parts 1-3)
KubeCon 2019 Recap (Parts 1-3)
Ford Prior
 
Agile QA: Redefining Quality in the Wild West
Agile QA: Redefining Quality in the Wild WestAgile QA: Redefining Quality in the Wild West
Agile QA: Redefining Quality in the Wild West
Ford Prior
 
Testing API's: Tools & Tips & Tricks (Oh My!)
Testing API's: Tools & Tips & Tricks (Oh My!)Testing API's: Tools & Tips & Tricks (Oh My!)
Testing API's: Tools & Tips & Tricks (Oh My!)
Ford Prior
 
RVA QA Meetup #2: The Wild West of Agile QA
RVA QA Meetup #2: The Wild West of Agile QARVA QA Meetup #2: The Wild West of Agile QA
RVA QA Meetup #2: The Wild West of Agile QA
Ford Prior
 

More from Ford Prior (12)

This Month in Cloud - March 2022
This Month in Cloud - March 2022This Month in Cloud - March 2022
This Month in Cloud - March 2022
 
Get a-job-richmond-va
Get a-job-richmond-vaGet a-job-richmond-va
Get a-job-richmond-va
 
Ford's AWS Service Update - April 2020 (Richmond AWS User Group)
Ford's AWS Service Update - April 2020 (Richmond AWS User Group)Ford's AWS Service Update - April 2020 (Richmond AWS User Group)
Ford's AWS Service Update - April 2020 (Richmond AWS User Group)
 
Ford's AWS Service Update - May 2020 (Richmond AWS User Group)
Ford's AWS Service Update - May 2020 (Richmond AWS User Group)Ford's AWS Service Update - May 2020 (Richmond AWS User Group)
Ford's AWS Service Update - May 2020 (Richmond AWS User Group)
 
Ford's AWS Service Update - March 2020 (Richmond AWS User Group)
Ford's AWS Service Update - March 2020 (Richmond AWS User Group)Ford's AWS Service Update - March 2020 (Richmond AWS User Group)
Ford's AWS Service Update - March 2020 (Richmond AWS User Group)
 
Ford's AWS Service Update - February 2020 (Richmond AWS User Group)
Ford's AWS Service Update - February 2020 (Richmond AWS User Group)Ford's AWS Service Update - February 2020 (Richmond AWS User Group)
Ford's AWS Service Update - February 2020 (Richmond AWS User Group)
 
Ford's AWS Service Update - January 2020 (Richmond AWS User Group)
Ford's AWS Service Update - January 2020 (Richmond AWS User Group)Ford's AWS Service Update - January 2020 (Richmond AWS User Group)
Ford's AWS Service Update - January 2020 (Richmond AWS User Group)
 
re:Cap RVA - A Recap of AWS re:Invent 2019
re:Cap RVA - A Recap of AWS re:Invent 2019re:Cap RVA - A Recap of AWS re:Invent 2019
re:Cap RVA - A Recap of AWS re:Invent 2019
 
KubeCon 2019 Recap (Parts 1-3)
KubeCon 2019 Recap (Parts 1-3)KubeCon 2019 Recap (Parts 1-3)
KubeCon 2019 Recap (Parts 1-3)
 
Agile QA: Redefining Quality in the Wild West
Agile QA: Redefining Quality in the Wild WestAgile QA: Redefining Quality in the Wild West
Agile QA: Redefining Quality in the Wild West
 
Testing API's: Tools & Tips & Tricks (Oh My!)
Testing API's: Tools & Tips & Tricks (Oh My!)Testing API's: Tools & Tips & Tricks (Oh My!)
Testing API's: Tools & Tips & Tricks (Oh My!)
 
RVA QA Meetup #2: The Wild West of Agile QA
RVA QA Meetup #2: The Wild West of Agile QARVA QA Meetup #2: The Wild West of Agile QA
RVA QA Meetup #2: The Wild West of Agile QA
 

Recently uploaded

Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 

Recently uploaded (20)

Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 

BDD & Beyond: The Past, Present, & Future of Test Automation

  • 1. BDD & Beyond Past, Present Future
  • 2. ABOUT ME CONTACT • Multidisciplinary background • QA practitioner for 5 years • Corporate, startup, mid-size • Agile & waterfall • Stoked about: • Agile • CI/CD • AWS • Open-source • Wife/kid/jiu-jitsu/eating Email (fordprior@gmail.com) GitHub (fordprior) LinkedIn (Ford Prior)
  • 3. TOC Agenda. Agile. Unit testing. 3 Selenium. WebDriver. BDD & friends. Frameworks. Getting started. The Future.
  • 5.
  • 6. Monolithic architecture = monologue One guy, totally opaque, barely making sense
  • 7. Client-server architecture = two people talking Two people with obvious intentions, personalities, concerns
  • 9.
  • 10. AND THAT’S WHEN THE AMERICANS HEARD ABOUT IT, CALLED IT “SCRUM”, AND STARTED SELLING IT.
  • 11. Rugby analogy: Small teams + self-organization + objectives (instead of tasks) = Success!
  • 12. ✓ Prof. Ogunnaike Tunde ✓ 1995 ✓ “Agile is statistically better than waterfall for making software.”
  • 13. Extreme! ✓ 1997 ✓ Kent Beck ✓ Chrysler ✓ Small teams, changing requirements ✓ Code reviews & testing?!?!
  • 14.
  • 15. xUnit, et. al. ✓ Smalltalk ✓ Self-contained ✓ SUnit, JUnit, etc...
  • 16. So 2004… ✓ iMac UI ✓ MySpace ✓ Ask Jeeves ✓ Trashy interstitials ✓ 1010XOXO_v26?
  • 17. Hugs! ✓ Jason Huggins ✓ ThoughtWorks ✓ CI/CD testing ✓ Boo Mercury! ✓ Yay Selenium!
  • 18. Yay!: ✓ Supports most browsers ✓ Supports most languages ✓ Popular w/ big community ✓ IDE allows bootstrapping test creation ✓ Selenium Grid = massive parallelization
  • 19. Not so good: ○ SOP compliance ○ Limitations of JavaScript ○ Infrequent releases ○ Doesn’t like Safari
  • 20. So 2008… ✓ Internet presidents ✓ Netbooks ✓ Twitter is cool
  • 21. Plucky! ✓ 2008 ✓ ThoughtWorks ✓ WebDriver Project ✓ Simon Stewart ✓ Fan of Selenium
  • 22. Yay!: ✓ Small, comprehensible API ✓ Durable to change b/c uses native OS ✓ Speed & performance (w/ trade-offs) ✓ Tiny (no server process) ✓ Accommodates Selenium API
  • 23. Not so good: ○ Writing native browser code ○ Doesn’t like IE ○ Only supports Java?! ○ <?>
  • 24.
  • 25. 25 They join forces: ✓ 2010 ✓ Google ✓ JSON
  • 26. Why JSON?: ✓ W3C standard ✓ Every lingo has JSON parsing lib ✓ Every lingo has HTTP library
  • 28. Ugh! Lots of code, until... ✓ 2011 ✓ SeleniumConf ✓ OperaDriver ✓ ChromeDriver
  • 29. Selenium 3.x ✓ 2016 ✓ Default = browser’s maintained driver ✓ More API-based ✓ W3C spec (almost)
  • 30. Today! ✓ Still open-source ✓ RIP Selenium IDE ✓ W3C spec (still almost)
  • 31. Still bad ● Documentation ● Specific language support ● IDE Driver (EdgeDriver is focus of Microsoft)
  • 32. Selenium 4.x & Beyond ■ ALL browser drivers spec compliant ■ Vendor adoption ■ Only bindings & Js Common Code
  • 33. PhantomJs! ✓ 2011 ✓ Ariya Hidayat ✓ Browser w/out UI ✓ Webscraping
  • 34. Chromium! ✓ WebKit fork (Blink & v8) ✓ Google, but open-source ✓ 2017 (v59)
  • 35.
  • 36. Tech is neat-o, but what about a framework?
  • 37. TDD, BDD, ATDD HUGE POTENTIAL, JUST TREMENDOUS.
  • 38. TDD, BDD, ATDD New software development methodologies They do just 2 things: Problem Solution How Changing, complex requirements 1. Makes it easy to talk about specs & stories universal language and format High velocity 2. Helps developer “flow” w/ a fast, elegant, automated feedback loop
  • 39. RED Outline an aspect of the product that’s failing the customer in some way. GREEN Come up with a solution so that the customer wins instead of loses. REFACTOR Streamline and slim down experience while making sure customer is still winning. BDD (red, green, refactor) For business people:
  • 40. RED Write some unit test code that fails because the feature it’s testing is non- existent. GREEN Write some real code until that test code is passing instead of failing. REFACTOR Refactor the real code as much as possible while unit tests still pass. TDD (red, green, refactor) For programmers:
  • 41. RED Write some acceptance test code that fails because the feature it’s testing is non- existent. GREEN Give it to the programmer and let him write real code until your tests pass. REFACTOR Add test to “regression” list. Programmer refactors/adds new code without regressing. ATDD (red, green, refactor) For testers:
  • 42. RED Outline an aspect of the product that’s failing the customer in some way. GREEN Come up with a solution so that the customer wins instead of loses. REFACTOR Streamline and slim down experience while making sure customer is still winning. BDD (red, green, refactor) Put ‘em together: RED Write some test code that fails because the feature it’s testing is non-existent. GREEN Write some real code until that test code is passing instead of failing. REFACTOR Refactor the real code as much as possible while still passing tests. TDD (red, green, refactor) REFACTOR Add test to “regression” list. Programmer refactors/adds new code without regressing. RED Write some acceptance test code that fails because the feature it’s testing is non-existent. GREEN Give it to the programmer and let him write real code until your tests pass. ATDD (red, green, refactor)
  • 43. Gherkin ✓ 2005 ✓ Chris Matts ✓ ThoughtWorks “Let’s start using a common way of talking about requirements between Devs, PO’s, and QA’s.”
  • 44. JBehave ✓ 2006 ✓ Dan North ✓ ThoughtWorks ✓ Agiledox (JUnit utility) ✓ TDD “...And this format is specific enough for us to write into test code.”
  • 45. RSpec ✓ 2006 ✓ Aslak Hellesøy ✓ ThoughtWorks ✓ BDD “...And it can also be a way to communicate specifications before they’re even coded.”
  • 46.
  • 47. RSpec Story Runner ✓ 2007 ✓ David Chelimsky ✓ ThoughtWorks ✓ BDD “In fact, let’s abstract it all so that it runs off of plain text in a Given/When/Then format!” StoryRunner
  • 48. Cucumber ✓ 2008 ✓ Aslak Hellesøy ✓ ThoughtWorks ✓ Forked from RSpec ✓ ATDD “...and now it’s even better, plus in a bunch of different languages!”
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55. What about the future?
  • 56. More commoditization. ✓ More SaaS tooling ✓ Data-driven testing (canaries) ✓ Less of a “discipline”
  • 57. AI & ML are here. ✓ Trained on 1000’s of apps ✓ Less CSS targeting ✓ Based on natural language
  • 58. Regression Classification Anomaly detection Pattern recognition The high tomorrow will probably be 84.6 F. Tomorrow will be muggy. Tomorrow will be abnormally hot. Wear a raincoat tomorrow, no need for rain boots, and maybe an umbrella. This type of bug will probably take 3 weeks to fix and impact 1,000 users per day. This page is a form, and these are the relevant fields and that’s the Submit button. This shouldn’t exist. That shouldn’t have happened. That is a user profile, and here’s how you update it.
  • 59. Here to stay (for now): ✓ “QA brain” ✓ Domain knowledge ✓ HTTP/Web (Selenium WebDriver)

Editor's Notes

  1. API testing 101 About Me About Snagajob HTTP Is how the web communicates. Super quick over the wire, 234 ms. API's An API isn’t the same as the remote server — rather it is the part of the server that receives requests and sends responses. The code that takes the HTTP requests and turns it into business vaue. Stores in database so another app can access it, Applies some logic to transform it into a number someone really cares about Feeds it into some proprietary algo to drive insight All of the above Public & Private (amazon button story) Microservices are new hottness HTTP basics this is a protocol, just like a language. 1) headers (includes auth, tells service what type of content it's delivering, and what to accept in terms of a response) 2) querystrings (optional) which are on the actual route and specify what to ask the application for (e.g. `http://gateway.api.snagQA.corp/customers?isActive=true` is asking for customers where isActive=true) 3) body (also optional) which is giving some detailed data to the service so, those 3 things the BODY is usually part of anything related to creation, but it can also be passed to an existing entity to overwrite some existing data. so new customers will have large bodies
  2. Project Mercury (NASA) software development, ran with half-day iterations. “All of us, as far as I can remember, thought waterfalling of a huge project was rather stupid, or at least ignorant of the realities.” — Weinberg G. M. (Project Mercury)
  3. Monolithic architecture = monologue One guy, totally opaque, barely making sense
  4. Client-server architecture = two people talking Two people with obvious intentions, personalities, concerns
  5. Software development in the 1990s was shaped by two major influences: internally, object-oriented programming replaced procedural programming as the programming paradigm favored by some in the industry; externally, the rise of the Internet and the dot-com boom emphasized speed-to-market and company growth as competitive business factors. Rapidly changing requirements demanded shorter product life-cycles, and were often incompatible with traditional methods of software development.
  6. 1986
  7. While in the process of developing and using early versions of Scrum, Ken asked Professor Babatunde A. Ogunnaike Tunde, a famous process control research engineer, to look at software development processes. Tunde investigated several commercial software-development methodologies to conclude that the waterfall and predictive process is not a good fit for the work of software development. He confirmed the empirical approach of Scrum to be the preferred process.
  8. “The first time I was asked to lead a team, I asked them to do a little bit of the things I thought were sensible, like testing and reviews. The second time there was a lot more on the line. I thought, "Damn the torpedoes, at least this will make a good article," [and] asked the team to crank up all the knobs to 10 on the things I thought were essential and leave out everything else.”
  9. http://slideplayer.com/slide/6356916/ https://en.wikipedia.org/wiki/Unit_testing https://stackoverflow.com/questions/652292/what-is-unit-testing-and-how-do-you-do-it
  10. Why Cambrian? ~Oxygenation ~Two continents colliding ~Large extinction allowed open field ~All three? Despite their proliferation, however, many Cambrian creatures eventually went extinct, including the exotic Opabinia, which had five eyes and a nose like a fire hose, and Wiwaxia, an armored slug with two rows of upright scales.
  11. (Selenium Core replaced by WebDriver API’s in RC) Wc3 stuff: -2 independent implementations (Gecko + IE) -Test Suite
  12. Get Appium up to speed (it’s lingering behind) Session Protocol Payload (currently, you can send pretty much anything into Desired_Capabilities, but with W3C it’s regimented Commercial tool vendors adopting open-source WebDriver EdgeDriver is focus of Microsoft; but IE Driver will stay open-source
  13. Only spec-dialect version of protocol (no open-source drivers, browsers must comply) Tighter Desired_Capabilities
  14. https://intoli.com/blog/running-selenium-with-headless-chrome/ ...So Google goes its own way with HEADLESS BROWSERS, too. 2017 With versions 59 and onwards, it will now be possible to harness the power of V8, Blink, and the rest of Chrome in a non-graphical server environment. It has long been rumored that Google uses a headless variant of Chrome for their web crawls. Over the last two years or so it had started looking more and more like this functionality would eventually make it into the public releases and, as of this week, that has finally happened. With versions 59 and onwards, it will now be possible to harness the power of V8, Blink, and the rest of Chrome in a non-graphical server environment. This may not sound earth-shattering if you don’t deal with headless browsers very often but it’s actually a pretty big deal. To put this into context: PhantomJS, one of the current leaders in the space, has over 21k stars on GitHub and is used by companies such as Netflix and Twitter for both unit and performance testing. Vitaly Slobodin, the former maintainer of PhantomJS, had this to say after hearing the news. I think people will switch to it, eventually. Chrome is faster and more stable than PhantomJS. And it doesn’t eat memory like crazy. I don’t see any future in developing PhantomJS. Developing PhantomJS 2 and 2.5 as a single developer is a bloody hell. Even with recently released 2.5 Beta version with new and shiny QtWebKit, I can’t physically support all 3 platforms at once (I even bought the Mac for that!). We have no support. From now, I am stepping down as maintainer. If someone wants to continue - feel free to reach me. – Vitaly Slobodin
  15. We just do “D”, sometimes it’s “DD”.
  16. https://www.quora.com/Why-is-the-Cucumber-tool-for-BDD-named-as-such
  17. Given When Then
  18. IIRC Cucumber was a re-write of the RSpec Story Runner, which was a re-write of JBehave. AFAIK GWT came from Chris Matts, who was a business analyst working at Throughtworks with Dan North and @lunivore
  19. IIRC Cucumber was a re-write of the RSpec Story Runner, which was a re-write of JBehave. AFAIK GWT came from Chris Matts, who was a business analyst working at Throughtworks with Dan North and @lunivore