Тестировщик что это за профессия
Тестировщик что это за профессия
Профессия тестировщик
Тестировщик ПО – одна из профессий из сферы IT. Специалисты по тестированию программного обеспечения занимаются проверкой работоспособности различных приложений, компьютерных игр, программ. Кажется, что в этом нет ничего сложного, не нужно заниматься разработкой и кодированием. Но так ли это на самом деле?
Описание профессии
Главная задача тестировщиков ПО – выявление и устранение ошибок в программном обеспечении. Они тестируют программы, проверяют и отлаживают код, улучшают юзабилити, то есть, удобство для пользователей. Для этого они оценивают продукт как со стороны экспертов, так и обычных пользователей, для которых он создается.
Тестировщики участвуют во всех этапах создания ПО – от разработки, в которой они принимают участие косвенно, до составления технической документации.
В рамках своих профессиональных обязанностей тестировщики выполняют такие задачи:
✔ Планируют процессы тестирования
✔ Продумывают разные пользовательские сценарии и проверяют программы в соответствии с ними
✔ Находят баги и составляют по ним подробные отчеты для разработчиков
✔ Анализируют требования к продукту
✔ Работают с тестовой документацией – составляют чек-листы, тест-планы и тест-кейсы
✔ Проводят повторные тестирования после исправления багов
Стать тестировщиком проще, чем программистом. В то же время, с помощью этой профессии можно легко войти в сферу IT. Многие компании готовы брать специалистов по тестированию ПО на позицию стажера (trainee) сразу после окончания курсов, без опыта работы.
Плюсы и минусы профессии
Основные плюсы профессии тестировщик:
+ Перспектива карьерного роста. Можно развиваться дальше в смежных областях IT и брать на себя другие обязанности.
+ Возможность работать удаленно. В некоторых компаниях можно не сидеть в офисе, а тестировать продукты онлайн, не выходя из дома.
+ Быстрое обучение. Для получения профессии не обязательно заканчивать вуз, часто бывает достаточно курсов.
+ Низкий порог входа. На начальном этапе от тестировщиков не требуют больших технических знаний, главное желание обучаться и усидчивость.
+ Отсутствие возрастных ограничений. При желании специалистом по тестированию ПО может стать как молодой человек после школьной скамьи и окончания курсов, так и предпенсионер при достаточном желании.
+ Возрастающий спрос на тестировщиков. Компании заинтересованы в создании качественных продуктов, работающих без сбоев, так как конкуренция в сфере высокая.
Минусы:
— Однотипная монотонная работа, особенно на старте карьеры. Можно подавать команде новые идеи по работе ПО, и тогда будут доверять больше интересных задач.
— Сидячая работа. Приходится практически беспрерывно сидеть с утра до вечера, особенно если работать из дома.
— Большая конкуренция среди начинающих специалистов, поэтому лучше обучаться и развиваться дальше, становиться востребованным.
— Ненормированный график довольно частое явление в данной специальности.
Популярные направления и специализации профессии
Тестировщики занимаются ручным или автоматизированным тестированием ПО, поэтому идет разделение по направлениям деятельности:
✔ Ручной тестировщик (мануальщик) – тестирует программное обеспечение вручную. Он имитирует поведение пользователя, старается совершить как можно больше ошибок, которые тот мог бы сделать, пробует разные сценарии взаимодействия. При планировании ручных поведенческих тестов специалист должен учитывать технические требования к продукту и проверять их на соответствие.
✔ Специалист по автоматизированному тестированию – пользуется для проверки работоспособности ПО специально написанными программами. Это специалист более высокого уровня, он сам пишет скрипты для проверки рутинных задач, которые сокращают время на тестирование продукта. Автотестировщик знает языки программирования и разбирается в кодах.
✔ Аналитик по тестированию (Test Analyst) – это специалист, который отвечает за документацию проекта. Он собирает и систематизирует информацию, чтобы простым тестировщикам было легче работать, сравнивает актуальные результаты тестирования, определяет, соответствуют ли они требованиям.
✔ QA-инженер – специалист по контролю качества ПО, он участвует во всех этапах разработки, помогая бизнесу выпустить качественный продукт. У QA-инженера больше ответственности за конечный результат.
Тестировщиков также различаются по специализациям, в зависимости от того, какое ПО они проверяют – мобильные приложения, компьютерные игры, интернет-банкинг, сайты, юзабилити-тестирование.
Какими качествами должен обладать тестировщик
Не каждый может стать хорошим тестировщиком. Для этой профессии важны такие личные качества:
✎ Развитые аналитические способности, так как в процессе работы необходимо продумывать и анализировать различные пользовательские сценарии
✎ Внимательность, умение фокусироваться на определенной задаче и работать в режиме многозадачности
✎ Усидчивость
✎ Настойчивость
✎ Высокий уровень ответственности
✎ Обучаемость и тяга к пополнению знаний
✎ Коммуникабельность, умение работать в команде
✎ Природное любопытство и упорство
Тестировщикам также важно уметь правильно формулировать свои мысли при общении с разработчиками и заказчиками, грамотность.
Где учиться
Чтобы стать тестировщиком, не обязательно получать высшее образование, однако если есть желание развиваться в профессии и IT-сфере, стоит рассмотреть возможность обучения в вузе. Подойдут технические специальности – информатика и вычислительная техника, информационная безопасность и другие.
Абитуриентов принимают в России разные вузы:
► Московский политехнический университет
► МГТУ им. Н.Э. Баумана
► Московский технический университет связи и информатики
► Российский университет дружбы народов и многие другие
Для получения профессии тестировщика можно также поступить в учебные заведения среднего звена – техникум или колледж, либо получить нужные навыки на онлайн-курсах. Их предлагают Skillbox, Geekbrains, «Нетология» и другие образовательные площадки. Специальные курсы тестировщика на Java есть в SkillFactory. Для большинства работодателей высшее образование специалиста по тестированию ПО не принципиально.
Где работать
Найти работу тестировщика с нуля несложно. Их ждут многие компании:
✔ Разработчики любого программного обеспечения
✔ Разработчики компьютерных игр
✔ Разработчики мобильных приложений
✔ Финансовые компании и банки для тестирования собственных интернет-банкингов и мобильных приложений
✔ Компании по системной интеграции
✔ Электронные ритейлеры
Тестировщиком ПО можно работать и в иностранных компаниях.
Оплата труда
Начинающий специалист может рассчитывать на заработную плату 25 000–40 000 рублей. В вакансиях для опытных тестировщиков бывает оплата в 200 000 рублей и больше.
Уровень зарплаты зависит от таких факторов:
• Размера и местонахождения компании
• Программного обеспечения, которое нужно тестировать
• Уровня ответственности и должностных обязанностей
• Графика работы
► Средняя заработная плата тестировщиков в регионах – 60 000–70 000 рублей.
► В Москве специалисты по тестированию ПО в среднем получают 100 000 рублей.
Карьерные возможности
У хорошего тестировщика, который обладает базовыми знаниями HTML, SQL, знает языки программирования, например, JavaScript, умеет работать с Postman, Dev Tools, Charles, есть все шансы для роста в профессии.
С нуля специалист может пройти такой путь в компании:
✎ Trainee – стажер без опыта работы, обладающий только теоретическими знаниями
✎ Junior – младший тестировщик
✎ Middle – специалист среднего уровня
✎ Senior – опытный сотрудник с кейсами, знанием основ программирования
✎ QA Tech Lead – руководитель команды тестировщиков, ведущий специалист
Многие тестировщики в процессе работы проходят обучение, получают новые навыки и через несколько лет становятся программистами, разработчиками, бизнес-аналитиками, IT-менеджерами.
Перспективы профессии
Профессия тестировщика сегодня – одна из наиболее востребованных. В первую очередь, она привлекает низким порогом входа в перспективную IT-сферу. Работодатели готовы достойно платить хорошим специалисты. В ближайшие годы востребованность профессии не уменьшится, а наоборот, будет только расти, так как компании конкурируют между собой за качество программного обеспечения.
Источник: ЦТР «Гуманитарные технологии»
Если вы хотите получать свежие статьи о профессиях, подпишитесь на нашу рассылку.
Кто такой тестировщик и как им стать с нуля
Разбираемся, кому подходит профессия и что нужно уметь QA-специалисту.
Тестировщики, или QA-инженеры, — это люди, которые проверяют, как работает программа или приложение. Они ищут ошибки, смотрят, чтобы программа делала именно то, что задумано, защищают продукт от хакеров, проверяют, как приложение работает на разных устройствах и в разных операционных системах.
Тем, кто не работал тестировщиком, кажется, что это очень просто: понажимал все кнопки подряд, нашёл ошибку, сказал разработчику, и всё. На самом деле тестировщик — это сложная и творческая профессия на стыке IT, UX-дизайна и продуктового менеджмента.
Что делает тестировщик
Честно говоря, тестировщикам действительно приходится тыкать на все кнопочки и ссылки, заполнять все формы и стараться совершить все возможные ошибки, которые могут прийти в голову пользователю. Без этого не обойтись.
Неполиткорректные разработчики из-за этого когда-то обидно называли тестировщиков «обезьянками-кликальщиками». Термин был так распространён, что Android назвал свой инструмент для автоматизации тестирования MonkeyRunner — в том смысле, что он как обезьянка, только быстрее.
Но не думайте, что тестировщики лишь хаотично бьют по клавишам в надежде найти баг, — это непродуктивно. У них есть собственные методы для определения слабых мест программы и быстрого поиска ошибок.
QA-инженеры придумывают инструкции для тестирования — тест-кейсы. На элементарном уровне это выглядит так: аналитики пишут требования — какие данные должны быть на входе, как они обрабатываются, что должно получиться в результате; тестировщики пишут пошаговые инструкции для проверки программы на соответствие этим требованиям.
Тестировщик должен скрупулёзно проверить, что будет, если совершить какое-то действие, и соответствует ли результат ожидаемому.
Но ошибки коварны — в лабораторных условиях они могут себя и не проявить, зато пользователь наткнётся на них после релиза. Поэтому QA-инженеры придумывают разные стандартные и нестандартные ситуации, чтобы проверить, как поведёт себя программа. Это творческий процесс, для поиска скрытых багов приходится проявлять смекалку и аналитические способности.
Нужно предусмотреть все возможные и невозможные варианты. Что будет, если пользователь введёт цифры вместо букв? А что, если у него компьютер глючный? А вдруг сразу много пользователей будут работать и перегрузят систему?
Работа тестировщика — это бесконечное приближение к совершенству. Невозможно проверить всё, поэтому тестировщик должен работать так, чтобы совершить минимум действий, но найти максимум ошибок.
Мануальщики и автотестеры
Облегчить работу тестировщика помогают программы для автоматического тестирования. Автоматизация сокращает время тестирования и уменьшает рутину в работе. В больших проектах без автоматизации не обойтись: там очень много элементарных повторяющихся действий, никакого времени не хватит, чтобы все их проделать.
Всех тестировщиков делят на мануальщиков и автотестеров. Первые ищут ошибки в коде вручную, вторые пишут программы, которые делают это автоматически. Но это очень условное деление. Вы не найдёте автоматизатора, который не умел бы тестировать программу вручную. А многие мануальные тестировщики не любят рутину, поэтому осваивают языки программирования и пишут автоматические тесты. Опытные специалисты могут выполнять работу и мануальщика, и автотестера.
Может ли новичок-нетехнарь стать хорошим QA-специалистом
Порог входа в тестирование довольно низкий. Чтобы стать тестировщиком, не требуется техническое образование. Главное, чтобы человеку была интересна сфера IT и он хотел развиваться в этом направлении. Об этом говорит в своём интервью на hh.ru руководитель департамента обеспечения качества ПО Veeam Software Игорь Кацев.
На сайте Software-Testing.ru опрашивали тестировщиков из России и СНГ по поводу их образования. Оказалось, что в профессию приходят и достигают в ней карьерных высот разные люди: технари, гуманитарии, экономисты, юристы, люди с двумя высшими и люди без диплома вообще.
Насколько востребована профессия тестировщика
Тестировщики нужны во всех мало-мальски серьёзных IT-проектах. Большие компании предпочитают нанимать их в штат, малые работают с фрилансерами. О том, насколько востребованы QA-специалисты, говорят данные с сайтов по поиску работы:
Мануальщиков, не понимающих кода, работодатели не любят, даже если они прекрасно составляют тесты. Но и автоматизаторы, не знающие основ тестирования, тоже никому не интересны.
Вот, например, скрин с hh.ru, где работодатель перечисляет требования к тестировщику:
Большим спросом пользуются универсалы, владеющие современными методами тестирования, знающие языки программирования, умеющие составлять и автоматизировать тесты, например:
На какую зарплату можно рассчитывать
Заработная плата тестировщика в регионах — от 55 до 60 тысяч рублей, а в Москве — 80–150 тысяч.
Новички могут рассчитывать на зарплату от 40 тысяч рублей, специалисты высокого уровня получают 220–300 тысяч.
Как развиваться тестировщику
Путей для карьерного роста много. Некоторые начинают с тестирования, чтобы потом уйти в разработку, но это не единственный вариант — можно развиваться и внутри профессии.
Младший специалист тестирует программы вручную по готовым тест-кейсам. Чтобы из «обезьянки» стать мидлом, нужно развиваться: досконально изучать проект, знать язык кода и основы автоматического тестирования.
Если джуниор хорошо себя зарекомендует, то через 2-3 года получит повышение и станет мидлом. Будет самостоятельно составлять тест-кейсы и заполнять документацию.
Ещё через год-полтора успешный мидл может претендовать на должность старшего специалиста (Senior QA Engineer). Его круг задач расширяется: синьор планирует работы по тестированию, контролирует работу джунов.
Лет через пять можно стать тимлидом — руководителем команды тестировщиков. От тимлида требуются профессиональные компетенции, навыки менеджмента, умение решать сложные задачи.
Так происходит карьерный рост специалиста по вертикали. Но на практике тестировщики часто выбирают развитие внутри профессии — например, специализации по тестированию:
Какие личные качества необходимы тестировщику
Кроме того, в тестировании очень важны личные качества специалиста. Вот список основных, без которых точно не обойтись:
Что надо уметь
От тестировщика требуется:
Кроме того, тестировщик должен владеть инструментами ручного и автоматического тестирования. Это могут быть:
Для автоматизации тестов понадобятся системы тестирования веб-приложений, программы для функционального и нагрузочного тестирования.
Ну и обязательно потребуется английский язык — для чтения и заполнения технической документации.
Где всему этому научиться
Если вас увлекла профессия тестировщика, можно самостоятельно изучить методики тестирования по книгам, мануалам и видео, а затем попытаться устроиться на работу на junior-позицию. Этот вариант рабочий, но займёт много времени.
Дорога в тестировщики: как сменить профессию и добиться в ней успеха
Один из самых простых способов попасть в IT — обучиться профессии тестировщика. Причём перейти в неё может даже человек без образования программиста, а на начальные курсы уйдёт от 3 до 4 месяцев учёбы в свободное время. Мы поговорили с Teamlead нескольких команд тестировщиков и бывшим фитнес-тренером, который сейчас работает middle-специалистом, о том, как они пришли в профессию и какие навыки им помогли.
Чем вообще занимаются тестировщики? Откуда хайп?
Тестировщики занимаются проверкой ПО и приложений на функциональность. Открываются ли все окна, корректно ли вводится пароль, приходит ли менеджеру уведомление, когда клиент оплачивает заказ — специалисты осматривают каждый пиксель проекта и подробно описывают возникающие проблемы.
Компетентные тестировщики требуются во всех IT-направлениях, а запрос на новых работников не иссякает — по данным Headhunter на август 2022 года, в России сейчас открыто 3400 вакансий, а предложения по зарплате варьируются от 75 000 рублей до 340 000 рублей.
Перейти в профессию может человек практически с любым рабочим бэкграундом: куда важнее его личностные качества и дотошность.
О своих критериях при выборе сотрудника в команду рассказала Софья Бреева, QA-специалист с опытом работы в Ozon, VR Tech, ныне — Teamlead нескольких команд разработки.
Я возглавляю несколько QA-команд, одна из них работает с той частью сайтов, где действуют пользователи — так называемой «витриной». Кто-то отвечает за корзину, акции и каталог, кто-то — за область с поиском и так далее. Другая команда ловит баги во внутренних ресурсах и ищет возможности ускорить работу сайтов. С большими веб-страницами мы работаем по кусочкам: разделяем зоны по функционалу и передам ответственность специалистам. Тестировщики отвечаем за качество: мы ищем ошибки и отправляем отчёты, пишем автоматические тесты, выполняем разного рода проверки, общаемся с другими командами, которые также поддерживают работу сайтов.
Я выбрала тестирование или оно меня?
В профессию я пришла сразу после окончания профильного вуза, однако пробовала себя в направлении уже во время учёбы. Получилось смешно: однажды, когда я ещё была студенткой, я установила на свой ПК два антивируса. Мне было просто интересно, что же произойдёт в итоге? Постепенно антивирусы убивали друг друга, а жертвой жестокой борьбы стал мой компьютер — он работал всё хуже и хуже. Конечно, я всё починила: переустановила операционную систему. Мои друзья и однокурсники сказали, что я, кажется, тестировщик.
А кто он такой — тестировщик?
Это человек, которому всегда интересны ответы на вопросы: «А что будет, если я нажму на эту кнопку?», «А если я запущу сразу два приложения?». Он может опасаться, что что-то сейчас сделает не так, но все равно кликает на всплывающее окно и смотрит, что произойдёт.
У тестировщика возникает спортивный интерес, когда он сталкивается с каким-то багом или ошибкой во время работы приложения. Хочется понять, как возникает проблема, к чему она приводит, рассказать о ней разработчикам.
Специалист обладает здоровым перфекционизмом. Абсолютно всё протестировать нельзя, и даже опытный QA-инженер может пропустить баг, главное — не стопорить работу и не допускать критичных опозданий в сдаче проекта и не пропускать критичные баги. Степень здравости перфекционизма и необходимый уровень скрупулезности естественным образом сформируются за месяцы и годы практики.
Тестировщик обязан уметь выстраивать коммуникации. Среди специалистов, конечно, есть необщительные люди, как и в любой другой профессии, но для меня коммуникации — это не только про разговоры за чашечкой кофе. Важно задавать вопросы: своей команде. Я всегда говорю, что глупый вопрос — это тот, который не задан. Тестировщик очень много коммуницирует, у него нет проблем с тем, чтобы встать и дойти до человека или позвонить ему и честно сказать: «Я всё перепробовал. Я не понимаю, объясни, пожалуйста».
На первых этапах всегда потребуется элементарная теория. Когда на старте в проект берут junior-специалиста, руководители принимают, что это человек с малым объёмом практики, но с большим азартом и желанием разобраться в вопросе. И у него должна быть хорошая теоретическая база.
Важно, чтобы направление нравилось, ведь человек эффективен там, где ему интересно. При найме я обращаю внимание на софт-скилы. Мне важно, чтобы человек не отвечал на вопросы однозначно, был коммуникабельным, любил работать в команде и не делал всё сам в одиночку, ведь тестировщики — это командные игроки. Если у вас отсутствуют такие навыки, то вам будет сложно.
Из бухгалтера в мамы и далее — в тестировщики
IT — это такая сфера, где абсолютно всё равно, как ты выглядишь, сколько тебе лет. У меня нет предвзятости: приходите на работу в килте, покрасьте волосы в зелёный — я буду смотреть на то, какой вы человек и специалист. То же самое и с возрастом: неважно, сколько лет — 18 или 56, я смотрю на нужные мне навыки и на то, как человек ведет себя на собеседовании.
Расскажу историю об одной из моих сотрудниц. Ей 45 лет, до этого она работала бухгалтером и воспитывала детей: на домашнем обучении у неё было три ребёнка. Её дочь стала аналитиком, и однажды она заметила, что мама очень часто задаёт вопросы о работе той или иной программы, ловит баги и сразу о них пишет разработчикам. Чуете, что пахнет тестированием?
Женщина ознакомилась с начальной теорией, порешала простые задачи и пришла к нам на собеседование. Мы дали ей небольшое тестовое задание, и она с ним великолепно справилась. После я с ней созвонилась, проверили общие представления о направлении, и она всё знала прекрасно. Я уже в конце собеседования узнала и про ёе возраст, и про семью, и про то, что она больше не хочет заниматься бухгалтерией.
Карьера у неё идёт отлично. Пришла джуном, через полгода научилась тестировать не только веб-сайты, но и мобильные приложения. Да, у неё появляются вопросы, но в этом нет ничего страшного: через полгода всё знать невозможно. Она продолжает самообучение, не стесняется задавать вопросы, а команда её поддерживает и всегда готова найти время для ответа.
Её возраст — это конкурентное преимущество, ведь у неё есть спокойствие и выдержка, которыми редко отличаются молодые специалисты. В случае спора внутри команды она может с высоты своих лет остановить спор и предложить здравое, взвешенное решение — просто так опыт воспитания трёх детей не проходит. Я её очень ценю, у неё есть скилы, которых нет у молодых сотрудников.
На что можно рассчитывать в начале?
Зарплата для новичка в разных компаниях варьируется от 40 000 до 70 000, но я всегда советую выбирать не из цены, а из проекта. Можно проговорить на этапе собеседования о повышении зарплаты и об условиях, которые должны быть для этого выполнены. Как показывает практика, человек уже через полгода становится middle-специалистом.
Кальянщик-тренер-джун
До того как стать тестировщиком, я пробовал себя во многих направлениях, ни одно из них не было связано c IT. Был кальянщиком, фитнес-тренером — до встречи с Софьей. С ней мы занимались несколько лет, и на наших тренировках она мне рассказывала о многих вещах, которые случались на её проектах. Поначалу я не до конца понимал, о чём Софья мне вообще говорит — какие тесты, какие баги? Это был первый звоночек — я захотел разобраться в терминологии и понимать суть разговоров.
В течение полугода я узнавал о направлении всё больше и больше. Смотрел видео на YouTube, читал публикации, заметки, слушал подкасты. У меня не было выверенной системы обучения, я искал любую информацию по профессии. Постепенно для меня сложилось понимание, кто такие тестировщики и чем они занимаются. Я подумал, что неплохо было бы перейти в другую профессию.
Почему же ушёл?
Я хотел развиваться, узнавать новое, делать то, что точно будет востребованным у работодателей. В плане денег не было большой заинтересованности: поначалу я терял в деньгах, так как пришлось бы начинать с должности младшего сотрудника. Меня это не смущало, так как я чувствовал потенциал в тестировании и готов был немного потерпеть.
Первую работу я получил сразу после того, как прошёл полноценный обучающий курс. Мне дали простую повторяющуюся задачу — принимать запросы об ошибках от клиентов и перенаправлять их между коллегами.
Поначалу было сложно, ведь ни один курс не даст полного понимания проблем, которые могут возникнуть. Ты не понимаешь, что вообще надо делать, идёшь и задаёшь вопросы, ошибаешься и исправляешь собственные косяки — это путь новичка, и к нему стоит быть готовым морально. Боишься спросить? Придётся тяжко не только профессионально, но и психологически.
Сложилось всё не сразу
В первой команде я пробыл два месяца, но с ней у меня не сложилось. Были сложности с коммуникацией, не строились межличностные отношения. Я честно поговорил об этом с тимлидом и он помог мне с переходом в другую команду, где я и работаю до сих пор. Изначальная зарплата составляла около 72 000 рублей в месяц, сейчас я получаю 96 000 рублей.
С новой профессией я ощутил больший контроль над своей жизнью. До этого заработок варьировался от месяца к месяцу, а на смену я мог приехать в один день к 07:00, в другой к 14:00 — как клиенты поставят тренировки. Теперь же я спокойно начинаю в одно и то же время, работаю из дома, перед началом спокойно выпиваю чашечку кофе, в обед прогуливаюсь. Больший контроль даёт большую свободу — я сам составляю своё расписание.
Если ты идёшь в IT, то ты будешь постоянно учиться, посещать семинары, встречи других разработчиков. Без обновления твои знания устареют даже не за год — за месяцы. Иногда сложно совмещать работу и обучение, так как на курс хватает времени только по вечерам и по выходным, а там ещё всякую личную-семейную жизнь надо вписать. Но у меня получается, чему я рад.
5 советов начинающему тестировщику
Никогда не бойтесь задавать вопросы. Глупых вопросов не бывает!
Находите и работайте со своими слабыми сторонами.
Всегда уделяйте время на развитие с новой профессии — полезные видео, семинары.
Не бойтесь пробовать и придумывать свои способы решения задач.
Больше общайтесь с более опытными коллегами и узнавайте что то новое.
Начните путь в тестировщики уже сейчас! Приглашаем вас на бесплатный вебинар «Как перейти в IT», его проведут наши спикеры — Артем Мурадов (Курс по Алгоритмам) и Александр Волочнев (Курс по AWS).
Гид по профессии тестировщик: чем занимается специалист в сфере QA, сколько зарабатывает, что надо знать и где учиться
Позиция тестировщика считается одним из самых простых способов быстро войти в отрасль информационных технологий. Ходят слухи, что эту профессию легко освоить, работа у тестировщика — не бей лежачего, да и платят специалисту по тестированию программного обеспечения почти как программисту. Насколько эта информация достоверна? Давайте разбираться.
Кто такой тестировщик, за что отвечает и чем занимается
Тестировщик программного обеспечения планирует и выполняет тестирование приложений, отлаживает код, улучшает юзабилити программ. Часто к названию профессии добавляют латинские буквы q и a: qa тестировщик. Также употребляют название qa-инженер. В латинских буквах спрятана суть деятельности тестировщика. Подробности ниже.
За что отвечает тестировщик
QA произошло от английских слов quality assurance — обеспечение качества. Это часть разработки, которая управляет качеством продукта. QA — широкое понятие, а работа над обеспечением качества начинается задолго до написания первой строки кода будущего приложения. В идеальном мире инженер по качеству работает над продуктом если не на этапе генерации идей, то на этапе исследования рынка и изучения потребностей целевой аудитории.
Хекслет для начинающих: Попробовать обучение на Хекслете вы можете на Подготовительном курсе по основам Python. Теория и практика в браузере, вебинары, лайвкодинг, помощь наставника
В широкое понятие QA входит ещё одно направление деятельности: QC, quality control или контроль качества. Инженеры QC контролируют продукт на этапе разработки и поддержки. Тестирование программного обеспечения — один из инструментов контроля качества. То есть тестировщик проверяет приложение в рамках мероприятий по контролю качества (QC), которые входят в комплекс работ по обеспечению качества (QA).
В широком смысле тестировщики участвуют в создании полезного для пользователей программного обеспечения. Если конкретизировать, тестировщики контролируют качество приложений, над которыми работает организация.
Чем занимается тестировщик
Есть ручное и автоматизированное тестирование ПО. Соответственно, специалисты по ручному тестированию проверяют приложения вручную, а специалисты по автоматизированному тестированию работают с помощью программ.
Ручной тестировщик по сути вручную имитирует действия пользователя приложения. Специалист убеждается, что программа работает как ожидается в разных сценариях взаимодействия. Ручное тестирование иногда называют поведенческим или тестированием методом чёрного ящика. Но автоматические тесты тоже чаще всего проводятся с использованием стратегии чёрного ящика.
Стратегией чёрного ящика называется подход, при котором объект тестируется без использования знаний о его внутреннем устройстве.
При планировании поведенческих тестов специалист учитывает технические требования к программному обеспечению. Пример: в спецификации указано, что после регистрации нового пользователя приложение отправляет письмо с подтверждением на указанный электронный адрес. Тестировщик регистрируется в приложении и проверяет, пришло ли соответствующее письмо.
Ручное тестирование — самый простой способ оценки качества приложения. Тестировать приложение вручную — «дорогая» операция, так как скорость и точность проверок ограничена возможностями тестировщиков.
Автоматизированное тестирование подразумевает проверку приложений с помощью программного обеспечения. Это не значит, что для автоматических проверок не нужны тестировщики. Напротив, специалист по автотестам должен знать и уметь больше, чем ручной тестировщик.
Вот примерное описание работы эксперта по автоматизированному тестированию. В первую очередь он выбирает тест-кейсы или функции приложения, которые нужно проверить. Обычно для автотестов выбирают критичные для работы ПО функции, например, обработку платежей, сохранение пользовательских данных. Автотестирование подходит, когда тесты повторяются неоднократно или для проверки функции приложения нужно использовать большие объёмы данных.
Затем тестировщик выбирает инструменты, планирует и реализует дизайн проверки. На этом этапе специалист готовит данные для тестов, настраивает инструменты, устанавливает расписание тестирования. Тесты запускаются, результаты тестирования автоматически фиксируются. Специалист анализирует полученные данные и передаёт информацию разработчикам.
Автоматизация тестов экономит ресурсы организации. Она позволяет с минимальными усилиями повторно тестировать приложения, требует меньше времени по сравнению с ручными тестами, сокращает количество ошибок.
Промежуточный итог: тестировщики контролируют качество программного обеспечения. Эта деятельность входит в комплекс работ по QA — обеспечению качества приложений. Тестирование бывает ручным и автоматизированным. Ручное тестирование предполагает проверку приложений вручную, а для автоматических тестов специалисты используют программы.
Работа тестировщиком: где работают QA-инженеры, сколько зарабатывают, какие вакансии есть на рынке
Тестировщики трудятся в командах, которые занимаются разработкой программного обеспечения. Это скорее средние и крупные компании, которые делают собственный продукт или работают по модели аутсорсинга.
QA-инженеров и QC-тестировщиков часто привлекают команды, которые используют DevOps. В таких командах разработка, тестирование и поддержка ПО выполняется циклически с использованием подходов Agile или Scrum.
Сколько зарабатывают тестировщики
По данным QA-инженера Антона Якутовича, на рынке есть несколько уровней тестировщиков: новички, специалисты среднего уровня, опытные специалисты и эксперты по автоматизации тестирования. Зарплаты на каждом уровне отличаются от предыдущего примерно в 1,5 раза.
По состоянию на весну 2022 года на сайте hh.ru по запросу «тестировщик» есть 5008 вакансий во всех регионах России. Сотрудников ищут такие компании, как «Сбербанк», «Билайн», МТС, «Магнит» и другие. Максимальная зарплата составляет 430 000 рублей в месяц. Минимальная указанная зарплата — от 40 000 рублей в месяц.
Большая часть вакансий открыта в Москве и Санкт-Петербурге, но такие специалисты требуются и в других регионах. Например, в Новосибирской области открыто 188 вакансии по тестированию, в Татарстане — 193 вакансий, в Свердловской области — 185 вакансий.
Как стать тестировщиком: что надо знать и где учиться
В этом разделе говорим о необходимых для тестировщиков знаниях и об обучении. Важно понимать, что требования к соискателям отличаются от компании к компании, поэтому ниже вы найдёте обобщённую информацию.
Что должен знать и уметь тестировщик, какие софт-скилы нужны этому специалисту
В первую очередь специалист должен изучить основы тестирования. Классификация тестирования, методы и инструменты, создание сценариев тестирования, — вот базовый набор знаний, с которого будущие QA-тестеры начинают знакомство с профессией.
Понадобятся знания основ программирования, протокола HTTP, умение работать с базами данных и системами контроля версий, хотя бы базовое знание HTML и CSS.
Тестировщик должен уметь работать с командной строкой, знать браузеры и инструменты разработчиков. Также понадобится умение работать с инструментами автоматического тестирования, например, HP-UFT (бывший QTP), Selenium, Sahi и так далее.
Специалисты называют разные софт-скилы, которыми должны обладать тестировщики. К специфичным для этой профессии мягким навыкам можно отнести внимательность к мелочам, критическое мышление, умение анализировать информацию.
Где учиться тестированию
Профессии «Тестировщик» на Хекслете пока нет. Тем не менее у нас есть полезные для будущих тестировщиков курсы и интенсивы. Вот некоторые из них:
Также вы можете посмотреть программы обучения в других школах. Например, курсы для будущих специалистов в области QA есть в «Тинькофф Образование», «Нетологии», GeekBrains, Skillbox и в других русскоязычных школах. А если вы владеете английским языком, можете пройти курсы на известных англоязычных площадках, включая Udacity, edX, Udemy, Coursera и так далее.
Промежуточный итог: чтобы работать тестировщиком, нужны специальные знания, включая основы тестирования, основы программирования, системы контроля версий, инструменты автоматизации и так далее. Часть знаний будущие тестировщики могут получить на Хекслете.
Профессия глазами профессионалов: комментарии экспертов о работе тестировщиков, перспективах и обучении
Мы обратились к опытным специалистам в сфере QA, чтобы узнать о нюансах профессии тестировщик. Они ответили на несколько вопросов о профессии.
Константин Виноградов: после курсов программистов можно смело становиться тестировщиком
Дмитрий Дементий: Чем работа тестировщика отличается от работы программиста? И что есть общего в работе тестировщика и программиста?
Константин Виноградов: Проще сказать, чем они похожи: оба специалиста работают над тем, чтобы на выходе получился качественный продукт, отвечающий требованиям заказчика. В остальном это совершенно разные направления работы.
Конечно, есть отдельные специализации, такие, как специалист по автоматизации тестирования (test automation engineer) или разработчик в тестировании (software development engineer in tests), чья работа почти идентична работе программиста. Она предполагает написание кода автоматических тестов и тестовых фреймворков.
Но в целом задачи тестировщика слабо перекликаются с задачами программиста. Анализ требований, составление тестового плана с учетом покрытия требований, выполнение ручного тестирование и запуск автотестов, подготовка отчетов — вот работа тестировщика. Если не рассматривать уровень простого мануального тестирования, я бы сказал, что такая работа имеет значительно большую аналитическую составляющую, чем техническую.
Валидация продукта требует от тестировщика достаточно большого кругозора, так как приходится смотреть на продукт глазами пользователя, понимать его потребности. Надо уметь «быть пользователем» и знать его потребности, что непросто, если речь идет о специализированных решениях. Надо знать отраслевые стандарты, которым должно соответствовать решение, и уметь это соответствие проверить. Надо уметь находить способы тестирования совместимости с конкурентными решениями.
Кроме того, от тестировщика требуется другое мышление. Способ думать разработчика должен привести его к одному правильному и оптимальному сценарию решения проблемы. Способ думать тестировщика ведёт его ко всему многообразию сценариев, которых, по определению, больше.
Еще раз повторюсь: мы не рассматриваем автоматизаторов и разработчиков в тестировании, потому что они, на мой взгляд, всё же разработчики, а не тестировщики.
Д. Д.: Кем проще стать: разработчиком или тестировщиком?
К. В.: Тестировщиком. Но не потому, что им быть проще. Просто порог входа ниже. Карьера разработчика начинается с позиции junior software developer, которая требует наличия минимальных знаний: язык программирования, основные алгоритмов и структур данных, знакомство с фреймворками и так далее. Чтобы стать джуном, ты уже должен быть разработчиком.
Карьера тестировщика начинается с уровня специалиста по ручному тестированию (manual testing): есть описание тестов, делай руками, вноси результаты в отчет. Очевидно, что начинать во втором случае проще.
Д. Д.: С финансовой точки зрения к чему выгоднее стремиться: к позиции тестировщика или программиста?
К. В.: С финансовой — к позиции программиста. Вот только смотри пункт про образ мышления. Есть мнение, что тот, кто рожден быть хорошим тестировщиком, будет паршивым программистом. И наоборот.
И опять особняком автоматизаторы: часто их зарплаты сопоставимы с программистами. Именно потому, что они, по факту, занимаются разработкой, и им платят, чтобы они действительно не ушли в разработку.
Д. Д.: Чтобы проверять написанные программистами приложения, тестировщик должен разбираться в коде лучше программистов. Этот тезис верный или нет?
К. В.: Это очень сильно зависит от подхода к тестированию в конкретной компании. Часто бывают случаи, что тестировщику вообще не приходится заглядывать в код. Особенно это может касаться различных embedded решений или прошивок устройств. Но знать, как разрабатывается продукт, как он работает, и почему сделано именно так, тестировщик должен.
Д. Д.: Можно ли рассматривать позицию тестировщика как один из простых способов войти в IT?
Д. Д.: Какими инструментами пользуются тестировщики: окружение, редакторы и IDE, библиотеки и фреймворки?
Все зависит от продуктового стека и того, чем автоматизируется тестирование. У меня:
Д. Д.: Где можно научиться тестировать ПО? Можно ли стать тестировщиком после курсов программирования?
К. В.: Не буду приводить примеров курсов, потому что ничего не могу о них сказать. Все коллеги-тестировщики учились сразу на производстве. После курсов программистов можно смело становится тестировщиком. Как и после других курсов. Потому как профессии отражают совершенно различный подход.
Станислав Урюпин: тестированию можно научиться только на практике
Станислав Урюпин, QA-инженер, руководитель волонтёрского образовательного проекта Sciberia
Дмитрий Дементий: Чем работа тестировщика отличается от работы программиста? И что есть общего в работе тестировщика и программиста?
Станислав Урюпин: Избегая формальных определений, отсылающих к различным стандартам, описание разницы в работе программиста и тестировщика можно свести к следующему виду — работа программиста заключается в создании приложений, а работа тестировщика заключается в обеспечении их гарантированной работоспособности. Тем не менее у этих профессий общие цели — создание полноценных программ, которые используют другие люди и системы.
Д. Д.: Кем проще стать: разработчиком или тестировщиком?
С. У.: Начать карьеру в IT проще тестировщиком, чем разработчиком. Но за последние годы сложность разрабатываемых программ и предъявляемых требований сильно возросли. Данные изменения не могли не отразиться на работе тестировщика. В связи с этим повысился порог вхождения в профессию.
Теперь начинающему тестировщику уже недостаточно знать в общих чертах теорию и то, как составляются тест-кейсы. Нужно знать многое: начиная от того, как устроена специфика работы в конкретной области тестирования, заканчивая представлениями о современных методологиях разработки.
Д. Д.: С финансовой точки зрения к чему выгоднее стремиться: к позиции тестировщика или программиста?
С. У.: На мой взгляд, неправильно подходить к выбору профессии, когда главным критерием выбора является уровень зарплаты. В этой позиции кроется одна уловка: очень сложно динамично развиваться в той профессиональной области, интерес к которой находится не на вершине мотивационного выбора. А не развиваясь динамично, нельзя рассчитывать на реальный рост зарплатных ожиданий. В любой области IT профессионалы высокого уровня могут получать достойную зарплату.
Д. Д.: Чтобы проверять написанные программистами приложения, тестировщик должен разбираться в коде лучше программистов. Этот тезис верный или нет?
С. У.: Этот тезис не является верным. Лучше самих программистов в коде не может и не должен разбираться кто-либо ещё. Тестировщики работают чаще всего по стратегии черного ящика, когда непосредственный доступ к коду закрыт для анализа. Зато тестировщику доступны различные способы и инструменты для определения работоспособности программ.
Д. Д.: Можно ли рассматривать позицию тестировщика как один из простых способов войти в IT?
С. У.: Можно, но лишь отчасти. Всё зависит от конкретных целей. Например, часто новички работу в тестировании рассматривают как промежуточный этап перед переходом в разработку. Тестирование и разработка — это разные области деятельности. В каждой из них найдутся характерные особенности, без которых продуктивная работа невозможна. Потому неизбежно придётся тратить ресурсы на погружение в предметную область.
Если цель — пройти в разработчики или иные направления работы в IT, такие, как DevOps или аналитика, стоит отдельно изучать эти направления. Но получится ли это делать без падения продуктивности работы в тестировании, вопрос открытый.
Д. Д.: Какими инструментами пользуются тестировщики: окружение, редакторы и IDE, библиотеки и фреймворки?
С. У.: Область тестирования обширна, и в ней много направлений, в которых найдутся свои инструменты. Есть инструменты, которыми пользуются тестировщики независимо от направления. Например, cистемы управления тестированием или системы отслеживания ошибок.
Д. Д.: Где можно научиться тестировать ПО? Можно ли стать тестировщиком после курсов программирования?
С. У.: Тестированию, как и многому другому, можно научиться только на практике. Если нет опыта, с которым можно начать карьеру, стоит изучить теорию и воспользоваться готовыми решениями для практики. Например, выбрать сайт или мобильное приложение и попробовать научиться составлять тест-кейсы или изучить на предмет возможных ошибок.
Необходимо отдавать себе отчет в том, что ни одни курсы в мире не могут гарантировать трудоустройства, пока человек сам не будет стараться найти работу. Если пройти успешно курсы по программированию, и появится желание попробовать себя в тестировании, то знания, полученные на курсах, облегчают вход в профессию, так как области деятельности тесно связаны между собой.
Заключение: работодателям нужны тестировщики, а соискателям нужно учиться и практиковаться
Тестировщик — не человек с улицы, а квалифицированный специалист, который должен много знать и уметь, постоянно практиковаться и развиваться. Работодатели готовы платить достойные зарплаты специалистам по автоматизированному тестированию. Чтобы стать тестировщиком, нужно учиться самостоятельно или на курсах. По мнению экспертов, позицию тестировщика можно считать одним из простых способов войти в отрасль информационных технологий.
Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях
Как стать тестировщиком и не разочаровать родителей. Порог входа и основы основ
Еще 10-15 лет назад наши родители не могли себе представить, что большая часть бытовой рутины будет решаться в пару кликов мыши. Однако сейчас количество сервисов существенно увеличилось, и люди могут позволить себе пользоваться тем, что более качественно и удобно для пользователя. Если вы в процессе использования какого-либо приложения или сайта задумывались о профессии, которая позволила бы вам делать продукты лучше, то эта статья даст вам небольшую инструкцию о том, как войти в профессию тестировщика.
Кто такие тестировщики?
Существует заблуждение, что «тестировщик» – это профессия, которая подразумевает поиск ошибок и проверку продукта до тех пор, пока он не отвалится. На самом деле это утверждение верно лишь отчасти. Тестировщик проверяет, что продуктом удобно пользоваться и что его функционал исправно работает. Соответственно, тестирование – это не поиск ошибок, а проверка соответствия ожидаемого поведения продукта фактическому. Хотя иногда есть необходимость помучить продукт, а то и вовсе его сломать, чтобы вас прокляли разработчики убедиться, на каких максимальных мощностях или как долго продукт может стабильно работать. Об этом вы можете ознакомиться в статье про нагрузочное тестирование.
Как начать тестировать?
Очевидно, для начала хорошо бы изучить теорию и иметь возможность на чем-то практиковаться, чтобы подкрепить знания в деле. И на этом пути у вас есть два направления:
Жизненный цикл продукта
Любому начинающему или действующему специалисту it-сферы крайне полезно знать жизненный цикл продукта, так как он сам будет являться его частью на том или ином этапе.
Жизненный цикл бага
На самом деле, жизненный цикл бага будет зависеть от разных факторов: например, от проекта, приоритета бага или решения команды. Здесь не всегда работают шаблоны, но важно иметь базовые знания, чтобы знать, как минимум, процесс работы.
Виды тестирования и уровни тестирования
Любой тестировщик должен понимать, какой вид продукта он тестирует, и какие виды тестов необходимы именно под этот продукт.
Как писать чек-листы, тест-кейсы
Необходимость написания тест-кейсов сегодня достаточно спорна. Все же, как показывает практика, в процессе написания продукт изучается лучше, задается больше вопросов, и выявляется больше деталей продукта. Поэтому изучение этого навыка поможет вам научиться структурировать ваши проверки.
Знание техник тест-дизайна
Знание техник тест дизайна помогают сильно сэкономить время, позволяя избавиться от ненужных проверок.
Умение пользоваться багтрекинговыми системами, системами написания тест-кейсов, а также хранением документации
Для постановки и контроля задач есть специальные сервисы, которые позволяют отслеживать, на каком этапе находится задача, ее приоритет и так далее. Одни из самых популярных – Jira, Redmine, Trello. Для систем написания тест-кейсов есть такие сервисы, как testRail, Qase, TestLink. В некоторых случаях вполне достаточно Google docs. Для хранения документации – Confluence, Notion и Wicki.
Понимание работы протоколов http/https, знание http запросов (Post, Get, Put, Option, Delete)
Для тестировщика важно понимать работу протоколов, а также знать структуру и типы http запросов, уметь читать ответы сервера. Не всегда проблема ошибки отображается явно на верстке, в некоторых случаях полезно проверять корректность общения между клиентом и сервером.
Умение работать с реляционными базами данных
Полезным навыком для тестировщика будет умение работать с системой управления базами данных (СУБД). Умение обращаться с СУБД заметно облегчит вам жизнь при работе на проектах с огромным количеством данных, для проверки целостности, а также корректной обработки данных. На начальном этапе от вас вряд ли потребуются высокоуровневые знания по работе с SQL, однако знание простых команд типа «выведение всех доступных баз данных» – SHOW DATABASES, «Просмотр таблиц, доступных в базе данных» – SHOW TABLES, Команды для создания запросов SELECT…; является достаточно необходимым.
Умение скачивать, читать логи мобильного приложения
Помимо описания путей воспроизведения бага, видеозаписи или скриншота, крайне полезно прикладывать логи работы мобильного приложения на момент воспроизведения бага. Это заметно облегчит жизнь разработчику в починке функционала. Также важно понимать, в какой именно отрезок времени воспроизвелся баг.
Умение гуглить
На самом деле было бы правильнее этот навык поставить на первое место списка, так как этот навык полезен не только для работы, но и в целом для осознанной жизни. По ходу работы у вас появятся 100 вопросов, и некоторые вещи для начала лучше уточнить у поисковика, чем у разработчика.
Английский язык
Большинство толковых документаций, полезных статей преимущественно пишется именно на этом языке.
Набор инструментов для проверок
Postman – инструмент для тестирования api. Это одно из самых популярных приложений, которое позволяет совершать отправку api-запросов, созданий коллекций запросов, создания полуавтоматических api-тестов.
Google Chrome Dev tools – консоль разработчика есть на всех браузерах, но по функционалу и удобству больше всех развилась именно эта, поэтому изучение стоит начать именно с нее. Это инструмент для проверки веб-сайтов, который поможет вам отслеживать запросы, проверять работу сайта, изменяя сигнал интернет-соединения, проверять верстку сайта на разных размерах. Также у GCDt есть шаблон с размерами мобильных устройств.
Эмуляторы Android Studio и Genymotion. Иногда в компаниях не всегда бывают устройства, заявленные в требованиях, и, чтобы не откладывать проверки, можно воспользоваться эмуляторами мобильных устройств.
Jmeter – инструмент для нагрузочного тестирования. У него достаточно низкий порог вхождения. Помимо нагрузочного тестирования, Jmeter можно использовать как-прокси сервер для отслеживания запросов, проходящих через ваш продукт.
Терминалы – как правило, они не имеют графическую оболочку и являют собой просто командную строку.Терминалы имеют более низкую нагрузку на систему, и поначалу может быть непривычно их использовать, однако потом трудно будет перейти на графику. В тоже время в некоторых случаях терминал не прощает ошибки, но умение работать с ним достаточно полезный и необходимый навык для тестировщика. В некоторых случаях с помощью терминала можно совершить больше действий, чем мышкой.
Список материалов, которые помогут вам познакомиться с основами тестирования:
Способы применить теорию на практике
С теорией определились. Что же делать с практикой? Самый простой путь – взять любой сайт, и начать составлять тест-кейсы, чек-листы, проходить по ним. При нахождении ошибок составить баг-репорты и отправить их в службу поддержки. Как минимум, +100 к карме от разработчиков вам упадет, будьте уверены.
Для набора опыта стоит попробовать себя в crowd-testing – на фриланс площадках для тестировщиков. Подробнее об этом можно прочитать в статье.
Также некоторые компании выставляют свои проекты с открытым исходным кодом, чтобы желающие могли потестить и оставить какие-то замечания или пожелания о своем продукте. Не стесняйтесь участвовать на различных бета-тестах игр или программ. Как правило, именно на этих сырых приложениях бывает куча багов, которые легко отлавливать.
Кроме того, можно вступать в профессиональные сообщества. Например, QA mobile community – сообщество мобильных тестировщиков, сообщество по автоматизированному тестированию, сообщество тестировщиков Казани. Это заметно улучшит качество вашего развития и увеличит шансы обрести хорошую работу. Вступайте в группы в соцсетях, которые помогли бы вам обрести новые профессиональные знакомства. На примере опыта коллег по цеху вы сможете обрести свой и избежать некоторых ошибок, хотя иногда полезно и ошибаться.
Профессия: тестировщик
Тестировщик: Это баг или фича?
Разработчик: Пока что это фича.
bash.im
Инженер по тестированию — моя первая специальность в ИТ-сфере в далёких уже 2010-х, как, пожалуй, и у многих. Это было классическое «войти в айти»: на тот момент имелось только экономическое образование и 4 года опыта аналитической работы в телекоме. Из скиллов: горящие глаза, большое желание, среднее знание администрирования UNIX и выученная наизусть модель OSI (без особого понимания, что с ней делать дальше). 87 вопросов на собеседовании (от «что такое chmod 777» и «как работает ssh» до «расскажите о принципах работы TCP и поясните на примерах») — и должность инженера по тестированию у меня в руках. Чуть позже за 2 года было всё: гордость, отчаяние, разочарование, отличная работа, быстрый рост, крутой проект и т.д. Если бы я тогда знал о профессии тестировщика чуть больше, не было бы многих неприятных минут и часов. Ну, пусть тогда их не будет у тех, кто только выбирает свой путь или меняет его направление — эта статья для вас.
Кто это?
Тестировщик (буду называть именно так, чуть позже объясню, в чём причина оговорки), он же QA-инженер (Quality Assurance) — это специалист, который проверяет качество программного обеспечения и уровень его соответствия заранее определённым потребностям и ожидаемым результатам. В своей работе он использует различные инструменты, стратегии тестирования, включается в SCRUM-команды и т.д.
Иногда выделяют два основных «вида» тестировщиков.
В общем и целом работу инженера по тестированию можно свести к такому порядку: получил ПО → определил необходимый набор тестов → сопоставил реальное положение косяков, костылей, велосипедов и багов с ожидаемым результатом работы программы (аппаратно-программного комплекса) → завёл баги → работаешь с ними, пока они не закроются. Всё это, конечно, в цикле.
Скажу сразу: первые несколько месяцев работы в тестировании напоминают день сурка, ты делаешь одно и то же, прогоняешь одни и те же тесты по нескольку раз, ставишь passed или failed, заводишь баги и, кажется, что это работа точно не для тебя, а скорее для школьника или мартышки. И это вот самоощущение чудовищно угнетает и столь же чудовищно неверно. Всё меняется, когда приходит опыт.
Вот какие этапы вы, скорее всего, пройдёте на работе тестировщиком «с нуля».
Первые 2-3 месяца — обучение. Если компания хорошая и продвинутая, вам дадут наставника, который поможет освоить все принятые в компании методологии тестирования, покажет оборудование, расскажет о ПО, задачах этого ПО и обязательно о клиентах. Иногда по итогам такого вот обучения с наставником вам даже придётся сдать небольшой экзамен (мини-собеседование). Это совершенно нормально, т.к. именно QA является важным подразделением на пути к клиенту и его хорошая работа — залог того, что ваш продукт в чьём-то бизнесе начнёт работать, а не лажать. Если компания не особо заботится о развитии сотрудников, вам придётся достигать всего самому, но я не скажу, что это очень плохо: при самостоятельном обучении погружение в ПО происходит гораздо глубже и вы понимаете значительно больше того, что расскажет опытный «ментор» о продукте, который ему отлично знаком.
Новичков в тестировании любят — иногда они находят самые интересные и неожиданные баги, на которые у давно работающих сотрудников «глаз замылился».
История. В одну компанию пришла новенькая девочка, которая никак себя не проявляла, тихо изучала софт и принципы его работы с разным оборудованием. Когда она только-только приступила к тестированию, от большого и злого федерального клиента прилетел critical (самый злой баг, хуже только блокирующий) — ПО отказывалось закрываться. Перелопатили весь код, орали друг на друга, проверили все соединения и т.д. Через три часа метаний девочка пропищала:
— А тут крестик неактивный.
Действительно, просто не работала одна-единственная и весьма очевидная функция. Но профессионалы забурились в дебри, а увлечённый дилетант сразу заметил ненормальное поведение.
Далее — от нескольких месяцев до 2 лет — ручное тестирование. Вы будете выполнять большинство видов тестов в ручном режиме, начнёте составлять свои тест-планы и взаимодействовать с разработчиками. На этом этапе наступает тот самый день сурка, когда кажется, что кони бегают по кругу и дальше — рутина и скука. Это не так. В этот промежуток времени инженер по тестированию наращивает интегральное понимание тестирования, учится работать с программистами, видеть не только сам баг, но и анализировать его возможные причины. Главное, что приходит за это время — осознание того, что ручное тестирование должно остаться в прошлом веке и… настаёт время перехода к автоматизации тестирования, когда вы начинаете осваивать язык программирования (или использовать ранее освоенный) и пишете свои скрипты — те, которые считаете нужными для работы с ПО. Наступает реально крутая часть работы. (Впрочем, многие тестировщики, особенно девушки, предпочитают остановиться на ручном тестировании и стать реальными асами именно в нём — кстати, весьма полезные сотрудники и, как показывает опыт, лучшие наставники для новичков).
От 2 лет и далее — квалифицированный специалист, готовый работать в офисе и на стороне клиента, тестировать крупные проекты, а не только фрагменты и модули, глубоко знающий свою специализацию и не очень глубоко все остальные, способный работать не только с профильным ПО, но и тестировать взаимодействия внутри различных конфигураций оборудования, ПО и интеграций. Такие ребята классно и доходчиво выступают на конференциях и митапах, делятся профессиональными секретами, обучают и… думают о своём дальнейшем карьерном пути. Об этом чуть ниже.
Работа тестировщика программного обеспечения хороша тем, что можно выбрать компанию, связанную с тем, что вам интересно в какой-то перспективе: можно тестировать телефонию, софт, бизнес ПО, игры, мобильные приложения, системы безопасности и т.д. Тестируя тот или иной продукт, вы глубоко в него погружаетесь, узнаёте изнутри и в дальнейшем сможете стать разработчиком или менеджером проекта/продукта с доскональным знанием предмета.
И да, тестирование является одним из оптимальный путей начала карьеры в ИТ-сфере, доступных большинству ребят с головой на плечах. Поэтому, если хочется, но пока не ясно чего и куда, идите в тестеры тестировщики, быстро прояснится.
Плюсы и минусы работы тестировщиком
Этого раздела не было в предыдущих постах серии о профессиях, но он будет здесь. Потому что вокруг работы инженеров по тестированию ходит много слухов, споров, кто-то её ненавидит, а кто-то посвящает ей всю свою карьеру. Поэтому давайте пройдёмся по тому, что хорошо, а что плохо.
▍Плюсы
▍Минусы
Где нужен?
В отличие от разработчиков, тестировщик нужен не во всех компаниях, где выпускается хоть какое-то средство автоматизации или приложение (а зря! Но это решение самих компаний). Однако абсолютно точно тестировщики всех уровней нужны в ряде компаний.
Средняя заработная плата
Заработную плату будем смотреть на «Хабр Карьере». Возьмём данные за второе полугодие 2019 года, вне зависимости от владения тем или иным стеком.
Для специалистов ручного тестирования:
Уровень специалиста | Средняя заработная плата |
---|---|
Стажёр (Intern) | 33 333 руб. |
Младший (Junior) | 44 024 руб. |
Средний (Middle) | 68 031 руб. |
Старший (Senior) | 107 203 руб. |
Ведущий (Lead) | 146 428 руб. |
Уровень специалиста | Средняя заработная плата |
---|---|
Стажёр (Intern) | 36 366 руб. |
Младший (Junior) | 61 486 руб. |
Средний (Middle) | 88 246 руб. |
Старший (Senior) | 131 222 руб. |
Ведущий (Lead) | 201 461 руб. |
Как видите, есть все основания для того, чтобы развиваться и переходить на новый уровень тестирования.
Базовые требования к профессионалу
В этот раз таблиц с наиболее часто упомянутыми технологиями не будет, потому что методологии и инструменты тестирования от компании к компании могут здорово отличаться. Рассмотрим те навыки, без которых карьера ну совсем не получится (обратите внимание — вы их можете приобрести в ходе работы, иметь их на старте круто, но совсем не обязательно).
Кстати, если у вас совсем нет опыта, но есть немного времени, чтобы параллельно с учёбой подготовиться к будущей работе тестировщиком, у меня для вас есть три лайфхака.
Важные личные качества
В принципе, тестировщик может быть интровертом или экстравертом, геймером или ролевиком, добрым или не очень. Коммуникативные навыки играют в команде определённую роль, но в целом хватит общей адекватности и умения выражать свои мысли. В тестировании нужны другие, более тонкие настройки личности.
Необходимость знания иностранных языков
Пожалуй, инженер по тестированию — редкий вид специализации в ИТ, где можно знать язык исключительно на уровне команд инструментов. Это связано с двумя важными особенностями:
У меня был пример, когда понадобился тестировщик со знанием японского и отдельно — со знанием немецкого в том числе для работы с клиентами (удалённо). Так вот, нашли, обучили и дали зарплату выше разработчиков в компании. Потому что специалисты уникальные. Они и сейчас не пропали 🙂
Где учиться
Базовый курс тестирования программного обеспечения есть на профильных специальностях в вузе, есть курсы в корпоративных университетах и отдельные курсы внутри компаний.
Принципиального обучения на инженера по тестированию в России не существует.
Пожалуй, именно для обучения тестированию я впервые из нашей серии «Профессия» выделю онлайн-курсы: они действительно могут ввести в курс дела, обучить принципам тестирования, научить находить, видеть и фиксировать баги и т.д. Для новичка можно найти приемлемый вариант и пройти его — это вам даст уверенность на собеседовании и задел знаний в первое время работы.
Лучшее обучение в этой сфере — пройти путь от стажёра до миддла или сеньора в компаниях. На фоне усилий по самообразованию — вообще идеально. Как правило, после первого полученного опыта в компании устроиться тестировщиком в другие довольно легко. Главное найти заветную первую практику 🙂
Лучшие книги и средства обучения
▍Книги
▍Онлайн-обучение
▍Полезные статьи на Хабре о самой профессии
▍Тусовки тестировщиков
К слову, если я скептически отношусь к конференциям по разработке, то конференции, митапы, фестивали и встречи тестировщиков рекомендую посещать и внимательно знакомиться с программой — вы можете заполучить себе в арсенал очень интересные находки и методики.
▍Википедия
Тестирование программного обеспечения — отличная статья в Википедии, которая разом познакомит вас с будущими задачами в профессии. Отдаю ей дань как самому первому источнику моих знаний о тестировании. Кстати, тогда она была гораздо скромнее.
Будущее тестировщика
Кроме стандартного пути внутри тестирования (от стажёра к лиду), есть несколько наиболее вероятных путей развития карьеры тестировщика.
Мифы профессии
▍Тестировщики — «низшая каста» ИТ-отрасли
Вот сейчас обидно было. Или это как у ВДВ, но «не кодил — не айтишник»? Отдел тестирования — это по сути настоящий отдел контроля качества, который не позволит компании опозориться перед клиентом (если где-то упадёт навороченный костыль, хе-хе), вовремя определит явные ошибки UI/UX, проверит внутреннюю логику работы приложения или сервиса. Комплексная работа тестировщиков всех ИТ-компаний мира обеспечивает определённый уровень качества и сохраняет миллионы денег компаний, которые могли бы потеряться на жалобах конечных пользователей на бесконечные баги.
Тестировщики — это полноценные, сильные ИТ-специалисты, которые отличаются комплексным подходом к ПО и АПК, глубоким знанием продукта и умением видеть неочевидные взаимосвязи внутри разработок.
▍Тестирование — это просто поиск ошибок
Нет. Тестирование — это сложный сквозной процесс работы с продуктом, его аппаратным и программным окружением, а также с документацией. Найти баг — очень малое дело, а вот проанализировать, воспроизвести, собрать всю информацию, снять дампы, составить тест-план и автоматизировать рутинные задачи, пустить нагрузку и т.д. это уже сложная, многопрофильная работа.
▍Тестировщикам мало платят
На первых порах это действительно не самая оплачиваемая работа. Согласитесь, компании обидно платить сотруднику, который по большей части учится. Но постепенно заработная плата растёт и дальше зависит от компании: когда я работал, я получал всего на 3 тыс. руб. меньше разработчика своего уровня (middle), но я знаю компании, где тестировщики получают и больше, и меньше, чем разработчики. Многое зависит от профиля деятельности компании и скиллов тестировщика. Понятное дело, что автоматизатор будет стоить дороже. Но формулировка «мало платят» точно не про тестирование.
▍Не применяются технические навыки
Я уже выше перечислил примерные действия тестировщиков, и все они строго инженерные. Хоть в тестирование можно попасть и без технического образования, работать без технического бэкграунда не получится: вы либо шустро всему научитесь, либо пойдёте в нетехнические отделы, потому что «голый гуманитарий» — горе в отделе QA. Да, на каком-то этапе от вас не потребуется глубокое владение языками программирования (но вы же запомнили, что тестировщики со знанием разработки выше ценятся?), но инженерные, админские и общетехнические знания вам ох как пригодятся. Вы их будете использовать буквально каждый день.
Главный совет
Здесь не будет совета, их в статье и так хватает. Я расскажу, что самое страшное в профессии тестировщика. Вот такое страшное, что до мурашек и головокружения. Самый первый самостоятельный заход на тестирование. Ты сидишь, проводишь тесты и ставишь passed, passed, passed… И ни одного, даже самого малюсенького, самого глупого и минорного бага! И ты боишься, что в тебе нет этого — видеть ошибки, отвечать за качество, находить что-то, что пошло не так. И какое же это счастье, когда находится он, первый, первая странность в заголовке пакета или первое слово интерфейса с опечаткой.
Потом у тебя будут мажоры, критикалы и блокирующие баги, ты будешь со всей важностью не только заводить баг, но и топать по коридору к разработчикам, чтобы высказать всё о найденной ошибке. Но ты никогда в жизни не забудешь тот самый первый баг, который откроет двери в мир тестирования и ответственности за качество.
Друзья, а вы прошли через работу в тестировании? Каким он был, ваш первый баг или самый глупый, смешной, может, даже страшный? Время жутких историй!
Кто такой тестировщик и чем он отличается от QA-инженера
Тестировщик – это квалифицированный специалист, занимающийся тестированием мобильных приложений, десктопных программ, веб-приложений и другого софта до его официального выхода. В ходе работы тестировщик проверяет наличие ошибок, находит уязвимости, смотрит, адаптировано ли приложение под разные устройства, и выполняет много других операций.
Тестирование приложений – это не просто «потыкать» кнопки и понять, хорошо ли все работает. Это та деятельность, в которой задействуются навыки из сферы IT, дизайна и даже продуктового менеджмента.
Почему быть тестировщиком не так просто, чем занимается этот специалист и как им стать – поговорим в сегодняшней статье.
В конце материала вас ждет небольшой тест, который покажет, сможете ли вы стать хорошим тестировщиком.
Что делает тестировщик
Тестировщик ПО старается найти все возможные ошибки, которые могут возникнуть у пользователя при взаимодействии с продуктом. Например, при работе с поисковой строкой проверяются все сценарии: вводится лимитное число символов на разных языках, проверяется ввод «нетипичных» знаков и так далее.
На первый взгляд кажется, что тестировщик работает с продуктом как обычный пользователь, но это не совсем так. Перед началом работы тестировщик составляет план действий, а также определяется с методами, которые будет использовать для тестирования предстоящего продукта.
Вместе с этим тестировщик взаимодействует с аналитиком, который составляет сценарий, что должно произойти после тестирования определенного этапа. Например, какие данные должны быть на входе, как они обрабатываются и так далее. Тестировщик на основе этого «идет» по продукту и составляет отчет. Выглядеть он может так:
Иногда даже детальная проверка не помогает найти все ошибки, поэтому тестировщикам приходится думать над различными ситуациями, способными «поломать программу». В таком процессе задействуются творческие и аналитические способности, которыми хорошо должен обладать тестировщик.
Кто такое мануальщики и автотестеры
Тестировщиков принято разделять на мануальщиков и автотестеров. Первые находят все ошибки вручную, вторые разрабатывают специальные программы, которые выполняют все действия автоматически.
На практике такого разделения, как правило, нет. Профессиональный тестировщик выполняет работу и за мануальщика, и за автотестера. Если речь идет только о мануальщике, то обычно такие специалисты стараются освоить языки программирования, чтобы не выполнять множество одинаковых действий. Автотестеры напротив стараются избегать ручного тестирования, но в любой момент могут пойти и «потыкать» программу без дополнительного ПО.
Также иногда выделяют дополнительные роли, например security-тестировщика, который занимается проверкой систем безопасности. BI (business intelligence) – тестировщик, работающий с большими объемами данных. В некоторых компаниях есть целые отделы performance-тестирования – контроля производительности ПО и нагрузок на приложения. Usability-тестировщики проверяют, насколько продукт удобен в использовании и привлекателен для пользователя.
В большинстве крупных проектов не обойтись без автоматизации, поэтому, если вы планируете стать тестировщиком, потребуется изучить программирование – сейчас без этого никуда.
Чем тестировщик отличается от QA-специалиста
QA (от англ. Quality Assuranse) представляет собой совокупность мероприятий, охватывающих все этапы разработки, выпуска и эксплуатации программного обеспечения. Это активности на всех этапах жизненного цикла ПО, которые предпринимаются для обеспечения требуемого уровня качества выпускаемого продукта.
В чем же состоят различия между QA и тестировщиком подробнее рассмотрим в сравнительной таблице:
Фокусируется по большей части на процессах и средствах, чем на самом тестировании продукта
Фокусируется на тестировании продукта
Подмножество процессов Software Test Life Cycle – цикла тестирования ПО
Подмножество процессов QC
Обратите внимание, что из всего этого у нас вытекает еще одно определение. QC (от англ. Quality Assurance) – процесс проверки качества, который обеспечивает соответствие продукта ранее установленным требованиям. Другими словами, это процесс, который обеспечивает ожидаемое качество продукта.
QC фокусируется на тестировании путем выполнения программ с целью определения дефектов с использованием утвержденных процессов и средств. Вместе с этим он является подмножеством QA.
Тестирование – это часть QC, а QC – часть QA.
QA обеспечивает правильность процесса, а QC предполагает контроль соблюдения требований. Тестировщик же, напротив, обеспечивает сбор данных, которые вносятся в документы, созданные в ходе работы QC.
Может ли новичок стать тестировщиком
Работа тестировщиком – это чаще всего не про человека с техническим образованием, но, конечно, после получения «вышки» будет проще войти в сферу тестировщиков. Практика показывает, что порог входа в тестировщики довольно низкий, и стать им может кто угодно, главное – это желание. Об этом говорит глава департамента обеспечения качества ПО Veeam Softwar Игорь Кацев в своем интервью для hh.ru.
Также на сайте Software-Testing был проведен опрос среди тестировщиков, в ходе которого выяснилось, что образование тестеров разнится от людей без диплома до людей с двумя высшими образованиями: это и технари, и гуманитарии, и экономисты, и даже юристы.
Вот так выглядит статистика образования тестировщиков:
Востребована ли сейчас профессия тестировщика
Профессия тестировщика будет востребована, пока будет жить IT. Сейчас невозможно представить ни одну компанию без профессионального тестировщика, и здесь не так важно, крупная это компания или какой-то небольшой стартап. Без качественного тестирования ни один продукт не продержится долго на рынке: в один момент «полезут» баги, а вместе с ними начнут уходить клиенты.
Значимые площадки для поиска работы подтверждают популярность тестировщика:
Стоит также отметить, что мануальщиков берут на работу в крайне редких случаях. Большинству компаний нужны специалисты, которые умеют работать с кодом. В то же время мало кому нужны тестировщики, не умеющие вручную проводить тестирование. Как мы уже говорили выше, всем нужны универсальные солдаты, которые могут и писать код, и проверять все своими руками.
Также тестировщик может работать и на фрилансе. Таких заказов, конечно, не так много, но если постараться, то можно хорошо себя зарекомендовать и совмещать, например, тестирование приложений с основной работой.
На какую зарплату можно рассчитывать
Тестировщик
В зависимости от региона зарплата может сильно отличаться. Например, в Москве заработная плата может доходить до 150 000 рублей, тогда как в регионах она не превышает 75 000 рублей.
Изучить зарплату тестировщика по России вы можете на сайте trud.com.
QA-инженер
По данным hh.ru, зарплата QA начинается от 75 000 рублей и доходит до 360 000 и выше.
Как и куда развиваться тестировщику
Развитие тестировщика – это дорога со множеством путей. Некоторые становятся тестировщиками, чтобы в последующем уйти в более интересное звено, например в разработку. Другие концентрируются на тестировании и из «малышей» за несколько лет вырастают в мидлов, которые самостоятельно составляют тест-кейсы и прописывают всю необходимую документацию.
Следом за мидлами идет должность старшего специалиста, в которую входит планирование работы по тестированию и контроль младших специалистов.
Когда специалист перерастает в человека, который повидал все и досконально знает, как проводить тестирование IT-продукта, он становится тимлидом – руководителем команды тестировщиков.
Таким образом, происходит карьерный рост тестировщиков различных продуктов. Время получения той или иной квалификации в большинстве случае зависит от человека: как он себя проявляет, насколько ему это интересно и так далее.
Тестировщик – каким он должен быть?
Если вы планируете стать тестировщиком, то вот список личных качеств, который должен хотя бы частично характеризовать вас:
Самое главное – это, конечно же, гореть своим делом. Если вы просто хотите стать тестировщиком, потому что там много платят, то это ни к чему не приведет.
Что должен знать тестировщик
Базовый набор скиллов тестировщика включает в себя:
Дополнительно к этому следует изучить инструменты для ручного и автоматического тестирования:
Также потребуется знание английского языка, без него, к сожалению, сегодня никуда. Он пригодится для чтения и заполнения технической документации.
Плюсы и минусы профессии
Как и в любой сфере, у тестировщика есть свои плюсы и минусы. Из плюсов можно выделить следующее:
Из минусов можно выделить:
Также стоит учитывать, что тестировщик – это обширная профессия, которая требует знаний во многих сферах: программировании, архитектуре приложений, дизайне.
Где учиться на тестировщика
Есть три варианта: изучить все навыки самостоятельно, окончить университет или пройти онлайн-курсы.
В первом случае все полностью бесплатно и в ваших руках, но это довольно долгий путь, закончить который по силам не всем. Потребуется изучить много документации, учебников, форумов, обучающих видеоуроков на YouTube. Базовые знания вы, конечно, сможете получить довольно быстро, но вот хватит ли их для получения работы – тут все зависит от вас. Может быть, вам повезет, и вас возьмут стажером.
Второй путь – университет, этот путь тоже долгий, и далеко не все его проходят до конца. Однако на таком пути вы получите навыки не только тестировщика, но и квалифицированного инженера, программиста. На сайте postupi.online представлено более 180 вузов России, где можно отучиться на тестировщика.
И третий путь – пройти онлайн-курсы. Это довольно короткая дорога, однако не такая радужная, как казалось бы. Во-первых, курсы могут быть крайне плохими. Вы получите сертификат, но особых знаний не будет, что бывает довольно часто. Во-вторых, сертификат онлайн-курсов, как правило, ничего не значит, так как получить его может каждый, поэтому плюсов в этом перед работодателем практически не будет.
Заключение
Профессия тестировщика – это отличный выбор для тех, кто хочет уйти в IT-сферу. Глубоких знаний на начальном этапе не потребуется, но нужно будет много учиться.
А вот если вы планируете стать QA-инженером, то здесь базовых знаний не хватит. Потребуется сначала поработать тестировщиком, чтобы полностью углубиться в сферу QA.
Гостем нового выпуска подкаста «Быть» стал Ваня Морщагин, руководитель QA-направления в Timeweb. В видео вы узнаете, чем тестировщик отличается от QA-инженера, какие ветки развития есть в quality assurance в целом, нужен ли вуз и куда можно расти из QA. Послушать подкаст можно на Apple Podcasts, Яндекс.Музыка и Spotify.
А теперь пришло время пройти небольшой тест на профориентацию 🙂
Образ современного тестировщика. Что нужно знать и уметь
Бытует мнение, что простейший путь к IT лежит через тестирование. Мол, знать ничего не нужно, уметь и подавно, достаточно желания и готовности не сильно щуриться от боли и слёз, когда тебе прилетает очередной набор тест-кейсов для регрессионного тестирования.
Отчасти это даже правда, но, скорее, для ситуации, которая была на рынке лет 10 назад. Сейчас же всё обстоит несколько иначе. Причин для этого масса, и они самые разные. Если отметить ключевые, то, пожалуй, это:
Возросшие требования к тестировщикам, их знаниям и квалификации, так как всё чаще решаются задачи чуть сложнее, чем «клик-клик — и в продакшен». Работа тестировщиков становится всё более «инженерной», требует технической подкованности, специфических знаний, навыков и компетенций. Тестировщики всё чаще становится QA-инженерами (кто в теме, тот понимает разницу).
Возросшее предложение на рынке, когда толпы вчерашних «гражданских» ринулись в пучину IT, подогреваемые обилием информации: от конференций и книг до статей и курсов по тестированию ПО. Ваш покорный слуга в своё время также приложил руку к созданию пары общедоступных курсов по причине желания тиражировать базовые вещи из своей профессиональной области (посмотреть можно, например, здесь)
Поэтому сегодня всё реже можно полагаться исключительно на морально-волевые качества для входа в IT в свете возросших аппетитов рынка и обилия конференций, курсов, тренингов, литературы, статей и прочих информационных источников, которые находятся на расстоянии вытянутой руки начинающих специалистов.
Безусловно, всё больше компаний стараются выращивать специалистов у себя под крылом, осыпая счастливчиков новыми знаниями и навыками, заодно повышая лояльность к компании. Однако и в этом случае перед компаниями и их специалистами встают животрепещущие и острые вопросы…
Как не потеряться в многообразии информации, которой наполнен интернет и мир вокруг?
Что учить самим или чему учить своих бойцов?
В своей статье я постараюсь в общих чертах рассказать, что нужно знать и уметь, чтобы работать специалистом в области обеспечения качества в наиболее популярных и востребованных направлениях. Поехали!
Нижепредставленные специальности составляют преобладающую долю рынка спроса и предложения тестировщиков, а потому (и ввиду отсутствия достаточного и актуального опыта работы) в статье, увы, не будет разделов про perfomance и десктоп-специализации.
Материал для этой статьи базируется на собственном опыте работы с блестящими специалистами моих команд, на результатах преподавания в МГУ, МГТУ и онлайн-курса, а также на сотнях проведённых собеседований и десятках нанятых QA-специалистов разных профилей. Не претендую на исключительную правоту своего взгляда, однако считаю, что мой опыт позволяет моей точке зрения быть достаточно компетентной.
Черты характера
Было бы странно полагать, что с возросшими требованиями к техническим аспектам работы тестировщиков значимость личностных качеств уменьшилась или исчезла вовсе. Более того, я уверен, что черты характера лежат в основе успешного специалиста и имеют решающее значение при схожих знаниях и навыках. Ведь мы работаем не с human-интерфейсами к Stack Overflow и Википедии, а с живыми людьми, которые остаются таковыми и в офисе, и дома. Поэтому так важно учитывать качества личности в контексте предстоящего выбора отрасли, профессии и специальности в ней.
Почему я так считаю? Всё очень просто! Я легко могу отправить специалиста на курсы или конференцию, заказать книги или провести тренинги по нюансам тест-дизайна, языкам программирования, SQL, сетям и прочим техническим аспектам, чтобы через некоторое время получить первые результаты и в дальнейшем приумножать их, закрепляя полученную информацию на практике. Однако нельзя отправить на курс «Как перестать бегать за офисными плюшками и начать инвестировать в собственные знания», «Как перестать быть безответственным вруном и начать жить честно», «Как перестать быть серой мышью и стать увлечёным человеком», «Как перестать ненавидеть людей и научиться работать в команде» и рассчитывать на ощутимый результат после прослушивания. Увы, это правда жизни, внутреннее несогласие с которой позволяет широкому пласту «инфобизнесменов» зарабатывать на непокорных, жаждущих изменить свои фундаментальные столпы и черты характера единичным тренингом или серий онлайн-вебинаров. Именно поэтому так важно обладать на старте правильной жизненной мотивацией и качествами для работы в IT и в QA в частности. Итак, что же важно?
Мотивация учиться и склонность к самообучению
Честно ответьте себе на вопрос: нравится ли вам учиться? Не разово, а на постоянной основе. Готовы к единственному прыжку, который волшебным образом выведет вас «в дамки», или страстно желаете ежечасно и ежеминутно впитывать в себя новые знания? IT — это сфера, где достаточно неудачно моргнуть, и вы уже на обочине индустрии. Не стоит рассчитывать, что прочитав за год книгу по тестированию, вы раскроете для себя врата в дивный мир новых знаний, которые позволят вам быть в тренде на десятилетие вперёд. Идеально, если для учёбы вам не всегда нужен мудрый наставник и учитель и вы в состоянии самостоятельно усадить себя за новую книгу, вебинар или курсы.
Ответственность
Оцените свой уровень ответственности. Простой способ: озвучьте для начала сами себе несколько своих самых крупных ошибок в жизни. Не получается? Речь не о вашей безупречности, вспомните, что не ошибается только тот, кто ничего не делает. Вспомнили? Если только пару мелочей, то это грустный показатель. Хуже только, если вспомнив ошибки прошлого, вы тут же внутренне обвинили в них кого-то другого или обстоятельства, а не признали свою ответственность за произошедшее. А вот если вы вспомнили парочку крупных фейлов, где виноваты были именно вы, да ещё и вспомнили как их исправили, то дела с вашей ответственностью обстоят сильно лучше. Вышка — это когда вы не только исправили ошибку, но и застраховались от неё на будущее так, чтобы она не повторялась. Ответственный подход к работе — залог успешной карьеры в любой области, а потому и для тестировщика это крайне важная черта. Главное — не перегибать и знать меру, ведь гиперответственность — не всегда хорошо.
Увлечённость
Вы увлечённый человек? Вот честно, чем вы увлекаетесь? Ничем особенным? Или это много мелких хобби, которыми вы занимаетесь раз в год? Может, что-то большое, но времени постоянно не хватает, а потому хобби ждёт лучших времен. Человек остаётся человеком и в офисе, и когда выходит из него. И если человек действительно увлечён чем-то в обычной жизни, значит, и в работе его можно чем-то увлечь настолько, что он будет засиживаться вечерами или изучать вопрос на выходных по собственной инициативе. Задача грамотного руководителя и самого специалиста — найти такие задачи. Конечно, важно при этом доводить начатое до логического завершения и не бросать на полпути. Тестировщик не может быть «сухарём». А вот если он горит своей работой и продуктом, то результативность такого сотрудника будет выше.
Гибкость поведения
Важная черта для работы в современных IT-компаниях и в QA в частности — это гибкость. Новые знания и веяния приходят со скоростью ветров Юпитера, устоять в стиле Гендальфа Серого «Ты не пройдёшь!» перед индустрией крайне сложно и не всегда целесообразно. А потому довольно важно уметь подстраиваться под новые условия работы, будь то генеральная линия компании, новые продукты, команда, методологии работы или инструменты. Чем гибче сотрудник, тем больше шансов у него карьерно развиваться в IT.
Коммуникабельность и контактность
Без сомнений, можно быть успешным специалистом, будучи довольно замкнутым, но при этом глубоко погружённым в свою задачу, однако научиться чему-то новому и обучить окружающих больше шансов у общительного и контактного человека. Необязательно каждому быть великим оратором и публично выступать на мероприятиях, но важно уметь находить общий язык с коллегами, грамотно изъяснять свои мысли устно и письменно. В работе тестировщика это довольно важные черты, ведь общаться нужно много и часто, и чем больше вы про QA, тем глубже и детальнее вы погружаетесь в смежные сферы, где умение выстроить коммуникацию — половина успеха.
Командность
Тестировщику необходимо быть командным игроком. Неважно, работаете вы в сервисной модели тестирования или тестировщики интегрируются внутрь каждой команды. Очень важно, чтобы вы давали «чувство плеча» своей команде, чтобы они могли положиться на вас, а вы на них. Один в поле не воин — для тестировщиков это ещё и история про дальнейший рост в карьере. Ведь именно команда, как ваше ближайшее окружение, является первостепенным источником знаний, которые вы будете получать о продукте, процессах и технологиях. Если вы командный игрок, то в тестировании вы добьётесь бóльших успехов, чем одиночка.
Инициативность и решительность
Как известно, под лежачий камень вода не течёт, а потому инертность выйдет вам боком и в профессии тестировщика. Хороший тестировщик — проактивный, не ждёт пинка от коллег и руководителя, а сам приходит с новыми решениями и предложениями. Если тестировщику один раз сказали «это не баг, а фича», то он не должен опускать руки. Вместо этого надо брать инициативу и излагать свою точку зрения. Безусловно, не стоит впадать в крайности и спорить по любому поводу, но и соглашаться со всем, что скажут, не стоит. В основе работы хорошего тестировщика не только критическое мышление, подвергающее проверке на прочность окружающий мир, но и умение в нужный момент сформировать собственную позицию и отстоять её перед окружающими.
Этот список можно ещё продолжать и дополнять, я выделил ключевые черты на основе собственного опыта. Безусловно, речь не идёт о том, что если у вас нет этих качеств, то вы профнепригодны. Но можно с уверенностью утверждать, что чем меньше из заявленных качеств будет в вас, тем будет сложнее и вам самим, и вашей команде, и вашему руководителю. Любые исключения допускаются, что лишь подтверждает правило.
Основы тестирования
Нижеперечисленные знания и навыки нужны абсолютно любому тестировщику вне зависимости от его специализации. Эти вещи — основа основ, учатся быстро и легко, особенно если тут же закрепляются практикой. Настоятельно рекомендую всем без исключения начинающим специалистам погрузиться в заявленные ниже темы. Вооружившись этими знаниями, вы сможете открыть для себя бескрайний мир тестирования ПО, со временем освоив любое из направлений, но знания, заложенные в фундамент, останутся востребованными всегда.
Классификация видов тестирования
Даже начинающий тестировщик должен иметь базовые представления о различных видах тестирования, когда они используются и для чего. Это сухая теория, которая сама по себе не нужна, но без неё «класть поверх» практику может быть мучительно больно и долго, а попутно ещё и велосипедов выдумаете, да граблей известных соберёте. Не ленитесь, ознакомьтесь, благо источников уйма. Зато потом с лёгкостью сможете на собеседованиях проходить задачки уровня «протестируйте карандаш».
Локализация ошибок и багрепортинг
Мало ошибку найти. Крайне важно ошибку нужным образом локализовать, установив как можно больше обстоятельств и условий для её стабильного воспроизведения. Более того, необходимо обрести навык составления качественных баг-репортов. На своих лекциях и при работе с командой я часто использую следующее сравнение: «Ваш баг-репорт хороший в том случае, если вы вышли на улицу, взяли за руку первую попавшуюся бабушку, и она смогла воспроизвести дефект по вашему описанию или верифицировать его отсутствие».
Техники тест-дизайна
Базовые вещи, которые часто в том или ином виде проверяют на собеседованиях или в домашних заданиях, давая задачки уровня «протестируйте форму для ввода чисел» и «напишите автотесты на нашу форму авторизации». Важно не просто зазубрить, что такое «классы эквивалентности» или «анализ граничных значений», но и уметь использовать различные техники в любых условиях, комбинируя их.
Системы баг-трекинга, управления знаниями и тестами
Канули в небытие те времена, когда баг-репорты писали на листах, а тестовую документацию, чек-листы и тест-кейсы вели в гугл-доках (да-да, я знаю, что некоторые до сих пор пишут, и иногда это даже удобно). На смену этому самопалу пришли профессиональные инструменты — баг-трекинговые системы (из наиболее популярных стоит отметить Jira, Redmine), системы управления знаниями (Confluence, Wiki и другие) и системы управления тест-кейсами (TestRail, Zephyr, TestLink и т.д.). Базовые принципы работы с инструментами можно получить, вписываясь в открытые программы бета-тестирования или установив софт самостоятельно (на рынке есть как бесплатные решения, так и условно-бесплатные в масштабе ознакомительных сессий).
Методологии разработки ПО
Глубокого понимания методологий разработки ПО на начальных этапах тестировщику, может, и не потребуется, важно хотя бы на пальцах понимать отличия наиболее популярных (Waterfall, Scrum и Kanban). Но со временем ему придётся погружаться всё глубже и глубже в методологии, подбирая соответствующие подходы и техники при тестировании в контексте того или иного процесса разработки. Важно быть готовым к такому и уделять определённое внимание этой стороне вопроса.
Клиент-серверная архитектура
Большинство современного ПО строится на китах клиент-серверного взаимодействия. Тестировщику важно быть в контексте этой архитектуры, понимать принципы её работы, основные преимущества и недостатки. Это позволит не только лучше проводить испытания в ходе своей работы, но и при необходимости понимать, каким образом найденные дефекты нужно локализовывать, правильно определяя, на чьей они стороне.
Операционные системы
Принципы работы операционных систем, что они из себя представляют и какие вообще бывают — общие знания, которые, как правило, упрощают жизнь тестировщика. Даже понимание трендов замещения десктопных ОС мобильными, а также владение навыками работы с ОС на уровне пользователя уже плюс. А если погружаться в этот вопрос глубже, то со временем необходимо будет обзавестись навыками настройки и использования целой плеяды ОС (из самых популярных стоит отметить Android, Windows, iOS, macOS, Linux).
Клиентское тестирование веб-приложений
Один из наиболее простых и распространённых способов попасть в тестирование — начать тестировать веб-приложения. Эта специализация — одна из самых распространённых на рынке, однако ей на пятки вовсю наступает направление клиентского тестирования мобильных приложений. В любом случае нужно понимать, что такой вектор развития — один из наиболее доступных в самом начале карьеры. По этой тематике есть масса обучающих материалов и статей. При желании потом можно развиваться в любом другом направлении, чаще всего это автоматизация или всё те же мобильные устройства (например, после освоения тестирования веб-приложений под мобильные устройства).
Браузеры
В контексте клиентского тестирования веба важно понимать устройство тонких клиентов, браузеров в частности, а также их отличия, специфику рендеринга и работы скриптов, движков под капотом, версионности, дополнительного инструментария браузеров и т.д. Тестировщику важно всегда держать в голове популярность использования того или иного браузера у реальных пользователей продукта, чтобы распределять тесты наиболее эффективным способом. Самые популярные: Google Chrome, Safari, Firefox, Opera, Internet Explorer.
Консоль разработчика в браузере
Веб-тестировщик должен уметь пользоваться консолью разработчика в браузере (как минимум работать с элементами на странице и сетевыми запросами). В случае работы с элементами страницы тестировщик должен понимать, как локализовать их или при необходимости изменить, а в случае с сетевым взаимодействием — уметь разбираться в последовательности запросов и полученных ответов. В идеале нужно знать различные http-методы (GET, POST, OPTIONS и другие), знать коды ответов (10Х-50Х), уметь читать заголовки и тела ответов.
HTML, CSS, JavaScript
Чтобы тестировщик лучше понимал, из чего состоят и как устроены современные веб-страницы, будет крайне полезно иметь хотя бы базовое представление о HTML, CSS, JavaScript. Эти знания также помогут локализовывать ошибки, связанные с конкретными элементами на странице, быстро находить их и при необходимости менять на клиентской стороне.
Бэкенд-тестирование
Отдельная вселенная — это бэкенд-тестирование. Этот мир лишён рюшек и красивостей, в нём нет места графическим интерфейсам, только мерцающий курсор в консоли, горы текста и чистая логика приложений. Специфическое направление тестирования, которое не всегда легко даётся новичкам. Обычно требует более тщательной технической подготовки специалиста на старте.
Модель OSI
Базис, с которого стоит начинать бэкенд-тестировщику, — это модель OSI. Несмотря на то, что в большинстве случаев тестировщику вряд ли пригодятся уровни ниже прикладного и представительского, будет неплохо, если он будет понимать, где находятся эти уровни относительно других, в чём их специфика и как они применяются.
REST. SOAP. JSON-RPC
REST, как архитектурный стиль клиент-серверного взаимодействия, лежит в основе современного интернета. Понимание требований к REST-архитектуре должно быть в арсенале знаний бэкенд-тестировщиков, равно как и знания о стандартах, используемых в нём (HTTP, JSON, XML). В отдельно взятых направлениях не менее важным может оказаться знание протоколов SOAP (а вместе с ним XML, XSD, WSDL) и JSON/XML-RPC, их возможностей и ограничений.
Командная строка
Без навыков владения командной строкой бэкенд-тестировщик не сможет обойтись в большинстве случаев. На начальном этапе достаточно будет базовых вещей в духе работы с папками и файлами, их создания, чтения, перемещения и т.п. Эти знания позволят тестировщику, например, работать с серверными логами для локализации дефектов. А со временем вы уже не сможете обходиться и без bash-скриптов, работы с файловыми дескрипторами, конвейерами и регулярками.
cURL. Postman. SoapUI
Для тестирования REST API на стартовом уровне отлично подойдёт утилита командной строки cURL, которая позволит тестировщику отправлять тестовые запросы и получать ответы, разбирать их и сравнивать фактический результат с ожидаемым. Более продвинутым и одновременно более казуальным (за счёт наличия GUI) инструментом тестирования API является Postman, навыки использования которого также весьма полезны. А если нужно тестировать SOAP API, то идеально подойдёт инструмент SoapUI (на самом деле с ним можно тестировать и REST API).
Базы данных
Тестировщику важно знать и уметь работать с СУБД, в первую очередь с SQL (MariaDB, MySQL, PostgreSQL, MS SQL). И наиболее востребованным является знание SQL. Очень часто в описании вакансий есть упоминания про этот навык, который звучит как «Знание SQL на уровне простых запросов». Как правило, для начала достаточно знать базовые вещи уровня INSERT, SELECT, DELETE, UPDATE, WHERE, ORDER BY, в некоторых случаях нужны JOIN, INNER JOIN, RIGHT JOIN, LEFT JOIN. Кроме того, несомненным плюсом будут знания и навыки работы с NoSQL БД (MongoDB, Cassandra). Они позволят тестировщику сверять ожидаемые и фактические результаты в ходе выполнения тестов при работы с данными.
Клиентское тестирование мобильных-приложений
Молодое и, пожалуй, самое популярное направление в тестировании. Оно наименее исследовано, здесь не так много устоявшихся канонов, сильнейшие флуктуации то и дело охватывают эту специализацию. С одной стороны, это довольно простое для освоения направление на первых порах, с другой — требует от тестировщика быть постоянно на острие трендов, знаний и навыков, чтобы не вывалиться за обочину истории.
Для тестировщика мобильных приложений важно освоить на базовом уровне среду разработки (XCode для iOS, Android Studio для Android). Знания этих инструментов позволяют осуществлять локальные сборки приложений, при необходимости и с помощью разработчиков конфигурировать их под нужды тестирования, лучше локализовывать баги, читая клиентские логи, и даже работать с исходниками приложения. Кроме того, в IDE есть возможность запуска приложения через эмулятор, что может пригодиться тестировщику.
Инструменты мониторинга HTTP/HTTPS-трафика
Тестировщик обязан понимать клиент-серверную архитектуру и уметь локализовывать ошибки с её учётом. И если в тестировании веб-приложений для этого обычно хватает консоли разработчика, то для мобильных приложений нужно использовать специализированное ПО (Charles, Fiddler, Wireshark), которое позволит перехватывать и анализировать сетевые запросы. Т.е. с помощью этих инструментов в большинстве случаев можно довольно точно определить, на чьей стороне проблема. Более того, они позволяют подменять запросы, эмулируя то или иное поведение ПО (как со стороны клиента, так и со стороны сервера). Это нужно не только для локализации проблем, но и для проведения ряда испытаний в рамках тестирования приложения.
Сервисы дистрибуции мобильных приложений
Для тестирования разных версий приложений необходимо иметь базовые навыки работы с сервисами дистрибуции мобильных приложений, например, Fabric (Crashlytics), HockeyApp, TestFlight. Они позволяют не только получить нужные сборки для тестов, но и анализировать статистику использования, а также работать с падениями приложений, локализуя проблемы и выясняя их причины.
Автоматизация тестирования
Я не стал разграничивать автоматизацию тестирования по направлениям, выделив её в отдельную специализацию. Безусловно, есть ряд принципиальных различий между автоматизаторами тестирования веба, бэкенда и мобильных приложений, но в этом разделе мне хотелось бы консолидировать наиболее важные знания и навыки, которые востребованы инженерами по автоматизации тестирования вне зависимости от их специальности. Стоит отметить, что автоматизация тестирования сама по себе довольно сложна не только с технической точки зрения, но и с точки зрения практик тестирования. А потому настоятельно рекомендую смотреть в эту сторону, предварительно освоив не только общие моменты, но и одно из направлений, перечисленных выше. Если вы научитесь тестировать руками, вам будет проще и понятнее заниматься автоматизацией.
Язык программирования
Обилие языков программирования открывает перед тестировщиками широкие возможности для получения новых знаний и навыков для применения на практике. Выбрать из многообразия языков наиболее подходящий — непростая задача. Рекомендую руководствоваться тремя принципами.
Первый:
сложность обучения языкам — штука довольно относительная, ведь кому-то проще даётся модный стильно-молодёжный Python с динамической типизацией, а кому-то легче с жёстко типизированной и структурированной Java со статической типизацией. Важно попробовать и понять, твоё это или нет.
Второй:
ориентируйтесь на сообщество, у которого вы сможете обучиться языку. Это в равной степени может быть как внешнее комьюнити (форумы, курсы, тренинги и т.п.), так и внутреннее (коллеги по цеху тестирования или даже разработчики). Однако стоит помнить, что равняться исключительно на коммьюнити не стоит, особенно если речь идёт о разработчиках. Безусловно, они эксперты в области своего языка, но не стройте радужных иллюзий, что они начнут помогать вам писать функциональные автотесты на регулярной основе (это очень редкий кейс), да и в специфике тестирования они далеко не всегда могут быть столь же компетентными.
Третий:
ориентируйтесь на тестовые фреймворки и инструменты, которые используют в связке с языком программирования, и их популярность в среде тестировщиков. Это поможет вам в случае возникновения специфических проблем не остаться наедине с трудностями и найти поддержку на стороне.
На основе опыта последних лет самыми популярными языками в контексте тестирования я бы назвал Python, Java, PHP, а в мире мобильной разработки — нативные языки Kotlin, Objective-C и Swift.
Тестовые фреймворки
Дабы тестировщику не приходилось начинать автоматизацию с изобретения собственных велосипедов и чтобы, минимизировать встречу с граблями, автоматизаторы тестирования часто используют тестовые фреймворки (xUnit, nose, unittest, pytest, TestNG, Cucumber) в зависимости от языка, на котором пишут тесты. Важно освоить эти базовые фреймворки, чтобы сделать работу с тестами наиболее эффективной и удобной.
Драйверы и надстройки для автоматизации тестирования
Помимо тестового фреймворка специалисты по автоматизации тестирования должны использовать драйверы, которые позволяют взаимодействовать с приложением через программный интерфейс вместо графического. Без них не обойтись, если вы собираетесь автоматизировать клиентские приложения. Если вы собираетесь работать с вебом, то обязательно нужно изучить Selenium WebDriver, если с iOS — XCUITest, а для Android вам пригодятся Espresso и UI Automator (нативная поддержка от Google), вариативно — Robotium или Selendroid. Для пущего удобства используют надстройки, которые, с одной стороны, усложняют инструментарий специалиста по автоматизации, а с другой — дают дополнительные возможности. Особое внимание рекомендую тут уделить Appium и Cucumber.
Системы отчётности результатов автотестов
Какие бы автотесты вы ни писали, по завершению было бы неплохо иметь возможность получить отчёт о проведённом тестировании, да такой, чтобы не мельтешило в глазах от строчек текста. Наиболее популярной сейчас, пожалуй, можно назвать разработку отечественных коллег — Allure. Инструмент всё чаще используется для удобной визуализации результатов выполненных автотестов, в нём есть возможность группировки тестов по компонентам вашего приложения или задачам, в контексте реализации которых проводятся испытания.
Системы контроля версий
После того как вы напишете свой первый автотест, вам непременно захочется писать ещё и ещё, а затем модифицировать, ускоряя работу, расширяя логику, углубляя проверки, а потом и поделиться результатами с коллегами. Хранить каждую из версий ваших тестов локально, раскладывая по различным папкам, архаично, трудоёмко и неудобно. Поэтому логично перенимать лучшие практики от программистов и научиться пользоваться системами контроля версий. Из наиболее популярных стоит отметить Git, SVN, Mercurial, TFS. Замечу, что Git доминирует на рынке и при прочих равных стоит использовать именно его. На начальном этапе тестировщику потребуется знание того, что такое commit, push, pull (force), fetch, checkout, branch, merge, rebase, revert.
Системы непрерывной интеграции
Запустив свой первый автотест, вам непременно захочется делать это ещё и ещё, а со временем даже поделиться с кем-то этой возможностью. И тут на помощь придут инструменты непрерывной интеграции, такие как Jenkins, TeamCity, Bamboo. Скорее всего, у коллег-разработчиков есть свой CI-инструмент для сборки проектов, возможно, даже и для запуска unit-тестов. Чтобы примкнуть к ним со своими функциональными автотестами будет здорово, если вы будете понимать принципы работы этих инструментов. А если ничего подобного у коллег ещё нет, тогда вы будете первопроходцем и сможете делать удобные параметризированные запуски своих автотестов (на разных хостах, с разными данными и т.д.) по факту изменений, запросу или по расписанию.
Возврат инвестиций от автоматизации тестирования
Последним, но не наименее важным, является знание методики подсчёта возврата инвестиций от автоматизации тестирования. Речь идёт хотя бы о приближённом представлении, какие тесты стоит автоматизировать и поддерживать, а какие лучше даже не пытаться. Если коротко, то отталкивайтесь от важности функционала и тест-кейса, который вы собираетесь автоматизировать, закладывайте трудозатраты и сложность разработки автотеста, а также потенциальную потребность, частоту и сложность его обслуживания и поддержки. Ведь одно дело, когда речь о ключевом нативном функционале, на который написаны все элементы фреймворка и прогнозируются минимальные трудозатраты на поддержку автотеста, и совсем другой разговор, когда речь идёт об автотесте на экспериментальную фичу, которую раскатили на 1% аудитории, фреймворк ещё не поддерживает этот функционал, который вдобавок интегрируется с нестабильными внешними сервисами, да ещё и переделывать егособираются ближайшие пару месяцев. Уметь определять, когда писать автотест, а когда нет — важный навык для специалиста по автоматизации тестирования.
Управление командой тестирования
Помимо становления экспертом в области тестирования популярным путём развития современного тестировщика является рост вертикальный, в управленца командой тестирования. В идеальном кейсе управленец должен уметь делать то же самое, что и команда, которой он будет руководить, однако это не обязательно. Если при этом он будет в части вопросов компетентнее своей команды — ещё лучше, но вот что уж точно чрезмерно, так это абсолютное превосходство во всех вопросах. В конечном итоге, управление командой — это история про обмен опытом, знаниями и компетенциями. Какими же личностными и профессиональными качествами должен обладать хороший тимлид?
Лидерство
Я глубоко убеждён, что лидерство — прирождённое качество, недаром Генри Форд говорил: «Спрашивать, кто должен быть боссом, всё равно что спрашивать, кто должен быть тенором в этом квартете». Тем не менее, можно научиться лидерству. Ведь есть и обратное мнение, что лидерами не рождаются, а становятся. Безусловно, лидерские качества, есть в каждом из нас. Другое дело, что для одних руководить и воодушевлять людей —это дар и мана небесная, а для других — кошмар и адовые муки. Сложно себе представить, что кто-то из читателей сознательно выберет путь развития в управленцы, зная, что это будет приносить дискомфорт и неприятности. Всё-таки с желанием быть лидером у управленца значительно больше шансов на успех.
Решительность
Управленец должен уметь принимать решения. Кажется, что это очень просто, но люди часто сталкиваются с собственной нерешительностью. Когда речь идёт о серьёзных вещах, то некоторые люди и вовсе впадают в ступор, всячески оттягивая принятие решения, опасаясь ответственности и последствий. Для управленца это неприемлемо, поэтому ему важно развивать свою решительность, чётко понимая ситуации, когда действительно есть время для принятия решения, а когда нужно действовать здесь и сейчас.
Формирование команды
Умение работать с командой, формировать её, направлять и развивать — важные качества руководителя. Группа людей — ещё не команда. Изначально у них могут быть разные цели и задачи. Пока они не объединены идеей, не мотивированы и не жаждут плечом к плечу преодолевать трудности, они не могут быть командой. Задача хорошего руководителя — сплотить людей, склеить их, подбирая задачи и выставляя цели, которые будут приводить к формированию настоящей команды. Для этого потребуется и умение подбирать новых людей, и находить подход к своим сотрудникам, а при необходимости и с кем-то попрощаться. Вам надо научиться работать с разными людьми, развивая свои способности находить общий язык с командой, формировать её и развивать для эффективной совместной деятельности.
Планирование
Навык планирования нужен и рядовому специалисту, а для руководителя он становится необходим, как воздух. Ведь управленец распоряжается не только своим временным ресурсом, но рабочим временем целого подразделения, а потому должен уметь распределять его грамотно, вдумчиво и эффективно. На начальном этапе необходим как минимум уровень тактического планирования — на день, неделю, месяц. В конечном итоге руководитель должен научиться мыслить стратегически, ставить задачи не только на видимый горизонт событий, но и перешагивать за него. Это, несомненно, сложно, однако не значит, что этому не нужно учиться. Нужно! Особенно, если вы хотите стать хорошим руководителем.
Навык убеждения и ведения переговоров
Становясь руководителем, вы должны уметь отстаивать не только свою позицию, но и точку зрения вашего подразделения, лицом которого вы по сути являетесь. А это значит, что, во-первых, вы должны научиться убеждать в собственной точке зрения свой коллектив, а во-вторых, в некоторых ситуациях должны уметь принимать и отстаивать мнение своей команды. Вести переговоры от лица своих сотрудников — сложная задача, и получить этот навык автоматом не получится. Потому начинающему тимлиду стоит обратить внимание на прокачку этого навыка, а опытный и так уже знает, что без умения грамотно аргументировать и защищать свою позицию руководителю будет крайне сложно найти общий язык и внутри коллектива, и за его пределами.
Позитивное мышление и умение мотивировать
Итого
Итак, чтобы войти в IT через тестирование, знать нужно довольно-таки много, а чтобы развиваться и стать профессионалом — ещё больше. Важно понимать, что у вас всегда есть выбор — быть экспертом в определённой области с глубоким погружением в специальность или стать широкопрофильным специалистом. На рынке требуются и те, и другие, так как всё зависит от конкретной компании, принципов формирования команд и рабочих процессов. Если уверены, что вам это действительно интересно, и что эта дорога вам по зубам, смело ступайте по ней, впереди много удивительных открытий и новых знаний.
Еще раз хочу напомнить о важности определённого характера для работы в IT и тестировании в частности. Помните, что на курсы по языкам программирования и СУБД можно отправить любого, а вот на курсы по тяге к саморазвитию и увлечённости, которые бы позволили бы успешно пройти первые курсы, увы, отправить никого не получится.
Надеюсь, что статья оказалась полезной для тех, кто её прочитал, будь то новичок или опытный специалист, ведь выбор профессиональных линий развития в области тестирования достаточно велик, чтобы в нём слегка потеряться. Напомню, что вся эта история — in my humble opinion, а потому не судите строго и не забрасывайте тапками. Буду благодарен за конструктивную обратную связь.