Как автоматизатору не оказаться за бортом эволюции

6 августа 2015, 11:10

Автоматизированное тестирование вчера, сегодня и завтра — три независимых, принципиально отличных друг от друга инженерных дисциплины, пишет в своей колонке основатель белорусского сообщества автоматизаторов COMAQA.BY Антон Семенченко.

Читать далее

Почему вчерашние инструменты не работают

Автоматизация вчера — это прежде всего использование узкоспециализированных, дорогостоящих так называемых record-play UI-инструментов. Данный подход не требует ни серьёзных инженерных навыков, ни глубокого знания промышленного программирования. С другой стороны, для эффективного использования этих сложных инструментов требуются специализированные знания, и безусловно, море опыта. Таким образом, замечательный автоматизатор вчерашнего дня — это инженер без серьёзных навыков программирования, очень глубоко владеющий целым рядом сложных инструментов и обладающий опытом решения сложных задач с их помощью. Таких специалистов очень мало: чтобы дорасти до такого уровня, требуется пройти большой и сложный профессиональный путь.

К сожалению, сегодня подходы вчерашнего дня чаще всего являются либо технически неосуществимыми, либо экономически несостоятельными. Это обусловлено экспоненциальным взрывообразным ростом UI-разнообразия: появилось огромное количество оконных библиотек даже для такого, казалось бы, стандартного типа приложений, как десктопное. Для веба и тем более мобильных платформ существует множество принципиально отличных друг от друга UI-компонентов. В силу многообразия разработать один инструмент, способный работать с любыми типами UI либо физически невозможно, либо его использование является чрезвычайно трудоёмким, технически сложным, и, как следствие, экономически невыгодным.

Также свою лепту в «отмирание» топовых инструментов автоматизации вчерашнего дня вносит «усталость» системы: добавления множества новых функций к исторически сложившемуся программному монстру является очень сложной инженерной задачей, а значит, либо цена подобного приложения будет заоблачной, либо время выпуска новых фич будет неоправданно долгим, либо их качество — недостаточно высоким. Топовые инструменты вчерашнего дня зачастую демонстрируют микс из всех трёх недостатков.

Антон Семенченко. Фото: Андрей Давыдчик.

Разработчик, тестировщик и DevOps-специалиста в одном флаконе

Автоматизация сегодняшего и завтрашнего дня — сложное промышленное программирование, пусть и в очень узком, единообразном контексте автоматизированного тестирования.

Современный автоматизатор — это объединение разработчика, тестировщика и DevOps-специалиста в одном флаконе. Подходы на базе промышленного программирования позволяют специалистам пусть и с более высоким порогом вхождения быстро (экономически выгодно) решать самые разные (порой очень сложные) задачи автоматизированного тестирования. Элегантная архитектура, грамотное разбиение на модули, следование best practices программирования, использование стандартов кодирования и code review делают возможным очень быстрое обновление автоматизированных скриптов при изменении приложения. Более того, написание собственных вспомогательных инструментов для автоматизированного тестирования сегодня является нормой.

Хороший автоматизатор сегодняшнего и завтрашнего дня — прежде всего программист со знаниями в quality assurance. Как правило, у него не так много опыта и специализированных знаний в области автоматизации в отличие от специалистов вчерашнего дня, но имеются твёрдые знания промышленного программирования. Сегодня подобных специалистов практически нет, именно поэтому во всём мире они ценятся очень высоко.

Основной целью создания «Сообщества автоматизаторов и сочувствующих» COMAQA.BY был поиск подобных специалистов, создание площадки для эффективного общения, «перекрёстного опыления», обучения автоматизации сегодняшнего и завтрашнего дня. Мне, как одному из организаторов сообщества, хочется верить что нам удалось достичь заявленных целей. Судить вам.

Ряд компаний, поняв всю важность, сверхвысокую востребованность современной автоматизации, открыли независимые отделы автоматизированного тестирования. Так, в компании IsSoft более двух лет успешно развивается независимый отдел автоматизаторов в 40 человек плюс несколько десятков «сочувствующих» (смешанных специалистов, занимающихся ручным и автоматизированным тестированием, DevOps и автоматизированным тестированием). Компания DPI.Solutions и вовсе специализируется на автоматизированном тестировании.

Эволюционный тренд и закон Седова

А чем же различается автоматизация сегодняшнего и завтрашнего дня?

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

Согласно закону Седова, многообразие на верхнем уровне иерархии (количество способов использования языков программирования, разнообразие программного обеспечения, на них разработанного) требует строжайшей стандартизации и ограниченности нижних уровней (языков программирования, стандартных библиотек, сетевых протоколов). Иными словами, для того, чтобы филигранно овладеть инструментом, требуется время/силы, а значит, набор инструментов должен быть очень ограничен — один, два, три. Или ты используешь сотни инструментов, но каждым владеешь на уровне «могу лишь гвозди забивать». Вот и получается, что либо языков масса, и мы не умеем ими пользоваться и решать по-настоящему сложные задачи, либо языков считанные единицы, и мы можем строить с их помощь сколь угодно сложные конструкции.

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

Проявление закона Седова заметно невооружённым взглядом. Selenium, стандарт де-факто (и в ближайшем будущем де-юре) для веба, распространяется и на другие платформы. Appium — универсальный инструмент кроссплатформенной мобильной автоматизации — совместим с Selenium. На рынке появились «чудеса техники» вроде QtWebDriver для автоматизации Qt-приложений в «Selenium-стиле». Инструменты становятся всё сложнее, универсальнее, выходят за рамки привычного изначального использования, превращаются в стандартизированных «монстров». Поэтому хороший автоматизатор завтрашнего дня должен владеть промышленным программированием ещё лучше, чем это требуется сегодня, чтобы справиться с возросшей сложностью заматеревшего, остандартизировавшегося инструмента, досконально знать считанные сложные библиотеки.

Вакуум автоматизаторов

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

Войти или хотя бы заглянуть в профессию проще всего, посетив конференцию, посвящённую автоматизированному тестированию, чтобы с высоты птичьего полёта выхватить самые разные аспекты профессии. Также на рынке представлены специализированные курсы по автоматизированному тестированию.

В одной из следующих статей я поделюсь с вами оптимальным, на мой взгляд, алгоритмом входа в ИT в целом и автоматизированное тестирование в частности. Надеюсь, пошаговая инструкция с перечнем необходимых знаний, умений и способов их получения поможет вам сделать первые шаги в выбранной профессии. Я также всегда рад ответить на любые ваши вопросы: пишите на почту сообщества COMAQA.BY.

 

*Мнение колумнистов может не совпадать с позицией редакции.

Обсуждение