Прокачайся в код-ревью: для первых 50 участников — курс бесплатный

время чтения: 4 мин

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

Как устроен процесс тестирования, что именно проверяют QA-специалисты и какими инструментами пользуются? Ответы на эти и другие вопросы — в новой публикации блога Anywhere Club.

Автор статьи — Software Testing Team Leader в EPAM Александр Белозор.

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

Подробнее о профессии

Уровни QA-специалистов

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

  1. выполняют технические задачи,
  2. выстраивают рабочие процессы и следят за ними,
  3. проводят отбор кандидатов, обучение, коммуникацию со стейкхолдерами.

Если говорить об уровне подготовки и компетенциях конкретного специалиста, обычно выделяют Junior, Middle и Senior QA. Сотрудников уровня Senior с рядом дополнительных менеджерских задач условно можно разделить на Lead QA, Testing Team Lead, Test Manager. Давайте разберем более подробно:

  • Junior QA — начинающий тестировщик, у которого горят глаза, но мало опыта. Иногда он стесняется задавать уточняющие вопросы: из-за этого на выполнение задач может уходить больше времени, чем хотелось бы.
  • Middle QA уже накопил некоторый опыт в тестировании приложений и обычно успевает вовремя выполнять свои задачи. Однако, по моим наблюдениям, такие специалисты часто переоценивают свои силы, поэтому все еще требуют контроля со стороны лида или менеджера.
  • Senior QA — на мой взгляд, это идеально сбалансированный сотрудник. У него есть необходимые теоретические знания и богатый практический опыт. Этот специалист уже может заниматься не только тестированием, но и отвечать за небольшой стрим в рамках проекта с командой из нескольких Junior или Middle QA.
  • Lead QA несет ответственность за качество продукта. Помимо тестирования он активно взаимодействует с командой, распределяет ресурсы, планирует, описывает и внедряет процессы обеспечения качества, общается с заказчиком или стейкхолдерами на проекте. Lead QA — это ментор, который передает знания младшим сотрудникам, обучает их, а также проводит ассессменты.
  • Testing Team Lead — специалист по тестированию с отличными коммуникативными качествами и умением работать в режиме многозадачности. Он руководит командой и планирует будущую загрузку сотрудников на проекте.
  • Test Manager принимает участие в пресейле и апсейле, следит за общим скоупом работы для сотрудников, но при этом может заниматься и проектными активностями.
Как стать успешным QA-инженером?

Как устроен процесс тестирования

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

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

Тестирование ПО — это довольно длительный процесс, но Lead QA всегда может определить границы финального тестирования, чтобы избежать избыточного тестирования и убедиться, что программный продукт соответствует заявленному качеству. И даже после окончания проекта основная идея может расширяться: QA-специалисты вместе с командой разработки предлагают дальнейшие пути развития проекта (продукта), так как команда уже сработана и все нужные инструменты настроены.

Тестирование безопасности

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

Более детальным тестированием безопасности и поиском уязвимостей занимаются QA-специалисты с экспертизой в области penetration-тестирования (тестирования на проникновение), работающие с инструментами тестирования безопасности.

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

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

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

Что изучать начинающему Automation QA-инженеру?

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

Для того, чтобы эффективно организовать процесс тестирования, есть различные инструменты. Стоит отметить, что даже ручные тестировщики уже не проводят тестирование вручную, а пользуются инструментами для интеграционного тестирования — Postman, Swagger, SoapUI. К ним можно добавить вспомогательные тулы, например HTML Viewer, JSON Formatter, Notepad++ и другие. Я рекомендую пройти дополнительные курсы, так как это поможет быстро разобраться в том же Swagger, научиться делать верные запросы в Postman и объединять все в коллекции. Таким образом тестировщики могут проверять back-end до разработки front-end.

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

Заключение

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