Тестировщик ПО (специалист по тестированию) — внимательный и чуткий гарант качества продукта, который следит за тем, чтобы у пользователя было удобное и слаженно работающее приложение. Разбираемся, как получить профессию тестировщика, строить карьеру и во многом другом.
Кто такой тестировщик
Тестировщик (разг. «тестер») — это специалист, который проверяет программное обеспечение на соответствие заданным требованиям. Он ищет ошибки в работе программы, помогает исправить их и убеждается, что все работает корректно и без сбоев.
Тестировщиков принято разделять на два направления: QA и QC. Чем они отличаются друг от друга?
Специалист по QC (Quality Control, или контроль качества) проверяет, соответствует ли продукт требованиям, описанным в документах. Он тоже может выполнять задачи из тестирования, проверять требования при их создании, но при этом смотрит на результат разработки в целом.
Специалист QA (Quality Assurance, или обеспечение качества) контролирует создание продукта от идеи до эксплуатации. Он разрабатывает стандарты, подбирает инструменты, чтобы количество ошибок на всех этапах было минимальным.
В России разделение встречается редко. Только в компаниях, которые специализируются на тестировании.
Где нужен тестировщик
Тестировщик программ нужен на всех проектах, так или иначе связанных с IT. Например, он может разрабатывать методику тестирования банковского программного обеспечения, проверять верстку и дизайн интернет-магазинов или оценивать функционал и локализацию игры.
Тестировщики критически смотрят на результат и уязвимые места, например стыки между разными частями продукта. Поэтому специалисты особенно востребованы в крупных компаниях, где у продукта много функциональных возможностей и сервисов. При этом в банковской сфере тестированию уделяют больше внимания из-за высокого уровня ответственности за безопасность данных.
В небольших проектах один человек по профессии «тестировщик программного обеспечения» может делать все. В больших компаниях все формализовано, специалисты не думают, как получить задачи, они просто спускаются сверху.
Часто можно встретить разделение на продуктовые команды. Это не только организовывает, но и оживляет рабочий процесс.
Какие виды тестирования бывают
Тестировщики программного обеспечения могут использовать различные методы тестирования, такие как ручное, автоматизированное, функциональное, нагрузочное и др. Они играют важную роль в разработке ПО, помогая разработчикам создавать более надежные и качественные программы.
По степени автоматизации
- Ручное — специалист вручную проверяет продукт.
- Автоматизированное — тестировщик пишет программы, которые позволяют автоматически тестировать ПО без помощи человека.
- Полуавтоматическое — специалист сочетает ручное тестирование с автоматизацией, например чтобы контролировать выполнение тестов.
По функциональности
- Функциональное — проверка того, как продукт выполняет свои функции. В этом случае специалист имитирует использование продукта, например, проверяет, работают ли кнопки, отправляется ли форма с данными
- Нефункциональное — тестирование свойств, которые не относятся к функциональности системы, например производительность (как работает сервис, если нагрузка на него больше обычной), usability testing (насколько удобно пользователю работать с сервисом).
По уровню покрытия
- Модульное — проверка каждого модуля (функции) отдельно.
- Интеграционное — проверка совместной работы нескольких модулей продукта.
- Системное — тестирование программы или приложения в целом.
По функциональному покрытию продукта
- Смоук — smoke testing или «дымовое тестирование», тестирование новых версий ПО, чтобы на ранней стадии выявить критические ошибки.
- Акцептанс — как правило, проводится на завершающем этапе подготовки ПО, когда нужно убедиться, что оно готово к использованию реальными пользователями.
- Регрессионное — повторно смотрят на участки, в которые добавили новые функции. Это нужно, чтобы убедиться, что вносимые изменения не повлияли на стабильную работу продукта.
Что делает тестировщик программного обеспечения
Тестировщик ПО прорабатывает возможные сценарии, в которых может оказаться продукт. Если в поисковую строку ввели много символов или захотели купить все товары с сайта, он убеждается, что приложение работает правильно. Также он ищет противоречия в требованиях и описывает поведение, при котором ошибка воспроизводится, чтобы разработчик потом мог быстрее локализовать и исправить проблему.
Но тестировщики программного обеспечения не бьют хаотично по клавишам, надеясь найти баг. Это не эффективно. У них есть собственные методы для быстрого поиска ошибок и определения слабых мест программы. Это тест-кейсы — инструкции для тестирования: что тестировать, как и сколько.
Этот простой тест-кейс описывает процесс регистрации нового пользователя на веб-сайте и ожидаемый результат после успешной регистрации:
Тест-кейс: Регистрация нового пользователя
ID тест-кейса: | TC001 |
Приоритет: | Высокий |
Сценарий: | Регистрация нового пользователя на сайте. |
Предусловия: | Отсутствие учетной записи с указанными данными. |
Шаги выполнения:
- Открыть сайт.
- Нажать «Регистрация».
- Ввести имя — [Имя пользователя].
- Ввести email — [Email пользователя].
- Ввести пароль — [Пароль пользователя].
- Подтвердить пароль — [Повторение пароля].
- Нажать «Зарегистрироваться».
Ожидаемый результат:
- Пользователь перенаправлен на страницу подтверждения регистрации.
- В базе данных создана новая учетная запись с указанными данными.
Посттестовые действия:
- Удалить учетную запись тестового пользователя из базы данных.
- Закрыть браузер.
Состояние тест-кейса: Пройден
Комментарии: Можно также проверить отправку письма с подтверждением на указанный email.
Разработчики отправляют pull requests (запросы на корректировку кода), чтобы проверить, что новый код соответствует стандартам, что там нет ошибок, что все хорошо написано. IT-тестировщик публикует код и проверяет его. В работе есть определенная монотонность. Нужно быть готовым к тому, что придется посидеть над документацией.
Пример того, что делает тестировщик в течение дня
Например, если нужно протестировать интерфейс интернет-магазина, то тестировщик:
- переходит на тестовый сервер, закрытый для клиента;
- проверяет в Jira, появились ли новые задачи (протестировать исправленные баги или проверить новые функции);
- читает в bug report необходимые для воспроизведения шаги и ожидаемый результат;
- возвращается в тестовый сервер и выполняет шаги из bug report;
- проверяет соседние функции, чтобы убедиться, что они не поломались;
- отправляет ошибку обратно к разработчику, если она осталась.
Что нужно знать и уметь
Для ручного тестирования существуют готовые тест-кейсы. Нужно выполнять продуманную последовательность действий. При автоматизированном тестировании надо уметь программировать, но и это намного легче, чем разрабатывать сайты или приложения.
Чтобы заниматься тестированием, новичку нужно разбираться в техниках тест-дизайна, понимать жизненный цикл ПО, базово представлять, что такое веб-разработка, знать хотя бы один из самых распространенных среди тестировщиков язык — Java или Python — для разработки автотестов.
Для удобства коммуникации и управления проектом используют Jira (менеджер задач), для совместной работы над кодом — GitHub (веб-сервис для совместной разработки). Для веб-приложений в браузере есть уже встроенные инструменты, например Chrome DevTools в Google Chrome или Firebug в Firefox, а Postman позволяет тестировать API-запросы.
Помимо этого, для автотестирования на Python нужно знать фреймворк PyTest, инструменты Selenium для тестирования веб-приложений, которые подходят и для Java. При этом для работы с базами данных еще пригодится язык SQL.
Cофт-скиллы
- Коммуникабельность и умение работать в команде. Тестировщику придется общаться с разработчиками, аналитиками, другими тестировщиками, с менеджментом, чтобы понимать, какие бизнес-цели преследует продукт и как он устроен внутри.
- Усидчивость и настойчивость. Хороший тестировщик знает, что программ без ошибок не существует. Существуют лишь плохо диагностированные.
- Терпение и самообладание. Иногда тестировщик несколько раз напоминает разработчику о найденном баге. Нужно быть настойчивым, но при этом сохранять хорошие отношения в команде.
- Максимальная дотошность, внимание к мелочам, ответственность и здоровый перфекционизм. Тестировщик постоянно стремится улучшить качество разрабатываемого продукта.
- Умение формулировать свои мысли. После того как тестировщик нашел ошибку, нужно ее подробно и понятно описать, чтобы разработчики могли ее быстро исправить.
- Стремление развиваться. Нужно участвовать в семинарах и конференциях, постоянно читать техническую литературу, смотреть видеокурсы.
Хард-скиллы
- Понимание основных принципов тестирования, включая его различные виды и методики.
- Умение разрабатывать тест-кейсы и тест-планы, что является ключевым элементом процесса тестирования.
- Знание языка SQL и способность работать с базами данных. Это необходимо для эффективного взаимодействия с данными и выполнения соответствующих проверок.
- Знание языков программирования, так как это облегчает автоматизацию тестирования и создание необходимых сценариев.
- Опыт работы с системами контроля версий, такими как Git, CVS и аналогичные. Это помогает в управлении изменениями и координации работы в команде.
Кроме того, тестировщик должен владеть различными инструментами как для ручного, так и для автоматического тестирования, такими как:
- системы для создания и отслеживания тестовых случаев и ошибок, облегчающие процесс контроля качества;
- файловые менеджеры, текстовые и XML-редакторы, которые могут понадобиться при анализе и обработке данных;
- генераторы тестовых данных и другие инструменты, способствующие созданию разнообразных тестовых сценариев.
Для автоматизации тестирования пригодятся специализированные системы для проверки веб-приложений и программы для функционального и нагрузочного тестирования. Эти средства помогут автоматизировать процесс и ускорить его выполнение.
Важно знать английский язык, который необходим для чтения и заполнения технической документации, а также для эффективного общения с международной командой и использования англоязычных ресурсов в процессе тестирования.
Насколько востребована профессия тестировщика
Тестировщики необходимы во всех IT-проектах. Крупные компании нанимают специалистов в штат, а небольшие работают с фрилансерами. О том, насколько востребованы тестировщики, говорят данные с сайтов по поиску работы: в декабре 2023 на HeadHunter было более 8000 вакансий для тестировщиков ПО и QA-инженеров. По данным исследования компании «Технократия», количество вакансий для мануальных тестировщиков и QA-инженеров увеличилось на 59%, а автоматизаторов — на 128%. Высокий рост спроса на последних объясняется эффектом низкой базы.
Вот пример стандартных требований к тестировщику:
Наиболее востребованы универсалы, которые владеют современными методами тестирования, знают языки программирования, умеют составлять и автоматизировать тесты.
Сколько получает тестировщик
По данным Хабр.Карьеры, средняя зарплата тестировщиков выросла на 17% по сравнению со вторым полугодием прошлого года. Сейчас она 125 000 рублей. Но все сильно зависит от уровня специалиста и вид тестирования. Средняя зарплата джуна, который только начал заниматься автоматизированным тестированием, 78 000 рублей. А сеньоры в среднем получают 275 000 рублей.
Джуны-мануальщики получают в среднем 66 000 рублей, а синьоры — 186 000 рублей.
Как стать тестировщиком
Чтобы стать тестировщиком, не обязательно учиться в университете пять лет. Сегодня для получения профессии тестировщика достаточно пройти обучение на специальных курсах или попробовать самостоятельно освоить профессию. Это может быть дольше и сложнее.
Самый быстрый путь получить базовые навыки — это платные курсы. На них пошагово дают темы, которые нужны для минимального старта. Под контролем менторов студенты изучают новые темы, выполняют домашние задания, получают ответы на вопросы. Также на них можно практиковаться с реальными заказчиками и сделать качественное портфолио с проверенными сильными кейсами, а в конце обучения получить сертификат. Все это поможет быстрее устроиться на работу тестировщиком программного обеспечения.
Получить специальность «Специалист по ручному тестированию» можно за четыре месяца. Этого достаточно для быстрого входа в IT. Чтобы стать QA-инженером, нужно больше времени. Обучение рассчитано на девять месяцев для Python или десять месяцев для Java.
Если вы хотите изучать тестирование самостоятельно, вот некоторые полезные ссылки:
- паблик «Типичный тестировщик»;
- телеграм-канал automation-remarks.com;
- чат QA — Load & Performance, где выкладывают полезные статьи, ссылки и мероприятия;
- сабреддит про разные виды тестирования;
- SQAForums — зарубежный форум;
- подкаст AB Testing;
- проект Software-Testing.RU, где можно найти не только полезные статьи, но и форум.
Также развивать скиллы помогают книги. Вот несколько примеров:
- «Тестирование программного обеспечения», Сэм Канер;
- «Тестирование Дот Ком, или Пособие по жестокому обращению с багами в интернет-стартапах», Роман Савин;
- «Тестирование программного обеспечения. Базовый курс», Святослав Куликов;
- «Искусство тестирования программ», Гленфорд Майерс ;
- «Гибкое тестирование. Практическое руководство для тестировщиков ПО и гибких команд», Лиза Криспин и Джанет Грегори.
Теоретические знания можно отработать на бесплатных курсах на образовательных онлайн-платформах, например Coursera. С их помощью удобно систематизировать полученные знания.
Нарабатывать руку нужно на стажировках или фрилансе. В обзоре hh.ru почти все работодатели отметили, что хотят в свою команду специалистов с опытом работы в проектах.
Как строят карьеру тестировщики
Карьера тестировщика начинается с уровня джуниора, который ищет простые ошибки по готовым тест-планам.
Мидлом можно стать уже спустя 1–2 года работы. Такие специалисты самостоятельно могут разрабатывать документацию, подбирать инструменты и не только проверять ошибки, но и предотвращать их.
Синьор, помимо этого, может управлять командой и вырабатывать стратегии и стандарты тестирования для всех этапов создания продукта. Благодаря хорошим коммуникативным навыкам тестировщики могут вырастать в менеджеров проектов или продуктов, а также в тимлидов. Можно также уйти в разработку. Со скиллами тестировщика это хороший путь. Специалист уже понимает, как писать код так, чтобы не было типичных ошибок.
В каких случаях становятся тестировщиками
Профессию тестировщика можно получить, когда:
- устали от сферы, в которой долго работали, и хочется получить перспективную специальность;
- интересуетесь ИТ, но не готовы сразу погружаться в разработку: тестировщиком можно стать и без опыта написания кода, набраться опыта, а потом переквалифицироваться в разработчика;
- хочется управлять проектами — специалисты не только проверяют текущие задачи, но и участвуют в развитии и улучшении продукта от начала до запуска и после.
Плюсы и минусы профессии
Плюсы
- У тестировщика большие карьерные возможности. Можно не только становиться опытным специалистом в сфере, но и брать на себя другие обязанности по руководству и управлению продуктом.
- Низкий порог входа. Стать тестировщиком и устроиться на работу можно даже без технического бэкграунда, при должных усидчивости и внимательности.
- Можно работать удаленно. Тестировать удобно и на фрилансе, и в штате, и в крупной фирме, и в развивающемся стартапе.
- Спрос на тестировщиков только растет. За 2023 год количество вакансий выросло на 13%. Все больше компаний хотят делать проект качественно, чтобы сохранять своих клиентов.
Минусы
- На стартовых позициях много однотипных задач. Чтобы не остаться в этом навсегда, можно предлагать какие-то новые идеи команде, чтобы вам доверили что-то поинтереснее.
- Иногда тестировщиков не любят за то, что они указывают на ошибки, поэтому нужно научиться общаться с разработчиками максимально корректно, чтобы никого не обижать.
Есть ли у тестировщиков профессиональный праздник
Да! 9 сентября отмечается неофициальный День тестировщика. У его появления интересная история: в 1947 году в Гарвардском университете инженеры обнаружили, что из-за мотылька остановился компьютер Марк II. Тогда они извлекли насекомое из реле и задокументировали его в журнале испытаний. К нему добавили комментарий: «Первый случай найденного жука» («First actual case of bug being found»). С тех пор ошибки называют багами, а их выявлением занимаются тестировщики (test — «испытывать»).