avito-tech / Mixbox

iOS UI testing framework https://t.me/mixbox_english https://t.me/mixbox_russian
MIT License
154 stars 27 forks source link

Проект жив или мертв? #14

Closed antigp closed 2 years ago

antigp commented 5 years ago

В readme написано может стабать сетевые запросы 0.2.3 - не умеет master - не собирается

artyom-razinov commented 5 years ago

Проект жив на Xcode 10.1/10.2.1, гоняет стабильно 200 UI тестов на ~20PR в день.

Мастер собирается: https://travis-ci.org/avito-tech/Mixbox

На Xcode 10.3 заведу, спасибо. Совсем забыл про него. У нас CI и продукт толстые, поэтому мы не спешим обновлять.

antigp commented 5 years ago

Сори, среди ночи голова не особо варила =) Да, удалось завести мастер. Проблема с podspec, они разных версий все и смотрят на разные теги. Получается не консистентное состояние.

Правильно ли я понимаю, только исходники из мастера могут стабить сеть? Или даже они не могут, я не могу понять откуда берется объект networking.stubbing Демо приложение в мастере не совсем верное, тк написано для 0.2.3 версии, а мастер уже далеко ушел.

Так же в описании стоит добавить что какой под делает, и вот этот DependencyFactory не совсем понятны все его параметры P.s. На Xcode 10.3 проблем не обнаружил

artyom-razinov commented 5 years ago

Мы используем завязку на коммит из мастера, обновляем через pod update. Сеть стабается и из мастера, и из 0.2.3. К сожалению, демо не содержит примеров кода, только линковки. Есть куча кода в тестовом проекте - Tests.

я не могу понять откуда берется объект networking.stubbing

Прописано в базовом классе тесткейса. https://github.com/avito-tech/Mixbox/tree/master/Tests

Все экстеншены к XCTestCase полностью внешние по отношению к фреймворку (во фреймворке не экстендится ничего). При подключении фреймворка ничего по-дефолту не происходит и ничего не появляется. Отсюда вытекают свои плюсы (все можно отключить и потюнить), и свои минус - надо все обвязки написать самому.

YarZavOleg commented 4 years ago

Если не трудно и как будет время, не могли бы прогнать сборку :( Возможно, ошибаюсь, но вроде проблема со сборкой идет уже 4 месяца? Приходится форкаться, что-то докручивать и использовать уже только после этого :( https://travis-ci.org/avito-tech/Mixbox/builds

artyom-razinov commented 4 years ago

Проект жив, но для опенсурс коммьюнити он мертв. В Авито работает, сейчас идет супер активная фаза внедрения полной пирамиды тестирования средствами одного этого фреймворка. Демо, возможно работает в ветке real-demo, а возможно и нет (делал по заказу для человека).

Всем, кто обращается, я рекомендую либо вообще не автотестить (потому что сложно, дорого и нервно), либо делать максимально примитивно на XCTest (который не покрывает много кейсов, см. https://github.com/artyom-razinov/XCUILimitations, и это только по работе с UI, и это только самые очевидные/поверхностные ограничения).

Travis сборка заброшена, демка заброшена. Потому что нет ощущения, что сейчас все готово для распространения в коммьюнити, да и времени нет, сейчас поднимаем с колен Gray Box тестирование - секундные UI тесты полностью замоканных отдельных экранов (с кодогенерированными моками типа Mockito, см. https://github.com/Brightify/Cuckoo). Хотелось бы сделать все хорошо как минимум у нас в Авито, потом думать уже о том, как сделать хорошо где-то вне Авито.


К слову о статусе того как это работает в авито - пулреквесты по 200 E2E UI тестов и 150*3 gray box UI тестов (3 платформы) вместе с компиляцией (всего 16 билд конфигураций) идут примерно 30-60 минут. Проверки UI тестов довольно стабильно проходят, в рамках 99%. При импакте 700 E2E тестов валится обычно 1.

Полный суит регрессионных E2E тестов с учетом всех платформ зеленый на стабильном уровне 96%. Релизный цикл 2 недели.

К сожалению, пока ограничено то, что мы можем покрыть gray box тестами, в том числе из-за отсутствия удобства в написании тестов, мы движемся в сторону очень атомарных проверок и большому числу очень коротких тестов (5-10 строк), но пока у нас во многих тестах мокается сеть на уровне JSON, а не моделей (что усложняет поддержку), тесты сами с большим количеством бойлерплейта и нерелевантного для теста кода (что усложняет написание и чтение), стаббинг классов с большим полей также добавляет бойлерплейт. Это сейчас в приоритете, и сейчас большая часть работы делается в приватном репозитории.


Также у нас пока нет ни одного известного нам юзера. Из-за этого в том числе опенсурс не в приоритете.

Бывает, я отговариваю от использования, так не уверен, что все будет гладко в перспективе использования в какой-то другой компании, нет ни опыта поддержки такого размера проектов для коммьюнити, ни ощущения того, что все доделано, и можно лишь саппортить продукт.

Вы говорите, что вы форкаетесь и правите? Это очень интересно. Какие у вас сценарии использования?

YarZavOleg commented 4 years ago

Проект жив, но для опенсурс коммьюнити он мертв. В Авито работает, сейчас идет супер активная фаза внедрения полной пирамиды тестирования средствами одного этого фреймворка. Демо, возможно работает в ветке real-demo, а возможно и нет (делал по заказу для человека).

Всем, кто обращается, я рекомендую либо вообще не автотестить (потому что сложно, дорого и нервно), либо делать максимально примитивно на XCTest (который не покрывает много кейсов, см. https://github.com/artyom-razinov/XCUILimitations, и это только по работе с UI, и это только самые очевидные/поверхностные ограничения).

Travis сборка заброшена, демка заброшена. Потому что нет ощущения, что сейчас все готово для распространения в коммьюнити, да и времени нет, сейчас поднимаем с колен Gray Box тестирование - секундные UI тесты полностью замоканных отдельных экранов (с кодогенерированными моками типа Mockito, см. https://github.com/Brightify/Cuckoo). Хотелось бы сделать все хорошо как минимум у нас в Авито, потом думать уже о том, как сделать хорошо где-то вне Авито.

К слову о статусе того как это работает в авито - пулреквесты по 200 E2E UI тестов и 150*3 gray box UI тестов (3 платформы) вместе с компиляцией (всего 16 билд конфигураций) идут примерно 30-60 минут. Проверки UI тестов довольно стабильно проходят, в рамках 99%. При импакте 700 E2E тестов валится обычно 1.

Полный суит регрессионных E2E тестов с учетом всех платформ зеленый на стабильном уровне 96%. Релизный цикл 2 недели.

К сожалению, пока ограничено то, что мы можем покрыть gray box тестами, в том числе из-за отсутствия удобства в написании тестов, мы движемся в сторону очень атомарных проверок и большому числу очень коротких тестов (5-10 строк), но пока у нас во многих тестах мокается сеть на уровне JSON, а не моделей (что усложняет поддержку), тесты сами с большим количеством бойлерплейта и нерелевантного для теста кода (что усложняет написание и чтение), стаббинг классов с большим полей также добавляет бойлерплейт. Это сейчас в приоритете, и сейчас большая часть работы делается в приватном репозитории.

Также у нас пока нет ни одного известного нам юзера. Из-за этого в том числе опенсурс не в приоритете.

Бывает, я отговариваю от использования, так не уверен, что все будет гладко в перспективе использования в какой-то другой компании, нет ни опыта поддержки такого размера проектов для коммьюнити, ни ощущения того, что все доделано, и можно лишь саппортить продукт.

Вы говорите, что вы форкаетесь и правите? Это очень интересно. Какие у вас сценарии использования?

Да, Вас понял, спасибо большое за ответ! Пока что попробую поразбираться с либой и подкрутить для использования в своем проекте :)