SlideShare a Scribd company logo
Using REST and UI Testing
to Test an Ajax Web
Application
Presented by
Adam Sandman
Software Testing Professionals Conference
Spring 2018 | Newport Beach, CA
2 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018
Agenda
Presentation Tier of Modern Applications
 Page Lifecycle in an AJAX Web Application
Explanation of Testable Areas
Recommended Test Strategy
 Integrating DOM and REST Testing
Practical Tips and Tools
Questions
3 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018
Takeaways
1. The value of testing an application from multiple
architectural tiers
2. The benefits of combined testing of the User Interface and
REST services
3. Tools, techniques and processes you can use to test the
UI and REST services
Web Presentation Tier
Modern Frameworks and the AJAX Page Lifecycle
Typical 3-Tier Architecture
Traditional Web Applications
<html>
<head>…. </head>
<body>
<h1>Products</h1>
<table id=“prd” style=“….”>
…..
</table>
</body>
</html>
The AJAX Web Application Model
{
products: [
{ id: 1, name: “product 1” },
{ id: 2, name: “product 2” },
{ id: 3, name: “product 3” }
]
}
Possible Web Frameworks
 First Generation
 Prototype, Mootools, jQuery, ASP.NET AJAX, ExtJS, YUI, GWT
 Second Generation
 AngularJS 1.0, Knockout, Backbone, Handlebars, Ember, Mustache
 Latest Generation
 React
 Angular 2.0+
 Vue
React – Components & Virtual DOM
<Table
cancelClick={props.dataCancelEdit}
data={props.data}
deleteClick={props.dataDelete}
editClick={props.dataSetEdit}
editId={props.dataEditingId}
editChange={props.dataChange}
…
- html
- head
- body
- h1: “Products”
- table id: “prd” style: “….”
- tr
…
Angular
<h1>Products</h1>
<table>
<tr *ngFor=“let product of products”>
<td>
{{ product.name }}
</td>
</tr>
</table>
export class ProductsComponent
implements OnInit {
products: Product[];
ngOnInit() {
this.products = this.svc.getProds();
}
}
Testable Areas
OK So What Can We Test?
 JSON Data Returned from REST Calls
 Rendered Browser DOM
 JS Framework
 React
 Virtual DOM
 Component State
 Angular
 Components
 Services
13 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018
®
Test JSON Data Returned
Advantages
• Well defined API and data
structures – resilient
• Unit testing of key modules
• Fast to load in test data
• Not impacted by browser
speed or rendering quirks
Disadvantages
• Does not test the end user
experience
• No testing of any client side
business login, validation
• Does not validate rendering,
templating of JSON
14 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018
®
Test Rendered Browser DOM
Advantages
• Most realistic testing,
validates what the end user
experiences
• Finds issues due to browser
quirks, differences
• Can test for usability,
performance, responsive
design, etc.
Disadvantages
• Scenario testing only,
cannot test until entire page
is rendered
• Hard to test specific page
components in isolation
• Changes in DOM, can
potentially break tests –
need skill to write resilient
tests
15 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018
®
Test ReactJS Virtual DOM
Advantages
• Can test elements of the
rendered page without
needing the entire page
• Easier to test specific
components with varying
data sets
• Removes browser speed,
quirks from tests
Disadvantages
• Ignores browser differences
• Not full reflection of user
experience
• Changes to markup in
templates will break tests,
so not fully resilient
• Does not catch DOM-based
performance issues
16 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018
®
Test ReactJS Component State
Advantages
• Easier to test specific
components with varying
data sets
• Tests the client-side
business logic (vs. server-
side unit tests)
• Can test exception cases
• Resilient to most UI changes
Disadvantages
• Does not test rendering of
state/properties into HTML
• Tests tied directly to React,
limited reusability with
other JS frameworks
• Does not test end user
experience of application
Test Strategy & Practical Demo
18 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018
Sample Test Coverage
Browser DOM
Virtual DOM
UI “Component” Tests
REST JSON Tests
Server Side Unit Tests
Testing Breadth
Resilience vs. Realism
19 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018
Sample Application – DOM & REST
20 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018
Sample Application – ReactJS
http://www.libraryinformationsystem.org/react-js
21 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018
Sample Application – Angular JS
http://www.libraryinformationsystem.org/angular-1/
22 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018
See It In Action!
Tips and Tools
24 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018
Top Tools for REST Testing
Postman
SoapUI
Rapise
vREST
Parasoft
Groovy
25 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018
Top Tools for Browser DOM Testing
Selenium (WebDriver)
Rapise
Ranorex
TestComplete
Tricentis
HP UFT
Squish
26 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018
®
JS Framework Specific Tools
React
• Testing Component State
• TestUtils + Jasmine
• TestUtils + JEST
• TestUtils + Mocha
• Testing Virtual DOM
• Enzyme + Mocha
Angular
• Testing Services
• Jasmine
• Mocha
• Testing Components
• TestBed + Jasmine
• TestBed + Mocha
27 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018
Wrap Up
 Modern web applications are complex and hard to test
 You need to test each of the different tiers
 Some tiers are easier to test than others
 You need to carefully plan your testing to have the best
coverage of the tiers with least effort
Questions?
Thank you for attending this
workshop/session.
Please fill out an evaluation form.
Ad

Recommended

SpiraPlan Overview Presentation (2021)
SpiraPlan Overview Presentation (2021)
Inflectra
 
SpiraTest Overview Presentation (2019)
SpiraTest Overview Presentation (2019)
Inflectra
 
SpiraTest Overview Presentation (2021)
SpiraTest Overview Presentation (2021)
Inflectra
 
SpiraTeam Overview Presentation (2021)
SpiraTeam Overview Presentation (2021)
Inflectra
 
Spira Admin 1: Introduction
Spira Admin 1: Introduction
Inflectra
 
Don't Let Your Users be Your Testers - Lunch & Learn
Don't Let Your Users be Your Testers - Lunch & Learn
Adam Sandman
 
KronoDesk - On-Premise Help Desk Solution for Regulated Industries
KronoDesk - On-Premise Help Desk Solution for Regulated Industries
Inflectra
 
SpiraTest Integrating with Jira Webinar
SpiraTest Integrating with Jira Webinar
Adam Sandman
 
TaraVault Overview Presentation (2021)
TaraVault Overview Presentation (2021)
Inflectra
 
KronoDesk Overview Presentation (2019)
KronoDesk Overview Presentation (2019)
Inflectra
 
Inflectra Rapise Implementation Quick Start Package
Inflectra Rapise Implementation Quick Start Package
Inflectra
 
Inflectra Overview Presentation (2022)
Inflectra Overview Presentation (2022)
Inflectra
 
Developer 1: Workflows And Code Management
Developer 1: Workflows And Code Management
Inflectra
 
Agile Application Lifecycle Management (ALM) with Inflectra
Agile Application Lifecycle Management (ALM) with Inflectra
Adam Sandman
 
KronoDesk Overview Presentation (2021)
KronoDesk Overview Presentation (2021)
Inflectra
 
The Future Of ALM - All Silos Are Banned
The Future Of ALM - All Silos Are Banned
Inflectra
 
From Manual To Automated Software Testing - A Webinar Presentation
From Manual To Automated Software Testing - A Webinar Presentation
Inflectra
 
Rapise Overview Presentation (2021)
Rapise Overview Presentation (2021)
Inflectra
 
Inflectra Agile Alliance Agile2015 Conference
Inflectra Agile Alliance Agile2015 Conference
Adam Sandman
 
Rapid Web UI Test Automation with Rapise
Rapid Web UI Test Automation with Rapise
Adam Sandman
 
Spira Test Overview Presentation
Spira Test Overview Presentation
Adam Sandman
 
Inflectra 2017 Mannheim User Summit
Inflectra 2017 Mannheim User Summit
Adam Sandman
 
Testing 2: Advanced Test Management
Testing 2: Advanced Test Management
Inflectra
 
Rapise Overview Presentation (2019)
Rapise Overview Presentation (2019)
Inflectra
 
Transform Software Testing and Quality with the Neotys-Inflectra Platform
Transform Software Testing and Quality with the Neotys-Inflectra Platform
Inflectra
 
Rapise Overview Presentation
Rapise Overview Presentation
Adam Sandman
 
SpiraTest Overview Presentation (2022)
SpiraTest Overview Presentation (2022)
Inflectra
 
SQADAYS 21 Moscow 2017
SQADAYS 21 Moscow 2017
Adam Sandman
 
Arquillian: Effective tests from the client to the server
Arquillian: Effective tests from the client to the server
Lukáš Fryč
 
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
hemasubbu08
 

More Related Content

What's hot (20)

TaraVault Overview Presentation (2021)
TaraVault Overview Presentation (2021)
Inflectra
 
KronoDesk Overview Presentation (2019)
KronoDesk Overview Presentation (2019)
Inflectra
 
Inflectra Rapise Implementation Quick Start Package
Inflectra Rapise Implementation Quick Start Package
Inflectra
 
Inflectra Overview Presentation (2022)
Inflectra Overview Presentation (2022)
Inflectra
 
Developer 1: Workflows And Code Management
Developer 1: Workflows And Code Management
Inflectra
 
Agile Application Lifecycle Management (ALM) with Inflectra
Agile Application Lifecycle Management (ALM) with Inflectra
Adam Sandman
 
KronoDesk Overview Presentation (2021)
KronoDesk Overview Presentation (2021)
Inflectra
 
The Future Of ALM - All Silos Are Banned
The Future Of ALM - All Silos Are Banned
Inflectra
 
From Manual To Automated Software Testing - A Webinar Presentation
From Manual To Automated Software Testing - A Webinar Presentation
Inflectra
 
Rapise Overview Presentation (2021)
Rapise Overview Presentation (2021)
Inflectra
 
Inflectra Agile Alliance Agile2015 Conference
Inflectra Agile Alliance Agile2015 Conference
Adam Sandman
 
Rapid Web UI Test Automation with Rapise
Rapid Web UI Test Automation with Rapise
Adam Sandman
 
Spira Test Overview Presentation
Spira Test Overview Presentation
Adam Sandman
 
Inflectra 2017 Mannheim User Summit
Inflectra 2017 Mannheim User Summit
Adam Sandman
 
Testing 2: Advanced Test Management
Testing 2: Advanced Test Management
Inflectra
 
Rapise Overview Presentation (2019)
Rapise Overview Presentation (2019)
Inflectra
 
Transform Software Testing and Quality with the Neotys-Inflectra Platform
Transform Software Testing and Quality with the Neotys-Inflectra Platform
Inflectra
 
Rapise Overview Presentation
Rapise Overview Presentation
Adam Sandman
 
SpiraTest Overview Presentation (2022)
SpiraTest Overview Presentation (2022)
Inflectra
 
SQADAYS 21 Moscow 2017
SQADAYS 21 Moscow 2017
Adam Sandman
 
TaraVault Overview Presentation (2021)
TaraVault Overview Presentation (2021)
Inflectra
 
KronoDesk Overview Presentation (2019)
KronoDesk Overview Presentation (2019)
Inflectra
 
Inflectra Rapise Implementation Quick Start Package
Inflectra Rapise Implementation Quick Start Package
Inflectra
 
Inflectra Overview Presentation (2022)
Inflectra Overview Presentation (2022)
Inflectra
 
Developer 1: Workflows And Code Management
Developer 1: Workflows And Code Management
Inflectra
 
Agile Application Lifecycle Management (ALM) with Inflectra
Agile Application Lifecycle Management (ALM) with Inflectra
Adam Sandman
 
KronoDesk Overview Presentation (2021)
KronoDesk Overview Presentation (2021)
Inflectra
 
The Future Of ALM - All Silos Are Banned
The Future Of ALM - All Silos Are Banned
Inflectra
 
From Manual To Automated Software Testing - A Webinar Presentation
From Manual To Automated Software Testing - A Webinar Presentation
Inflectra
 
Rapise Overview Presentation (2021)
Rapise Overview Presentation (2021)
Inflectra
 
Inflectra Agile Alliance Agile2015 Conference
Inflectra Agile Alliance Agile2015 Conference
Adam Sandman
 
Rapid Web UI Test Automation with Rapise
Rapid Web UI Test Automation with Rapise
Adam Sandman
 
Spira Test Overview Presentation
Spira Test Overview Presentation
Adam Sandman
 
Inflectra 2017 Mannheim User Summit
Inflectra 2017 Mannheim User Summit
Adam Sandman
 
Testing 2: Advanced Test Management
Testing 2: Advanced Test Management
Inflectra
 
Rapise Overview Presentation (2019)
Rapise Overview Presentation (2019)
Inflectra
 
Transform Software Testing and Quality with the Neotys-Inflectra Platform
Transform Software Testing and Quality with the Neotys-Inflectra Platform
Inflectra
 
Rapise Overview Presentation
Rapise Overview Presentation
Adam Sandman
 
SpiraTest Overview Presentation (2022)
SpiraTest Overview Presentation (2022)
Inflectra
 
SQADAYS 21 Moscow 2017
SQADAYS 21 Moscow 2017
Adam Sandman
 

Similar to Using REST and UI Testing to Test Ajax Web Applications (20)

Arquillian: Effective tests from the client to the server
Arquillian: Effective tests from the client to the server
Lukáš Fryč
 
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
hemasubbu08
 
Tools. Techniques. Trouble?
Tools. Techniques. Trouble?
Testplant
 
Test Automation Framework Designs
Test Automation Framework Designs
Test Automaton
 
Writing better tests for your java script app
Writing better tests for your java script app
JakeGinnivan
 
Testing NodeJS, REST APIs and MongoDB with UFT
Testing NodeJS, REST APIs and MongoDB with UFT
Ori Bendet
 
Webapp Automation Testing of performance marketing and media platform
Webapp Automation Testing of performance marketing and media platform
Knoldus Inc.
 
Java script unit testing
Java script unit testing
Mats Bryntse
 
Designing for the internet - Page Objects for the Real World
Designing for the internet - Page Objects for the Real World
Qualitest
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
zjhamm304
 
Test automation proposal
Test automation proposal
Mihai-Cristian Fratila
 
Crowd Testing Framework : Mobile Application Testing
Crowd Testing Framework : Mobile Application Testing
momoahmedabad
 
Functional Tests. PHP Unconf 2016
Functional Tests. PHP Unconf 2016
Vladislav Fedorischev
 
Testing Best Practices
Testing Best Practices
Axway Appcelerator
 
How to go about testing in React?
How to go about testing in React?
Lisa Gagarina
 
Test Automation Framework Designs
Test Automation Framework Designs
Sauce Labs
 
Testing Ext JS and Sencha Touch
Testing Ext JS and Sencha Touch
Mats Bryntse
 
Next generation software testing trends
Next generation software testing trends
Arun Kulkarni
 
Web application automated testing types and tools
Web application automated testing types and tools
TestingXperts
 
Brightcove presentation on Automated Testing
Brightcove presentation on Automated Testing
MassTLC
 
Arquillian: Effective tests from the client to the server
Arquillian: Effective tests from the client to the server
Lukáš Fryč
 
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
hemasubbu08
 
Tools. Techniques. Trouble?
Tools. Techniques. Trouble?
Testplant
 
Test Automation Framework Designs
Test Automation Framework Designs
Test Automaton
 
Writing better tests for your java script app
Writing better tests for your java script app
JakeGinnivan
 
Testing NodeJS, REST APIs and MongoDB with UFT
Testing NodeJS, REST APIs and MongoDB with UFT
Ori Bendet
 
Webapp Automation Testing of performance marketing and media platform
Webapp Automation Testing of performance marketing and media platform
Knoldus Inc.
 
Java script unit testing
Java script unit testing
Mats Bryntse
 
Designing for the internet - Page Objects for the Real World
Designing for the internet - Page Objects for the Real World
Qualitest
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
zjhamm304
 
Crowd Testing Framework : Mobile Application Testing
Crowd Testing Framework : Mobile Application Testing
momoahmedabad
 
How to go about testing in React?
How to go about testing in React?
Lisa Gagarina
 
Test Automation Framework Designs
Test Automation Framework Designs
Sauce Labs
 
Testing Ext JS and Sencha Touch
Testing Ext JS and Sencha Touch
Mats Bryntse
 
Next generation software testing trends
Next generation software testing trends
Arun Kulkarni
 
Web application automated testing types and tools
Web application automated testing types and tools
TestingXperts
 
Brightcove presentation on Automated Testing
Brightcove presentation on Automated Testing
MassTLC
 
Ad

More from Adam Sandman (20)

Rapise - Introduction to Powerful New Rapise 6.0
Rapise - Introduction to Powerful New Rapise 6.0
Adam Sandman
 
Alternatives to the Micro Focus QA Suite
Alternatives to the Micro Focus QA Suite
Adam Sandman
 
Codeless Test Automation - Myth or Magic
Codeless Test Automation - Myth or Magic
Adam Sandman
 
5 Principles to Managing Your Application Lifecycle with SpiraTeam
5 Principles to Managing Your Application Lifecycle with SpiraTeam
Adam Sandman
 
Ensuring Project Success with SpiraTeam and Rapise from Inflectra pta - short
Ensuring Project Success with SpiraTeam and Rapise from Inflectra pta - short
Adam Sandman
 
Inflectra User Summit in Mannheim, Germany
Inflectra User Summit in Mannheim, Germany
Adam Sandman
 
Microsoft Dynamics AX- Robotic Process Automation (RPA) with Rapise
Microsoft Dynamics AX- Robotic Process Automation (RPA) with Rapise
Adam Sandman
 
Microsoft Dynamics NAV - Robotic Process Automation (RPA) with Rapise
Microsoft Dynamics NAV - Robotic Process Automation (RPA) with Rapise
Adam Sandman
 
Microsoft Dynamics NAV - Robotic Process Automation (RPA) with Rapise
Microsoft Dynamics NAV - Robotic Process Automation (RPA) with Rapise
Adam Sandman
 
SpiraTest adds Quality & Test Management to Jira
SpiraTest adds Quality & Test Management to Jira
Adam Sandman
 
Real Testing Scenario Strategy - The Role of Exploratory Testing
Real Testing Scenario Strategy - The Role of Exploratory Testing
Adam Sandman
 
Real Testing Scenario Strategy - Bringing It All Together For Success
Real Testing Scenario Strategy - Bringing It All Together For Success
Adam Sandman
 
Agile in Software Testing - The Government Edition
Agile in Software Testing - The Government Edition
Adam Sandman
 
Software Development & Testing Challenges in Finance & Banking
Software Development & Testing Challenges in Finance & Banking
Adam Sandman
 
Inflectra User Summit California 2018 - SpiraTeam, SpiraTest, SpiraPlan, Rapi...
Inflectra User Summit California 2018 - SpiraTeam, SpiraTest, SpiraPlan, Rapi...
Adam Sandman
 
Inflectra Enterprise Agile Planning Briefing for Gartner 2018
Inflectra Enterprise Agile Planning Briefing for Gartner 2018
Adam Sandman
 
Testing & Compliance Challenges for Healthcare in the Cloud
Testing & Compliance Challenges for Healthcare in the Cloud
Adam Sandman
 
Testing Microsoft Dynamics NAV with Rapise
Testing Microsoft Dynamics NAV with Rapise
Adam Sandman
 
Inflectra Partner Summit 2017 Q4 - Presentation
Inflectra Partner Summit 2017 Q4 - Presentation
Adam Sandman
 
Testing a Complex ERP Application Using a Data-Driven Framework
Testing a Complex ERP Application Using a Data-Driven Framework
Adam Sandman
 
Rapise - Introduction to Powerful New Rapise 6.0
Rapise - Introduction to Powerful New Rapise 6.0
Adam Sandman
 
Alternatives to the Micro Focus QA Suite
Alternatives to the Micro Focus QA Suite
Adam Sandman
 
Codeless Test Automation - Myth or Magic
Codeless Test Automation - Myth or Magic
Adam Sandman
 
5 Principles to Managing Your Application Lifecycle with SpiraTeam
5 Principles to Managing Your Application Lifecycle with SpiraTeam
Adam Sandman
 
Ensuring Project Success with SpiraTeam and Rapise from Inflectra pta - short
Ensuring Project Success with SpiraTeam and Rapise from Inflectra pta - short
Adam Sandman
 
Inflectra User Summit in Mannheim, Germany
Inflectra User Summit in Mannheim, Germany
Adam Sandman
 
Microsoft Dynamics AX- Robotic Process Automation (RPA) with Rapise
Microsoft Dynamics AX- Robotic Process Automation (RPA) with Rapise
Adam Sandman
 
Microsoft Dynamics NAV - Robotic Process Automation (RPA) with Rapise
Microsoft Dynamics NAV - Robotic Process Automation (RPA) with Rapise
Adam Sandman
 
Microsoft Dynamics NAV - Robotic Process Automation (RPA) with Rapise
Microsoft Dynamics NAV - Robotic Process Automation (RPA) with Rapise
Adam Sandman
 
SpiraTest adds Quality & Test Management to Jira
SpiraTest adds Quality & Test Management to Jira
Adam Sandman
 
Real Testing Scenario Strategy - The Role of Exploratory Testing
Real Testing Scenario Strategy - The Role of Exploratory Testing
Adam Sandman
 
Real Testing Scenario Strategy - Bringing It All Together For Success
Real Testing Scenario Strategy - Bringing It All Together For Success
Adam Sandman
 
Agile in Software Testing - The Government Edition
Agile in Software Testing - The Government Edition
Adam Sandman
 
Software Development & Testing Challenges in Finance & Banking
Software Development & Testing Challenges in Finance & Banking
Adam Sandman
 
Inflectra User Summit California 2018 - SpiraTeam, SpiraTest, SpiraPlan, Rapi...
Inflectra User Summit California 2018 - SpiraTeam, SpiraTest, SpiraPlan, Rapi...
Adam Sandman
 
Inflectra Enterprise Agile Planning Briefing for Gartner 2018
Inflectra Enterprise Agile Planning Briefing for Gartner 2018
Adam Sandman
 
Testing & Compliance Challenges for Healthcare in the Cloud
Testing & Compliance Challenges for Healthcare in the Cloud
Adam Sandman
 
Testing Microsoft Dynamics NAV with Rapise
Testing Microsoft Dynamics NAV with Rapise
Adam Sandman
 
Inflectra Partner Summit 2017 Q4 - Presentation
Inflectra Partner Summit 2017 Q4 - Presentation
Adam Sandman
 
Testing a Complex ERP Application Using a Data-Driven Framework
Testing a Complex ERP Application Using a Data-Driven Framework
Adam Sandman
 
Ad

Recently uploaded (20)

GDG Douglas - Google AI Agents: Your Next Intern?
GDG Douglas - Google AI Agents: Your Next Intern?
felipeceotto
 
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
BradBedford3
 
SAP PM Module Level-IV Training Complete.ppt
SAP PM Module Level-IV Training Complete.ppt
MuhammadShaheryar36
 
Reimagining Software Development and DevOps with Agentic AI
Reimagining Software Development and DevOps with Agentic AI
Maxim Salnikov
 
About Certivo | Intelligent Compliance Solutions for Global Regulatory Needs
About Certivo | Intelligent Compliance Solutions for Global Regulatory Needs
certivoai
 
OpenTelemetry 101 Cloud Native Barcelona
OpenTelemetry 101 Cloud Native Barcelona
Imma Valls Bernaus
 
Migrating to Azure Cosmos DB the Right Way
Migrating to Azure Cosmos DB the Right Way
Alexander (Alex) Komyagin
 
DevOps for AI: running LLMs in production with Kubernetes and KubeFlow
DevOps for AI: running LLMs in production with Kubernetes and KubeFlow
Aarno Aukia
 
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Technologies
 
How the US Navy Approaches DevSecOps with Raise 2.0
How the US Navy Approaches DevSecOps with Raise 2.0
Anchore
 
FME as an Orchestration Tool - Peak of Data & AI 2025
FME as an Orchestration Tool - Peak of Data & AI 2025
Safe Software
 
Artificial Intelligence Workloads and Data Center Management
Artificial Intelligence Workloads and Data Center Management
SandeepKS52
 
Zoneranker’s Digital marketing solutions
Zoneranker’s Digital marketing solutions
reenashriee
 
Integrating Survey123 and R&H Data Using FME
Integrating Survey123 and R&H Data Using FME
Safe Software
 
Porting Qt 5 QML Modules to Qt 6 Webinar
Porting Qt 5 QML Modules to Qt 6 Webinar
ICS
 
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
WSO2
 
dp-700 exam questions sample docume .pdf
dp-700 exam questions sample docume .pdf
pravkumarbiz
 
wAIred_RabobankIgniteSession_12062025.pptx
wAIred_RabobankIgniteSession_12062025.pptx
SimonedeGijt
 
Advanced Token Development - Decentralized Innovation
Advanced Token Development - Decentralized Innovation
arohisinghas720
 
Smadav Pro 2025 Rev 15.4 Crack Full Version With Registration Key
Smadav Pro 2025 Rev 15.4 Crack Full Version With Registration Key
joybepari360
 
GDG Douglas - Google AI Agents: Your Next Intern?
GDG Douglas - Google AI Agents: Your Next Intern?
felipeceotto
 
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
Milwaukee Marketo User Group June 2025 - Optimize and Enhance Efficiency - Sm...
BradBedford3
 
SAP PM Module Level-IV Training Complete.ppt
SAP PM Module Level-IV Training Complete.ppt
MuhammadShaheryar36
 
Reimagining Software Development and DevOps with Agentic AI
Reimagining Software Development and DevOps with Agentic AI
Maxim Salnikov
 
About Certivo | Intelligent Compliance Solutions for Global Regulatory Needs
About Certivo | Intelligent Compliance Solutions for Global Regulatory Needs
certivoai
 
OpenTelemetry 101 Cloud Native Barcelona
OpenTelemetry 101 Cloud Native Barcelona
Imma Valls Bernaus
 
DevOps for AI: running LLMs in production with Kubernetes and KubeFlow
DevOps for AI: running LLMs in production with Kubernetes and KubeFlow
Aarno Aukia
 
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Technologies
 
How the US Navy Approaches DevSecOps with Raise 2.0
How the US Navy Approaches DevSecOps with Raise 2.0
Anchore
 
FME as an Orchestration Tool - Peak of Data & AI 2025
FME as an Orchestration Tool - Peak of Data & AI 2025
Safe Software
 
Artificial Intelligence Workloads and Data Center Management
Artificial Intelligence Workloads and Data Center Management
SandeepKS52
 
Zoneranker’s Digital marketing solutions
Zoneranker’s Digital marketing solutions
reenashriee
 
Integrating Survey123 and R&H Data Using FME
Integrating Survey123 and R&H Data Using FME
Safe Software
 
Porting Qt 5 QML Modules to Qt 6 Webinar
Porting Qt 5 QML Modules to Qt 6 Webinar
ICS
 
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
Application Modernization with Choreo - The AI-Native Internal Developer Plat...
WSO2
 
dp-700 exam questions sample docume .pdf
dp-700 exam questions sample docume .pdf
pravkumarbiz
 
wAIred_RabobankIgniteSession_12062025.pptx
wAIred_RabobankIgniteSession_12062025.pptx
SimonedeGijt
 
Advanced Token Development - Decentralized Innovation
Advanced Token Development - Decentralized Innovation
arohisinghas720
 
Smadav Pro 2025 Rev 15.4 Crack Full Version With Registration Key
Smadav Pro 2025 Rev 15.4 Crack Full Version With Registration Key
joybepari360
 

Using REST and UI Testing to Test Ajax Web Applications

  • 1. Using REST and UI Testing to Test an Ajax Web Application Presented by Adam Sandman Software Testing Professionals Conference Spring 2018 | Newport Beach, CA
  • 2. 2 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018 Agenda Presentation Tier of Modern Applications  Page Lifecycle in an AJAX Web Application Explanation of Testable Areas Recommended Test Strategy  Integrating DOM and REST Testing Practical Tips and Tools Questions
  • 3. 3 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018 Takeaways 1. The value of testing an application from multiple architectural tiers 2. The benefits of combined testing of the User Interface and REST services 3. Tools, techniques and processes you can use to test the UI and REST services
  • 4. Web Presentation Tier Modern Frameworks and the AJAX Page Lifecycle
  • 6. Traditional Web Applications <html> <head>…. </head> <body> <h1>Products</h1> <table id=“prd” style=“….”> ….. </table> </body> </html>
  • 7. The AJAX Web Application Model { products: [ { id: 1, name: “product 1” }, { id: 2, name: “product 2” }, { id: 3, name: “product 3” } ] }
  • 8. Possible Web Frameworks  First Generation  Prototype, Mootools, jQuery, ASP.NET AJAX, ExtJS, YUI, GWT  Second Generation  AngularJS 1.0, Knockout, Backbone, Handlebars, Ember, Mustache  Latest Generation  React  Angular 2.0+  Vue
  • 9. React – Components & Virtual DOM <Table cancelClick={props.dataCancelEdit} data={props.data} deleteClick={props.dataDelete} editClick={props.dataSetEdit} editId={props.dataEditingId} editChange={props.dataChange} … - html - head - body - h1: “Products” - table id: “prd” style: “….” - tr …
  • 10. Angular <h1>Products</h1> <table> <tr *ngFor=“let product of products”> <td> {{ product.name }} </td> </tr> </table> export class ProductsComponent implements OnInit { products: Product[]; ngOnInit() { this.products = this.svc.getProds(); } }
  • 12. OK So What Can We Test?  JSON Data Returned from REST Calls  Rendered Browser DOM  JS Framework  React  Virtual DOM  Component State  Angular  Components  Services
  • 13. 13 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018 ® Test JSON Data Returned Advantages • Well defined API and data structures – resilient • Unit testing of key modules • Fast to load in test data • Not impacted by browser speed or rendering quirks Disadvantages • Does not test the end user experience • No testing of any client side business login, validation • Does not validate rendering, templating of JSON
  • 14. 14 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018 ® Test Rendered Browser DOM Advantages • Most realistic testing, validates what the end user experiences • Finds issues due to browser quirks, differences • Can test for usability, performance, responsive design, etc. Disadvantages • Scenario testing only, cannot test until entire page is rendered • Hard to test specific page components in isolation • Changes in DOM, can potentially break tests – need skill to write resilient tests
  • 15. 15 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018 ® Test ReactJS Virtual DOM Advantages • Can test elements of the rendered page without needing the entire page • Easier to test specific components with varying data sets • Removes browser speed, quirks from tests Disadvantages • Ignores browser differences • Not full reflection of user experience • Changes to markup in templates will break tests, so not fully resilient • Does not catch DOM-based performance issues
  • 16. 16 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018 ® Test ReactJS Component State Advantages • Easier to test specific components with varying data sets • Tests the client-side business logic (vs. server- side unit tests) • Can test exception cases • Resilient to most UI changes Disadvantages • Does not test rendering of state/properties into HTML • Tests tied directly to React, limited reusability with other JS frameworks • Does not test end user experience of application
  • 17. Test Strategy & Practical Demo
  • 18. 18 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018 Sample Test Coverage Browser DOM Virtual DOM UI “Component” Tests REST JSON Tests Server Side Unit Tests Testing Breadth Resilience vs. Realism
  • 19. 19 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018 Sample Application – DOM & REST
  • 20. 20 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018 Sample Application – ReactJS http://www.libraryinformationsystem.org/react-js
  • 21. 21 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018 Sample Application – Angular JS http://www.libraryinformationsystem.org/angular-1/
  • 22. 22 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018 See It In Action!
  • 24. 24 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018 Top Tools for REST Testing Postman SoapUI Rapise vREST Parasoft Groovy
  • 25. 25 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018 Top Tools for Browser DOM Testing Selenium (WebDriver) Rapise Ranorex TestComplete Tricentis HP UFT Squish
  • 26. 26 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018 ® JS Framework Specific Tools React • Testing Component State • TestUtils + Jasmine • TestUtils + JEST • TestUtils + Mocha • Testing Virtual DOM • Enzyme + Mocha Angular • Testing Services • Jasmine • Mocha • Testing Components • TestBed + Jasmine • TestBed + Mocha
  • 27. 27 | 4/15/2018 STP | Software Test Professionals Conference | Spring 2018 Wrap Up  Modern web applications are complex and hard to test  You need to test each of the different tiers  Some tiers are easier to test than others  You need to carefully plan your testing to have the best coverage of the tiers with least effort
  • 29. Thank you for attending this workshop/session. Please fill out an evaluation form.