Кто такой QA engineer: что он должен знать и уметь, чтобы попасть в IT

Автор полезных текстов в MC.today
Розкажіть про статтю:

Артем Бородатюк, сооснователь Net­peak Group, считает: QA engi­neer – одна из профессий, через которую можно попасть в IT. По его словам, здесь относительно несложно обучиться новым знаниям.

[social_blue social=“telegram”]

Редакция MC.today разобралась, что такое QA engi­neer, как овладеть этой профессией и сколько можно зарабатывать.


Кто такой QA engineer

QA engi­neer – специалист по качеству разработки программного обеспечения. QA англ. Qual­i­ty Assur­ance. – Прим. ред. расшифровывается как обеспечение качества.

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

В крупных корпорациях QA-отделы большие, и там должности QA engi­neer и тестировщика и правда могут быть разделены. Но в небольших компаниях и стартапах тестировщик – как человек-оркестр: делает всё.

Обязанности и задачи QA-инженера

QA-инженер контролирует качество продукта. Вот что конкретно он делает:

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

Вот алгоритм работы над программой:

  1. В компании есть план задач и документы, где описывают программу на этапе завершения.
  2. Разработчики пишут программу и ищут в ней критические ошибки. Затем они выдают готовую программу или промежуточную версию для закрытого или открытого тестирования.
  3. Тестировщик проверяет программу во всех доступных режимах. Он смотрит, что в ней получилось, а что нет. Пошагово записывает сбои в работе и ошибки. Отдает свои записи о несоответствиях разработчикам.
  4. Снова подключаются разработчики. Они исправляют найденные QA-инженером ошибки и несоответствия.
  5. Затем QA-специалист снова проверяет программу. Если находит баги, отдает ее на доработку. Так происходит до тех пор, пока программа не будет готовой.

Что должен знать QA engineer

QA-инженер должен:

  • понимать жизненный цикл и этапы разработки ПО;
  • знать языки программирования, если занимается автоматизированным тестированием;
  • владеть новыми технологиями для тестирования и знать новые инструменты для автоматического и ручного тестирования;
  • уметь пользоваться протоколом HTTP и работать с кодами ответов сервера;
  • хорошо знать английский язык;
  • использовать системы bug-трекинга программы, которые помогают разработчикам программного обеспечения учитывать и контролировать ошибки. – Прим. ред., например Jira и YouTrack;
  • знать язык программирования SQL;
  • работать с программным интерфейсом DOM;
  • знать данные JSON и языков HTML;
  • работать с данными cook­ie & ses­sion временные таблицы в базе данных, в которых можно хранить уникальные данные конкретного пользователя, которые удаляются вручную или когда закончится их срок действия или сессия. – Прим. ред.;
  • понимать объектно ориентированное программирование;
  • уметь вести тестовую документацию;
  • понимать методы scrum, agile или lean;
  • тестировать программы на основе технологического стеканабор технологий, на основе которого разрабатывают сайт или приложение. – Прим. ред., например, GoLang и/или php (sym­fony), Post­greSQL и/или Click­house;
  • знать системы CI&CD: программы Dock­er, Git­Lab, Kuber­netes или их аналоги;
  • понимать High­Load высоконагруженные системы. – Прим. ред., Microser­vice Archi­tec­ture программное обеспечение, направленное на взаимодействие небольших, слабо связанных и легко изменяемых модулей. – Прим. ред.;
  • уметь работать с методами обработки и инструментами big data;
  • уметь составлять тест-кейсы и тест-планы.

Артем Бородатюк советует изучить карту знаний, которую разработали в Net­peak Group. Так вы поймете, какие навыками должны обладать QA на разных уровнях.

Виды QA-инженеров

Есть несколько видов QA-инженеров, которые отличаются по уровню навыков и опыта:

  • Стажер, новичок, ассистент – специалист без опыта – trainee.
  • Младший тестировщик – 0,5–1,5 года опыта – junior.
  • Тестировщик среднего уровня – 1,5–4 года опыта – mid­dle.
  • Старший тестировщик – больше пяти лет опыта – senior.
  • Ведущий тестировщик – QA tech lead.

Иногда можно встретить понятие «функциональный менеджер» (QA func­tion­al man­ag­er) – специалист, который управляет командой тестировщиков и тестированием конкретного проекта.

  • Если у компании есть большой отдел качества, то самая высокая должность QA engi­neer – руководитель отдела (head of QA depart­ment).

Виды QA-инженеров еще делятся по продуктам и сферам:

  1. тестировщики сайтов;
  2. тестировщики мобильных приложений – mobile QA;
  3. юзабилити-тестирование – тестировщики проверяют удобство использования программы или сайта;
  4. тестировщики игр (game tester), клиент-банков и так далее.

По механизму тестирования и специализации выделяют три группы:

  • Ручное, или мануальное, тестирование. Он пробует делать то, что в будущем будет делать пользователь.
  • Автоматизированная проверка (automa­tion QA). Здесь нужно использовать результаты ручного тестирования. Специалист пишет программный код, который имитирует действия пользователя. Это экономит время проверки. В таком случае тестировщику обязательно нужно знать язык программирования, но уметь писать код необязательно.
  • Очень редко выделяют тестирование производительности (per­for­mance QA).

Инструменты для QA-инженера

Инструменты тестирования – это программные продукты, которые помогают QA-инженерам организовывать свою работу на каждом этапе тестирования ПО.

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

Ручное тестирование

Инженер по тестированию прогнозирует, как будет вести себя пользователь, и проверяет разработанную программу. Его задача – найти поведение, которое будет отличаться от ожидаемого.

Ручное тестирование может проводиться:

  1. в рамках интеграционного тестирования – работа с другими ПО и системами;
  2. в рамках регрессионного – тестирование изменений;
  3. при системном функциональном тестировании.

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

Для ручного тестирования есть специальные программы. Там же QA-инженер общается с командой. Вот основные:

  • Jira;
  • Bugzil­la;
  • Red­mine.

Еще QA-инженер создает и анализирует скриншоты с помощью специальных инструментов. Здесь специалисту нужны:

  • Mono­snap;
  • Recordit API;
  • Snag­it;
  • Green­Shot.

Для тестирования часто нужны разные наборы данных. Для этого QA-инженеры используют инструменты-генераторы:

  • Bug­mag­net;
  • Mockaroo.com.

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

  • Reflec­tor;
  • User Zoom;
  • Loop.

QA-инженеры часто пользуются списком задач, расписанным по пунктам, чтобы ничего не потерять. Для этого они используют:

  • Sitechсo;
  • Test­pad;
  • Team­suc­cess.

Мобильные эмуляторы – тоже инструменты для тестирования работы программ.

Мобильный эмулятор – программный комплекс, который точно копирует все функции мобильного устройства.

В работе QA-инженеры используют такие мобильные эмуляторы:

  • World Wide Web;
  • Browser­Stack;
  • Cross­BrowserTest­ing;
  • Mobile Phone Emu­la­tor.

Многие приложения используют API программный интерфейс приложения. – Прим. ред.. Для его тестирования специалисту нужны:

  • Soa­pUI;
  • Post­man.

Еще один важный этап проверки программных разработок – тестирование безопасности. В этом помогают программы:

  • NetSpark­er;
  • Acunetix Vul­ner­a­bil­i­ty Scan­ner;
  • OWASP.

Нагрузочное тестирование

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

  • Apache JMe­ter;
  • WebLOAD;
  • Micro-Focus Load­run­ner.

Автоматизированное тестирование

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

  • Sele­ni­um;
  • Test­Com­plete;
  • Kat­alon Stu­dio.

Типичный план рабочего дня QA-специалиста

В свой рабочий день QA-специалист выполняет такие задачи:

  1. Присутствует на офисных встречах, планирует задачи и делает отчеты по выполненным проектам.
  2. Пишет тест-кейсы. То есть четко описывает действия, которые нужно выполнить для проверки отдельной функции приложения. Возможно, записывает ошибки – смотря на какой стадии находится разработка программы. Еще он тестирует программы или приложения.
  3. Проверяет баг-трекинговые системы, появляются ли там исправленные ошибки.
  4. Изучает пожелания заказчика.
  5. Общается с разработчиками.
  6. Читает тестовую документацию.

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

Антон Мужайло, Qual­i­ty Solu­tions Archi­tect в Glob­al­Log­ic Ukraine, считает: QA-инженер видит весь процесс создания продукта, поэтому разбирается в том, как создавать ПО и постоянно совершенствует свои навыки.

Из минусов профессии он называет такие:

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

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

Обучиться специальности в Украине можно на факультете информатики и вычислительной техники или факультете прикладной математики в КПИ Национальный технический университет Украины «Киевский политехнический институт имени Игоря Сикорского». – Прим. ред.. Например, на кафедре системного программирования и специализированных компьютерных систем (СПСКС).

У Антона Лапоногова, QA engi­neer в Uklon, нет IT-образования. Он считает: если вы хотите стать тестировщиком, то можете пройти специальные курсы. Еще он рекомендует такие материалы для самостоятельного изучения:

  1. Книга «Тестирование Dot Com» Романа Савина;
  2. YouTube-канал «окиселева»;
  3. YouTube-канал Hil­lel IT School.

Артем Бородатюк делится руководством для новичка в QA от Net­peak Soft­ware. Еще он дает алгоритм, как им пользоваться:

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

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

Вакансии QA-специалистов. Источник: jobs.dou.ua

Вы хорошо знаете теорию QA-инжиниринга, если можете ответить на вопросы:

  1. что такое тестирование и какие у него цели;
  2. что такое баг и каков его жизненный цикл;
  3. какие есть виды тестирования;
  4. какая документация используется при поиске ошибок.

QA улучшает процесс разработки, потому ему важно иметь навыки:

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

Карьерные перспективы

QA-инженеры могут развиваться в трех направлениях:

  • Изучать новые области программирования и расти как QA в такой последовательности:
  1. junior QA;
  2. mid­dle QA;
  3. senior QA;
  4. QA team lead;
  5. QA man­ag­er;
  6. head of QA depart­ment.
  • Освоить автоматизированное тестирование и развиваться в этом направлении.
  • Переквалифицироваться в бизнес-аналитика или программиста.

На сайте robota.ua в Украине больше 500 вакансий на QA разного уровня.

Источник: robota.ua

На DOU их больше 900.

Источник: jobs.dou.ua

Еще QA engi­neer может совмещать основную работу с преподаванием или консультированием.

Сколько зарабатывает QA engineer

По информации DOU, в среднем зарплата младшего QA-инженера – $600. Средняя зарплата специалиста опытом 1–3 года – больше $1,5 тыс. Старшие получают около от $2,8 тыс.

По информации сайта по поиску работы work.ua, средняя зарплата QA-инженера в Киеве – 27,5 тыс. грн, а в Украине – 19,5 тыс.

В зависимости от опыта и умений, на сайте по поиску работы djin­ni указаны зарплаты для QA-специалистов от $500 до $7 тыс. В среднем тестировщики зарабатывают $3,5 тыс.

Источник: djinni.co

Требования к junior для входа в профессию

Согласно карте знаний QA-отдела Net­peak Group, junior QA должен знать:

  • различия между QA и QС тестированием;
  • принципы тестирования;
  • самые главные понятия;
  • жизненный цикл ПО;
  • методологии разработки;
  • техники тест-дизайна;
  • тестовые артефакты;
  • цикл жизни бага.

Необязательно, но желательно разобраться, что такое верификация и валидация и как работать с таблицей принятия решения.

Еще junior должен знать такие виды тестирования:

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

Из протоколов младший QA engi­neer должен знать:

  • коды ответов сервера;
  • HTTPS;
  • HTTP.

Вывод

Профессия QA engi­neer – одна из c специальностей, которая позволяет начать работать в IT без технической подготовки. Задача QA-специалиста – следить за качеством продукта на всех этапах разработки.

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

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

В Украине открыто более 900 вакансий на позицию QA. А зарплата новичка стартует от $500. Опытный тестировщик может зарабатывать больше $2,8 тыс.


Схожі статті по темі