Кто ищет ошибки в коде

#статьи

  • 8 фев 2021

  • 13

Кто такой тестировщик и как им стать с нуля

Разбираемся, кому подходит профессия и что нужно уметь QA-специалисту.

 vlada_maestro / shutterstock

Марина Демидова

Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.

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

Тем, кто не работал тестировщиком, кажется, что это очень просто: понажимал все кнопки подряд, нашёл ошибку, сказал разработчику, и всё. На самом деле тестировщик — это сложная и творческая профессия на стыке IT, UX-дизайна и продуктового менеджмента.

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

Неполиткорректные разработчики из-за этого когда-то обидно называли тестировщиков «обезьянками-кликальщиками». Термин был так распространён, что Android назвал свой инструмент для автоматизации тестирования MonkeyRunner — в том смысле, что он как обезьянка, только быстрее.

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

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

Пример простого тест-кейса

Тестировщик должен скрупулёзно проверить, что будет, если совершить какое-то действие, и соответствует ли результат ожидаемому.

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

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

Работа тестировщика — это бесконечное приближение к совершенству. Невозможно проверить всё, поэтому тестировщик должен работать так, чтобы совершить минимум действий, но найти максимум ошибок.

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

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

Порог входа в тестирование довольно низкий. Чтобы стать тестировщиком, не требуется техническое образование. Главное, чтобы человеку была интересна сфера IT и он хотел развиваться в этом направлении. Об этом говорит в своём интервью на hh.ru руководитель департамента обеспечения качества ПО Veeam Software Игорь Кацев.

На сайте Software-Testing.ru опрашивали тестировщиков из России и СНГ по поводу их образования. Оказалось, что в профессию приходят и достигают в ней карьерных высот разные люди: технари, гуманитарии, экономисты, юристы, люди с двумя высшими и люди без диплома вообще.

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

  • в декабре 2020 на HeadHunter было более 4 000 вакансий тестировщиков ПО;
  • больше 12 000 — на Trud.com;
  • на Indeed — около 1 000, и это только по России.

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

Вот, например, скрин с hh.ru, где работодатель перечисляет требования к тестировщику:

Большим спросом пользуются универсалы, владеющие современными методами тестирования, знающие языки программирования, умеющие составлять и автоматизировать тесты, например:

Заработная плата тестировщика в регионах — от 55 до 60 тысяч рублей, а в Москве — 80–150 тысяч.

Новички могут рассчитывать на зарплату от 40 тысяч рублей, специалисты высокого уровня получают 220–300 тысяч.

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

Младший специалист тестирует программы вручную по готовым тест-кейсам. Чтобы из «обезьянки» стать мидлом, нужно развиваться: досконально изучать проект, знать язык кода и основы автоматического тестирования.

Если джуниор хорошо себя зарекомендует, то через 2-3 года получит повышение и станет мидлом. Будет самостоятельно составлять тест-кейсы и заполнять документацию.

Ещё через год-полтора успешный мидл может претендовать на должность старшего специалиста (Senior QA Engineer). Его круг задач расширяется: синьор планирует работы по тестированию, контролирует работу джунов.

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

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

  • Security-тестировщики — проверяют безопасность программы;
  • Performance-тестировщики — тестируют, как она ведёт себя при возрастающей нагрузке.
  • Usability-тестировщики — проверяют, насколько с ней удобно работать.

Кроме того, в тестировании очень важны личные качества специалиста. Вот список основных, без которых точно не обойтись:

  • Усидчивость и настойчивость — чтобы терпеливо искать дефекты. Хороший тестировщик уверен, что программ без ошибок не бывает, бывают лишь плохо диагностированные.
  • Критическое мышление, умение анализировать информацию.
  • Внимание к мелочам, максимальная дотошность, чтобы постоянно интересоваться: «А что будет, если нажать сюда? А если ввести другой символ?»
  • Коммуникабельность и умение работать в команде: тестировщику приходится постоянно взаимодействовать с разработчиками, дизайнерами, бизнес-аналитиками, представителями заказчика.
  • Терпение и самообладание, потому что разработчики не слишком любят исправлять ошибки. Иногда тестировщику приходится не раз и не два напоминать о найденном баге. Он должен быть настойчивым, но при этом уметь сохранять хорошие отношения в команде.
  • Ответственность и здоровый перфекционизм, чтобы постоянно стремиться улучшить качество разрабатываемого продукта.
  • Умение чётко формулировать свои мысли, чтобы грамотно составлять планы и тест-кейсы. Если тестировщик нашёл ошибку, он должен подробно и понятно описать, при каких условиях она возникает, чтобы разработчики могли быстро её исправить.
  • Стремление развиваться — осваивать новые методики тестирования, чтобы оставаться востребованным. Нужно постоянно читать техническую литературу, участвовать в конференциях и семинарах, смотреть видеокурсы.

От тестировщика требуется:

  • знание основ тестирования, его видов и методов;
  • умение составлять тест-кейсы, тест-планы;
  • знание языка запросов SQL, умение работать с базами данных;
  • знание языков программирования;
  • знание систем контроля версий: Git, CVS и тому подобных.

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

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

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

Ну и обязательно потребуется английский язык — для чтения и заполнения технической документации.

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

Листая дальше, вы перейдете на страницу курса

Научитесь: Профессия Инженер по тестированию
Узнать больше

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

Время на прочтение
14 мин

Количество просмотров 145K

Тестировщик: Это баг или фича?
Разработчик: Пока что это фича.
bash.im

Инженер по тестированию — моя первая специальность в ИТ-сфере в далёких уже 2010-х, как, пожалуй, и у многих. Это было классическое «войти в айти»: на тот момент имелось только экономическое образование и 4 года опыта аналитической работы в телекоме. Из скиллов: горящие глаза, большое желание, среднее знание администрирования UNIX и выученная наизусть модель OSI (без особого понимания, что с ней делать дальше). 87 вопросов на собеседовании (от «что такое chmod 777» и «как работает ssh» до «расскажите о принципах работы TCP и поясните на примерах») — и должность инженера по тестированию у меня в руках. Чуть позже за 2 года было всё: гордость, отчаяние, разочарование, отличная работа, быстрый рост, крутой проект и т.д. Если бы я тогда знал о профессии тестировщика чуть больше, не было бы многих неприятных минут и часов. Ну, пусть тогда их не будет у тех, кто только выбирает свой путь или меняет его направление — эта статья для вас. 

Кто это?

Тестировщик (буду называть именно так, чуть позже объясню, в чём причина оговорки), он же QA-инженер (Quality Assurance) — это специалист, который проверяет качество программного обеспечения и уровень его соответствия заранее определённым потребностям и ожидаемым результатам. В своей работе он использует различные инструменты, стратегии тестирования, включается в SCRUM-команды и т.д. 

Иногда выделяют два основных «вида» тестировщиков.

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

    Вот это тестер, а парни и девчонки всё же тестировщики! (минута айтишного шовинизма)

  2. Инженер по тестированию — специалист уровня от junior до lead, который осуществляет разнообразные виды тестирования, в том числе автоматизированное, самостоятельно пишет тест-планы, в некоторых случаях даже даёт рекомендации по исправлению багов или исправляет их самостоятельно (в небольших компаниях).

Это очень укрупнённая и не совсем серьёзная классификация. На самом деле тестировщики бывают разные: специалисты автоматизированного тестирования, тестировщики СУБД, аналитики тестирования, разработчики-тестировщики, тестировщики-DevOPs и проч. Всё зависит от того, какие скиллы соединяет в себе каждый конкретный специалист. 

В общем и целом работу инженера по тестированию можно свести к такому порядку: получил ПО → определил необходимый набор тестов → сопоставил реальное положение косяков, костылей, велосипедов и багов с ожидаемым результатом работы программы (аппаратно-программного комплекса) → завёл баги → работаешь с ними, пока они не закроются. Всё это, конечно, в цикле.

Скажу сразу: первые несколько месяцев работы в тестировании напоминают день сурка, ты делаешь одно и то же, прогоняешь одни и те же тесты по нескольку раз, ставишь passed или failed, заводишь баги и, кажется, что это работа точно не для тебя, а скорее для школьника или мартышки. И это вот самоощущение чудовищно угнетает и столь же чудовищно неверно. Всё меняется, когда приходит опыт. 

Вот какие этапы вы, скорее всего, пройдёте на работе тестировщиком «с нуля».

Первые 2-3 месяца — обучение. Если компания хорошая и продвинутая, вам дадут наставника, который поможет освоить все принятые в компании методологии тестирования, покажет оборудование, расскажет о ПО, задачах этого ПО и обязательно о клиентах. Иногда по итогам такого вот обучения с наставником вам даже придётся сдать небольшой экзамен (мини-собеседование). Это совершенно нормально, т.к. именно QA является важным подразделением на пути к клиенту и его хорошая работа — залог того, что ваш продукт в чьём-то бизнесе начнёт работать, а не лажать. Если компания не особо заботится о развитии сотрудников, вам придётся достигать всего самому, но я не скажу, что это очень плохо: при самостоятельном обучении погружение в ПО происходит гораздо глубже и вы понимаете значительно больше того, что расскажет опытный «ментор» о продукте, который ему отлично знаком. 

Новичков в тестировании любят — иногда они находят самые интересные и неожиданные баги, на которые у давно работающих сотрудников «глаз замылился».

История. В одну компанию пришла новенькая девочка, которая никак себя не проявляла, тихо изучала софт и принципы его работы с разным оборудованием. Когда она только-только приступила к тестированию, от большого и злого федерального клиента прилетел critical (самый злой баг, хуже только блокирующий) — ПО отказывалось закрываться. Перелопатили весь код, орали друг на друга, проверили все соединения и т.д. Через три часа метаний девочка пропищала:
— А тут крестик неактивный.
Действительно, просто не работала одна-единственная и весьма очевидная функция. Но профессионалы забурились в дебри, а увлечённый дилетант сразу заметил ненормальное поведение.

Далее — от нескольких месяцев до 2 лет — ручное тестирование. Вы будете выполнять большинство видов тестов в ручном режиме, начнёте составлять свои тест-планы и взаимодействовать с разработчиками. На этом этапе наступает тот самый день сурка, когда кажется, что кони бегают по кругу и дальше — рутина и скука. Это не так. В этот промежуток времени инженер по тестированию наращивает интегральное понимание тестирования, учится работать с программистами, видеть не только сам баг, но и анализировать его возможные причины. Главное, что приходит за это время — осознание того, что ручное тестирование должно остаться в прошлом веке и… настаёт время перехода к автоматизации тестирования, когда вы начинаете осваивать язык программирования (или использовать ранее освоенный) и пишете свои скрипты — те, которые считаете нужными для работы с ПО. Наступает реально крутая часть работы. (Впрочем, многие тестировщики, особенно девушки, предпочитают остановиться на ручном тестировании и стать реальными асами именно в нём — кстати, весьма полезные сотрудники и, как показывает опыт, лучшие наставники для новичков).

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

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

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

тестеры

тестировщики, быстро прояснится.

Плюсы и минусы работы тестировщиком

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

▍Плюсы

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

  3. Тестирование — не столь изученная область, как программирование. Если у вас есть талант и трудолюбие, вы сможете сказать своё слово миру (написать книгу, создать методологию, преподавать и т.д.).
  4. Карьера тестировщика довольно свободная: можно сидеть в офисе с гибким графиком, можно работать удалённо, а можно стать фрилансером, набрать проектов и тестировать их по сдельной оплате.
  5. Тестировщику легче вернуться на работу после долгого перерыва, например, из опыта создания своего стартапа, фриланса, декрета, иных обстоятельств.
  6. Работу в тестировании можно сочетать с учебой без вреда для обоих видов деятельности.
  7. Вы научитесь «видеть продукт» со всех сторон, узнаете все функциональные возможности, посмотрите на софт глазами инженера и глазами потребителя. Это прямой путь в менеджеры продукта. Общая картина продукта поможет вам в любом случае — например, если вы решитесь уйти в разработку.

▍Минусы

  1. Команда недолюбливает тестировщиков :-) Нет, ну вы вот сами прикиньте: вы делаете продукт, пишете код, документацию, а потом на него нападает кучка коллег и заводит баг за багом на каждую мелочь. Ну как это вынести в адекватном состоянии?! Хуже только быть единственным тестировщиком в команде — тогда всё, ты конченая сволочь. Шутки шутками, но нередко команда считает, что именно тестировщики задерживают выпуск релизов и клиентских сборок. В общем, не любят люди, когда находят ошибки в их работе. 

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

  3. Тестировщики ищут ошибки разработчиков, искать ошибки тестировщиков некому. Поэтому вы будете крайними в некоторых неприятных ситуациях.
  4. Работа тестировщиков часто бывает незаметна руководству — придётся привыкнуть быть серым кардиналом, невидимым героем.
  5. Сверхурочная работа — бич тестировщиков. Рано или поздно вам будет нужно срочно оттестировать релиз или сборку, которую нужно выкатить завтра или «вот прям щас» или же остаться и проверить внесённые программистами исправления. И вы останетесь, а вот оплачивается такой героизм далеко не всегда (я вообще не встречал).
  6. На тестировщиках лежит огромный груз ответственности за полноту и охват тест-планов — если что-то упустить, отвечать уже придётся за пропущенные баги.

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

Где нужен?

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

  • Любые компании-разработчики, а также поставщики программно-аппаратных комплексов (от процессоров до касс и терминалов).
  • Разработчики игр и развлекательных мобильных приложений.
  • Финтех компании: банки, брокеры, финансовые учреждения и проч. 
  • Системные интеграторы, которые поставляют корпоративному сегменту сложные многослойные технические решения.
  • Нередко тестировщики ПО требуются в штат заводов, автомобильных компаний, онлайн СМИ, ритейлеров, онлайн-курсов и т.д.

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

ублюдкам

мешкам :-)  

Средняя заработная плата

Заработную плату будем смотреть на «Хабр Карьере». Возьмём данные за второе полугодие 2019 года, вне зависимости от владения тем или иным стеком. 

Для специалистов ручного тестирования:

Для специалистов автоматизированного тестирования:

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

Базовые требования к профессионалу

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

  • Опыт технической поддержки — это плотное изучение технологий в сжатые сроки, умение понимать проблемы и быстро сопоставлять их с причинами и путями решения + навыки документирования заявок. Отличная почва для старта карьеры тестировщика.
  • Основы программирования — желательно Java, SQL, Python, но сойдёт буквально всё.
  • Знание методологии Agile, умение встроиться в микро-команды. 
  • Основы Linux.
  • Основы архитектуры ПК.
  • Модель OSI и сети (базовое понимание, знание структуры заголовков пакетов и проч.). Практически сразу потребуется свободная работа с утилитой Wireshark.
  • Инструменты управления тестированием — Bugzilla, Jira или любой другой багтрекер.
  • Selenium — инструмент для автоматизации действий веб-браузера. Очень популярный инструмент тестирования. 
  • Желательно — понимание стратегий тестирований чёрного, белого, серого ящиков и осознание того, где вы наиболее хорошо применимы как специалист.

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

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

  1. Станьте QA-фрилансером, чтобы выполнять небольшие проекты по ручному тестированию. Платят мало, но вы научитесь мыслить как тестировщик, писать контрольные примеры и сообщать о результатах. 
  2. Если цель — тестирование веба (а это чаще всего), создайте свой кривой-косой, но полноценный сайт без шаблонов и готовых CMS. Так вы поймёте, как среда работает изнутри и будете знать места обитания всех типичных багов.
  3. Найдите программу любого курса по тестированию, ищите по ней материалы и накапливайте теоретическую базу, чтобы успешно пройти первое собеседование.

Важные личные качества

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

  • Аналитические навыки, чтобы понимать взаимосвязи, анализировать огромные массивы данных, результаты тестов и т.д.
  • Управление временем и скиллы планирования — только с ними можно обеспечить высокую производительность на фоне серьёзной рабочей нагрузки.

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

  • Умение надолго концентрироваться и сохранять внимание. К слову, иногда именно тестирование позволяет наработать это навык и сохранить его для дальнейшей карьеры.

Необходимость знания иностранных языков

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

  • очень много статей и методик переведено на русский язык;
  • часто объём знаний языка обусловлен именно особенностями продукта и компании — соответственно, если компания работает на англоязычный рынок, уровень нужен (например, чтобы тестировать документацию или общаться с интернациональной командой и клиентами), а если на российский рынок, то требования к языку практически нулевые.

Но опять же, если вы хотите расти в серьёзную автоматизацию или уходить в разработку, язык вам будет нужен всё больше и больше, поэтому лучше не тратить время и подтянуться хотя бы до Intermediate. 

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

Где учиться

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

Принципиального обучения на инженера по тестированию в России не существует.

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

Лучшее обучение в этой сфере — пройти путь от стажёра до миддла или сеньора в компаниях. На фоне усилий по самообразованию — вообще идеально. Как правило, после первого полученного опыта в компании устроиться тестировщиком в другие довольно легко. Главное найти заветную первую практику :)

Лучшие книги и средства обучения

▍Книги

  • Арбон Джейсон, Каролло Джефф, Уиттакер Джеймс «Как тестируют в Google» — познавательная книга, которую лучше читать уже с каким-то опытом, как минимум junior. А, впрочем, о чём я! Читайте и наслаждайтесь на любом уровне, очень полезно и неплохо написано.
  • Борис Бейзер «Тестирование черного ящика. Технологии функционального тестирования программного обеспечения и систем» — классика литературы для тестировщиков. Это скорее академический учебник о тестировании, весьма толковый.
  • Гленфорд Майерс, Том Баджетт, Кори Сандлер «Искусство тестирования программ» — библия тестирования (на мой субъективный взгляд).
  • Роман Савин «Тестирование Дот Ком, или Пособие по жестокому обращению с багами в интернет-стартапах» — реально добрая, немножко смешная и в то же время умная книга для начинающих и постарше. Мне бы она зашла как настольная книга тестировщика.

▍Онлайн-обучение

  • Бесплатный базовый курс Яндекс.Практикума (брать ли платный расширенный — решать вам по силам и потребностям) — хороший, толковый курс от практиков.
  • www.learnqa.ru — онлайн-школа тестирования (платная, нескольк методологий тестирования, разные уровни)
  • YouTube — сотни обучающих видео, есть толковые
  • QA Club Сообщество тестировщиков Тестирование ПО — общалка тестировщиков ВКонтакте (сообщество)

▍Полезные статьи на Хабре о самой профессии

  • Тестирование. Фундаментальная теория / Хабр
  • Тестировщик — больше, чем профессия / Хабр
  • Краудтестинг, или Где взять опыт для первой работы в тестировании

Ну и вообще хаб «Тестирование IT-систем» к вашим услугам. На Хабре очень много полезного по этой теме.

▍Тусовки тестировщиков

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

▍Википедия

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

Будущее тестировщика

Кроме стандартного пути внутри тестирования (от стажёра к лиду), есть несколько наиболее вероятных путей развития карьеры тестировщика.

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

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

Мифы профессии

▍Тестировщики — «низшая каста» ИТ-отрасли 

Вот сейчас обидно было. Или это как у ВДВ, но «не кодил — не айтишник»? Отдел тестирования — это по сути настоящий отдел контроля качества, который не позволит компании опозориться перед клиентом (если где-то упадёт навороченный костыль, хе-хе), вовремя определит явные ошибки UI/UX, проверит внутреннюю логику работы приложения или сервиса. Комплексная работа тестировщиков всех ИТ-компаний мира обеспечивает определённый уровень качества и сохраняет миллионы денег компаний, которые могли бы потеряться на жалобах конечных пользователей на бесконечные баги. 

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

▍Тестирование — это просто поиск ошибок

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

▍Тестировщикам мало платят

На первых порах это действительно не самая оплачиваемая работа. Согласитесь, компании обидно платить сотруднику, который по большей части учится. Но постепенно заработная плата растёт и дальше зависит от компании: когда я работал, я получал всего на 3 тыс. руб. меньше разработчика своего уровня (middle), но я знаю компании, где тестировщики получают и больше, и меньше, чем разработчики. Многое зависит от профиля деятельности компании и скиллов тестировщика. Понятное дело, что автоматизатор будет стоить дороже. Но формулировка «мало платят» точно не про тестирование.

▍Не применяются технические навыки

Я уже выше перечислил примерные действия тестировщиков, и все они строго инженерные. Хоть в тестирование можно попасть и без технического образования, работать без технического бэкграунда не получится: вы либо шустро всему научитесь, либо пойдёте в нетехнические отделы, потому что «голый гуманитарий» — горе в отделе QA. Да, на каком-то этапе от вас не потребуется глубокое владение языками программирования (но вы же запомнили, что тестировщики со знанием разработки выше ценятся?), но инженерные, админские и общетехнические знания вам ох как пригодятся. Вы их будете использовать буквально каждый день.

Главный совет

Здесь не будет совета, их в статье и так хватает. Я расскажу, что самое страшное в профессии тестировщика. Вот такое страшное, что до мурашек и головокружения. Самый первый самостоятельный заход на тестирование. Ты сидишь, проводишь тесты и ставишь passed, passed, passed… И ни одного, даже самого малюсенького, самого глупого и минорного бага! И ты боишься, что в тебе нет этого — видеть ошибки, отвечать за качество, находить что-то, что пошло не так. И какое же это счастье, когда находится он, первый, первая странность в заголовке пакета или первое слово интерфейса с опечаткой.

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


Друзья, а вы прошли через работу в тестировании? Каким он был, ваш первый баг или самый глупый, смешной, может, даже страшный? Время жутких историй!

Предыдущие серии «Профессии…»

→ Профессия: бэкенд-разработчик
→ Профессия: фронтенд-разработчик
→ Профессия: системный администратор

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

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

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

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

Специализацию тестировщиков можно условно разделить по направлениям — тестирование юзабилити, производительности, безопасности, а также по способу исполнения тестов: ручное (мануальное) и автоматизированное тестирование.

Что должен знать тестировщик и какие хард скиллы ему нужны

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

Теория

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

Читайте также:
Как пройти собеседование на тестировщика: все этапы и вопросы

Инструменты тестирования

Инструменты тестирования — это программы, которые используют тестировщики при тестировании ПО.

Для разных задач подходят разные программы. Например, для тестирования веб-приложений отлично подходит Chrome DevTools, а для тестирования API — Postman. Для ведения тестовой документации также есть различные инструменты — Allure TestOps, Testlink, Testrail, TestIT и многие другие.

Логи

Логи — это хронология событий и действий, происходящих в ПО. Ее «ведет» программа для того, чтобы разработчикам и тестировщикам можно было понимать истинные причины возникновения багов. Это называется локализация дефекта.

Базы данных

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

Иногда тестировщику приходится работать с базами данных. Для этого ему нужно знать SQL — с помощью этого языка тестировщик работает с самими данными, например, делает выборки.

Баг-репорты

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

Шаблон баг-репорта

Что нужно знать тестировщику дополнительно

  1. Принципы тестирования API — оно позволяет мобильным и веб-приложениям обрабатывать информацию на серверах.
  2. Модель OSI — она помогает тестировщику определить уровень ошибки, провести диагностику сетей.
  3. Unix, Linux, Windows, командная строка. Это нужно не всем, но ценность тестировщика повышается, если он разбирается в серверах и умеет пользоваться консольными утилитами.
  4. Протоколы HTTP, JSON, XML, принципы клиент-серверного взаимодействия. Тестировщик должен понимать, как локализовать элементы страницы и работать с запросами.
  5. Система контроля версий Git — она хранит код в удаленных хранилищах, позволяет его редактировать и руководит доступом к нему. Знание того, как с ней работать, в основном, нужно автоматизированным тестировщикам.

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

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

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

Читайте также:
Гид по профессии тестировщик: чем занимается специалист в сфере QA, сколько зарабатывает, что надо знать и где учиться

Какие софт скиллы нужны тестировщику

  1. Стопроцентное внимание и сосредоточенность. Некоторые работодатели считают это самым важным качеством, так как не ждут ошибок от специалиста, который их ищет. Это спорное мнение, тестировщики все же не роботы, и иногда могут упускать баги. Но внимательность в работе — это точно плюс.
  2. Любопытство. Тестировщик должен задавать много вопросов. Например, почему этот код работает так, а не иначе, для чего нужна конкретная фича в программе. Нелюбопытный специалист не сможет хорошо тестировать.
  3. Умение работать в команде. Каждый день тестировщик общается с командой разработки, иногда с менеджментом компании. Ему нужно уметь адекватно реагировать на критику, находить общий язык с коллегами и не провоцировать конфликты.
  4. Умение четко формулировать мысли. Это особенно полезно для составления баг-репортов — разработчикам должно быть понятно, что тестировщик попросил его исправить.
  5. Усидчивость. Тестировщик должен уметь выполнять монотонную работу, потому что она составляет большую часть его рабочих задач.
  6. Дисциплинированность. Тестировщик должен ответственно подходить к своей работе, и, например, писать тест-кейсы в срок, оформлять дефекты сразу после обнаружения, не забывать проводить повторное тестирование.

С чего начать обучение тестировщика

Изучите профессию

Читайте обучающие статьи на Хабре и Software-Testing.ru, следите за новостями из сферы, смотрите видеолекции на YouTube. Найдите комьюнити тестировщиков или присоединяйтесь к Хекслет Комьюнити, чтобы обсуждать тестирование и свой прогресс в обучении.

Пройдите курсы

Это один из самых эффективных способов структурировать знания и получить много практики. Мы на Хекслете запустили групповое обучение по профессии «Инженер по тестированию». Оно проходит в формате вебинаров с домашними заданиями с проверкой от наставника.

Читайте книги

Авторы книг дают базовые знания о профессии и делятся полезным опытом. Вот несколько интересных книг о тестировании:

  • Святослав Куликов «Тестирование программного обеспечения. Базовый курс»
  • Борис Бейзер «Тестирование черного ящика»
  • Рекс Блэк «Ключевые процессы тестирования. Планирование, подготовка, проведение, совершенствование»

Практикуйтесь

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

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

Никогда не останавливайтесь:
В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях

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

Бонус в конце: ссылка на бесплатный карьерный гид.

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

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

Что делает тестировщик

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

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

По степени автоматизации тестирование делится на ручное, автоматизированное, полуавтоматическое.

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

Есть и другие виды тестирования.

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

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

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

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

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

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

тестировщик проверяет нестандартный пользовательский сценарий

Тестировщик / Что, если… (тестировщик проверяет нестандартный пользовательский сценарий)

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

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

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

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

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

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

Пример задачи

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

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

Шаги произведения ошибки или багв

Неправильно прописанные шаги воспроизведения (последовательности действий для воспроизведения бага) приводят к странным результатам

Тестирование принято разделять на два направления: QA и QC.

Что такое QC

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

Что такое QA

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

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

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

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

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

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

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

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

Как выглядит его рабочий день

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

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

«Когда ты приступаешь к проектированию куска тест-кейса, у тебя есть куча разных методик, которые можно применять в самых разных вещах. Особенно интересно это проявляется с железом: возникает много сайд-эффектов с какими-нибудь особенностями ОС, жесткими дисками».

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

Новичкам Роман предлагает несколько вариантов: «Если вы не хотите идти на курсы, Google вам в помощь. Существуют разные road map тестировщика, которые помогут самостоятельно определить траекторию обучения. Другой рабочий, прагматичный способ  открываете вакансию, смотрите требования и идете их изучать».

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

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

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

Хорошо работает у разработчика - теперь проблема тестировщика, мем

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

Какие нужны софт-скиллы

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

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

Кроме общения с командой, нужно научиться говорить простым языком о сложном: «Уметь рассказать даже пятилетнему ребенку, как работает микросервис, — уточняет Роман. — Потому что бывают ситуации, когда нужно объяснить клиенту технические моменты и то, какие проблемы могут из-за них возникнуть».

Софт-скиллы не ограничиваются коммуникацией. Нужно также уметь представлять результаты своей работы. «Наверное, составлять презентации — это частный случай, но объяснять, что значит тот или иной отчет по тестированию и как его читать, — тоже полезный скилл», — поясняет Роман.

Насколько это востребовано

В марте 2021 года на сайте hh.ru было почти 1900 вакансий.

Востребованность тестировщиков на рынке

Роман Орлов:

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

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

Новичкам платят от 50 до 70 тыс. рублей в месяц. Но уже спустя год можно удвоить оклад: мидл-тестировщики получают около 100–120 тыс. рублей. Опытные синьоры зарабатывают 200–300 тыс. рублей, основываясь на данных hh.ru за март 2021 года.

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

Плюсы

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

Роман Орлов:

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

Минусы

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

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

Мем про тестировщика - Тестировщикам не нравится ломать продукт. Им нравится развеивать иллюзию, что все работает

Тестировщикам не нравится ломать продукт / Им нравится развеивать иллюзию, что все работает

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

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

Роман Орлов:

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

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

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

Полезные ссылки

  • Мероприятия, например QA-фесты;
  • паблик «Типичный тестировщик»;
  • телеграм-канал automation-remarks.com;
  • чат QA — Load & Performance, где выкладывают полезные статьи, ссылки и мероприятия;
  • сабреддит про разные виды тестирования;
  • SQAForums — зарубежный форум;
  • еще одна Road map о профессии;
  • подкаст AB Testing;
  • проект Software-Testing.RU, где можно найти не только полезные статьи, но и форум.

Как начать

Как и для любой работы в IT, новичку важна практика. Для начала можно ознакомиться с языками и основами профессии с помощью книг, например «Искусство тестирования программ» Гленфорда Майерса или «Гибкое тестирование. Практическое руководство для тестировщиков ПО и гибких команд» Лизы Криспин и Джанета Грегори.

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

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

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

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

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

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

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

«Хотите войти в IT-индустрию без технического бэкграунда и всего за пару месяцев? Выбирайте профессию тестировщика!» – часто пишут в рекламных материалах о профессии. 

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

В чем суть профессии тестировщика, так ли она проста и востребована? Давайте разбираться. 

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

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

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

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

Он пытается предусмотреть все нестандартные действия, которые может совершить пользователь, и посмотреть, как на них реагирует программа или приложение. Что будет, если на этапе регистрации вбить имя и фамилию не в том порядке? А на английской раскладке? А капслоком?

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

Тестировщик и QA-инженер: в чем разница 

Кто такие тестировщики программного обеспечения, сайтов, приложений и игр нам уже понятно. Но часто в вакансиях встречается термин «QA-инженер». Он происходит от сокращения quality assurance – обеспечение качества. 

QA – это часть разработки, которая отвечает за качество продукта. Работа над этим начинается задолго до того, как разработчик напишет первую строку кода. QA-инженер, или QA engineer – это специалист, который работает над продуктом уже на этапе исследования рынка, изучения потребностей аудитории, генерации идей. 

Позже подключается специалист по QC (quality control) – то есть тестировщик. Инженеры QC испытывают продукт и наблюдают за его работой на этапах разработки и поддержки.

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

Прорубите окно в IT на курсе «Инженер по ручному тестированию». Вам в помощь эксперты из Ростелекома и Триколор ТВ. 

Что должен знать и уметь тестировщик

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

  1. Контролировать качество продукта, искать проблемы и недочеты.
  2. Разрабатывать тестовые наборы и регулярно прогонять их. 
  3. Анализировать результаты тестирования. 
  4. Отправлять саппорт об ошибке тем специалистам, которые могут ее устранить. 
  5. Документировать дефекты – корректно вносить их в рабочую документацию. 

Тестировщик

Пример вакансии тестировщика на hh.ru

Профессия тестировщика предполагает работу с API, Jira и Chrome DevTools. Также нужно разбираться в тестовых документах и методологиях тестирования.

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

Самые популярные среди тестировщиков языки программирования – Java, Python, JS, C#. Для старта хватит одного, но потом понадобится больше: часто клиент просит провести тестирование на определенном языке. 

Иногда специфика проекта предполагает использование только одного языка – слишком много процессов настроены так, что этого нельзя изменить. 

Тестировщик

Скриншот вакансии с требованиями к тестировщику без опыта 

Лучшая инвестиция для тестировщика – выучить один из самых популярных языков программирования. Делайте верный выбор – приходите на курс «Профессия тестировщик на Java».  

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

Профессия тестировщика для многих становится входом в IT-индустрию. Для нее не нужно технического образования и способностей к математике. Согласно опросу на сайте Software-Testing.ru, в России и СНГ в тестировщики идут люди разных профессий. 

Среди джунов (junior) выше процент выпускников гуманитарных, экономических вузов. Лиды (lead) преимущественно имеют техническую или юридическую специальность, ученую степень и управленческое образование. Среди сеньоров (senior) много людей, которые окончили только школу или, наоборот, имеют два высших образования. 

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

Также тестировщики легко переходят в смежные профессии – продукт-менеджмент, UX/UI-дизайн, разработку. 

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

В среднем новички могут рассчитывать на зарплату от 40 тыс. рублей, специалисты высокого уровня получают 220–300 тыс. Медианная зарплата тестировщика в регионах – от 35 до 50 тыс. рублей, в Москве – 80–150 тыс., на топовых позициях – около 300 тыс. рублей по данным HH.ru на январь 2023 года.

Хотите заработать первые деньги как можно скорее? Приходите на курс-симулятор «Тестировщик на Python» и начните брать заказы на ручное тестирование уже после четырех месяцев обучения. 

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

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

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

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

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

А можно все посмотреть? Да вот же они, все курсы SkillFactory для будущих тестировщиков. Все разные, но плюсы у них общие: 200+ часов практики, крутые преподаватели, более 15 работ в портфолио и помощь при трудоустройстве. 

Возможно, вам также будет интересно:

  • Кто может исправить ошибки в сочинении
  • Кто исправляет реестровую ошибку в егрн
  • Кто может исправить нотариальную ошибку
  • Кто исправляет ошибку фамилии в свидетельстве о рождении
  • Кто может изменить кадастровую ошибку

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии