Баннер мобильный (3) Пройти тест

Кто такой тестировщик и чем он занимается

Объясняем на мемах, карьерной лестнице, зарплатах и задачах

Гид по профессии

3 марта 2024

Поделиться

Скопировано
Кто такой тестировщик и чем он занимается

Содержание

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

    Кто такой тестировщик

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

    Тестировщиков принято разделять на два направления: QA и QC. Чем они отличаются друг от друга?

    Специалист по QC (Quality Control, или контроль качества) проверяет, соответствует ли продукт требованиям, описанным в документах. Он тоже может выполнять задачи из тестирования, проверять требования при их создании, но при этом смотрит на результат разработки в целом.

    Специалист QA (Quality Assurance, или обеспечение качества) контролирует создание продукта от идеи до эксплуатации. Он разрабатывает стандарты, подбирает инструменты, чтобы количество ошибок на всех этапах было минимальным.

    В России разделение встречается редко. Только в компаниях, которые специализируются на тестировании. 

    У нас идет параллельное разделение: есть менеджеры, которых можно назвать QA, они следят за качеством процессов, а рядовые тестировщики (синьоры, мидлы, джуны) исполняют роль QC, непосредственно делают работу руками. QC более узко видит область, которую он тестирует; QA смотрит вширь, видит пробелы во всем процессе

    Роман Орлов, эксперт тестировщик
    Роман Орлов,
    автор модулей курса «Автоматизация и тестирование на Python»

    Где нужен тестировщик

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

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

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

    Часто можно встретить разделение на продуктовые команды. Это не только организовывает, но и оживляет рабочий процесс.

    Мне нравится разделение на команды, потому что там больше живого общения между людьми. Чтобы достучаться до разработчиков, тебе не нужно писать тонны писем на почту, не нужно ходить согласовывать задачи с миллионом людей. Ты решаешь все внутри команды буквально здесь и сейчас.

    Изменения происходят быстрее. Не надо ждать релиза, чтобы посмотреть, что у тебя все плохо. Проблема возникла — мы тут же ее решили. Это положительно сказывается на продукте.

    Роман Орлов, эксперт тестировщик
    Роман Орлов,
    автор модулей курса «Автоматизация и тестирование на Python»

    Какие виды тестирования бывают

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

    По степени автоматизации

    • Ручное — специалист вручную проверяет продукт.
    • Автоматизированное — тестировщик пишет программы, которые позволяют автоматически тестировать ПО без помощи человека.
    • Полуавтоматическое — специалист сочетает ручное тестирование с автоматизацией, например чтобы контролировать выполнение тестов.

    По функциональности

    • Функциональное — проверка того, как продукт выполняет свои функции. В этом случае специалист имитирует использование продукта, например, проверяет, работают ли кнопки, отправляется ли форма с данными 
    • Нефункциональное — тестирование свойств, которые не относятся к функциональности системы, например производительность (как работает сервис, если нагрузка на него больше обычной), usability testing (насколько удобно пользователю работать с сервисом).

    По уровню покрытия

    • Модульное — проверка каждого модуля (функции) отдельно.
    • Интеграционное — проверка совместной работы нескольких модулей продукта.
    • Системное — тестирование программы или приложения в целом.

    По функциональному покрытию продукта

    • Смоук — smoke testing или «‎дымовое тестирование»‎, тестирование новых версий ПО, чтобы на ранней стадии выявить критические ошибки.
    • Акцептанс — как правило, проводится на завершающем этапе подготовки ПО, когда нужно убедиться, что оно готово к использованию реальными пользователями.
    • Регрессионное — повторно смотрят на участки, в которые добавили новые функции. Это нужно, чтобы убедиться, что вносимые изменения не повлияли на стабильную работу продукта.
    тестировщик проверяет нестандартный пользовательский сценарий
    Тестировщик / Что, если… (тестировщик проверяет нестандартный пользовательский сценарий)

    Что делает тестировщик программного обеспечения

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

    Но тестировщики программного обеспечения не бьют хаотично по клавишам, надеясь найти баг. Это не эффективно. У них есть собственные методы для быстрого поиска ошибок и определения слабых мест программы. Это тест-кейсы — инструкции для тестирования: что тестировать, как и сколько.

    Этот простой тест-кейс описывает процесс регистрации нового пользователя на веб-сайте и ожидаемый результат после успешной регистрации:

    Тест-кейс: Регистрация нового пользователя

    ID тест-кейса: TC001
    Приоритет: Высокий
    Сценарий: Регистрация нового пользователя на сайте.
    Предусловия: Отсутствие учетной записи с указанными данными.

    Шаги выполнения:

    1. Открыть сайт.
    2. Нажать «Регистрация».
    3. Ввести имя — [Имя пользователя].
    4. Ввести email — [Email пользователя].
    5. Ввести пароль — [Пароль пользователя].
    6. Подтвердить пароль — [Повторение пароля].
    7. Нажать «Зарегистрироваться».

    Ожидаемый результат:

    • Пользователь перенаправлен на страницу подтверждения регистрации.
    • В базе данных создана новая учетная запись с указанными данными.

    Посттестовые действия:

    • Удалить учетную запись тестового пользователя из базы данных.
    • Закрыть браузер.

    Состояние тест-кейса: Пройден

    Комментарии: Можно также проверить отправку письма с подтверждением на указанный email.

    Разработчики отправляют pull requests (запросы на корректировку кода), чтобы проверить, что новый код соответствует стандартам, что там нет ошибок, что все хорошо написано. IT-тестировщик публикует код и проверяет его. В работе есть определенная монотонность. Нужно быть готовым к тому, что придется посидеть над документацией.

    Пример того, что делает тестировщик в течение дня

    Например, если нужно протестировать интерфейс интернет-магазина, то тестировщик:

    • переходит на тестовый сервер, закрытый для клиента;
    • проверяет в Jira, появились ли новые задачи (протестировать исправленные баги или проверить новые функции);
    • читает в bug report необходимые для воспроизведения шаги и ожидаемый результат;
    • возвращается в тестовый сервер и выполняет шаги из bug report;
    • проверяет соседние функции, чтобы убедиться, что они не поломались;
    • отправляет ошибку обратно к разработчику, если она осталась.
    Шаги произведения ошибки или бага
    Неправильно прописанные шаги воспроизведения (последовательности действий для воспроизведения бага) приводят к странным результатам

    Что нужно знать и уметь

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

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

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

    Роман Орлов, эксперт тестировщик
    Роман Орлов,
    автор модулей курса «Автоматизация и тестирование на Python»

    Чтобы заниматься тестированием, новичку нужно разбираться в техниках тест-дизайна, понимать жизненный цикл ПО, базово представлять, что такое веб-разработка, знать хотя бы один из самых распространенных среди тестировщиков язык — Java или Python — для разработки автотестов.

    Для удобства коммуникации и управления проектом используют Jira (менеджер задач), для совместной работы над кодом — GitHub (веб-сервис для совместной разработки). Для веб-приложений в браузере есть уже встроенные инструменты, например Chrome DevTools в Google Chrome или Firebug в Firefox, а Postman позволяет тестировать API-запросы.

    Помимо этого, для автотестирования на Python нужно знать фреймворк PyTest, инструменты Selenium для тестирования веб-приложений, которые подходят и для Java. При этом для работы с базами данных еще пригодится язык SQL.

    Cофт-скиллы

    • Коммуникабельность и умение работать в команде. Тестировщику придется общаться с разработчиками, аналитиками, другими тестировщиками, с менеджментом, чтобы понимать, какие бизнес-цели преследует продукт и как он устроен внутри.

    Стандартная ситуация, когда разработчик думает, что тестировщик ломает его код и мешает релизу. Это не так. Нужно объяснить, что мы в одной лодке. Продукт разрабатывают для пользователя, и если я столкнусь с этой проблемой — я переживу, может, не буду им пользоваться. Когда другой увидит, какое приложение кривое, он тоже от него откажется. А от количества пользователей зависит зарплата. Может, давить на больное — грязный ход, но рабочий.

    Роман Орлов, эксперт тестировщик
    Роман Орлов,
    автор модулей курса «Автоматизация и тестирование на Python»
    • Усидчивость и настойчивость. Хороший тестировщик знает, что программ без ошибок не существует. Существуют лишь плохо диагностированные.
    • Терпение и самообладание. Иногда тестировщик несколько раз напоминает разработчику о найденном баге. Нужно быть настойчивым, но при этом сохранять хорошие отношения в команде.
    • Максимальная дотошность, внимание к мелочам, ответственность и здоровый перфекционизм. Тестировщик постоянно стремится улучшить качество разрабатываемого продукта.
    • Умение формулировать свои мысли. После того как тестировщик нашел ошибку, нужно ее подробно и понятно описать, чтобы разработчики могли ее быстро исправить.
    • Стремление развиваться. Нужно участвовать в семинарах и конференциях, постоянно читать техническую литературу, смотреть видеокурсы.

    Хард-скиллы

    • Понимание основных принципов тестирования, включая его различные виды и методики.
    • Умение разрабатывать тест-кейсы и тест-планы, что является ключевым элементом процесса тестирования.
    • Знание языка SQL и способность работать с базами данных. Это необходимо для эффективного взаимодействия с данными и выполнения соответствующих проверок.
    • Знание языков программирования, так как это облегчает автоматизацию тестирования и создание необходимых сценариев.
    • Опыт работы с системами контроля версий, такими как Git, CVS и аналогичные. Это помогает в управлении изменениями и координации работы в команде.

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

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

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

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

    Насколько востребована профессия тестировщика

    Тестировщики необходимы во всех IT-проектах. Крупные компании нанимают специалистов в штат, а небольшие работают с фрилансерами. О том, насколько востребованы тестировщики, говорят данные с сайтов по поиску работы: в декабре 2023 на HeadHunter было более 8000 вакансий для тестировщиков ПО и QA-инженеров. По данным исследования компании «Технократия», количество вакансий для мануальных тестировщиков и QA-инженеров увеличилось на 59%, а автоматизаторов — на 128%. Высокий рост спроса на последних объясняется эффектом низкой базы.

    Спрос на QA-инженеров

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

    Роман Орлов, эксперт тестировщик
    Роман Орлов,
    автор модулей курса «Автоматизация и тестирование на Python»

    Вот пример стандартных требований к тестировщику:

    Требования к тестировщику ПО

    Наиболее востребованы универсалы, которые владеют современными методами тестирования, знают языки программирования, умеют составлять и автоматизировать тесты.

    Сколько получает тестировщик

    По данным Хабр.Карьеры, средняя зарплата тестировщиков выросла на 17% по сравнению со вторым полугодием прошлого года. Сейчас она 125 000 рублей. Но все сильно зависит от уровня специалиста и вид тестирования. Средняя зарплата джуна, который только начал заниматься автоматизированным тестированием, 78 000 рублей. А сеньоры в среднем получают 275 000 рублей.

    зарплата опытного тестировщика

    Джуны-мануальщики получают в среднем 66 000 рублей, а синьоры — 186 000 рублей.

    зарплата тестировщика

    Как стать тестировщиком

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

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

    Получить специальность «Специалист по ручному тестированию» можно за четыре месяца. Этого достаточно для быстрого входа в IT. Чтобы стать QA-инженером, нужно больше времени. Обучение рассчитано на девять месяцев для Python или десять месяцев для Java.

    Если вы хотите изучать тестирование самостоятельно, вот некоторые полезные ссылки:

    Также развивать скиллы помогают книги. Вот несколько примеров:

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

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

    Как строят карьеру тестировщики

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

    Мидлом можно стать уже спустя 1–2 года работы. Такие специалисты самостоятельно могут разрабатывать документацию, подбирать инструменты и не только проверять ошибки, но и предотвращать их.

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

    Хорошо работает у разработчика - теперь проблема тестировщика
    У разработчика работало нормально / Теперь проблема у тестировщика (А потом он найдет баги, которые не мешали разработчику корректно исполнять код)

    В каких случаях становятся тестировщиками

    Профессию тестировщика можно получить, когда:

    • устали от сферы, в которой долго работали, и хочется получить перспективную специальность;
    • интересуетесь ИТ, но не готовы сразу погружаться в разработку: тестировщиком можно стать и без опыта написания кода, набраться опыта, а потом переквалифицироваться в разработчика;
    • хочется управлять проектами — специалисты не только проверяют текущие задачи, но и участвуют в развитии и улучшении продукта от начала до запуска и после.

    Неосознанно я начал тестировать еще со школы. Тогда мне было интересно придумывать ситуации, которые мою программку сломают. Мне нравилось, когда все тесты зеленые. Интересно изучать разные подходы, технологии, стеки. Я не просто так сейчас разрабатываю сервисы. Это потому, что я в свое время изучил стеки, которые мне позволили писать backend и frontend. Сейчас я это использую в работе. Мы работаем над тем, чтобы в команде все могли разрабатывать fullstack-приложение.

    Роман Орлов, эксперт тестировщик
    Роман Орлов,
    автор модулей курса «Автоматизация и тестирование на Python»

    Плюсы и минусы профессии

    Плюсы

    • У тестировщика большие карьерные возможности. Можно не только становиться опытным специалистом в сфере, но и брать на себя другие обязанности по руководству и управлению продуктом.
    • Низкий порог входа. Стать тестировщиком и устроиться на работу можно даже без технического бэкграунда, при должных усидчивости и внимательности.
    • Можно работать удаленно. Тестировать удобно и на фрилансе, и в штате, и в крупной фирме, и в развивающемся стартапе.
    • Спрос на тестировщиков только растет. За 2023 год количество вакансий выросло на 13%. Все больше компаний хотят делать проект качественно, чтобы сохранять своих клиентов.

    Мне нравится, когда пользователь пишет хорошие отзывы. Если говорят: “Крутую штуку вы запилили, классная фича, работает здорово”, — то я чувствую, что доношу ценность до пользователя и это мотивация моего труда. Технические знания второстепенны, в первую очередь — ценность для клиента.

    Роман Орлов, эксперт тестировщик
    Роман Орлов,
    автор модулей курса «Автоматизация и тестирование на Python»

    Минусы

    • На стартовых позициях много однотипных задач. Чтобы не остаться в этом навсегда, можно предлагать какие-то новые идеи команде, чтобы вам доверили что-то поинтереснее.
    • Иногда тестировщиков не любят за то, что они указывают на ошибки, поэтому нужно научиться общаться с разработчиками максимально корректно, чтобы никого не обижать.

    Вас может остановить широта знаний, которая нужна тестировщику. Разработчик — узкоспециализированный человек. У него есть один стек, он работает с ним постоянно. Тестировщик должен обладать широкими знаниями во всем: в архитектурах приложений, устройств. Простор для обучения большой, нюансов много. Но это вопрос, который решается опытом.

    Роман Орлов, эксперт тестировщик
    Роман Орлов,
    автор модулей курса «Автоматизация и тестирование на Python»
    Мем про тестировщика - Тестировщикам не нравится ломать продукт. Им нравится развеивать иллюзию, что все работает
    Тестировщикам не нравится ломать продукт / Им нравится развеивать иллюзию, что все работает

    Есть ли у тестировщиков профессиональный праздник

    Да! 9 сентября отмечается неофициальный День тестировщика. У его появления интересная история: в 1947 году в Гарвардском университете инженеры обнаружили, что из-за мотылька остановился компьютер Марк II. Тогда они извлекли насекомое из реле и задокументировали его в журнале испытаний. К нему добавили комментарий: «Первый случай найденного жука» («First actual case of bug being found»). С тех пор ошибки называют багами, а их выявлением занимаются тестировщики (test — «испытывать»).

    Скопировано
    2 комментария
    Комментарии
    • OsakiN

      Раньше казалось, что тестировщик - это тот, кто кнопки по скрипту тыкает… А разделения на QA и QC вообще не встречалось. То есть в вакансиях так и пишут QA и QC, есть какой-то запрос на узких спецов?

    • сергей

      супер! спасибо! я преисполнился.