Домен
Тестирование и QA
Профиль навыка
Hypothesis, QuickCheck, генеративное тестирование, shrinking, invariants
Ролей
8
где встречается этот навык
Грейдов
5
сформированная дорожка роста
Обязательных требований
25
ещё 15 — необязательные
Тестирование и QA
Стратегия тестирования
17.03.2026
Выберите текущий грейд и сравните ожидания. Карточки ниже покажут, что нужно закрыть для следующего уровня.
Таблица показывает, как меняется глубина владения навыком от Junior до Principal.
| Роль | Обязательность | Описание |
|---|---|---|
| Backend Developer (Elixir) | Понимает основы property-based тестирования с StreamData и ExUnitProperties. Пишет базовые property-тесты для чистых функций Elixir. Следует командным соглашениям по определению генераторов и структуре тестов. | |
| Backend Developer (Rust) | Понимает основы property-based тестирования с крейтами proptest и quickcheck. Пишет базовые property-тесты, используя систему типов Rust для генерации входных данных. Следует командным рекомендациям по композиции стратегий. | |
| Backend Developer (Scala) | Понимает основы property-based тестирования с ScalaCheck. Пишет базовые генераторы и свойства для типов данных Scala. Следует командным практикам проверки алгебраических законов и инстансов тайпклассов Cats-effect. | |
| Compiler Engineer | Знает базовые концепции property based testing для compiler engineer и умеет применять их в типовых задачах. Использует стандартные инструменты и следует установленным практикам команды. Понимает когда и почему применяется данный подход. | |
| Language Tooling Engineer | Понимает основы property-based тестирования для языковых инструментов. Пишет базовые property-тесты для round-trip парсинга и инвариантов AST. Следует командным соглашениям по построению генераторов синтаксических структур. | |
| QA Automation Engineer | Обязателен | Понимает основы property-based тестирования для автоматизации QA. Пишет базовые property-тесты с генераторами данных для типичных входных доменов. Следует рекомендациям команды по интеграции property-тестов в существующие тест-сьюты. |
| QA Security Engineer | Обязателен | Понимает основы property-based тестирования для проверки безопасности. Применяет базовые техники фаззинга для валидации санитизации ввода и граничных свойств. Следует командным рекомендациям по определению инвариантов безопасности в тестах. |
| Smart Contract Developer | Понимает основы property-based тестирования для смарт-контрактов. Пишет базовые инвариантные тесты с использованием Foundry fuzz и Echidna. Следует командным практикам определения свойств состояния контрактов и проверки утверждений. |
| Роль | Обязательность | Описание |
|---|---|---|
| Backend Developer (Elixir) | Реализует property-based тесты в Elixir с использованием StreamData. Определяет генераторы для базовых типов и Ecto-схем, пишет свойства для проверки инвариантов бизнес-логики. Интегрирует StreamData с ExUnit через use ExUnitProperties для автоматической генерации тест-кейсов. | |
| Backend Developer (Rust) | Применяет property-based тестирование в Rust через proptest крейт: генерация случайных входных данных с Strategy, проверка инвариантов бизнес-логики. Пишет shrinkable-стратегии для доменных типов и использует prop_assert! для верификации свойств. | |
| Backend Developer (Scala) | Применяет property-based тестирование в Scala через ScalaCheck: определяет свойства для чистых функций, генерирует тестовые данные через Arbitrary и Gen. Интегрирует ScalaCheck с ScalaTest/MUnit, понимает концепцию shrinking для минимизации failing cases в доменных моделях. | |
| Compiler Engineer | Уверенно применяет property based testing для compiler engineer при решении нестандартных задач. Самостоятельно выбирает оптимальный подход и инструменты. Анализирует trade-offs и предлагает улучшения существующих решений. | |
| Language Tooling Engineer | Самостоятельно проектирует property-тесты для проходов компилятора и трансформаций кода. Создаёт кастомные генераторы для сложных структур AST. Интегрирует property-based тест-сьюты в CI/CD для обнаружения семантических регрессий. | |
| QA Automation Engineer | Обязателен | Самостоятельно разрабатывает property-based тест-сьюты с кастомными генераторами и стратегиями сжатия. Применяет техники проектирования тестов для максимального покрытия входного пространства. Интегрирует property-тесты в CI/CD и покрывает сложные краевые случаи. |
| QA Security Engineer | Обязателен | Применяет property-based testing для security: генерация random inputs для fuzzing, invariant checking для authorization rules. Использует Hypothesis/QuickCheck для security properties. |
| Smart Contract Developer | Самостоятельно разрабатывает инвариантные тест-сьюты для протоколов смарт-контрактов с Foundry и Echidna. Проектирует property-утверждения для балансов токенов, контроля доступа и переходов состояний. Интегрирует фазз-кампании в CI/CD. |
| Роль | Обязательность | Описание |
|---|---|---|
| Backend Developer (Elixir) | Обязателен | Проектирует комплексное property-based тестирование для Elixir-проектов через StreamData. Создаёт кастомные генераторы для сложных доменных объектов, реализует stateful-тесты для GenServer. Применяет shrinking для минимизации failing-кейсов, тестирует Ecto-запросы и протоколы. |
| Backend Developer (Rust) | Обязателен | Разрабатывает комплексные proptest-стратегии для Rust-сервисов: композиция стратегий для сложных доменных объектов, stateful-тестирование через prop_state_machine. Интегрирует fuzzing через cargo-fuzz и AFL для discovery нестабильных путей и тестирования unsafe-кода. |
| Backend Developer (Scala) | Обязателен | Проектирует стратегию property-based тестирования для Scala-сервисов: custom generators для доменных типов, stateful property testing для Akka Actors. Реализует комбинаторные генераторы через ScalaCheck или ZIO Test Gen, тестирует инварианты бизнес-логики и сериализацию/десериализацию Protobuf-сообщений. |
| Compiler Engineer | Экспертно применяет property based testing для compiler engineer для проектирования сложных систем. Оптимизирует существующие решения и предотвращает архитектурные ошибки. Проводит code review и обучает коллег лучшим практикам. | |
| Language Tooling Engineer | Обязателен | Проектирует стратегию property-based тестирования для всего языкового тулчейна. Реализует автоматическую верификацию корректности компилятора, инвариантов оптимизатора и свойств кодогенерации. Менторит команду по эффективному проектированию генераторов и сжатию. |
| QA Automation Engineer | Обязателен | Проектирует стратегию property-based тестирования на уровне организации для всех уровней тестирования. Реализует автоматическое model-based тестирование и stateful-верификацию свойств. Оптимизирует пирамиду тестов, заменяя избыточные примерные тесты свойствами. Менторит команду. |
| QA Security Engineer | Обязателен | Проектирует property-based security tests: stateful testing для authentication flows, model-based testing для RBAC, generative fuzzing для input validation. |
| Smart Contract Developer | Обязателен | Проектирует комплексную стратегию инвариантного тестирования для DeFi-протоколов и сложных контрактных систем. Реализует multi-contract stateful фаззинг с Echidna и Foundry. Оптимизирует конфигурации фазз-кампаний для максимального обнаружения уязвимостей. Менторит команду. |
| Роль | Обязательность | Описание |
|---|---|---|
| Backend Developer (Elixir) | Обязателен | Внедряет property-based тестирование как стандартную практику во всех Elixir-проектах. Определяет стратегию тестирования через StreamData для критических модулей, обучает команду написанию свойств и генераторов. Создаёт библиотеку общих генераторов для доменных объектов организации. |
| Backend Developer (Rust) | Обязателен | Определяет стандарты property-based тестирования для Rust-платформы: обязательные proptest-сьюты для критической бизнес-логики, CI-интеграция с regression-файлами. Разрабатывает shared-библиотеки стратегий для доменных типов и стандарты fuzzing-покрытия для unsafe-кода. |
| Backend Developer (Scala) | Обязателен | Определяет стандарты property-based тестирования в Scala-команде: обязательные property-тесты для codec-ов и сериализации, библиотека общих генераторов. Ревьюит качество свойств, внедряет ZIO Test для effect-based property testing и интегрирует генераторы с контрактными тестами между сервисами. |
| Compiler Engineer | Устанавливает стандарты применения property based testing для compiler engineer в команде и принимает архитектурные решения. Определяет технический roadmap с учётом данного навыка. Менторит senior инженеров и влияет на практики смежных команд. | |
| Language Tooling Engineer | Обязателен | Определяет стратегию property-based тестирования на уровне продукта для платформ языковых инструментов. Устанавливает стандарты качества для верификации компилятора и парсера с помощью формальных свойств. Внедряет культуру specification-driven тестирования в инженерной организации. |
| QA Automation Engineer | Обязателен | Определяет стратегию property-based тестирования на уровне продукта для обеспечения качества. Устанавливает стандарты для спецификации свойств, библиотек генераторов и метрик покрытия. Внедряет культуру shift-left тестирования, встраивая property-based верификацию на ранних этапах жизненного цикла разработки. |
| QA Security Engineer | Обязателен | Определяет стандарты property-based security testing: templates для типовых security properties (auth, authz, input validation). Внедряет в security testing workflow. |
| Smart Contract Developer | Обязателен | Определяет testing strategy на уровне продукта. Формирует стандарты quality assurance. Внедряет shift-left testing culture. |
| Роль | Обязательность | Описание |
|---|---|---|
| Backend Developer (Elixir) | Обязателен | Определяет стратегию property-based тестирования для Elixir-платформы организации. Разрабатывает фреймворк на StreamData с генераторами для всех доменов, интегрирует stateful-тестирование для распределённых систем. Внедряет model-based testing для верификации OTP-поведений. |
| Backend Developer (Rust) | Обязателен | Формирует стратегию формальной верификации и property-testing в организации: комбинация proptest, cargo-fuzz и Kani (bounded model checking) для критических компонентов. Определяет процессы continuous fuzzing через OSS-Fuzz, стандарты доказательства корректности и coverage-метрики. |
| Backend Developer (Scala) | Обязателен | Формирует культуру property-based тестирования на уровне организации: стандарты для Scala-проектов, общие библиотеки генераторов доменных типов. Определяет интеграцию property-testing с formal verification подходами, внедряет mutation testing через Stryker4s для оценки эффективности тестовых свойств. |
| Compiler Engineer | Формирует стратегию применения property based testing для compiler engineer на уровне организации. Определяет best practices и влияет на выбор технологий за пределами своей команды. Является признанным экспертом в данной области. | |
| Language Tooling Engineer | Обязателен | Определяет QA-стратегию организации. Формирует quality engineering culture. Внедряет platform-решения для тестирования. |
| QA Automation Engineer | Обязателен | Определяет QA-стратегию организации. Формирует quality engineering culture. Внедряет platform-решения для тестирования. |
| QA Security Engineer | Обязателен | Проектирует generative security testing: AI-assisted fuzzing, automated property discovery, model-based security verification. Определяет organizational adoption strategy. |
| Smart Contract Developer | Обязателен | Определяет QA-стратегию организации. Формирует quality engineering culture. Внедряет platform-решения для тестирования. |