SlideShare une entreprise Scribd logo
1  sur  58
Télécharger pour lire hors ligne
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
A Journey inside
a React Native App
No pain, no gain
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
" "
I have changed only 1 line of code. No testing is needed….
Anonymous dev
George Romanas
Software Engineer in Test Lead
@CamelotLS since 2016
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
" "
Make it work, make it right, make it fast
Kent Beck
Ilias Giannoulis
Software Engineer in Test Lead
@CamelotLS since 2019
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
No parallelization needed just implementing and running some tests
Only 1 emulator and 1 simulator available
Implementing functional tests and running tests one by one
Only one Mac machine locally used to build the app
How Everything Started
The
Framework
The Journey / The Framework
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Mocking
Selectors
Testing
Strategy
Reporting
Visual Testing
im|possible
CI/CD
Final
Thoughts
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
The Framework
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
The Framework
Tools:
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
The Framework
Reqs:
Tool must be cross-platform
1
Ideally developers should be involved on testing (Javascript)
2
Test on emulators / simulators / real devices
3
CI/CD
4
5 Reporting
6 Test BDD style (Given, When, Then)
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Appium in order to be able to perform speci
fi
c actions
like swipe, webview context
1
Wdio solid solution, easy to setup, JS based framework, using
several plugins (Appium, image comparison, reporting) in order
to have a robust test suite, built in assertion library, parallel
execution, plays locally/grid/cloud
2
Cucumber for the behavior driven development customer wants
3
The Framework
The
Framework
The Journey / Selectors
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Testing
Strategy
Reporting
Visual Testing
im|possible
CI/CD
Final
Thoughts
Selectors
Mocking
Approach
How
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Accessibility ID
XPath
iOS class chain
Android UI selector
testProperties
Selectors
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Accessibility ID is a cross platform solution
1
XPath selectors only in very rare cases where accessibility
Ids cannot be implemented
2
iOS class chain, a hybrid solution between an XPath and a predicate string,
developed by Appium for hierarchical queries in more performant way
3
Android UISelector speci
fi
es the elements in the layout hierarchy
fi
ltered
by properties (text value, class name etc) usually used for interacting
with Android emulator menu elements
4
Selectors
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Selectors
In case of an automation build we are returning
the accessibility labels inside the automation build
1
When test-properties are used into the code of a
view label then it has the accessibility label on it
2In case of an IOS automation build we
introduce testID
3
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Selectors
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Selectors
The
Framework
The Journey / Mocking
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Selectors
Testing
Strategy
Reporting
Visual Testing
im|possible
CI/CD
Final
Thoughts
Mocking
Approach
Mimic the HTTP API’s behaviour
Minimal dependency by 3rd party services
Minimise Flakiness
Testing Edge case/ Error /Delay cases
How
Wiremock
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Mocking
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Mocking
GET: /api/system/status?op-hours=true
"headers": {
"X-CLIENT-VERSION": {
"matches": ".*"
},
"X-CLIENT-PLATFORM": {
"matches": ".*"
}
}
RESPONSE:
"response": {
"status": 200,
"bodyFileName": "200/system/status/system_status_twenty_four_ophours.json",
"headers": {
"Content-Type": "application/json"
},
}
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Mocking
{
"request": {
"method": "GET",
"url": "/api/system/status?op-hours=true",
"headers": {
"X-CLIENT-VERSION": {
"matches": ".*"
},
"X-CLIENT-PLATFORM": {
"matches": ".*"
}
}
},
"response": {
"status": 200,
"bodyFileName": “200/system/status/
system_status_w_all_games_o
ffl
ine.json",
"headers": {
"Content-Type": "application/json"
},
"transformers": ["response-template"]
}
}
POST: /__admin/mappings
GET: /api/system/status?op-hours=true
"headers": {
"X-CLIENT-VERSION": {
"matches": ".*"
},
"X-CLIENT-PLATFORM": {
"matches": ".*"
}
}
RESPONSE:
"response": {
"status": 200,
"bodyFileName": "200/system/status/system_status_w_all_games_o
ffl
ine.json",
"headers": {
"Content-Type": "application/json"
},
}
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Mocking
{
"priority": 1,
"request": {
"method": "GET",
"url": "/api/system/status?op-hours=true",
"headers": {
"X-Test-Client-UniqueId":{
"equalTo": "992B86B3-63EC-425C-9053-4EF5AF9649"
},
"X-CLIENT-VERSION": {
"matches": ".*"
},
"X-CLIENT-PLATFORM": {
"matches": ".*"
}
}
},
"response": {
"status": 200,
"bodyFileName": “200/system/status/
system_status_w_all_games_o
ffl
ine.jsonson",
"headers": {
"Content-Type": "application/json"
},
"transformers": ["response-template"]
}
}
POST: /__admin/mappings
RESPONSE:
"response": {
"status": 200,
"bodyFileName": "200/system/status/system_status_w_all_games_o
ffl
ine.json",
"headers": {
"Content-Type": "application/json"
},
}
GET: /api/system/status?op-hours=true
"headers": {
"X-CLIENT-VERSION": {
"matches": ".*"
},
"X-CLIENT-PLATFORM": {
"matches": ".*"
},
"X-Test-Client-UniqueId":{
"equalTo": "992B86B3-63EC-425C-9053-4EF5AF9649"
}
}
UDID: 992B86B3-63EC-425C-9053-4EF5AF9649
The
Framework
The Journey / Testing Strategy
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Mocking
Selectors
Testing
Strategy
Reporting
Visual Testing
im|possible
CI/CD
Final
Thoughts
Platforms : iOS && Android
Devices : Based on customer reports
Tests type : Happy Paths / Edge scenarios
Device type : Emulators / Simulators / Real
All device tests : Do not test on all
Tests Execution : Run tests in parallel
Approach
Cucumber JS Tags
Single wdio conf
fi
les using parameters con
fi
gurable during
build
SauceLabs
How
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Testing Strategy
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Testing Strategy
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Testing Strategy
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Testing Strategy
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Testing Strategy
The
Framework
The Journey / Reporting
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Mocking
Selectors
Testing
Strategy
Reporting
Visual Testing
im|possible
CI/CD
Final
Thoughts
Quick overview of all tested features
Thorough analysis of how many scenarios failed / passed
Search for a speci
fi
c scenario
Metadata used
Screenshot of the last screen of a test before a test fails
Share results with client
Approach
multiple-cucumber-html-reporter
How
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Reporting
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Reporting
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Reporting
The
Framework
The Journey / Visual Testing
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Mocking
Selectors
Testing
Strategy
Reporting
Visual Testing
im|possible
CI/CD
Final
Thoughts
Screenshots are generated the
fi
rst time a Visual test is triggered
All screens or speci
fi
c elements to be compared against a baseline
screenshot
Speci
fi
c elements to be excluded when capturing a screenshot
Animations to be disabled
Approach
How
Wdio-natine-app-compare-service
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Visual Testing
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Visual Testing
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Visual Testing
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Visual Testing
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Visual Testing
The
Framework
The Journey / im|possible
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Mocking
Selectors
Testing
Strategy
Reporting
Visual Testing
im|possible
CI/CD
Final
Thoughts
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
im|possible
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
im|possible - Geolocation
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
im|possible - Geolocation
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
im|possible - Biometrics
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
im|possible - Biometrics
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
im|possible - Biometrics
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
im|possible - Ticket Scanning
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
im|possible - Ticket Scanning
The
Framework
The Journey / CI/CD
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Mocking
Selectors
Testing
Strategy
Reporting
Visual Testing
im|possible
CI/CD
Final
Thoughts
CI/CD
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Approach
Fast Feedback
Scheduled builds are triggered every night in order to provide extra
stability
No PR is merged unless speci
fi
c builds are triggered and concluded
successfully
Trigger builds manually
How
Bitrise
Saucelabs
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
CI/CD
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
CI/CD
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
CI/CD
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
CI/CD
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
CI/CD
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
CI/CD
The
Framework
The Journey / Final Thoughts
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Mocking
Selectors
Testing
Strategy
Reporting
Visual Testing
im|possible
Final
Thoughts
CI/CD
Increased quality
Development process speedup
Test execution speedup
Most of the time one code for both platforms
Con
fi
dence for the team, QAs focusing mainly
on exploratory testing
No 3rd parties services tested
App is not a production app
Animations disabled
Pros Cons
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Final Thoughts
App Ratings
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Recognition
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Thank you.
THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
Ilias Gianoulis George Romanas

Contenu connexe

Similaire à A Journey Inside a React Native App No Pain No Gain

Open sap ui51_week_2_unit_3_acdt_exercises
Open sap ui51_week_2_unit_3_acdt_exercisesOpen sap ui51_week_2_unit_3_acdt_exercises
Open sap ui51_week_2_unit_3_acdt_exercises
vikram sukumar
 
RahulAnand_Testing_5.9years_exp_CV
RahulAnand_Testing_5.9years_exp_CVRahulAnand_Testing_5.9years_exp_CV
RahulAnand_Testing_5.9years_exp_CV
Rahul Anand
 

Similaire à A Journey Inside a React Native App No Pain No Gain (20)

Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
7 network programmability concepts api
7 network programmability concepts api7 network programmability concepts api
7 network programmability concepts api
 
How React Native, Appium and me made each other shine @Frontmania 16-11-2018
How React Native, Appium and me made each other shine @Frontmania 16-11-2018How React Native, Appium and me made each other shine @Frontmania 16-11-2018
How React Native, Appium and me made each other shine @Frontmania 16-11-2018
 
7 network programmability concepts api
7 network programmability concepts api7 network programmability concepts api
7 network programmability concepts api
 
Experience and best practices from automated software testing in the finance ...
Experience and best practices from automated software testing in the finance ...Experience and best practices from automated software testing in the finance ...
Experience and best practices from automated software testing in the finance ...
 
Appium workshop technopark trivandrum
Appium workshop technopark trivandrumAppium workshop technopark trivandrum
Appium workshop technopark trivandrum
 
Suparna - XCUITest
Suparna - XCUITestSuparna - XCUITest
Suparna - XCUITest
 
BX-D – A Business Component & XML Driven Test Automation Framework
BX-D – A Business Component & XML Driven Test Automation FrameworkBX-D – A Business Component & XML Driven Test Automation Framework
BX-D – A Business Component & XML Driven Test Automation Framework
 
ATAGTR2017 Protractor Cucumber BDD Approach
ATAGTR2017 Protractor Cucumber BDD ApproachATAGTR2017 Protractor Cucumber BDD Approach
ATAGTR2017 Protractor Cucumber BDD Approach
 
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
 
Front End performance as a Continuous Integration - Part1
Front End performance as a Continuous Integration - Part1Front End performance as a Continuous Integration - Part1
Front End performance as a Continuous Integration - Part1
 
Appium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | EdurekaAppium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | Edureka
 
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docxBroncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
 
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docxBroncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
Broncosbuild.xmlBuilds, tests, and runs the project Broncos..docx
 
Android pentesting
Android pentestingAndroid pentesting
Android pentesting
 
Open sap ui51_week_2_unit_3_acdt_exercises
Open sap ui51_week_2_unit_3_acdt_exercisesOpen sap ui51_week_2_unit_3_acdt_exercises
Open sap ui51_week_2_unit_3_acdt_exercises
 
Protractor framework architecture with example
Protractor framework architecture with exampleProtractor framework architecture with example
Protractor framework architecture with example
 
A gently introduction to AngularJS
A gently introduction to AngularJSA gently introduction to AngularJS
A gently introduction to AngularJS
 
RahulAnand_Testing_5.9years_exp_CV
RahulAnand_Testing_5.9years_exp_CVRahulAnand_Testing_5.9years_exp_CV
RahulAnand_Testing_5.9years_exp_CV
 
DEPLOYMENT OF CALABASH AUTOMATION FRAMEWORK TO ANALYZE THE PERFORMANCE OF AN ...
DEPLOYMENT OF CALABASH AUTOMATION FRAMEWORK TO ANALYZE THE PERFORMANCE OF AN ...DEPLOYMENT OF CALABASH AUTOMATION FRAMEWORK TO ANALYZE THE PERFORMANCE OF AN ...
DEPLOYMENT OF CALABASH AUTOMATION FRAMEWORK TO ANALYZE THE PERFORMANCE OF AN ...
 

Plus de Thessaloniki Software Testing and QA meetup

Plus de Thessaloniki Software Testing and QA meetup (9)

MoT Athens meets Thessaloniki Software Testing & QA meetup
MoT Athens meets Thessaloniki Software Testing & QA meetupMoT Athens meets Thessaloniki Software Testing & QA meetup
MoT Athens meets Thessaloniki Software Testing & QA meetup
 
Kubernetes + Jenkins X: a Cloud Native Approach
Kubernetes + Jenkins X: a Cloud Native ApproachKubernetes + Jenkins X: a Cloud Native Approach
Kubernetes + Jenkins X: a Cloud Native Approach
 
Service Testing - Workshop Thessaloniki Meetup
Service Testing - Workshop Thessaloniki Meetup Service Testing - Workshop Thessaloniki Meetup
Service Testing - Workshop Thessaloniki Meetup
 
Service testing - Introduction to SoapUI & groovy
Service testing - Introduction to SoapUI & groovyService testing - Introduction to SoapUI & groovy
Service testing - Introduction to SoapUI & groovy
 
Selenium for java developers
Selenium for java developersSelenium for java developers
Selenium for java developers
 
Automated Test Generation
Automated Test GenerationAutomated Test Generation
Automated Test Generation
 
It’s a world of bugs after all
It’s a world of bugs after allIt’s a world of bugs after all
It’s a world of bugs after all
 
GUI, Performance, Load and API testing with Test Studio
GUI, Performance, Load and API testing with Test StudioGUI, Performance, Load and API testing with Test Studio
GUI, Performance, Load and API testing with Test Studio
 
Test automation-framework
Test automation-frameworkTest automation-framework
Test automation-framework
 

Dernier

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Dernier (20)

%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 

A Journey Inside a React Native App No Pain No Gain

  • 1. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 A Journey inside a React Native App No pain, no gain
  • 2. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 " " I have changed only 1 line of code. No testing is needed…. Anonymous dev George Romanas Software Engineer in Test Lead @CamelotLS since 2016
  • 3. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 " " Make it work, make it right, make it fast Kent Beck Ilias Giannoulis Software Engineer in Test Lead @CamelotLS since 2019
  • 4. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 No parallelization needed just implementing and running some tests Only 1 emulator and 1 simulator available Implementing functional tests and running tests one by one Only one Mac machine locally used to build the app How Everything Started
  • 5. The Framework The Journey / The Framework THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Mocking Selectors Testing Strategy Reporting Visual Testing im|possible CI/CD Final Thoughts
  • 6. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 The Framework
  • 7. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 The Framework Tools:
  • 8. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 The Framework Reqs: Tool must be cross-platform 1 Ideally developers should be involved on testing (Javascript) 2 Test on emulators / simulators / real devices 3 CI/CD 4 5 Reporting 6 Test BDD style (Given, When, Then)
  • 9. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Appium in order to be able to perform speci fi c actions like swipe, webview context 1 Wdio solid solution, easy to setup, JS based framework, using several plugins (Appium, image comparison, reporting) in order to have a robust test suite, built in assertion library, parallel execution, plays locally/grid/cloud 2 Cucumber for the behavior driven development customer wants 3 The Framework
  • 10. The Framework The Journey / Selectors THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Testing Strategy Reporting Visual Testing im|possible CI/CD Final Thoughts Selectors Mocking
  • 11. Approach How THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Accessibility ID XPath iOS class chain Android UI selector testProperties Selectors
  • 12. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Accessibility ID is a cross platform solution 1 XPath selectors only in very rare cases where accessibility Ids cannot be implemented 2 iOS class chain, a hybrid solution between an XPath and a predicate string, developed by Appium for hierarchical queries in more performant way 3 Android UISelector speci fi es the elements in the layout hierarchy fi ltered by properties (text value, class name etc) usually used for interacting with Android emulator menu elements 4 Selectors
  • 13. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Selectors In case of an automation build we are returning the accessibility labels inside the automation build 1 When test-properties are used into the code of a view label then it has the accessibility label on it 2In case of an IOS automation build we introduce testID 3
  • 14. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Selectors
  • 15. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Selectors
  • 16. The Framework The Journey / Mocking THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Selectors Testing Strategy Reporting Visual Testing im|possible CI/CD Final Thoughts Mocking
  • 17. Approach Mimic the HTTP API’s behaviour Minimal dependency by 3rd party services Minimise Flakiness Testing Edge case/ Error /Delay cases How Wiremock THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Mocking
  • 18. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Mocking GET: /api/system/status?op-hours=true "headers": { "X-CLIENT-VERSION": { "matches": ".*" }, "X-CLIENT-PLATFORM": { "matches": ".*" } } RESPONSE: "response": { "status": 200, "bodyFileName": "200/system/status/system_status_twenty_four_ophours.json", "headers": { "Content-Type": "application/json" }, }
  • 19. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Mocking { "request": { "method": "GET", "url": "/api/system/status?op-hours=true", "headers": { "X-CLIENT-VERSION": { "matches": ".*" }, "X-CLIENT-PLATFORM": { "matches": ".*" } } }, "response": { "status": 200, "bodyFileName": “200/system/status/ system_status_w_all_games_o ffl ine.json", "headers": { "Content-Type": "application/json" }, "transformers": ["response-template"] } } POST: /__admin/mappings GET: /api/system/status?op-hours=true "headers": { "X-CLIENT-VERSION": { "matches": ".*" }, "X-CLIENT-PLATFORM": { "matches": ".*" } } RESPONSE: "response": { "status": 200, "bodyFileName": "200/system/status/system_status_w_all_games_o ffl ine.json", "headers": { "Content-Type": "application/json" }, }
  • 20. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Mocking { "priority": 1, "request": { "method": "GET", "url": "/api/system/status?op-hours=true", "headers": { "X-Test-Client-UniqueId":{ "equalTo": "992B86B3-63EC-425C-9053-4EF5AF9649" }, "X-CLIENT-VERSION": { "matches": ".*" }, "X-CLIENT-PLATFORM": { "matches": ".*" } } }, "response": { "status": 200, "bodyFileName": “200/system/status/ system_status_w_all_games_o ffl ine.jsonson", "headers": { "Content-Type": "application/json" }, "transformers": ["response-template"] } } POST: /__admin/mappings RESPONSE: "response": { "status": 200, "bodyFileName": "200/system/status/system_status_w_all_games_o ffl ine.json", "headers": { "Content-Type": "application/json" }, } GET: /api/system/status?op-hours=true "headers": { "X-CLIENT-VERSION": { "matches": ".*" }, "X-CLIENT-PLATFORM": { "matches": ".*" }, "X-Test-Client-UniqueId":{ "equalTo": "992B86B3-63EC-425C-9053-4EF5AF9649" } } UDID: 992B86B3-63EC-425C-9053-4EF5AF9649
  • 21. The Framework The Journey / Testing Strategy THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Mocking Selectors Testing Strategy Reporting Visual Testing im|possible CI/CD Final Thoughts
  • 22. Platforms : iOS && Android Devices : Based on customer reports Tests type : Happy Paths / Edge scenarios Device type : Emulators / Simulators / Real All device tests : Do not test on all Tests Execution : Run tests in parallel Approach Cucumber JS Tags Single wdio conf fi les using parameters con fi gurable during build SauceLabs How THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Testing Strategy
  • 23. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Testing Strategy
  • 24. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Testing Strategy
  • 25. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Testing Strategy
  • 26. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Testing Strategy
  • 27. The Framework The Journey / Reporting THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Mocking Selectors Testing Strategy Reporting Visual Testing im|possible CI/CD Final Thoughts
  • 28. Quick overview of all tested features Thorough analysis of how many scenarios failed / passed Search for a speci fi c scenario Metadata used Screenshot of the last screen of a test before a test fails Share results with client Approach multiple-cucumber-html-reporter How THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Reporting
  • 29. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Reporting
  • 30. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Reporting
  • 31. The Framework The Journey / Visual Testing THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Mocking Selectors Testing Strategy Reporting Visual Testing im|possible CI/CD Final Thoughts
  • 32. Screenshots are generated the fi rst time a Visual test is triggered All screens or speci fi c elements to be compared against a baseline screenshot Speci fi c elements to be excluded when capturing a screenshot Animations to be disabled Approach How Wdio-natine-app-compare-service THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Visual Testing
  • 33. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Visual Testing
  • 34. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Visual Testing
  • 35. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Visual Testing
  • 36. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Visual Testing
  • 37. The Framework The Journey / im|possible THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Mocking Selectors Testing Strategy Reporting Visual Testing im|possible CI/CD Final Thoughts
  • 38. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 im|possible
  • 39. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 im|possible - Geolocation
  • 40. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 im|possible - Geolocation
  • 41. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 im|possible - Biometrics
  • 42. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 im|possible - Biometrics
  • 43. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 im|possible - Biometrics
  • 44. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 im|possible - Ticket Scanning
  • 45. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 im|possible - Ticket Scanning
  • 46. The Framework The Journey / CI/CD THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Mocking Selectors Testing Strategy Reporting Visual Testing im|possible CI/CD Final Thoughts
  • 47. CI/CD THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
  • 48. Approach Fast Feedback Scheduled builds are triggered every night in order to provide extra stability No PR is merged unless speci fi c builds are triggered and concluded successfully Trigger builds manually How Bitrise Saucelabs THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 CI/CD
  • 49. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 CI/CD
  • 50. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 CI/CD
  • 51. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 CI/CD
  • 52. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 CI/CD
  • 53. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 CI/CD
  • 54. The Framework The Journey / Final Thoughts THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Mocking Selectors Testing Strategy Reporting Visual Testing im|possible Final Thoughts CI/CD
  • 55. Increased quality Development process speedup Test execution speedup Most of the time one code for both platforms Con fi dence for the team, QAs focusing mainly on exploratory testing No 3rd parties services tested App is not a production app Animations disabled Pros Cons THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Final Thoughts
  • 56. App Ratings THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
  • 57. Recognition THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023
  • 58. Thank you. THESSALONIKI SOFTWARE TESTING & QA MEETUP / March 2023 Ilias Gianoulis George Romanas