Тестировщик: Это баг или фича? Разработчик: Пока что это фича. bash.im
Инженер по тестированию — моя первая специальность в ИТ-сфере в далёких уже 2010-х, как, пожалуй, и у многих. Это было классическое «войти в айти»: на тот момент имелось только экономическое образование и 4 года опыта аналитической работы в телекоме. Из скиллов: горящие глаза, большое желание, среднее знание администрирования UNIX и выученная наизусть модель OSI (без особого понимания, что с ней делать дальше). 87 вопросов на собеседовании (от «что такое chmod 777» и «как работает ssh» до «расскажите о принципах работы TCP и поясните на примерах») — и должность инженера по тестированию у меня в руках. Чуть позже за 2 года было всё: гордость, отчаяние, разочарование, отличная работа, быстрый рост, крутой проект и т.д. Если бы я тогда знал о профессии тестировщика чуть больше, не было бы многих неприятных минут и часов. Ну, пусть тогда их не будет у тех, кто только выбирает свой путь или меняет его направление — эта статья для вас.
Кто это?
Тестировщик (буду называть именно так, чуть позже объясню, в чём причина оговорки), он же QA-инженер (Quality Assurance) — это специалист, который проверяет качество программного обеспечения и уровень его соответствия заранее определённым потребностям и ожидаемым результатам. В своей работе он использует различные инструменты, стратегии тестирования, включается в SCRUM-команды и т.д.
Иногда выделяют два основных «вида» тестировщиков.
- Тестер
— начинающий тестировщик, который проводит, в основном, ручное тестирование по заранее описанным тест-планам. Плохое название, на которое ребята часто обижаются.Вот это тестер, а парни и девчонки всё же тестировщики! (минута айтишного шовинизма)
- Инженер по тестированию
— специалист уровня от junior до lead, который осуществляет разнообразные виды тестирования, в том числе автоматизированное, самостоятельно пишет тест-планы, в некоторых случаях даже даёт рекомендации по исправлению багов или исправляет их самостоятельно (в небольших компаниях).
Это очень укрупнённая и не совсем серьёзная классификация. На самом деле тестировщики бывают разные: специалисты автоматизированного тестирования, тестировщики СУБД, аналитики тестирования, разработчики-тестировщики, тестировщики-DevOPs и проч. Всё зависит от того, какие скиллы соединяет в себе каждый конкретный специалист.
В общем и целом работу инженера по тестированию можно свести к такому порядку: получил ПО → определил необходимый набор тестов → сопоставил реальное положение косяков, костылей, велосипедов и багов с ожидаемым результатом работы программы (аппаратно-программного комплекса) → завёл баги → работаешь с ними, пока они не закроются. Всё это, конечно, в цикле.
Скажу сразу: первые несколько месяцев работы в тестировании напоминают день сурка, ты делаешь одно и то же, прогоняешь одни и те же тесты по нескольку раз, ставишь passed или failed, заводишь баги и, кажется, что это работа точно не для тебя, а скорее для школьника или мартышки. И это вот самоощущение чудовищно угнетает и столь же чудовищно неверно. Всё меняется, когда приходит опыт.
Вот какие этапы вы, скорее всего, пройдёте на работе тестировщиком «с нуля».
Первые 2-3 месяца — обучение. Если компания хорошая и продвинутая, вам дадут наставника, который поможет освоить все принятые в компании методологии тестирования, покажет оборудование, расскажет о ПО, задачах этого ПО и обязательно о клиентах. Иногда по итогам такого вот обучения с наставником вам даже придётся сдать небольшой экзамен (мини-собеседование). Это совершенно нормально, т.к. именно QA является важным подразделением на пути к клиенту и его хорошая работа — залог того, что ваш продукт в чьём-то бизнесе начнёт работать, а не лажать. Если компания не особо заботится о развитии сотрудников, вам придётся достигать всего самому, но я не скажу, что это очень плохо: при самостоятельном обучении погружение в ПО происходит гораздо глубже и вы понимаете значительно больше того, что расскажет опытный «ментор» о продукте, который ему отлично знаком.
Новичков в тестировании любят — иногда они находят самые интересные и неожиданные баги, на которые у давно работающих сотрудников «глаз замылился».
История. В одну компанию пришла новенькая девочка, которая никак себя не проявляла, тихо изучала софт и принципы его работы с разным оборудованием. Когда она только-только приступила к тестированию, от большого и злого федерального клиента прилетел critical (самый злой баг, хуже только блокирующий) — ПО отказывалось закрываться. Перелопатили весь код, орали друг на друга, проверили все соединения и т.д. Через три часа метаний девочка пропищала: — А тут крестик неактивный. Действительно, просто не работала одна-единственная и весьма очевидная функция. Но профессионалы забурились в дебри, а увлечённый дилетант сразу заметил ненормальное поведение.
Далее — от нескольких месяцев до 2 лет — ручное тестирование. Вы будете выполнять большинство видов тестов в ручном режиме, начнёте составлять свои тест-планы и взаимодействовать с разработчиками. На этом этапе наступает тот самый день сурка, когда кажется, что кони бегают по кругу и дальше — рутина и скука. Это не так. В этот промежуток времени инженер по тестированию наращивает интегральное понимание тестирования, учится работать с программистами, видеть не только сам баг, но и анализировать его возможные причины. Главное, что приходит за это время — осознание того, что ручное тестирование должно остаться в прошлом веке и… настаёт время перехода к автоматизации тестирования, когда вы начинаете осваивать язык программирования (или использовать ранее освоенный) и пишете свои скрипты — те, которые считаете нужными для работы с ПО. Наступает реально крутая часть работы. (Впрочем, многие тестировщики, особенно девушки, предпочитают остановиться на ручном тестировании и стать реальными асами именно в нём — кстати, весьма полезные сотрудники и, как показывает опыт, лучшие наставники для новичков).
От 2 лет и далее — квалифицированный специалист, готовый работать в офисе и на стороне клиента, тестировать крупные проекты, а не только фрагменты и модули, глубоко знающий свою специализацию и не очень глубоко все остальные, способный работать не только с профильным ПО, но и тестировать взаимодействия внутри различных конфигураций оборудования, ПО и интеграций. Такие ребята классно и доходчиво выступают на конференциях и митапах, делятся профессиональными секретами, обучают и… думают о своём дальнейшем карьерном пути. Об этом чуть ниже.
Работа тестировщика программного обеспечения хороша тем, что можно выбрать компанию, связанную с тем, что вам интересно в какой-то перспективе: можно тестировать телефонию, софт, бизнес ПО, игры, мобильные приложения, системы безопасности и т.д. Тестируя тот или иной продукт, вы глубоко в него погружаетесь, узнаёте изнутри и в дальнейшем сможете стать разработчиком или менеджером проекта/продукта с доскональным знанием предмета.
И да, тестирование является одним из оптимальный путей начала карьеры в ИТ-сфере, доступных большинству ребят с головой на плечах. Поэтому, если хочется, но пока не ясно чего и куда, идите в тестеры тестировщики, быстро прояснится.
Карьера и рост
Тестирование наряду с бизнес-анализом или техническим писательством — действительно одна из наименее сложных точек входа в ИТ (хотя этот путь тоже не из лёгких).
Тестировщику необязательно обладать глубокими техническим навыками, знать языки программирования или даже иметь математический склад ума. Хотя ситуация меняется и требования к кандидатам растут. Говорят, 10-15 лет назад ИТ-компании брали в тестировщики чуть ли не людей с улицы. Лет 7 назад (когда я сам приходил в профессию) новичку уже надо было крепко владеть теорией. Сегодня на собеседованиях чаще проверяют базовые технические навыки: работу с базами данных и сетями, администрирование.
Если говорить о развитии внутри профессии, то для функционального тестировщика самая близкая специализация — это автоматизатор. Когда-то я и сам прошёл такой путь. Потом некоторые автоматизаторы уходят в «чистые» разработчики или становятся супер-крутыми технарями-тестерами (есть даже такое понятие, как тест-архитектор). Порой функциональные тестировщики после дополнительного обучения переходят в параллельную ветку безопасности или нагрузочного тестирования.
Многие тестировщики, которые меньше склонны к технической работе, становятся бизнес-аналитиками. Ещё один «нетехнический» путь — это менеджерские позиции: управление проектами или командой.
За последние месяцы ситуация на рынке труда радикально изменилась из-за эпидемии коронавируса. Ещё два месяца назад спрос на начинающих тестировщиков был большой, и он сохранялся на протяжении нескольких лет.
Конечно, в условиях кризиса позиция тестировщика становится уязвимой. Без разработчика невозможно написать ПО, а без тестировщика худо-бедно можно. Мне кажется, в этой ситуации лучше всего защищены «миксы» — те самые универсалы, о которых я говорил выше. Они способны быстро перестраиваться с одних задач на другие. Если проекту станут не нужны мануальщики, то «микс» всегда может переключиться на автоматизацию процессов — и наоборот.
Плюсы и минусы работы тестировщиком
Этого раздела не было в предыдущих постах серии о профессиях, но он будет здесь. Потому что вокруг работы инженеров по тестированию ходит много слухов, споров, кто-то её ненавидит, а кто-то посвящает ей всю свою карьеру. Поэтому давайте пройдёмся по тому, что хорошо, а что плохо.
▍Плюсы
- До определённого момента работа тестировщика проще остальных технических специальностей и доступна многим, кому интересна ИТ-сфера. Переходить ли рубеж к тому интервалу, где работа становится максимально сложной, решение каждого. Если дальше не пойдёте, вас из тестирования не выгонят, вы всё равно будете востребованы.
- Потребность в тестировщиках не исчезнет до тех пор, пока есть информационные технологии, связь, интернет, роботы, автопилоты и т.д.
- Тестирование — не столь изученная область, как программирование. Если у вас есть талант и трудолюбие, вы сможете сказать своё слово миру (написать книгу, создать методологию, преподавать и т.д.).
- Карьера тестировщика довольно свободная: можно сидеть в офисе с гибким графиком, можно работать удалённо, а можно стать фрилансером, набрать проектов и тестировать их по сдельной оплате.
- Тестировщику легче вернуться на работу после долгого перерыва, например, из опыта создания своего стартапа, фриланса, декрета, иных обстоятельств.
- Работу в тестировании можно сочетать с учебой без вреда для обоих видов деятельности.
- Вы научитесь «видеть продукт» со всех сторон, узнаете все функциональные возможности, посмотрите на софт глазами инженера и глазами потребителя. Это прямой путь в менеджеры продукта. Общая картина продукта поможет вам в любом случае — например, если вы решитесь уйти в разработку.
▍Минусы
- Команда недолюбливает тестировщиков Нет, ну вы вот сами прикиньте: вы делаете продукт, пишете код, документацию, а потом на него нападает кучка коллег и заводит баг за багом на каждую мелочь. Ну как это вынести в адекватном состоянии?! Хуже только быть единственным тестировщиком в команде — тогда всё, ты конченая сволочь. Шутки шутками, но нередко команда считает, что именно тестировщики задерживают выпуск релизов и клиентских сборок. В общем, не любят люди, когда находят ошибки в их работе.
- На первом этапе вы работаете с повторяющимися задачами, иногда работать становится невыносимо скучно.
- Тестировщики ищут ошибки разработчиков, искать ошибки тестировщиков некому. Поэтому вы будете крайними в некоторых неприятных ситуациях.
- Работа тестировщиков часто бывает незаметна руководству — придётся привыкнуть быть серым кардиналом, невидимым героем.
- Сверхурочная работа — бич тестировщиков. Рано или поздно вам будет нужно срочно оттестировать релиз или сборку, которую нужно выкатить завтра или «вот прям щас» или же остаться и проверить внесённые программистами исправления. И вы останетесь, а вот оплачивается такой героизм далеко не всегда (я вообще не встречал).
- На тестировщиках лежит огромный груз ответственности за полноту и охват тест-планов — если что-то упустить, отвечать уже придётся за пропущенные баги.
Выбор зависит от того, насколько близки вам плюсы и готовы ли вы заплатить за них тем, что перечислено в минусах. В принципе, при должной организации работы и самоорганизации сотрудника многие минусы сводятся на нет.
Лучшие вузы для тестировщиков ПО
- МФТИ.
- МГЛУ.
- НИУ ВШЭ.
- НИТУ МИСиС.
- РЭУ им. Г. В. Плеханова.
- МГУ им. М. В. Ломоносова.
- ФУ (Финуниверситет).
- ДВФУ.
- СПбУ МВД РФ.
- РГУНГ (РГУ нефти и газа).
Порядок вузов в списке свободный, перечень представлен для того, чтобы абитуриенты могли понять, насколько разные вузы готовят ИТ-специалистов: например, в абсолютно гуманитарный Московский государственный лингвистический университет можно поступить на факультет информационной безопасности и получить бонус для начала карьеры – отличное владение английским языком (рабочим в ИТ-сфере) плюсом к техническим знаниям.
Где нужен?
В отличие от разработчиков, тестировщик нужен не во всех компаниях, где выпускается хоть какое-то средство автоматизации или приложение (а зря! Но это решение самих компаний). Однако абсолютно точно тестировщики всех уровней нужны в ряде компаний.
- Любые компании-разработчики, а также поставщики программно-аппаратных комплексов (от процессоров до касс и терминалов).
- Разработчики игр и развлекательных мобильных приложений.
- Финтех компании: банки, брокеры, финансовые учреждения и проч.
- Системные интеграторы, которые поставляют корпоративному сегменту сложные многослойные технические решения.
- Нередко тестировщики ПО требуются в штат заводов, автомобильных компаний, онлайн СМИ, ритейлеров, онлайн-курсов и т.д.
К слову, профессия тестировщика — одна из долгожителей ИТ с огромным потенциалом. Потому что даже если роботы будут программировать роботов, пока есть люди, кто-то должен будет тестировать все эти устройства и приложения с точки зрения адаптации к использованию людьми. Так что именно тестировщики станут последним барьером на пути роботов к кожаным ублюдкам мешкам
Какие бывают виды тестирования
Существует несколько классификаций видов тестирования: функциональные и нефункциональные.
Функциональные тестирования 一 проверяют, насколько корректно работают функции в ПО или приложении.
Нефункциональные тестирования 一 проверяют, насколько корректно работают атрибуты компонента или системы, не относящиеся к функциям.
По степени автоматизации тестирования различают: ручное и автоматизированное. Здесь довольно понятно по определению 一 при ручном тестировании все процессы делаются вручную, а при автоматизированном 一 с помощью кода. Во втором случае тестировщик контролирует выполнение автотестов и сравнивает полученный результат с ожидаемым.
Средняя заработная плата
Заработную плату будем смотреть на «Хабр Карьере». Возьмём данные за второе полугодие 2022 года, вне зависимости от владения тем или иным стеком.
Для специалистов ручного тестирования:
Уровень специалиста | Средняя заработная плата |
Стажёр (Intern) | 33 333 руб. |
Младший (Junior) | 44 024 руб. |
Средний (Middle) | 68 031 руб. |
Старший (Senior) | 107 203 руб. |
Ведущий (Lead) | 146 428 руб. |
Для специалистов автоматизированного тестирования:
Уровень специалиста | Средняя заработная плата |
Стажёр (Intern) | 36 366 руб. |
Младший (Junior) | 61 486 руб. |
Средний (Middle) | 88 246 руб. |
Старший (Senior) | 131 222 руб. |
Ведущий (Lead) | 201 461 руб. |
Как видите, есть все основания для того, чтобы развиваться и переходить на новый уровень тестирования.
Где научиться тестированию программного обеспечения
Ответ на этот вопрос достаточно простой. Если у Вас нет опыта в программировании, и хочется побыстрее начать работу тестировщика без опыта, то… изучайте краудтестинговые платформы. Что это такое? Об этом ниже…
На этих самых платформах обычно есть достаточно подробное обучение. И даже тестовые задания. Пройдя это обучение и выполнив успешно тестовое задание Вы уже будете понимать, кто и как делать.
Единственное, что часто такое обучение идет на английском языке. Хотя и достаточно простом. Но ведь Вы же знаете английский, не правда ли…
Если же Вы хотите работать в QA инженером, то без хороших курсов не обойтись. Я сейчас не буду рекламировать те или иные курсы. Их много. Только учтите, что эти курсы обычно достаточно дорогие. И длятся несколько месяцев.
Здесь Вас будут учить всем премудростям тестирования. И скорее всего заодно и основам нескольких языков программирования.
К сожалению, Вузовского образования по профессии QA инженер или тестировщик ПО я не нашел.
Ну и еще вариант обучения работе тестировщика, если у Вас нет опыта — это устроиться помощником QA инженера в какую-либо фирму. И там в процессе работы Вы всем у и научитесь. Ну и в должность Вас тоже введут. Не без этого…
Базовые требования к профессионалу
В этот раз таблиц с наиболее часто упомянутыми технологиями не будет, потому что методологии и инструменты тестирования от компании к компании могут здорово отличаться. Рассмотрим те навыки, без которых карьера ну совсем не получится (обратите внимание — вы их можете приобрести в ходе работы, иметь их на старте круто, но совсем не обязательно).
- Опыт технической поддержки — это плотное изучение технологий в сжатые сроки, умение понимать проблемы и быстро сопоставлять их с причинами и путями решения + навыки документирования заявок. Отличная почва для старта карьеры тестировщика.
- Основы программирования — желательно Java, SQL, Python, но сойдёт буквально всё.
- Знание методологии Agile, умение встроиться в микро-команды.
- Основы Linux.
- Основы архитектуры ПК.
- Модель OSI и сети (базовое понимание, знание структуры заголовков пакетов и проч.). Практически сразу потребуется свободная работа с утилитой Wireshark.
- Инструменты управления тестированием — Bugzilla, Jira или любой другой багтрекер.
- Selenium — инструмент для автоматизации действий веб-браузера. Очень популярный инструмент тестирования.
- Желательно — понимание стратегий тестирований чёрного, белого, серого ящиков и осознание того, где вы наиболее хорошо применимы как специалист.
Это самая база, с опытом вы увидите, куда и насколько глубоко нужно погружаться.
Кстати, если у вас совсем нет опыта, но есть немного времени, чтобы параллельно с учёбой подготовиться к будущей работе тестировщиком, у меня для вас есть три лайфхака.
- Станьте QA-фрилансером, чтобы выполнять небольшие проекты по ручному тестированию. Платят мало, но вы научитесь мыслить как тестировщик, писать контрольные примеры и сообщать о результатах.
- Если цель — тестирование веба (а это чаще всего), создайте свой кривой-косой, но полноценный сайт без шаблонов и готовых CMS. Так вы поймёте, как среда работает изнутри и будете знать места обитания всех типичных багов.
- Найдите программу любого курса по тестированию, ищите по ней материалы и накапливайте теоретическую базу, чтобы успешно пройти первое собеседование.
Какими инструментами пользуется тестировщик
Может показаться, что тестировщики проверяют все вручную: нажимают на все кнопки и вводят значения во все поля ввода. Но чаще всего они пользуются специальными приложениями для автоматизации тестирования.
Профессия тестировщика ПО предполагает работу с различными инструментами. Их можно разделить на несколько направлений, а внутри каждого направления есть несколько аналогов. Мы приведем несколько примеров, но это далеко не полный список.
Инструменты для автотестирования
. Они позволяют описать последовательность действий и ожидаемый результат, а затем запускать тесты и тестировать приложение автоматически. Для этого тестировщик пишет скрипт, который говорит системе автотестирования, что нужно сделать: нажать на кнопку, ввести в поле значение, и в итоге должен получиться вот такой результат. Если результат не совпадает — оповестить тестировщика, что тест провален. Примеры таких инструментов: Selenium WebDriver, Espresso.
Скриншот Selenium WebDriver
Нужно понимать, что автотесты — не панацея.
- Автотесты нужно периодически изменять или полностью переписывать
. Очередное обновление приложения может сломать их. Например, если чек-бокс в окне настроек переместится на другую вкладку.
- Автотесты не могут протестировать всё
. Автотесты не смогут увидеть проблемы верстки сайта, когда элементы на экране «поедут» или перекроют друг друга.
- Некоторые задачи придется тестировать руками
. Второстепенной функциональности часто уделяется мало внимания. В этом случае может быть проще тратить 5 минут в месяц на проверку, чем один раз писать автотест 3 часа.
Генераторы данных
. Эти инструменты помогают генерировать данные для тестов. Например, чтобы каждый раз не придумывать логин, номер телефона и email-адрес. Также генераторы могут создать нестандартные данные, которые помогут обнаружить ошибки: двойная фамилия или иностранный номер телефона. Примеры таких инструментов: Databene Benerator, DTM Data Generator.
Системы управления проектами
. Помогают управлять жизненным циклом проекта: от появления задачи до выкатки обновления. Они позволяют отслеживать сроки, ответственных, статусы и так далее. Инструменты для создания и отслеживания баг-репортов могут быть встроены в общую систему управления проектами, а могут быть отдельным инструментом. В любом случае нужно уметь ими пользоваться. Примеры таких инструментов: Jira, TestRail, Test It.
Скриншот из системы Jira
Важные личные качества
В принципе, тестировщик может быть интровертом или экстравертом, геймером или ролевиком, добрым или не очень. Коммуникативные навыки играют в команде определённую роль, но в целом хватит общей адекватности и умения выражать свои мысли. В тестировании нужны другие, более тонкие настройки личности.
- Аналитические навыки, чтобы понимать взаимосвязи, анализировать огромные массивы данных, результаты тестов и т.д.
- Управление временем и скиллы планирования — только с ними можно обеспечить высокую производительность на фоне серьёзной рабочей нагрузки.
- Особая интуиция, которая приходит с опытом — тестировщик должен заранее предвидеть, где может поджидать потенциальная ошибка.
- Высокий порог терпения и стрессоустойчивости — важно внимательно протестировать продукт, спокойно подискутировать с разработчиками, неоднократно воспроизвести баг, отработать одни и те же тест-кейсы и т.д.
- Умение надолго концентрироваться и сохранять внимание. К слову, иногда именно тестирование позволяет наработать это навык и сохранить его для дальнейшей карьеры.
Обязанности QA Engineer
Quality Assurance engineers выполняют следующие задачи:
- Уточнение требований у заказчика или бизнес-аналитика (если он есть).
- Составление плана тестирования.
- Написание тестовой документации и предложений по улучшению ПО.
- Написание сценариев тестирования (тест-кейсов).
- Тестирование функционала ПО.
- Выявление проблемных мест и внесение их в трэкинговую систему.
- Общение с разработчиками по поводу обнаруженных проблем.
- Отслеживание жизненного цикла ошибок.
- Повторное тестирование, проверка на исправленные баги.
- Анализ и оптимизация процесса тестирования.
- Работа с текстовой документацией.
Необходимость знания иностранных языков
Пожалуй, инженер по тестированию — редкий вид специализации в ИТ, где можно знать язык исключительно на уровне команд инструментов. Это связано с двумя важными особенностями:
- очень много статей и методик переведено на русский язык;
- часто объём знаний языка обусловлен именно особенностями продукта и компании — соответственно, если компания работает на англоязычный рынок, уровень нужен (например, чтобы тестировать документацию или общаться с интернациональной командой и клиентами), а если на российский рынок, то требования к языку практически нулевые.
Но опять же, если вы хотите расти в серьёзную автоматизацию или уходить в разработку, язык вам будет нужен всё больше и больше, поэтому лучше не тратить время и подтянуться хотя бы до Intermediate.
У меня был пример, когда понадобился тестировщик со знанием японского и отдельно — со знанием немецкого в том числе для работы с клиентами (удалённо). Так вот, нашли, обучили и дали зарплату выше разработчиков в компании. Потому что специалисты уникальные. Они и сейчас не пропали
Что нужно сделать, чтобы стать тестировщиком
Тестировщиком может стать любой человек. Главное 一 желание учиться и много практиковаться на различных продуктах.
К hard skills, которыми должен обладать тестировщик, относятся: умение работать с TMS, баг-трекинговыми системами. Также в определенных кейсах необходимы навыки работы с IDE, инструментами прокси трафика. Немаловажно знание основ тестирование и многое другое.
Тестировщику не обойтись и без soft skills. Ему нужно уметь правильно задавать вопросы, отстаивать свою точку зрения, быть внимательным и мыслить критически.
Где учиться
Базовый курс тестирования программного обеспечения есть на профильных специальностях в вузе, есть курсы в корпоративных университетах и отдельные курсы внутри компаний.
Принципиального обучения на инженера по тестированию в России не существует.
Пожалуй, именно для обучения тестированию я впервые из нашей серии «Профессия» выделю онлайн-курсы: они действительно могут ввести в курс дела, обучить принципам тестирования, научить находить, видеть и фиксировать баги и т.д. Для новичка можно найти приемлемый вариант и пройти его — это вам даст уверенность на собеседовании и задел знаний в первое время работы.
Лучшее обучение в этой сфере — пройти путь от стажёра до миддла или сеньора в компаниях. На фоне усилий по самообразованию — вообще идеально. Как правило, после первого полученного опыта в компании устроиться тестировщиком в другие довольно легко. Главное найти заветную первую практику
QA manual VS QA Automation Testing
Как только вы пройдете путь junior QA, вы сможете выбрать, продолжать ли вам карьеру мануального тестировщика или заняться автоматизированным тестированием.
QA manual тестирование – это проверка работы ПО вручную. То есть тестировщик не использует для поиска багов никаких автоматизированных тест-кейсов. Для того чтобы проводить такое тестирование, вам не нужны какие-то дополнительные знания, кроме базовых. Ручное тестирование привлекательно тем, что позволяет импровизировать в составлении необычных сценариев действий пользователя и поэтому всегда остается актуальным.
Не думайте, что раз мануальным тестировщикам не нужны какие-то определенные дополнительные знания, то тестировать ПО может каждый. Нет, для того, чтобы проходить через тест-кейсы нужна профессиональная подготовка и специальные знания. Часто для ручного тестирования нужны серьезные аналитические способности.
Автоматизированное тестирование – это проверка соответствия продукта требованиям с использованием дополнительного программного обеспечения для осуществления и контроля выполнения тестов. Automation Testing обычно используется для проведения большого количества повторяющихся задач. Также автоматизированное тестирование помогает экономить время. Иногда оно эффективнее ищет дефекты определенных классов, чем ручное. Автоматизированные тесты не нужно каждый раз составлять заново, один тест можно проводить много раз, то есть после исправления бага, его можно будет прогнать снова. Есть у такого вида тестирования и минус: его нельзя использовать на нестабильных системах и для ad-hoc или исследовательского видов тестирования.
Конечно, для того чтобы создать автоматизированный тест нужны знания программирования. Ведь задача QA Automation Engineer – создавать автоматические скрипты, которые проверят ПО.
Будущее тестировщика
Кроме стандартного пути внутри тестирования (от стажёра к лиду), есть несколько наиболее вероятных путей развития карьеры тестировщика.
- Разработка программного обеспечения — логичный и не самый сложный путь для тех, кто увлечётся языками программирования и захочет не только ковырять чужой код и готовый проект, но и создавать что-то внутри команды.
- Руководитель проекта. Отличное знание проекта в целом, понимание потребностей и требований клиентов — прямой путь к этой точке.
- Скрам мастер — интересный разворот, который у тестировщиков хорошо удаётся благодаря опять же знаниям проекта в целом и умениям жёстко планировать сроки работ.
- Бизнес-аналитик, внедренец — денежные, но не столь технические должности для ребят с прокачанными коммуникативными навыками.
В принципе, после тестирования хорошо работать на любой должности в ИТ-компаниях, от пиарщика до менеджера проекта и продукт овнера, потому что вы знаете о продукте и ролях сотрудника в проектах компании всё и немного больше.
Кто такие QA и QC
Один из самых частых вопросов на собеседованиях тестировщиков: чем отличаются QA от QC? Вопрос философский, и мне приходилось слышать очень разные ответы на него.
Традиционно под QA (Quality Assurance) понимается нечто глобальное: обеспечение всего процесса разработки, начиная от выбора методологии и специалистов и заканчивая общим контролем качества.
QC (Quality Control) — так иногда называют среднестатического специалиста по функциональному тестированию, который проверяет, насколько разработка продукта соответствует всем требованиям.
Встречается ещё третье понятие — Testing, или процесс тестирования продукта.
В каком-то смысле QA, QC и Testing — всего лишь разные этапы работы, которые выполняет тестировщик. В некоторых больших компаниях есть QA-отделы, где специалисты не занимаются функциональным тестированием вообще: они хорошо знают стандарты заказчика и следят за тем, чтобы вся команда работала по этим стандартам.
В вакансиях на рынке труда функционального (мануального) тестировщика могут называть и QA, и tester, и test engineer. Это разные наименования для одной и той же профессии.
Есть также понятие «тестировщик-универсал». В профессиональной среде мы называем таких людей «миксами». Это тестировщики, которые умеют почти всё: знают теорию и разные виды тестирования, умеют придумывать и оформлять тесты, владеют языками программирования и автоматизируют процессы. Сегодня наблюдается большой спрос именно на таких специалистов. По своему опыту могу сказать, что наличие «микса» в команде резко повышает эффективность работы.
Также существует такое понятие, как TestOps (по аналогии с DevOps). Иногда употребляются термины DevTestOps и DevTestSecOps. Это специалист, который помимо тестирования ещё занимается поддержкой всей инфраструктуры: разворачивает и обслуживает сервера, автоматизирует тесты и процесс сборки приложения.
Bubble — новый гид по цифровому миру: как войти в айти и хакнуть свою жизнь
Мифы профессии
▍Тестировщики — «низшая каста» ИТ-отрасли
Вот сейчас обидно было. Или это как у ВДВ, но «не кодил — не айтишник»? Отдел тестирования — это по сути настоящий отдел контроля качества, который не позволит компании опозориться перед клиентом (если где-то упадёт навороченный костыль, хе-хе), вовремя определит явные ошибки UI/UX, проверит внутреннюю логику работы приложения или сервиса. Комплексная работа тестировщиков всех ИТ-компаний мира обеспечивает определённый уровень качества и сохраняет миллионы денег компаний, которые могли бы потеряться на жалобах конечных пользователей на бесконечные баги.
Тестировщики — это полноценные, сильные ИТ-специалисты, которые отличаются комплексным подходом к ПО и АПК, глубоким знанием продукта и умением видеть неочевидные взаимосвязи внутри разработок.
▍Тестирование — это просто поиск ошибок
Нет. Тестирование — это сложный сквозной процесс работы с продуктом, его аппаратным и программным окружением, а также с документацией. Найти баг — очень малое дело, а вот проанализировать, воспроизвести, собрать всю информацию, снять дампы, составить тест-план и автоматизировать рутинные задачи, пустить нагрузку и т.д. это уже сложная, многопрофильная работа.
▍Тестировщикам мало платят
На первых порах это действительно не самая оплачиваемая работа. Согласитесь, компании обидно платить сотруднику, который по большей части учится. Но постепенно заработная плата растёт и дальше зависит от компании: когда я работал, я получал всего на 3 тыс. руб. меньше разработчика своего уровня (middle), но я знаю компании, где тестировщики получают и больше, и меньше, чем разработчики. Многое зависит от профиля деятельности компании и скиллов тестировщика. Понятное дело, что автоматизатор будет стоить дороже. Но формулировка «мало платят» точно не про тестирование.
▍Не применяются технические навыки
Я уже выше перечислил примерные действия тестировщиков, и все они строго инженерные. Хоть в тестирование можно попасть и без технического образования, работать без технического бэкграунда не получится: вы либо шустро всему научитесь, либо пойдёте в нетехнические отделы, потому что «голый гуманитарий» — горе в отделе QA. Да, на каком-то этапе от вас не потребуется глубокое владение языками программирования (но вы же запомнили, что тестировщики со знанием разработки выше ценятся?), но инженерные, админские и общетехнические знания вам ох как пригодятся. Вы их будете использовать буквально каждый день.
Как получить профессию тестировщика
Согласно опросу на Software-Testing.ru, в тестировщики приходят из самых разных сфер: ИТ-администраторы, программисты, дизайнеры, юристы, экономисты. Проще всего тем, кто уже знаком с основами программирования и веб-разработки, остальные могут научиться с нуля. Однако после стажировки или самостоятельного обучения вы можете рассчитывать максимум на позицию junior, и то — при большом везении. Это значит, что вам придется вручную проводить тестирование по готовым тест-планам — самая рутинная и монотонная работа.
Единого рецепта, как быстро можно освоить профессию тестировщика, нет: кто-то способен все освоить сам, кто-то проходит неоплачиваемую стажировку, кому-то помогают опытные коллеги. Самый простой и надежный вариант —пройти онлайн-курсы, где можно всему научиться у практиков. После курсов у вас будет практический опыт и все шансы для позиции уровня middle: то есть работы с автоматизированными тест-системами и собственными тест-планами.
Главный совет
Здесь не будет совета, их в статье и так хватает. Я расскажу, что самое страшное в профессии тестировщика. Вот такое страшное, что до мурашек и головокружения. Самый первый самостоятельный заход на тестирование. Ты сидишь, проводишь тесты и ставишь passed, passed, passed… И ни одного, даже самого малюсенького, самого глупого и минорного бага! И ты боишься, что в тебе нет этого — видеть ошибки, отвечать за качество, находить что-то, что пошло не так. И какое же это счастье, когда находится он, первый, первая странность в заголовке пакета или первое слово интерфейса с опечаткой.
Потом у тебя будут мажоры, критикалы и блокирующие баги, ты будешь со всей важностью не только заводить баг, но и топать по коридору к разработчикам, чтобы высказать всё о найденной ошибке. Но ты никогда в жизни не забудешь тот самый первый баг, который откроет двери в мир тестирования и ответственности за качество.
Друзья, а вы прошли через работу в тестировании? Каким он был, ваш первый баг или самый глупый, смешной, может, даже страшный? Время жутких историй!
Предыдущие серии «Профессии…»
→ Профессия: бэкенд-разработчик → Профессия: фронтенд-разработчик → Профессия: системный администратор
Профессия тестировщика — с чего начать
Вот подборка полезных книг, которые помогут новичкам:
- «Как тестируют в Google», Джеймс Уиттакер, Джейсон Арбон и Джефф Каролло. «Тестирование ПО», Рон Паттон.
- «Практическое руководство по тест-дизайну», Ли Коупленд.
- «Искусство тестирования программ», Гленфорд Майерс, Том Баджетт и Кори Сандлер.
- «Быстрое тестирование», Роберт Калбертсон, Крис Браун и Гэри Кобб.
- «Agile-тестирование. Обучающий курс для всей команды», Джанет Грегори и Лайза Криспин.
- «Дневник охотника за ошибками. Путешествие через джунгли проблем безопасности программного обеспечения», Тобиас Клейн.
- «Автоматизация тестирования ПО», Марк Фьюстер и Дороти Грэхем.
Полезные ресурсы: https://software-testing.ru https://habr.com/ru/hub/it_testing/ https://www.reddit.com/r/QAGeeks/
Кто такое мануальщики и автотестеры
Тестировщиков принято разделять на мануальщиков и автотестеров. Первые находят все ошибки вручную, вторые разрабатывают специальные программы, которые выполняют все действия автоматически.
На практике такого разделения, как правило, нет. Профессиональный тестировщик выполняет работу и за мануальщика, и за автотестера. Если речь идет только о мануальщике, то обычно такие специалисты стараются освоить языки программирования, чтобы не выполнять множество одинаковых действий. Автотестеры напротив стараются избегать ручного тестирования, но в любой момент могут пойти и «потыкать» программу без дополнительного ПО.
Также иногда выделяют дополнительные роли, например security-тестировщика, который занимается проверкой систем безопасности. BI (business intelligence) – тестировщик, работающий с большими объемами данных. В некоторых компаниях есть целые отделы performance-тестирования – контроля производительности ПО и нагрузок на приложения. Usability-тестировщики проверяют, насколько продукт удобен в использовании и привлекателен для пользователя.
В большинстве крупных проектов не обойтись без автоматизации, поэтому, если вы планируете стать тестировщиком, потребуется изучить программирование – сейчас без этого никуда.
3
Направления деятельности
У тестировщиков есть несколько основных направлений деятельности. Давайте рассмотрим их более подробно.
Основные направления:
- Юзабилити тестирование. Оценка удобства использования и понятности продукта.
- Тестирование игр. Поиск критических багов и ошибок в играх: для ПК и мобильных устройств (например, гаджеты на Android и iOS).
- Функциональное тестирование. Проверка ПО на соответствие требованиям, которые заявлены в спецификации продукта.
- Нагрузочное тестирование. Проверка продукта на нагрузку большого количества данных. Оценивается скорость выполнения операций и работоспособность ПО при высоких нагрузках: например, во время DDoS-атак.
- Тестирование безопасности. Оценка уровня безопасности системы: например, анализ рисков, связанных с атаками хакеров и вирусов.
- Тестирование локализации. Проверка перевода интерфейса ПО: поиск грамматических и логических ошибок в локализации.
Краудтестинговые платформы — «ясли для тестировщика»
Итак, как я уже писал выше, получить начальный опыт работы тестировщиком без опыта можно на так называемых краудтестинговых платформах.
Что это такое краудтестинговые платформы? Это такие своеобразные биржи фриланса. С одно стороны на них обитают заказчики, которым нужно что-то протестировать. С другой — специалисты по тестированию ПО.
Работа практически на всех краудтестиновых платформах строится по одному принципу. Есть какое-либо вводное обучение. Далее идет вводные тест. Если все хорошо, Вас допускают к реальным проектам. И Вы можете начать прокачивать свой рейтинг, ведь от этого будет зависеть и Ваша «зарплата».
А «доход» обычно начисляется в английских тугриках. И в принципе он достаточно неплохой.
Но… Важно знать. На большинстве краудтестинговых платформ оплата идет ТОЛЬКО за найденные ошибки! И причем, Вы должны найти эти ошибки раньше других тестировщиков. Если опоздали или не нашли, чтож… Нет ножек-нет мультиков
Да. Помните. Чем «крупнее» ошибки Вы находите, тем выше Ваше вознаграждение!
Краудтестинговые платформы в основном «буржуинские». Вот некоторые из них. Часть только на английском (или немецком языках). Часть переведена (не полностью) на русский. Но велика вероятность получения задания на английском языке.
Если Вы работали на одной их них, оцените ниже, какая понравилась больше.
test.io— одна из старейших платформ краудтестинга
www.testbirds.com — есть вариант для русскоязычных пользователей.
www.passbrains.com — еще один сайт для тестирования ПО
www.globalapptesting.com — еще краудтестинговый сайт
ubertesters.com — еще одна (немецкая) платформа для тестирования
testlio.com — еще ловите сайтик для тех, кто ищет работу тестировщика ПО без опыта
www.crowdtesting.ru — и еще. Это уже на русском языке, что является редкостью в мире тестировочных платформ.
Про условия работы на этих сервисах лучше сами посмотрите у них. Заодно и с платформами ознакомитесь.
Работа QA инженером «по взрослому»
Вообще, если Вы хотите «настоящей» работы, то идите работать на постоянную занятость в нормальную компанию. QA инженером. Ну или инженером по тестированию.
Здесь в отличие о фриланса, Вам будут платить именно за работу, а не за найденные баги.
Где же найти работу тестировщику ПО без опыта? Да много где! Главное, пройти хорошее обучение. О чем я писал выше.
Итак. QA инженера с распростертыми объятиями ждут:
- Фирмы-разработчики любого программного обеспечения
- Разработчики игр
- Разработчики мобильных приложений
- Финансовые компании, например банки. Или биржевые брокеры
- Системные интеграторы. Если Вы не знаете, кто это такие, то не просто запомните название
- Иногда заводы или производственные фирмы
- Веб-студии
- …..
Короче, без работы не останетесь! А самое приятное в этом, что работа тестировщика очень востребована в западных фирмах. И оплачивается, соответственно лучше…
Зарплатные ориентиры
Доступно более 5 400 вакансий по данным портала hh.ru
Зарплата без опыта работы от 20 000 рублей
Зарплата при опыте от 1 – 3 лет до 250 000 рублей
Срок обучение от 0 уровня до первого заказа от 4 до 12 месяцев
Средняя сложность обучения
Сколько зарабатывает тестировщик: примерный доход
Теперь давайте проведем небольшой анализ зарплат тестировщик в России. В этом нам поможет ресурс TRUD.com.
По данным с сайта, средняя зарплата тестировщика ПО — 50 981 руб/мес.
На графике ниже виден уровень средней ЗП за последние 12 месяцев.
Серьезный спад был заметен весной. Летом сумма дохода превысила 60 000 руб/мес.
Также давайте изучим вакансии на сайте HH.ru. Средняя зарплата тестировщика ПО — 80 000 руб/мес.
Эти цифры актуальны для специалистов на позиции Middle. Тестировщики на позиции Senior зарабатывают от 120 000 руб/мес.
Работодатели предлагают несколько форматов работы: в офисе или удаленно (работа из дома).