Профессия тестировщик

IT развивается, постоянно создаются новые продукты, которые требуют проверки перед тем, как выйти на рынок, чтобы конечный пользователь получил качественный продукт. Именно от тестировщика зависит, в каком состоянии продукт попадет на рынок.
Кто такой тестировщик
В любом деле важно вовремя получать отклик, отзыв о своей работе, желательно, чтобы они были объективными. С программистами то же самое — чтобы достигать высоких результатов, нужно как можно скорее получать положительные и отрицательные отзывы о проделанной работе. Задача тестировщика — давать программистам обратную связь. Чем быстрее получен отклик, тем скорее программисты исправят ошибку, если она есть.
Если говорить конкретно кто такой тестировщик и чем он занимается, то это человек, который проверяет работу, сделанную командой разработки, указывает на ошибки в работе программного обеспечения (сайта, приложения, чатбота и т.д.).
Достаточно сложно дать определение слову «тестирование», но это не:
- разработка — даже если тестировщик умеет писать код, тестирование — это не разработка ПО;
- анализ и сбор данных — хоть в работе и приходится уточнять данные, анализировать их, но эта работа делается только по надобности, не постоянно;
- техническое писательство — при этом тестировщику приходится документировать свою работу и тесты.
Тестирование не относится ни к одной из этих деятельностей, потому что всю эту работу они делают для облегчения процесса собственной работы.
Виды тестирования
Не бывает универсальных тестировщиков, иначе работа была бы некачественной. Есть несколько видов тестирования со своими особенностями.
Функциональное тестирование
Функциональное тестирование в своей основе имеет анализ спецификаций функциональности определенных компонентов или системы в целом. Тесты в этом виде основываются на функциях, которые выполняет система. Обычно эти функции описаны в требованиях, спецификациях.
Основное достоинство функционального тестирования — имитация фактического использования системы во время тестирования. Недостатка 2:
- возможность упущения логических ошибок в ПО;
- избыточное тестирование.
Нагрузочное тестирование
Нагрузочное тестирование еще называют тестированием производительности. Это автоматизированный вид тестирования, при котором имитируется работа системы.
Основная задача такого вида тестирования — определение возможностей работы приложения под определенными нагрузками. При этом обязательно учитываются:
- время выполнения операций при определенной интенсивности их выполнения;
- количество пользователей, которые единовременно используют приложение;
- границы приемлемой производительности при усилении нагрузки;
- производительность на очень высоких уровнях нагрузки.
Также здесь тестируется надежность приложения. Это определяется по работоспособности приложения при многочасовом тестированием ПО со средней нагрузкой.
Автоматизированное тестирование
Автоматизированное тестирование — это проверка ПО, во время которой основные функции и тестировочные шаги выполняются в автоматическом режиме с помощью специальных инструментов. К проверяемым действиям относятся:
- запуск;
- инициализация;
- выполнение теста;
- анализ;
- выдача результата.
Тестировщик в этом случае создает, отлаживает и поддерживает тест-скрипты, наборы для теста и инструменты для тестирования в автоматическом режиме.
Юзабилити-тестирование
Это тестирование на удобство использования интерфейса конечным пользователем. Благодаря юзабилити-тестированию можно выяснить, насколько продукт соответствует ожиданиям, комфортен в работе. Тестировщик юзабилити должен смотреть на продукт глазами пользователя. В процессе проверки он выполняет типовые задачи, которые в дальнейшем будет делать пользователь, и приводит продукт к более качественному варианту, если это необходимо.
Юзабилити-тестирование может пригодиться в нескольких случаях:
- тестирование удобства интерфейса;
- сравнение продукта с конкурентами;
- сравнение нескольких версий интерфейсов одного продукта.
Тестируют в этом случае не только сайты. Есть множество других интерфейсов: голосовые, печатные формы, бизнес-процессы, приложения для смартфонов и компьютеров и другие.
Интеграционное тестирование
Суть интеграционного тестирования — в проверке связи компонентов целого продукта и их взаимодействия с другими частями системы.
Есть несколько типов этого тестирования:
- снизу вверх — все модули, процедуры, функции низкого уровня собирают вместе и тестируют, после чего собирают следующий уровень компонентов;
- сверху вниз — первым делом тестируются компоненты высокого уровня, далее уровень постепенно снижается;
- большой взрыв — все, низкоуровневые и высокоуровневые, компоненты собираются воедино и проверяются вместе, таким образом можно провести быстрое тестирование.
Конфигурационное тестирование
Направлено на проверку работоспособности продукта в различных конфигурациях:
- платформы;
- драйверы;
- компьютерные конфигурации.
На серверном уровне проверки проверяется взаимодействие продукта с окружением, куда он будет установлен. Основная задача этого этапа — выяснить оптимальную конфигурацию оборудования для работы с продуктом.
На клиентском уровне выясняется насколько удобно пользоваться продуктом, его функциональность.
Тестирование безопасности
Тестирование безопасности проводится для проверки безопасности, анализа рисков, связанных с хаккер-атаками и вирусами. Главная задача тестирования безопасности — установить максимальную безопасность и комфорт при использовании продукта.
Принципы тестирования:
- доступность;
- конфиденциальность;
- целостность.
Игровое тестирование
Игровое тестирование, несмотря на притягательное название, достаточно сложное и муторное. Основная его цель — проверить игру на баги, чтобы продукт дошел до потребителя в качественном виде. Игру и ее отрезки приходится проходить и перепроходить несколько десятков раз, так как исправление одного бага может привести к другому багу. Все тестирование производится вручную и занимает очень много времени. Кроме того, игры могут иметь несколько версий, например, для компьютера и смартфона на Андроиде — тогда проверка имеет свои особенности и количество тестов увеличивается в 2 раза.
Какие навыки нужны тестировщику?
Основное качество хорошего тестировщика — это увлечение своей работой. Также нужно стремиться к самореализации в этой области. Для повышения уровня тестирования нужно постоянно изучать информацию о том, как повысить качество работы, какие особенности могут быть у тех или иных продуктов.
Требования к тестировщику ПО (плюс / минус в зависимости от компании):
- Понимание что такое баг, тест-кейс, стратегия тестирования (и умение ее выстраивать), отчет об ошибке;
- Базовое знакомство с автоматизированным тестированием;
- Быстрая обучаемость, приспосабливаемость к стремительно меняющейся среде;
- Умение работать с базой данных — основными понятиями и запросами;
- Коммуникабельность — важно для взаимодействия с командой;
- Аналитический склад ума;
- Умение быстро обрабатывать большое количество информации.
Также могут пригодиться знания java, python для тестировщика и другие языки программирования. Но в то же время их знание может мешать работе, так как тестировщик может пытаться исправить чужие ошибки, то есть, заниматься не своей работой. А это снижает качество.
Зарплата тестировщика
Средняя зарплата тестировщика в Москве — около 70 тысяч рублей, в Питере — 50. Немного отстает Екатеринбург — 45 тысяч рублей. В городах поменьше и зарплата меньше. В Волгограде, Воронеже, Перми, Уфе, Казани зарплата составляет 33-40 тысяч рублей.
Начинающие тестировщики без опыта могут рассчитывать на зарплату, составляющую половину или 2/3 части от средней платы тестировщика по городу.
Тестировщик с высшим образованием и опытом работы от 1 года может рассчитывать на зарплату от 65 тысяч в Питере и от 80 в Москве. Максимальный доход в столице — 150 тысяч, в Санкт-Петербурге — 120 тысяч рублей.
Выше 150 тысяч доход имеют специалисты, занимающиеся проверкой сложных продуктов. Меньше всего получают игровые и юзабилити специалисты.
Тестировщик на дому зарабатывает примерно столько же, сколько и в офисе. Зарплата на фрилансе по большей части здесь зависит от того, в каком городе находится работодатель. Иногда компании, разрабатывающие софт, из Москвы специально ищут специалиста из маленького города, чтобы платить меньше. Кроме того, фриланс для тестировщиков — это возможность совмещать несколько проектов и зарабатывать больше.
Как стать тестировщиком
Чтобы стать тестировщиком, не обязательно иметь высшее образование. Важно уметь концентрировать внимание, не упускать мелочи. Стать тестировщиком можно даже с нуля, но при этом стоит все же иметь какие-то знания. Например, нужно уметь обращаться с компьютером и программами на “ты”, уметь ориентироваться в незнакомых средах. Также хорошо знать хотя бы один язык программирования, понимать основы базы данных.
Если есть высшее образование — хорошо. В компаниях предпочитают соискателей с техническим образованием, так как именно они имеют аналитический склад ума. Но если образование гуманитарное, не стоит отчаиваться. Нужно создать резюме, в котором разместить информацию о том, какими проектами приходилось заниматься. Даже если нет опыта работы, но есть курсовые работы с практической частью, дипломная работа, опыт прохождения практики в IT — все это стоит вписать в резюме для привлечения внимания. Обязательно указать свои основные достоинства, которые могут пригодиться в работе тестировщиком. Это могут быть: внимание к деталям, усидчивость, знакомство с компьютерным софтом, эмпатия, знание языков программирования, знание иностранных языков.
Подготавливаясь к собеседованию, стоит ознакомиться с темами:
- обеспечение качества ПО;
- что такое тестирование;
- виды тестирования;
- уровни тестирования;
- тестовые артефакты и их предназначение;
- знакомство с тест-дизайном;
- автоматизация тестирования и ее виды;
- метрики тестирования, как их использовать.
Курсы для тестировщиков
Самый простой способ изучить азы тестирования — курсы. Главное — чтобы они были качественные, а кураторы не лили “воду”.
Существуют такие площадки и школы как ГикБрейнс, Testbase, академия Алексея Сухорукова и другие. Можно выбрать уровень обучения, а можно пройти стресс-курс, чтобы узнать, каких знаний недостаточно.
При МГТУ имени Баумана действует учебный центр, регулярно проводящий курсы по тестированию. Их ведут преподаватели-практики.
Нельзя упускать возможности посетить стажировки. Придется работать бесплатно, но можно набраться опыта. Найти стажировки можно на сайте хедхатера или по запросу в гугл “стажировка тестировщик в городе (название города)”.
Открытых предложений о стажировке не так много, но можно самостоятельно предлагать свои услуги компаниям, производящим софт, игры, приложения, сайты.
Стоит ли быть тестировщиком?
Как видно, у профессии тестировщик есть минусы и плюсы. Не нужно принуждать себя к этой работе — очень быстро надоест, ведь она требует усидчивости, дотошности. Если не получилось найти себя на пути программиста, разработчика, возможно, стоит попробовать себя в тестировании. Основные минусы профессии:
- нужно быть предельно внимательным, педантичным, усидчивым;
- большая ответственность;
- тестированию не обучают в университете.
Плюсы:
- достаточно просто самому изучить хотя бы основы тестирования;
- работодатели берут на работу тестировщиков без опыта;
- воспитание в себе силы воли, терпения.