In this episode of the
Test Guild Automation podcast, I explore the world of mobile UI testing, focusing on a new Swift driver for the Appium framework. My guest, Dalton, a self-taught Swift developer, walks us through the journey of creating this driver to assist in writing UI tests for his company's applications.
Browser Stack App Live sponsors the episode, offering a cloud-based platform for mobile application testing on real Android and iOS devices, eliminating the need for personal device clouds. Dalton shares his transition from developing iOS applications to automating tests, motivated by the familiarity and functionality of Swift. He explains the decision to use the Appium framework and the advantages of multi-platform testing across web and mobile environments. Although some criticize Appium's speed, Dalton hasn't faced significant performance issues, attributing delays to network and login processes rather than the framework itself.
When discussing Swift's integration with Appium, Dalton emphasizes the ease of learning once devices are connected and sessions are established. His Swift driver, while still bare bones, invites contributions and suggestions from the community to enhance its capabilities. He outlines the simplicity and minimal dependencies required, using Swift Package Manager and testing libraries as tools for automation. A key benefit of the Swift framework is its parallelization capabilities, offering improved concurrency and faster execution for those comfortable with Swift.
Dalton shares the process of developing the open-source project, receiving feedback and support from the Appium community, and his openness to suggestions for further development. Challenges encountered during development included limited documentation and variations in naming conventions. Dalton initially faced issues with Safari, leading to a transition to Chrome, which offered better support. He values community feedback and encourages contributions to refine the driver.
UI testing's importance is highlighted through the comprehensive running of tests to catch bugs before release. Dalton outlines his involvement in creating tests that cover various user scenarios and suggests developing screenshot tests as an entry point for testers. He acknowledges the role of UI tests in ensuring a reliable product flow, despite their limitations compared to unit tests. The impact of UI testing on development processes and ensuring smooth code integration are also discussed. Challenges like maintaining speed and combating flakiness in UI tests are also addressed, with Dalton emphasizing the importance of conversations around changes in the application.
Finally, Dalton encourages developers and testers to contribute to open-source projects, promoting Swift Appium Driver on GitHub and inviting others to expand its functionality. For those interested, Dalton is available on LinkedIn and Blue Sky for further engagement and collaboration. Overall, this podcast highlights the integration of Swift with Appium for mobile UI testing, offering insights into Dalton's journey, development choices, and opportunities for community involvement.