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

Редакция dev.ua запустила цикл материалов об ИТ-специальностях. Каждую из них подробно описывает опытный специалист.

Мы пишем об этом для того, чтобы все — от школьников до джуниоров — могли выбрать специальность в ИТ, оценить собственные перспективы или просто усовершенствовать навыки, которые уже имеют.

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

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

Редакция dev.ua запустила цикл материалов об ИТ-специальностях. Каждую из них подробно описывает опытный специалист.

Мы пишем об этом для того, чтобы все — от школьников до джуниоров — могли выбрать специальность в ИТ, оценить собственные перспективы или просто усовершенствовать навыки, которые уже имеют.

Сегодня о профессии рассказывает Евгений Шидловский, ведущий инженер-программист (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. Это специалист, который помимо тестирования ещё занимается поддержкой всей инфраструктуры: разворачивает и обслуживает серверы, автоматизирует тесты и процесс сборки приложения.  

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

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

— Изучить спецификацию продукта (программы). 

— Разработать методы для проверки продукта. 

— Провести проверку продукта.

— Сделать выводы по итогам проверки. 

— Перечислить найденные уязвимости и недочеты продукта в техническом документе (чаще всего — на английском языке). 

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

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

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

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

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

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

Курсы по тестированию на Coursera, стоимость от $39 в месяц.

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

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

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

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

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

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

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

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

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

Роман Савин. «Тестирование Дот Ком, или Пособие по жестокому обращению с багами в интернет-стартапах». Очень маленькая и простая книга. Написана доступнейшим языком. Один из лучших источников для начала.

Святослав Куликов. «Тестирование программного обеспечения. Базовый курс».  Объёмный труд, где собрано много разнообразного материала. Будет очень полезен в качестве справочника.

Lee Copeland. A Practitioner’s Guide to Software Test Design. Одна из лучших книг по тестированию. Хороша как самоучитель.

Software Testing Udacity — попробовать бесплатный онлайн-курс.

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

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

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

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

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

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

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

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

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

Курсы, чтобы стать тестировщиком

Специализация Software Testing and Automation

Курс-симулятор Тестировщик программного обеспечения

Автоматизация тестирования на JavaScript

Нагрузочное тестирование

QA Lead

Кто такой Project Manager в геймдеве. Обзор изнутри Ольги Савельевой
Кто такой Project Manager в геймдеве. Обзор изнутри Ольги Савельевой
По теме
Кто такой Project Manager в геймдеве. Обзор изнутри Ольги Савельевой
Кто такой Audio Engineer в геймдеве. Обзор изнутри от Виталия Кезика
Кто такой Audio Engineer в геймдеве. Обзор изнутри от Виталия Кезика
По теме
Кто такой Audio Engineer в геймдеве. Обзор изнутри от Виталия Кезика
Кто такой 3D-художник в геймдеве. Обзор изнутри Елены Барабанщиковой
Кто такой 3D-художник в геймдеве. Обзор изнутри Елены Барабанщиковой
По теме
Кто такой 3D-художник в геймдеве. Обзор изнутри Елены Барабанщиковой

Хочете повідомити важливу новину? Пишіть у Telegram-bot.

А також підписуйтесь на наш Telegram-канал.

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

Зеленский: Доля IT-отрасли в ВВП Украины за два-три года увеличится до 10%. Что для этого нужно?
Зеленский: Доля IT-отрасли в ВВП Украины за два-три года увеличится до 10%. Что для этого нужно?
Зеленский: Доля IT-отрасли в ВВП Украины за два-три года увеличится до 10%. Что для этого нужно?
"Написал код для соцсети и решил сбежать из IT". История дипломированного программиста, который разочаровался в профессии
"Написал код для соцсети и решил сбежать из IT". История дипломированного программиста, который разочаровался в профессии
Александр Федотов 15 лет назад писал программы, разрабатывал социальные сети. Но решил не связывать свою жизнь с кодами, взамен предпочел заниматься маркетингом в консалтинговом агентстве «Ольшанский и Партнеры» — компании, которая является соорганизатором самой крупной IT-конференции Восточной Европы iForum. Вот его история.
Они сбежали в IT из разных профессий. 7 историй: от гида, геолога-взрывотехника, физика-ядерщика, доктора, лингвиста и археолога
Они сбежали в IT из разных профессий. 7 историй: от гида, геолога-взрывотехника, физика-ядерщика, доктора, лингвиста и археолога
Они сбежали в IT из разных профессий. 7 историй: от гида, геолога-взрывотехника, физика-ядерщика, доктора, лингвиста и археолога
Войти в IT — возможность, которая сегодня дана буквально каждому желающему. Мы уже писали о студентах, которые попали в сферу IT буквально со школьной скамьи, и о взрослых сотрудниках IT-компаний,  работающих в отрасли по четверти века. Однако немало интересных историй о людях, которые отказывались в пользу IT от профессий, полученные потом и кровью на протяжении многих лет. В сфере информационных технологий работают бывшие врачи, геологи, гиды… Dev.ua рассказывает их истории.
В Украине запустилась новая продуктовая IT-компания
В Украине запустилась новая продуктовая IT-компания
В Украине запустилась новая продуктовая IT-компания