Using Python and Selenium to build an automated test suite for the CoGo mobile app
Who are CoGo?
CoGo (Connecting Good) is an innovative social impact startup giving consumers the opportunity to spend their money more ethically. Their mobile app enables users to connect with businesses sharing similar values on social issues, including climate change, fair trade, and living wages. App users can find like-minded businesses and are encouraged to spend their money more ethically.
Why Lambert Labs?
CoGo reached out to Lambert Labs because of our expertise in automated testing and experience creating test suites enabling efficient and rigorous Quality Assurance (QA).
In particular, Lambert Labs’ in-depth knowledge of Python and testing libraries such as pytest and Selenium made us a good fit for CoGo’s QA objectives.
What we did – technical implementation
- Setup a local automated testing environment using Python, pytest, Appium, and Selenium
- Configured automated testing for Android devices (emulator and physical) via Java Development Kit and Android Studio
- Configured automated testing for iOS devices (emulator and physical) via Xcode
- Integrated the automated testing suite with the CoGo mobile app, which is built using React Native
- Wrote tests for Android and iOS covering core user actions including login, logout, signup and various other user journeys
- Adapted the pytest command line interface to improve developer productivity
- Created logging of failed tests (log messages and app screenshots) to facilitate analysis of the app’s functionality
- Updated tests regularly in line with new versions of the app
What we did – non-technical implementation
- Manual QA testing
- Quickly familiarised ourselves with the existing process
- Liaised with relevant CoGo team members to resolve issues quickly
- Suggested UI improvements and found additional bugs whilst testing predefined acceptance criteria
- Used a CMS to test the effect of database changes on the app
- Project management
- Organised regular calls for progress updates.
- Participated in Product team meetings, retrospectives, sprint planning, and backlog refinement
- Wrote documentation to enable a smooth handover
- Proposed ways to expand the current automated test suite