SlideShare una empresa de Scribd logo
1 de 67
Descargar para leer sin conexión
Eradicate Flaky Tests
@BagmarAnand
Anand Bagmar
Software Quality Evangelist
Essence Of Testing
@BagmarAnand
About Me
Typical Architecture
@BagmarAnand
@BagmarAnand
Internet Internal
B2C
App
Product DB
DBMS
B2B
App
Caching System
Elastic Search
Authentication
Gateway
Service 3
Service 4
Service 7
Service 5
Service 6
Admin
User DB
Outgoing
Notification
Onboarding
Event
Consumer
Order DB
Reporting System
Admin
Portal
Support
Msg Q
Direct API
Service 2
Notification
Service 1
Event
Processor
Service 8
Payment Gateway
Credit System
Master Product
Warehouse
Royalty system
Offers
….
….
….
Approach for
API Workflow & E2E Test
Execution
@BagmarAnand
API
workflow
Tests
E2E
Functional
UI Tests
@BagmarAnand
Internet Internal
B2C
App
Product DB
DBMS
B2B
App
Caching System
Elastic Search
Authentication
Gateway
Service 3
Service 4
Service 7
Service 5
Service 6
Admin
User DB
Outgoing
Notification
Onboarding
Event
Consumer
Order DB
Reporting System
Admin
Portal
Support
Msg Q
Direct API
Service 2
Notification
Service 1
Event
Processor
Service 8
Payment Gateway
Credit System
Master Product
Warehouse
Royalty system
Offers
….
….
….
• Long running scenarios
• Slow feedback
Challenges of E2E Test Automation
@BagmarAnand
• Limitations of automatable scenarios
• Error case / Edge case handling from dependent systems
• Triggers from external systems
Challenges of E2E Test Automation
@BagmarAnand
• Pain of Cross Browser execution
• Slow, special handling for browsers, infrastructure cost /
maintenance
Challenges of E2E Test Automation
@BagmarAnand
• Flaky Tests
Challenges of E2E Test Automation
@BagmarAnand
Why are Tests Flaky?
@BagmarAnand
• Brittle / Flaky tests
• UI changes
• Downstream dependencies
• Data dependencies
• Network (speed) fluctuations
Challenges of E2E Test Automation
@BagmarAnand
Solutions / Way forward
@BagmarAnand
• Reduce number of UI tests
• Remove external dependencies via Intelligent Virtualization
• Use Visual Assertions instead of Functional Assertions
How to Reduce Flakiness in Tests?
@BagmarAnand
#1
Reduce the number of UI Tests
@BagmarAnand
Product Quality
@BagmarAnand
#2
Intelligent Virtualization to
Eradicate Dependencies
@BagmarAnand
Typical Architecture
@BagmarAnand
@BagmarAnand
Internet Internal
B2C
App
Product DB
DBMS
B2B
App
Caching System
Elastic Search
Authentication
Gateway
Service 3
Service 4
Service 7
Service 5
Service 6
Admin
User DB
Outgoing
Notification
Onboarding
Event
Consumer
Order DB
Reporting System
Admin
Portal
Support
Msg Q
Direct API
Service 2
Notification
Service 1
Event
Processor
Service 8
Payment Gateway
Credit System
Master Product
Warehouse
Royalty system
Offers
….
….
….
Approach for API Workflow &
E2E Test Automation
@BagmarAnand
API
workflow
Tests
E2E
Functional
UI Tests
@BagmarAnand
Internet Internal
B2C
App
Product DB
DBMS
B2B
App
Caching System
Elastic Search
Authentication
Gateway
Service 3
Service 4
Service 7
Service 5
Service 6
Admin
User DB
Outgoing
Notification
Onboarding
Event
Consumer
Order DB
Reporting System
Admin
Portal
Support
Msg Q
Direct API
Service 2
Notification
Service 1
Event
Processor
Service 8
Payment Gateway
Credit System
Master Product
Warehouse
Royalty system
Offers
….
….
….
Example
@BagmarAnand
@BagmarAnand
Step #1:
• Test calls Service 2
Step #2:
• Service 2 calls the external
service, which may
(unexpectedly) take long
time to respond
Step #3:
• Service 2 gets an error back
from external service
• Returns an error to the test
Step #4:
• Test fails because of
external service
• We may get
incorrect error as
well!
Test Scenario
Challenge!
Scenarios having external
dependencies are flaky
@BagmarAnand
Solution
@BagmarAnand
Stub it out using Specmatic!
@BagmarAnand
specmatic.in github.com/znsio/Specmatic
• Inculcates Contract Driven Development
• Supports OpenAPI Spec
• Executable Contract spec
• Defines http method, path, header format, payload format, query parameter format, form field payload format
• Supports JSON, XML data formats
• Supports Kafka
• Dynamically generates and executes contract tests
• Apt for service virtualization
• Compares contracts to ascertain backward compatibility
• Manages contracts through versioning
• Integrates with CI/CD
Specmatic – Contract Driven Development
@BagmarAnand
• Decouples the ”producers” and “consumers”, with confidence!
Use Specmatic as part of Test execution
@BagmarAnand
Step #3:
• Test calls Service 2
Step #4:
• Service 2 calls the
stubbed external service
Step #2:
• Test sets expectations on Specmatic for
specific stubbed endpoint
• Http POST call on Specmatic server with
exact request & response as json payload
Step #5:
• If request matches set expectation, corresponding set
response is returned in response
• Service 2 processes response and responds to test
appropriately
Step #6:
• Test asserts on the
received response
• Test passes
Step #1. Specmatic as a Stub Server in your Test
Environment
• Specmatic Server is started in the Stub mode in
the Environment
• External services are stubbed out
• Internal services point to Specmatic stubbed-
endpoints instead of real external endpoints
Use Specmatic as part of Test execution
@BagmarAnand
Step #3:
• Test calls Service 2
Step #4:
• Service 2 calls the
stubbed external service
Step #2:
• Test sets expectations on Specmatic for
specific stubbed endpoint
• Http POST call on Specmatic server with
exact request & response as json payload
Step #5:
• If request matches set expectation, corresponding set
response is returned in response
• Service 2 processes response and responds to test
appropriately
Step #6:
• Test asserts on the
received response
• Test passes
Step #1. Specmatic as a Stub Server
• Specmatic Server is started in the Stub mode in
the Environment
• External services are stubbed out
• Internal services point to Specmatic stubbed-
endpoints instead of real external endpoints
Allows to simulate positive,
negative, edge-case responses –
allowing you to test your
implementation logic
#3
Visual Assertions instead of
Functional Assertions
@BagmarAnand
Automation
@BagmarAnand
Bugs still escape
@BagmarAnand
Traditional automated testing frameworks are not built for modern apps
Bugs still Escape
@BagmarAnand
Bugs still Escape
@BagmarAnand
Bugs still Escape
@BagmarAnand
Bugs still Escape
@BagmarAnand
@BagmarAnand
Bugs escape because our
approach to testing is incorrect
@BagmarAnand
@BagmarAnand
Mundane
Error prone
Tedious
Running against Time
Approach to Testing is Incorrect
40
@BagmarAnand
Spot the Difference!
41
@BagmarAnand
Spot the Difference!
But, we are testing real
software products
@BagmarAnand
43
@BagmarAnand
Text, Images, Responsive-pages,
Form-factors, User-experience
Product has Context!
44
@BagmarAnand
Spot the Difference!
45
@BagmarAnand
Spot the Difference!
@BagmarAnand
The Way Forward!
@BagmarAnand
Computer Vision
that replicates
the human eye and brain
@BagmarAnand
Visual AI
@BagmarAnand
Visual AI detects bugs, not browser render
diffs
@BagmarAnand
Pixel comparisons waste time with false
positives
Visual AI should work across all Platforms
PDF, Web, Native Mobile
@BagmarAnand
Perfection Across All Screens, Browsers and
Viewports
Tests run local - Applitools
SDKs available for all major
testing frameworks DOM & CSS sent to
Applitools Ultrafast Grid
Applitools Eyes
Visual AI analysis
Ultrafast Grid renders
DOM snapshots in parallel
Login to Eyes to
view test results
53
.
Firewall
Example
@BagmarAnand
@BagmarAnand
Application under test
Login
Get list of users
Edit User
Test Scenario
Login 1
Get list of users 2
Internet
Return dynamic
list of users
3
4
Edit User 5
Verify User
Details
6
Return dynamic
list of users
Test Scenario
Example Scenario
Website with rest services in
backend hosted on local machine
Login
Get list of users
Edit User
Test Scenario
Functional
& Visual
Assertions
using
Applitools
Login 1
Get list of users
3
Verify User
Details
7
Edit User
6
4
5
Test Environment
Return dynamic
list of users
Stubbed
using
Specmatic
Static
Random
Dynamic
Expectations
@BagmarAnand
2. Test sets “dynamic
expectation” in context
of the scenario
Example Scenario using Specmatic
I
n
t
e
r
n
e
t
@BagmarAnand
Example Scenario using Specmatic
Website with rest services in
backend hosted on local machine
Login
Get list of users
Edit User
Test Scenario
Functional
& Visual
Assertions
using
Applitools
Login 1
Get list of users
3
Verify User
Details
7
Edit User
6
4
5
Test Environment
Return dynamic
list of users
Stubbed
using
Specmatic
Static
Random
Dynamic
Expectations
2. Test sets “dynamic
expectation” in context
of the scenario
I
n
t
e
r
n
e
t
Return dynamic
list of users
Test Scenario
Demo
@BagmarAnand
Summary
@BagmarAnand
• Reduce number of UI tests – Test Pyramid
• Use Visual Assertions instead of Functional Assertions
• Remove external dependencies via Intelligent Virtualization
Make your Automation Intelligent!
@BagmarAnand
• Move granular tests to lower layers of pyramid
• Get faster feedback
• Reduce flakiness / brittleness due to UI changes
Reduce UI tests
@BagmarAnand
• A single assertion for complete
functional coverage
• Bonus: validates the UI
• Does not break when the UI changes
• No coding skills required to maintain
baselines
• Validate UX at scale for all supported
browsers
Use Visual Assertions
@BagmarAnand
Run once, validate everywhere
@BagmarAnand
Ultrafast Grid
@BagmarAnand
Corporate Firewall
Ultrafast Grid
new page resources
checkpoint images
visual assertions
Application under test
Test / Build machine
Lab VM / containers
• Covers all environments at the speed of running a single local test
• Much more robust and stable
• Full functional and visual coverage
• No security vulnerabilities
• Reduce test data preparation and consumption
• Does not load the corporate network
• Costs much less
Run once, validate everywhere
@BagmarAnand
• Test environment independent of external dependencies
• Tests set dynamic expectations based on context of the
test execution
• Stubbed service should be able to give static responses /
random responses
Virtualize Dependencies at Runtime
@BagmarAnand
• Visual AI using Applitools
• Getting Started with Visual Testing - https://testautomationu.applitools.com/automated-
visual-testing-a-fast-path-to-test-automation-success/
• Modern Functional Test Automation Through Visual AI -
https://testautomationu.applitools.com/modern-functional-testing/
• Intelligent Virtualization using Specmatic
• https://specmatic.in/
• https://github.com/znsio/specmatic
• Test Automation University - https://testautomationu.applitools.com/
• Test Pyramid - https://martinfowler.com/articles/practical-test-pyramid.html
Resources
@BagmarAnand
@BagmarAnand
Thank you

Más contenido relacionado

La actualidad más candente

Perils of Page-Object Pattern
Perils of Page-Object PatternPerils of Page-Object Pattern
Perils of Page-Object PatternAnand Bagmar
 
Patterns in Test Automation
Patterns in Test AutomationPatterns in Test Automation
Patterns in Test AutomationAnand Bagmar
 
Measuring Consumer Quality - The Missing Feedback Loop
Measuring Consumer Quality - The Missing Feedback LoopMeasuring Consumer Quality - The Missing Feedback Loop
Measuring Consumer Quality - The Missing Feedback LoopAnand Bagmar
 
Patterns of a “good” test automation framework
Patterns of a “good” test automation frameworkPatterns of a “good” test automation framework
Patterns of a “good” test automation frameworkAnand Bagmar
 
To Deploy or Not-To-Deploy - decide using TTA's Trend & Failure Analysis
To Deploy or Not-To-Deploy - decide using TTA's Trend & Failure AnalysisTo Deploy or Not-To-Deploy - decide using TTA's Trend & Failure Analysis
To Deploy or Not-To-Deploy - decide using TTA's Trend & Failure AnalysisAnand Bagmar
 
Test Data - Food for your Test Automation Framework
Test Data - Food for your Test Automation FrameworkTest Data - Food for your Test Automation Framework
Test Data - Food for your Test Automation FrameworkAnand Bagmar
 
Visual Validation - The Missing Tip of the Automation Pyramid
Visual Validation - The Missing Tip of the Automation PyramidVisual Validation - The Missing Tip of the Automation Pyramid
Visual Validation - The Missing Tip of the Automation PyramidAnand Bagmar
 
Role of Automation in Testing
Role of Automation in TestingRole of Automation in Testing
Role of Automation in TestingAnand Bagmar
 
Enabling CD in Enterprises with Testing
Enabling CD in Enterprises with TestingEnabling CD in Enterprises with Testing
Enabling CD in Enterprises with TestingAnand Bagmar
 
An easy way to automate complex UI
An easy way to automate complex UIAn easy way to automate complex UI
An easy way to automate complex UIIvan Pashko
 
Using The Page Object Pattern
Using The Page Object PatternUsing The Page Object Pattern
Using The Page Object PatternDante Briones
 
Automating Web Analytics
Automating Web AnalyticsAutomating Web Analytics
Automating Web AnalyticsAnand Bagmar
 
Visual AI Testing Using Applitools
Visual AI Testing Using ApplitoolsVisual AI Testing Using Applitools
Visual AI Testing Using ApplitoolsMikhail Laptev
 
Client-Side Performance Testing
Client-Side Performance TestingClient-Side Performance Testing
Client-Side Performance TestingAnand Bagmar
 
What is Agile Testing? How does Automation help?
What is Agile Testing? How does Automation help?What is Agile Testing? How does Automation help?
What is Agile Testing? How does Automation help?Anand Bagmar
 
Enabling CD in Enterprises with Testing
Enabling CD in Enterprises with TestingEnabling CD in Enterprises with Testing
Enabling CD in Enterprises with TestingThoughtworks
 
Meticulous Planning of Test Automation
Meticulous Planning of Test AutomationMeticulous Planning of Test Automation
Meticulous Planning of Test Automationssuser2e8d4b
 
Design patterns in test automation
Design patterns in test automationDesign patterns in test automation
Design patterns in test automationMikalai Alimenkou
 
Brace yourself from automation death trap
Brace yourself from automation death trapBrace yourself from automation death trap
Brace yourself from automation death trapPrasad Kalgutkar
 

La actualidad más candente (20)

Perils of Page-Object Pattern
Perils of Page-Object PatternPerils of Page-Object Pattern
Perils of Page-Object Pattern
 
Appium vs Appium with Perfecto
Appium vs Appium with PerfectoAppium vs Appium with Perfecto
Appium vs Appium with Perfecto
 
Patterns in Test Automation
Patterns in Test AutomationPatterns in Test Automation
Patterns in Test Automation
 
Measuring Consumer Quality - The Missing Feedback Loop
Measuring Consumer Quality - The Missing Feedback LoopMeasuring Consumer Quality - The Missing Feedback Loop
Measuring Consumer Quality - The Missing Feedback Loop
 
Patterns of a “good” test automation framework
Patterns of a “good” test automation frameworkPatterns of a “good” test automation framework
Patterns of a “good” test automation framework
 
To Deploy or Not-To-Deploy - decide using TTA's Trend & Failure Analysis
To Deploy or Not-To-Deploy - decide using TTA's Trend & Failure AnalysisTo Deploy or Not-To-Deploy - decide using TTA's Trend & Failure Analysis
To Deploy or Not-To-Deploy - decide using TTA's Trend & Failure Analysis
 
Test Data - Food for your Test Automation Framework
Test Data - Food for your Test Automation FrameworkTest Data - Food for your Test Automation Framework
Test Data - Food for your Test Automation Framework
 
Visual Validation - The Missing Tip of the Automation Pyramid
Visual Validation - The Missing Tip of the Automation PyramidVisual Validation - The Missing Tip of the Automation Pyramid
Visual Validation - The Missing Tip of the Automation Pyramid
 
Role of Automation in Testing
Role of Automation in TestingRole of Automation in Testing
Role of Automation in Testing
 
Enabling CD in Enterprises with Testing
Enabling CD in Enterprises with TestingEnabling CD in Enterprises with Testing
Enabling CD in Enterprises with Testing
 
An easy way to automate complex UI
An easy way to automate complex UIAn easy way to automate complex UI
An easy way to automate complex UI
 
Using The Page Object Pattern
Using The Page Object PatternUsing The Page Object Pattern
Using The Page Object Pattern
 
Automating Web Analytics
Automating Web AnalyticsAutomating Web Analytics
Automating Web Analytics
 
Visual AI Testing Using Applitools
Visual AI Testing Using ApplitoolsVisual AI Testing Using Applitools
Visual AI Testing Using Applitools
 
Client-Side Performance Testing
Client-Side Performance TestingClient-Side Performance Testing
Client-Side Performance Testing
 
What is Agile Testing? How does Automation help?
What is Agile Testing? How does Automation help?What is Agile Testing? How does Automation help?
What is Agile Testing? How does Automation help?
 
Enabling CD in Enterprises with Testing
Enabling CD in Enterprises with TestingEnabling CD in Enterprises with Testing
Enabling CD in Enterprises with Testing
 
Meticulous Planning of Test Automation
Meticulous Planning of Test AutomationMeticulous Planning of Test Automation
Meticulous Planning of Test Automation
 
Design patterns in test automation
Design patterns in test automationDesign patterns in test automation
Design patterns in test automation
 
Brace yourself from automation death trap
Brace yourself from automation death trapBrace yourself from automation death trap
Brace yourself from automation death trap
 

Similar a Eradicate Flaky Tests - AppiumConf 2021

Eradicate Flaky Tests
Eradicate Flaky TestsEradicate Flaky Tests
Eradicate Flaky TestsAnand Bagmar
 
Change Tyres In A Moving Car - Make Functional Test Automation Effective Keynote
Change Tyres In A Moving Car - Make Functional Test Automation Effective KeynoteChange Tyres In A Moving Car - Make Functional Test Automation Effective Keynote
Change Tyres In A Moving Car - Make Functional Test Automation Effective KeynoteAnand Bagmar
 
Mobile User Experience: Auto Drive through Performance Metrics
Mobile User Experience:Auto Drive through Performance MetricsMobile User Experience:Auto Drive through Performance Metrics
Mobile User Experience: Auto Drive through Performance MetricsAndreas Grabner
 
How to kill test flake in appium
How to kill test flake in appiumHow to kill test flake in appium
How to kill test flake in appiumGaurav Singh
 
Automated Low Level Requirements Testing for DO-178C
Automated Low Level Requirements Testing for DO-178CAutomated Low Level Requirements Testing for DO-178C
Automated Low Level Requirements Testing for DO-178CQA Systems
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Applitools
 
Automated Acceptance Testing Example
Automated Acceptance Testing ExampleAutomated Acceptance Testing Example
Automated Acceptance Testing ExampleHani Massoud
 
Accelerating Your Test Execution Pipeline
Accelerating Your Test Execution PipelineAccelerating Your Test Execution Pipeline
Accelerating Your Test Execution PipelineSmartBear
 
the grinder testing certification
the grinder testing certificationthe grinder testing certification
the grinder testing certificationVskills
 
DevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More DefectsDevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More DefectsTechWell
 
Getting Started with Visual Testing
Getting Started with Visual TestingGetting Started with Visual Testing
Getting Started with Visual TestingApplitools
 
Building Efficient Software with Property Based Testing
Building Efficient Software with Property Based TestingBuilding Efficient Software with Property Based Testing
Building Efficient Software with Property Based TestingCitiusTech
 
Inside Kafka Streams—Monitoring Comcast’s Outside Plant
Inside Kafka Streams—Monitoring Comcast’s Outside Plant Inside Kafka Streams—Monitoring Comcast’s Outside Plant
Inside Kafka Streams—Monitoring Comcast’s Outside Plant confluent
 
Five Ways to Automate API Testing with Postman
Five Ways to Automate API Testing with PostmanFive Ways to Automate API Testing with Postman
Five Ways to Automate API Testing with PostmanPostman
 
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...Brad Stoner
 
API Testing with Frisby and Mocha
API Testing with Frisby and MochaAPI Testing with Frisby and Mocha
API Testing with Frisby and MochaLyudmila Anisimova
 
Failure is an Option: Scaling Resilient Feature Delivery
Failure is an Option: Scaling Resilient Feature DeliveryFailure is an Option: Scaling Resilient Feature Delivery
Failure is an Option: Scaling Resilient Feature DeliveryOptimizely
 
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...Postman
 
АНТОН СЕРПУТЬКО « Якісний перфоманс сценарій в Jmeter, це як?» Online QADay ...
АНТОН СЕРПУТЬКО « Якісний перфоманс сценарій в Jmeter, це як?»  Online QADay ...АНТОН СЕРПУТЬКО « Якісний перфоманс сценарій в Jmeter, це як?»  Online QADay ...
АНТОН СЕРПУТЬКО « Якісний перфоманс сценарій в Jmeter, це як?» Online QADay ...GoQA
 

Similar a Eradicate Flaky Tests - AppiumConf 2021 (20)

Eradicate Flaky Tests
Eradicate Flaky TestsEradicate Flaky Tests
Eradicate Flaky Tests
 
Change Tyres In A Moving Car - Make Functional Test Automation Effective Keynote
Change Tyres In A Moving Car - Make Functional Test Automation Effective KeynoteChange Tyres In A Moving Car - Make Functional Test Automation Effective Keynote
Change Tyres In A Moving Car - Make Functional Test Automation Effective Keynote
 
Mobile User Experience: Auto Drive through Performance Metrics
Mobile User Experience:Auto Drive through Performance MetricsMobile User Experience:Auto Drive through Performance Metrics
Mobile User Experience: Auto Drive through Performance Metrics
 
How to kill test flake in appium
How to kill test flake in appiumHow to kill test flake in appium
How to kill test flake in appium
 
Automated Low Level Requirements Testing for DO-178C
Automated Low Level Requirements Testing for DO-178CAutomated Low Level Requirements Testing for DO-178C
Automated Low Level Requirements Testing for DO-178C
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
 
Automated Acceptance Testing Example
Automated Acceptance Testing ExampleAutomated Acceptance Testing Example
Automated Acceptance Testing Example
 
Accelerating Your Test Execution Pipeline
Accelerating Your Test Execution PipelineAccelerating Your Test Execution Pipeline
Accelerating Your Test Execution Pipeline
 
the grinder testing certification
the grinder testing certificationthe grinder testing certification
the grinder testing certification
 
DevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More DefectsDevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More Defects
 
Getting Started with Visual Testing
Getting Started with Visual TestingGetting Started with Visual Testing
Getting Started with Visual Testing
 
Building Efficient Software with Property Based Testing
Building Efficient Software with Property Based TestingBuilding Efficient Software with Property Based Testing
Building Efficient Software with Property Based Testing
 
Inside Kafka Streams—Monitoring Comcast’s Outside Plant
Inside Kafka Streams—Monitoring Comcast’s Outside Plant Inside Kafka Streams—Monitoring Comcast’s Outside Plant
Inside Kafka Streams—Monitoring Comcast’s Outside Plant
 
Five Ways to Automate API Testing with Postman
Five Ways to Automate API Testing with PostmanFive Ways to Automate API Testing with Postman
Five Ways to Automate API Testing with Postman
 
AwareIM Custom plug ins
AwareIM Custom plug insAwareIM Custom plug ins
AwareIM Custom plug ins
 
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
 
API Testing with Frisby and Mocha
API Testing with Frisby and MochaAPI Testing with Frisby and Mocha
API Testing with Frisby and Mocha
 
Failure is an Option: Scaling Resilient Feature Delivery
Failure is an Option: Scaling Resilient Feature DeliveryFailure is an Option: Scaling Resilient Feature Delivery
Failure is an Option: Scaling Resilient Feature Delivery
 
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
POST/CON 2019 Workshop: Testing, Automated Testing, and Reporting APIs with P...
 
АНТОН СЕРПУТЬКО « Якісний перфоманс сценарій в Jmeter, це як?» Online QADay ...
АНТОН СЕРПУТЬКО « Якісний перфоманс сценарій в Jmeter, це як?»  Online QADay ...АНТОН СЕРПУТЬКО « Якісний перфоманс сценарій в Jmeter, це як?»  Online QADay ...
АНТОН СЕРПУТЬКО « Якісний перфоманс сценарій в Jmeter, це як?» Online QADay ...
 

Más de Anand Bagmar

Automating the real-user scenarios across multi-apps, and multi-devices
Automating the real-user scenarios across multi-apps, and multi-devicesAutomating the real-user scenarios across multi-apps, and multi-devices
Automating the real-user scenarios across multi-apps, and multi-devicesAnand Bagmar
 
Visual Validation - The missing tip of the automation pyramid @GoT2022
Visual Validation - The missing tip of the automation pyramid @GoT2022Visual Validation - The missing tip of the automation pyramid @GoT2022
Visual Validation - The missing tip of the automation pyramid @GoT2022Anand Bagmar
 
Design Patterns in Automation
Design Patterns in AutomationDesign Patterns in Automation
Design Patterns in AutomationAnand Bagmar
 
The Best Test Automation Framework is...
The Best Test Automation Framework is...The Best Test Automation Framework is...
The Best Test Automation Framework is...Anand Bagmar
 
Visual validation - The missing tip of the automation pyramid @ QA Symposium
Visual validation - The missing tip of the automation pyramid @ QA SymposiumVisual validation - The missing tip of the automation pyramid @ QA Symposium
Visual validation - The missing tip of the automation pyramid @ QA SymposiumAnand Bagmar
 
Collaboration - A Taboo!
Collaboration - A Taboo!Collaboration - A Taboo!
Collaboration - A Taboo!Anand Bagmar
 
The What, Why and How of Analytics Testing
The What, Why and How of Analytics TestingThe What, Why and How of Analytics Testing
The What, Why and How of Analytics TestingAnand Bagmar
 
Client-Side Performance Testing
Client-Side Performance TestingClient-Side Performance Testing
Client-Side Performance TestingAnand Bagmar
 
Sharing (less) Pain of using Protractor & WebDriver
Sharing (less) Pain of using Protractor & WebDriverSharing (less) Pain of using Protractor & WebDriver
Sharing (less) Pain of using Protractor & WebDriverAnand Bagmar
 
Sharing the pain using Protractor
Sharing the pain using ProtractorSharing the pain using Protractor
Sharing the pain using ProtractorAnand Bagmar
 
Test Automation - Principles and Practices
Test Automation - Principles and PracticesTest Automation - Principles and Practices
Test Automation - Principles and PracticesAnand Bagmar
 
The What, Why and How of (Web) Analytics Testing (Web, IoT, Big Data)
The What, Why and How of (Web) Analytics Testing (Web, IoT, Big Data)The What, Why and How of (Web) Analytics Testing (Web, IoT, Big Data)
The What, Why and How of (Web) Analytics Testing (Web, IoT, Big Data)Anand Bagmar
 
Integration Testing in Enterprises using TaaS
Integration Testing in Enterprises using TaaSIntegration Testing in Enterprises using TaaS
Integration Testing in Enterprises using TaaSAnand Bagmar
 
Say NO To (More) Selenium Tests
Say NO To (More) Selenium TestsSay NO To (More) Selenium Tests
Say NO To (More) Selenium TestsAnand Bagmar
 

Más de Anand Bagmar (14)

Automating the real-user scenarios across multi-apps, and multi-devices
Automating the real-user scenarios across multi-apps, and multi-devicesAutomating the real-user scenarios across multi-apps, and multi-devices
Automating the real-user scenarios across multi-apps, and multi-devices
 
Visual Validation - The missing tip of the automation pyramid @GoT2022
Visual Validation - The missing tip of the automation pyramid @GoT2022Visual Validation - The missing tip of the automation pyramid @GoT2022
Visual Validation - The missing tip of the automation pyramid @GoT2022
 
Design Patterns in Automation
Design Patterns in AutomationDesign Patterns in Automation
Design Patterns in Automation
 
The Best Test Automation Framework is...
The Best Test Automation Framework is...The Best Test Automation Framework is...
The Best Test Automation Framework is...
 
Visual validation - The missing tip of the automation pyramid @ QA Symposium
Visual validation - The missing tip of the automation pyramid @ QA SymposiumVisual validation - The missing tip of the automation pyramid @ QA Symposium
Visual validation - The missing tip of the automation pyramid @ QA Symposium
 
Collaboration - A Taboo!
Collaboration - A Taboo!Collaboration - A Taboo!
Collaboration - A Taboo!
 
The What, Why and How of Analytics Testing
The What, Why and How of Analytics TestingThe What, Why and How of Analytics Testing
The What, Why and How of Analytics Testing
 
Client-Side Performance Testing
Client-Side Performance TestingClient-Side Performance Testing
Client-Side Performance Testing
 
Sharing (less) Pain of using Protractor & WebDriver
Sharing (less) Pain of using Protractor & WebDriverSharing (less) Pain of using Protractor & WebDriver
Sharing (less) Pain of using Protractor & WebDriver
 
Sharing the pain using Protractor
Sharing the pain using ProtractorSharing the pain using Protractor
Sharing the pain using Protractor
 
Test Automation - Principles and Practices
Test Automation - Principles and PracticesTest Automation - Principles and Practices
Test Automation - Principles and Practices
 
The What, Why and How of (Web) Analytics Testing (Web, IoT, Big Data)
The What, Why and How of (Web) Analytics Testing (Web, IoT, Big Data)The What, Why and How of (Web) Analytics Testing (Web, IoT, Big Data)
The What, Why and How of (Web) Analytics Testing (Web, IoT, Big Data)
 
Integration Testing in Enterprises using TaaS
Integration Testing in Enterprises using TaaSIntegration Testing in Enterprises using TaaS
Integration Testing in Enterprises using TaaS
 
Say NO To (More) Selenium Tests
Say NO To (More) Selenium TestsSay NO To (More) Selenium Tests
Say NO To (More) Selenium Tests
 

Último

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 

Último (20)

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 

Eradicate Flaky Tests - AppiumConf 2021

  • 1. Eradicate Flaky Tests @BagmarAnand Anand Bagmar Software Quality Evangelist Essence Of Testing
  • 4. @BagmarAnand Internet Internal B2C App Product DB DBMS B2B App Caching System Elastic Search Authentication Gateway Service 3 Service 4 Service 7 Service 5 Service 6 Admin User DB Outgoing Notification Onboarding Event Consumer Order DB Reporting System Admin Portal Support Msg Q Direct API Service 2 Notification Service 1 Event Processor Service 8 Payment Gateway Credit System Master Product Warehouse Royalty system Offers …. …. ….
  • 5. Approach for API Workflow & E2E Test Execution @BagmarAnand
  • 6. API workflow Tests E2E Functional UI Tests @BagmarAnand Internet Internal B2C App Product DB DBMS B2B App Caching System Elastic Search Authentication Gateway Service 3 Service 4 Service 7 Service 5 Service 6 Admin User DB Outgoing Notification Onboarding Event Consumer Order DB Reporting System Admin Portal Support Msg Q Direct API Service 2 Notification Service 1 Event Processor Service 8 Payment Gateway Credit System Master Product Warehouse Royalty system Offers …. …. ….
  • 7. • Long running scenarios • Slow feedback Challenges of E2E Test Automation @BagmarAnand
  • 8. • Limitations of automatable scenarios • Error case / Edge case handling from dependent systems • Triggers from external systems Challenges of E2E Test Automation @BagmarAnand
  • 9. • Pain of Cross Browser execution • Slow, special handling for browsers, infrastructure cost / maintenance Challenges of E2E Test Automation @BagmarAnand
  • 10. • Flaky Tests Challenges of E2E Test Automation @BagmarAnand
  • 11. Why are Tests Flaky? @BagmarAnand
  • 12. • Brittle / Flaky tests • UI changes • Downstream dependencies • Data dependencies • Network (speed) fluctuations Challenges of E2E Test Automation @BagmarAnand
  • 13. Solutions / Way forward @BagmarAnand
  • 14. • Reduce number of UI tests • Remove external dependencies via Intelligent Virtualization • Use Visual Assertions instead of Functional Assertions How to Reduce Flakiness in Tests? @BagmarAnand
  • 15. #1 Reduce the number of UI Tests @BagmarAnand
  • 17. #2 Intelligent Virtualization to Eradicate Dependencies @BagmarAnand
  • 19. @BagmarAnand Internet Internal B2C App Product DB DBMS B2B App Caching System Elastic Search Authentication Gateway Service 3 Service 4 Service 7 Service 5 Service 6 Admin User DB Outgoing Notification Onboarding Event Consumer Order DB Reporting System Admin Portal Support Msg Q Direct API Service 2 Notification Service 1 Event Processor Service 8 Payment Gateway Credit System Master Product Warehouse Royalty system Offers …. …. ….
  • 20. Approach for API Workflow & E2E Test Automation @BagmarAnand
  • 21. API workflow Tests E2E Functional UI Tests @BagmarAnand Internet Internal B2C App Product DB DBMS B2B App Caching System Elastic Search Authentication Gateway Service 3 Service 4 Service 7 Service 5 Service 6 Admin User DB Outgoing Notification Onboarding Event Consumer Order DB Reporting System Admin Portal Support Msg Q Direct API Service 2 Notification Service 1 Event Processor Service 8 Payment Gateway Credit System Master Product Warehouse Royalty system Offers …. …. ….
  • 23. @BagmarAnand Step #1: • Test calls Service 2 Step #2: • Service 2 calls the external service, which may (unexpectedly) take long time to respond Step #3: • Service 2 gets an error back from external service • Returns an error to the test Step #4: • Test fails because of external service • We may get incorrect error as well! Test Scenario
  • 27. • Inculcates Contract Driven Development • Supports OpenAPI Spec • Executable Contract spec • Defines http method, path, header format, payload format, query parameter format, form field payload format • Supports JSON, XML data formats • Supports Kafka • Dynamically generates and executes contract tests • Apt for service virtualization • Compares contracts to ascertain backward compatibility • Manages contracts through versioning • Integrates with CI/CD Specmatic – Contract Driven Development @BagmarAnand • Decouples the ”producers” and “consumers”, with confidence!
  • 28. Use Specmatic as part of Test execution @BagmarAnand Step #3: • Test calls Service 2 Step #4: • Service 2 calls the stubbed external service Step #2: • Test sets expectations on Specmatic for specific stubbed endpoint • Http POST call on Specmatic server with exact request & response as json payload Step #5: • If request matches set expectation, corresponding set response is returned in response • Service 2 processes response and responds to test appropriately Step #6: • Test asserts on the received response • Test passes Step #1. Specmatic as a Stub Server in your Test Environment • Specmatic Server is started in the Stub mode in the Environment • External services are stubbed out • Internal services point to Specmatic stubbed- endpoints instead of real external endpoints
  • 29. Use Specmatic as part of Test execution @BagmarAnand Step #3: • Test calls Service 2 Step #4: • Service 2 calls the stubbed external service Step #2: • Test sets expectations on Specmatic for specific stubbed endpoint • Http POST call on Specmatic server with exact request & response as json payload Step #5: • If request matches set expectation, corresponding set response is returned in response • Service 2 processes response and responds to test appropriately Step #6: • Test asserts on the received response • Test passes Step #1. Specmatic as a Stub Server • Specmatic Server is started in the Stub mode in the Environment • External services are stubbed out • Internal services point to Specmatic stubbed- endpoints instead of real external endpoints Allows to simulate positive, negative, edge-case responses – allowing you to test your implementation logic
  • 30. #3 Visual Assertions instead of Functional Assertions @BagmarAnand
  • 32. Bugs still escape @BagmarAnand Traditional automated testing frameworks are not built for modern apps
  • 38. Bugs escape because our approach to testing is incorrect @BagmarAnand
  • 39. @BagmarAnand Mundane Error prone Tedious Running against Time Approach to Testing is Incorrect
  • 42. But, we are testing real software products @BagmarAnand
  • 49. @BagmarAnand Visual AI detects bugs, not browser render diffs
  • 50. @BagmarAnand Pixel comparisons waste time with false positives
  • 51. Visual AI should work across all Platforms PDF, Web, Native Mobile @BagmarAnand
  • 52. Perfection Across All Screens, Browsers and Viewports Tests run local - Applitools SDKs available for all major testing frameworks DOM & CSS sent to Applitools Ultrafast Grid Applitools Eyes Visual AI analysis Ultrafast Grid renders DOM snapshots in parallel Login to Eyes to view test results 53 . Firewall
  • 54. @BagmarAnand Application under test Login Get list of users Edit User Test Scenario Login 1 Get list of users 2 Internet Return dynamic list of users 3 4 Edit User 5 Verify User Details 6 Return dynamic list of users Test Scenario Example Scenario
  • 55. Website with rest services in backend hosted on local machine Login Get list of users Edit User Test Scenario Functional & Visual Assertions using Applitools Login 1 Get list of users 3 Verify User Details 7 Edit User 6 4 5 Test Environment Return dynamic list of users Stubbed using Specmatic Static Random Dynamic Expectations @BagmarAnand 2. Test sets “dynamic expectation” in context of the scenario Example Scenario using Specmatic I n t e r n e t
  • 56. @BagmarAnand Example Scenario using Specmatic Website with rest services in backend hosted on local machine Login Get list of users Edit User Test Scenario Functional & Visual Assertions using Applitools Login 1 Get list of users 3 Verify User Details 7 Edit User 6 4 5 Test Environment Return dynamic list of users Stubbed using Specmatic Static Random Dynamic Expectations 2. Test sets “dynamic expectation” in context of the scenario I n t e r n e t Return dynamic list of users Test Scenario
  • 59. • Reduce number of UI tests – Test Pyramid • Use Visual Assertions instead of Functional Assertions • Remove external dependencies via Intelligent Virtualization Make your Automation Intelligent! @BagmarAnand
  • 60. • Move granular tests to lower layers of pyramid • Get faster feedback • Reduce flakiness / brittleness due to UI changes Reduce UI tests @BagmarAnand
  • 61. • A single assertion for complete functional coverage • Bonus: validates the UI • Does not break when the UI changes • No coding skills required to maintain baselines • Validate UX at scale for all supported browsers Use Visual Assertions @BagmarAnand
  • 62. Run once, validate everywhere @BagmarAnand
  • 63. Ultrafast Grid @BagmarAnand Corporate Firewall Ultrafast Grid new page resources checkpoint images visual assertions Application under test Test / Build machine Lab VM / containers
  • 64. • Covers all environments at the speed of running a single local test • Much more robust and stable • Full functional and visual coverage • No security vulnerabilities • Reduce test data preparation and consumption • Does not load the corporate network • Costs much less Run once, validate everywhere @BagmarAnand
  • 65. • Test environment independent of external dependencies • Tests set dynamic expectations based on context of the test execution • Stubbed service should be able to give static responses / random responses Virtualize Dependencies at Runtime @BagmarAnand
  • 66. • Visual AI using Applitools • Getting Started with Visual Testing - https://testautomationu.applitools.com/automated- visual-testing-a-fast-path-to-test-automation-success/ • Modern Functional Test Automation Through Visual AI - https://testautomationu.applitools.com/modern-functional-testing/ • Intelligent Virtualization using Specmatic • https://specmatic.in/ • https://github.com/znsio/specmatic • Test Automation University - https://testautomationu.applitools.com/ • Test Pyramid - https://martinfowler.com/articles/practical-test-pyramid.html Resources @BagmarAnand