AQA: программирование или готовый фреймворк?

Друзья, не так давно вышла статья об инструментах автоматизации и в связи с этим возник вопрос: а какой ваш опыт использования фреймворков? Имеются ввиду готовые инструменты, подобные рекордерам и ускоряющие процесс написания автотестов практически без написания кода. Есть ли у них реальные плюсы или весь процесс разработки автотестов рано или поздно придет к написанию кода? Поделитесь своим опытом в разных проектах.

Рекордер удобно использовать как вспомогательное средство при создании тестов или для каких-то простеньких сценариев, чтобы по-быстрому. Но что-то более-менее сложное, используя только рекордер, не сделаешь. Точнее сделать можно, но поддерживать это и развивать будет адским занятием.

3 лайка

Пробовал использовать espresso recorder для автоматизации android тестирования. Он писал такие адские конструкции, что после второго теста созданного им - я решил от него отказаться.

У готовых фреймворков есть плюсы, но наличие рекордера это не тот плюс, ради которого стоит приобретать фреймворк.
Совсем без написания кода обойтись не получится. Но можно подготовить солидную базу, которая позволит другим тестировщикам использовать профит автоматизации. Например, мы пользуемся ТестКомплитом. С его помощью приложение разобрано на кирпичики (репозиторий элементов NameMapping), написаны вспомогательные классы и методы и т.п. Теперь любой тестировщик (и не только) может создать последовательность шагов и верификаций, используя Keyword Tests - фактически перетаскивая мышкой различные элементы конструктора.

То есть, получается, у вас само программирование было в начале, а потом - пользование готовыми методами. А как в этом случае с поддержкой такого проекта? Дописывать и рефакторить часто приходится?

Скорее пользование готовыми блоками оказалось приятным бонусом. Программирование идет постоянно, потому что приложения развиваются - меняется дизайн, добавляется функционал, новые модули. Рефакторинг тоже имеет место, всегда можно что-то оптимизировать, или появляется необходимость интегрировать какие-то технологии, которые до этого не использовались на проекте.

2 лайка

готовый фреймворк + программирование

3 лайка