Как стать QA-инженером

Всем привет, меня зовут Женя Ефимов, 15 лет назад я пришёл QA-интерном в компанию DataArt, сейчас я — QA-эксперт и один из лидеров внутреннего QA-сообщества, веду собственный курс по тестированию. В этой статье хотел бы рассказать, что нужно делать, чтобы стать QA-инженером.

Первая часть статьи будет о том, что нужно, чтобы стать так себе QA-инженером, вторая — что нужно, чтобы стать хорошим QA-инженером, третья — где это всё брать.

Что нужно, чтобы стать так себе QA-инженером

Английский от Intermediate, любые курсы QA, практика в IT-компании. Готово, вы восхитительны.

Что нужно, чтобы стать хорошим QA-инженером

Для начала стоит понять, ваше ли это. Я бы выделил несколько основных особенностей работы и черт характера, чтобы заниматься тестированием.

Техническая эрудиция

«Technical savvy», как иногда пишут в вакансиях, и желание разбираться в технологиях. Вы должны интересоваться тем, как что работает, как что устроено внутри. Это понимание сослужит хорошую службу в будущем и обычно идёт в связке с необходимым хорошему тестировщику любопытством.

Вы когда-нибудь ставили и настраивали Linux — для себя, чисто из интереса? Пытались разобраться, как работает блокчейн? Делали друзьям сайт на WordPress? Если нет, попробуйте и проследите за своей реакцией. Интересно ли, подстегивают ли сложности найти решение, покопаться в Google и на форумах? Когда конечный результат не тот, появляется ли желание докопаться и сделать, чтобы всё начало работать как надо? Если вы ответили «да», скорее всего, тестирование вам подходит.

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

Ориентированность на пользователя и бизнес

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

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

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

Умение структурировано думать и писать

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

Умение работать с большими объёмами данных и быстро учиться

В работе вам скорее всего понадобится навык работать с большими и плохо структурированными объёмами информациями (также известными как «спецификация», «техническое задание», «корпоративная база знаний»), быстро понимать как работает сложная (и не всегда логично написанная) система и быстро получать базовые знания в абсолютно разных областях. Если ваш проект про управление финансовыми портфелями — придётся разобраться в финансах, если про управление складом — в логистике и т. д. Хороший способ проверить себя — взять и успешно пройти какой-нибудь курс на coursera.com по незнакомому и фундаментальному предмету, желательно на английском.

Умение говорить с людьми на неприятные темы

Очень много и очень хорошо говорить.

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

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

Нужно уметь всё и сразу?

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

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

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

Большинство компаний ищет людей, которые смогут перейти на этот следующий уровень и будут стараться отсеять людей, которым интересно «просто оказаться в IT». Либо они будут проверять мотивацию расти дальше именно в разрезе QA, либо знания, необходимые для перехода на следующую позицию. Поэтому и учиться имеет смысл на вырост.

Итак, что поможет, и где искать информацию?

  1. Высшее образование, лучше техническое, но в принципе, любое. Высшее образование обычно развивает навык создавать в голове сложные структуры, работать с большими объёмами информации в сжатые сроки и делать много работы с отложенным результатом, иногда не самой интересной.
  2. Книги, если читать их вдумчиво и пытаться применить знания на практике. Хорошее упражнение здесь — взять книжку Савина «Тестирование Дот Ком», а ещё словарь и силлабус ISTQB. Выбрать какой-нибудь портал или приложение, которое вы будете тестировать. Дальше читаете Савина, одновременно ищете определение всех терминов в словаре/силлабусе и пробуете всё описанное на практике. Кроме Савина хорошо бы почитать ещё:
    • Стив Круг «Не заставляйте меня думать».
    • Майкл Дж. Хернандес, Джон Вейскас «SQL-запросы для простых смертных. Практическое руководство по манипулированию данными в SQL».
    • Карл Вигерс «Разработка требований к программному обеспечению».
  3. Практика — краудтестинг, практикантские программы в разных IT-компаниях или домашний проект. Хорошо бы вместе с обучением тестированию начать разбираться и в программировании, сейчас довольно много хороших онлайн-курсов, часто бесплатных.
  4. Интернет — есть много хороших ресурсов про тестирование или про IT в целом и тестирование в частности: