в чем заключается профессия тестировщика
Кто такой тестировщик, чем он занимается и как им стать
Здравствуйте, уважаемые читатели!
Хотите изучить не только высокооплачиваемую, перспективную и востребованную, но еще и очень важную профессию как для работодателя, так и для клиента? Тогда можете стать тестировщиком. Этот специалист может сэкономить деньги компании, найти и исправить ошибки веб-разработчиков, а также сделать взаимодействие пользователя и IT-продукта максимально комфортным и простым.
Заинтересовались? Тогда давайте подробно разберем, кто такой тестировщик, чем он занимается, плюсы и минусы должности, как им стать с нуля.
Особенности профессии
Люди, которые занимаются тестированием и проверкой различных программных продуктов, ищут в них ошибки и сбои, ограждают ПО от хакерских атак и улучшают для пользователей взаимодействие с IT-товаром, называются тестировщиками. По-другому этих специалистов называют QA-инженерами.
Сотрудники следят, чтобы IT-продукты работали, как это было задумано разработчиками, соответствовали ожидаемому уровню, качественно функционировали без багов и на разных устройствах и операционных системах. В качестве объектов, которые надо протестировать, могут выступать:
Тестировщик в первую очередь должен спланировать тестирование, т. е. смоделировать несколько разных возможных ситуаций, во время которых могут всплыть ошибки. И в конце надо подготовить отчет о проделанной работе и найденных багах.
Специалисты создают полезные IT-продукты, используя различные инструменты контроля качества и стратегии тестирования.
Работа тестировщика не так проста, как может показаться на первый взгляд. Это деятельность совмещает в себе информационные технологии, UX-дизайн и продукт-менеджмент. Но тем не менее эта должность является одной из самых простых для освоения и проникновения в IT-сферу.
QA-инженеры могут работать как удаленно, так и из офиса. Также они могут быть не только штатными сотрудниками, но и фрилансерами.
У тестировщиков есть и классификация. Всех специалистов делят на мануальщиков и автотестеров в зависимости от того, работают они вручную или автоматизированно. Первые отвечают за ручное тестирование, которое в первую очередь изучается новичками.
Вторые работают при помощи написанных ими же программ. Они сильно облегчают труд тестировщиков, сокращают время, затрачиваемое для поиска ошибок, и уменьшают до минимума часы рутины, что немаловажно. Над крупными проектами в основном работают только автотестеры, так как объем работы огромен, а сроки не резиновые.
Но следует отметить, что деление это скорее условное, так как любой автотестер умеет находить баги вручную. А мануальщики вполне могут научиться писать автоматические тесты. Было бы желание.
Также имеются тест-аналитики – люди, которые анализируют программный продукт, определяют, какие именно тесты следует проводить, и составляют логическую карту ПО. Тест-дизайнеры – специалисты, разрабатывающие тесты, используя данные тест-аналитиков. И security-тестировщики – работники, которые заботятся о безопасности систем.
Есть еще классификация в зависимости от предмета тестирования. Например, тестировщики СУБД, тестировщики DevOps и т. д.
В маленьких и средних компаниях всю работу может выполнять один сотрудник – тестировщик-универсал. В крупных же организациях обязанности поделены между несколькими работниками.
Хороший тестировщик знает, как смотреть на IT-продукт не только глазами разработчика, но и пользователя, чтобы клиентам было максимально удобно использовать товар.
QA-инженер способен значительно сократить расходы компании. Ведь чем раньше найдены сбои и баги, тем легче и менее затратно их будет устранить. Поэтому тестировщик должен от а до я знать продукт, понимать, как он работает и где может быть спрятана ошибка.
Обязанности и задачи специалиста
В чем же заключается работа тестировщика? Если говорить об этапах работы, то типичная деятельность специалиста может быть отображена в следующей логической цепочке:
При необходимости после второго тестирования снова идет поиск и устранение ошибок, а затем проведение еще одного теста. И процесс повторяется, пока продукт не пройдет порог качества, что делает работу QA-инженера цикличной. Во время тестирования специалисту надо совершить все возможные операции, которые могут сделать пользователи, чтобы найти все ошибки.
Сложность состоит в том, что в лабораторных условиях баги не проявят себя, а клиент додумается нажать на вот эту кнопку или перейти по вон той ссылке и обнаружит сбой. Поэтому тестировщикам нужно предугадывать стандартное и нестандартное поведение пользователей, что является творческим процессом. При этом нужно уметь применять смекалку и анализировать данные.
При ручном тестировании нужно самому сыграть пользователя и сымитировать все его действия по отношению к игре, приложению или сайту. Поэтому такой вид тестирования могут называть поведенческим.
При автоматическом же тестировании специалист работает со специальными программами. Он их подбирает и настраивает, пишет для них код, готовит данные для тестов, а после запускает само тестирование. Затем работник анализирует зафиксированные результаты и пишет отчет, который потом передает разработчикам.
Какие ошибки может искать тестировщик? Например, после регистрации не приходит письмо на электронную почту для подтверждения email, но в требованиях это прописано. Или в приложении обувного магазина не работают фильтры. Или игра постоянно “вылетает” без видимых причин. Специалист в каждом описанном случае проходит весь путь пользователя и ищет, где скрывается проблема.
Создание пошаговых инструкций к тестированию, т. е. тест-кейсов, в которых учитываются все требования аналитиков, тоже лежит на плечах QA-инженеров.
Знания, умения и личные качества
Теперь переходим к вопросу, что должен знать и уметь делать тестировщик:
На начальных этапах знание языков программирования не обязательно. Но если тестировщик хочет получить повышение и увеличить зарплату, их изучить придется.
Кроме этого, нужно иметь определенный набор личных качеств:
Плюс ко всему у тестировщика должно быть стремление к развитию. Ему необходимо постоянно осваивать новые методики, читать техническую литературу, принимать участие в конференциях и семинарах.
Размер заработной платы и место работы
На работу QA-инженеров могут взять:
Можно выбрать организацию, продукт которой приходится по душе, изучить его со всех сторон и впоследствии стать веб-разработчиком или проект-менеджером.
Работать можно в офисе, удаленно и на фрилансе. Крупные компании обязательно имеют в штате целый отдел тестировщиков, в средних и мелких может работать или один штатный сотрудник, или же и вовсе его ищут на фрилансе.
Строить карьеру штатного сотрудника можно развиваясь и поднимаясь вверх относительно своей должности, а можно уйти в смежную область.
При первом варианте все складывается следующим образом:
В среднем стажеры получают от 20 до 30 тыс. руб., junior – 40–60 тыс. руб., middle – от 60 000 до 90 000 руб., senior – от 90 000 до 130 000 руб., lead зарабатывает от 140 и выше.
Если говорить территориально, то в регионах средний уровень зарплаты составляет около 60 000 руб., в столице – около 100 000 руб.
На фрилансе часто встречается почасовая оплата. Нередко можно встретить от 1 000 руб. за час работы и выше. Чем больше опыта и навыков и выше рейтинг, тем на большую сумму можно претендовать.
Самые популярные площадки для фрилансеров – это Workzilla, Fl.ru, Kwork. Также в качестве саморекламы не помешает создать сайт-визитку и рабочий аккаунт в социальных сетях.
Из-за дефицита грамотных профессионалов-тестировщиков востребованность в специалистах только растет.
Плюсы и минусы
Обучение на тестировщика
Обучиться можно в вузе на таких IT-специальностях, как “Информатика и вычислительная техника”, “Программная инженерия”, “Фундаментальная информатика и информационные технологии” и др.
Но для новичков не обязательно иметь профильное высшее образование. Можно пройти курсы тестировщиков ПО, чего для работодателей будет достаточно.
Например, для ознакомления предлагаю следующие онлайн-программы:
Для самостоятельного обучения и в качестве дополнения к основной учебе могу посоветовать книги:
Заключение
Это высокооплачиваемая специальность, по которой можно работать удаленно и по свободному графику. Но и минусов не избежать: рутинность, ответственность и постоянное обучение могут отвадить желающих от этой работы.
Если вы все еще желаете стать тестировщиком, предлагаю пройти онлайн-курсы для быстрого освоения профессии. Не помешает при устройстве на работу знание иностранного языка и современных тенденций в мире информационных технологий.
Удачи в освоении специальности QA-инженера! Продолжайте развиваться и учиться вместе с блогом iklife.ru.
Во время получения первого диплома задумалась об удаленной работе, а когда получала второй – уволилась с университета и посвятила себя фрилансу.
Из всего разнообразия онлайн-профессий выбрала копирайтинг, но изучать способы заработка в интернете не перестала. Делюсь своими знаниями о том, как зарабатывать в сети, не выходя из дома.
Тестирование ПО: суть профессии, требования и заработная плата
Разработка программного обеспечения — сфера, которая будет в ближайшее время только расти, несмотря ни на эпидемию, ни на экономический кризис. Соответственно, будет увеличиваться дефицит технических специальностей, связанных с разработкой.
Одна из них — тестирование ПО. Забегая наперед, скажем, что в тестировщиках нуждаются практически все компании, которые занимаются созданием программного обеспечения и сервисов. Что касается порога входа, требований, которые предъявляются к разработке ПО и размере заработной платы тестировщиков, то в этом вопросе поможет разобраться преподаватель курса GeekBrains «Тестирование ПО» Максим Засецкий.
QA, QC и тестирование
Тестирование программного обеспечения — обширное понятие, которое включает планирование, проектирование и, собственно, выполнение тестов.
Из чего состоит сфера тестирования ПО
QA (Quality Assurance) — обеспечение качества продукта. QA-специалист контролирует и обеспечивает качество работы продукта компании. Он отвечает и за отдельные этапы разработки софта. В частности, за выбор инструментов для разработки, предотвращение возможных проблем. Еще он участвует в процессе совершенствования продукта. QA охватывает все этапы разработки, включая описание проекта, собственно, тестирование, релиз и, зачастую, пост-релизный этап.
QC (Quality Control) — контроль качества продукта. Задача QC-специалиста — проверка конкретного продукта, что включает анализ кода продукта, дизайна, плюс тестирование. QC-инженер разрабатывает стратегию тестирование вполне определенного тестирования, взаимодействует с разработчиками и организует само тестирование.
Специалист по тестированию занимается выполнением тестов. Тестированием называют проверку соответствия результатов работы программного продукта на соответствие заданным критериям. Тестировщики занимаются тестированием всего продукта в целом или же отдельных компонентов. Тестирование играет важнейшую роль в обеспечении качества продукта.
Кстати, есть внешнее ответвление — современное направление тестирования Developer in test. Специалисты этого направления — вроде как и разработчики, но занимаются они обеспечением качества разрабатываемого продукта.
Что должен знать и уметь хороший тестировщик?
Исходя из всего, что сказано выше, сложно выделить конкретные знания или умения. Все сильно зависит от проекта, на котором работает специалист, соответственно, и от стека технологий, которые на этом проекте используются.
Если говорить о джуниорах, то здесь можно выделить общие навыки:
Хорошие знания в клиент-серверной архитектуре.
Хороший тестировщик должен понимать механизм взаимодействия веб-приложений, уметь локализовать проблему вне зависимости от того, возникла ли она на фронтэнде или бэкенде.
Специалисту необходимо иметь базовые навыки использования специализированного софта, уметь использовать инструменты devTools, иметь представление о работе снифферов, знать базовые команды консоли Windows.
Крайне важны soft-скиллы:
Умение общаться с коллегами.
Умение ясно излагать мысли.
Способность четко описать проблему разработчику.
Умение работать с документацией.
Понимание стандартов разработки ПО.
Готовность доказать и отстоять свою позицию, основываясь на документации или здравом смысле.
Существует мнение, что профессионалом в сфере тестирования можно стать через 3 года, при условии наличия технического бэкграунда. В первый год молодой специалист начинает понимать, что от него требуют, во второй год — понимает, как нужно выполнять то, что от него требуют, на третий — пытается улучшить выстроенный процесс, добавляя свое видение.
Что касается тестировщиков с большим опытом и обширными знаниями, то им крайне необходимо постоянно расширять навыки, следить за тенденциями в мире IT, искать новые подходы к решению вчерашних задач и всегда быть «на волне».
В разных компаниях требования к тестировщиком отличаются. Кому-то нужны Developer in test, а для кого-то важнейшую роль играют софт-скиллы специалистов.
Мифы о тестировании ПО и тестировщиках
Почему-то все более распространенным становится заблуждение, согласно которому тестировщики занимаются тем, что просто нажимают на кнопки и вводят рандомную информацию в разные поля программы. На самом деле это не так, если бы тестировщики хаотично нажимали на кнопки и вводили случайные данные, то результаты тестирования никакой ценности для разработчика не принесли бы. Результаты представляли бы собой неструктурированную информацию из которой невозможно получить представление о том, насколько качественным получился продукт и насколько удобен он для пользователей. У тестировщиков всегда есть стратегия работы, план, который позволяет получить объективное описание актуального состояния продукта.
Второй миф заключается в утверждении, что тестировщики ответственны за качество ПО. На самом деле, ответственность за качество разработки продукта несет вся команда. Тестировщики же помогают улучшать качество разработки, а также выявляют проблемы на ранних стадиях.
Третий миф — тестировщиков очень много. На самом деле хороших специалистов на рынке мало. Много тех, кто выкладывает резюме с пометкой «тестировщик», не понимая сути тестирования ПО.
Востребованность профессии и доходы тестировщиков ПО
По данным зарплатного калькулятора Хабр Карьеры, средний размер заработной платы тестировщика составляет чуть больше 96 тысяч рублей в месяц. Конечно, это среднее значение. Есть те, кто зарабатывает значительно меньше, скажем, тысяч 30, а есть и те, кто получает в 10 раз больше — около 300 тысяч рублей.
Средняя з/п тестировщика ПО в первом полугодии 2020 года
Профессионалы примерно одного уровня, выполняющие один и тот же пул задач в столице и в регионе могут получать сильно отличающуюся зарплату. В Москве это 100+ тысяч рублей, в регионах — 40-50 тысяч рублей, а в некоторых случаях и вовсе 20-30 тысяч.
Если сравнивать уровень зарплаты тестировщиков в РФ и за рубежом, то разница в среднем 30-50%.
Источник картинки https://habr.com/ru/post/446650/
Плюс можно сравнить еще разброс уровня заработной платы в зависимости от региона — Евросоюз, СНГ, США и Канада, РФ.
Источник картинки https://habr.com/ru/post/446650
Наш зарплатный калькулятор показывает и список навыков, которыми владеют тестировщики ПО:
Кто такой тестировщик. Обзор изнутри от Евгения Шидловского
Про профессию рассказывает Евгений Шидловский, ведущий инженер-программист (lead software test automation engineer) в EPAM и преподаватель курса «Тестирование ПО» в IT-Academy.
Продолжаем цикл материалов про ИТ-специальности. Каждую из них описывает «типичный представитель» — опытный специалист. Мы надеемся, этим материалы помогут школьникам, студентам, переквалификантам, джуниорам и сочувствующим выбрать специальность в ИТ, оценить перспективы или просто сверить часы с авторитетным коллегой. Обсуждайте и дополняйте материал в комментариях, чтобы сделать его ещё полезней.
Про профессию рассказывает Евгений Шидловский, ведущий инженер-программист (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-тестировщики проверяют, насколько продукт удобен в использовании и привлекателен для пользователя.
Есть тренд на смешение разных специальностей и практик тестирования. Компаниям выгодно, чтобы специалист умел делать разные вещи.
Кто такие QA и QC
Один из самых частых вопросов на собеседованиях тестировщиков: чем отличаются QA от QC? Вопрос философский, и мне приходилось слышать очень разные ответы на него.
Традиционно под QA (Quality Assurance) понимается нечто глобальное: обеспечение всего процесса разработки, начиная от выбора методологии и специалистов и заканчивая общим контролем качества.
QC (Quality Control) — так иногда называют среднестатического специалиста по функциональному тестированию, который проверяет, насколько разработка продукта соответствует всем требованиям.
Встречается ещё третье понятие — Testing, или процесс тестирования продукта.
В каком-то смысле QA, QC и Testing — всего лишь разные этапы работы, которые выполняет тестировщик. В некоторых больших компаниях есть QA-отделы, где специалисты не занимаются функциональным тестированием вообще: они хорошо знают стандарты заказчика и следят за тем, чтобы вся команда работала по этим стандартам.
В вакансиях на рынке труда функционального (мануального) тестировщика могут называть и QA, и tester, и test engineer. Это разные наименования для одной и той же профессии.
Есть также понятие «тестировщик-универсал». В профессиональной среде мы называем таких людей «миксами». Это тестировщики, которые умеют почти всё: знают теорию и разные виды тестирования, умеют придумывать и оформлять тесты, владеют языками программирования и автоматизируют процессы. Сегодня наблюдается большой спрос именно на таких специалистов. По своему опыту могу сказать, что наличие «микса» в команде резко повышает эффективность работы.
Также существует такое понятие, как TestOps (по аналогии с DevOps). Иногда употребляются термины DevTestOps и DevTestSecOps. Это специалист, который помимо тестирования ещё занимается поддержкой всей инфраструктуры: разворачивает и обслуживает сервера, автоматизирует тесты и процесс сборки приложения.
Содержание работы тестировщика
Типичная последовательность работы функционального (мануального) тестировщика выглядит примерно следующим образом.
Главная обязанность автоматизатора — на основе готовых тестов написать код, который будет автоматически делать то же самое, что делает мануальщик вручную. Важно, чтобы автоматизатор умел кодить, но и не забывал методы функционального тестирования. Ведь до того, как создать код, нужно придумать и эффективный тест для проверки приложения.
В нашей профессии существует две крайности. Одна крайность — специалист, который замечательно придумывает тесты, но совсем не понимает кода. Вторая крайность — разработчик, который занимается автоматизацией, но никогда не учил теорию тестирования. Он может писать замечательные автотесты, но не способен сам их придумывать. Гораздо проще и эффективнее, когда человек владеет теорией и в то же время хотя бы немного подкован технически.
Я выделил бы две категории проектов, с которыми имеет дело тестировщик: проекты в разработке и проекты в поддержке. Работать на проектах первого типа гораздо интересней и динамичней. Тестировать продукт, который появляется у тебя на глазах, — это настоящий «раш». Лично мне больше всего нравится работать с системами управления предприятиями. Это очень сложные задачи, где много бизнес-логики и технической составляющей.
Тестировщик и код
Среднестатистическому тестировщику язык программирования в принципе не нужен. Можно успешно заниматься функциональным тестированием 10 лет и не написать ни одного скрипта. Язык обязательно нужен для автоматизированного тестирования. Автоматизатор — разработчик, который пишет код для тестирования другого кода.
Но если техническая часть нравится, и к ней есть склонности, то никогда не поздно засесть за программирование. Знание кода позволит автоматизировать некоторые процессы в работе даже функционального тестировщика, и его тесты станут лучше и эффективнее.
Где и как учиться на тестировщика
Расскажу на примере своей работы. Я обучаю тестировщиков в IT-Academy. Наш курс длится 9 недель или 27 занятий. За это вермя можно получить базовую подготовку, достаточную для начала работы в качестве тестировщика. Но это очень интенсивный курс.
Я всегда говорю, что правильный подход во время обучения: не спать, мало есть, ничем больше не заниматься и 9 недель штудировать материалы.
Для освоения азов профессии не нужно знать языки программирования, но новичок должен освоить обширную теорию. Далеко не всем это легко даётся. По большому счёту, за пару месяцев студенту надо пройти ужатый курс университетского обучения.
В тестировщики приходят люди из самых разных профессий, и кроме теоретических знаний в обязательный скилл-сет должны входить усидчивость и внимательность к деталям.
В моём понимании профессиональный портрет крепкого функционального тестировщика достаточно прост. Это человек с опытом в профессии от одного года, который хорошо знает теорию тестирования и умеет работать с основными техническими документами.
На рынке можно найти множество курсов: очных и дистанционных, платных и бесплатных.
Во многих крупных ИТ-компаниях есть внутренние (как правило, бесплатные) курсы по тестированию. Однозначно нужно пробовать попасть туда, особенно если хотите работать в компании-организаторе таких курсов. Минус подобного околокорпоративного обучения — оно часто бывает узконаправленным и не совсем подходят по своему содержанию средним требованиям рынка. Платные курсы, коих великое множество, чаще дают более широкую программу подготовки.
Книги и ссылки
Много ссылок на обучающие ресурсы представлены в списке на сайте IT-Academy.
Карьера и рост
Тестирование наряду с бизнес-анализом или техническим писательством — действительно одна из наименее сложных точек входа в ИТ (хотя этот путь тоже не из лёгких).
Тестировщику необязательно обладать глубокими техническим навыками, знать языки программирования или даже иметь математический склад ума. Хотя ситуация меняется и требования к кандидатам растут. Говорят, 10-15 лет назад ИТ-компании брали в тестировщики чуть ли не людей с улицы. Лет 7 назад (когда я сам приходил в профессию) новичку уже надо было крепко владеть теорией. Сегодня на собеседованиях чаще проверяют базовые технические навыки: работу с базами данных и сетями, администрирование.
Если говорить о развитии внутри профессии, то для функционального тестировщика самая близкая специализация — это автоматизатор. Когда-то я и сам прошёл такой путь. Потом некоторые автоматизаторы уходят в «чистые» разработчики или становятся супер-крутыми технарями-тестерами (есть даже такое понятие, как тест-архитектор). Порой функциональные тестировщики после дополнительного обучения переходят в параллельную ветку безопасности или нагрузочного тестирования.
Многие тестировщики, которые меньше склонны к технической работе, становятся бизнес-аналитиками. Ещё один «нетехнический» путь — это менеджерские позиции: управление проектами или командой.
За последние месяцы ситуация на рынке труда радикально изменилась из-за эпидемии коронавируса. Ещё два месяца назад спрос на начинающих тестировщиков был большой, и он сохранялся на протяжении нескольких лет.
Конечно, в условиях кризиса позиция тестировщика становится уязвимой. Без разработчика невозможно написать ПО, а без тестировщика худо-бедно можно. Мне кажется, в этой ситуации лучше всего защищены «миксы» — те самые универсалы, о которых я говорил выше. Они способны быстро перестраиваться с одних задач на другие. Если проекту станут не нужны мануальщики, то «микс» всегда может переключиться на автоматизацию процессов — и наоборот.