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

80 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Профили QA-инженеров
Профили QA-инженеров нужны, чтобы оценивать коллег в соответствии с их уровнем на [performance review](goal-setting.md#performance-review). Это делает продвижение по карьерной лестнице понятным и прозрачным.
## Карьерная лестница
Карьерная лестница — это возможный путь развития сотрудника в Авито. Он зависит от того, какие задачи решает специалист и какие основные навыки использует в работе.
Сейчас в Авито существуют такие уровни QA-инженеров:
- [Е1](#е1)
- [Е2](#е2)
- [Е3](#е3)
- [Е4](#е4)
- [Е5](#е5)
- [Е6](#е6)
Двигаться ли по карьерной лестнице — это решение самого сотрудника. Многое зависит от его проактивности и желания учиться. Задача менеджера — помочь специалисту в развитии. Например, подключать к новым задачам, давать возможность для участия в кросс-функциональных проектах.
## Как работают профили
- Ожидания каждого следующего уровня добавляются к ожиданиям предыдущих. Например, 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
- Создаёт с нуля новые инструменты для обеспечения качества. Например, скрипты сравнения диффов инфомодели или фреймворк для интеграционного тестирования автозагрузки.
- Может провести исследование по оценке качества для пользователей и качества продукта в целом: тестирует гипотезы качества на пользователях, сравнивает свой продукт и конкурентов в плане качества. Например, проводит сравнительное тестирование продуктов, оценивает по аспектам качества относительно конкурентов.
- Имеет карту/модель рисков по всему кластеру, системно работает над предотвращением рисков в кластере.
- Координирует общекластерные проекты по тестированию.