SlideShare a Scribd company logo
Web API Fragility
How Robust Is Your Mobile Application?
Tiago Espinha, Andy Zaidman, Gerd Gross
MobileSoft 2015, Firenze, Italy
Developer decides when Web API provider decides
when
v1
v2
What is the damage?
43 Android apps
Proxy server
Mutation operators on response message
- Remove node
- Add irrelevant node
- Malformed response
- Empty message response
- Change of implicit data type
- Data formatting disruption
Mutation operators on response message
- Remove node
- Add irrelevant node
- Malformed response
- Empty message response
- Change of implicit data type
- Data formatting disruption
App behaviour
• Force close
• Error message (no silent fail)
• Timeout (versus indefinitely loading)
• No indication
What happens?
Undesirable
• >50% apps fail silently • Most apps fairly robust
(30% crash on field removal)
Recommendations
• HATEAOS versioning of Web APIs
• Better error reporting for users
• Built-in validity checks for Web API
response
• Design for change when dealing with
Web APIs

More Related Content

What's hot

Key note Manish and Deepa
Key note Manish and DeepaKey note Manish and Deepa
Key note Manish and Deepa
vodQA
 
Learnings from Hybrid App Testing Jijesh Mohan
Learnings from Hybrid App Testing Jijesh MohanLearnings from Hybrid App Testing Jijesh Mohan
Learnings from Hybrid App Testing Jijesh Mohan
vodQA
 
ATAGTR2017 Wearable App Testing
ATAGTR2017 Wearable App TestingATAGTR2017 Wearable App Testing
ATAGTR2017 Wearable App Testing
Agile Testing Alliance
 
Testing Mobile App Performance
Testing Mobile App PerformanceTesting Mobile App Performance
Testing Mobile App Performance
TechWell
 
SauceCon 2017: Making Your Mobile App Automatable
SauceCon 2017: Making Your Mobile App AutomatableSauceCon 2017: Making Your Mobile App Automatable
SauceCon 2017: Making Your Mobile App Automatable
Sauce Labs
 
Awesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave HaeffnerAwesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave Haeffner
Sauce Labs
 
Mobile App Testing Best Practices
Mobile App Testing Best PracticesMobile App Testing Best Practices
Mobile App Testing Best Practices
Keynote Mobile Testing
 
SauceCon 2017: test.allTheThings(): Digital Edition
SauceCon 2017: test.allTheThings(): Digital EditionSauceCon 2017: test.allTheThings(): Digital Edition
SauceCon 2017: test.allTheThings(): Digital Edition
Sauce Labs
 
Quality at Speed: More API Testing, Less UI Testing
Quality at Speed: More API Testing, Less UI TestingQuality at Speed: More API Testing, Less UI Testing
Quality at Speed: More API Testing, Less UI Testing
Sauce Labs
 
Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!
Sauce Labs
 
CA CD for Linkedin
CA CD for LinkedinCA CD for Linkedin
CA CD for Linkedin
Prakash Vyas (CEng)
 
SauceCon 2017: Building a Continuous Delivery Pipeline with Testing in Mind
SauceCon 2017: Building a Continuous Delivery Pipeline with Testing in MindSauceCon 2017: Building a Continuous Delivery Pipeline with Testing in Mind
SauceCon 2017: Building a Continuous Delivery Pipeline with Testing in Mind
Sauce Labs
 
The Essentials of Mobile App Performance Testing and Monitoring
The Essentials of Mobile App Performance Testing and MonitoringThe Essentials of Mobile App Performance Testing and Monitoring
The Essentials of Mobile App Performance Testing and Monitoring
Correlsense
 
YAGNI, YMMV and APIs: building a hybrid strategy for your API platform.
YAGNI, YMMV and APIs: building a hybrid strategy for your API platform.YAGNI, YMMV and APIs: building a hybrid strategy for your API platform.
YAGNI, YMMV and APIs: building a hybrid strategy for your API platform.
Diogo Lucas
 
Appium for RubyMotion
Appium for RubyMotionAppium for RubyMotion
Appium for RubyMotion
Isaac Murchie
 
Integrate Visual AI Into Your Appium Scripts in Minutes
Integrate Visual AI Into Your Appium Scripts in MinutesIntegrate Visual AI Into Your Appium Scripts in Minutes
Integrate Visual AI Into Your Appium Scripts in Minutes
Applitools
 
2018 State of Testing Survey Results
2018 State of Testing Survey Results2018 State of Testing Survey Results
2018 State of Testing Survey Results
SmartBear
 
SauceCon 2017: Testing @ the Speed of Concurrency
SauceCon 2017: Testing @ the Speed of ConcurrencySauceCon 2017: Testing @ the Speed of Concurrency
SauceCon 2017: Testing @ the Speed of Concurrency
Sauce Labs
 
Automation Pyramid - Make it right!
Automation Pyramid - Make it right!Automation Pyramid - Make it right!
Automation Pyramid - Make it right!
Sachin Natu
 
Dimensions CM Summer VUG Presentation
Dimensions CM Summer VUG PresentationDimensions CM Summer VUG Presentation
Dimensions CM Summer VUG Presentation
Serena Software
 

What's hot (20)

Key note Manish and Deepa
Key note Manish and DeepaKey note Manish and Deepa
Key note Manish and Deepa
 
Learnings from Hybrid App Testing Jijesh Mohan
Learnings from Hybrid App Testing Jijesh MohanLearnings from Hybrid App Testing Jijesh Mohan
Learnings from Hybrid App Testing Jijesh Mohan
 
ATAGTR2017 Wearable App Testing
ATAGTR2017 Wearable App TestingATAGTR2017 Wearable App Testing
ATAGTR2017 Wearable App Testing
 
Testing Mobile App Performance
Testing Mobile App PerformanceTesting Mobile App Performance
Testing Mobile App Performance
 
SauceCon 2017: Making Your Mobile App Automatable
SauceCon 2017: Making Your Mobile App AutomatableSauceCon 2017: Making Your Mobile App Automatable
SauceCon 2017: Making Your Mobile App Automatable
 
Awesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave HaeffnerAwesome Test Automation Made Simple w/ Dave Haeffner
Awesome Test Automation Made Simple w/ Dave Haeffner
 
Mobile App Testing Best Practices
Mobile App Testing Best PracticesMobile App Testing Best Practices
Mobile App Testing Best Practices
 
SauceCon 2017: test.allTheThings(): Digital Edition
SauceCon 2017: test.allTheThings(): Digital EditionSauceCon 2017: test.allTheThings(): Digital Edition
SauceCon 2017: test.allTheThings(): Digital Edition
 
Quality at Speed: More API Testing, Less UI Testing
Quality at Speed: More API Testing, Less UI TestingQuality at Speed: More API Testing, Less UI Testing
Quality at Speed: More API Testing, Less UI Testing
 
Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!Using Selenium To Test Mobile? Meet Appium!
Using Selenium To Test Mobile? Meet Appium!
 
CA CD for Linkedin
CA CD for LinkedinCA CD for Linkedin
CA CD for Linkedin
 
SauceCon 2017: Building a Continuous Delivery Pipeline with Testing in Mind
SauceCon 2017: Building a Continuous Delivery Pipeline with Testing in MindSauceCon 2017: Building a Continuous Delivery Pipeline with Testing in Mind
SauceCon 2017: Building a Continuous Delivery Pipeline with Testing in Mind
 
The Essentials of Mobile App Performance Testing and Monitoring
The Essentials of Mobile App Performance Testing and MonitoringThe Essentials of Mobile App Performance Testing and Monitoring
The Essentials of Mobile App Performance Testing and Monitoring
 
YAGNI, YMMV and APIs: building a hybrid strategy for your API platform.
YAGNI, YMMV and APIs: building a hybrid strategy for your API platform.YAGNI, YMMV and APIs: building a hybrid strategy for your API platform.
YAGNI, YMMV and APIs: building a hybrid strategy for your API platform.
 
Appium for RubyMotion
Appium for RubyMotionAppium for RubyMotion
Appium for RubyMotion
 
Integrate Visual AI Into Your Appium Scripts in Minutes
Integrate Visual AI Into Your Appium Scripts in MinutesIntegrate Visual AI Into Your Appium Scripts in Minutes
Integrate Visual AI Into Your Appium Scripts in Minutes
 
2018 State of Testing Survey Results
2018 State of Testing Survey Results2018 State of Testing Survey Results
2018 State of Testing Survey Results
 
SauceCon 2017: Testing @ the Speed of Concurrency
SauceCon 2017: Testing @ the Speed of ConcurrencySauceCon 2017: Testing @ the Speed of Concurrency
SauceCon 2017: Testing @ the Speed of Concurrency
 
Automation Pyramid - Make it right!
Automation Pyramid - Make it right!Automation Pyramid - Make it right!
Automation Pyramid - Make it right!
 
Dimensions CM Summer VUG Presentation
Dimensions CM Summer VUG PresentationDimensions CM Summer VUG Presentation
Dimensions CM Summer VUG Presentation
 

Similar to Web API Fragility: How Robust Is Your Mobile Application?

The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
Bitbar
 
Monitoring Solutions for APIs
Monitoring Solutions for APIsMonitoring Solutions for APIs
Monitoring Solutions for APIs
Apigee | Google Cloud
 
Practical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User MonitoringPractical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User Monitoring
Dynatrace
 
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
NITHIN S.S
 
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Metrics Driven DevOps - Automate Scalability and Performance Into your PipelineMetrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Andreas Grabner
 
Atmosphere 2016 - Andreas Grabner - Metrics Driven-DevOps: Delivering High Qu...
Atmosphere 2016 - Andreas Grabner - Metrics Driven-DevOps: Delivering High Qu...Atmosphere 2016 - Andreas Grabner - Metrics Driven-DevOps: Delivering High Qu...
Atmosphere 2016 - Andreas Grabner - Metrics Driven-DevOps: Delivering High Qu...
PROIDEA
 
Encontrando la Aguja en el Rendimiento de Aplicaciones
Encontrando la Aguja en el Rendimiento de AplicacionesEncontrando la Aguja en el Rendimiento de Aplicaciones
Encontrando la Aguja en el Rendimiento de Aplicaciones
Software Guru
 
Interview questions for an Android Developer
Interview questions for an Android DeveloperInterview questions for an Android Developer
Interview questions for an Android Developer
Interview Mocha
 
Mobile App Testing on Cloud
Mobile App Testing on CloudMobile App Testing on Cloud
Mobile App Testing on Cloud
pCloudy
 
Operationalize All the Network Things by Lori MacVittie
Operationalize All the Network Things by Lori MacVittieOperationalize All the Network Things by Lori MacVittie
Operationalize All the Network Things by Lori MacVittie
DevOps4Networks
 
Operationalize all the network things
Operationalize all the network thingsOperationalize all the network things
Operationalize all the network things
Lori MacVittie
 
Chapter 1. Why Performance Test
Chapter 1. Why Performance TestChapter 1. Why Performance Test
Chapter 1. Why Performance Test
Juan David Giraldo Marín
 
Starting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsStarting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for Ops
Dynatrace
 
Twelve factor-app
Twelve factor-appTwelve factor-app
Twelve factor-app
José Javier Vélez Colón
 
Progressive Web App
Progressive Web AppProgressive Web App
Progressive Web App
Saleh Rahimzadeh
 
How to deal with mobile traffic expansion
How to deal with mobile traffic expansionHow to deal with mobile traffic expansion
How to deal with mobile traffic expansion
Mevlana M. Gürbulak
 
Webinar effective mobile performance testing using real devices
Webinar effective mobile performance testing using real devicesWebinar effective mobile performance testing using real devices
Webinar effective mobile performance testing using real devices
Perfecto Mobile
 
Mobile apps & Server Apis, the weak link? par Emanuele Pecorari
Mobile apps & Server Apis, the weak link? par Emanuele PecorariMobile apps & Server Apis, the weak link? par Emanuele Pecorari
Mobile apps & Server Apis, the weak link? par Emanuele Pecorari
Olivier DASINI
 
Connect Ops and Security with Flexible Web App and API Protection
Connect Ops and Security with Flexible Web App and API ProtectionConnect Ops and Security with Flexible Web App and API Protection
Connect Ops and Security with Flexible Web App and API Protection
DevOps.com
 
Thinking about the full stack to create great mobile experiences
Thinking about the full stack to create great mobile experiencesThinking about the full stack to create great mobile experiences
Thinking about the full stack to create great mobile experiences
New Relic
 

Similar to Web API Fragility: How Robust Is Your Mobile Application? (20)

The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
 
Monitoring Solutions for APIs
Monitoring Solutions for APIsMonitoring Solutions for APIs
Monitoring Solutions for APIs
 
Practical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User MonitoringPractical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User Monitoring
 
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
 
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Metrics Driven DevOps - Automate Scalability and Performance Into your PipelineMetrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
 
Atmosphere 2016 - Andreas Grabner - Metrics Driven-DevOps: Delivering High Qu...
Atmosphere 2016 - Andreas Grabner - Metrics Driven-DevOps: Delivering High Qu...Atmosphere 2016 - Andreas Grabner - Metrics Driven-DevOps: Delivering High Qu...
Atmosphere 2016 - Andreas Grabner - Metrics Driven-DevOps: Delivering High Qu...
 
Encontrando la Aguja en el Rendimiento de Aplicaciones
Encontrando la Aguja en el Rendimiento de AplicacionesEncontrando la Aguja en el Rendimiento de Aplicaciones
Encontrando la Aguja en el Rendimiento de Aplicaciones
 
Interview questions for an Android Developer
Interview questions for an Android DeveloperInterview questions for an Android Developer
Interview questions for an Android Developer
 
Mobile App Testing on Cloud
Mobile App Testing on CloudMobile App Testing on Cloud
Mobile App Testing on Cloud
 
Operationalize All the Network Things by Lori MacVittie
Operationalize All the Network Things by Lori MacVittieOperationalize All the Network Things by Lori MacVittie
Operationalize All the Network Things by Lori MacVittie
 
Operationalize all the network things
Operationalize all the network thingsOperationalize all the network things
Operationalize all the network things
 
Chapter 1. Why Performance Test
Chapter 1. Why Performance TestChapter 1. Why Performance Test
Chapter 1. Why Performance Test
 
Starting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsStarting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for Ops
 
Twelve factor-app
Twelve factor-appTwelve factor-app
Twelve factor-app
 
Progressive Web App
Progressive Web AppProgressive Web App
Progressive Web App
 
How to deal with mobile traffic expansion
How to deal with mobile traffic expansionHow to deal with mobile traffic expansion
How to deal with mobile traffic expansion
 
Webinar effective mobile performance testing using real devices
Webinar effective mobile performance testing using real devicesWebinar effective mobile performance testing using real devices
Webinar effective mobile performance testing using real devices
 
Mobile apps & Server Apis, the weak link? par Emanuele Pecorari
Mobile apps & Server Apis, the weak link? par Emanuele PecorariMobile apps & Server Apis, the weak link? par Emanuele Pecorari
Mobile apps & Server Apis, the weak link? par Emanuele Pecorari
 
Connect Ops and Security with Flexible Web App and API Protection
Connect Ops and Security with Flexible Web App and API ProtectionConnect Ops and Security with Flexible Web App and API Protection
Connect Ops and Security with Flexible Web App and API Protection
 
Thinking about the full stack to create great mobile experiences
Thinking about the full stack to create great mobile experiencesThinking about the full stack to create great mobile experiences
Thinking about the full stack to create great mobile experiences
 

More from Andy Zaidman

Automatic for the People
Automatic for the PeopleAutomatic for the People
Automatic for the People
Andy Zaidman
 
Software Analytics
Software AnalyticsSoftware Analytics
Software Analytics
Andy Zaidman
 
Fact or Fiction? What Software Analytics Can Do For Us
Fact or Fiction? What Software Analytics Can Do For UsFact or Fiction? What Software Analytics Can Do For Us
Fact or Fiction? What Software Analytics Can Do For Us
Andy Zaidman
 
Software Analytics: The Dark Side and the Test Side
Software Analytics: The Dark Side and the Test SideSoftware Analytics: The Dark Side and the Test Side
Software Analytics: The Dark Side and the Test Side
Andy Zaidman
 
First steps in testing analytics: Does test code quality matter?
First steps in testing analytics: Does test code quality matter?First steps in testing analytics: Does test code quality matter?
First steps in testing analytics: Does test code quality matter?
Andy Zaidman
 
Studying Late Propagations in Code Clone Evolution Using Software Repository ...
Studying Late Propagations in Code Clone Evolution Using Software Repository ...Studying Late Propagations in Code Clone Evolution Using Software Repository ...
Studying Late Propagations in Code Clone Evolution Using Software Repository ...
Andy Zaidman
 

More from Andy Zaidman (6)

Automatic for the People
Automatic for the PeopleAutomatic for the People
Automatic for the People
 
Software Analytics
Software AnalyticsSoftware Analytics
Software Analytics
 
Fact or Fiction? What Software Analytics Can Do For Us
Fact or Fiction? What Software Analytics Can Do For UsFact or Fiction? What Software Analytics Can Do For Us
Fact or Fiction? What Software Analytics Can Do For Us
 
Software Analytics: The Dark Side and the Test Side
Software Analytics: The Dark Side and the Test SideSoftware Analytics: The Dark Side and the Test Side
Software Analytics: The Dark Side and the Test Side
 
First steps in testing analytics: Does test code quality matter?
First steps in testing analytics: Does test code quality matter?First steps in testing analytics: Does test code quality matter?
First steps in testing analytics: Does test code quality matter?
 
Studying Late Propagations in Code Clone Evolution Using Software Repository ...
Studying Late Propagations in Code Clone Evolution Using Software Repository ...Studying Late Propagations in Code Clone Evolution Using Software Repository ...
Studying Late Propagations in Code Clone Evolution Using Software Repository ...
 

Web API Fragility: How Robust Is Your Mobile Application?

  • 1. Web API Fragility How Robust Is Your Mobile Application? Tiago Espinha, Andy Zaidman, Gerd Gross MobileSoft 2015, Firenze, Italy
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. Developer decides when Web API provider decides when
  • 7.
  • 9. What is the damage?
  • 11.
  • 12. Mutation operators on response message - Remove node - Add irrelevant node - Malformed response - Empty message response - Change of implicit data type - Data formatting disruption
  • 13. Mutation operators on response message - Remove node - Add irrelevant node - Malformed response - Empty message response - Change of implicit data type - Data formatting disruption
  • 14. App behaviour • Force close • Error message (no silent fail) • Timeout (versus indefinitely loading) • No indication
  • 16. • >50% apps fail silently • Most apps fairly robust (30% crash on field removal) Recommendations • HATEAOS versioning of Web APIs • Better error reporting for users • Built-in validity checks for Web API response • Design for change when dealing with Web APIs