документации, связанной с ручным тестированием, и выполнение проверок.
— Automation QA Engineer — это инженер, занимающийся в основном автоматизированным тестированием. Сюда входит преимущественно создание фреймворка автотестов и самих автотестов, при использовании ручных тестов спецификации аналитиков или кода разработчиков в виде источника информации.
— Fullstack QA Engineer — это инженер, занимающийся ручным и автоматизированным тестированием.
— Software Developer Engineer in Test (SDET) — это разработчик с хорошим опытом в тестировании. Занимается автоматизацией ручного тестирования, DevOps задачами и разработкой полноценных приложений/ботов/скриптов для нужд команды QA.
— (Manual / Automation / Fullstack / SDET) Lead — это инженер, выполняющий функции в одной из областей: Manual, Automation, Fullstack, SDET и управляющий командой, состоящей только из Manual / Automation / Fullstack / SDET специалистов.
К сожалению, при поиске работы вы постоянно будете сталкиваться с тем, что название вакансии сильно расходится с функциями в описании. Не очень сложно найти вакансии QA Engineer, в описании одной из которых от вас не требуют опыта и предлагают заниматься только ручным тестированием, а в другой вы должны быть опытным Senior автоматизатором с более чем пятилетним опытом. Не редки вакансии, где SDET называют Automation QA и наоборот, а QA Lead на самом деле выполняет работу Head of QA.
2.4. Разделение по типу программного обеспечения
В разделении по типу программного обеспечения обратите внимание на то, что backend часть проектов на практике не всегда, но нередко является общей для нескольких систем (Web, Mobile, и т. д.).
Типы:
— Web Engineer — тестирование frontend и всех частей backend веб — сайтов. Один из самых востребованных сегментов, в котором за последние годы сильно выросли требования к знаниям и умениям инженеров.
— Mobile Engineer — тестирование мобильных приложений и нередко backend. Возможно, это уже немного обогнавший Web сегмент, в котором также выросли требования к знаниям и умениям инженеров.
— Desktop Engineer — ставший менее популярным сегмент тестирования приложений для Windows/Mac/Linux, который, тем не менее, очень востребован. Приложения на компьютеры никуда не делись и исчезнут не скоро. Требования к инженерам тут растут не так быстро, как в Web и Mobile.
— Hardware Engineer — тестирование самых разных, обычно узкоспециализированных физических устройств (программное обеспечение для станков, автопилоты и т. д.). Встречается не часто. Рост требований к инженерам здесь скорее обусловлен ростом физических технологий (архитектуры процессоров, памяти и т. д.).
2.5. Разделение по направлениям тестирования
Эта классификация относится к тому, какие проверки создают инженеры, и как эти проверки выполняются.
Состоит из:
— Manual Engineer — инженер, создающий и выполняющий тесты вручную.
— Automation Engineer — инженер, создающий и выполняющий автоматизированные тесты.
2.6. Градация инженеров на практике
Важно заметить, что разделение по грейдам сильно отличается в разных компаниях или даже проектах. В одном месте вы Junior, в другом — Senior. Эта и другие странности вызваны разными факторами, осознанными и неосознанными.
К осознанным можно отнести:
— Занижение грейда и заработной платы для снижения расходов на сотрудников. Вполне оправданный шаг, условно выгодный для всех сторон, когда речь о начале карьеры и активном стремлении расти. То есть, для резюме вы быстро станете Senior, хотя объективно окажетесь недостаточно квалифицированным для этого грейда. А компании, которые потом будут вам платить как Senior, не часто, но существуют.
— Попытка поручить задачи двух инженеров одному специалисту. Такое происходит, когда грейд внутри компании оценивают исходя из того, какое количество работы может сделать инженер, а не из того, насколько сложна эта работа. Таким образом, засидевшийся на проекте сотрудник имеет грейд заметно выше, чем есть на самом деле, и это быстро становится заметным при выходе на рынок.
К неосознанным можно отнести:
— Отсутствие компетенции для объективной оценки сотрудников. Ситуации, когда человек уровня Middle годами занимает позицию QA Lead, не редки в мире. Возможно, в компании нет QA Lead в принципе и сотрудников оценивает, к примеру, Project Manager, не имеющий для этого компетенций в QA. На практике это могут быть компании даже с количеством QA инженеров в десятки человек.
— Сильно устаревшее понимание количества навыков, необходимых для определенного грейда. Если уровень тестирования на проекте не повышали 10 лет, то было бы странно переписать название должностей существующих сотрудников, понизив их в грейдах. Отсюда и появляются Senior++, Super Principal и другие непонятные грейды навыки которых заметно превышают требования и представления о грейдах на проекте и которых непонятно как оценить в данных условиях.
3. КЛАССИФИКАЦИЯ ТЕСТИРОВАНИЯ
Тестирование — очень обширная и глубокая дисциплина, и в этом можно убедиться, глядя на его классификацию. Здесь представлены только наиболее общие классификации, с которыми сталкивается большинство QA инженеров.
3.1. Классификация по типу приложения
Классификация по типу приложений отражает разделение, основанное на принципе работы большинства приложений и сопутствующих особенностях при тестировании:
— Web — отличаются тем, что взаимодействуют с конечным пользователем через любой браузер, при этом почти вся работа таких приложений проходит на стороне сервера (backend), а конечный пользователь работает только на “легком” клиенте (frontend). Основной задачей при тестировании Web приложений будет проверка frontend в различных браузерах, правильность работы логики на сервере и проверка качества при обмене сообщениями между frontend и backend.
— Desktop — отличаются тем, что работают на компьютерах с любой операционной системой и требуют установки. Основная задача при тестировании — проверка работы приложений на различных операционных системах. При этом приложение может быть с “легким” клиентом как Web, и тогда также необходимо проверить логику сервера и обмена сообщениями. Или же приложение может не требовать отдельной серверной части, и тогда работу логики тестируют на том устройстве, куда оно установлено.
— Mobile — сюда относятся все приложения мобильных платформ для смартфонов и планшетов. Они отличаются тем, что работают на таких мобильных устройствах и требуют установки на них. Тестирование наиболее похоже на Desktop и приложения тоже могут устанавливать на устройство полностью или только с “легким” клиентом.
— Backend — приложения, которые не имеют интерфейса и работают через различные API. Основной задачей при тестировании будет проверка логики приложения, корректность исходящих сообщений и правильная реакция на входящие.
Категории Mobile, Web и Desktop могут включать в себя Backend как неотъемлемую часть для выполнения бизнес-задачи. В то же время информацию для таких приложений могут предоставлять один или несколько сторонних Backend приложений, не имеющих никаких графических оболочек и выполняющих роль сервиса. Также на практике QA инженеры могут участвовать в тестировании целых экосистем, состоящих из множества приложений