Кто такой тестировщик. Обзор изнутри от Евгения Шидловского

Про профессию рассказывает Евгений Шидловский, ведущий инженер-программист (lead software test automation engineer) в EPAM и преподаватель курса «Тестирование ПО» в IT-Academy. 

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

12 комментариев
Кто такой тестировщик. Обзор изнутри от Евгения Шидловского

Про профессию рассказывает Евгений Шидловский, ведущий инженер-программист (lead software test automation engineer) в EPAM и преподаватель курса «Тестирование ПО» в IT-Academy. 

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

Евгений Шидловский в профессии более семи лет. До того, как стать тестировщиком, 10 лет работал военным врачом. В составе медицинской бригады участвовал в миссии ООН в Ливане. После курсов в IT-Academy попал на стажировку в лабораторию EPAM и через 11 дней получил оффер. В компании прошёл путь от функционального тестировщика до руководителя команды автоматизаторов.  

Тестировщик (или специалист по тестированию программного обеспечения) —  это человек, который проверяет работу приложений и ищет в них всевозможные ошибки и уязвимости.

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

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

В своей работе тестировщик постоянно взаимодействует с представителями заказчика, бизнес-аналитиками, разработчиками и дизайнерами.

Вся команда нацелена на создание «правильного» продукта, но тестировщик — человек, которого больше всего интересует именно качество продукта.

Какие бывают тестировщики

Их много. Ситуация усложняется ещё и тем, что в разных компаниях одинаковые по сути роли могут называться по-разному. 

На рынке труда чаще всего встречается функциональный (мануальный, manual QA engineer) тестировщик. Это человек, который придумывает тесты и «вручную» проверяет программы на баги и уязвимости.   

Автоматизатор (test automation engineer) пишет код, который автоматизирует процессы тестирования. 

Эти две специальности наиболее распространённые, и дальше мы будем говорить в основном о них. 

Иногда в отдельную роль выделяют security-тестировщика — человека, который занимается проверкой систем безопасности. BI (business intelligence) — тестировщик, которы работает с большими объёмами данных. В некоторых компаниях есть целые отделы performance-тестирования —  контроля производительности ПО и нагрузок на приложения. Usability-тестировщики проверяют, насколько продукт удобен в использовании и привлекателен для пользователя.      

Есть тренд на смешение разных специальностей и практик тестирования. Компаниям выгодно, чтобы специалист умел делать разные вещи. 

Кто такие QA и QC 

Один из самых частых вопросов на собеседованиях тестировщиков: чем отличаются QA от QC? Вопрос философский, и мне приходилось слышать очень разные ответы на него. 

Традиционно под QA (Quality Assurance) понимается нечто глобальное: обеспечение всего процесса разработки, начиная от выбора методологии и специалистов и заканчивая общим контролем качества.  

QC (Quality Control) — так иногда называют среднестатического специалиста по функциональному тестированию, который проверяет, насколько разработка продукта соответствует всем требованиям.     

Встречается ещё третье понятие —  Testing, или процесс тестирования продукта. 

В каком-то смысле QA, QC и Testing — всего лишь разные этапы работы, которые выполняет тестировщик. В некоторых больших компаниях есть QA-отделы, где специалисты не занимаются функциональным тестированием вообще: они хорошо знают стандарты заказчика и следят за тем, чтобы вся команда работала по этим стандартам. 

В вакансиях на рынке труда функционального (мануального) тестировщика могут называть и QA, и tester, и test engineer. Это разные наименования для одной и той же профессии. 

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

Также существует такое понятие, как TestOps (по аналогии с DevOps). Иногда употребляются термины DevTestOps и DevTestSecOps. Это специалист, который помимо тестирования ещё занимается поддержкой всей инфраструктуры: разворачивает и обслуживает сервера, автоматизирует тесты и процесс сборки приложения.  

Содержание работы тестировщика 

Типичная последовательность работы функционального (мануального) тестировщика выглядит примерно следующим образом.

  1. Изучить спецификацию продукта (программы). 
  2. Разработать методы для проверки продукта. 
  3. Провести проверку продукта.
  4. Сделать выводы по итогам проверки. 
  5. Перечислить найденные уязвимости и недочеты продукта в техническом документе (чаще всего на английском языке). 

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

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

Я выделил бы две категории проектов, с которыми имеет дело тестировщик: проекты в разработке и проекты в поддержке. Работать на проектах первого типа гораздо интересней и динамичней. Тестировать продукт, который появляется у тебя на глазах, — это настоящий «раш».  Лично мне больше всего нравится работать с системами управления предприятиями. Это очень сложные задачи, где много бизнес-логики и технической составляющей. 

Тестировщик и код

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

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

Где и как учиться на тестировщика

Расскажу на примере своей работы. Я обучаю тестировщиков в IT-Academy. Наш курс длится 9 недель или 27 занятий. За это вермя можно получить базовую подготовку, достаточную для начала работы в качестве тестировщика. Но это очень интенсивный курс.

Я всегда говорю, что правильный подход во время обучения: не спать, мало есть, ничем больше не заниматься и 9 недель штудировать материалы. 

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

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

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

На рынке можно найти множество курсов: очных и дистанционных, платных и бесплатных. 

Во многих крупных ИТ-компаниях есть внутренние (как правило, бесплатные) курсы по тестированию. Однозначно нужно пробовать попасть туда, особенно если хотите работать в компании-организаторе таких курсов. Минус подобного околокорпоративного обучения —  оно часто бывает узконаправленным и не совсем подходят по своему содержанию средним требованиям рынка. Платные курсы, коих великое множество, чаще дают более широкую программу подготовки.

Книги и ссылки 

  • Software Testing Udacity — попробовать бесплатный онлайн-курс.
  • Testing Challenges — «пощупать руками» интересные задачки для тестирования  .  

Много ссылок на обучающие ресурсы представлены в списке на сайте IT-Academy.

Карьера и рост

Тестирование наряду с бизнес-анализом или техническим писательством — действительно одна из наименее сложных точек входа в ИТ (хотя этот путь тоже не из лёгких).   

Тестировщику необязательно обладать глубокими техническим навыками, знать языки программирования или даже иметь математический склад ума. Хотя ситуация меняется и требования к кандидатам растут. Говорят, 10-15 лет назад ИТ-компании брали в тестировщики чуть ли не людей с улицы. Лет 7 назад (когда я сам приходил в профессию) новичку уже надо было крепко владеть теорией. Сегодня на собеседованиях чаще проверяют базовые технические навыки: работу с базами данных и сетями, администрирование. 

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

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

За последние месяцы ситуация на рынке труда радикально изменилась из-за эпидемии коронавируса. Ещё два месяца назад спрос на начинающих тестировщиков был большой, и он сохранялся на протяжении нескольких лет. 

Конечно, в условиях кризиса позиция тестировщика становится уязвимой. Без разработчика невозможно написать ПО, а без тестировщика худо-бедно можно. Мне кажется, в этой ситуации лучше всего защищены «миксы» — те самые универсалы, о которых я говорил выше. Они способны быстро перестраиваться с одних задач на другие. Если проекту станут не нужны мануальщики, то «микс» всегда может переключиться на автоматизацию процессов — и наоборот.

Кто такой DevOps. Обзор изнутри от Виктора Ведмича
Кто такой DevOps. Обзор изнутри от Виктора Ведмича
По теме
Кто такой DevOps. Обзор изнутри от Виктора Ведмича
Кто такой Data Scientist. Обзор изнутри от Арсения Кравченко
Кто такой Data Scientist. Обзор изнутри от Арсения Кравченко
По теме
Кто такой Data Scientist. Обзор изнутри от Арсения Кравченко
23 популярных курса по Data Science от Coursera
23 популярных курса по Data Science от Coursera
По теме
23 популярных курса по Data Science от Coursera

Хотите сообщить важную новость?

Пишите в наш Телеграм

Читайте также

55% скидка на курс для тестировщиков
55% скидка на курс для тестировщиков
55% скидка на курс для тестировщиков
Онлайн-курс для тех, кто хочет стать тестировщиком.
«Упирался ногами в тротуар». QA получил штраф в $450
«Упирался ногами в тротуар». QA получил штраф в $450
«Упирался ногами в тротуар». QA получил штраф в $450
QA Кирилла Ратафия задержали две недели назад на площади Победы во время массового шествия против нерегистрации кандидатов в президенты. Кирилл говорит, что после задержания его 11 часов продержали во дворе РОВД лицом к стене, без возможности позвонить родным и попросить адвоката. Потом ещё почти 6 часов — в камере. Потом — повезли в суд. Кириллу показали два протокола (один так и не заполнили до конца) и дали штраф в 40 базовых. На той неделе он забрал все документы и пришёл рассказать свою историю dev.by.
32 комментария
Кто такой гейм-аналитик. Обзор изнутри от Алексея Мацука
Кто такой гейм-аналитик. Обзор изнутри от Алексея Мацука
Кто такой гейм-аналитик. Обзор изнутри от Алексея Мацука
Про профессию рассказывает Алексей Мацука, дата-аналитик Gismart. Ведет игровые проекты компании, а также игры студий-партнеров, издательством которых занимается компания. Продолжаем цикл материалов про ИТ-специальности. Каждую из них описывает «типичный представитель» — опытный специалист. Мы надеемся, эти материалы помогут школьникам, студентам, переквалификантам, джуниорам и сочувствующим выбрать специальность в ИТ, оценить перспективы или просто сверить часы с авторитетным коллегой. Обсуждайте и дополняйте материал в комментариях, чтобы сделать его ещё полезней.
1 комментарий
IBA Group тестирует в Беларуси систему, которая отслеживает температуру рельсов
IBA Group тестирует в Беларуси систему, которая отслеживает температуру рельсов
IBA Group тестирует в Беларуси систему, которая отслеживает температуру рельсов

Обсуждение

3

Открыл статью и прям епамчиком повеяло, где Евгений, собственно и работает (если ничего не изменилось).

Статья хороша, сухо, по теории, для начала очень ок

Pavel Seradzenka
Pavel Seradzenka QA Engineer в Klika Tech
-4

а можно таких статей больше совсем никогда не будет? спасибо пожалуйста

4

а можно таких комментариев больше совсем никогда не будет? спасибо пожалуйста

p.s.: вы бы хоть уточняли, что именно вам не нравится.

0

Такой флешбэк словила при прочтении, что сначала подумала — плагиат отсюда → https://habr.com/ru/company/dodopizzadev/blog/497014/.

1

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

Евгений Гутько
Евгений Гутько Software Engineer в EPAM
0

На мой взгляд статья немного идеалистическая и ей не хватает описания рутинных будней тестировщика. Тех самых, где "за деревьями не видно леса". В реальности ежедневная работа функционального тестировщика заключается в тестировании отдельных маленьких кусков функционала. В условиях энтерпрайз разработки можно вообще не представлять над чем вы работаете глобально.
Пример: вы приходите на новый проект, который уже 2 года разрабатывается - это сайт для крупного бизнеса. Вы получаете краткий инструктаж - сейчас ваша команда занимается разработкой "корзины" для оплаты покупок. Страница корзины состоит из 5 компонентов ( а нет, из 7. А нет, уже из 9). Вы получаете первую задачу - проверить один из компонентов на соответствие перечню критериев. Потом второй, и т.д.
Попутно, выявленные дефекты отправляются на доработку и снова проверяются тестерами. Через полгода такого конвейера вы заканчиваете работу с "корзиной", но у вас может не быть полного понимания, как взаимодействуют между собой разные компоненты, потому что ими занимались другие члены команды.
И можно было бы разобраться, почитать документацию, посмотреть на описания задач, с которыми работали коллеги, но у вас нету на это времени, потому что теперь вы переходите к работе над "личным кабинетом пользователя" - там уже какая-то своя логика.
При этом, параллельно, другие команды разрабатывают другие блоки "сайта".

Позже, всё это объединится и получится единая, большая и сложная система, но вы ничего этого не видите, потому что ваша задача убедиться, что "вот эта кнопка не нажимается, если вот там не заполнили поле".
Постепенно у вас появится понимание общей картины и чувство причасности к чему-то большому (при условии, что вы вообще проработаете на этом проекте достаточно долго), но на это уходит несколько лет рутинной работы и вот тут важно, чтобы эта рутина приносила вам удовольствие.

Anonymous
Anonymous
0

Есть хорошая книжка на эту тему из компьютерного неолита. Но примерно так же будет выглядеть первая работа тестировщика в каком нибудь "маленьком, но очень амбициозном" стартапе.
"Дневник тестировщика" - http://samlib.ru/b/brigadir_j_a/test.shtml
Очень лёгкое и приятное чтиво. Единственно, девушкам не очень, из-за доли нецензурной лексики.

-4

Странно, я привык их тестерами называть, а не тестировщиками.
Точно так же как и танцоров не танцовщиками.

0

Тестер - это прибор. Тестировщик - это человек.

0

Женька Женька

0

Ерат скоро станет моноконторой гигантом в РБ и всех всосет в себя. Вы бы поаккуратней с будущим работодателем

Pavel Jahont
Pavel Jahont Руководитель в ИП Яхонт П.В.
0

Очень полезная и интересная статья

Спасибо! 

Получать рассылки dev.by про белорусское ИТ

Что-то пошло не так. Попробуйте позже