Общий тестовый фреймворк для Mobile и Web (Appium + Selenium)

Я тоже не критикую, даже интересно.

  1. Это в первую очередь демонстрация подхода, техническая реализация только, чтобы попробовать сам подход, посмотреть взлетит или нет, без over-engineering: конкретно на Вашем проекте какие есть сложности, особенности. В продакшене совсем другой код - это проект-поделка.
  2. Про большее из зол(UX) - большая часть презентации.
  3. Конкретизируй, что именно сыро.
  4. Что не так? А как надо?

P.S. Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds

То, что вы выносите платформенные детали реализации в степы:

Steps
def perform_some_action():
  if config.test_run.IS_MOBILE:
    if config.test_run.IS_ANDROID:
      if config.test_run.PLATFORM_VERSION < 25:
        item.tap()
      else:
        item.longPress()
    if config.test_run.IS_IPHONE
      item.swipeLeft()
    if config.test_run.IS_IPAD
      item.doubleTap()
  else:
    item.click()

Пример синтетический - но на практике все может быть гораздо хуже.

Когда так разрастается (вообще какой угодно продукт, код) -> рефакторинг - это естественно(тут выбираете вариант по вкусу, чтобы вы кстати выбрали?). Можно заранее конечно, но это риск написать лишних ненужных абстракций. Да и опять же для демонстрации…

А вообще степы в данном подходе как раз для описания разного UX и используются и именно в разрезе этого слоя и можно посмотреть насколько отличается поведение на разных платформах.
Слишком сложно (как в этой синтетике) -> да я охерею, как пользователь, если у меня на телефоне и планшете постоянно надо разные действия совершать, повод задуматься, может это UX баг? Мы кстати ловили какие-то несогласованности именно когда какие-то методы в степах разрастались, общались, приходили к выводу, что пользователь будет несчастен и потом исправляли.

Кстати видео в открытый доступ подъехало:

1 лайк