Артем Бородатюк, сооснователь Netpeak Group, считает: QA engineer – одна из профессий, через которую можно попасть в IT. По его словам, здесь относительно несложно обучиться новым знаниям.
Редакция MC.today разобралась, что такое QA engineer, как овладеть этой профессией и сколько можно зарабатывать.
Содержание
- Кто такой QA engineer
- Обязанности и задачи QA-инженера
- Что должен знать QA engineer
- Виды QA-инженеров
- Инструменты для QA-инженера
- Ручное тестирование
- Нагрузочное тестирование
- Автоматизированное тестирование
- Типичный план рабочего дня QA-специалиста
- Плюсы и минусы профессии QA engineer
- Как стать QA-инженером
- Карьерные перспективы
- Сколько зарабатывает QA engineer
- Требования к junior для входа в профессию
- Вывод
Кто такой QA engineer
QA engineer – специалист по качеству разработки программного обеспечения. QA англ. Quality Assurance. – Прим. ред. расшифровывается как обеспечение качества.
QA-инженеров часто путают с тестировщиками. Однако между ними есть разница. Последние тестируют готовый продукт, а QA следят за качеством продукта на этапах разработки, чтобы не было ошибок и багов. Так они делают его лучше.
В крупных корпорациях QA-отделы большие, и там должности QA engineer и тестировщика и правда могут быть разделены. Но в небольших компаниях и стартапах тестировщик – как человек-оркестр: делает всё.
Обязанности и задачи QA-инженера
QA-инженер контролирует качество продукта. Вот что конкретно он делает:
- анализирует требования к продукту – программе или приложению;
оценивает работу программы; - общается с менеджерами и бизнес-аналитиками;
- работает с тестовой документацией;
- планирует процесс тестирования;
- тестирует продукты;
- записывает дефекты;
- общается с командой по найденным багам и контролирует, чтобы их исправили;
- повторно тестирует продукты;
- анализирует тестирование, ищет причину дефектов;
- улучшает процессы работы после анализа.
Вот алгоритм работы над программой:
- В компании есть план задач и документы, где описывают программу на этапе завершения.
- Разработчики пишут программу и ищут в ней критические ошибки. Затем они выдают готовую программу или промежуточную версию для закрытого или открытого тестирования.
- Тестировщик проверяет программу во всех доступных режимах. Он смотрит, что в ней получилось, а что нет. Пошагово записывает сбои в работе и ошибки. Отдает свои записи о несоответствиях разработчикам.
- Снова подключаются разработчики. Они исправляют найденные QA-инженером ошибки и несоответствия.
- Затем QA-специалист снова проверяет программу. Если находит баги, отдает ее на доработку. Так происходит до тех пор, пока программа не будет готовой.
Что должен знать QA engineer
QA-инженер должен:
- понимать жизненный цикл и этапы разработки ПО;
- знать языки программирования, если занимается автоматизированным тестированием;
- владеть новыми технологиями для тестирования и знать новые инструменты для автоматического и ручного тестирования;
- уметь пользоваться протоколом HTTP и работать с кодами ответов сервера;
- хорошо знать английский язык;
- использовать системы bug-трекинга программы, которые помогают разработчикам программного обеспечения учитывать и контролировать ошибки. – Прим. ред., например Jira и YouTrack;
- знать язык программирования SQL;
- работать с программным интерфейсом DOM;
- знать данные JSON и языков HTML;
- работать с данными cookie & session временные таблицы в базе данных, в которых можно хранить уникальные данные конкретного пользователя, которые удаляются вручную или когда закончится их срок действия или сессия. – Прим. ред.;
- понимать объектно ориентированное программирование;
- уметь вести тестовую документацию;
- понимать методы scrum, agile или lean;
- тестировать программы на основе технологического стеканабор технологий, на основе которого разрабатывают сайт или приложение. – Прим. ред., например, GoLang и/или php (symfony), PostgreSQL и/или Clickhouse;
- знать системы CI&CD: программы Docker, GitLab, Kubernetes или их аналоги;
- понимать HighLoad высоконагруженные системы. – Прим. ред., Microservice Architecture программное обеспечение, направленное на взаимодействие небольших, слабо связанных и легко изменяемых модулей. – Прим. ред.;
- уметь работать с методами обработки и инструментами big data;
- уметь составлять тест-кейсы и тест-планы.
Артем Бородатюк советует изучить карту знаний, которую разработали в Netpeak Group. Так вы поймете, какие навыками должны обладать QA на разных уровнях.
Виды QA-инженеров
Есть несколько видов QA-инженеров, которые отличаются по уровню навыков и опыта:
- Стажер, новичок, ассистент – специалист без опыта – trainee.
- Младший тестировщик – 0,5–1,5 года опыта – junior.
- Тестировщик среднего уровня – 1,5–4 года опыта – middle.
- Старший тестировщик – больше пяти лет опыта – senior.
- Ведущий тестировщик – QA tech lead.
Иногда можно встретить понятие «функциональный менеджер» (QA functional manager) – специалист, который управляет командой тестировщиков и тестированием конкретного проекта.
- Если у компании есть большой отдел качества, то самая высокая должность QA engineer – руководитель отдела (head of QA department).
Виды QA-инженеров еще делятся по продуктам и сферам:
- тестировщики сайтов;
- тестировщики мобильных приложений – mobile QA;
- юзабилити-тестирование – тестировщики проверяют удобство использования программы или сайта;
- тестировщики игр (game tester), клиент-банков и так далее.
По механизму тестирования и специализации выделяют три группы:
- Ручное, или мануальное, тестирование. Он пробует делать то, что в будущем будет делать пользователь.
- Автоматизированная проверка (automation QA). Здесь нужно использовать результаты ручного тестирования. Специалист пишет программный код, который имитирует действия пользователя. Это экономит время проверки. В таком случае тестировщику обязательно нужно знать язык программирования, но уметь писать код необязательно.
- Очень редко выделяют тестирование производительности (performance QA).
Инструменты для QA-инженера
Выбор инструментов для работы QA-инженера зависит от вида тестирования, личных предпочтений и места работы специалиста. Со временем у каждого тестировщика появляется свой набор инструментов, которым он пользуется.
Ручное тестирование
Инженер по тестированию прогнозирует, как будет вести себя пользователь, и проверяет разработанную программу. Его задача – найти поведение, которое будет отличаться от ожидаемого.
Ручное тестирование может проводиться:
- в рамках интеграционного тестирования – работа с другими ПО и системами;
- в рамках регрессионного – тестирование изменений;
- при системном функциональном тестировании.
Ручное тестирование помогает найти и устранить тонкие места, уменьшить число багов, обеспечить бесперебойную работу систем, оценить удобство использования программы.
Для ручного тестирования есть специальные программы. Там же QA-инженер общается с командой. Вот основные:
- Jira;
- Bugzilla;
- Redmine.
Еще QA-инженер создает и анализирует скриншоты с помощью специальных инструментов. Здесь специалисту нужны:
- Monosnap;
- Recordit API;
- Snagit;
- GreenShot.
Для тестирования часто нужны разные наборы данных. Для этого QA-инженеры используют инструменты-генераторы:
- Bugmagnet;
- Mockaroo.com.
Тестирование клиентского опыта покажет, удобен ли продукт для пользователей. Вот приложение, которые помогают это сделать быстрее:
- Reflector;
- User Zoom;
- Loop.
QA-инженеры часто пользуются списком задач, расписанным по пунктам, чтобы ничего не потерять. Для этого они используют:
- Sitechсo;
- Testpad;
- Teamsuccess.
Мобильные эмуляторы – тоже инструменты для тестирования работы программ.
В работе QA-инженеры используют такие мобильные эмуляторы:
- World Wide Web;
- BrowserStack;
- CrossBrowserTesting;
- Mobile Phone Emulator.
Многие приложения используют API программный интерфейс приложения. – Прим. ред.. Для его тестирования специалисту нужны:
- SoapUI;
- Postman.
Еще один важный этап проверки программных разработок – тестирование безопасности. В этом помогают программы:
- NetSparker;
- Acunetix Vulnerability Scanner;
- OWASP.
Нагрузочное тестирование
Нагрузочное тестирование проверяет скорость реакции системы на внешний запрос. Такая проверка показывает, отвечает ли приложение или устройство заявленным требованиям. В этом помогают:
- Apache JMeter;
- WebLOAD;
- Micro-Focus Loadrunner.
Автоматизированное тестирование
Автоматизированное тестирование, или автоматизация тестирования, – это метод тестирования ПО, который выполняется с помощью специальных программных средств. Такое тестирование значительно сокращает время поиска багов в сравнении с ручным. Помогают в этом такие инструменты:
- Selenium;
- TestComplete;
- Katalon Studio.
Типичный план рабочего дня QA-специалиста
В свой рабочий день QA-специалист выполняет такие задачи:
- Присутствует на офисных встречах, планирует задачи и делает отчеты по выполненным проектам.
- Пишет тест-кейсы. То есть четко описывает действия, которые нужно выполнить для проверки отдельной функции приложения. Возможно, записывает ошибки – смотря на какой стадии находится разработка программы. Еще он тестирует программы или приложения.
- Проверяет баг-трекинговые системы, появляются ли там исправленные ошибки.
- Изучает пожелания заказчика.
- Общается с разработчиками.
- Читает тестовую документацию.
Плюсы и минусы профессии QA engineer
Антон Мужайло, Quality Solutions Architect в GlobalLogic Ukraine, считает: QA-инженер видит весь процесс создания продукта, поэтому разбирается в том, как создавать ПО и постоянно совершенствует свои навыки.
Из минусов профессии он называет такие:
- это творческая работа, которая иногда требует нестандартного подхода;
- психологически тяжело указывать коллегам, что они сделали не так;
- сложно показать физический продукт – результат своей работы, из-за чего может падать мотивация.
Как стать QA-инженером
Обучиться специальности в Украине можно на факультете информатики и вычислительной техники или факультете прикладной математики в КПИ Национальный технический университет Украины «Киевский политехнический институт имени Игоря Сикорского». – Прим. ред.. Например, на кафедре системного программирования и специализированных компьютерных систем (СПСКС).
У Антона Лапоногова, QA engineer в Uklon, нет IT-образования. Он считает: если вы хотите стать тестировщиком, то можете пройти специальные курсы. Еще он рекомендует такие материалы для самостоятельного изучения:
- Книга «Тестирование Dot Com» Романа Савина;
- YouTube-канал «окиселева»;
- YouTube-канал Hillel IT School.
Артем Бородатюк делится руководством для новичка в QA от Netpeak Software. Еще он дает алгоритм, как им пользоваться:
- изучить первичную теорию;
- изучить вкладку с базовыми знаниями;
- отслеживать все мероприятия для QA – так вы найдете открытые дни, интернатуры и образовательные курсы;
- ходить на все бесплатные мероприятия и на платные – по возможности;
- отправлять резюме на все вакансии для начинающих QA и ходить на собеседования, пока не получите первую работу.
Еще важно заранее учить английский. Многие компании могут взять на работу стажера без опыта и образования, если тот хорошо знает английский. Поэтому даже вакансии на многих ресурсах по поиску работы на английском языке.
Вакансии QA-специалистов. Источник: jobs.dou.ua
Вы хорошо знаете теорию QA-инжиниринга, если можете ответить на вопросы:
- что такое тестирование и какие у него цели;
- что такое баг и каков его жизненный цикл;
- какие есть виды тестирования;
- какая документация используется при поиске ошибок.
QA улучшает процесс разработки, потому ему важно иметь навыки:
- разработчика – он должен понимать, как функционал приложения может быть технически ограничен и хотя бы поверхностно понимать код;
- бизнес-аналитика – он должен понимать рынок и целевую аудиторию, чтобы заранее предугадать путь клиента в новой программе;
- менеджера проекта – чтобы понимать, зачем делают ту или иную работу.
Карьерные перспективы
QA-инженеры могут развиваться в трех направлениях:
- Изучать новые области программирования и расти как QA в такой последовательности:
- junior QA;
- middle QA;
- senior QA;
- QA team lead;
- QA manager;
- head of QA department.
- Освоить автоматизированное тестирование и развиваться в этом направлении.
- Переквалифицироваться в бизнес-аналитика или программиста.
На сайте robota.ua в Украине больше 500 вакансий на QA разного уровня.
Источник: robota.ua
На DOU их больше 900.
Источник: jobs.dou.ua
Еще QA engineer может совмещать основную работу с преподаванием или консультированием.
Сколько зарабатывает QA engineer
По информации DOU, в среднем зарплата младшего QA-инженера – $600. Средняя зарплата специалиста опытом 1–3 года – больше $1,5 тыс. Старшие получают около от $2,8 тыс.
По информации сайта по поиску работы work.ua, средняя зарплата QA-инженера в Киеве – 27,5 тыс. грн, а в Украине – 19,5 тыс.
В зависимости от опыта и умений, на сайте по поиску работы djinni указаны зарплаты для QA-специалистов от $500 до $7 тыс. В среднем тестировщики зарабатывают $3,5 тыс.
Источник: djinni.co
Требования к junior для входа в профессию
Согласно карте знаний QA-отдела Netpeak Group, junior QA должен знать:
- различия между QA и QС тестированием;
- принципы тестирования;
- самые главные понятия;
- жизненный цикл ПО;
- методологии разработки;
- техники тест-дизайна;
- тестовые артефакты;
- цикл жизни бага.
Необязательно, но желательно разобраться, что такое верификация и валидация и как работать с таблицей принятия решения.
Еще junior должен знать такие виды тестирования:
- функциональное;
- тестирование сборки;
- тестирование безопасности;
- тестирование взаимодействия;
- нагрузочное;
- дымовое;
- санитарное;
- регрессионное;
- конфигурационное.
Из протоколов младший QA engineer должен знать:
- коды ответов сервера;
- HTTPS;
- HTTP.
Вывод
Профессия QA engineer – одна из c специальностей, которая позволяет начать работать в IT без технической подготовки. Задача QA-специалиста – следить за качеством продукта на всех этапах разработки.
Чтобы разобраться, что конкретно он делает, можно пройти специальные курсы или найти информацию самому. Например, изучить книги, посмотреть YouTube-каналы, почитать статьи на эту тему и так далее. Еще можно узнать, какие платные и бесплатные мероприятия проходят в вашем городе и онлайн и стараться их посещать.
Начать работать QA можно мануальным тестировщиком, а позже перейти в автоматизированное. Для этого нужно знать английский, разбираться в протоколах и знать, что самое главное в тестировании. Эта работа помогает понять, как делают ПО, но с другой стороны психологически может быть сложно все время говорить людям, где они сделали ошибку.
В Украине открыто более 900 вакансий на позицию QA. А зарплата новичка стартует от $500. Опытный тестировщик может зарабатывать больше $2,8 тыс.