diff --git a/QA-profile.md b/QA-profile.md index 0455603..215e125 100644 --- a/QA-profile.md +++ b/QA-profile.md @@ -22,48 +22,60 @@ - Если менеджер считает, что специалисту в команде не нужен какой-то навык, то его можно не учитывать. ### Е1 -- Тестирует отдельные задачи ad hoc, то есть без подготовки тестовой документации и без ожидаемого результата. -- Пишет чек-листы и тест-кейсы на позитивные и негативные сценарии. -- Перепроверяет закрытые баги и пишет понятные баг-репорты. +- Занимается ручным тестированием, составляет и тестирует по тест-кейсам или делает тестирование ad-hoc . +- Решает задачи с подробным описанием скоупа тестирования. +- Тестирует отдельные задачи. +- Пишет чеклисты и тест-кейсы на основные позитивные и негативные сценарии. +- Перепроверяет закрытые баги и пишет понятные и воспроизводимые багрепорты по ошибкам. ### Е2 -- Составляет тестовые модели для части функциональности продукта. -- Может в любой момент рассказать о качестве фич, с которыми работает. -- Разрабатывает и поддерживает тест-кейсы и интеграционные и е2е-автотесты. -- Применяет основные техники тест-дизайна, например классы эквивалентности. -- Следит за полнотой покрытия тестами, например учитывает негативные сценарии, граничные значения, проверяет все возможные ветви бизнес-процессов. -- Разбирает отчёты автотестов, перепроверяет ошибки. -- Использует подход risk-based testing или другую методологию, чтобы оценить риски по задачам. +- При тестировании задач пишет тест-кейсы и автотесты на них. +- Может составить тест-кейсы для конкретных фичей, реализованных в задаче, с применением основных техник тест-дизайна: например, классы эквивалентности. +- Может всегда быстро предоставить актуальную и правдивую информацию о качестве разрабатываемых фичей - в задачах всегда понятно, что тестировалось руками и автоматически. +- Разбирает отчёты автотестов, перепроверяет ошибки. +- Разрабатывает новые автотесты е2е и/или интеграционного уровня, поддерживает их. +- Знает основные техники тест-дизайна и активно их использует, когда они применимы: оптимизирует проверки, обеспечивает полноту покрытия через техники тест-дизайна. Например покрывает негативные сценарии, граничные значения, проверяет все возможные ветви бизнес-процессов. Разрабатывает тест-кейсы и автотесты на основе техник тест-дизайна. ### Е3 -- Владеет тестовой моделью всей функциональности продукта, следит, чтобы покрытие кода было полным. -- Тестирует продукт на разных уровнях, например UI и API. -- Разрабатывает, поддерживает и улучшает интеграционные, компонентные, е2е-автотесты. -- Применяет шаблон проектирования PageObjects. -- Следит, чтобы команда придерживалась пирамиды тестирования. -- Составляет тест-кейсы и обсуждает с разработчиками, как автоматизация распределена по пирамиде тестирования. -- Ведёт процессы SPT/ZBP в команде, обеспечивает SLO для решения проблем пользователей и багов. -- Вместе с владельцем продукта составляет критерии приёмки по процессу ATDD. -- Отслеживает достижение baseline по team maturity model в QA-секции. -- Обучает коллег по команде лучшим практикам тестирования. +- Обеспечивает качество на всех этапах реализации, следит за метриками после выкатки фичи, юзер-сторей или крупных фичей. +- Составляет тестовые модели для части функциональности команды. +- Самостоятельно решает задачи даже без описания подробного скоупа тестирования. +- Кроме новых автотестов е2е и тестов интеграционного уровня, может разрабатывать тесты компонентного уровня. +- Использует паттерн pageObjects. Разрабатывает недублирующие, оптимальные, стабильные тесты. Улучшает стабильность уже существующих автотестов. +- Составляет тест-кейсы и обсуждает с разработчиками, как будет распределяться автоматизация по пирамиде тестирования. Следит за тем, чтобы команда придерживалась пирамиды тестирования. +- Тестирует не только UI, но и уровни ниже: например, API. +- Владеет и ведёт процессы SPT/ZBP в своей команде, обеспечивает должное SLO по решению проблем пользователей и багов. +- Применяет и владеет процессом ATDD в команде, составляет критерии приёмки вместе с product owner. +- Драйвит достижение baseline по ТММ в QA-секции. +- Может добавить дополнительные Quality Gates в CI/CD команды. +- Использует подход Risk Based Testing в оценке и предотвращении рисков, либо использует другие методологии по работе с рисками, проводит оценку рисков у задач. ### Е4 -- В любой момент может рассказать команде о качестве всех фич и продукта в целом. -- Фокусирует команду на улучшении качества продукта. -- Разрабатывает тесты на backend и client-side, чтобы обеспечивать покрытие на всех уровнях системы. -- Прорабатывает юнит-тесты вместе с разработчиками. -- Проверяет качество покрытия юнит-тестами через код-ревью или с помощью мутационного тестирования. -- Исследует проблемы flaky-тестов и самостоятельно устраняет причины. -- Меняет процессы, если видит баги от команды. +- Обеспечивает качество всего функционала команды целиком. +- На основе данных по покрытию тестовой модели и непосредственного тестирования, может предоставить полную информацию о проведённом тестировании, качестве и рисках для любого изменения, которое выкатывается в продакшен. +- Актуализирует и владеет тестовой моделью всего функционала разрабатываемого продукта или системы, обеспечивает необходимое и достаточное покрытие тестами всей тестовой модели. +- Координирует кросскомандное тестирование. +- Доносит до команды информацию о состоянии качества и фокусирует команду на его улучшении. +- Умеет разрабатывать тесты на backend и хотя бы на один client-side, чтобы обеспечивать покрытие на всех уровнях системы. +- Прорабатывает вместе с разработчиками юнит-тесты. +- Может проверить качество покрытия юнит-тестами, которые пишут разработчики, через код ревью или с помощью мутационного тестирования. +- Исследует проблемы flaky-тестов и самостоятельно устраняет причины, либо адресует руткозы флаки-тестов на ответственных и добивается их исправлений. +- Если видит проблемы в большом количестве багов от команды, то исследует первопричину и меняет процессы обеспечения качества. +- Является экспертом по QA внутри своей команды: обучает коллег тестировать через менторство, с объяснением теории и применением практики. Организует процессы тестирования, так, чтобы не являться боттл-неком для команды. +- Может настроить автоматическую сборку тестового контура для интеграционного тестирования фичей в юнита. Например, прогон специфичных тестов на релизах Инфомодели. +- Проводит исследовательское тестирование с целями, сессиями и итоговыми отчётами. ### Е5 -- В любой момент может показать качество продукта с помощью объективных метрик. -- Оценивает риски в больших проектах. Объясняет, что, где и почему может пойти не так. -- Разрабатывает автотесты больше чем на трёх разных платформах. -- Может настроить тестовый контур для интеграционного тестирования фич в юните и добавить дополнительные Quality Gates в CI/CD команды. -- Улучшает инструменты тестирования в команде и экосистеме тестирования Авито. -- Проводит нефункциональные тесты, например performance и security, привлекает для этого экспертов. +- Для больших проектов проводит оценку рисков, аргументировано объясняет, где и что может пойти не так. +- Занимается улучшением общих инструментов тестирования, осуществляет вклад в общую экосистему тестирования компании: например, самостоятельно добавляет необходимый функционал в Resource Manager. +- Комплексно подходит к обеспечению качества. Проводит сам или привлекает экспертов для проведения нефункционального тестирования - performance-тесты и Security-тесты. Например, комплексно подходит к соблюдению NFR сервисами. +- Владеет метриками качества своей команды/юнита, всегда может показать на объективных метриках, какая ситуация сейчас с качеством. +- Участвует в разборах инцидентов, предотвращает повторные инциденты. +- Является экспертом по QA внутри своего юнита или нескольких команд - обучает коллег тестировать как положено, с теорией и практикой. +- Имеет карту/модель рисков по всему юниту, системно работает над предотвращением рисков в юните. ### Е6 -- Создаёт новые инструменты для обеспечения качества. Например, фреймворк для интеграционного тестирования автозагрузки или скрипты сравнения диффов в системе управления метаданными Авито. -- Проводит исследования, чтобы оценить качество продукта в целом. Например, проверяет гипотезы качества на пользователях. Проводит сравнительное тестирование с продуктами конкурентов. +- Создаёт с нуля новые инструменты для обеспечения качества. Например, скрипты сравнения диффов инфомодели или фреймворк для интеграционного тестирования автозагрузки. +- Может провести исследование по оценке качества для пользователей и качества продукта в целом: тестирует гипотезы качества на пользователях, сравнивает свой продукт и конкурентов в плане качества. Например, проводит сравнительное тестирование продуктов, проводит оценку по аспектам качества относительно конкурентов. +- Имеет карту/модель рисков по всему кластеру, системно работает по предотвращению рисков в кластере. +- Координирует общекластерные проекты по тестированию.