Files
dev-roadmap-avito-playbook/QA-profile.md
Andrei Brovko 0a7a39adf1 Актуализированы ожидания от роли QA-инженера (#114)
* Актуализированы ожидания от роли QA-инженера.

* Небольшие грамматичечкие исправления

* Переформулировал предложение по Risk Based Testing

---------

Co-authored-by: Andrey Brovko <aybrovko@avito.ru>
2025-07-29 13:36:42 +03:00

12 KiB
Raw Permalink Blame History

Профили QA-инженеров

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

Карьерная лестница

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

Сейчас в Авито существуют такие уровни QA-инженеров:

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

Как работают профили

  • Ожидания каждого следующего уровня добавляются к ожиданиям предыдущих. Например, E4-инженер должен уметь делать всё то же самое, что E1, E2 и E3.
  • Сотрудник должен проявить навыки и компетенции своего или следующего профиля на деле. Просто уметь или хотеть делать недостаточно.
  • Если менеджер считает, что специалисту в команде не нужен какой-то навык, то его можно не учитывать.

Е1

  • Занимается ручным тестированием, составляет и тестирует по тест-кейсам или делает тестирование ad-hoc.
  • Решает задачи с подробным описанием скоупа тестирования.
  • Тестирует отдельные задачи.
  • Пишет чеклисты и тест-кейсы на основные позитивные и негативные сценарии.
  • Перепроверяет закрытые баги и пишет понятные и воспроизводимые багрепорты по ошибкам.

Е2

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

Е3

  • Обеспечивает качество на всех этапах реализации, следит за метриками после выкатки фичи, юзер-сторей или крупных фичей.
  • Составляет тестовые модели для части функциональности команды.
  • Самостоятельно решает задачи даже без описания подробного скоупа тестирования.
  • Поддерживает уже существующие и разрабатывает новые автотесты (e2e/интеграционные) на 2+ языках или уровнях.
  • Составляет тест-кейсы и обсуждает с разработчиками, как будет распределяться автоматизация по пирамиде тестирования. Следит за тем, чтобы команда придерживалась пирамиды тестирования.
  • Тестирует не только UI, но и уровни ниже: например, API.
  • Владеет и ведёт процессы SPT/ZBP в своей команде, обеспечивает необходимый SLO по решению проблем пользователей и багов.
  • Применяет и владеет процессом ATDD в команде, составляет критерии приёмки вместе с product owner.
  • Драйвит достижение baseline по Team Maturity Model (TMM) в QA-секции.
  • Может добавить дополнительные Quality Gates в CI/CD команды.
  • Использует подход Risk Based Testing в оценке и предотвращении рисков или другие методологии по работе с рисками, а также проводит оценку рисков у задач.
  • Разрабатывает недублирующие, оптимальные, стабильные автотесты. Улучшает стабильность уже существующих автотестов.

Е4

  • Обеспечивает качество всего функционала команды целиком.
  • На основе данных по покрытию тестовой модели и непосредственного тестирования, может предоставить полную информацию о проведённом тестировании, качестве и рисках для любого изменения, которое выкатывается в продакшен.
  • Актуализирует и владеет тестовой моделью всего функционала разрабатываемого продукта или системы, обеспечивает необходимое и достаточное покрытие тестами всей тестовой модели.
  • Координирует кросскомандное тестирование.
  • Доносит до команды информацию о состоянии качества и фокусирует команду на его улучшении.
  • Закрывает потребность в автоматизации тестирования по всем слоям пирамиды тестирования, включая все платформы, необходимые команде.
  • Прорабатывает вместе с разработчиками юнит-тесты; Может проверить качество покрытия юнит-тестами, которые пишут разработчики, через код ревью или с помощью мутационного тестирования;
  • Исследует проблемы flaky-тестов и самостоятельно устраняет причины, либо адресует руткозы flaky-тестов на ответственных и добивается их исправлений.
  • Если видит проблемы в большом количестве багов от команды, то исследует первопричину и меняет процессы обеспечения качества.
  • Является экспертом по QA внутри своей команды: обучает коллег тестировать через менторство, с объяснением теории и применением практики. Организует процессы тестирования, так, чтобы не являться боттл-неком для команды.
  • Проводит исследовательское тестирование с целями, сессиями и итоговыми отчётами.

Е5

  • Для больших проектов проводит оценку рисков, аргументировано объясняет, где и что может пойти не так.
  • Занимается улучшением общих инструментов тестирования, осуществляет вклад в общую экосистему тестирования компании: например, самостоятельно добавляет необходимый функционал в Resource Manager.
  • Комплексно подходит к обеспечению качества. Проводит сам или привлекает экспертов для проведения нефункционального тестирования - performance-тесты и security-тесты. Например, комплексно подходит к соблюдению NFR сервисами.
  • Владеет метриками качества своей команды/юнита, всегда может показать на объективных метриках, какая ситуация сейчас с качеством.
  • Участвует в разборах инцидентов, предотвращает повторные инциденты.
  • Является экспертом по QA внутри своего юнита или нескольких команд - обучает коллег тестировать как положено, с теорией и практикой.
  • Имеет карту/модель рисков по всему юниту, системно работает над предотвращением рисков в юните.
  • Разрабатывает и внедряет новые решения или улучшает существующие подходы, направленные на повышение эффективности автоматизации своего кластера.

Е6

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