Тестировщик ПО – незаменимая профессия в сфере IT. Специалисты по тестированию занимаются проверкой работоспособности, поиском проблем, ошибок и уязвимостей в работе программного продукта. В этой статье поговорим о том, какие навыки нужны тестировщикам, на какую зарплату и карьеру можно рассчитывать с такой специальностью, как ее освоить в 2023 году.
Содержание
- Кто такой тестировщик и чем занимается QA-инженеры?
- Виды тестирования
- Карьера тестировщика
- Почему тестирование – важный этап разработки ПО?
- Что должен знать и уметь тестировщик
- Зарплата и востребованность
- Как стать тестировщиком?
- Выдающиеся представители профессии
- Полезные ссылки по теме
- FAQ (Часто задаваемые вопросы)
Кто такой тестировщик и чем занимается QA-инженеры?
Тестировщики занимаются проверкой программы, приложения и любого другого ПО на наличие ошибок и дефектов, если говорить проще – все ли работает так, как было задумано. Задача специалиста выявлять все отклонения, ошибки и сообщать о них разработчикам для дальнейшего исправления.
Эта профессия действительно очень важна для сферы IT, поскольку без профессионального тестирования сегодня невозможно создать качественный, конкурентоспособный цифровой продукт. Отсюда второе название профессии – QA инженер или QA-специалист, где QA – Quality Assurance – обеспечение качества.
В контексте 6-этапного жизненного цикла разработки программного обеспечения, тестирование занимает важный 5 этап.
Конкретные задачи и обязанности QA-специалистов могут несколько отличаться в разных нишах, но зачастую включают:
- Внимательное изучение технической документации, требований к продукту, инструкций от продуктовых аналитиков или разработчиков. Тестер должен четко понимать, какой продукт хотят создать, для чего он, какой должен быть функционал.
- Создание тест-кейсов. Специалист определяет функции, пользовательские сценарии взаимодействия с продуктом и составляет тестовые ситуации, которые позволят проверить работу ПО в каждом конкретном случае.
- Проведение тестирования.
- Сбор и документирование результатов: всех сбоев, ошибок, уязвимостей, багов.
- Создание отчета для разработчиков со своими рекомендациями по устранению неполадок.
- Проведение повторных тестов после внесения изменений.
Виды тестирования
Процесс тестирования может затрагивать различные аспекты работы ПО, применять разные подходы. Поэтому сформировалось несколько видов и категорий тестирования:
- Статическое.
- Динамическое.
- Функциональное.
- Нефункциональное.
- Статическое. Это ранний этап тестирования, в рамках которого специалист занимается проверкой проекта, кода, спецификации.
- Динамическое. Следует после завершения статического. На этом этапе тестировщику необходимо проверить работу ПО в запуске: понять, как сильно оно нагружает память и процессор устройства, какое время отклика.
- Функциональное. Помогает понять, насколько хорошо продукт выполняет заложенные в него функции. Тестировщик должен имитировать использование продукта – нажимать на кнопки, заполнять / отправлять формы с данными, добавлять товар в корзину и т.д. Также на этом этапе проводятся проверки безопасности продукта, его устойчивость к атакам, вирусам, утечке данных.
- Нефункциональное. Предполагает проверку работоспособности продукта в различных условиях: одинаково ли ПО работает на разных устройствах, платформах (например, на ОС Android или iOS), с разной нагрузкой.
Карьера тестировщика
Переходим к самому главному: что собой представляет карьера тестировщика, какие в ней есть специализации, куда можно развиваться? Давайте начнем со стандартной градации, которая применяется в IT-сфере и отражает вертикальный рост по карьерной лестнице:
- Младший специалист или JuniorQAengineer. Должность начального уровня, на которую вы можете устроиться после профильного обучения с минимальным опытом. Обычно на этом этапе карьеры тестеры работают в ручном режиме, на практике осваивают баг-трекинговые системы, разрабатывают тестовые сценарии вместе с командой или под руководством наставника.
- Продвинутый специалист или MiddleQAengineer. Чтобы перейти на уровень миддл новичку обычно требуется 2-3 года. Такие тестировщики обычно уже имеют приличный опыт, перешли на автоматизированное тестирование, хорошо разбираются в программном коде, способны самостоятельно создавать тестовые сценарии. То есть – это уже самостоятельный профессионал автоматизатор, который может качественно, без стороннего контроля выполнять свои обязанности, умеет программировать скрипты.
- Старший специалист или SeniorQAengineer. На этом уровне специалисты могут не только самостоятельно планировать, а затем проводить тестирование, но также они способны находить решения для нестандартных задач, уже могут руководить командой джунов. Такие профессионалы глубоко понимают процесс разработки и все нюансы тестирования.
- Руководитель подразделения или QA Team Lead. Вершина карьеры, на которой специалист обычно не занимается непосредственно тестированием, а руководит командой специалистов. Он должен системно подходить к процессу, распределять обязанности, оценивать эффективность своих сотрудников.
Что такое ручное и автоматизированное тестирование? Ручное или мануальное тестирование (ManualQA) обычно используется начинающими специалистами. В таком формате тестер самостоятельно выполняет пользовательские сценарии поведения и находит ошибки без использования специальных программ или скриптов. Automation QA или автоматизированное тестирование предполагает применения специальных программ, а также написание скриптов для выполнения рабочих задач. Такой подход помогает сократить время на проведение тестов, повысить свою продуктивность, соответственно, ценность для компании. Для автоматизации тестирования необходимо изучать языки программирования (это может быть Java, C#, Python, Javascript).
Помимо вертикального роста в карьере QA-инженера есть отличные возможности для роста горизонтального. Тестирование считается одним из наиболее простых и быстрых способов «войти в ИТ», при этом тестировщик на своей должности получает ценное понимание того, как устроен процесс разработки изнутри, взаимодействует с другими специалистами, командами, которые участвуют в разработке. Опыт работы тестером помогает быстрее осваивать другие IT-специальности и менять профессию. Так, достаточно часто QA-инженеры переходят в разработку, продакт-менеджмент, аналитику, системное администрирование или UX / UI дизайн
Отдельно стоит рассказать о специализациях, которые существуют в нише QA:
- Test Analyst. Профильно анализирует документацию. Способен эффективно систематизировать информацию по проекту, распределять задания между обычными тестерами. Отвечает не за проведение тестирования, а, скорее, организацию этого процесса: объяснение требований тестировщикам, контроль их работы, составление тестовой документации, анализ результатов на соответствие требованиям к продукту. Для этой работы важно развивать аналитическое мышление, учиться работать с большими массивами данных, разбираться в электронном документообороте.
- Test Architect. Архитектор тестов особенно необходим на больших проектах, которые нуждаются в многоуровневой, сложной cтратегии тестирования. Его основная задача разработать оптимальную архитектуру тестирования, по которой будут работать обычные тестеры. Он должен оптимизировать процесс тестирования, подбирать наиболее удачные инструменты и подходы, контролировать процесс тестинга, при необходимости, помогать младшим специалистам. Для такой работы необходимо комплексное понимание всех процессов, методик, техник тестирования, навыки автоматизации, а также развитые организационные способности.
- Test Manager. Менеджеры тестов занимаются управлением командой тестировщиков, они напрямую работают с командой, руководят процессом: формируют перечень задач, распределяют их между членами команды, оценивают качество выполнения, устанавливают качественные метрики, мониторят производительность сотрудников, обеспечивают Quality Control (QC). В этой профессии на первый план выходят управленческие навыки, хотя опыт работы тестировщиком также очень важен.
Почему тестирование – важный этап разработки ПО?
Практически невозможно создать программный продукт, который будет со старта работать идеально. Если разработчики игнорируют этап тестирования перед релизом ПО, то пользователь, вероятнее всего, получит проблемный сервис, который будет работать со сбоями, не сможет удовлетворить потребности своего целевого клиента, или вовсе будет нести угрозу для персональных данных. Профессиональная работа команды тестирования обеспечивает безопасность, оптимальную производительность, а также надежность продукта. А это закладывает основу для будущего успеха и финансовой отдачи от проекта.
Вот лишь несколько примеров, когда невыявленные проблемы на этапе тестирования привели к серьезным последствиям для компаний и обычных людей:
- Starbucks пришлось закрыть около 60% магазинов в США и Канаде из-за программного сбоя в своей POS-системе. Магазин начал продавать кофе бесплатно, так как не смог обработать транзакцию.
- Airbus A300 China Airlines разбился из-за ошибки в программном обеспечении 26 апреля 1994 года, в результате чего погибли 264 человека.
- В 1999 году программная ошибка привела к сбою запуска военного спутника стоимостью 1,2 миллиарда долларов, что стало самой дорогостоящей аварией в истории.
- В 1996 году из-за программной ошибки на банковские счета 823 клиентов крупного американского банка было зачислено 920 миллионов долларов США.
Что должен знать и уметь тестировщик
Чтобы преуспеть в карьере, специалист должен обладать комплексом профессиональных и гибких компетенций.
Hard Skills
Необходимые профессиональные знания и навыки:
- Навыки программирования. Чтобы писать тестовые сценарии, необходимо использовать один из языков программирования. Обычно для этих задач изучают Ruby, Python, Java, JavaScript, C# — эти ЯП поддерживаются большинством современных инструментов тестирования.
- Frontend-навыки. Специалист должен уметь работать с браузерами, web и мобильными приложениями, владеть базовыми языками для фронтенда (HTML, CSS, JavaScript).
- Умение работать с базами данных. Для эффективной работы также важно понимание особенностей разных типов БД. Так, на этапе тестирования серверной части приложения (backend testing) тестер должен проверять данные из БД SQL. Для этого он должен уметь подключаться к БД, использовать команды, таблицы, индексы, ключи, работать с PostgreSQL.
- Навыки в области API. API серверы выступают в качестве посредника между интерфейсом программы и базой данных, поэтому их также необходимо тестировать, а для этого нужно владеть API REST и SOAP.
- Инструменты тестирования. Естественно, QA-инженеры должны владеть профильными инструментами для выполнения функционального / нефункционального тестирования. Среди наиболее востребованных работодателями – Selenium, Robotium, TestComplete, Kobiton, Postman, системы баг-трекинга Jira, Bugzilla. Они помогают тестировать браузеры, ПК, API и т.д. Не менее важно изучить теоретическую базу по тестированию ПО: разбираться в классификации, типах, методах тестирования, правилах создания сценариев, тест-планов, тест-кейсов.
- Системы контроля версий. Навыки работы с системами контроля версий помогают удобно работать над проектом с другими членами команды, отслеживать изменения. Чаще всего в современных проектах работают с системой Git.
- Команды UNIX/Bash. Базовые команда UNIX/Bash обеспечат тестировщику навигацию между файлами, помогут работать с операционными системами на UNIX (например, Linux), а также дадут возможность работать с кодом из репозитория GitHub.
Soft Skills
Полезные гибкие навыки (Soft Skills):
- Аналитические способности. Нужны для того, чтобы создавать наиболее эффективные тестовые сценарии, сегментировать задачи, подбирать оптимальные методы, инструменты.
- Коммуникабельность. Работа специалиста тесно связана с другими членами команды – разработчиками, продуктовыми менеджерами. Чтобы процесс девелопмента был продуктивным, тестер должен уметь эффективно общаться с коллегами в офисе, доносить свои мысли как в устной, так и в текстовой форме, четко формулировать мысль в своих отчетах.
- Планирование, тайм-менеджмент. Разработка ПО обычно сопряжена со строгими дедлайнами. Чтобы не выбиваться из графиков, нужно иметь организационные способности, дисциплинированность, навыки управления временем. Поможет изучение таких методологий как Agile, Scrum.
- Обучаемость, желание развиваться в этой сфере. IT сфера очень быстро развивается, в ней постоянно появляются новые тренды, технологии, инструменты. Соответственно, требования к специалистам растут. Например, все больше работодателей ожидают от своих сотрудников, даже на начальных этапах карьеры, умение проводить автоматизированные тесты, хотя еще несколько лет такой тенденции не было. Поэтому, чтобы развиваться в профессии нужно постоянно учить что-то новое, отслеживать новые инструменты, искать и читать профильную литературу (причем часто на английском языке).
Зарплата и востребованность
Пришло время разобраться, а стоит ли становиться тестировщиком в 2023 году? Насколько востребована эта профессия, какие в ней перспективы, плюсы и минусы, сколько в ней можно заработать?
Согласно статистике Хабра за 2022 год, медианные зарплаты в сфере тестирования составляют 109 тыс. рублей.
На примере этого графика можно понять, что по уровню доходов тестировщики определенно уступают разработчикам, аналитикам и менеджерам в IT, но в целом имеют не самые низкие доходы в индустрии – зарабатывают больше чем в сфере дизайна или в поддержке.
Нужно также понимать, что зарплата конкретного специалиста зависит от его уровня знаний, опыта, а также от места работы. Так, в Москве и Санкт-Петербурге зарплаты традиционно выше, чем в регионах. Средние зарплаты тестеров в столице – 142 тыс. рублей, в Питере – 133 тыс., тогда как в регионах – лишь 90 тыс. рублей.
Также Хабр делится полезной статистикой зарплатных градаций по квалификации специалистов в сфере QA:
Как мы видим, изучение автоматизированного тестирования дает возможность повысить уровень заработной платы в 2 раза по сравнению с оплатой труда ручных тестеров. А дальнейшее развитие в карьере QA позволяет выйти на весьма достойный уровень заработка даже по меркам IT.
Сегодня QA является востребованным карьерным направлением, и в ближайшие спрос на таких профи будет только расти. Сфера ИТ быстро развивается, компании постоянно создают новые программы, приложения, сервисы и существуют в высококонкурентной среде. В таких условиях обеспечению качества продукта будет уделяться все больше внимания.
Но давайте посмотрим на реальные возможности для трудоустройства. На момент написания статьи, на агрегаторе вакансий HeadHunter было представлено более 3 800 вакансий для соискателей в России. Из них почти 2 тыс. в Москве и около 500 в Питере. И это только на одном ресурсе. Можно с уверенностью сказать, что QA-инженер достаточно легко может найти работу, особенно учитывая возможность работать удаленно или фрилансером на заказчика из любой страны мира.
Как стать тестировщиком?
Тестирование ПО – это достаточно молодая профессия, которую можно изучить в довольно сжатые сроки. Так, освоить профессию с нуля до базового уровня можно за 3-6 месяцев. Если вы решили сменить карьеру и научиться тестировать ПО, оптимальным вариантом станут онлайн-курсы.
Такой формат дает возможность обучаться у топовых экспертов с огромным опытом, не выходя из дома. Хорошие онлайн-курсы помогут получить востребованные на рынке компетенции, изучить актуальные в индустрии кейсы и научиться писать автотесты. Но самое главное, с их помощью вы сможете создать сильное резюме и портфолио, попасть на стажировку, получить реальный опыт тестирования, подготовиться к собеседованию.
Нетология, Яндекс Практикум, Geekbrains, Skillfactory, Skillbox, Udemy – на Eddu.Pro мы собрали большую подборку курсов для тестировщиков, в которой вы точно сможете найти для себя оптимальный вариант:
Лучшие онлайн-курсы по QA-тестированию
Выдающиеся представители профессии
Майкл Болтон (Michael Bolton)
Настоящий гуру тестирования с опытом работы более 20 лет. За это время выпустил массу профессиональных образовательных материалов, регулярно выступает на топовых профильных конференциях.
- Биография: https://tmguru.ru/baza-znanij/testirovanie-v-litsah/michael-bolton/
- Twitter: https://twitter.com/michaelbolton
Джеймс Маркус Бах (James Marcus Bach)
За свою карьеру успел поработать с гигантами Apple, Borland, играл значимую роль в создании методологии исследовательского тестирования. Последние 20 лет работает независимым консультантом.
- Twitter: https://twitter.com/jamesmarcusbach
- Блог: https://www.satisfice.com/blog/ (англоязычный)
Святослав Куликов
Сегодня работает Resource Development Manager EPAM Systems и является кандидатом технических наук. На самое главное – Святослав Куликов – автор книги «Тестирование программного обеспечения. Базовый курс», которая рекомендуется к прочтению всем новичкам.
- Интервью с экспертом: https://youtu.be/aIb8BPzVWG4
Полезные ссылки по теме
ТОП-7 книг по тестированию ПО:
- Б. Бейзер «Тестирование черного ящика. Технологии функционального тестирования программного обеспечения и систем».
- С. Куликов «Тестирование программного обеспечения. Базовый курс».
- Гленфорд Майерс, Т. Баджетт, К. Сандлер «Искусство тестирования программ»
- Р. Савин «Тестирование Дот Ком, или Пособие по жестокому обращению с багами в интернет-стартапах».
- Б. Лабун «Дружеское знакомство с тестированием программ».
- Д. Арбон, Д. Каролло, Д. Уиттакер «Как тестируют в Google».
- Р. Блэк, «Ключевые процессы тестирования.
Полезные Youtube-каналы:
- Radio QA.
- Okiseleva.
- LearnQA: Онлайн обучение тестировщиков.
- QA Academy.
- QAQC.
Telegram-каналы:
- QA — Анонсы курсов и мероприятий
- Серьезный тестировщик
- Книги по тестированию
- QA Сhannel
- Тестировщики нужны
Сообщества ВКонтакте:
- Artsiom Rusau. Тестировщик / QA / Тестирование
- Школа седого тестировщика
Профессия тестировщика. Как прийти в IT, если ты гуманитарий?
Профессия тестировщика. Как прийти в IT, если ты гуманитарий?
FAQ (Часто задаваемые вопросы)
Если коротко – то всем. Да, эти специалисты имеют общую задачу – создать качественный продукт, который будет удовлетворять пользователя. Во всем остальном, у каждого свой путь. Разработчик пишет программный код, а software tester должен анализировать, как этот код работает, выполняет ли он свою функцию. В работе программиста на первый план выходят технические навыки, в работе тестировщика очень важно аналитическое мышление, умение смотреть на продукт под разными углами, в том числе пригодится умение думать как пользователь. Специалист должен правильно понять специфику тестируемого софта, а затем решить, какие подходы, инструменты ему понадобятся и сработают лучше всего в этом случае. Как провести нагрузочное и юзабилити тестирование, проработать неочевидные пользовательские сценарии, поведенческие факторы, глубоко понимать отраслевые и корпоративные стандарты.
Здесь можно дать однозначный ответ – тестировщиком. Хотя требования к тестерам растут, это по-прежнему профессия с низким порогом входа. Чтобы устроиться на вакансии начального уровня или стажёра достаточно изучить теорию тестирования, уметь его делать вручную и нормально описывать результаты своей работы в отчетах. Чтобы развиваться в карьере дальше потребуется усидчивость и целеустремленность: придется много работать, учить, но это можно делать уже на своем рабочем месте. Чтобы разработчику устроиться на позицию джуниора, ему нужно изучить как минимум один язык программирования, сопутствующие фреймворки, алгоритмы и структуры данных + еще дополнительные инструменты, в зависимости от специализации.
На начальных этапах карьеры программисты зарабатывают значительно больше тестеров. Подробное сравнение зарплат мы приводили в разделе «Зарплаты и востребованность». Но уровень дохода тестера с навыками автоматизированного тестирования вполне сопоставим с доходами программиста. Опытные тестеры уровня мидл и выше, которые способны проводить тесты автоматически и сокращать время на решение рутинных задач могут рассматривать также вариант фриланса – брать в работу несколько проектов одновременно. Опять же, для автоматизации нужно знать языки программирования и быть уже продвинутым специалистом.
Да, это действительно так. Карьера имеет низкий порог входа. Базовые профильные курсы можно пройти буквально за несколько месяцев. Но не стоит считать, что это простая карьера. Во-первых, требования к новичкам постепенно растут. Во-вторых, чтобы не застрять на низкооплачиваемой первой ступени мануального тестировщика и продвинуться по карьерной лестнице, придется много учиться.