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

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

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

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

10 курсов по тестированию для новичков и опытных специалистов По теме

10 курсов по тестированию для новичков и опытных специалистов

Важные личные качества

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

  • Аналитические навыки, чтобы понимать взаимосвязи, анализировать огромные массивы данных, результаты тестов и т.д.
  • Управление временем и скиллы планирования — только с ними можно обеспечить высокую производительность на фоне серьёзной рабочей нагрузки.

Кто такие QA и QC

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

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

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

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

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

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

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

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

Образование

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

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

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

  1. МГТУ им. Н.Э. Баумана – Московский государственный технический университет имени Н.Э. Баумана.
  2. НИУ МГСУ – Московский государственный строительный университет.
  3. МГУТУ имени К.Г. Разумовского – Московский государственный университет технологий и управления имени К.Г. Разумовского.
  4. СПбПУ – Санкт-Петербургский политехнический университет Петра Великого.
  5. УрФУ им. Б. Н. Ельцина – Уральский федеральный университет им. Б. Н. Ельцина (Екатеринбург).
  6. НГУ – Новосибирский национальный исследовательский государственный университет.
  7. ТПУ – Национальный исследовательский Томский политехнический университет (Томск).
  8. КФУ – Казанский (Приволжский) федеральный университет (Казань).
  9. ЮФУ – Южный федеральный университет (Ростов на Дону).
  10. СКФУ – Северо-Кавказский федеральный университет (Ставрополь).

На территории России более 300 ВУЗов, выпускающих специалистов в сфере информационных технологий, программирования.

Если нет возможности поступать в высшее УЗ, то есть и ССУЗы. Насчитывается больше 100 заведений, включая:

  1. Санкт-Петербургский технический колледж управления и коммерции.
  2. Университетский политехнический колледж Санкт-Петербургского политехнического университета Петра Великого.
  3. Колледж связи №54 им. П.М. Вострухина (Москва).
  4. Московский приборостроительный техникум Российского экономического университета имени Г.В. Плеханова (Москва)
  5. Нижегородский радиотехнический колледж.
  6. Омский авиационный колледж имени Н.Е. Жуковского
  7. Новосибирский химико-технологический колледж имени Д.И. Менделеева.

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

Дополнительное образование, курсы

Даже не имея профильного образования в области информатики, программного обеспечения, есть возможность обучиться профессии тестировщика. Есть несколько вариантов – получить дополнительное образование или пройти курсы переподготовки.

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

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

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

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

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

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

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

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

Перспективы

Какие перспективы могут быть у тестера? Прежде всего, есть перспектива повышения зарплаты по мере роста опыта работы. Сегодня ты получаешь 30-40 тысяч рублей, через два года — почти 100 тысяч. Чем не перспектива? Даже если текущая компания не предлагает тебе такие деньги, всегда можно перейти в другую: опыт работы-то уже у тебя есть.

Другая перспектива — стать программистом. Проработав несколько лет тестером, довольно просто перейти в другую сферу IT: например, «превратиться» в разработчика, аналитика или даже в руководителя. Все зависит от тебя и от твоих интересов.

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

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

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

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

Права

Тестировщик ПО имеет право:

3.1. На все предусмотренные законодательством социальные гарантии.

3.2. Знакомиться с проектами решений руководства предприятия, касающимися его деятельности.

3.3. Вносить на рассмотрение руководства предложения по совершенствованию работы, связанной с обязанностями, предусмотренными настоящей инструкцией.

3.4. В пределах своей компетенции сообщать непосредственному руководителю о всех выявленных в процессе деятельности недостатках и вносить предложения по их устранению.

3.5. Требовать от руководства предприятия оказания содействия в исполнении своих должностных обязанностей и прав.

3.6. Повышать свою профессиональную квалификацию.

3.7. [Указать другие права работника].

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

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

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

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

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

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

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

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

Средняя заработная плата

Заработную плату будем смотреть на «Хабр Карьере». Возьмём данные за второе полугодие 2021 года, вне зависимости от владения тем или иным стеком. Для специалистов ручного тестирования:

Уровень специалистаСредняя заработная платаСтажёр (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 руб.

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

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

  • Роман Савин. «Тестирование Дот Ком, или Пособие по жестокому обращению с багами в интернет-стартапах». Очень маленькая и простая книга. Написана доступнейшим языком. Один из лучших источников для начала.
  • Святослав Куликов. «Тестирование программного обеспечения. Базовый курс». Объёмный труд, где собрано много разнообразного материала. Будет очень полезен в качестве справочника.
  • Lee Copeland. A Practitioner’s Guide to Software Test Design. Одна из лучших книг по тестированию. Хороша как самоучитель.
  • Software Testing Udacity — попробовать бесплатный онлайн-курс.
  • Testing Challenges — «пощупать руками» интересные задачки для тестирования .

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

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

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

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

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

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

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

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

Сколько зарабатывают тестеры?

Каких-то пять лет назад считалось, что тестером может быть любой студент 1-2-го курсов. К тестерам относились несерьезно — как к «недопрограммистам». Формат такой работы подразумевал только подработку на время учебы в ВУЗе, а серьезно заработать, будучи тестировщиком, удавалось мало кому.

Итак, сколько зарабатывают тестеры? Могу поспорить, что ответ на этот вопрос тебя интересовал больше всего, раз ты начал читать эту статью. Тестеры со стажем в 2-3 года могут легко заработать около 100 000 рублей в месяц. Минимальная заработная плата составляет от 30 тысяч рублей, средняя около 50-60 т.р. Не буду приводить красивых графиков, приведу две вакансии, которые нашел за 5 секунд на сайте Яндекс.Работа: в первом случае предлагают до 90 т.р. (что вполне нормально), во втором — от 30 до 45 тысяч рублей.

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

Две первые попавшиеся вакансии

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

📎📎📎📎📎📎📎📎📎📎