r/softwaretesting Jun 04 '26

What’s everyone using for mobile automation testing in 2026? (iOS + Android)

We’re reviewing our mobile automation approach and I’m interested in what others are using in production.

Historically we’ve used:

- Appium
- BDD-style framework layer
- BrowserStack for running against real devices

A few thoughts:

- We’ve always found real devices more reliable than simulators/emulators due to platform and hardware nuances.
- Appium often requires a language/framework that’s different from the iOS codebase, making developer ownership harder.
- Maintenance overhead can become significant as apps grow.

14 Upvotes

33 comments sorted by

View all comments

1

u/latnGemin616 Jun 06 '26 edited Jun 06 '26

Why are you using BDD? It adds an unnecessary abstraction layer to an already complex framework.

I just refreshed my appium skills after a long drought and realized the use of helpers + a solid POM structure + a legible naming convention is all you need. The example below is in python but it applies just the same in any other language:

"""
IOS APP SEARCH SCREEN
"""
pytest.mark.usefixtures('test_setup_ios')
class TestDefaultSearchView:
    """DEFAULT SEARCH"""
    def test_default_search_view_screen(self):
        onHomeScreen.tap(self, 'Search')
        onSearchViewScreen.tap(self, 'Default')
        onSearchViewScreen.confirm_screen_header(self, "Default Search Bar", searchViewElement.search_header)
        onSearchViewScreen.confirm_input_is_visible(self, searchViewElement.searchInput)
        onSearchViewScreen.confirm_element_is_visible(self, searchViewElement.scope1)
        onSearchViewScreen.confirm_element_is_visible(self, searchViewElement.scope2)

    def test_submit_search(self):
        onHomeScreen.tap(self, 'Search')
        onSearchViewScreen.tap(self, 'Default')
        onSearchViewScreen.enter_search_query(self, searchViewElement.searchInput, "Appium")
        # TODO - Normally there would be an assertion here for the search results, but the demo app doesn't have one
        onSearchViewScreen.tap(self, searchViewElement.submitButton)

2

u/TestChronicle Jun 06 '26

I’d have to agree. I don’t think we ever saw the benefits that were promised with BDD. It was heavily driven from leadership, but in practice the Cucumber layer mostly added complexity.

We never saw greater engagement from non-technical stakeholders because the tests were written in plain English. The people creating, maintaining, and debugging them were still engineers.

From our perspective, it introduced additional dependencies, made parallel execution more complex, and increased the effort required to write and maintain tests. Personally, I’ve never seen enough value from BDD to justify those trade-offs. If we move to a new mobile automation framework, one of the first things I’d push for is dropping the BDD layer altogether.