SlideShare a Scribd company logo
1 of 16
TESTING
WEB APPs & APIs
Aaron Evans
aaron@one-shore.com
@fijiaaron
1-844-AUTOM87
TESTING WEB APPs & APIs
Testing Web Apps and APIs
Web App
State
Behavior
User Interface
Web API
Stateless
HTTP / REST interface
TESTING WEB APPs & APIs
Modern vs Traditional
What are the differences between “modern” web applications
and more traditional applications?
What are the challenges we face testing modern web apps?
What can we do to make it easier?
TESTING WEB APPs & APIs
Modern web applications
Responsive layout
Various screens sizes and formats (mobile, tablet, desktop)
Reactive user interface
Client side rendering. DOM manipulation
Web services
Communicates via AJAX to RESTful APIs
Cloud infrastructure
Deployed as independent containers
TESTING WEB APPs & APIs
Challenges
UI
Layout, application state, testing independent of services
API
No user interface, versioning, no shared state
Data Sources
Relational databases, noSQL, search, external web services
Cloud infrastructure
Provisioning, configuration, intercommunication, security
TESTING WEB APPs & APIs
Solutions
Separation of concerns
Test the UI without the back end
Test the back end without the UI
Test deployments without either the front or back end
Environments that can be swapped out or rolled back seamlessly
TESTING WEB APPs & APIs
The Front End
HTML
CSS
JavaScript
Mobile apps
Single page apps
Devices
Browsers
Frameworks
TESTING WEB APPs & APIs
UI Testing
Still necessary, but not the only (or even primary) way to test
Weaknesses:
Slow, brittle, too many interfaces (devices, browsers, etc.)
Useful for:
End to end tests
testing user experience
verifying requirements
Visual testing
TESTING WEB APPs & APIs
The Back End
Node.js, Express, Koa, Ruby on Rails, Java, PHP, Go, .NET
etc.
REST
Microservices
Relational & NoSQL data stores (MongoDB, Redis, CouchDB, Elasticsearch, etc.)
External services (payment processing, authorization, etc.)
TESTING WEB APPs & APIs
Testing web APIs
Faster, less error prone
No user interface
Focus on:
Functionality of individual service
Integration of services
Smoke test entire system
TESTING WEB APPs & APIs
Deployment testing
Containers & VMs
Continuous integration & delivery
Ability to switch from test to production with the flip of a switch (DNS)
TESTING WEB APPs & APIs
DEMO
Hart - medical information software
TESTING WEB APPs & APIs
DEMO: UI Testing
Test as a user through the browser.
Manually, then automate.
Tools:
Javascript
Mocha (BDD test framework)
Selenium (Webdriver.io)
Sauce Labs (Cloud devices)
TESTING WEB APPs & APIs
DEMO: API Testing
Test via the REST API
Manually using Postman, then automate
Tools:
Javascript
Cucumber (BDD test framework)
Postman (Google Chrome plugin)
Unirest (HTTP library)
TESTING WEB APPs & APIs
Confidence
Use continuous integration to:
Run tests after every build
Run tests after deployment to every environment
Benefits:
Quicker discovery of issues
More time for manual exploratory testing
Release changes on demand
Roll back production issues immediately
Thanks.
Aaron Evans
aaron@one-shore.com
@fijiaaron
1-844-AUTOM87

More Related Content

What's hot

Web services automation workshop sreedhar dakshinamurthy
Web services automation workshop   sreedhar dakshinamurthyWeb services automation workshop   sreedhar dakshinamurthy
Web services automation workshop sreedhar dakshinamurthyThoughtworks
 
A1QA_ summer'11
A1QA_ summer'11A1QA_ summer'11
A1QA_ summer'11A1QA
 
Web Applications Are Technically Awesome!
Web Applications Are Technically Awesome!Web Applications Are Technically Awesome!
Web Applications Are Technically Awesome!MediaFront
 
Radu vunvulea refactoring&code smells
Radu vunvulea   refactoring&code smellsRadu vunvulea   refactoring&code smells
Radu vunvulea refactoring&code smellsRadu Vunvulea
 
APIdays San Francisco, 06/22/2013
APIdays San Francisco, 06/22/2013APIdays San Francisco, 06/22/2013
APIdays San Francisco, 06/22/2013Jerome Louvel
 
Yelowsoft Features paper
Yelowsoft Features paperYelowsoft Features paper
Yelowsoft Features paperYelowsoft
 
Pal gov.tutorial3.session7
Pal gov.tutorial3.session7Pal gov.tutorial3.session7
Pal gov.tutorial3.session7Mustafa Jarrar
 
The API and APP-ification of the Web
The API and APP-ification of the WebThe API and APP-ification of the Web
The API and APP-ification of the Web3scale
 
API Virtualization: Mocking on Steroids
API Virtualization: Mocking on SteroidsAPI Virtualization: Mocking on Steroids
API Virtualization: Mocking on SteroidsSmartBear
 
WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava S...
WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava S...WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava S...
WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava S...GeeksLab Odessa
 
Web application architecture guide how it works types, components, best pract...
Web application architecture guide how it works types, components, best pract...Web application architecture guide how it works types, components, best pract...
Web application architecture guide how it works types, components, best pract...Katy Slemon
 
Creating Cloud-Ready Enterprise Applications with the SharePoint 2013 Add-In ...
Creating Cloud-Ready Enterprise Applications with the SharePoint 2013 Add-In ...Creating Cloud-Ready Enterprise Applications with the SharePoint 2013 Add-In ...
Creating Cloud-Ready Enterprise Applications with the SharePoint 2013 Add-In ...Eric Shupps
 
SPCA2013 - It’s Me, and Here’s My ProofIdentity & Authentication in SharePoin...
SPCA2013 - It’s Me, and Here’s My ProofIdentity & Authentication in SharePoin...SPCA2013 - It’s Me, and Here’s My ProofIdentity & Authentication in SharePoin...
SPCA2013 - It’s Me, and Here’s My ProofIdentity & Authentication in SharePoin...NCCOMMS
 
API managment providers from API Craft NYC Meetup in NYC
API managment providers from API Craft NYC Meetup in NYCAPI managment providers from API Craft NYC Meetup in NYC
API managment providers from API Craft NYC Meetup in NYCJason M. Sherman
 
Appium banking automation
Appium banking automationAppium banking automation
Appium banking automationpavithz
 
Developing Profitable APIs - John Fraser - Platform A
Developing Profitable APIs - John Fraser - Platform ADeveloping Profitable APIs - John Fraser - Platform A
Developing Profitable APIs - John Fraser - Platform Aauexpo Conference
 

What's hot (19)

Web services automation workshop sreedhar dakshinamurthy
Web services automation workshop   sreedhar dakshinamurthyWeb services automation workshop   sreedhar dakshinamurthy
Web services automation workshop sreedhar dakshinamurthy
 
A1QA_ summer'11
A1QA_ summer'11A1QA_ summer'11
A1QA_ summer'11
 
Web Applications Are Technically Awesome!
Web Applications Are Technically Awesome!Web Applications Are Technically Awesome!
Web Applications Are Technically Awesome!
 
Radu vunvulea refactoring&code smells
Radu vunvulea   refactoring&code smellsRadu vunvulea   refactoring&code smells
Radu vunvulea refactoring&code smells
 
APIdays San Francisco, 06/22/2013
APIdays San Francisco, 06/22/2013APIdays San Francisco, 06/22/2013
APIdays San Francisco, 06/22/2013
 
Yelowsoft Features paper
Yelowsoft Features paperYelowsoft Features paper
Yelowsoft Features paper
 
APIs y seguridad
APIs y seguridadAPIs y seguridad
APIs y seguridad
 
Pal gov.tutorial3.session7
Pal gov.tutorial3.session7Pal gov.tutorial3.session7
Pal gov.tutorial3.session7
 
The API and APP-ification of the Web
The API and APP-ification of the WebThe API and APP-ification of the Web
The API and APP-ification of the Web
 
API Virtualization: Mocking on Steroids
API Virtualization: Mocking on SteroidsAPI Virtualization: Mocking on Steroids
API Virtualization: Mocking on Steroids
 
WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava S...
WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava S...WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava S...
WebCamp: Developer Day: Single Page Web Application with Scala/Spray- Slava S...
 
Web application architecture guide how it works types, components, best pract...
Web application architecture guide how it works types, components, best pract...Web application architecture guide how it works types, components, best pract...
Web application architecture guide how it works types, components, best pract...
 
RESUME - ME1
RESUME - ME1RESUME - ME1
RESUME - ME1
 
What Is Ajax
What Is AjaxWhat Is Ajax
What Is Ajax
 
Creating Cloud-Ready Enterprise Applications with the SharePoint 2013 Add-In ...
Creating Cloud-Ready Enterprise Applications with the SharePoint 2013 Add-In ...Creating Cloud-Ready Enterprise Applications with the SharePoint 2013 Add-In ...
Creating Cloud-Ready Enterprise Applications with the SharePoint 2013 Add-In ...
 
SPCA2013 - It’s Me, and Here’s My ProofIdentity & Authentication in SharePoin...
SPCA2013 - It’s Me, and Here’s My ProofIdentity & Authentication in SharePoin...SPCA2013 - It’s Me, and Here’s My ProofIdentity & Authentication in SharePoin...
SPCA2013 - It’s Me, and Here’s My ProofIdentity & Authentication in SharePoin...
 
API managment providers from API Craft NYC Meetup in NYC
API managment providers from API Craft NYC Meetup in NYCAPI managment providers from API Craft NYC Meetup in NYC
API managment providers from API Craft NYC Meetup in NYC
 
Appium banking automation
Appium banking automationAppium banking automation
Appium banking automation
 
Developing Profitable APIs - John Fraser - Platform A
Developing Profitable APIs - John Fraser - Platform ADeveloping Profitable APIs - John Fraser - Platform A
Developing Profitable APIs - John Fraser - Platform A
 

Viewers also liked

Testing Metrics and why Managers like them
Testing Metrics and why Managers like themTesting Metrics and why Managers like them
Testing Metrics and why Managers like themPractiTest
 
Oren rubin statistical element locator
Oren rubin   statistical element locatorOren rubin   statistical element locator
Oren rubin statistical element locatorPractiTest
 
Automation is not the answer... unless you WANT it to be
Automation is not the answer... unless you WANT it to beAutomation is not the answer... unless you WANT it to be
Automation is not the answer... unless you WANT it to bePractiTest
 
Rob lambert10 Behaviors of Effective Employees" at OnlineTestConf.
Rob lambert10 Behaviors of Effective Employees" at OnlineTestConf.Rob lambert10 Behaviors of Effective Employees" at OnlineTestConf.
Rob lambert10 Behaviors of Effective Employees" at OnlineTestConf.PractiTest
 
S.M.A.R.T & F.O.C.U.S Testing - Increasing the value provided by your testing...
S.M.A.R.T & F.O.C.U.S Testing - Increasing the value provided by your testing...S.M.A.R.T & F.O.C.U.S Testing - Increasing the value provided by your testing...
S.M.A.R.T & F.O.C.U.S Testing - Increasing the value provided by your testing...PractiTest
 
Testing fundamentals in a changing world
Testing fundamentals in a changing worldTesting fundamentals in a changing world
Testing fundamentals in a changing worldPractiTest
 
The Risk Questionnaire - by: Adam Knight
  The Risk Questionnaire - by: Adam Knight  The Risk Questionnaire - by: Adam Knight
The Risk Questionnaire - by: Adam KnightPractiTest
 
Test beyond the obvious- Root Cause Analysis
Test beyond the obvious- Root Cause AnalysisTest beyond the obvious- Root Cause Analysis
Test beyond the obvious- Root Cause AnalysisPractiTest
 
Docker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHPDocker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHPChris Tankersley
 

Viewers also liked (9)

Testing Metrics and why Managers like them
Testing Metrics and why Managers like themTesting Metrics and why Managers like them
Testing Metrics and why Managers like them
 
Oren rubin statistical element locator
Oren rubin   statistical element locatorOren rubin   statistical element locator
Oren rubin statistical element locator
 
Automation is not the answer... unless you WANT it to be
Automation is not the answer... unless you WANT it to beAutomation is not the answer... unless you WANT it to be
Automation is not the answer... unless you WANT it to be
 
Rob lambert10 Behaviors of Effective Employees" at OnlineTestConf.
Rob lambert10 Behaviors of Effective Employees" at OnlineTestConf.Rob lambert10 Behaviors of Effective Employees" at OnlineTestConf.
Rob lambert10 Behaviors of Effective Employees" at OnlineTestConf.
 
S.M.A.R.T & F.O.C.U.S Testing - Increasing the value provided by your testing...
S.M.A.R.T & F.O.C.U.S Testing - Increasing the value provided by your testing...S.M.A.R.T & F.O.C.U.S Testing - Increasing the value provided by your testing...
S.M.A.R.T & F.O.C.U.S Testing - Increasing the value provided by your testing...
 
Testing fundamentals in a changing world
Testing fundamentals in a changing worldTesting fundamentals in a changing world
Testing fundamentals in a changing world
 
The Risk Questionnaire - by: Adam Knight
  The Risk Questionnaire - by: Adam Knight  The Risk Questionnaire - by: Adam Knight
The Risk Questionnaire - by: Adam Knight
 
Test beyond the obvious- Root Cause Analysis
Test beyond the obvious- Root Cause AnalysisTest beyond the obvious- Root Cause Analysis
Test beyond the obvious- Root Cause Analysis
 
Docker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHPDocker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHP
 

Similar to Testing Web Apps and API's

Notes On Software Development, Platform And Modernisation
Notes On Software Development, Platform And ModernisationNotes On Software Development, Platform And Modernisation
Notes On Software Development, Platform And ModernisationAlan McSweeney
 
Service Testing. WTF Does This API Do
Service Testing. WTF Does This API Do	Service Testing. WTF Does This API Do
Service Testing. WTF Does This API Do Globant
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by GoogleASG
 
Web application automated testing types and tools
Web application automated testing types and toolsWeb application automated testing types and tools
Web application automated testing types and toolsTestingXperts
 
Trust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationTrust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationElias Nogueira
 
Fundamentals of Web Development For Non-Developers
Fundamentals of Web Development For Non-DevelopersFundamentals of Web Development For Non-Developers
Fundamentals of Web Development For Non-DevelopersLemi Orhan Ergin
 
Webservices Testing - A Changing Landscape
Webservices Testing - A Changing LandscapeWebservices Testing - A Changing Landscape
Webservices Testing - A Changing LandscapeAmit Channa
 
Don't Drop the SOAP: Real World Web Service Testing for Web Hackers
Don't Drop the SOAP: Real World Web Service Testing for Web Hackers Don't Drop the SOAP: Real World Web Service Testing for Web Hackers
Don't Drop the SOAP: Real World Web Service Testing for Web Hackers Tom Eston
 
Pentesting With Web Services in 2012
Pentesting With Web Services in 2012Pentesting With Web Services in 2012
Pentesting With Web Services in 2012Ishan Girdhar
 
Testing soa, web services and application development framework applications
Testing soa, web services and application development framework applicationsTesting soa, web services and application development framework applications
Testing soa, web services and application development framework applicationsInSync Conference
 
Managing EBS Testing, Performance, Configurations, Change & User experience
Managing EBS Testing, Performance, Configurations, Change & User experienceManaging EBS Testing, Performance, Configurations, Change & User experience
Managing EBS Testing, Performance, Configurations, Change & User experienceInSync Conference
 
PPT with Flash ry
PPT with Flash ryPPT with Flash ry
PPT with Flash rymarina2207
 
Ibm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopIbm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopShubhra Kar
 
Triangle Node Meetup : APIs in Minutes with Node.js
Triangle Node Meetup :  APIs in Minutes with Node.jsTriangle Node Meetup :  APIs in Minutes with Node.js
Triangle Node Meetup : APIs in Minutes with Node.jsShubhra Kar
 
VIVEKSHUKLA_10YRS_TESTAUTOMATION_SELENIUM
VIVEKSHUKLA_10YRS_TESTAUTOMATION_SELENIUMVIVEKSHUKLA_10YRS_TESTAUTOMATION_SELENIUM
VIVEKSHUKLA_10YRS_TESTAUTOMATION_SELENIUMVivek Shukla
 
Polysource-IT Profile
Polysource-IT ProfilePolysource-IT Profile
Polysource-IT ProfileHelen
 
Polysource-IT Profile
Polysource-IT ProfilePolysource-IT Profile
Polysource-IT ProfileHelen
 

Similar to Testing Web Apps and API's (20)

Notes On Software Development, Platform And Modernisation
Notes On Software Development, Platform And ModernisationNotes On Software Development, Platform And Modernisation
Notes On Software Development, Platform And Modernisation
 
Service Testing. WTF Does This API Do
Service Testing. WTF Does This API Do	Service Testing. WTF Does This API Do
Service Testing. WTF Does This API Do
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
 
Lisa
LisaLisa
Lisa
 
Soap UI and postman
Soap UI and postmanSoap UI and postman
Soap UI and postman
 
Web application automated testing types and tools
Web application automated testing types and toolsWeb application automated testing types and tools
Web application automated testing types and tools
 
Web 2.0 Development with IBM DB2
Web 2.0 Development with IBM DB2Web 2.0 Development with IBM DB2
Web 2.0 Development with IBM DB2
 
Trust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationTrust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java Application
 
Fundamentals of Web Development For Non-Developers
Fundamentals of Web Development For Non-DevelopersFundamentals of Web Development For Non-Developers
Fundamentals of Web Development For Non-Developers
 
Webservices Testing - A Changing Landscape
Webservices Testing - A Changing LandscapeWebservices Testing - A Changing Landscape
Webservices Testing - A Changing Landscape
 
Don't Drop the SOAP: Real World Web Service Testing for Web Hackers
Don't Drop the SOAP: Real World Web Service Testing for Web Hackers Don't Drop the SOAP: Real World Web Service Testing for Web Hackers
Don't Drop the SOAP: Real World Web Service Testing for Web Hackers
 
Pentesting With Web Services in 2012
Pentesting With Web Services in 2012Pentesting With Web Services in 2012
Pentesting With Web Services in 2012
 
Testing soa, web services and application development framework applications
Testing soa, web services and application development framework applicationsTesting soa, web services and application development framework applications
Testing soa, web services and application development framework applications
 
Managing EBS Testing, Performance, Configurations, Change & User experience
Managing EBS Testing, Performance, Configurations, Change & User experienceManaging EBS Testing, Performance, Configurations, Change & User experience
Managing EBS Testing, Performance, Configurations, Change & User experience
 
PPT with Flash ry
PPT with Flash ryPPT with Flash ry
PPT with Flash ry
 
Ibm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopIbm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshop
 
Triangle Node Meetup : APIs in Minutes with Node.js
Triangle Node Meetup :  APIs in Minutes with Node.jsTriangle Node Meetup :  APIs in Minutes with Node.js
Triangle Node Meetup : APIs in Minutes with Node.js
 
VIVEKSHUKLA_10YRS_TESTAUTOMATION_SELENIUM
VIVEKSHUKLA_10YRS_TESTAUTOMATION_SELENIUMVIVEKSHUKLA_10YRS_TESTAUTOMATION_SELENIUM
VIVEKSHUKLA_10YRS_TESTAUTOMATION_SELENIUM
 
Polysource-IT Profile
Polysource-IT ProfilePolysource-IT Profile
Polysource-IT Profile
 
Polysource-IT Profile
Polysource-IT ProfilePolysource-IT Profile
Polysource-IT Profile
 

More from PractiTest

Continuous testing maximising velocity, quality and customer happiness
Continuous testing maximising velocity, quality and customer happinessContinuous testing maximising velocity, quality and customer happiness
Continuous testing maximising velocity, quality and customer happinessPractiTest
 
Karishma Kolli – Myth Busters on Test Automation
Karishma Kolli – Myth Busters on Test AutomationKarishma Kolli – Myth Busters on Test Automation
Karishma Kolli – Myth Busters on Test AutomationPractiTest
 
How Mindmaps can save your sanity
How Mindmaps can save your sanityHow Mindmaps can save your sanity
How Mindmaps can save your sanityPractiTest
 
The New Normal for Development and Testing in Agile and DevOps
The New Normal for Development and Testing in Agile and DevOpsThe New Normal for Development and Testing in Agile and DevOps
The New Normal for Development and Testing in Agile and DevOpsPractiTest
 
Shifting is more than shifting left
Shifting is more than shifting leftShifting is more than shifting left
Shifting is more than shifting leftPractiTest
 
Testing in the future. today
Testing in the future.  today Testing in the future.  today
Testing in the future. today PractiTest
 
Adding values to Agile teams
Adding values to Agile teamsAdding values to Agile teams
Adding values to Agile teamsPractiTest
 
Testing and AI
Testing and AITesting and AI
Testing and AIPractiTest
 
10+ Testing Pitfalls and How to Avoid them
10+ Testing Pitfalls and How to Avoid them 10+ Testing Pitfalls and How to Avoid them
10+ Testing Pitfalls and How to Avoid them PractiTest
 
Communication skills for testers
Communication skills for testersCommunication skills for testers
Communication skills for testersPractiTest
 
Software testing - Risk management
Software testing - Risk managementSoftware testing - Risk management
Software testing - Risk managementPractiTest
 
Managing agile testing
Managing agile testing Managing agile testing
Managing agile testing PractiTest
 
How to create a 'Master Test Plan'
How to create a 'Master Test Plan'How to create a 'Master Test Plan'
How to create a 'Master Test Plan'PractiTest
 
Mixing testing types to improve your testing results
Mixing testing types to improve your testing resultsMixing testing types to improve your testing results
Mixing testing types to improve your testing resultsPractiTest
 
Developer testing webinar
Developer testing webinar Developer testing webinar
Developer testing webinar PractiTest
 
Agile testing webinar
Agile testing webinarAgile testing webinar
Agile testing webinarPractiTest
 
Testing metrics webinar
Testing metrics webinarTesting metrics webinar
Testing metrics webinarPractiTest
 
Reporting principles for every QA manager
Reporting principles for every QA manager Reporting principles for every QA manager
Reporting principles for every QA manager PractiTest
 
10 signs you have outgrown
10 signs you have outgrown 10 signs you have outgrown
10 signs you have outgrown PractiTest
 
Severity vs. Priority of a Bug
Severity vs. Priority of a BugSeverity vs. Priority of a Bug
Severity vs. Priority of a BugPractiTest
 

More from PractiTest (20)

Continuous testing maximising velocity, quality and customer happiness
Continuous testing maximising velocity, quality and customer happinessContinuous testing maximising velocity, quality and customer happiness
Continuous testing maximising velocity, quality and customer happiness
 
Karishma Kolli – Myth Busters on Test Automation
Karishma Kolli – Myth Busters on Test AutomationKarishma Kolli – Myth Busters on Test Automation
Karishma Kolli – Myth Busters on Test Automation
 
How Mindmaps can save your sanity
How Mindmaps can save your sanityHow Mindmaps can save your sanity
How Mindmaps can save your sanity
 
The New Normal for Development and Testing in Agile and DevOps
The New Normal for Development and Testing in Agile and DevOpsThe New Normal for Development and Testing in Agile and DevOps
The New Normal for Development and Testing in Agile and DevOps
 
Shifting is more than shifting left
Shifting is more than shifting leftShifting is more than shifting left
Shifting is more than shifting left
 
Testing in the future. today
Testing in the future.  today Testing in the future.  today
Testing in the future. today
 
Adding values to Agile teams
Adding values to Agile teamsAdding values to Agile teams
Adding values to Agile teams
 
Testing and AI
Testing and AITesting and AI
Testing and AI
 
10+ Testing Pitfalls and How to Avoid them
10+ Testing Pitfalls and How to Avoid them 10+ Testing Pitfalls and How to Avoid them
10+ Testing Pitfalls and How to Avoid them
 
Communication skills for testers
Communication skills for testersCommunication skills for testers
Communication skills for testers
 
Software testing - Risk management
Software testing - Risk managementSoftware testing - Risk management
Software testing - Risk management
 
Managing agile testing
Managing agile testing Managing agile testing
Managing agile testing
 
How to create a 'Master Test Plan'
How to create a 'Master Test Plan'How to create a 'Master Test Plan'
How to create a 'Master Test Plan'
 
Mixing testing types to improve your testing results
Mixing testing types to improve your testing resultsMixing testing types to improve your testing results
Mixing testing types to improve your testing results
 
Developer testing webinar
Developer testing webinar Developer testing webinar
Developer testing webinar
 
Agile testing webinar
Agile testing webinarAgile testing webinar
Agile testing webinar
 
Testing metrics webinar
Testing metrics webinarTesting metrics webinar
Testing metrics webinar
 
Reporting principles for every QA manager
Reporting principles for every QA manager Reporting principles for every QA manager
Reporting principles for every QA manager
 
10 signs you have outgrown
10 signs you have outgrown 10 signs you have outgrown
10 signs you have outgrown
 
Severity vs. Priority of a Bug
Severity vs. Priority of a BugSeverity vs. Priority of a Bug
Severity vs. Priority of a Bug
 

Recently uploaded

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 

Recently uploaded (20)

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 

Testing Web Apps and API's

  • 1. TESTING WEB APPs & APIs Aaron Evans aaron@one-shore.com @fijiaaron 1-844-AUTOM87
  • 2. TESTING WEB APPs & APIs Testing Web Apps and APIs Web App State Behavior User Interface Web API Stateless HTTP / REST interface
  • 3. TESTING WEB APPs & APIs Modern vs Traditional What are the differences between “modern” web applications and more traditional applications? What are the challenges we face testing modern web apps? What can we do to make it easier?
  • 4. TESTING WEB APPs & APIs Modern web applications Responsive layout Various screens sizes and formats (mobile, tablet, desktop) Reactive user interface Client side rendering. DOM manipulation Web services Communicates via AJAX to RESTful APIs Cloud infrastructure Deployed as independent containers
  • 5. TESTING WEB APPs & APIs Challenges UI Layout, application state, testing independent of services API No user interface, versioning, no shared state Data Sources Relational databases, noSQL, search, external web services Cloud infrastructure Provisioning, configuration, intercommunication, security
  • 6. TESTING WEB APPs & APIs Solutions Separation of concerns Test the UI without the back end Test the back end without the UI Test deployments without either the front or back end Environments that can be swapped out or rolled back seamlessly
  • 7. TESTING WEB APPs & APIs The Front End HTML CSS JavaScript Mobile apps Single page apps Devices Browsers Frameworks
  • 8. TESTING WEB APPs & APIs UI Testing Still necessary, but not the only (or even primary) way to test Weaknesses: Slow, brittle, too many interfaces (devices, browsers, etc.) Useful for: End to end tests testing user experience verifying requirements Visual testing
  • 9. TESTING WEB APPs & APIs The Back End Node.js, Express, Koa, Ruby on Rails, Java, PHP, Go, .NET etc. REST Microservices Relational & NoSQL data stores (MongoDB, Redis, CouchDB, Elasticsearch, etc.) External services (payment processing, authorization, etc.)
  • 10. TESTING WEB APPs & APIs Testing web APIs Faster, less error prone No user interface Focus on: Functionality of individual service Integration of services Smoke test entire system
  • 11. TESTING WEB APPs & APIs Deployment testing Containers & VMs Continuous integration & delivery Ability to switch from test to production with the flip of a switch (DNS)
  • 12. TESTING WEB APPs & APIs DEMO Hart - medical information software
  • 13. TESTING WEB APPs & APIs DEMO: UI Testing Test as a user through the browser. Manually, then automate. Tools: Javascript Mocha (BDD test framework) Selenium (Webdriver.io) Sauce Labs (Cloud devices)
  • 14. TESTING WEB APPs & APIs DEMO: API Testing Test via the REST API Manually using Postman, then automate Tools: Javascript Cucumber (BDD test framework) Postman (Google Chrome plugin) Unirest (HTTP library)
  • 15. TESTING WEB APPs & APIs Confidence Use continuous integration to: Run tests after every build Run tests after deployment to every environment Benefits: Quicker discovery of issues More time for manual exploratory testing Release changes on demand Roll back production issues immediately

Editor's Notes

  1. ------------ Introduction ---------- Main point: Greeting and credentials. Goals: positive feeling, personal connection ---------- Hi, I’m Aaron Evans. I've been testing software for about 15 years. Except for that period where I quit and moved to Fiji and ended up sailing around the South Pacific. I have my own test consulting company "One Shore" and “fijiaaron” is my twitter handle and blog name which stems from those days. My specialty is test automation with open source tools. I’ve worked for both small startups and large enterprises and just about everything in between. I am excited to share how I do testing and would love to hear your feedback.
  2. ------------ Synopsis ------------ Main point: First a discussion, then a demonstration Goal: participants understand what to expect ------------ I’m going to talk about testing web applications. Specifically, I’m going to talk about testing “modern” web applications with reactive and responsive user interfaces communicating with RESTful web services. We’ll talk about the challenges and benefits of these “modern” apps and then dive in and explore testing a real live application via the browser interface and then the HTTP API. And then we will talk about the benefits of testing at each level. ------------ APPs and APIs ------------ Main point: What I mean by "web app" and "web API" Goal: participants understand what I mean by "app" and "API" ------------
  3. ------------ Modern vs Traditional ------------ Main point: Modern web application are different than traditional applications Goal: Get participants thinking about their own experience with testing modern web apps ------------ What are the differences between “modern” web applications and more traditional applications? What are the challenges we face testing modern web apps? What can we do to make it easier?
  4. ------------ Characteristics of modern web applications ------------ Main Point: Modern web applications have additional complexity which makes testing more challenging. Goal: understand what I mean by modern web applications ------------ Responsive layout - the presentation adapts to the display size and characteristics, whether on a laptop, tablet, or phone. Reactive user interface - client side rendering, DOM manipulation, AJAX calls,
  5. ------------ Testing Challenges ------------ Main point: Testing modern web applications is challenging Goal: participants are thinking about the complexity of testing modern web apps ------------ What challenges do we face testing…the user interface? web services? back end data sources? integration with external services? cloud deployments? ------------ Challenges ------------ Main point: We need to test the UI, the back end services, and the architecture / deployment Goal: participants have a sense of the complexity of testing modern apps ------------ Traditionally, web applications have been tested via the browser. Testers manually click around following scripts to verify functionality or exploring the app, trying to “break” it. And automation scripts, using tools such as Selenium or QTP exercised the application to perform functional regression testing. We still need to test the user interface, but we also have these separate entities -- these web services that act independently. But they don’t have a user interface to interact with. You need to drop down to a lower level and test them at the protocol layer -- HTTP. And because apps are deployed as a series of independent components - a web UI that is primarily client-side (but needs to be served from somewhere). All the associated libraries and assets (javascript, css, images) -- which might be served from a CDN somewhere completely beyond our control -- and then all the services that our app communicates with, and the data sources and services they communicate with -- ok, take a deep breath. My point is that there is too much to test at too many layers. And let's not forget the greater concern for security, greater need for scalability, faster agile development processes and need for better adaptability to change...
  6. --------- Solutions --------- But, there is some good news. Or at least it’s not all bad. You’ve heard of companies deploying multiple times per day, and not breaking anything. Or at least being able to roll back quickly with minimal user impact. Are these just myth? ------------ Solutions ------------ Main point: separation of concerns can make testing easier Goal: participants are hopeful about testing ------------ Because our app is separated into individual components, it can be easier to test the UI independently. We can also test functionality independent of the user interface, eliminating all sorts of problems including false positives from flaky UI tests and crashing browsers. API tests can run much faster than browser based tests. It does take some additional technical knowhow to understand HTTP but luckily there are tools that make working with APIs relatively easy. With help from DevOps and some continuous integration we can
  7. --------- UI Testing ---------- We still need to test the user interface. But we can’t rely on it as the primary test mechanism. It’s too slow, too brittle, and too diverse to be able to test every state, on every device configuration. We will concentrate on using the browser to do end-to-end tests, verifying user experience, business requirements, and visual testing. We will use the same familiar UI testing tools. In this case, Selenium / Webdriver and
  8. --------- UI Testing ---------- We still need to test the user interface. But we can’t rely on it as the primary test mechanism. It’s too slow, too brittle, and too diverse to be able to test every state, on every device configuration. We will concentrate on using the browser to do end-to-end tests, verifying user experience, business requirements, and visual testing. We will use the same familiar UI testing tools. In this case, Selenium / Webdriver and
  9. --------- The Back End --------- Luckily, there are tools available that help to make it fairly easy. And for consistency’s sake, with a little thought (and some good program design) we can write our API tests and UI tests in a way that many features can be tested interchangably using either the browser or by calling the API directly.
  10. -------- Testing Web APIs --------- We can use the APIs to verify the bulk of functionality. Calling APIs is faster, more reliable, and easier than browser automation. But it does require a higher level of technical acumen -- you need to understand the HTTP protocol and how your app works at that level to be able to test your APIs directly. Luckily, there are tools available that help to make it fairly easy. And for consistency’s sake, with a little thought (and some good program design) we can write our API tests and UI tests in a way that many features can be tested interchangably using either the browser or by calling the API directly.