In a team which is developing mobile apps for multiple platforms, it becomes extremely difficult to maintain multiple Automation codebases and frameworks to test the app. This becomes a bigger problem when the same team is churning out multiple flavours of the same app.
What this showcases is how we have built an automation framework that tests 2 different flavours of an app along with using the same framework to test these apps across 3 different platforms.
The session will also include the challenges we faced while moving from a purely Functional approach to writing code to an Object-oriented approach to structure our automation code.
This will help other testing practitioners attending this session in building a robust automation framework with a very reliable and scalable codebase that can be extended beyond just one application/platform.
12. TOOLS & METHODOLOGY
○ Page Object Pattern
○ Functional Tests and Visual Tests
○ Calabash & Watir-Webdriver as drivers
○ Code in Ruby
○ Harper for mocks
○ Nakal for Visual tests
○ Cucumber for english style scenarios (automation & manual)
○ Espresso for Android Integration Tests
○ XUnit for iOS Unit Tests
○ Go CI for CI/CD
18. SOLUTIONS
Rewriting our automation Code
○ SWAT team
○ Functional to POP
○ Addition of Visual Tests
○ Fix library issues, upgrades
○ Imperative to Declarative scenarios - User
journeys instead of User scenarios
Automation is a Safety Net. If the net’s grid is too wide, issues will ‘pass-through’. If the net’s grid is too small, nothing will ‘pass-through’. It is important to have the net of appropriate (based on context) grid-size to get the work done.
Developers - Test Pyramid of Unit, System and Integration tests
QA team - Test Pyramid of Functional Automation (UI and service layer) and Manual tests
These pyramids are disjoint
Lack of visibility into complete test coverage
Duplication
Holes
Developers - Test Pyramid of Unit, System and Integration tests
QA team - Test Pyramid of Functional Automation (UI and service layer) and Manual tests
These pyramids are disjoint
Lack of visibility into complete test coverage
Duplication
Holes
Developers - Test Pyramid of Unit, System and Integration tests
QA team - Test Pyramid of Functional Automation (UI and service layer) and Manual tests
These pyramids are disjoint
Lack of visibility into complete test coverage
Duplication
Holes
Developers - Test Pyramid of Unit, System and Integration tests
QA team - Test Pyramid of Functional Automation (UI and service layer) and Manual tests
These pyramids are disjoint
Lack of visibility into complete test coverage
Duplication
Holes
Developers - Test Pyramid of Unit, System and Integration tests
QA team - Test Pyramid of Functional Automation (UI and service layer) and Manual tests
These pyramids are disjoint
Lack of visibility into complete test coverage
Duplication
Holes
Developers - Test Pyramid of Unit, System and Integration tests
QA team - Test Pyramid of Functional Automation (UI and service layer) and Manual tests
These pyramids are disjoint
Lack of visibility into complete test coverage
Duplication
Holes
Developers - Test Pyramid of Unit, System and Integration tests
QA team - Test Pyramid of Functional Automation (UI and service layer) and Manual tests
These pyramids are disjoint
Lack of visibility into complete test coverage
Duplication
Holes
Developers - Test Pyramid of Unit, System and Integration tests
QA team - Test Pyramid of Functional Automation (UI and service layer) and Manual tests
These pyramids are disjoint
Lack of visibility into complete test coverage
Duplication
Holes
Developers - Test Pyramid of Unit, System and Integration tests
QA team - Test Pyramid of Functional Automation (UI and service layer) and Manual tests
These pyramids are disjoint
Lack of visibility into complete test coverage
Duplication
Holes
Developers - Test Pyramid of Unit, System and Integration tests
QA team - Test Pyramid of Functional Automation (UI and service layer) and Manual tests
These pyramids are disjoint
Lack of visibility into complete test coverage
Duplication
Holes
Developers - Test Pyramid of Unit, System and Integration tests
QA team - Test Pyramid of Functional Automation (UI and service layer) and Manual tests
These pyramids are disjoint
Lack of visibility into complete test coverage
Duplication
Holes
Developers - Test Pyramid of Unit, System and Integration tests
QA team - Test Pyramid of Functional Automation (UI and service layer) and Manual tests
These pyramids are disjoint
Lack of visibility into complete test coverage
Duplication
Holes