Publicidad
Publicidad

Más contenido relacionado

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

Publicidad

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
Publicidad