<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Yuri Kan · Senior QA Lead on Yuri Kan - Senior QA Lead и эксперт по автоматизации</title><link>https://yrkan.com/ru/</link><description>Recent content in Yuri Kan · Senior QA Lead on Yuri Kan - Senior QA Lead и эксперт по автоматизации</description><generator>Hugo</generator><language>ru</language><atom:link href="https://yrkan.com/ru/index.xml" rel="self" type="application/rss+xml"/><item><title>Cypress v15.13.0: Обновления Stubbing и Component Testing</title><link>https://yrkan.com/ru/tools-updates/cypress-v15-13-whats-new/</link><pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/cypress-v15-13-whats-new/</guid><description>&lt;h1 id="cypress-v15130-ключевые-обновления-для-автоматизации-qa"&gt;Cypress v15.13.0: Ключевые Обновления для Автоматизации QA &lt;a href="#cypress-v15130-%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-%d0%b4%d0%bb%d1%8f-%d0%b0%d0%b2%d1%82%d0%be%d0%bc%d0%b0%d1%82%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b8-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Cypress.io выпустила версию v15.13.0 24 марта 2026 года, внеся ряд улучшений в популярный фреймворк для автоматизации тестирования. Это обновление направлено на повышение удобства для разработчиков и надежности тестов.&lt;/p&gt;
&lt;h3 id="tldr"&gt;TL;DR &lt;a href="#tldr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Расширенные возможности &lt;code&gt;cy.intercept()&lt;/code&gt; для продвинутого сетевого stubbing и сопоставления запросов.&lt;/li&gt;
&lt;li&gt;Улучшенная поддержка Component Testing, особенно для современных JavaScript фреймворков.&lt;/li&gt;
&lt;li&gt;Исправления стабильности &lt;code&gt;cy.origin()&lt;/code&gt; в сложных сценариях кросс-доменного тестирования.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ключевые-изменения"&gt;Ключевые Изменения &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Новые Возможности:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Jenkins 2.558: Обновления UI для QA-инженеров</title><link>https://yrkan.com/ru/tools-updates/jenkins-jenkins-2-558-whats-new/</link><pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/jenkins-jenkins-2-558-whats-new/</guid><description>&lt;h2 id="jenkins-2558-обновления-ui-для-qa-инженеров"&gt;Jenkins 2.558: Обновления UI для QA-инженеров &lt;a href="#jenkins-2558-%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-ui-%d0%b4%d0%bb%d1%8f-qa-%d0%b8%d0%bd%d0%b6%d0%b5%d0%bd%d0%b5%d1%80%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Jenkins 2.558, выпущенный 07.04.2026, сосредоточен на улучшениях пользовательского интерфейса и незначительных исправлениях ошибок. Это обновление направлено на повышение ясности и оптимизацию взаимодействия внутри платформы, что полезно для рабочих процессов DevOps и QA.&lt;/p&gt;
&lt;h3 id="ключевые-изменения"&gt;Ключевые изменения &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Новые функции и улучшения&lt;/strong&gt;: Jenkins 2.558 представляет несколько улучшений пользовательского интерфейса. Административные мониторы теперь отображаются более наглядно, обеспечивая лучшую видимость состояния системы. Причины сборок в подсказках очереди и обзоре сборок дедуплицированы, что уменьшает визуальный шум и упрощает идентификацию основных триггеров. Новое диалоговое окно упрощает процесс добавления или редактирования описаний для jobs, builds и views, повышая удобство использования.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Исправления ошибок&lt;/strong&gt;: Конкретное исправление устраняет проблему в виджете очереди, обеспечивая постоянное количество ячеек таблицы (&lt;code&gt;&amp;lt;td&amp;gt;&lt;/code&gt;), что улучшает стабильность макета.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Для разработчиков плагинов&lt;/strong&gt;: Изменения, касающиеся отображения административных мониторов, также затрагивают разработчиков плагинов, требуя согласования с обновленным UI для обеспечения единообразного пользовательского опыта.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="влияние-на-команды-qa"&gt;Влияние на команды QA &lt;a href="#%d0%b2%d0%bb%d0%b8%d1%8f%d0%bd%d0%b8%d0%b5-%d0%bd%d0%b0-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Эти обновления повышают ясность и удобство использования Jenkins, облегчая инженерам QA отслеживание статусов сборок и управление конфигурациями jobs. Улучшенный UI может оптимизировать ежедневное взаимодействие, особенно при работе со сложными &lt;a href="https://yrkan.com/ru/blog/jenkins-pipeline-for-test-automation/"&gt;Jenkins pipelines для автоматизации тестирования&lt;/a&gt;. Лучшая видимость и уменьшение информационного шума способствуют более эффективному мониторингу автоматизированных тестов.&lt;/p&gt;</description></item><item><title>Qase API Client v2.0.7: Обновление Спецификации и Тестирования</title><link>https://yrkan.com/ru/tools-updates/qase-qase-api-v2-client-v1-0-whats-new/</link><pubDate>Sat, 09 May 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/qase-qase-api-v2-client-v1-0-whats-new/</guid><description>&lt;h2 id="tldr"&gt;TL;DR &lt;a href="#tldr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;API-клиенты обновлены до последней спецификации Qase.&lt;/li&gt;
&lt;li&gt;Улучшено интеграционное тестирование с &lt;code&gt;reporters-validator&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Незначительные обновления зависимостей (&lt;code&gt;handlebars&lt;/code&gt;, &lt;code&gt;vite&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;API-клиент Qase был обновлен в соответствии с последней спецификацией API. Это обеспечивает совместимость и доступ к самым актуальным функциям и конечным точкам, предоставляемым Qase TMS. Полную информацию можно найти в &lt;a href="https://github.com/qase-tms/qase-javascript/compare/qase-api-client-v1.1.5...qase-api-v2-client-v1.0.7"&gt;официальном списке изменений&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Кроме того, улучшено интеграционное тестирование за счет внедрения &lt;code&gt;reporters-validator&lt;/code&gt;. Это изменение повышает надежность и стабильность репортеров Qase.&lt;/p&gt;</description></item><item><title>MSW v2.13.0: Быстрый Мокинг, Чистые Логи</title><link>https://yrkan.com/ru/tools-updates/msw-v2-13-whats-new/</link><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/msw-v2-13-whats-new/</guid><description>&lt;p&gt;Mock Service Worker (MSW) выпустил версию v2.13.0, минорное обновление с v2.12.12, сфокусированное на производительности и ясности. Это обновление, датированное 2026-04-06, относится к категории Mobile and API Testing.&lt;/p&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Новые Возможности:&lt;/strong&gt; MSW v2.13.0 представляет API &lt;code&gt;defineNetwork&lt;/code&gt;, знаменуя переход к новой архитектуре сетевого источника. Это изменение упрощает перехват и обработку сетевых запросов MSW. Внутренне, поиск обработчиков теперь является операцией O(1), что значительно повышает производительность, особенно в приложениях с большим количеством мок-обработчиков. Фильтрация обработчиков также улучшена, теперь используется прямое свойство &lt;code&gt;kind&lt;/code&gt; вместо проверок &lt;code&gt;instanceof&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Oxlint apps_v1.59.0: Улучшения LSP, Новые Правила, Рост Производительности</title><link>https://yrkan.com/ru/tools-updates/oxlint-apps_v1-59-whats-new/</link><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/oxlint-apps_v1-59-whats-new/</guid><description>&lt;h2 id="oxlint-apps_v1590-улучшения-lsp-новые-правила-рост-производительности"&gt;Oxlint apps_v1.59.0: Улучшения LSP, Новые Правила, Рост Производительности &lt;a href="#oxlint-apps_v1590-%d1%83%d0%bb%d1%83%d1%87%d1%88%d0%b5%d0%bd%d0%b8%d1%8f-lsp-%d0%bd%d0%be%d0%b2%d1%8b%d0%b5-%d0%bf%d1%80%d0%b0%d0%b2%d0%b8%d0%bb%d0%b0-%d1%80%d0%be%d1%81%d1%82-%d0%bf%d1%80%d0%be%d0%b8%d0%b7%d0%b2%d0%be%d0%b4%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Для получения полной информации, обратитесь к официальным примечаниям к выпуску OxC.&lt;/p&gt;
&lt;h3 id="tldr"&gt;TL;DR &lt;a href="#tldr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Oxlint LSP теперь по умолчанию показывает и исправляет безопасные предложения, оптимизируя рабочие процессы разработчиков.&lt;/li&gt;
&lt;li&gt;Внедрено множество новых правил линтера для Unicorn, ESLint, React, Jest и Vitest для улучшения проверки качества кода.&lt;/li&gt;
&lt;li&gt;Значительные улучшения производительности в парсере NAPI и плагинах линтера, ускоряющие анализ.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Критические изменения (Breaking Change):&lt;/strong&gt; Значительная корректировка рабочего процесса: Oxlint LSP теперь по умолчанию показывает и автоматически применяет безопасные предложения (&lt;code&gt;Show/fix safe suggestions by default&lt;/code&gt;). Это упрощает разработку, предлагая немедленные, не нарушающие работу улучшения кода непосредственно в редакторе, что потенциально сокращает время ручного рефакторинга.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Новые функции (Features):&lt;/strong&gt; Этот выпуск представляет множество новых правил линтера, разработанных для повышения качества и согласованности кода. Для &lt;code&gt;unicorn&lt;/code&gt; правила &lt;code&gt;prefer-import-meta-properties&lt;/code&gt; и &lt;code&gt;no-useless-iterator-to-array&lt;/code&gt; способствуют современным практикам JavaScript. &lt;code&gt;eslint&lt;/code&gt; получает &lt;code&gt;no-restricted-exports&lt;/code&gt; и &lt;code&gt;object-shorthand&lt;/code&gt;, помогая обеспечивать границы модулей и лаконичный синтаксис. Разработчики React получат выгоду от &lt;code&gt;hook-use-state&lt;/code&gt; и &lt;code&gt;prefer-function-component&lt;/code&gt; для улучшения структуры компонентов. Пользователи Jest и Vitest увидят &lt;code&gt;padding-around-after-all-blocks&lt;/code&gt; и &lt;code&gt;prefer-snapshot-hint&lt;/code&gt;, улучшающие читаемость и поддерживаемость тестов. Несколько правил, включая &lt;code&gt;consistent-return&lt;/code&gt; и &lt;code&gt;no-unnecessary-type-conversion&lt;/code&gt;, перешли из категории &lt;code&gt;nursery&lt;/code&gt; в более стабильные категории (&lt;code&gt;suspicious&lt;/code&gt; или &lt;code&gt;style&lt;/code&gt;), что указывает на их надежность. LSP также получает важный тип действия с кодом &lt;code&gt;source.fixAllDangerous.oxc&lt;/code&gt;, предлагающий более мощные автоматические исправления, и улучшенные диагностические заметки для более четкого объяснения проблем.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Исправления ошибок (Bug Fixes):&lt;/strong&gt; Было устранено множество проблем, что повысило точность и надежность Oxlint. Ложные срабатывания были исправлены в правилах, таких как &lt;code&gt;prefer-array-flat-map&lt;/code&gt; (Unicorn), &lt;code&gt;no-unused-private-class-members&lt;/code&gt;, и &lt;code&gt;no-array-index-key&lt;/code&gt;, что снижает разочарование разработчиков. Исправления также включают улучшенную обработку &lt;code&gt;node_modules&lt;/code&gt; и вложенных конфигураций в LSP, обеспечивая правильную область линтинга. Важные исправления стабильности, такие как экспорт &lt;code&gt;package.json&lt;/code&gt; для &lt;code&gt;oxlint&lt;/code&gt; и &lt;code&gt;oxfmt&lt;/code&gt; и распространение ошибок записи файлов в &lt;code&gt;oxfmt&lt;/code&gt;, способствуют созданию более надежного инструмента.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Улучшения производительности (Performance Enhancements):&lt;/strong&gt; Значительные внутренние оптимизации направлены на парсер NAPI и плагины линтера. Эти улучшения сосредоточены на ускорении декодирования строк UTF-8 и десериализации &lt;code&gt;raw&lt;/code&gt; полей, особенно для источников, не содержащих ASCII символов. Эти изменения напрямую приводят к сокращению времени анализа кода, обеспечивая более быструю обратную связь для разработчиков и повышая общую эффективность.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="impact-for-qa-teams"&gt;Impact for QA Teams &lt;a href="#impact-for-qa-teams" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Команды QA получают выгоду от этих обновлений за счет улучшения качества кода на ранних этапах разработки. Новые правила линтера могут выявлять больше потенциальных проблем раньше в цикле разработки, сокращая количество дефектов, достигающих тестирования. Увеличение производительности означает более быструю обратную связь для разработчиков, что потенциально приводит к более быстрому устранению ошибок и более стабильным сборкам для QA.&lt;/p&gt;</description></item><item><title>Schemathesis v4.15.0: Fuzzing API, параметризация Pytest</title><link>https://yrkan.com/ru/tools-updates/schemathesis-v4-15-whats-new/</link><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/schemathesis-v4-15-whats-new/</guid><description>&lt;h2 id="schemathesis-v4150-fuzzing-api-параметризация-pytest"&gt;Schemathesis v4.15.0: Fuzzing API, параметризация Pytest &lt;a href="#schemathesis-v4150-fuzzing-api-%d0%bf%d0%b0%d1%80%d0%b0%d0%bc%d0%b5%d1%82%d1%80%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-pytest" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Новая команда &lt;code&gt;st fuzz&lt;/code&gt; для непрерывного многошагового API-фаззинга.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;schemathesis.pytest.parametrize()&lt;/code&gt; упрощает тестирование нескольких схем.&lt;/li&gt;
&lt;li&gt;Улучшена структурированная генерация HTTP-заголовков и валидация &lt;code&gt;discriminator&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Schemathesis v4.15.0 предлагает значительные улучшения для рабочих процессов тестирования API, ориентированные на более глубокое тестовое покрытие и улучшенный опыт разработчиков.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Новые Возможности:&lt;/strong&gt;
Главное нововведение — команда &lt;code&gt;st fuzz&lt;/code&gt;, предназначенная для непрерывного, многошагового API-фаззинга по последовательностям операций. Эта новая возможность позволяет инженерам по контролю качества исследовать сложные взаимодействия API и выявлять граничные случаи, которые могут быть пропущены статическими тестовыми сценариями, что приводит к более надежной проверке поведения API. Генерация данных улучшена за счет структурированной генерации для конкретных HTTP-заголовков: &lt;code&gt;If-Match&lt;/code&gt;, &lt;code&gt;If-None-Match&lt;/code&gt;, &lt;code&gt;If-Modified-Since&lt;/code&gt;, &lt;code&gt;If-Unmodified-Since&lt;/code&gt; и &lt;code&gt;Range&lt;/code&gt;. Это гарантирует, что генерируемые тестовые сценарии более реалистичны и соответствуют деталям спецификации HTTP, улучшая качество тестов, связанных с заголовками. Для пользователей Pytest представлен &lt;code&gt;schemathesis.pytest.parametrize()&lt;/code&gt;, позволяющий эффективно применять одну тестовую функцию к нескольким именованным схемам. Эта функция оптимизирует организацию тестового набора и сокращает объем шаблонного кода при тестировании различных API-эндпоинтов или версий. Кроме того, значения свойства &lt;code&gt;discriminator&lt;/code&gt; теперь валидируются по известным сопоставлениям схем в &lt;code&gt;response_schema_conformance&lt;/code&gt;, а свойство &lt;code&gt;discriminator&lt;/code&gt; точно привязывается к правильному значению при генерации данных для схем &lt;code&gt;oneOf&lt;/code&gt;/&lt;code&gt;anyOf&lt;/code&gt;. Эти изменения повышают точность проверок соответствия схеме, особенно для полиморфных структур данных.&lt;/p&gt;</description></item><item><title>ESLint v10.2.0: Поддержка Temporal API и языков правил</title><link>https://yrkan.com/ru/tools-updates/eslint-v10-2-whats-new/</link><pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/eslint-v10-2-whats-new/</guid><description>&lt;h3 id="tldr"&gt;TL;DR &lt;a href="#tldr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Добавлена поддержка &lt;code&gt;Temporal&lt;/code&gt; API для глобальных объектов ES2026 и правила &lt;code&gt;no-obj-calls&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Введена поддержка &lt;code&gt;meta.languages&lt;/code&gt; для правил, позволяющая линтинг с учетом языка.&lt;/li&gt;
&lt;li&gt;Включены незначительные исправления ошибок и обновления документации.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Новые возможности:&lt;/strong&gt; ESLint v10.2.0 представляет две заметные новые возможности. Теперь включена официальная поддержка &lt;code&gt;Temporal&lt;/code&gt; API — современного глобального объекта JavaScript для расширенной работы с датами и временем, путем его включения в глобальные объекты ES2026. Кроме того, правило &lt;code&gt;no-obj-calls&lt;/code&gt; было обновлено для корректного распознавания объектов &lt;code&gt;Temporal&lt;/code&gt;, что предотвращает ненужные предупреждения линтинга. Значительной новой возможностью является поддержка &lt;code&gt;meta.languages&lt;/code&gt; для правил, которая позволяет разработчикам правил явно определять языки программирования, к которым применяется правило, повышая точность в средах линтинга, которые могут включать несколько языковых контекстов.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Исправления ошибок:&lt;/strong&gt; Единственное исправление ошибки касается обновления внутренних зависимостей. Это обслуживание обеспечивает стабильность, безопасность и совместимость основного линтера с его внутренними компонентами, способствуя общей надежности.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Документация:&lt;/strong&gt; Было реализовано несколько улучшений в документации. В частности, объекты конфигурации теперь включают информацию о &lt;code&gt;language&lt;/code&gt;, что напрямую поддерживает новую функцию &lt;code&gt;meta.languages&lt;/code&gt;. Другие обновления сосредоточены на уточнении существующих руководств и обновлении примеров.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Для получения полной информации обратитесь к &lt;a href="https://eslint.org/blog/"&gt;официальным примечаниям к выпуску ESLint&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>PHPUnit 13.1.0: Улучшенные Отчеты и Настройка Покрытия Кода</title><link>https://yrkan.com/ru/tools-updates/phpunit-13-1-whats-new/</link><pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/phpunit-13-1-whats-new/</guid><description>&lt;h2 id="phpunit-1310-улучшенные-отчеты-и-настройка-покрытия-кода"&gt;PHPUnit 13.1.0: Улучшенные Отчеты и Настройка Покрытия Кода &lt;a href="#phpunit-1310-%d1%83%d0%bb%d1%83%d1%87%d1%88%d0%b5%d0%bd%d0%bd%d1%8b%d0%b5-%d0%be%d1%82%d1%87%d0%b5%d1%82%d1%8b-%d0%b8-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d1%8f-%d0%ba%d0%be%d0%b4%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;PHPUnit, ключевой фреймворк для тестирования PHP-приложений, выпустил версию 13.1.0. Это минорное обновление, датированное 3 апреля 2026 года, сосредоточено на улучшении отчетности, расширении возможностей настройки покрытия кода и повышении общей стабильности. Инженеры по QA, отслеживающие обновления инструментов автоматизации тестирования, найдут в этом релизе несколько ценных улучшений.&lt;/p&gt;
&lt;h3 id="ключевые-изменения"&gt;Ключевые Изменения &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Новые Возможности:&lt;/strong&gt;
PHPUnit 13.1.0 вносит значительные улучшения в возможности отчетности. XML-файл логов Open Test Reporting (OTR) теперь предоставляет больше деталей, включая неожиданный вывод, информацию о &lt;code&gt;#[Group]&lt;/code&gt; и зарегистрированные проблемы. Это дает более полную картину результатов выполнения тестов.&lt;/p&gt;</description></item><item><title>Chromatic v16.1.0: Повышение стабильности автоматизации</title><link>https://yrkan.com/ru/tools-updates/chromatic-v16-1-whats-new/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/chromatic-v16-1-whats-new/</guid><description>&lt;h2 id="chromatic-v1610-повышение-стабильности-автоматизации"&gt;Chromatic v16.1.0: Повышение стабильности автоматизации &lt;a href="#chromatic-v1610-%d0%bf%d0%be%d0%b2%d1%8b%d1%88%d0%b5%d0%bd%d0%b8%d0%b5-%d1%81%d1%82%d0%b0%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%b0%d0%b2%d1%82%d0%be%d0%bc%d0%b0%d1%82%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Улучшена логика завершения процессов для повышения стабильности.&lt;/li&gt;
&lt;li&gt;Исправлены внутренние ошибки, включая проблемы с unit-тестами.&lt;/li&gt;
&lt;li&gt;Обновлены внутренние зависимости, такие как &lt;code&gt;eslint&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Улучшения:&lt;/strong&gt; Важное обновление — это &amp;ldquo;best effort alternative to &lt;code&gt;tree-kill&lt;/code&gt; that swallows errors&amp;rdquo; (&lt;a href="https://github.com/chromaui/chromatic-cli/pull/1261"&gt;#1261&lt;/a&gt;). Это направлено на улучшение обработки завершения процессов в Chromatic, делая его более устойчивым и менее подверженным сбоям во время автоматизированных запусков.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Исправления Ошибок:&lt;/strong&gt; Этот минорный релиз устраняет несколько внутренних проблем. К ним относятся исправления, связанные с unit-тестами (&lt;a href="https://github.com/chromaui/chromatic-cli/pull/1265"&gt;#1265&lt;/a&gt;), улучшения в workflow &lt;code&gt;action-canary release&lt;/code&gt; (&lt;a href="https://github.com/chromaui/chromatic-cli/pull/1255"&gt;#1255&lt;/a&gt;) и обновление версии &lt;code&gt;eslint&lt;/code&gt; (&lt;a href="https://github.com/chromaui/chromatic-cli/pull/1253"&gt;#1253&lt;/a&gt;) для лучшего контроля качества кода.&lt;/p&gt;</description></item><item><title>Insomnia core@12.5.0: Обновление с исправлениями и уведомлениями</title><link>https://yrkan.com/ru/tools-updates/insomnia-core@12-5-whats-new/</link><pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/insomnia-core@12-5-whats-new/</guid><description>&lt;h2 id="insomnia--обновление-с-исправлениями-и-уведомлениями"&gt;Insomnia &lt;a href="mailto:core@12.5.0"&gt;core@12.5.0&lt;/a&gt;: Обновление с исправлениями и уведомлениями &lt;a href="#insomnia--%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d1%81-%d0%b8%d1%81%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f%d0%bc%d0%b8-%d0%b8-%d1%83%d0%b2%d0%b5%d0%b4%d0%be%d0%bc%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f%d0%bc%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Insomnia &lt;a href="mailto:core@12.5.0"&gt;core@12.5.0&lt;/a&gt; добавляет &lt;strong&gt;&amp;ldquo;toast&amp;rdquo; уведомления&lt;/strong&gt; при обновлении и создании учетных данных (credentials), обеспечивая немедленную обратную связь по важным операциям. Эта версия также содержит несколько критических исправлений ошибок. Устранены проблемы, связанные с удалением cloud sync workspace, обеспечено автоматическое закрытие всплывающего окна редактирования GitHub credentials после успешной повторной авторизации, а также решены проблемы с состоянием импорта и сканированием проектов. Важное исправление предотвращает дублирование импорта при автоматическом сканировании. Подробный список изменений доступен в &lt;a href="https://github.com/Kong/insomnia/compare/core@12.5.0-beta.0...core@12.5.0"&gt;Full Changelog&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Prometheus v3.11.0: Обновления SD, PromQL и TSDB</title><link>https://yrkan.com/ru/tools-updates/prometheus-v3-11-whats-new/</link><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/prometheus-v3-11-whats-new/</guid><description>&lt;p&gt;Prometheus v3.11.0, выпущенный 02 апреля 2026 года, представляет собой минорное обновление, сфокусированное на улучшении Service Discovery, расширении возможностей PromQL и экспериментальных доработках TSDB. Этот релиз предлагает ценные обновления для команд DevOps и QA, отслеживающих развитие инструментов мониторинга. Для получения официальной информации, обратитесь к &lt;a href="https://github.com/prometheus/prometheus/releases/tag/v3.11.0"&gt;заметкам о выпуске Prometheus v3.11.0&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ключевые Изменения:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Улучшения Service Discovery:&lt;/strong&gt; AWS Service Discovery теперь поддерживает роли Elasticache и RDS. Azure SD получил поддержку метода аутентификации Azure Workload Identity. Kubernetes SD вводит селекторы ролей узлов для подов и новые метки на основе подов (&lt;code&gt;__meta_kubernetes_pod_deployment_name&lt;/code&gt;, &lt;code&gt;__meta_kubernetes_pod_cronjob_name&lt;/code&gt;, &lt;code&gt;__meta_kubernetes_pod_job_name&lt;/code&gt;) для более точной идентификации целей. Новая метрика &lt;code&gt;prometheus_sd_last_update_timestamp_seconds&lt;/code&gt; помогает отслеживать частоту обновлений SD.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Обновления PromQL:&lt;/strong&gt; Добавлены новые операторы &lt;code&gt;&amp;lt;/&lt;/code&gt; и &lt;code&gt;&amp;gt;/&lt;/code&gt; для обрезки наблюдений из нативных гистограмм. Экспериментальная вариативная функция &lt;code&gt;histogram_quantiles&lt;/code&gt; позволяет вычислять несколько квантилей одновременно, предлагая более детальный анализ производительности.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Инновации TSDB:&lt;/strong&gt; Введены несколько экспериментальных функций, включая &lt;code&gt;storage.tsdb.retention.percentage&lt;/code&gt; для настройки максимального процента диска, используемого для хранения TSDB, &lt;code&gt;fast-startup&lt;/code&gt; для более быстрого перезапуска, &lt;code&gt;st-storage&lt;/code&gt; для сохранения временных меток начала (start timestamps) и &lt;code&gt;xor2-encoding&lt;/code&gt; для оптимизированного кодирования блоков float-сэмплов.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Устаревшие Элементы и Изменения:&lt;/strong&gt; Пользователям Hetzner SD следует обновить устаревшие метки, такие как &lt;code&gt;__meta_hetzner_datacenter&lt;/code&gt; и &lt;code&gt;__meta_hetzner_hcloud_datacenter_location&lt;/code&gt;, на их новые аналоги. Отладочный вывод Promtool теперь перенаправляется в stderr, чтобы избежать конфликтов с выводом в stdout.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Производительность и Исправления Ошибок:&lt;/strong&gt; Улучшения производительности затронули операции PromQL join, агрегации нативных гистограмм, мониторинг WAL для удаленной записи и пересечения значений меток TSDB. Многочисленные исправления ошибок касаются проблем в AWS SD, утечек памяти в Agent, состояния алертов, дублирования целей Kubernetes SD и обработки ошибок OTLP.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Влияние на QA Команды:&lt;/strong&gt;
Инженеры QA получают выгоду от улучшенной видимости тестовых сред благодаря расширенному Service Discovery облачных сервисов. Новые функции PromQL позволяют более точно анализировать метрики производительности, особенно с нативными гистограммами, что помогает выявлять регрессии или узкие места. Более стабильный и производительный экземпляр Prometheus, благодаря различным исправлениям ошибок и оптимизациям, обеспечивает надежные данные мониторинга для тестирования. Подробнее об интеграции Prometheus можно узнать в нашей статье о &lt;a href="https://yrkan.com/ru/blog/grafana-prometheus-monitoring/"&gt;мониторинге с Grafana и Prometheus&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Playwright v1.59.0: Расширенный Screencast, Взаимодействие и Дашборд</title><link>https://yrkan.com/ru/tools-updates/playwright-v1-59-whats-new/</link><pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/playwright-v1-59-whats-new/</guid><description>&lt;p&gt;Microsoft выпустила Playwright v1.59.0 1 апреля 2026 года — минорное обновление в области автоматизации тестирования. Эта версия приносит значительные улучшения для сбора тестовых доказательств, управления браузером несколькими клиентами и повышения наблюдаемости.&lt;/p&gt;
&lt;h3 id="ключевые-изменения"&gt;Ключевые Изменения &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Screencast&lt;/strong&gt;
Новый API &lt;a href="https://playwright.dev/docs/api/class-page#page-screencast"&gt;&lt;code&gt;page.screencast&lt;/code&gt;&lt;/a&gt; предоставляет унифицированный интерфейс для захвата содержимого страницы. Он предлагает точные записи screencast, визуальные аннотации действий, пользовательские наложения и захват кадров в реальном времени. Это заменяет базовую опцию &lt;code&gt;recordVideo&lt;/code&gt; более детальным контролем.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;screencast&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;start&lt;/span&gt;({ &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;video.webm&amp;#39;&lt;/span&gt; });
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// ... perform actions ...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;screencast&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;stop&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Аннотации действий можно включить для выделения взаимодействующих элементов и отображения заголовков действий во время записи, настраиваемых через &lt;a href="https://playwright.dev/docs/api/class-screencast#screencast-show-actions"&gt;&lt;code&gt;page.screencast.showActions()&lt;/code&gt;&lt;/a&gt; или &lt;code&gt;playwright.config.ts&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Semgrep v1.157.0: Улучшения Производительности и Безопасности</title><link>https://yrkan.com/ru/tools-updates/semgrep-v1-157-whats-new/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/semgrep-v1-157-whats-new/</guid><description>&lt;p&gt;Semgrep v1.157.0, выпущенный 31 марта 2026 года, сосредоточен на улучшениях производительности и безопасности, особенно для Pro-пользователей. Это минорное обновление уточняет возможности статического анализа и устраняет несколько проблем с парсингом.&lt;/p&gt;
&lt;h3 id="ключевые-изменения"&gt;Ключевые Изменения &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Функции и Улучшения:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Улучшенное Отслеживание Taint (Pro):&lt;/strong&gt; Повышена точность отслеживания taint через вызовы лямбда и улучшено кросс-файловое отслеживание для глобальных переменных (LANG-268, LANG-275).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Расширенное Сопоставление Metavariable-Type:&lt;/strong&gt; Теперь можно сопоставлять имя класса, например, в &lt;code&gt;$C.getInstance(...)&lt;/code&gt;, а затем использовать &lt;code&gt;metavariable-type&lt;/code&gt; для &lt;code&gt;$C&lt;/code&gt; для проверки его типа (LANG-271).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Новый Парсер npm Lock Files (Pro):&lt;/strong&gt; Анализ цепочки поставок для файлов &lt;code&gt;npm package lock&lt;/code&gt; теперь использует проприетарный парсер на основе OCaml, заменяя старую версию на Python. Эта функциональность теперь доступна только для пользователей Semgrep Pro (gh-5658).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Производительность:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Обновление Mockoon v9.6.0: Новые хелперы запросов для динамических моков</title><link>https://yrkan.com/ru/tools-updates/mockoon-v9-6-whats-new/</link><pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/mockoon-v9-6-whats-new/</guid><description>&lt;h2 id="mockoon-v960-улучшенные-динамические-моки"&gt;Mockoon v9.6.0: Улучшенные динамические моки &lt;a href="#mockoon-v960-%d1%83%d0%bb%d1%83%d1%87%d1%88%d0%b5%d0%bd%d0%bd%d1%8b%d0%b5-%d0%b4%d0%b8%d0%bd%d0%b0%d0%bc%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d0%b5-%d0%bc%d0%be%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mockoon, популярный инструмент для мокирования API, выпустил версию 9.6.0. Это минорное обновление сосредоточено на расширении возможностей шаблонизации с помощью новых хелперов запросов, что позволяет создавать более динамичные и контекстно-зависимые мок-ответы. Релиз датирован 31 марта 2026 года и относится к категории тестирования мобильных и API-приложений.&lt;/p&gt;
&lt;h3 id="ключевые-изменения"&gt;Ключевые изменения &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Это обновление в основном представляет набор новых хелперов запросов для расширенной шаблонизации:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Доступ к параметрам URL и запроса:&lt;/strong&gt; Новые хелперы &lt;code&gt;{{urlParam 'name'}}&lt;/code&gt; и &lt;code&gt;{{queryParam 'name'}}&lt;/code&gt; позволяют напрямую извлекать значения из параметров пути URL и строки запроса.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Доступ к телу запроса и заголовкам:&lt;/strong&gt; Хелперы &lt;code&gt;{{body 'path'}}&lt;/code&gt; и &lt;code&gt;{{header 'name'}}&lt;/code&gt; предоставляют прямой доступ к определенным частям тела запроса (с использованием JSONPath) и отдельным значениям заголовков.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Доступ к Cookie:&lt;/strong&gt; Хелпер &lt;code&gt;{{cookie 'name'}}&lt;/code&gt; позволяет получать определенные значения cookie из входящих запросов.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Полный доступ к объекту Request:&lt;/strong&gt; Новый хелпер &lt;code&gt;{{request 'property'}}&lt;/code&gt; предоставляет доступ к различным свойствам запроса, таким как метод, URL, путь, порт, протокол, имя хоста, IP, user agent и другим, предлагая детальный контроль над мок-ответами на основе полного контекста запроса.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Полный список изменений доступен в &lt;a href="https://mockoon.com/releases/9.6.0/"&gt;официальном чейнджлоге&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Flyway 12.3.0: Улучшенный UNDO и Отчетность об Ошибках для QA</title><link>https://yrkan.com/ru/tools-updates/flyway-flyway-12-3-whats-new/</link><pubDate>Tue, 28 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/flyway-flyway-12-3-whats-new/</guid><description>&lt;h3 id="flyway-1230-улучшенный-undo-и-отчетность-об-ошибках-для-qa"&gt;Flyway 12.3.0: Улучшенный UNDO и Отчетность об Ошибках для QA &lt;a href="#flyway-1230-%d1%83%d0%bb%d1%83%d1%87%d1%88%d0%b5%d0%bd%d0%bd%d1%8b%d0%b9-undo-%d0%b8-%d0%be%d1%82%d1%87%d0%b5%d1%82%d0%bd%d0%be%d1%81%d1%82%d1%8c-%d0%be%d0%b1-%d0%be%d1%88%d0%b8%d0%b1%d0%ba%d0%b0%d1%85-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Улучшена поддержка &lt;code&gt;UNDO&lt;/code&gt; миграций для конкретных баз данных.&lt;/li&gt;
&lt;li&gt;Оптимизировано логирование ошибок при неудачных миграциях.&lt;/li&gt;
&lt;li&gt;Повышена производительность операций с историей схемы.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Flyway 12.3.0, минорное обновление после 12.2.0, сосредоточено на доработке существующих функций и повышении стабильности. Подробный список изменений доступен в &lt;a href="https://documentation.red-gate.com/flyway/release-notes-and-older-versions/release-notes-for-flyway-engine"&gt;официальных примечаниях к выпуску&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;
Эта версия представляет улучшенные возможности &lt;code&gt;UNDO&lt;/code&gt; миграций, особенно для PostgreSQL и Oracle. Это обеспечивает более надёжные сценарии отката, гарантируя согласованность состояния базы данных во время разработки и тестирования.&lt;/p&gt;</description></item><item><title>Hoppscotch 2026.3.0: Облако, Админ-видимость, Обновления Безопасности</title><link>https://yrkan.com/ru/tools-updates/hoppscotch-2026-3-whats-new/</link><pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/hoppscotch-2026-3-whats-new/</guid><description>&lt;p&gt;Hoppscotch 2026.3.0, минорное обновление, выпущенное 31 марта 2026 года, улучшает тестирование мобильных приложений и API с помощью ключевых функций и критических исправлений.&lt;/p&gt;
&lt;h3 id="ключевые-изменения"&gt;Ключевые Изменения &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Hoppscotch 2026.3.0 представляет значительные улучшения и важные исправления для тестирования API и мобильных приложений.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Новые Возможности:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cloud для Организаций (Desktop):&lt;/strong&gt; Десктопное приложение теперь полностью поддерживает Cloud для Организаций, упрощая совместную работу при тестировании API.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Видимость Рабочих Пространств для Администраторов:&lt;/strong&gt; Администраторы получают улучшенную видимость членства пользователей в рабочих пространствах прямо из дашборда.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Поддержка Международных Раскладок Клавиатуры:&lt;/strong&gt; Горячие клавиши теперь корректно работают с неанглийскими раскладками клавиатуры, повышая удобство использования для глобальных команд.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Опциональная SMTP-аутентификация:&lt;/strong&gt; Новые параметры конфигурации (&lt;code&gt;MAILER_SMTP_IGNORE_TLS&lt;/code&gt;) позволяют использовать опциональную SMTP-аутентификацию.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Безопасность и Исправления:&lt;/strong&gt;
Этот релиз устраняет несколько уязвимостей безопасности, включая множественные XSS-уязвимости (в подсказках для членов команды, ответах mock-сервера и при перемещении запросов между командами), а также уязвимость открытого редиректа. Также включены критические патчи безопасности для цепочки зависимостей и усиление защиты производственного образа.&lt;/p&gt;</description></item><item><title>Jaeger v2.17.0: Улучшенное Трассирование и Оптимизация</title><link>https://yrkan.com/ru/tools-updates/jaeger-v2-17-whats-new/</link><pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/jaeger-v2-17-whats-new/</guid><description>&lt;h2 id="jaeger-v2170-улучшенное-трассирование-и-оптимизация"&gt;Jaeger v2.17.0: Улучшенное Трассирование и Оптимизация &lt;a href="#jaeger-v2170-%d1%83%d0%bb%d1%83%d1%87%d1%88%d0%b5%d0%bd%d0%bd%d0%be%d0%b5-%d1%82%d1%80%d0%b0%d1%81%d1%81%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b8-%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Инструмент:&lt;/strong&gt; Jaeger v2.17.0 | &lt;strong&gt;Тип:&lt;/strong&gt; Minor | &lt;strong&gt;Дата:&lt;/strong&gt; 2026-03-30 | &lt;strong&gt;Категория:&lt;/strong&gt; DevOps&lt;/p&gt;
&lt;h3 id="tldr"&gt;TL;DR &lt;a href="#tldr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Улучшена фильтрация ошибок при поиске трейсов и видимость метрик в UI.&lt;/li&gt;
&lt;li&gt;Исправлены критические ошибки, связанные с расчетом длительности трейсов и предотвращением паники.&lt;/li&gt;
&lt;li&gt;Значительные экспериментальные улучшения производительности хранения в ClickHouse и функционала JaegerMCP.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Jaeger v2.17.0, выпущенный 30 марта 2026 года, сосредоточен на стабильности и представляет несколько экспериментальных функций.&lt;/p&gt;</description></item><item><title>Jenkins 2.557: Обновления UI и Исправления Ошибок</title><link>https://yrkan.com/ru/tools-updates/jenkins-jenkins-2-557-whats-new/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/jenkins-jenkins-2-557-whats-new/</guid><description>&lt;p&gt;Jenkins 2.557: Обновления UI и Исправления Ошибок&lt;/p&gt;
&lt;p&gt;Jenkins, ключевой инструмент во многих CI/CD пайплайнах, выпустил версию 2.557. Это обновление сосредоточено на доработках пользовательского интерфейса и устраняет несколько операционных ошибок, повышая общую стабильность и удобство использования для команд DevOps и QA.&lt;/p&gt;
&lt;h3 id="tldr"&gt;TL;DR &lt;a href="#tldr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Улучшено экспериментальное меню &amp;ldquo;Run overflow&amp;rdquo; для повышения удобства использования.&lt;/li&gt;
&lt;li&gt;Исправлены многочисленные ошибки, связанные с UI, включая проблемы с разрешениями и отсутствующими кнопками действий.&lt;/li&gt;
&lt;li&gt;Отменено предыдущее исправление, касающееся уведомлений &amp;ldquo;Build Scheduled&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Новые Возможности и Улучшения:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Oxlint apps_v1.58.0: Обновление правил Vitest и улучшений линтера</title><link>https://yrkan.com/ru/tools-updates/oxlint-apps_v1-58-whats-new/</link><pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/oxlint-apps_v1-58-whats-new/</guid><description>&lt;h3 id="tldr"&gt;TL;DR &lt;a href="#tldr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Критическое изменение: Неизвестные встроенные правила теперь вызывают ошибки, требуя проверки конфигурации.&lt;/li&gt;
&lt;li&gt;Новые правила линтинга для Vitest улучшают проверку тестового кода.&lt;/li&gt;
&lt;li&gt;Улучшенная диагностика, генерация конфигурации &lt;code&gt;--init&lt;/code&gt; и стабильность правил.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ключевые-изменения"&gt;Ключевые Изменения &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Oxlint apps_v1.58.0 представляет важные обновления для качества кода и удобства разработчиков.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Критическое Изменение (Breaking Change)&lt;/strong&gt;: Линтер теперь сообщает об ошибке при обнаружении любого неизвестного встроенного правила. Пользователям необходимо проверить свои конфигурации &lt;code&gt;oxlint&lt;/code&gt;, чтобы убедиться, что все указанные правила распознаны, предотвращая скрытые некорректные настройки.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Новые Возможности (Features)&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Интеграция с Vitest&lt;/strong&gt;: Включены значительные дополнения, такие как правила &lt;code&gt;require-test-timeout&lt;/code&gt;, &lt;code&gt;prefer-called-exactly-once-with&lt;/code&gt;, &lt;code&gt;require-mock-type-parameters&lt;/code&gt; и &lt;code&gt;require-awaited-expect-poll&lt;/code&gt; для Vitest. Правило &lt;code&gt;prefer-to-have-been-called-times&lt;/code&gt; теперь совместимо с Jest.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Стабильность Правил&lt;/strong&gt;: Несколько правил, таких как &lt;code&gt;prefer-string-starts-ends-with&lt;/code&gt;, &lt;code&gt;prefer-readonly&lt;/code&gt;, &lt;code&gt;prefer-regexp-exec&lt;/code&gt; и &lt;code&gt;prefer-find&lt;/code&gt;, были перемещены из &lt;code&gt;nursery&lt;/code&gt; в &lt;code&gt;style&lt;/code&gt;, что указывает на их зрелость и рекомендованное использование.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Удобство Разработчика&lt;/strong&gt;: Улучшения включают опцию &lt;code&gt;safe-fix&lt;/code&gt; для импортов &lt;code&gt;no-unused-vars&lt;/code&gt;, расширенную диагностику с полезными сообщениями для плагинов import, Jest и Promise, а также улучшенный генератор конфигурации &lt;code&gt;--init&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Исправления Ошибок (Bug Fixes)&lt;/strong&gt;: Основные исправления касаются таких проблем, как &lt;code&gt;no-noninteractive-tabindex&lt;/code&gt; для составных виджетов, корректная обработка &lt;code&gt;shadowed locals&lt;/code&gt; в &lt;code&gt;no-restricted-globals&lt;/code&gt; и различные улучшения режима совместимости с ESLint. Также были доработаны парсинг конфигурации и учет переменной окружения &lt;code&gt;NO_COLOR&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="влияние-на-qa-команды"&gt;Влияние на QA Команды &lt;a href="#%d0%b2%d0%bb%d0%b8%d1%8f%d0%bd%d0%b8%d0%b5-%d0%bd%d0%b0-qa-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Команды QA, использующие Oxlint для статического анализа кода, найдут это обновление ценным. Новые правила Vitest позволяют более тщательно применять практики тестирования. Критическое изменение требует быстрой проверки существующих конфигураций. Улучшенная диагностика упростит устранение неполадок и повысит ясность отчетов линтинга, способствуя раннему выявлению потенциальных проблем.&lt;/p&gt;</description></item><item><title>Schemathesis v4.14.0: Отчеты Allure и Улучшенное API-тестирование</title><link>https://yrkan.com/ru/tools-updates/schemathesis-v4-14-whats-new/</link><pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/schemathesis-v4-14-whats-new/</guid><description>&lt;h2 id="schemathesis-v4140-отчеты-allure-и-улучшенное-api-тестирование"&gt;Schemathesis v4.14.0: Отчеты Allure и Улучшенное API-тестирование &lt;a href="#schemathesis-v4140-%d0%be%d1%82%d1%87%d0%b5%d1%82%d1%8b-allure-%d0%b8-%d1%83%d0%bb%d1%83%d1%87%d1%88%d0%b5%d0%bd%d0%bd%d0%be%d0%b5-api-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Schemathesis v4.14.0 представляет значительные обновления для тестирования API.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Новые Возможности&lt;/strong&gt;: Главное нововведение — &lt;strong&gt;интеграция с отчетами Allure&lt;/strong&gt;, обеспечивающая более наглядные и интерактивные отчеты о тестировании. Плагин &lt;code&gt;pytest&lt;/code&gt; теперь поддерживает запись &lt;strong&gt;отчетов VCR, HAR и JUnit XML&lt;/strong&gt; через &lt;code&gt;schema.config.reports&lt;/code&gt;, что дает больше гибкости в выводе результатов тестов. Новый &lt;code&gt;hook&lt;/code&gt; &lt;code&gt;after_validate&lt;/code&gt; срабатывает после всех проверок, передавая список объектов &lt;code&gt;CheckResult&lt;/code&gt;. Улучшена генерация схем: фаза примеров теперь генерирует опциональные свойства и один дизъюнктный набор для каждой ветви &lt;code&gt;oneOf&lt;/code&gt;/&lt;code&gt;anyOf&lt;/code&gt;, повышая покрытие тестов.&lt;/p&gt;</description></item><item><title>Обновление Drone CI v2.28.0: Незначительные улучшения и обновление зависимостей</title><link>https://yrkan.com/ru/tools-updates/drone-ci-v2-28-whats-new/</link><pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/drone-ci-v2-28-whats-new/</guid><description>&lt;h2 id="обновление-drone-ci-v2280-незначительные-улучшения-и-обновление-зависимостей"&gt;Обновление Drone CI v2.28.0: Незначительные улучшения и обновление зависимостей &lt;a href="#%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-drone-ci-v2280-%d0%bd%d0%b5%d0%b7%d0%bd%d0%b0%d1%87%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d1%83%d0%bb%d1%83%d1%87%d1%88%d0%b5%d0%bd%d0%b8%d1%8f-%d0%b8-%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b5%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Drone CI, популярная CI/CD платформа от Harness, выпустила версию 2.28.0 27 марта 2026 года. Это минорное обновление в основном сосредоточено на внутренних улучшениях и управлении зависимостями, обеспечивая более стабильную и актуальную основу для ваших пайплайнов.&lt;/p&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Этот релиз является преимущественно обновлением для обслуживания, с основным акцентом на обновление внутренних зависимостей. Журнал изменений указывает на многочисленные коммиты &lt;code&gt;chore(deps)&lt;/code&gt;, в частности, обновление модуля &lt;code&gt;github.com/drone/drone-yaml&lt;/code&gt; через множество патч-версий (с &lt;code&gt;v1.1.0&lt;/code&gt; до &lt;code&gt;v1.3.236&lt;/code&gt;) и &lt;code&gt;github.com/drone/go-scm&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Обновление Prism v5.15.0: Node.js 24.14 и CI/CD</title><link>https://yrkan.com/ru/tools-updates/prism-v5-15-whats-new/</link><pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/prism-v5-15-whats-new/</guid><description>&lt;h3 id="tldr"&gt;TL;DR &lt;a href="#tldr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Обновление среды выполнения Node.js до v24.14.&lt;/li&gt;
&lt;li&gt;Перенос CI/CD пайплайна на GitHub Actions.&lt;/li&gt;
&lt;li&gt;Исправлена уязвимость в зависимости Lerna.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Prism, инструмент Stoplight для мокирования и валидации API, выпустил версию 5.15.0. Это минорное обновление сосредоточено на внутренних улучшениях инфраструктуры и управлении зависимостями.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Features:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Обновление Node.js:&lt;/strong&gt; Базовая среда выполнения Node.js обновлена с v18.20 до v24.14. Это обновление обеспечивает повышение производительности и доступ к новейшим функциям Node.js.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Миграция CI/CD:&lt;/strong&gt; Процесс сборки был переведен с CircleCI на GitHub Actions, что оптимизирует рабочий процесс разработки.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Bug Fixes:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Karate v2.0.0: Крупное Обновление для Мобильного и API Тестирования</title><link>https://yrkan.com/ru/tools-updates/karate-v2-0-whats-new/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/karate-v2-0-whats-new/</guid><description>&lt;h3 id="tldr"&gt;TL;DR &lt;a href="#tldr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Расширенные возможности мобильного тестирования с новыми драйверами.&lt;/li&gt;
&lt;li&gt;Улучшенный синтаксис API-ассертов и повышенная производительность.&lt;/li&gt;
&lt;li&gt;Ломающие изменения требуют планирования миграции.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Karate v2.0.0, выпущенный 26 марта 2026 года, знаменует собой значительную эволюцию фреймворка, ориентированного на Mobile и API Testing.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Features:&lt;/strong&gt; Этот мажорный релиз представляет существенные обновления для тестирования мобильных приложений, включая поддержку более новых версий драйверов и более точные методы взаимодействия с элементами. Тестирование API получает оптимизацию производительности и улучшенные возможности ассертов, что упрощает сложные сценарии валидации. Эта версия также включает внутренние архитектурные улучшения для лучшей масштабируемости.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fixes:&lt;/strong&gt; Многочисленные исправления ошибок устраняют проблемы, о которых сообщалось в v1.x, повышая общую стабильность и надежность в различных тестовых средах. Конкретные исправления касаются граничных случаев в обработке данных и выполнении тестов.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deprecations:&lt;/strong&gt; Будучи мажорным релизом, v2.0.0 объявляет устаревшими несколько старых функций и синтаксических шаблонов. Пользователям рекомендуется ознакомиться с официальным руководством по миграции для получения подробной информации об обновлении существующих тестовых наборов.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="impact-for-qa-teams"&gt;Impact for QA Teams &lt;a href="#impact-for-qa-teams" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Это обновление оптимизирует рабочие процессы мобильного и API тестирования, позволяя QA-инженерам писать более эффективные и поддерживаемые тесты. Прирост производительности может сократить время выполнения тестов, а новые функции расширяют возможности тестового покрытия. Для тех, кто только начинает работать с фреймворком, наш &lt;a href="https://yrkan.com/ru/blog/karate-api-testing-tutorial/"&gt;Учебник по API-тестированию с Karate&lt;/a&gt; послужит отличной отправной точкой.&lt;/p&gt;</description></item><item><title>TestRail 10.2: Генерация скриптов ИИ и проверка покрытия Jira</title><link>https://yrkan.com/ru/tools-updates/testrail-10-2-whats-new/</link><pubDate>Fri, 17 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/testrail-10-2-whats-new/</guid><description>&lt;h1 id="testrail-102-генерация-скриптов-ии-и-проверка-покрытия-jira"&gt;TestRail 10.2: Генерация скриптов ИИ и проверка покрытия Jira &lt;a href="#testrail-102-%d0%b3%d0%b5%d0%bd%d0%b5%d1%80%d0%b0%d1%86%d0%b8%d1%8f-%d1%81%d0%ba%d1%80%d0%b8%d0%bf%d1%82%d0%be%d0%b2-%d0%b8%d0%b8-%d0%b8-%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d0%ba%d0%b0-%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d1%8f-jira" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;TestRail 10.2, выпущенный 26 марта 2026 года, приносит значительные обновления для QA-команд. Этот крупный релиз от Gurock сфокусирован на ускорении автоматизации и улучшении отслеживаемости требований.&lt;/p&gt;
&lt;h2 id="ключевые-изменения"&gt;Ключевые изменения &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Это обновление представляет две долгожданные возможности:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;AI Test Script Generation:&lt;/strong&gt; TestRail теперь преобразует существующие тест-кейсы в исполняемые тестовые скрипты с использованием искусственного интеллекта. Эта функция призвана ускорить усилия по автоматизации, предоставляя прочную основу для написания скриптов.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Jira Coverage Check:&lt;/strong&gt; QA-лидеры теперь могут проверять, какие требования Jira имеют адекватное тестовое покрытие, непосредственно в TestRail. Это помогает убедиться, что все требования протестированы перед релизом.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Улучшенный BDD-процесс:&lt;/strong&gt; TestRail 10.2 также дорабатывает процесс разработки через поведение (BDD), делая его более полным и интегрированным для команд, использующих BDD-практики.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Для получения дополнительной информации об управлении вашим репозиторием тестов, смотрите нашу статью о &lt;a href="https://yrkan.com/ru/blog/testrail-cloud-test-repository/"&gt;TestRail Cloud Test Repository&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Обновление Flyway 12.2.0: Префиксы Миграций и Контроль Валидации</title><link>https://yrkan.com/ru/tools-updates/flyway-flyway-12-2-whats-new/</link><pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/flyway-flyway-12-2-whats-new/</guid><description>&lt;h2 id="обновление-flyway-1220-префиксы-миграций-и-контроль-валидации"&gt;Обновление Flyway 12.2.0: Префиксы Миграций и Контроль Валидации &lt;a href="#%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-flyway-1220-%d0%bf%d1%80%d0%b5%d1%84%d0%b8%d0%ba%d1%81%d1%8b-%d0%bc%d0%b8%d0%b3%d1%80%d0%b0%d1%86%d0%b8%d0%b9-%d0%b8-%d0%ba%d0%be%d0%bd%d1%82%d1%80%d0%be%d0%bb%d1%8c-%d0%b2%d0%b0%d0%bb%d0%b8%d0%b4%d0%b0%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Flyway 12.2.0, выпущенный 26 марта 2026 года, представляет новые возможности для управления миграциями баз данных. Это обновление сосредоточено на повышении гибкости в процессах именования и валидации миграций. Для получения полной информации обратитесь к &lt;a href="https://documentation.red-gate.com/flyway/release-notes-and-older-versions/release-notes-for-flyway-engine"&gt;официальным примечаниям к выпуску&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Кастомизируемые Префиксы Миграций:&lt;/strong&gt; Flyway 12.2.0 добавляет новые свойства конфигурации, такие как &lt;code&gt;flyway.sqlMigrationPrefix&lt;/code&gt; и &lt;code&gt;flyway.javaMigrationPrefix&lt;/code&gt;. Они позволяют пользователям определять собственные префиксы для различных типов миграций (SQL, Java, повторяемые, отмена и т.д.), предоставляя больший контроль над соглашениями об именовании, помимо стандартных &lt;code&gt;V&lt;/code&gt; или &lt;code&gt;R&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Расширенные Флаги Игнорирования Валидации:&lt;/strong&gt; В этом релизе добавлен ряд свойств &lt;code&gt;flyway.ignore*&lt;/code&gt;, включая &lt;code&gt;flyway.ignoreMissingMigrations&lt;/code&gt; и &lt;code&gt;flyway.ignoreChecksumMismatch&lt;/code&gt;. Эти флаги обеспечивают точный контроль над командой &lt;code&gt;validate&lt;/code&gt;, позволяя Flyway игнорировать определенные типы ошибок валидации. Это полезно для сложных сценариев развертывания или когда некоторые состояния миграции допустимы.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="impact-for-qa-teams"&gt;Impact for QA Teams &lt;a href="#impact-for-qa-teams" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Команды QA получают больше гибкости в управлении схемами тестовых баз данных. Кастомизированные префиксы могут помочь организовать миграции для конкретных тестовых сред или функций. Новые флаги &lt;code&gt;ignore&lt;/code&gt; при валидации позволяют тестировщикам настраивать Flyway для игнорирования известных, некритичных расхождений во время валидации, оптимизируя CI/CD пайплайны и уменьшая количество ложных срабатываний в автоматизированных проверках. Это способствует ускорению циклов обратной связи и более целенаправленным усилиям по тестированию.&lt;/p&gt;</description></item><item><title>k6 v1.7.0: Упрощенные Расширения и Новая Переменная Среды</title><link>https://yrkan.com/ru/tools-updates/k6-v1-7-whats-new/</link><pubDate>Mon, 13 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/k6-v1-7-whats-new/</guid><description>&lt;h1 id="k6-v170-упрощенные-расширения-и-улучшенная-конфигурация"&gt;k6 v1.7.0: Упрощенные Расширения и Улучшенная Конфигурация &lt;a href="#k6-v170-%d1%83%d0%bf%d1%80%d0%be%d1%89%d0%b5%d0%bd%d0%bd%d1%8b%d0%b5-%d1%80%d0%b0%d1%81%d1%88%d0%b8%d1%80%d0%b5%d0%bd%d0%b8%d1%8f-%d0%b8-%d1%83%d0%bb%d1%83%d1%87%d1%88%d0%b5%d0%bd%d0%bd%d0%b0%d1%8f-%d0%ba%d0%be%d0%bd%d1%84%d0%b8%d0%b3%d1%83%d1%80%d0%b0%d1%86%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Grafana Labs выпустила k6 v1.7.0 — минорное обновление, сфокусированное на улучшении опыта разработчиков и операционной гибкости для тестирования производительности и безопасности. Эта версия, выпущенная 25 марта 2026 года, представляет значительные улучшения для QA-инженеров, стремящихся оптимизировать свои рабочие процессы тестирования.&lt;/p&gt;
&lt;h2 id="ключевые-изменения"&gt;Ключевые Изменения &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="новые-возможности"&gt;Новые Возможности &lt;a href="#%d0%bd%d0%be%d0%b2%d1%8b%d0%b5-%d0%b2%d0%be%d0%b7%d0%bc%d0%be%d0%b6%d0%bd%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Наиболее заметным дополнением является &lt;strong&gt;автоматическое разрешение расширений подкоманд&lt;/strong&gt;. Ранее интеграция пользовательских расширений k6, особенно тех, которые реализованы как подкоманды, требовала ручной сборки &lt;code&gt;xk6&lt;/code&gt; для компиляции пользовательского бинарного файла k6. Это часто добавляло сложности и время к настройке среды. Теперь k6 интеллектуально обнаруживает отсутствующие расширения подкоманд и при необходимости автоматически предоставляет необходимый бинарный файл, предлагая тот же прозрачный и удобный опыт, который уже доступен для расширений JavaScript. Например, выполнение команды &lt;code&gt;k6 x httpbin&lt;/code&gt; автоматически настроит расширение &lt;code&gt;xk6-subcommand-httpbin&lt;/code&gt;, если оно отсутствует в вашем текущем бинарном файле k6, что упрощает использование специализированных инструментов тестирования. Подробнее об этой мощной функции можно узнать в &lt;a href="https://grafana.com/docs/k6/latest/extensions/run/#use-automatic-extension-resolution"&gt;официальной документации&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Faker v10.4.0: Расширение Локалей и Данных для QA</title><link>https://yrkan.com/ru/tools-updates/faker-js-v10-4-whats-new/</link><pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/faker-js-v10-4-whats-new/</guid><description>&lt;h2 id="tldr"&gt;TL;DR &lt;a href="#tldr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Добавлены определения страны для норвежского языка (nb_NO).&lt;/li&gt;
&lt;li&gt;Расширены данные о животных для японского языка (ja) (кошки, медведи, птицы, рыбы, лошади, крупный рогатый скот).&lt;/li&gt;
&lt;li&gt;Введены новые варианты растительных блюд и финские (fi) телефонные номера.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Faker v10.4.0 сосредоточен на расширении возможностей генерации данных, особенно для интернационализации. Ключевые дополнения включают новые определения страны для норвежского языка (&lt;code&gt;nb_NO&lt;/code&gt;) и обширные данные о породах животных для японских локалей (&lt;code&gt;ja&lt;/code&gt;), охватывающие кошек, медведей, птиц, рыб, лошадей и крупный рогатый скот. Тестировщики теперь могут генерировать более разнообразные данные &lt;code&gt;food&lt;/code&gt; с новым вариантом растительных блюд. Важное исправление касается опечаток и капитализации в названиях улиц &lt;code&gt;es_MX&lt;/code&gt;, улучшая точность данных для мексиканских испанских локалей.&lt;/p&gt;</description></item><item><title>Jenkins 2.556: Обновления Spring Framework v7 и UI</title><link>https://yrkan.com/ru/tools-updates/jenkins-jenkins-2-556-whats-new/</link><pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/jenkins-jenkins-2-556-whats-new/</guid><description>&lt;p&gt;Jenkins 2.556, выпущенный 24 марта 2026 года, сосредоточен на обновлениях основных зависимостей, улучшениях UI и доработках для разработчиков. Официальный список изменений доступен по ссылке &lt;a href="https://www.jenkins.io/changelog/2.556/"&gt;jenkins.io/changelog/2.556/&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Обновления Core и Зависимостей:&lt;/strong&gt; Платформа теперь использует &lt;code&gt;org.springframework.security:spring-security-bom&lt;/code&gt; и &lt;code&gt;org.springframework:spring-framework-bom&lt;/code&gt; версии 7. Эти обновления важны для поддержания безопасности и стабильности экосистемы Jenkins.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Пользовательский Интерфейс и Опыт:&lt;/strong&gt; Пользователи заметят улучшения на странице &amp;ldquo;Third Party Licences&amp;rdquo; и удаление ограничений максимальной ширины для секций, что повышает гибкость макета. Исправлена ошибка, обеспечивающая правильное отображение стандартных иконок узлов даже при длинных именах узлов.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Функции для Разработчиков и Экспериментальные:&lt;/strong&gt; Введен экспериментальный API для добавления действий в экспериментальный Run UI, что потенциально открывает путь для новых интеграций. Справочная документация для глобальных переменных окружения теперь включает описание синтаксиса &lt;code&gt;BASE+EXTRA&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Локализация:&lt;/strong&gt; Добавлен турецкий перевод в мастер настройки.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="impact-for-qa-teams"&gt;Impact for QA Teams &lt;a href="#impact-for-qa-teams" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Команды QA получат выгоду от базовой стабильности платформы и улучшений безопасности, обеспечиваемых обновлениями Spring Framework v7. Хотя прямые изменения в рабочих процессах минимальны, эти обновления способствуют созданию более надежной среды CI/CD, что жизненно важно для эффективной автоматизации тестирования. Подробнее об интеграции тестирования можно узнать в нашей статье &lt;a href="https://yrkan.com/ru/blog/jenkins-pipeline-for-test-automation/"&gt;Jenkins Pipeline для автоматизации тестирования&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Oxlint apps_v1.57.0: Правила Vitest, Исправления, Производительность</title><link>https://yrkan.com/ru/tools-updates/oxlint-apps_v1-57-whats-new/</link><pubDate>Sat, 11 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/oxlint-apps_v1-57-whats-new/</guid><description>&lt;h2 id="oxlint-apps_v1570-что-нового"&gt;Oxlint apps_v1.57.0: Что нового &lt;a href="#oxlint-apps_v1570-%d1%87%d1%82%d0%be-%d0%bd%d0%be%d0%b2%d0%be%d0%b3%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Ключевые Изменения&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Новые Возможности:&lt;/strong&gt; Oxlint v1.57.0 включает правила &lt;code&gt;vitest/prefer-strict-boolean-matchers&lt;/code&gt; для улучшения практик тестирования и &lt;code&gt;unicorn/custom-error-definition&lt;/code&gt; для единообразного подхода к обработке ошибок. Oxfmt v0.42.0 теперь поддерживает форматирование комментариев JSDoc и подстановку HTML-in-JS, повышая читаемость кода.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Исправления Ошибок:&lt;/strong&gt; Обновление устраняет ряд проблем линтера, включая ложные срабатывания для &lt;code&gt;String.raw&lt;/code&gt; в правилах &lt;code&gt;hex-escape&lt;/code&gt; и &lt;code&gt;escape-case&lt;/code&gt;, а также ложные негативы для &lt;code&gt;explicit-function-return-type&lt;/code&gt;. Исправлены утечки памяти в плагинах линтера и улучшено обнаружение &lt;code&gt;no-cycle&lt;/code&gt; для конфигураций TypeScript. Oxfmt также улучшает выравнивание завершающих комментариев.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Улучшения Производительности:&lt;/strong&gt; Oxlint демонстрирует существенный прирост производительности за счет оптимизаций в плагинах линтера, таких как совместное использование &lt;code&gt;Uint32Array&lt;/code&gt;, более быстрая конвертация span в location и сокращение выделений памяти для токенов и комментариев. Эти изменения ускоряют циклы линтинга.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Влияние на QA-команды&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Chromatic v16.0.0: Node.js 18 больше не поддерживается, требуется Node 24</title><link>https://yrkan.com/ru/tools-updates/chromatic-v16-0-whats-new/</link><pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/chromatic-v16-0-whats-new/</guid><description>&lt;h3 id="tldr"&gt;TL;DR &lt;a href="#tldr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Мажорный релиз: Chromatic v16.0.0.&lt;/li&gt;
&lt;li&gt;Официально прекращена поддержка Node.js 18.&lt;/li&gt;
&lt;li&gt;Node.js 24 теперь является минимально необходимой версией.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Chromatic v16.0.0, выпущенный 23 марта 2026 года, вносит значительное breaking change в рабочие процессы автоматизации тестирования. Основное обновление включает прекращение поддержки Node.js 18. Пользователи теперь должны обновить свои среды до Node.js 24 для продолжения использования Chromatic. Это изменение также затрагивает GitHub Actions, которые были обновлены для использования Node.js 24. Это обеспечивает совместимость и позволяет использовать новые функции и обновления безопасности Node.js. Для получения полной информации обратитесь к официальному pull request &lt;a href="https://github.com/chromaui/chromatic-cli/pull/1251"&gt;#1251&lt;/a&gt; в репозитории Chromatic CLI.&lt;/p&gt;</description></item><item><title>Detox 20.50.0: Поддержка liquidGlass overlay в iOS 26.1</title><link>https://yrkan.com/ru/tools-updates/detox-20-50-whats-new/</link><pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/detox-20-50-whats-new/</guid><description>&lt;h2 id="tldr"&gt;TL;DR &lt;a href="#tldr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Добавлена реализация &lt;code&gt;liquidGlass overlay&lt;/code&gt; для iOS 26.1.&lt;/li&gt;
&lt;li&gt;Минорное обновление версии с 20.48.0 до 20.50.0.&lt;/li&gt;
&lt;li&gt;Улучшена поддержка рендеринга UI для iOS.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Detox 20.50.0, минорное обновление, выпущенное 23 марта 2026 года, в основном направлено на улучшение совместимости с iOS. Ключевое изменение — реализация &lt;code&gt;liquidGlass overlay&lt;/code&gt; для iOS 26.1. Это обновление гарантирует, что Detox сможет корректно взаимодействовать и тестировать приложения, использующие эту специфическую функцию рендеринга UI на последних версиях iOS. Релиз также включает стандартное обновление версии. Подробный список изменений доступен в &lt;a href="https://github.com/wix/Detox/compare/20.48.1...20.50.0"&gt;Full Changelog&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Schemathesis v4.13.0: Динамическая Аутентификация, Повторы и Исправления</title><link>https://yrkan.com/ru/tools-updates/schemathesis-v4-13-whats-new/</link><pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/schemathesis-v4-13-whats-new/</guid><description>&lt;h2 id="обзор-релиза-schemathesis-v4130"&gt;Обзор Релиза Schemathesis v4.13.0 &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d1%80%d0%b5%d0%bb%d0%b8%d0%b7%d0%b0-schemathesis-v4130" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Динамическая аутентификация через конфигурацию для OpenAPI схем, без кода Python.&lt;/li&gt;
&lt;li&gt;Автоматические повторы запросов с экспоненциальной задержкой при сетевых сбоях.&lt;/li&gt;
&lt;li&gt;Ключевые исправления для регистрации хуков и точности генерации данных.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ключевые-изменения"&gt;Ключевые Изменения &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Новые Возможности&lt;/strong&gt;
Schemathesis v4.13.0 представляет новый блок конфигурации &lt;code&gt;[auth.dynamic.openapi.&amp;lt;scheme&amp;gt;]&lt;/code&gt;, позволяющий динамическую аутентификацию получения токенов непосредственно через конфигурацию, устраняя необходимость в пользовательском коде Python. Эта версия также добавляет &lt;code&gt;--request-retries&lt;/code&gt; для автоматического повтора запросов при сетевых сбоях с использованием стратегии экспоненциальной задержки, что значительно повышает стабильность тестирования. Кроме того, захваченные данные ответа теперь могут использоваться на этапе примеров, улучшая генерацию тестовых сценариев.&lt;/p&gt;</description></item><item><title>Vitest v4.1.1: Новые возможности и исправления стабильности</title><link>https://yrkan.com/ru/tools-updates/vitest-v4-1-whats-new/</link><pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/vitest-v4-1-whats-new/</guid><description>&lt;h2 id="vitest-v411-новые-возможности-и-исправления-стабильности"&gt;Vitest v4.1.1: Новые возможности и исправления стабильности &lt;a href="#vitest-v411-%d0%bd%d0%be%d0%b2%d1%8b%d0%b5-%d0%b2%d0%be%d0%b7%d0%bc%d0%be%d0%b6%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%b8-%d0%b8%d1%81%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-%d1%81%d1%82%d0%b0%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Vitest, быстрый фреймворк для модульного тестирования, выпустил версию 4.1.1 23 марта 2026 года. Это обновление сосредоточено на экспериментальных функциях и критических исправлениях ошибок для повышения стабильности и удобства разработчиков. Оно важно для команд, использующих современные практики тестирования JavaScript. Для сравнения различных фреймворков, наша статья о &lt;a href="https://yrkan.com/ru/blog/jest-vs-mocha-comparison/"&gt;Jest vs. Mocha comparison&lt;/a&gt; предлагает дополнительные сведения.&lt;/p&gt;
&lt;h3 id="ключевые-изменения"&gt;Ключевые изменения &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Экспериментальные возможности:&lt;/strong&gt;
Vitest v4.1.1 представляет две экспериментальные функции:&lt;/p&gt;</description></item><item><title>WebdriverIO v9.27.0: Исправления Appium, TypeScript и Протоколов</title><link>https://yrkan.com/ru/tools-updates/webdriverio-v9-27-whats-new/</link><pubDate>Sat, 04 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/webdriverio-v9-27-whats-new/</guid><description>&lt;h2 id="webdriverio-v9270-исправления-appium-typescript-и-протоколов"&gt;WebdriverIO v9.27.0: Исправления Appium, TypeScript и Протоколов &lt;a href="#webdriverio-v9270-%d0%b8%d1%81%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-appium-typescript-%d0%b8-%d0%bf%d1%80%d0%be%d1%82%d0%be%d0%ba%d0%be%d0%bb%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Исправлены проблемы запуска сервиса Appium.&lt;/li&gt;
&lt;li&gt;Улучшена совместимость с TypeScript 7.&lt;/li&gt;
&lt;li&gt;Отменены изменения протокола &lt;code&gt;queryAppState&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;WebdriverIO v9.27.0, выпущенный 23 марта 2026 года, сосредоточен на критических исправлениях ошибок для повышения стабильности и совместимости. Это минорное обновление устраняет конкретные проблемы, влияющие на рабочие процессы автоматизации тестирования.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Стабильность сервиса Appium&lt;/strong&gt;: &lt;code&gt;wdio-appium-service&lt;/code&gt; теперь корректно обрабатывает вывод логов Appium в stderr, предотвращая сбои при запуске. Это исправление обеспечивает более надежное выполнение тестов при использовании Appium с WebdriverIO.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Совместимость с TypeScript&lt;/strong&gt;: Важное исправление в &lt;code&gt;wdio-globals&lt;/code&gt; улучшает совместимость с TypeScript 7. Это решает потенциальные ошибки, связанные с типами, для проектов, использующих последние версии TypeScript.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Согласованность протоколов&lt;/strong&gt;: В пакетах &lt;code&gt;webdriverio&lt;/code&gt; и &lt;code&gt;wdio-protocols&lt;/code&gt; были отменены переименование протокола &lt;code&gt;queryAppState&lt;/code&gt; и удален &amp;ldquo;mobile command wrapper&amp;rdquo;. Это восстанавливает ожидаемое поведение для команд мобильного тестирования. Подробнее о возможностях WebdriverIO, включая мобильное тестирование, можно узнать в нашей статье &lt;a href="https://yrkan.com/ru/blog/webdriverio-tutorial-nodejs/"&gt;webdriverio-tutorial-nodejs&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="impact-for-qa-teams"&gt;Impact for QA Teams &lt;a href="#impact-for-qa-teams" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Эти обновления напрямую приносят пользу QA-инженерам, повышая надежность тестовых сред. Команды, использующие Appium, столкнутся с меньшим количеством проблем при запуске, а те, кто работает с TypeScript 7, найдут лучшую интеграцию. Отмена изменений протокола обеспечивает согласованное выполнение мобильных команд, снижая количество неожиданных сбоев в тестах. Для расширенных конфигураций рассмотрите нашу статью о &lt;a href="https://yrkan.com/ru/blog/webdriverio-extensibility-multiremote-migration/"&gt;webdriverio-extensibility-multiremote-migration&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Specmatic 2.43.0: Улучшения API-тестирования и Matcher'ов</title><link>https://yrkan.com/ru/tools-updates/specmatic-2-43-whats-new/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/specmatic-2-43-whats-new/</guid><description>&lt;p&gt;Specmatic 2.43.0, выпущенный 22 марта 2026 года, представляет собой минорное обновление, направленное на улучшение контрактного тестирования API и повышение общей надежности инструмента. Этот релиз особенно актуален для инженеров по QA, работающих с тестированием API и мобильных приложений.&lt;/p&gt;
&lt;h3 id="key-changes"&gt;Key Changes: &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OpenAPI и Отчетность по Покрытию:&lt;/strong&gt; Обновление включает поддержку интерполированных путей OpenAPI, что упрощает определение и тестирование сложных структур API. Отчетность по покрытию API была значительно доработана: теперь она корректно обрабатывает ассоциации &amp;ldquo;missing-in-spec&amp;rdquo; и предоставляет более точные метрики операций. Это помогает командам получить более четкое представление о соответствии их API спецификациям и полноте тестирования.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Исправления Надежности Matcher&amp;rsquo;ов:&lt;/strong&gt; Внесены критические исправления, устраняющие проблемы с сохранением исходных шаблонов в matchers и парсингом регулярных выражений (regex), особенно когда шаблоны regex содержали запятые. Эти улучшения обеспечивают более согласованное сопоставление и генерацию, уменьшая количество ложных срабатываний в контрактных тестах.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Улучшения Рабочего Процесса Тестирования:&lt;/strong&gt; Изоляция на уровне спецификации для перехватчиков HttpStub предоставляет больший контроль и гибкость при тестировании специфических сценариев. Кроме того, записи прокси теперь стали чище, поскольку из них отфильтровываются заголовки транспортного уровня и метаданные браузера, что упрощает анализ артефактов.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Обновления Зависимостей:&lt;/strong&gt; Обновлен ряд зависимостей, включая &lt;code&gt;io.specmatic.build-reporter&lt;/code&gt;, &lt;code&gt;joda-time&lt;/code&gt;, &lt;code&gt;spring-web&lt;/code&gt; и &lt;code&gt;jackson&lt;/code&gt;, что способствует стабильности и производительности инструмента. Также удалена зависимость &lt;code&gt;mozilla-rhino&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Подробный список изменений доступен в &lt;a href="https://github.com/specmatic/specmatic/compare/2.42.2...2.43.0"&gt;официальном changelog&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Detox 20.48.0: Поддержка iOS 26+ и исправления Scrollview</title><link>https://yrkan.com/ru/tools-updates/detox-20-48-whats-new/</link><pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/detox-20-48-whats-new/</guid><description>&lt;h2 id="обзор-релиза-detox-20480"&gt;Обзор релиза Detox 20.48.0 &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d1%80%d0%b5%d0%bb%d0%b8%d0%b7%d0%b0-detox-20480" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Detox, фреймворк для сквозного тестирования React Native приложений, выпустил версию 20.48.0. Это минорное обновление от 21 марта 2026 года направлено на улучшение возможностей и надежности тестирования iOS.&lt;/p&gt;
&lt;h3 id="ключевые-изменения"&gt;Ключевые изменения &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Поддержка архитектуры симулятора iOS (iOS 26+):&lt;/strong&gt; Эта версия добавляет поддержку новых архитектур запуска симулятора, в частности для iOS 26 и более поздних версий. Это гарантирует совместимость Detox с будущими версиями iOS и средами разработки, позволяя QA-командам тестировать приложения на новейших платформах.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Улучшенное обнаружение элементов в Scrollview:&lt;/strong&gt; Внедрено исправление, улучшающее обнаружение элементов внутри scrollview. Теперь элементы должны быть видимы как минимум на 75% до того, как Detox их обнаружит. Это предотвращает взаимодействие с частично скрытыми элементами, что приводит к более точным и надежным тестовым сценариям.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="влияние-на-qa-команды"&gt;Влияние на QA-команды &lt;a href="#%d0%b2%d0%bb%d0%b8%d1%8f%d0%bd%d0%b8%d0%b5-%d0%bd%d0%b0-qa-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Это обновление повышает стабильность тестов и обеспечивает долгосрочную совместимость рабочих процессов тестирования iOS. QA-инженеры могут ожидать более точного взаимодействия с элементами в прокручиваемых представлениях и непрерывной совместимости с новейшими средами симуляторов iOS. Для получения дополнительной информации об оптимизации тестов Detox, ознакомьтесь с нашей статьей о &lt;a href="https://yrkan.com/ru/blog/detox-react-native-grey-box/"&gt;Detox React Native Grey Box testing&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>ESLint v10.1.0: Массовые Подавления и Улучшения TS</title><link>https://yrkan.com/ru/tools-updates/eslint-v10-1-whats-new/</link><pubDate>Tue, 31 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/eslint-v10-1-whats-new/</guid><description>&lt;p&gt;ESLint v10.1.0: Массовые Подавления и Улучшения TS&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Новый API для массового подавления проблем линтинга.&lt;/li&gt;
&lt;li&gt;Правило &lt;code&gt;no-var&lt;/code&gt; теперь корректно применяет исправления в &lt;code&gt;TSModuleBlock&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Улучшенный autofix для &lt;code&gt;no-var&lt;/code&gt; предотвращает некорректные изменения при использовании переменных до их объявления.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Key Changes&lt;/strong&gt;
ESLint v10.1.0, минорное обновление, выпущенное 20 марта 2026 года, направлено на улучшение опыта разработчиков и согласованности кода. Дополнительную информацию можно найти на &lt;a href="https://eslint.org/"&gt;официальном сайте ESLint&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Новые возможности:&lt;/strong&gt; Наиболее заметным дополнением является новая поддержка API для &lt;strong&gt;bulk-suppressions&lt;/strong&gt; (&lt;code&gt;0916995&lt;/code&gt;). Это позволяет разработчикам более эффективно управлять и подавлять множество проблем линтинга, что особенно полезно в больших проектах или при интеграции новых правил. Кроме того, правило &lt;code&gt;no-var&lt;/code&gt; теперь корректно применяет исправления в контекстах &lt;code&gt;TSModuleBlock&lt;/code&gt; (&lt;code&gt;ff4382b&lt;/code&gt;), повышая качество кода TypeScript.&lt;/p&gt;</description></item><item><title>Аудит QA-процессов</title><link>https://yrkan.com/ru/course/module-12-leadership/qa-process-audit/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/qa-process-audit/</guid><description>&lt;h2 id="методология-аудита-qa-процессов"&gt;Методология аудита QA-процессов &lt;a href="#%d0%bc%d0%b5%d1%82%d0%be%d0%b4%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d1%8f-%d0%b0%d1%83%d0%b4%d0%b8%d1%82%d0%b0-qa-%d0%bf%d1%80%d0%be%d1%86%d0%b5%d1%81%d1%81%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Аудит QA-процессов систематически исследует практики тестирования.&lt;/p&gt;
&lt;h3 id="фреймворк-аудита"&gt;Фреймворк аудита &lt;a href="#%d1%84%d1%80%d0%b5%d0%b9%d0%bc%d0%b2%d0%be%d1%80%d0%ba-%d0%b0%d1%83%d0%b4%d0%b8%d1%82%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Шаг 1: Определить scope&lt;/strong&gt; — процессы, команды, период
&lt;strong&gt;Шаг 2: Собрать данные&lt;/strong&gt; — документация, интервью, метрики, наблюдение
&lt;strong&gt;Шаг 3: Оценить по фреймворкам&lt;/strong&gt; (TMMi, TPI Next)&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Уровень TMMi&lt;/th&gt;
 &lt;th&gt;Характеристики&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;1 - Начальный&lt;/td&gt;
 &lt;td&gt;Ad hoc, без определённого процесса&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;2 - Управляемый&lt;/td&gt;
 &lt;td&gt;Базовые процессы на уровне проекта&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3 - Определённый&lt;/td&gt;
 &lt;td&gt;Стандартизирован по организации&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;4 - Измеряемый&lt;/td&gt;
 &lt;td&gt;Количественное управление&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;5 - Оптимизация&lt;/td&gt;
 &lt;td&gt;Непрерывное улучшение&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Шаг 4: Выявить пробелы&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Будущее QA: AI и далее</title><link>https://yrkan.com/ru/course/module-12-leadership/future-of-qa-ai/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/future-of-qa-ai/</guid><description>&lt;h2 id="будущее-qa-ai-и-далее"&gt;Будущее QA: AI и далее &lt;a href="#%d0%b1%d1%83%d0%b4%d1%83%d1%89%d0%b5%d0%b5-qa-ai-%d0%b8-%d0%b4%d0%b0%d0%bb%d0%b5%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This lesson covers essential strategies and practical approaches for будущее qa: ai и далее in the context of QA career development. Whether you are an individual contributor looking to expand your impact or a QA lead building team capabilities, these concepts apply to your daily work.&lt;/p&gt;
&lt;h2 id="core-concepts"&gt;Core Concepts &lt;a href="#core-concepts" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The key to success in будущее qa: ai и далее lies in combining technical knowledge with interpersonal skills and strategic thinking. QA professionals who master this area differentiate themselves from peers and create new career opportunities.&lt;/p&gt;</description></item><item><title>Бюджет и выбор инструментов</title><link>https://yrkan.com/ru/course/module-12-leadership/budget-tool-selection/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/budget-tool-selection/</guid><description>&lt;h2 id="управление-qa-бюджетом-и-выбор-инструментов"&gt;Управление QA-бюджетом и выбор инструментов &lt;a href="#%d1%83%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-qa-%d0%b1%d1%8e%d0%b4%d0%b6%d0%b5%d1%82%d0%be%d0%bc-%d0%b8-%d0%b2%d1%8b%d0%b1%d0%be%d1%80-%d0%b8%d0%bd%d1%81%d1%82%d1%80%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Как QA-лид, вы будете отвечать за обоснование затрат и принятие решений по инструментам.&lt;/p&gt;
&lt;h2 id="анализ-tco-total-cost-of-ownership"&gt;Анализ TCO (Total Cost of Ownership) &lt;a href="#%d0%b0%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7-tco-total-cost-of-ownership" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Категория&lt;/th&gt;
 &lt;th&gt;Примеры&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Лицензии&lt;/td&gt;
 &lt;td&gt;Годовая подписка, цена за пользователя&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Инфраструктура&lt;/td&gt;
 &lt;td&gt;Серверы, облако, устройства&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Обучение&lt;/td&gt;
 &lt;td&gt;Кривая обучения, курсы&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Поддержка&lt;/td&gt;
 &lt;td&gt;Обновления, конфигурация&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Интеграция&lt;/td&gt;
 &lt;td&gt;CI/CD, репортинг&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="фреймворк-build-vs-buy"&gt;Фреймворк Build vs Buy &lt;a href="#%d1%84%d1%80%d0%b5%d0%b9%d0%bc%d0%b2%d0%be%d1%80%d0%ba-build-vs-buy" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Фактор&lt;/th&gt;
 &lt;th&gt;Build&lt;/th&gt;
 &lt;th&gt;Buy&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Кастомизация&lt;/td&gt;
 &lt;td&gt;Полный контроль&lt;/td&gt;
 &lt;td&gt;Ограничена&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Время до ценности&lt;/td&gt;
 &lt;td&gt;Месяцы&lt;/td&gt;
 &lt;td&gt;Дни/недели&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Поддержка&lt;/td&gt;
 &lt;td&gt;Команда&lt;/td&gt;
 &lt;td&gt;Вендор&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="презентация-roi-руководству"&gt;Презентация ROI руководству &lt;a href="#%d0%bf%d1%80%d0%b5%d0%b7%d0%b5%d0%bd%d1%82%d0%b0%d1%86%d0%b8%d1%8f-roi-%d1%80%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d1%83" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Текущие затраты → предложенная инвестиция → прогнозируемая экономия → срок окупаемости.&lt;/p&gt;</description></item><item><title>Выступления на конференциях для QA</title><link>https://yrkan.com/ru/course/module-12-leadership/conference-speaking/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/conference-speaking/</guid><description>&lt;h2 id="выступления-на-конференциях-для-qa"&gt;Выступления на конференциях для QA &lt;a href="#%d0%b2%d1%8b%d1%81%d1%82%d1%83%d0%bf%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-%d0%bd%d0%b0-%d0%ba%d0%be%d0%bd%d1%84%d0%b5%d1%80%d0%b5%d0%bd%d1%86%d0%b8%d1%8f%d1%85-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This lesson covers essential strategies and practical approaches for выступления на конференциях для qa in the context of QA career development. Whether you are an individual contributor looking to expand your impact or a QA lead building team capabilities, these concepts apply to your daily work.&lt;/p&gt;
&lt;h2 id="core-concepts"&gt;Core Concepts &lt;a href="#core-concepts" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The key to success in выступления на конференциях для qa lies in combining technical knowledge with interpersonal skills and strategic thinking. QA professionals who master this area differentiate themselves from peers and create new career opportunities.&lt;/p&gt;</description></item><item><title>Дашборд метрик QA</title><link>https://yrkan.com/ru/course/module-12-leadership/qa-metrics-dashboard/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/qa-metrics-dashboard/</guid><description>&lt;h2 id="построение-дашборда-qa-метрик"&gt;Построение дашборда QA-метрик &lt;a href="#%d0%bf%d0%be%d1%81%d1%82%d1%80%d0%be%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b4%d0%b0%d1%88%d0%b1%d0%be%d1%80%d0%b4%d0%b0-qa-%d0%bc%d0%b5%d1%82%d1%80%d0%b8%d0%ba" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Метрики без контекста — просто числа. Хороший QA-дашборд рассказывает историю о трендах качества.&lt;/p&gt;
&lt;h2 id="основные-метрики"&gt;Основные метрики &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%bc%d0%b5%d1%82%d1%80%d0%b8%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="метрики-процесса"&gt;Метрики процесса &lt;a href="#%d0%bc%d0%b5%d1%82%d1%80%d0%b8%d0%ba%d0%b8-%d0%bf%d1%80%d0%be%d1%86%d0%b5%d1%81%d1%81%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Метрика&lt;/th&gt;
 &lt;th&gt;Формула&lt;/th&gt;
 &lt;th&gt;Цель&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;DRE&lt;/td&gt;
 &lt;td&gt;Дефекты до релиза / Всего x 100&lt;/td&gt;
 &lt;td&gt;&amp;gt;95%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Покрытие&lt;/td&gt;
 &lt;td&gt;Требования с тестами / Всего x 100&lt;/td&gt;
 &lt;td&gt;&amp;gt;90%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Уровень автоматизации&lt;/td&gt;
 &lt;td&gt;Автотесты / Всего x 100&lt;/td&gt;
 &lt;td&gt;&amp;gt;60%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Pass Rate&lt;/td&gt;
 &lt;td&gt;Пройденные / Выполненные x 100&lt;/td&gt;
 &lt;td&gt;&amp;gt;95%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="метрики-качества"&gt;Метрики качества &lt;a href="#%d0%bc%d0%b5%d1%82%d1%80%d0%b8%d0%ba%d0%b8-%d0%ba%d0%b0%d1%87%d0%b5%d1%81%d1%82%d0%b2%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Defect Density, Escaped Defects, Mean Time to Detect, Mean Time to Fix.&lt;/p&gt;</description></item><item><title>Карьерные пути в QA</title><link>https://yrkan.com/ru/course/module-12-leadership/qa-career-paths/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/qa-career-paths/</guid><description>&lt;h2 id="карьерный-ландшафт-qa"&gt;Карьерный ландшафт QA &lt;a href="#%d0%ba%d0%b0%d1%80%d1%8c%d0%b5%d1%80%d0%bd%d1%8b%d0%b9-%d0%bb%d0%b0%d0%bd%d0%b4%d1%88%d0%b0%d1%84%d1%82-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Индустрия QA предлагает больше карьерного разнообразия, чем многие предполагают. Прошли те времена, когда «тестировщик» был единственной ролью с единственной траекторией. Сегодня QA-профессионалы могут выбирать между глубоко техническим IC-треком и менеджерским треком — каждый со своими обязанностями, вызовами и наградами.&lt;/p&gt;
&lt;p&gt;Понимание этих путей на раннем этапе помогает принимать осознанные решения о развитии навыков, а не плыть по течению текущей работы.&lt;/p&gt;
&lt;h2 id="два-основных-трека"&gt;Два основных трека &lt;a href="#%d0%b4%d0%b2%d0%b0-%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d1%85-%d1%82%d1%80%d0%b5%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="трек-individual-contributor-ic"&gt;Трек Individual Contributor (IC) &lt;a href="#%d1%82%d1%80%d0%b5%d0%ba-individual-contributor-ic" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;IC-трек — для инженеров, которые хотят расти технически без управления людьми:&lt;/p&gt;</description></item><item><title>Контрибуция в open-source QA-проекты</title><link>https://yrkan.com/ru/course/module-12-leadership/open-source-contributing/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/open-source-contributing/</guid><description>&lt;h2 id="контрибуция-в-open-source-qa-проекты"&gt;Контрибуция в open-source QA-проекты &lt;a href="#%d0%ba%d0%be%d0%bd%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%86%d0%b8%d1%8f-%d0%b2-open-source-qa-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This lesson covers essential strategies and practical approaches for контрибуция в open-source qa-проекты in the context of QA career development. Whether you are an individual contributor looking to expand your impact or a QA lead building team capabilities, these concepts apply to your daily work.&lt;/p&gt;
&lt;h2 id="core-concepts"&gt;Core Concepts &lt;a href="#core-concepts" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The key to success in контрибуция в open-source qa-проекты lies in combining technical knowledge with interpersonal skills and strategic thinking. QA professionals who master this area differentiate themselves from peers and create new career opportunities.&lt;/p&gt;</description></item><item><title>Менторство начинающих QA-инженеров</title><link>https://yrkan.com/ru/course/module-12-leadership/mentoring-junior-qa/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/mentoring-junior-qa/</guid><description>&lt;h2 id="как-стать-эффективным-qa-ментором"&gt;Как стать эффективным QA-ментором &lt;a href="#%d0%ba%d0%b0%d0%ba-%d1%81%d1%82%d0%b0%d1%82%d1%8c-%d1%8d%d1%84%d1%84%d0%b5%d0%ba%d1%82%d0%b8%d0%b2%d0%bd%d1%8b%d0%bc-qa-%d0%bc%d0%b5%d0%bd%d1%82%d0%be%d1%80%d0%be%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Менторство — одна из самых высокорычажных активностей для senior QA.&lt;/p&gt;
&lt;h2 id="фреймворк-менторства"&gt;Фреймворк менторства &lt;a href="#%d1%84%d1%80%d0%b5%d0%b9%d0%bc%d0%b2%d0%be%d1%80%d0%ba-%d0%bc%d0%b5%d0%bd%d1%82%d0%be%d1%80%d1%81%d1%82%d0%b2%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="фаза-1-онбординг-неделя-1-2"&gt;Фаза 1: Онбординг (Неделя 1-2) &lt;a href="#%d1%84%d0%b0%d0%b7%d0%b0-1-%d0%be%d0%bd%d0%b1%d0%be%d1%80%d0%b4%d0%b8%d0%bd%d0%b3-%d0%bd%d0%b5%d0%b4%d0%b5%d0%bb%d1%8f-1-2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Продукт, окружение, инструменты, процессы, первая сессия pair testing.&lt;/p&gt;
&lt;h3 id="фаза-2-направляемая-практика-месяц-1-2"&gt;Фаза 2: Направляемая практика (Месяц 1-2) &lt;a href="#%d1%84%d0%b0%d0%b7%d0%b0-2-%d0%bd%d0%b0%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d1%8f%d0%b5%d0%bc%d0%b0%d1%8f-%d0%bf%d1%80%d0%b0%d0%ba%d1%82%d0%b8%d0%ba%d0%b0-%d0%bc%d0%b5%d1%81%d1%8f%d1%86-1-2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Прогрессивные задачи, ревью репортов, еженедельные 1:1, pair testing.&lt;/p&gt;
&lt;h3 id="фаза-3-растущая-самостоятельность-месяц-3-4"&gt;Фаза 3: Растущая самостоятельность (Месяц 3-4) &lt;a href="#%d1%84%d0%b0%d0%b7%d0%b0-3-%d1%80%d0%b0%d1%81%d1%82%d1%83%d1%89%d0%b0%d1%8f-%d1%81%d0%b0%d0%bc%d0%be%d1%81%d1%82%d0%be%d1%8f%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d1%8c-%d0%bc%d0%b5%d1%81%d1%8f%d1%86-3-4" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Самостоятельные фичи, реже ревью, автоматизация с наставничеством.&lt;/p&gt;
&lt;h3 id="фаза-4-полная-самостоятельность-месяц-5-6"&gt;Фаза 4: Полная самостоятельность (Месяц 5-6) &lt;a href="#%d1%84%d0%b0%d0%b7%d0%b0-4-%d0%bf%d0%be%d0%bb%d0%bd%d0%b0%d1%8f-%d1%81%d0%b0%d0%bc%d0%be%d1%81%d1%82%d0%be%d1%8f%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d1%8c-%d0%bc%d0%b5%d1%81%d1%8f%d1%86-5-6" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Полное ownership, peer review, вклад во фреймворк, менторство новичков.&lt;/p&gt;</description></item><item><title>Навыки коммуникации для QA</title><link>https://yrkan.com/ru/course/module-12-leadership/communication-skills-for-qa/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/communication-skills-for-qa/</guid><description>&lt;h2 id="коммуникация-как-суперсила-qa"&gt;Коммуникация как суперсила QA &lt;a href="#%d0%ba%d0%be%d0%bc%d0%bc%d1%83%d0%bd%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%8f-%d0%ba%d0%b0%d0%ba-%d1%81%d1%83%d0%bf%d0%b5%d1%80%d1%81%d0%b8%d0%bb%d0%b0-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Технические навыки помогают получить работу. Коммуникационные — получить повышение. Для QA коммуникация особенно критична: ваша работа — сообщать плохие новости (баги), влиять без формального авторитета и переводить технические проблемы в бизнес-влияние.&lt;/p&gt;
&lt;h2 id="письменная-коммуникация"&gt;Письменная коммуникация &lt;a href="#%d0%bf%d0%b8%d1%81%d1%8c%d0%bc%d0%b5%d0%bd%d0%bd%d0%b0%d1%8f-%d0%ba%d0%be%d0%bc%d0%bc%d1%83%d0%bd%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="баг-репорты-которые-исправляют"&gt;Баг-репорты, которые исправляют &lt;a href="#%d0%b1%d0%b0%d0%b3-%d1%80%d0%b5%d0%bf%d0%be%d1%80%d1%82%d1%8b-%d0%ba%d0%be%d1%82%d0%be%d1%80%d1%8b%d0%b5-%d0%b8%d1%81%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d1%8f%d1%8e%d1%82" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Плохо:&lt;/strong&gt; «Логин не работает»
&lt;strong&gt;Хорошо:&lt;/strong&gt; «Логин падает с валидными данными при email с символом &amp;ldquo;+&amp;rdquo;. Возвращает 500. Затрагивает ~5% пользователей.»&lt;/p&gt;
&lt;h3 id="email-и-slack"&gt;Email и Slack &lt;a href="#email-%d0%b8-slack" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Правило 1:&lt;/strong&gt; Начинайте с вывода
&lt;strong&gt;Правило 2:&lt;/strong&gt; Квантифицируйте влияние
&lt;strong&gt;Правило 3:&lt;/strong&gt; Предлагайте следующие шаги&lt;/p&gt;</description></item><item><title>Найм в QA: как найти правильных людей</title><link>https://yrkan.com/ru/course/module-12-leadership/qa-hiring/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/qa-hiring/</guid><description>&lt;h2 id="вызов-найма-в-qa"&gt;Вызов найма в QA &lt;a href="#%d0%b2%d1%8b%d0%b7%d0%be%d0%b2-%d0%bd%d0%b0%d0%b9%d0%bc%d0%b0-%d0%b2-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Найм QA-инженеров уникально сложен. В отличие от разработчиков, где можно оценить код, QA-навыки труднее квантифицировать.&lt;/p&gt;
&lt;h2 id="эффективные-описания-вакансий"&gt;Эффективные описания вакансий &lt;a href="#%d1%8d%d1%84%d1%84%d0%b5%d0%ba%d1%82%d0%b8%d0%b2%d0%bd%d1%8b%d0%b5-%d0%be%d0%bf%d0%b8%d1%81%d0%b0%d0%bd%d0%b8%d1%8f-%d0%b2%d0%b0%d0%ba%d0%b0%d0%bd%d1%81%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="работающая-структура"&gt;Работающая структура &lt;a href="#%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d1%8e%d1%89%d0%b0%d1%8f-%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Описание роли&lt;/strong&gt; (2-3 предложения)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Контекст команды&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевые обязанности&lt;/strong&gt; (5-7 пунктов)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Must-have требования&lt;/strong&gt; (4-6 пунктов)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nice-to-have&lt;/strong&gt; (3-5 пунктов)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Что предлагаем&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="типичные-ошибки"&gt;Типичные ошибки &lt;a href="#%d1%82%d0%b8%d0%bf%d0%b8%d1%87%d0%bd%d1%8b%d0%b5-%d0%be%d1%88%d0%b8%d0%b1%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Список из 20 инструментов&lt;/li&gt;
&lt;li&gt;Нереалистичные комбинации требований&lt;/li&gt;
&lt;li&gt;Отсутствие упоминания о росте&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="проектирование-технических-оценок"&gt;Проектирование технических оценок &lt;a href="#%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d1%85%d0%bd%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d1%85-%d0%be%d1%86%d0%b5%d0%bd%d0%be%d0%ba" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="три-типа"&gt;Три типа &lt;a href="#%d1%82%d1%80%d0%b8-%d1%82%d0%b8%d0%bf%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Тип 1: Домашнее задание (2-4 часа)&lt;/strong&gt;
Дать реальное приложение для тестирования: тест-план, баги, автоматизация 5 критических тестов.&lt;/p&gt;</description></item><item><title>Переговоры о зарплате в QA</title><link>https://yrkan.com/ru/course/module-12-leadership/salary-negotiation/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/salary-negotiation/</guid><description>&lt;h2 id="переговоры-о-зарплате-в-qa"&gt;Переговоры о зарплате в QA &lt;a href="#%d0%bf%d0%b5%d1%80%d0%b5%d0%b3%d0%be%d0%b2%d0%be%d1%80%d1%8b-%d0%be-%d0%b7%d0%b0%d1%80%d0%bf%d0%bb%d0%b0%d1%82%d0%b5-%d0%b2-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This lesson covers essential strategies and practical approaches for переговоры о зарплате в qa in the context of QA career development. Whether you are an individual contributor looking to expand your impact or a QA lead building team capabilities, these concepts apply to your daily work.&lt;/p&gt;
&lt;h2 id="core-concepts"&gt;Core Concepts &lt;a href="#core-concepts" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The key to success in переговоры о зарплате в qa lies in combining technical knowledge with interpersonal skills and strategic thinking. QA professionals who master this area differentiate themselves from peers and create new career opportunities.&lt;/p&gt;</description></item><item><title>Переход от ручного тестирования к автоматизации</title><link>https://yrkan.com/ru/course/module-12-leadership/manual-to-automation-transition/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/manual-to-automation-transition/</guid><description>&lt;h2 id="дорожная-карта-перехода"&gt;Дорожная карта перехода &lt;a href="#%d0%b4%d0%be%d1%80%d0%be%d0%b6%d0%bd%d0%b0%d1%8f-%d0%ba%d0%b0%d1%80%d1%82%d0%b0-%d0%bf%d0%b5%d1%80%d0%b5%d1%85%d0%be%d0%b4%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Переход от ручного тестирования к автоматизации — одно из самых распространённых и значимых карьерных движений в QA. Обычно повышает зарплатный потенциал на 30-50%.&lt;/p&gt;
&lt;h3 id="месяц-1-2-основы-программирования"&gt;Месяц 1-2: Основы программирования &lt;a href="#%d0%bc%d0%b5%d1%81%d1%8f%d1%86-1-2-%d0%be%d1%81%d0%bd%d0%be%d0%b2%d1%8b-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Освойте один язык перед тестовыми фреймворками:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;JavaScript/TypeScript:&lt;/strong&gt; Лучше для web (Playwright, Cypress)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python:&lt;/strong&gt; Лучше для API и скриптинга (pytest)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="месяц-3-4-первый-фреймворк"&gt;Месяц 3-4: Первый фреймворк &lt;a href="#%d0%bc%d0%b5%d1%81%d1%8f%d1%86-3-4-%d0%bf%d0%b5%d1%80%d0%b2%d1%8b%d0%b9-%d1%84%d1%80%d0%b5%d0%b9%d0%bc%d0%b2%d0%be%d1%80%d0%ba" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Настройка проекта с нуля&lt;/li&gt;
&lt;li&gt;Написание 5 тестов&lt;/li&gt;
&lt;li&gt;Реализация Page Object Model&lt;/li&gt;
&lt;li&gt;Запуск в CI&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="месяц-5-6-расширение"&gt;Месяц 5-6: Расширение &lt;a href="#%d0%bc%d0%b5%d1%81%d1%8f%d1%86-5-6-%d1%80%d0%b0%d1%81%d1%88%d0%b8%d1%80%d0%b5%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;API-тестирование, data-driven, фикстуры, репортинг.&lt;/p&gt;</description></item><item><title>Подготовка к собеседованию: автоматизация</title><link>https://yrkan.com/ru/course/module-12-leadership/interview-automation/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/interview-automation/</guid><description>&lt;h2 id="формат-собеседования-по-автоматизации"&gt;Формат собеседования по автоматизации &lt;a href="#%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%82-%d1%81%d0%be%d0%b1%d0%b5%d1%81%d0%b5%d0%b4%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d0%bf%d0%be-%d0%b0%d0%b2%d1%82%d0%be%d0%bc%d0%b0%d1%82%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Собеседования по автоматизации более технические, чем по ручному тестированию. Обычно включают:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Концептуальные вопросы&lt;/strong&gt; о фреймворках, паттернах и архитектуре&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Live coding&lt;/strong&gt; — написание реальных тестов (screen-sharing)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code review&lt;/strong&gt; — оценка чужого тестового кода&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Системный дизайн&lt;/strong&gt; — проектирование тестовой архитектуры&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;На senior-уровне ключевое отличие — не знание конкретных инструментов, а понимание &lt;em&gt;почему&lt;/em&gt; одни подходы работают лучше других.&lt;/p&gt;
&lt;h2 id="вопросы-по-дизайну-фреймворков"&gt;Вопросы по дизайну фреймворков &lt;a href="#%d0%b2%d0%be%d0%bf%d1%80%d0%be%d1%81%d1%8b-%d0%bf%d0%be-%d0%b4%d0%b8%d0%b7%d0%b0%d0%b9%d0%bd%d1%83-%d1%84%d1%80%d0%b5%d0%b9%d0%bc%d0%b2%d0%be%d1%80%d0%ba%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="как-бы-вы-спроектировали-фреймворк-автоматизации-с-нуля"&gt;«Как бы вы спроектировали фреймворк автоматизации с нуля?» &lt;a href="#%d0%ba%d0%b0%d0%ba-%d0%b1%d1%8b-%d0%b2%d1%8b-%d1%81%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bb%d0%b8-%d1%84%d1%80%d0%b5%d0%b9%d0%bc%d0%b2%d0%be%d1%80%d0%ba-%d0%b0%d0%b2%d1%82%d0%be%d0%bc%d0%b0%d1%82%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b8-%d1%81-%d0%bd%d1%83%d0%bb%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Самый частый вопрос. Структурируйте ответ:&lt;/p&gt;</description></item><item><title>Подготовка к собеседованию: поведенческие вопросы</title><link>https://yrkan.com/ru/course/module-12-leadership/interview-behavioral/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/interview-behavioral/</guid><description>&lt;h2 id="метод-star-для-qa-собеседований"&gt;Метод STAR для QA-собеседований &lt;a href="#%d0%bc%d0%b5%d1%82%d0%be%d0%b4-star-%d0%b4%d0%bb%d1%8f-qa-%d1%81%d0%be%d0%b1%d0%b5%d1%81%d0%b5%d0%b4%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Поведенческие интервью оценивают, как вы справлялись с реальными ситуациями. Метод STAR даёт структуру для эффективных ответов.&lt;/p&gt;
&lt;h3 id="что-такое-star"&gt;Что такое STAR? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-star" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Situation:&lt;/strong&gt; Опишите ситуацию — проект, команда, вызов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Task:&lt;/strong&gt; Ваша конкретная задача&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action:&lt;/strong&gt; Что ВЫ сделали (фокус на ваших действиях, не команды)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Result:&lt;/strong&gt; Результат с измеримым влиянием&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="топ-10-поведенческих-вопросов-для-qa"&gt;Топ-10 поведенческих вопросов для QA &lt;a href="#%d1%82%d0%be%d0%bf-10-%d0%bf%d0%be%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d1%85-%d0%b2%d0%be%d0%bf%d1%80%d0%be%d1%81%d0%be%d0%b2-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-расскажите-о-критическом-баге-перед-релизом"&gt;1. «Расскажите о критическом баге перед релизом.» &lt;a href="#1-%d1%80%d0%b0%d1%81%d1%81%d0%ba%d0%b0%d0%b6%d0%b8%d1%82%d0%b5-%d0%be-%d0%ba%d1%80%d0%b8%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%bc-%d0%b1%d0%b0%d0%b3%d0%b5-%d0%bf%d0%b5%d1%80%d0%b5%d0%b4-%d1%80%d0%b5%d0%bb%d0%b8%d0%b7%d0%be%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Пример STAR-ответа:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;S:&lt;/strong&gt; Наша e-commerce платформа готовилась к релизу на Чёрную пятницу. При финальной регрессии я обнаружил race condition в checkout, который мог дважды списывать деньги.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;T:&lt;/strong&gt; Нужно было оценить влияние, сообщить стейкхолдерам и помочь команде принять решение.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A:&lt;/strong&gt; Я задокументировал баг с шагами воспроизведения и данными, показывающими возникновение в 3% конкурентных checkout. Собрал экстренное совещание, предложив три варианта.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;R:&lt;/strong&gt; Команда выбрала feature flag, запустившись вовремя. Hotfix через 48 часов. Ноль влияния на клиентов в период максимального трафика.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-опишите-конфликт-с-разработчиком-из-за-бага"&gt;2. «Опишите конфликт с разработчиком из-за бага.» &lt;a href="#2-%d0%be%d0%bf%d0%b8%d1%88%d0%b8%d1%82%d0%b5-%d0%ba%d0%be%d0%bd%d1%84%d0%bb%d0%b8%d0%ba%d1%82-%d1%81-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%87%d0%b8%d0%ba%d0%be%d0%bc-%d0%b8%d0%b7-%d0%b7%d0%b0-%d0%b1%d0%b0%d0%b3%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Позиционируйте как сотрудничество, не конфронтацию. Покажите эмпатию и результат.&lt;/p&gt;</description></item><item><title>Подготовка к собеседованию: ручное тестирование</title><link>https://yrkan.com/ru/course/module-12-leadership/interview-manual-testing/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/interview-manual-testing/</guid><description>&lt;h2 id="ландшафт-собеседований-по-ручному-тестированию"&gt;Ландшафт собеседований по ручному тестированию &lt;a href="#%d0%bb%d0%b0%d0%bd%d0%b4%d1%88%d0%b0%d1%84%d1%82-%d1%81%d0%be%d0%b1%d0%b5%d1%81%d0%b5%d0%b4%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b9-%d0%bf%d0%be-%d1%80%d1%83%d1%87%d0%bd%d0%be%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8e" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Собеседования по ручному тестированию обычно комбинируют три элемента: концептуальные вопросы по теории тестирования, практические упражнения где вы тестируете что-то на месте, и поведенческие вопросы о вашем опыте. Этот урок покрывает первые два — поведенческие вопросы рассматриваются в Уроке 12.7.&lt;/p&gt;
&lt;p&gt;Цель — не заучить ответы. Интервьюеры оценивают процесс мышления, а не способность пересказывать определения. Лучшие кандидаты думают вслух, задают уточняющие вопросы и структурируют ответы логически.&lt;/p&gt;</description></item><item><title>Подготовка к собеседованию: системный дизайн для QA</title><link>https://yrkan.com/ru/course/module-12-leadership/interview-system-design/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/interview-system-design/</guid><description>&lt;h2 id="собеседования-по-системному-дизайну-для-qa"&gt;Собеседования по системному дизайну для QA &lt;a href="#%d1%81%d0%be%d0%b1%d0%b5%d1%81%d0%b5%d0%b4%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d0%bf%d0%be-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d0%bd%d0%be%d0%bc%d1%83-%d0%b4%d0%b8%d0%b7%d0%b0%d0%b9%d0%bd%d1%83-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Собеседования по системному дизайну для QA отличаются от таких же для разработчиков. Вместо проектирования самой системы вас просят спроектировать стратегию и инфраструктуру тестирования.&lt;/p&gt;
&lt;h2 id="фреймворк-qa-system-design"&gt;Фреймворк QA System Design &lt;a href="#%d1%84%d1%80%d0%b5%d0%b9%d0%bc%d0%b2%d0%be%d1%80%d0%ba-qa-system-design" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-уточнить-требования"&gt;1. Уточнить требования &lt;a href="#1-%d1%83%d1%82%d0%be%d1%87%d0%bd%d0%b8%d1%82%d1%8c-%d1%82%d1%80%d0%b5%d0%b1%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Масштаб (пользователи, RPS, объём данных)&lt;/li&gt;
&lt;li&gt;SLA (uptime, латентность, error rate)&lt;/li&gt;
&lt;li&gt;Существующие окружения&lt;/li&gt;
&lt;li&gt;Частота деплоев&lt;/li&gt;
&lt;li&gt;Текущее тестирование&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-определить-слои-тестирования"&gt;2. Определить слои тестирования &lt;a href="#2-%d0%be%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d0%b8%d1%82%d1%8c-%d1%81%d0%bb%d0%be%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Unit Tests → Integration Tests → Contract Tests → E2E Tests → Performance Tests → Chaos Engineering&lt;/p&gt;</description></item><item><title>Подготовка к собеседованию: тестирование API</title><link>https://yrkan.com/ru/course/module-12-leadership/interview-api-testing/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/interview-api-testing/</guid><description>&lt;h2 id="собеседования-по-api-тестированию"&gt;Собеседования по API-тестированию &lt;a href="#%d1%81%d0%be%d0%b1%d0%b5%d1%81%d0%b5%d0%b4%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d0%bf%d0%be-api-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8e" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Собеседования по API-тестированию оценивают понимание HTTP-протоколов, REST-архитектуры, механизмов аутентификации и способность тестировать бэкенд-сервисы независимо от фронтенда.&lt;/p&gt;
&lt;h2 id="основные-области-знаний"&gt;Основные области знаний &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d0%b8-%d0%b7%d0%bd%d0%b0%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="http-методы-и-их-тестовые-особенности"&gt;HTTP-методы и их тестовые особенности &lt;a href="#http-%d0%bc%d0%b5%d1%82%d0%be%d0%b4%d1%8b-%d0%b8-%d0%b8%d1%85-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2%d1%8b%d0%b5-%d0%be%d1%81%d0%be%d0%b1%d0%b5%d0%bd%d0%bd%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Метод&lt;/th&gt;
 &lt;th&gt;Назначение&lt;/th&gt;
 &lt;th&gt;Идемпотентный&lt;/th&gt;
 &lt;th&gt;Фокус тестирования&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;GET&lt;/td&gt;
 &lt;td&gt;Получение данных&lt;/td&gt;
 &lt;td&gt;Да&lt;/td&gt;
 &lt;td&gt;Формат ответа, фильтрация, пагинация&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;POST&lt;/td&gt;
 &lt;td&gt;Создание ресурса&lt;/td&gt;
 &lt;td&gt;Нет&lt;/td&gt;
 &lt;td&gt;Валидация, предотвращение дубликатов&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;PUT&lt;/td&gt;
 &lt;td&gt;Замена ресурса&lt;/td&gt;
 &lt;td&gt;Да&lt;/td&gt;
 &lt;td&gt;Полная замена, поведение при отсутствии полей&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;PATCH&lt;/td&gt;
 &lt;td&gt;Частичное обновление&lt;/td&gt;
 &lt;td&gt;Нет&lt;/td&gt;
 &lt;td&gt;Логика частичного обновления&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;DELETE&lt;/td&gt;
 &lt;td&gt;Удаление ресурса&lt;/td&gt;
 &lt;td&gt;Да&lt;/td&gt;
 &lt;td&gt;Soft vs hard delete, авторизация&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="знание-статус-кодов"&gt;Знание статус-кодов &lt;a href="#%d0%b7%d0%bd%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81%d1%82%d0%b0%d1%82%d1%83%d1%81-%d0%ba%d0%be%d0%b4%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Успех (2xx):&lt;/strong&gt; 200 OK, 201 Created, 204 No Content
&lt;strong&gt;Редиректы (3xx):&lt;/strong&gt; 301 Moved, 304 Not Modified
&lt;strong&gt;Ошибки клиента (4xx):&lt;/strong&gt; 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 409 Conflict, 422 Unprocessable Entity, 429 Too Many Requests
&lt;strong&gt;Ошибки сервера (5xx):&lt;/strong&gt; 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable&lt;/p&gt;</description></item><item><title>Построение QA-команды с нуля</title><link>https://yrkan.com/ru/course/module-12-leadership/building-qa-team/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/building-qa-team/</guid><description>&lt;h2 id="построение-qa-команды-с-нуля"&gt;Построение QA-команды с нуля &lt;a href="#%d0%bf%d0%be%d1%81%d1%82%d1%80%d0%be%d0%b5%d0%bd%d0%b8%d0%b5-qa-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b-%d1%81-%d0%bd%d1%83%d0%bb%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Создание QA-функции с нуля — один из самых сложных и вознаграждающих вызовов для QA-лидера. Решения первых 90 дней формируют культуру качества на годы.&lt;/p&gt;
&lt;h2 id="фаза-1-оценка-неделя-1-2"&gt;Фаза 1: Оценка (Неделя 1-2) &lt;a href="#%d1%84%d0%b0%d0%b7%d0%b0-1-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b0-%d0%bd%d0%b5%d0%b4%d0%b5%d0%bb%d1%8f-1-2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="вопросы-для-ответа"&gt;Вопросы для ответа &lt;a href="#%d0%b2%d0%be%d0%bf%d1%80%d0%be%d1%81%d1%8b-%d0%b4%d0%bb%d1%8f-%d0%be%d1%82%d0%b2%d0%b5%d1%82%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Как сейчас управляется качество?&lt;/li&gt;
&lt;li&gt;Какова частота дефектов в продакшене?&lt;/li&gt;
&lt;li&gt;Какова частота деплоев?&lt;/li&gt;
&lt;li&gt;Какие инструменты уже используются?&lt;/li&gt;
&lt;li&gt;Какова толерантность к рискам?&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="интервью-со-стейкхолдерами"&gt;Интервью со стейкхолдерами &lt;a href="#%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%b2%d1%8c%d1%8e-%d1%81%d0%be-%d1%81%d1%82%d0%b5%d0%b9%d0%ba%d1%85%d0%be%d0%bb%d0%b4%d0%b5%d1%80%d0%b0%d0%bc%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Встретиться с: инженерными лидами, продакт-менеджерами, службой поддержки, C-level.&lt;/p&gt;</description></item><item><title>Построение QA-сообщества</title><link>https://yrkan.com/ru/course/module-12-leadership/qa-community-building/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/qa-community-building/</guid><description>&lt;h2 id="построение-qa-сообщества"&gt;Построение QA-сообщества &lt;a href="#%d0%bf%d0%be%d1%81%d1%82%d1%80%d0%be%d0%b5%d0%bd%d0%b8%d0%b5-qa-%d1%81%d0%be%d0%be%d0%b1%d1%89%d0%b5%d1%81%d1%82%d0%b2%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This lesson covers essential strategies and practical approaches for построение qa-сообщества in the context of QA career development. Whether you are an individual contributor looking to expand your impact or a QA lead building team capabilities, these concepts apply to your daily work.&lt;/p&gt;
&lt;h2 id="core-concepts"&gt;Core Concepts &lt;a href="#core-concepts" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The key to success in построение qa-сообщества lies in combining technical knowledge with interpersonal skills and strategic thinking. QA professionals who master this area differentiate themselves from peers and create new career opportunities.&lt;/p&gt;</description></item><item><title>Построение личного бренда в QA</title><link>https://yrkan.com/ru/course/module-12-leadership/personal-brand-for-qa/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/personal-brand-for-qa/</guid><description>&lt;h2 id="построение-личного-бренда-в-qa"&gt;Построение личного бренда в QA &lt;a href="#%d0%bf%d0%be%d1%81%d1%82%d1%80%d0%be%d0%b5%d0%bd%d0%b8%d0%b5-%d0%bb%d0%b8%d1%87%d0%bd%d0%be%d0%b3%d0%be-%d0%b1%d1%80%d0%b5%d0%bd%d0%b4%d0%b0-%d0%b2-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This lesson covers essential strategies and practical approaches for построение личного бренда в qa in the context of QA career development. Whether you are an individual contributor looking to expand your impact or a QA lead building team capabilities, these concepts apply to your daily work.&lt;/p&gt;
&lt;h2 id="core-concepts"&gt;Core Concepts &lt;a href="#core-concepts" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The key to success in построение личного бренда в qa lies in combining technical knowledge with interpersonal skills and strategic thinking. QA professionals who master this area differentiate themselves from peers and create new career opportunities.&lt;/p&gt;</description></item><item><title>Презентация результатов тестирования</title><link>https://yrkan.com/ru/course/module-12-leadership/presenting-test-results/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/presenting-test-results/</guid><description>&lt;h2 id="презентация-результатов-qa-влияющих-на-решения"&gt;Презентация результатов QA, влияющих на решения &lt;a href="#%d0%bf%d1%80%d0%b5%d0%b7%d0%b5%d0%bd%d1%82%d0%b0%d1%86%d0%b8%d1%8f-%d1%80%d0%b5%d0%b7%d1%83%d0%bb%d1%8c%d1%82%d0%b0%d1%82%d0%be%d0%b2-qa-%d0%b2%d0%bb%d0%b8%d1%8f%d1%8e%d1%89%d0%b8%d1%85-%d0%bd%d0%b0-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Умение эффективно презентовать результаты тестирования отличает QA-инженеров от QA-лидеров.&lt;/p&gt;
&lt;h2 id="знайте-свою-аудиторию"&gt;Знайте свою аудиторию &lt;a href="#%d0%b7%d0%bd%d0%b0%d0%b9%d1%82%d0%b5-%d1%81%d0%b2%d0%be%d1%8e-%d0%b0%d1%83%d0%b4%d0%b8%d1%82%d0%be%d1%80%d0%b8%d1%8e" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Аудитория&lt;/th&gt;
 &lt;th&gt;Их волнует&lt;/th&gt;
 &lt;th&gt;Формат&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Разработчики&lt;/td&gt;
 &lt;td&gt;Конкретные баги, технические детали&lt;/td&gt;
 &lt;td&gt;Jira, комменты к PR&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Product Managers&lt;/td&gt;
 &lt;td&gt;Качество фич, влияние на пользователей&lt;/td&gt;
 &lt;td&gt;Дашборды&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Руководство&lt;/td&gt;
 &lt;td&gt;Бизнес-риск, тренды, ROI качества&lt;/td&gt;
 &lt;td&gt;Визуальные саммари&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="формат-executive-summary"&gt;Формат executive summary &lt;a href="#%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%82-executive-summary" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Статус, ключевые находки с бизнес-влиянием, оценка рисков, чёткая рекомендация.&lt;/p&gt;
&lt;h2 id="визуализация-данных"&gt;Визуализация данных &lt;a href="#%d0%b2%d0%b8%d0%b7%d1%83%d0%b0%d0%bb%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Графики трендов, RAG-индикаторы, сравнение с предыдущим релизом, аннотации.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="презентация-release-readiness"&gt;Презентация Release Readiness &lt;a href="#%d0%bf%d1%80%d0%b5%d0%b7%d0%b5%d0%bd%d1%82%d0%b0%d1%86%d0%b8%d1%8f-release-readiness" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;10 минут: scope (2 мин), результаты (2 мин), открытые дефекты (2 мин), риски (2 мин), рекомендация (2 мин).&lt;/p&gt;</description></item><item><title>Сертификации: ISTQB и другие</title><link>https://yrkan.com/ru/course/module-12-leadership/certifications-istqb/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/certifications-istqb/</guid><description>&lt;h2 id="навигация-по-qa-сертификациям"&gt;Навигация по QA-сертификациям &lt;a href="#%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%86%d0%b8%d1%8f-%d0%bf%d0%be-qa-%d1%81%d0%b5%d1%80%d1%82%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%8f%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Ландшафт QA-сертификаций может быть запутанным. Этот урок поможет понять, какие сертификации важны, когда их получать и как готовиться.&lt;/p&gt;
&lt;h2 id="путь-сертификации-istqb"&gt;Путь сертификации ISTQB &lt;a href="#%d0%bf%d1%83%d1%82%d1%8c-%d1%81%d0%b5%d1%80%d1%82%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d0%b8-istqb" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;ISTQB — наиболее признанный в мире сертифицирующий орган в QA.&lt;/p&gt;
&lt;h3 id="foundation-level-ctfl"&gt;Foundation Level (CTFL) &lt;a href="#foundation-level-ctfl" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Что покрывает:&lt;/strong&gt; Основы и принципы тестирования, тестирование на протяжении SDLC, статические и динамические техники, управление тестированием.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Для кого:&lt;/strong&gt; Начинающие в QA или специалисты с 1-3 годами опыта.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Детали экзамена:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;40 вопросов multiple choice&lt;/li&gt;
&lt;li&gt;60 минут (75 для не-носителей английского)&lt;/li&gt;
&lt;li&gt;65% для сдачи (26/40)&lt;/li&gt;
&lt;li&gt;Стоимость: $200-$350&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Стратегия подготовки:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Создание QA-портфолио</title><link>https://yrkan.com/ru/course/module-12-leadership/building-qa-portfolio/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/building-qa-portfolio/</guid><description>&lt;h2 id="почему-портфолио-важно"&gt;Почему портфолио важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%bf%d0%be%d1%80%d1%82%d1%84%d0%be%d0%bb%d0%b8%d0%be-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;При найме в QA слова мало стоят. Каждый кандидат утверждает, что знает Playwright, понимает CI/CD и умеет проектировать тест-стратегии. Портфолио — это доказательство. Оно отделяет тех, кто говорит о тестировании, от тех, кто реально его делает.&lt;/p&gt;
&lt;p&gt;Для QA-инженеров портфолио обычно означает публичный профиль на GitHub с хорошо структурированными проектами, демонстрирующими навыки тестирования.&lt;/p&gt;
&lt;h2 id="что-делает-портфолио-отличным"&gt;Что делает портфолио отличным &lt;a href="#%d1%87%d1%82%d0%be-%d0%b4%d0%b5%d0%bb%d0%b0%d0%b5%d1%82-%d0%bf%d0%be%d1%80%d1%82%d1%84%d0%be%d0%bb%d0%b8%d0%be-%d0%be%d1%82%d0%bb%d0%b8%d1%87%d0%bd%d1%8b%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="основные-компоненты"&gt;Основные компоненты &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%ba%d0%be%d0%bc%d0%bf%d0%be%d0%bd%d0%b5%d0%bd%d1%82%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Сильное QA-портфолио включает:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Проект фреймворка автоматизации&lt;/strong&gt;
Это центральный элемент. Постройте полноценный фреймворк, тестирующий реальное (публичное) приложение:&lt;/p&gt;</description></item><item><title>Составление резюме для QA-инженеров</title><link>https://yrkan.com/ru/course/module-12-leadership/resume-building-for-qa/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/resume-building-for-qa/</guid><description>&lt;h2 id="создание-qa-резюме-которое-приносит-собеседования"&gt;Создание QA-резюме, которое приносит собеседования &lt;a href="#%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5-qa-%d1%80%d0%b5%d0%b7%d1%8e%d0%bc%d0%b5-%d0%ba%d0%be%d1%82%d0%be%d1%80%d0%be%d0%b5-%d0%bf%d1%80%d0%b8%d0%bd%d0%be%d1%81%d0%b8%d1%82-%d1%81%d0%be%d0%b1%d0%b5%d1%81%d0%b5%d0%b4%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;У резюме есть 6-8 секунд, чтобы произвести впечатление. В QA важно показать и техническую компетенцию, и влияние на качество продукта.&lt;/p&gt;
&lt;h2 id="структура-резюме"&gt;Структура резюме &lt;a href="#%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%b0-%d1%80%d0%b5%d0%b7%d1%8e%d0%bc%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="выигрышный-формат"&gt;Выигрышный формат &lt;a href="#%d0%b2%d1%8b%d0%b8%d0%b3%d1%80%d1%8b%d1%88%d0%bd%d1%8b%d0%b9-%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%82" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[ИМЯ]
[Контакты: Email | Телефон | Локация | GitHub | URL портфолио]

SUMMARY (2-3 строки)
Количественное описание опыта, адаптированное под целевую роль.

ОПЫТ
[Должность] | [Компания] | [Даты]
• Достижение с метрикой
• Достижение с метрикой

НАВЫКИ
Языки: Python, JavaScript, TypeScript, SQL
Автоматизация: Playwright, Cypress, Selenium
API: Postman, REST Assured
Нагрузка: k6, JMeter
CI/CD: GitHub Actions, Jenkins

СЕРТИФИКАЦИИ / ОБРАЗОВАНИЕ
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="глаголы-действия-для-qa"&gt;Глаголы действия для QA &lt;a href="#%d0%b3%d0%bb%d0%b0%d0%b3%d0%be%d0%bb%d1%8b-%d0%b4%d0%b5%d0%b9%d1%81%d1%82%d0%b2%d0%b8%d1%8f-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Вместо «Отвечал за тестирование»:&lt;/p&gt;</description></item><item><title>Тест-стратегия для нового проекта</title><link>https://yrkan.com/ru/course/module-12-leadership/test-strategy-new-project/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/test-strategy-new-project/</guid><description>&lt;h2 id="создание-тест-стратегии-с-нуля"&gt;Создание тест-стратегии с нуля &lt;a href="#%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d1%81%d1%82-%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d0%b8-%d1%81-%d0%bd%d1%83%d0%bb%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тест-стратегия — высокоуровневый документ, определяющий подход к тестированию проекта.&lt;/p&gt;
&lt;h2 id="когда-нужна-тест-стратегия"&gt;Когда нужна тест-стратегия &lt;a href="#%d0%ba%d0%be%d0%b3%d0%b4%d0%b0-%d0%bd%d1%83%d0%b6%d0%bd%d0%b0-%d1%82%d0%b5%d1%81%d1%82-%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Начало нового проекта или продукта&lt;/li&gt;
&lt;li&gt;Приход в компанию без QA-процессов&lt;/li&gt;
&lt;li&gt;Крупные архитектурные изменения&lt;/li&gt;
&lt;li&gt;Вход в новый домен&lt;/li&gt;
&lt;li&gt;Масштабирование из стартапа&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="фреймворк-тест-стратегии"&gt;Фреймворк тест-стратегии &lt;a href="#%d1%84%d1%80%d0%b5%d0%b9%d0%bc%d0%b2%d0%be%d1%80%d0%ba-%d1%82%d0%b5%d1%81%d1%82-%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-анализ-контекста"&gt;1. Анализ контекста &lt;a href="#1-%d0%b0%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7-%d0%ba%d0%be%d0%bd%d1%82%d0%b5%d0%ba%d1%81%d1%82%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Перед написанием: продукт, архитектура, команда, риски, ограничения.&lt;/p&gt;
&lt;h3 id="2-определение-scope"&gt;2. Определение scope &lt;a href="#2-%d0%be%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-scope" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;В scope&lt;/th&gt;
 &lt;th&gt;Вне scope&lt;/th&gt;
 &lt;th&gt;Обоснование&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Core user workflows&lt;/td&gt;
 &lt;td&gt;Интеграции третьих сторон&lt;/td&gt;
 &lt;td&gt;Фокус на контролируемом&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;API-контракты&lt;/td&gt;
 &lt;td&gt;Инфраструктура&lt;/td&gt;
 &lt;td&gt;Разделение ответственности&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Cross-browser (Chrome, Firefox, Safari)&lt;/td&gt;
 &lt;td&gt;IE11&lt;/td&gt;
 &lt;td&gt;0.1% пользовательской базы&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="3-подход-по-уровням"&gt;3. Подход по уровням &lt;a href="#3-%d0%bf%d0%be%d0%b4%d1%85%d0%be%d0%b4-%d0%bf%d0%be-%d1%83%d1%80%d0%be%d0%b2%d0%bd%d1%8f%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Unit-тесты (70%):&lt;/strong&gt; Пишут разработчики, на каждый коммит
&lt;strong&gt;Интеграционные (20%):&lt;/strong&gt; API-контракты, взаимодействия сервисов
&lt;strong&gt;E2E-тесты (10%):&lt;/strong&gt; Только критические пути, в staging&lt;/p&gt;</description></item><item><title>Техническое писательство для QA</title><link>https://yrkan.com/ru/course/module-12-leadership/technical-writing-for-qa/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/technical-writing-for-qa/</guid><description>&lt;h2 id="техническое-писательство-для-qa"&gt;Техническое писательство для QA &lt;a href="#%d1%82%d0%b5%d1%85%d0%bd%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%b5-%d0%bf%d0%b8%d1%81%d0%b0%d1%82%d0%b5%d0%bb%d1%8c%d1%81%d1%82%d0%b2%d0%be-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This lesson covers essential strategies and practical approaches for техническое писательство для qa in the context of QA career development. Whether you are an individual contributor looking to expand your impact or a QA lead building team capabilities, these concepts apply to your daily work.&lt;/p&gt;
&lt;h2 id="core-concepts"&gt;Core Concepts &lt;a href="#core-concepts" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The key to success in техническое писательство для qa lies in combining technical knowledge with interpersonal skills and strategic thinking. QA professionals who master this area differentiate themselves from peers and create new career opportunities.&lt;/p&gt;</description></item><item><title>Управление распределёнными QA-командами</title><link>https://yrkan.com/ru/course/module-12-leadership/managing-distributed-teams/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/managing-distributed-teams/</guid><description>&lt;h2 id="управление-распределёнными-qa-командами"&gt;Управление распределёнными QA-командами &lt;a href="#%d1%83%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d1%80%d0%b0%d1%81%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d1%91%d0%bd%d0%bd%d1%8b%d0%bc%d0%b8-qa-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%b0%d0%bc%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Удалённые команды стали нормой в QA.&lt;/p&gt;
&lt;h2 id="async-first-коммуникация"&gt;Async-first коммуникация &lt;a href="#async-first-%d0%ba%d0%be%d0%bc%d0%bc%d1%83%d0%bd%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;th&gt;Async-инструмент&lt;/th&gt;
 &lt;th&gt;Sync-резерв&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Баг-репорты&lt;/td&gt;
 &lt;td&gt;Jira/GitHub Issues&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Статусы&lt;/td&gt;
 &lt;td&gt;Slack/Teams&lt;/td&gt;
 &lt;td&gt;Дейли-стендап&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Тест-планы&lt;/td&gt;
 &lt;td&gt;Confluence/Notion&lt;/td&gt;
 &lt;td&gt;Ревью-митинг&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Code review&lt;/td&gt;
 &lt;td&gt;GitHub PR&lt;/td&gt;
 &lt;td&gt;Парное программирование&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="ритм-команды"&gt;Ритм команды &lt;a href="#%d1%80%d0%b8%d1%82%d0%bc-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Ежедневно:&lt;/strong&gt; Письменный стендап, уведомления о тестах
&lt;strong&gt;Еженедельно:&lt;/strong&gt; Командный sync, ревью спринта
&lt;strong&gt;Раз в 2 недели:&lt;/strong&gt; 1:1 с каждым
&lt;strong&gt;Ежемесячно:&lt;/strong&gt; Ретроспектива
&lt;strong&gt;Ежеквартально:&lt;/strong&gt; Ревью стратегии, карьерное развитие&lt;/p&gt;
&lt;h2 id="культура-качества-удалённо"&gt;Культура качества удалённо &lt;a href="#%d0%ba%d1%83%d0%bb%d1%8c%d1%82%d1%83%d1%80%d0%b0-%d0%ba%d0%b0%d1%87%d0%b5%d1%81%d1%82%d0%b2%d0%b0-%d1%83%d0%b4%d0%b0%d0%bb%d1%91%d0%bd%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Документировать всё&lt;/li&gt;
&lt;li&gt;Автоматизировать quality gates&lt;/li&gt;
&lt;li&gt;Дашборды для всех&lt;/li&gt;
&lt;li&gt;Отмечать победы&lt;/li&gt;
&lt;li&gt;Инвестировать в онбординг&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="упражнение"&gt;Упражнение &lt;a href="#%d1%83%d0%bf%d1%80%d0%b0%d0%b6%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Применените концепции урока к текущему или недавнему проекту. Задокументируйте подход и результаты.&lt;/p&gt;</description></item><item><title>Финальный экзамен курса</title><link>https://yrkan.com/ru/course/module-12-leadership/final-course-exam/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/final-course-exam/</guid><description>&lt;h2 id="обзор-оценки"&gt;Обзор оценки &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Поздравляем с завершением Модуля 12: Лидерство и карьера в QA. Финальная оценка покрывает все темы уроков 12.1-12.29.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Часть&lt;/th&gt;
 &lt;th&gt;Формат&lt;/th&gt;
 &lt;th&gt;Вопросы&lt;/th&gt;
 &lt;th&gt;Время&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Часть 1&lt;/td&gt;
 &lt;td&gt;Quiz multiple choice&lt;/td&gt;
 &lt;td&gt;10 вопросов&lt;/td&gt;
 &lt;td&gt;15 мин&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Часть 2&lt;/td&gt;
 &lt;td&gt;Вопросы по сценариям&lt;/td&gt;
 &lt;td&gt;3 сценария&lt;/td&gt;
 &lt;td&gt;30 мин&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Часть 3&lt;/td&gt;
 &lt;td&gt;Практическое упражнение&lt;/td&gt;
 &lt;td&gt;1 комплексное&lt;/td&gt;
 &lt;td&gt;45 мин&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="часть-2-вопросы-по-сценариям"&gt;Часть 2: Вопросы по сценариям &lt;a href="#%d1%87%d0%b0%d1%81%d1%82%d1%8c-2-%d0%b2%d0%be%d0%bf%d1%80%d0%be%d1%81%d1%8b-%d0%bf%d0%be-%d1%81%d1%86%d0%b5%d0%bd%d0%b0%d1%80%d0%b8%d1%8f%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="сценарий-1-планирование-карьеры"&gt;Сценарий 1: Планирование карьеры &lt;a href="#%d1%81%d1%86%d0%b5%d0%bd%d0%b0%d1%80%d0%b8%d0%b9-1-%d0%bf%d0%bb%d0%b0%d0%bd%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%ba%d0%b0%d1%80%d1%8c%d0%b5%d1%80%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Спроектируйте план развития от Mid QA до Senior QA Lead за 2 года.&lt;/p&gt;</description></item><item><title>Фриланс в QA</title><link>https://yrkan.com/ru/course/module-12-leadership/freelance-qa/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/freelance-qa/</guid><description>&lt;h2 id="фриланс-в-qa"&gt;Фриланс в QA &lt;a href="#%d1%84%d1%80%d0%b8%d0%bb%d0%b0%d0%bd%d1%81-%d0%b2-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This lesson covers essential strategies and practical approaches for фриланс в qa in the context of QA career development. Whether you are an individual contributor looking to expand your impact or a QA lead building team capabilities, these concepts apply to your daily work.&lt;/p&gt;
&lt;h2 id="core-concepts"&gt;Core Concepts &lt;a href="#core-concepts" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The key to success in фриланс в qa lies in combining technical knowledge with interpersonal skills and strategic thinking. QA professionals who master this area differentiate themselves from peers and create new career opportunities.&lt;/p&gt;</description></item><item><title>Эффективная работа с разработчиками</title><link>https://yrkan.com/ru/course/module-12-leadership/working-with-developers/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-12-leadership/working-with-developers/</guid><description>&lt;h2 id="построение-сильных-отношений-qa-разработчик"&gt;Построение сильных отношений QA-разработчик &lt;a href="#%d0%bf%d0%be%d1%81%d1%82%d1%80%d0%be%d0%b5%d0%bd%d0%b8%d0%b5-%d1%81%d0%b8%d0%bb%d1%8c%d0%bd%d1%8b%d1%85-%d0%be%d1%82%d0%bd%d0%be%d1%88%d0%b5%d0%bd%d0%b8%d0%b9-qa-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%87%d0%b8%d0%ba" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Отношения QA-разработчик — одна из важнейших динамик в команде. Когда работает хорошо, качество растёт. Когда ломается, баги проскакивают.&lt;/p&gt;
&lt;h2 id="понимание-перспективы-разработчика"&gt;Понимание перспективы разработчика &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d0%b5%d1%80%d1%81%d0%bf%d0%b5%d0%ba%d1%82%d0%b8%d0%b2%d1%8b-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%87%d0%b8%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Давление сроков:&lt;/strong&gt; Обязательства спринта&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Гордость за работу:&lt;/strong&gt; Нахождение багов может восприниматься лично&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Переключение контекста:&lt;/strong&gt; Баг-репорты, прерывающие deep work, фрустрируют&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="работающие-паттерны-коммуникации"&gt;Работающие паттерны коммуникации &lt;a href="#%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d1%8e%d1%89%d0%b8%d0%b5-%d0%bf%d0%b0%d1%82%d1%82%d0%b5%d1%80%d0%bd%d1%8b-%d0%ba%d0%be%d0%bc%d0%bc%d1%83%d0%bd%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-pair-testing--тестирование-вместе-с-разработчиком"&gt;1. Pair Testing — Тестирование вместе с разработчиком &lt;a href="#1-pair-testing--%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2%d0%bc%d0%b5%d1%81%d1%82%d0%b5-%d1%81-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%87%d0%b8%d0%ba%d0%be%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h3 id="2-качество-баг-репортов--чёткие-репорты-экономят-часы"&gt;2. Качество баг-репортов — Чёткие репорты экономят часы &lt;a href="#2-%d0%ba%d0%b0%d1%87%d0%b5%d1%81%d1%82%d0%b2%d0%be-%d0%b1%d0%b0%d0%b3-%d1%80%d0%b5%d0%bf%d0%be%d1%80%d1%82%d0%be%d0%b2--%d1%87%d1%91%d1%82%d0%ba%d0%b8%d0%b5-%d1%80%d0%b5%d0%bf%d0%be%d1%80%d1%82%d1%8b-%d1%8d%d0%ba%d0%be%d0%bd%d0%be%d0%bc%d1%8f%d1%82-%d1%87%d0%b0%d1%81%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h3 id="3-ревью-pr--ревью-с-позиции-тестирования"&gt;3. Ревью PR — Ревью с позиции тестирования &lt;a href="#3-%d1%80%d0%b5%d0%b2%d1%8c%d1%8e-pr--%d1%80%d0%b5%d0%b2%d1%8c%d1%8e-%d1%81-%d0%bf%d0%be%d0%b7%d0%b8%d1%86%d0%b8%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h3 id="4-общий-definition-of-done"&gt;4. Общий Definition of Done &lt;a href="#4-%d0%be%d0%b1%d1%89%d0%b8%d0%b9-definition-of-done" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h2 id="когда-возникают-конфликты"&gt;Когда возникают конфликты &lt;a href="#%d0%ba%d0%be%d0%b3%d0%b4%d0%b0-%d0%b2%d0%be%d0%b7%d0%bd%d0%b8%d0%ba%d0%b0%d1%8e%d1%82-%d0%ba%d0%be%d0%bd%d1%84%d0%bb%d0%b8%d0%ba%d1%82%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;«Работает на моей машине» → Воспроизвести вместе, документировать различия&lt;/li&gt;
&lt;li&gt;Несогласие по severity → Данные о влиянии, решение через PM&lt;/li&gt;
&lt;li&gt;Сопротивление unit-тестам → Показать ROI&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="упражнение"&gt;Упражнение &lt;a href="#%d1%83%d0%bf%d1%80%d0%b0%d0%b6%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Применените концепции урока к текущему или недавнему проекту. Задокументируйте подход и результаты.&lt;/p&gt;</description></item><item><title>Blue-Green и канареечные деплои</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/blue-green-canary-deployments/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/blue-green-canary-deployments/</guid><description>&lt;h2 id="почему-стратегии-деплоя-важны-для-qa"&gt;Почему стратегии деплоя важны для QA &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d0%b8-%d0%b4%d0%b5%d0%bf%d0%bb%d0%be%d1%8f-%d0%b2%d0%b0%d0%b6%d0%bd%d1%8b-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Способ деплоя ПО напрямую влияет на подходы к тестированию. Big-bang деплой требует иных подходов QA, чем постепенный канареечный rollout.&lt;/p&gt;
&lt;h2 id="обзор-стратегий"&gt;Обзор стратегий &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="blue-green-деплой"&gt;Blue-Green деплой &lt;a href="#blue-green-%d0%b4%d0%b5%d0%bf%d0%bb%d0%be%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Два идентичных продакшен-окружения. После валидации green трафик мгновенно переключается. Blue остаётся для rollback.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Шаги QA-валидации:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Задеплоить новую версию в green&lt;/li&gt;
&lt;li&gt;Запустить полный набор smoke-тестов против green&lt;/li&gt;
&lt;li&gt;Проверить миграции БД&lt;/li&gt;
&lt;li&gt;Переключить трафик на green&lt;/li&gt;
&lt;li&gt;Немедленно запустить продакшен smoke-тесты&lt;/li&gt;
&lt;li&gt;Мониторить метрики 15-30 минут&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="канареечный-деплой"&gt;Канареечный деплой &lt;a href="#%d0%ba%d0%b0%d0%bd%d0%b0%d1%80%d0%b5%d0%b5%d1%87%d0%bd%d1%8b%d0%b9-%d0%b4%d0%b5%d0%bf%d0%bb%d0%be%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Направить малый процент трафика на новую версию. Постепенно увеличивать при здоровых метриках.&lt;/p&gt;</description></item><item><title>Docker Compose для тестовых окружений</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/docker-compose-test-environments/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/docker-compose-test-environments/</guid><description>&lt;h2 id="от-одного-контейнера-к-полному-стеку"&gt;От одного контейнера к полному стеку &lt;a href="#%d0%be%d1%82-%d0%be%d0%b4%d0%bd%d0%be%d0%b3%d0%be-%d0%ba%d0%be%d0%bd%d1%82%d0%b5%d0%b9%d0%bd%d0%b5%d1%80%d0%b0-%d0%ba-%d0%bf%d0%be%d0%bb%d0%bd%d0%be%d0%bc%d1%83-%d1%81%d1%82%d0%b5%d0%ba%d1%83" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;В предыдущем уроке вы научились запускать тесты в одном Docker-контейнере. Но реальные приложения редко работают изолированно. Типичное веб-приложение требует базу данных, кэш, возможно очередь сообщений и, может быть, почтовый сервис. Docker Compose позволяет определить всё это как единый стек, который запускается и останавливается вместе.&lt;/p&gt;
&lt;p&gt;Для QA Docker Compose — это трансформация. Вместо ручной настройки PostgreSQL, Redis и приложения перед запуском интеграционных тестов, вы определяете всё в файле &lt;code&gt;docker-compose.yml&lt;/code&gt; и запускаете одной командой.&lt;/p&gt;</description></item><item><title>Docker для QA-инженеров</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/docker-for-qa/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/docker-for-qa/</guid><description>&lt;h2 id="зачем-docker-для-qa"&gt;Зачем Docker для QA &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-docker-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Docker решает одну из старейших проблем QA: несогласованность окружений. Сколько раз вы слышали «у меня на машине работает» при отчёте о баге? Docker устраняет это, упаковывая приложения и их зависимости в контейнеры, которые работают одинаково везде.&lt;/p&gt;
&lt;p&gt;Для QA-инженеров Docker предоставляет:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Консистентные тестовые окружения&lt;/strong&gt; на локальных машинах, CI-серверах и staging&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Изолированное выполнение тестов&lt;/strong&gt; — тесты не мешают друг другу и хост-системе&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Воспроизводимые баги&lt;/strong&gt; — если падает в контейнере, падает одинаково каждый раз&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Быстрая настройка окружений&lt;/strong&gt; — полное тестовое окружение за секунды, не часы&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="основные-концепции-docker"&gt;Основные концепции Docker &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8-docker" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="образы"&gt;Образы &lt;a href="#%d0%be%d0%b1%d1%80%d0%b0%d0%b7%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Docker-образ — это легковесный, автономный пакет, включающий всё необходимое для запуска ПО: код, runtime, системные инструменты, библиотеки и настройки.&lt;/p&gt;</description></item><item><title>Feature Flags и тестирование</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/feature-flags-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/feature-flags-testing/</guid><description>&lt;h2 id="что-такое-feature-flags"&gt;Что такое Feature Flags? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-feature-flags" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Feature flags (также называемые feature toggles) — это условные конструкции в коде, управляющие активностью фичи. Они отделяют деплой кода от выпуска фичи — вы можете задеплоить код в продакшен со скрытыми фичами, затем включать их постепенно.&lt;/p&gt;
&lt;p&gt;Для QA-инженеров feature flags добавляют сложность тестирования, но дают мощные возможности: безопасное тестирование фич в продакшене, управление A/B-экспериментами и мгновенный откат проблемных фич без передеплоя.&lt;/p&gt;
&lt;h2 id="типы-feature-flags"&gt;Типы Feature Flags &lt;a href="#%d1%82%d0%b8%d0%bf%d1%8b-feature-flags" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;th&gt;Время жизни&lt;/th&gt;
 &lt;th&gt;Назначение&lt;/th&gt;
 &lt;th&gt;Фокус тестирования&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Release flags&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Короткое (дни-недели)&lt;/td&gt;
 &lt;td&gt;Скрыть незавершённые фичи&lt;/td&gt;
 &lt;td&gt;Оба состояния on/off&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Experiment flags&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Среднее (недели-месяцы)&lt;/td&gt;
 &lt;td&gt;A/B-тестирование, метрики&lt;/td&gt;
 &lt;td&gt;Поведение вариантов&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Ops flags&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Долгоживущие&lt;/td&gt;
 &lt;td&gt;Circuit breakers, kill switches&lt;/td&gt;
 &lt;td&gt;Режимы отказа&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Permission flags&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Долгоживущие&lt;/td&gt;
 &lt;td&gt;Фичи по пользователям (premium, beta)&lt;/td&gt;
 &lt;td&gt;Поведение по группам&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="стратегия-тестирования-feature-flags"&gt;Стратегия тестирования Feature Flags &lt;a href="#%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d1%8f-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-feature-flags" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="комбинаторная-проблема"&gt;Комбинаторная проблема &lt;a href="#%d0%ba%d0%be%d0%bc%d0%b1%d0%b8%d0%bd%d0%b0%d1%82%d0%be%d1%80%d0%bd%d0%b0%d1%8f-%d0%bf%d1%80%d0%be%d0%b1%d0%bb%d0%b5%d0%bc%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;При N независимых флагах существует 2^N комбинаций. При 10 флагах — 1024 комбинации.&lt;/p&gt;</description></item><item><title>GitHub Actions для QA</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/github-actions-for-qa/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/github-actions-for-qa/</guid><description>&lt;h2 id="почему-github-actions-для-qa"&gt;Почему GitHub Actions для QA &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-github-actions-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;GitHub Actions — встроенная CI/CD-платформа GitHub. Если ваш проект живёт на GitHub, Actions устраняет необходимость во внешних CI/CD-сервисах. Воркфлоу запускаются непосредственно внутри GitHub с тесной интеграцией в pull requests, issues и экосистему GitHub.&lt;/p&gt;
&lt;p&gt;Для QA-инженеров эта тесная интеграция — большое преимущество. Результаты тестов отображаются прямо в pull requests. Упавшие проверки блокируют мержи. Тестовые артефакты доступны из того же интерфейса, где вы ревьюите код.&lt;/p&gt;
&lt;h2 id="основы-воркфлоу"&gt;Основы воркфлоу &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d1%8b-%d0%b2%d0%be%d1%80%d0%ba%d1%84%d0%bb%d0%be%d1%83" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Воркфлоу GitHub Actions — это YAML-файл в &lt;code&gt;.github/workflows/&lt;/code&gt;. Вот минимальный воркфлоу, запускающий тесты при каждом push:&lt;/p&gt;</description></item><item><title>GitLab CI для QA</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/gitlab-ci-for-qa/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/gitlab-ci-for-qa/</guid><description>&lt;h2 id="обзор-gitlab-ci"&gt;Обзор GitLab CI &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-gitlab-ci" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;GitLab CI/CD встроен непосредственно в GitLab — без плагинов, без отдельного сервиса, без дополнительной настройки. Каждый репозиторий GitLab может использовать CI/CD, добавив файл &lt;code&gt;.gitlab-ci.yml&lt;/code&gt; в корень репозитория. GitLab обнаруживает этот файл автоматически и запускает пайплайн.&lt;/p&gt;
&lt;p&gt;Для QA-инженеров GitLab CI предлагает ряд преимуществ: нативные тестовые отчёты в merge requests, встроенный реестр контейнеров, управление окружениями и review apps для тестирования деплоев.&lt;/p&gt;
&lt;h2 id="структура-gitlab-ciyml"&gt;Структура .gitlab-ci.yml &lt;a href="#%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%b0-gitlab-ciyml" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="базовый-пайплайн"&gt;Базовый пайплайн &lt;a href="#%d0%b1%d0%b0%d0%b7%d0%be%d0%b2%d1%8b%d0%b9-%d0%bf%d0%b0%d0%b9%d0%bf%d0%bb%d0%b0%d0%b9%d0%bd" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;stages&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;build&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;deploy&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;install&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;stage&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;build&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;image&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;node:20&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;script&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;npm ci&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;artifacts&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;paths&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;node_modules/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;expire_in&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;hour&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;unit-tests&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;stage&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;image&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;node:20&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;script&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;npm run test:unit -- --ci --coverage&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;artifacts&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;reports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;junit&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;junit-results.xml&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;coverage_report&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;coverage_format&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;cobertura&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;path&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;coverage/cobertura-coverage.xml&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;coverage&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#39;/Lines\s*:\s*(\d+\.?\d*)%/&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;e2e-tests&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;stage&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;image&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;mcr.microsoft.com/playwright:v1.40.0-focal&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;script&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;npm ci&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;npx playwright test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;artifacts&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;when&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;always&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;paths&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;playwright-report/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;test-results/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;reports&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;junit&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;test-results/junit.xml&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;expire_in&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;7&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;days&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Концепция&lt;/th&gt;
 &lt;th&gt;Описание&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;stages&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Упорядоченный список фаз пайплайна; jobs на одном этапе выполняются параллельно&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;image&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Docker-образ для окружения job&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;script&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Shell-команды для выполнения&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;artifacts&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Файлы для сохранения между этапами или после пайплайна&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;rules&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Условия, управляющие запуском job&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;needs&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Прямые зависимости между jobs (пропуск порядка этапов)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;services&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Дополнительные Docker-контейнеры (БД, API) для job&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="services-зависимости-для-тестов"&gt;Services: зависимости для тестов &lt;a href="#services-%d0%b7%d0%b0%d0%b2%d0%b8%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%b4%d0%bb%d1%8f-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Services GitLab CI запускают Docker-контейнеры рядом с вашим job. Это идеально для интеграционного тестирования:&lt;/p&gt;</description></item><item><title>Jenkins для QA</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/jenkins-for-qa/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/jenkins-for-qa/</guid><description>&lt;h2 id="почему-jenkins-важен-для-qa"&gt;Почему Jenkins важен для QA &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-jenkins-%d0%b2%d0%b0%d0%b6%d0%b5%d0%bd-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Jenkins — самый широко развёрнутый CI/CD-сервер в мире. С более чем 1800 плагинами и огромным сообществом он остаётся основой пайплайнов автоматизации тестирования в тысячах компаний — от стартапов до таких предприятий как Netflix и Airbnb.&lt;/p&gt;
&lt;p&gt;Как QA-инженер, вы почти наверняка столкнётесь с Jenkins в своей карьере. Даже если ваша текущая команда использует другой инструмент, понимание Jenkins даёт передаваемые знания о проектировании CI/CD-пайплайнов, применимые повсюду.&lt;/p&gt;</description></item><item><title>Puppeteer 24.40.0: Sandbox и Обновления Chrome</title><link>https://yrkan.com/ru/tools-updates/puppeteer-puppeteer-core-v24-40-whats-new/</link><pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/puppeteer-puppeteer-core-v24-40-whats-new/</guid><description>&lt;h3 id="tldr"&gt;TL;DR &lt;a href="#tldr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Новая переменная окружения &lt;code&gt;PUPPETEER_DANGEROUS_NO_SANDBOX&lt;/code&gt; для управления песочницей.&lt;/li&gt;
&lt;li&gt;Обновление браузера Chrome до версий 146.0.7680.153 и 146.0.7680.80.&lt;/li&gt;
&lt;li&gt;Общие улучшения стабильности и совместимости для автоматизации тестирования.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Puppeteer &lt;code&gt;puppeteer-core-v24.40.0&lt;/code&gt;, выпущенный 19 марта 2026 года, представляет ключевую функцию и важные обновления браузера.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Features:&lt;/strong&gt;
Заметным дополнением является поддержка переменной окружения &lt;code&gt;PUPPETEER_DANGEROUS_NO_SANDBOX&lt;/code&gt;. Это позволяет пользователям отключать песочницу Chrome, что может быть критически важно для специфических CI/CD сред или систем, где ограничения песочницы вызывают проблемы. Это обеспечивает большую гибкость для настроек выполнения тестов.&lt;/p&gt;</description></item><item><title>Анализ логов: ELK Stack и Grafana</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/log-analysis-elk-grafana/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/log-analysis-elk-grafana/</guid><description>&lt;h2 id="elk-stack-для-qa"&gt;ELK Stack для QA &lt;a href="#elk-stack-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;ELK — Elasticsearch, Logstash и Kibana — три open-source инструмента, формирующих платформу управления логами.&lt;/p&gt;
&lt;h3 id="компоненты"&gt;Компоненты &lt;a href="#%d0%ba%d0%be%d0%bc%d0%bf%d0%be%d0%bd%d0%b5%d0%bd%d1%82%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Elasticsearch:&lt;/strong&gt; Поисковый движок, хранящий и индексирующий логи&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Logstash:&lt;/strong&gt; Пайплайн обработки данных, загружающий логи из разных источников&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kibana:&lt;/strong&gt; Слой визуализации с веб-интерфейсом для поиска логов и дашбордов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Filebeat:&lt;/strong&gt; Легковесный шиппер логов, установленный на серверах&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="kibana-для-расследования-логов"&gt;Kibana для расследования логов &lt;a href="#kibana-%d0%b4%d0%bb%d1%8f-%d1%80%d0%b0%d1%81%d1%81%d0%bb%d0%b5%d0%b4%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d0%bb%d0%be%d0%b3%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="поиск-логов"&gt;Поиск логов &lt;a href="#%d0%bf%d0%be%d0%b8%d1%81%d0%ba-%d0%bb%d0%be%d0%b3%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Ошибки в платёжном сервисе за последний час
service: &amp;#34;payment-service&amp;#34; AND level: &amp;#34;ERROR&amp;#34;

# Ошибки таймаута
message: &amp;#34;timeout&amp;#34; OR message: &amp;#34;timed out&amp;#34;

# Ошибки для конкретного пользователя
userId: &amp;#34;usr_12345&amp;#34; AND level: &amp;#34;ERROR&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="рабочий-процесс-корреляции"&gt;Рабочий процесс корреляции &lt;a href="#%d1%80%d0%b0%d0%b1%d0%be%d1%87%d0%b8%d0%b9-%d0%bf%d1%80%d0%be%d1%86%d0%b5%d1%81%d1%81-%d0%ba%d0%be%d1%80%d1%80%d0%b5%d0%bb%d1%8f%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;При падении теста:&lt;/p&gt;</description></item><item><title>Инфраструктура как код для тестирования</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/infrastructure-as-code/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/infrastructure-as-code/</guid><description>&lt;h2 id="почему-iac-важен-для-qa"&gt;Почему IaC важен для QA &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-iac-%d0%b2%d0%b0%d0%b6%d0%b5%d0%bd-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Infrastructure as Code (IaC) означает определение инфраструктуры — серверов, баз данных, сетей, балансировщиков — в конфигурационных файлах вместо ручного создания через веб-консоли или CLI-команды.&lt;/p&gt;
&lt;p&gt;Для QA-инженеров IaC трансформирует управление тестовыми окружениями. Вместо просьбы к DevOps-инженеру «настроить staging-окружение» (что может занять дни), вы определяете окружение в коде и создаёте одной командой.&lt;/p&gt;
&lt;h2 id="принципы-iac"&gt;Принципы IaC &lt;a href="#%d0%bf%d1%80%d0%b8%d0%bd%d1%86%d0%b8%d0%bf%d1%8b-iac" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="декларативный-vs-императивный"&gt;Декларативный vs. Императивный &lt;a href="#%d0%b4%d0%b5%d0%ba%d0%bb%d0%b0%d1%80%d0%b0%d1%82%d0%b8%d0%b2%d0%bd%d1%8b%d0%b9-vs-%d0%b8%d0%bc%d0%bf%d0%b5%d1%80%d0%b0%d1%82%d0%b8%d0%b2%d0%bd%d1%8b%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Декларативный (что вы хотите):&lt;/strong&gt; «Мне нужна база PostgreSQL, версия 15, с 4GB RAM.» Инструмент определяет, как это сделать. Terraform использует этот подход.&lt;/p&gt;</description></item><item><title>Концепции CI/CD для QA</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/cicd-concepts/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/cicd-concepts/</guid><description>&lt;h2 id="что-такое-cicd"&gt;Что такое CI/CD? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-cicd" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;CI/CD расшифровывается как Continuous Integration и Continuous Delivery (или Continuous Deployment). Это набор практик и инструментов, автоматизирующих сборку, тестирование и выпуск программного обеспечения. Для QA-инженеров понимание CI/CD больше не является опциональным — это ключевая компетенция, которая отличает современных тестировщиков от тех, кто застрял на ручных процессах.&lt;/p&gt;
&lt;p&gt;В традиционном рабочем процессе разработчики пишут код неделями, а затем передают его QA для тестирования. Баги, найденные через недели после написания кода, дорого исправлять. CI/CD устраняет эту задержку, автоматизируя цикл сборка-тестирование-деплой, чтобы каждое изменение кода проверялось за минуты.&lt;/p&gt;</description></item><item><title>Метрики DevOps для QA</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/devops-metrics-for-qa/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/devops-metrics-for-qa/</guid><description>&lt;h2 id="метрики-dora"&gt;Метрики DORA &lt;a href="#%d0%bc%d0%b5%d1%82%d1%80%d0%b8%d0%ba%d0%b8-dora" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DORA выделила четыре ключевые метрики, отличающие высокопроизводительные команды. QA напрямую влияет на все четыре.&lt;/p&gt;
&lt;h3 id="1-частота-деплоев"&gt;1. Частота деплоев &lt;a href="#1-%d1%87%d0%b0%d1%81%d1%82%d0%be%d1%82%d0%b0-%d0%b4%d0%b5%d0%bf%d0%bb%d0%be%d0%b5%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Как часто команда деплоит в продакшен. Elite: несколько раз/день. Влияние QA: быстрые, надёжные тесты позволяют частые деплои.&lt;/p&gt;
&lt;h3 id="2-lead-time-для-изменений"&gt;2. Lead Time для изменений &lt;a href="#2-lead-time-%d0%b4%d0%bb%d1%8f-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Время от коммита до продакшена. Elite: менее часа. Влияние QA: время выполнения тестов — прямой компонент lead time.&lt;/p&gt;
&lt;h3 id="3-change-failure-rate"&gt;3. Change Failure Rate &lt;a href="#3-change-failure-rate" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Процент деплоев, вызывающих сбой. Elite: 0-15%. Влияние QA: лучшее тестирование = меньше продакшен-сбоев. Самая прямая метрика QA.&lt;/p&gt;</description></item><item><title>Мониторинг и наблюдаемость для QA</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/monitoring-observability/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/monitoring-observability/</guid><description>&lt;h2 id="зачем-мониторинг-qa"&gt;Зачем мониторинг QA &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование не заканчивается, когда код попадает в продакшен. Мониторинг — продолжение обеспечения качества в боевой среде. Ни один набор тестов не ловит каждый баг, а некоторые проблемы появляются только при реальных паттернах трафика.&lt;/p&gt;
&lt;p&gt;Для QA-инженеров мониторинг даёт:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Постдеплойную валидацию:&lt;/strong&gt; Подтверждение работы новых релизов в продакшене&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Обнаружение багов:&lt;/strong&gt; Выявление проблем, пропущенных тестированием&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Анализ причин:&lt;/strong&gt; Корреляция тестовых сбоев с поведением системы&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Нефункциональная валидация:&lt;/strong&gt; Проверка соответствия производительности и доступности требованиям&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="три-столпа-наблюдаемости"&gt;Три столпа наблюдаемости &lt;a href="#%d1%82%d1%80%d0%b8-%d1%81%d1%82%d0%be%d0%bb%d0%bf%d0%b0-%d0%bd%d0%b0%d0%b1%d0%bb%d1%8e%d0%b4%d0%b0%d0%b5%d0%bc%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="логи"&gt;Логи &lt;a href="#%d0%bb%d0%be%d0%b3%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Дискретные события, описывающие что произошло в конкретный момент. QA использует логи для расследования упавших тестов, поиска паттернов ошибок после деплоев и отладки нестабильных проблем.&lt;/p&gt;</description></item><item><title>Облачное тестирование: AWS, GCP и Azure</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/cloud-testing-aws-gcp-azure/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/cloud-testing-aws-gcp-azure/</guid><description>&lt;h2 id="обзор-облачного-тестирования"&gt;Обзор облачного тестирования &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d0%be%d0%b1%d0%bb%d0%b0%d1%87%d0%bd%d0%be%d0%b3%d0%be-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Современные приложения работают на облачной инфраструктуре. QA-инженеры должны понимать облачные сервисы тестирования, device farms и паттерны тестирования cloud-native приложений.&lt;/p&gt;
&lt;h2 id="сервисы-тестирования-по-провайдерам"&gt;Сервисы тестирования по провайдерам &lt;a href="#%d1%81%d0%b5%d1%80%d0%b2%d0%b8%d1%81%d1%8b-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d0%bf%d0%be-%d0%bf%d1%80%d0%be%d0%b2%d0%b0%d0%b9%d0%b4%d0%b5%d1%80%d0%b0%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="aws-device-farm-codepipeline-codebuild-fault-injection-simulator-cloudwatch"&gt;AWS: Device Farm, CodePipeline, CodeBuild, Fault Injection Simulator, CloudWatch &lt;a href="#aws-device-farm-codepipeline-codebuild-fault-injection-simulator-cloudwatch" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h3 id="gcp-firebase-test-lab-cloud-build-cloud-monitoring-cloud-logging"&gt;GCP: Firebase Test Lab, Cloud Build, Cloud Monitoring, Cloud Logging &lt;a href="#gcp-firebase-test-lab-cloud-build-cloud-monitoring-cloud-logging" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h3 id="azure-devops-pipelines-app-center-test-azure-monitor-azure-load-testing-test-plans"&gt;Azure: DevOps Pipelines, App Center Test, Azure Monitor, Azure Load Testing, Test Plans &lt;a href="#azure-devops-pipelines-app-center-test-azure-monitor-azure-load-testing-test-plans" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h2 id="облачные-device-farms"&gt;Облачные Device Farms &lt;a href="#%d0%be%d0%b1%d0%bb%d0%b0%d1%87%d0%bd%d1%8b%d0%b5-device-farms" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;AWS Device Farm и Firebase Test Lab позволяют запускать тесты на реальных устройствах в облаке без содержания собственного оборудования.&lt;/p&gt;</description></item><item><title>Оркестрация тестов</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/test-orchestration/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/test-orchestration/</guid><description>&lt;h2 id="проблема-масштабирования"&gt;Проблема масштабирования &lt;a href="#%d0%bf%d1%80%d0%be%d0%b1%d0%bb%d0%b5%d0%bc%d0%b0-%d0%bc%d0%b0%d1%81%d1%88%d1%82%d0%b0%d0%b1%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;По мере роста тестовых наборов время выполнения становится узким местом. 2-часовой набор — 2 часа ожидания. Оркестрация решает это интеллектуальным распределением тестов.&lt;/p&gt;
&lt;h2 id="test-sharding"&gt;Test Sharding &lt;a href="#test-sharding" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Разделение набора на равные части и запуск каждой на отдельной машине.&lt;/p&gt;
&lt;h3 id="стратегии-шардирования"&gt;Стратегии шардирования &lt;a href="#%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d0%b8-%d1%88%d0%b0%d1%80%d0%b4%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Стратегия&lt;/th&gt;
 &lt;th&gt;Как работает&lt;/th&gt;
 &lt;th&gt;Лучше всего для&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Round-robin&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Равномерное распределение по количеству&lt;/td&gt;
 &lt;td&gt;Однородная длительность&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;По длительности&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Распределение по времени выполнения&lt;/td&gt;
 &lt;td&gt;Разная длительность&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;По файлам&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Каждый шард получает полные файлы&lt;/td&gt;
 &lt;td&gt;Файлы с общим setup&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;По тегам&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Шарды по категориям&lt;/td&gt;
 &lt;td&gt;Смешанные типы тестов&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="механизмы-умного-retry"&gt;Механизмы умного Retry &lt;a href="#%d0%bc%d0%b5%d1%85%d0%b0%d0%bd%d0%b8%d0%b7%d0%bc%d1%8b-%d1%83%d0%bc%d0%bd%d0%be%d0%b3%d0%be-retry" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="правила-retry"&gt;Правила Retry &lt;a href="#%d0%bf%d1%80%d0%b0%d0%b2%d0%b8%d0%bb%d0%b0-retry" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Ограничивайте retry до 1-2&lt;/strong&gt; — больше указывает на реальную проблему&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Логируйте все перезапуски&lt;/strong&gt; — отслеживайте процент нестабильности&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Различайте причины&lt;/strong&gt; — сетевой таймаут vs. сбой assertion&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Карантин хронически нестабильных&lt;/strong&gt; — &amp;gt;5% сбоев требуют исправления&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="приоритизация-тестов"&gt;Приоритизация тестов &lt;a href="#%d0%bf%d1%80%d0%b8%d0%be%d1%80%d0%b8%d1%82%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Тесты, покрывающие недавно изменённый код&lt;/li&gt;
&lt;li&gt;Тесты, недавно упавшие&lt;/li&gt;
&lt;li&gt;Тесты критических бизнес-путей&lt;/li&gt;
&lt;li&gt;Новые тесты&lt;/li&gt;
&lt;li&gt;Стабильные тесты без недавних сбоев&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="анализ-влияния"&gt;Анализ влияния &lt;a href="#%d0%b0%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7-%d0%b2%d0%bb%d0%b8%d1%8f%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Сопоставление изменений кода с затронутыми тестами, запуск только релевантных.&lt;/p&gt;</description></item><item><title>Основы Kubernetes для QA</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/kubernetes-basics-for-qa/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/kubernetes-basics-for-qa/</guid><description>&lt;h2 id="почему-kubernetes-важен-для-qa"&gt;Почему Kubernetes важен для QA &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-kubernetes-%d0%b2%d0%b0%d0%b6%d0%b5%d0%bd-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Kubernetes (K8s) стал стандартной платформой для запуска контейнерных приложений в продакшене. Если тестируемое приложение работает на Kubernetes, понимание его архитектуры помогает отлаживать сбои, понимать поведение деплоя и проектировать более эффективные тесты.&lt;/p&gt;
&lt;p&gt;Вам не нужно становиться администратором Kubernetes. Но как QA-инженеру, вам достаточно знаний, чтобы читать логи подов, проверять статус деплоев, понимать почему тестовое окружение ведёт себя некорректно и эффективно общаться с DevOps-командой.&lt;/p&gt;
&lt;h2 id="архитектура-kubernetes"&gt;Архитектура Kubernetes &lt;a href="#%d0%b0%d1%80%d1%85%d0%b8%d1%82%d0%b5%d0%ba%d1%82%d1%83%d1%80%d0%b0-kubernetes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="компоненты-кластера"&gt;Компоненты кластера &lt;a href="#%d0%ba%d0%be%d0%bc%d0%bf%d0%be%d0%bd%d0%b5%d0%bd%d1%82%d1%8b-%d0%ba%d0%bb%d0%b0%d1%81%d1%82%d0%b5%d1%80%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Кластер Kubernetes состоит из:&lt;/p&gt;</description></item><item><title>Оценка по модулю 11</title><link>https://yrkan.com/ru/course/module-11-domain-testing/module-11-assessment/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/module-11-assessment/</guid><description>&lt;h2 id="module-11-domain-specific-testing--final-assessment"&gt;Module 11: Domain-Specific Testing — Final Assessment &lt;a href="#module-11-domain-specific-testing--final-assessment" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Эта оценка охватывает все 24 урока модуля 11. Для прохождения нужно минимум 70% (7/10).&lt;/p&gt;
&lt;p&gt;The questions test your understanding of domain-specific testing across all 24 industry domains covered in this module.&lt;/p&gt;
&lt;p&gt;Take your time — there is no time limit. Review each question carefully before selecting your answer.&lt;/p&gt;</description></item><item><title>Оценка по модулю 9</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/module-9-assessment/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/module-9-assessment/</guid><description>&lt;h2 id="модуль-9-cicd-и-devops-для-qa--итоговая-оценка"&gt;Модуль 9: CI/CD и DevOps для QA — Итоговая оценка &lt;a href="#%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d1%8c-9-cicd-%d0%b8-devops-%d0%b4%d0%bb%d1%8f-qa--%d0%b8%d1%82%d0%be%d0%b3%d0%be%d0%b2%d0%b0%d1%8f-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Эта оценка охватывает все 19 уроков Модуля 9. Для прохождения необходимо набрать минимум 70% (7 из 10 правильных ответов).&lt;/p&gt;
&lt;p&gt;Вопросы проверяют понимание:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Концепций и инструментов CI/CD-пайплайнов (Jenkins, GitHub Actions, GitLab CI)&lt;/li&gt;
&lt;li&gt;Docker и контейнерного тестирования&lt;/li&gt;
&lt;li&gt;Kubernetes для QA&lt;/li&gt;
&lt;li&gt;Управления окружениями и Infrastructure as Code&lt;/li&gt;
&lt;li&gt;Стратегий деплоя (blue-green, canary)&lt;/li&gt;
&lt;li&gt;Мониторинга и наблюдаемости&lt;/li&gt;
&lt;li&gt;Хаос-инжиниринга и тестирования в продакшене&lt;/li&gt;
&lt;li&gt;Оркестрации тестов и метрик DevOps&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Не торопитесь — ограничения по времени нет.&lt;/p&gt;</description></item><item><title>Стратегии тестирования в продакшене</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/testing-in-production/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/testing-in-production/</guid><description>&lt;h2 id="зачем-тестировать-в-продакшене"&gt;Зачем тестировать в продакшене? &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c-%d0%b2-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%b5%d0%bd%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Предпродакшен-окружения никогда не повторяют продакшен идеально. В продакшене — реальные паттерны данных, объёмы трафика, сторонние интеграции и сложность инфраструктуры.&lt;/p&gt;
&lt;p&gt;Тестирование в продакшене не означает отказ от предпродакшен-тестирования. Это дополнительный уровень валидации, ловящий то, что предпродакшен-тестирование не может.&lt;/p&gt;
&lt;h2 id="безопасные-стратегии"&gt;Безопасные стратегии &lt;a href="#%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d1%8b%d0%b5-%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="синтетический-мониторинг"&gt;Синтетический мониторинг &lt;a href="#%d1%81%d0%b8%d0%bd%d1%82%d0%b5%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d0%b9-%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Автоматические скрипты, непрерывно выполняющие критические сценарии в продакшене. Правила: выделенные тестовые аккаунты, неразрушающие операции, запуск из нескольких географических точек.&lt;/p&gt;
&lt;h3 id="dark-launching"&gt;Dark Launching &lt;a href="#dark-launching" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Деплой нового кода без показа пользователям. Код обрабатывает запросы в фоне, результаты отбрасываются.&lt;/p&gt;</description></item><item><title>Тестирование AI и машинного обучения</title><link>https://yrkan.com/ru/course/module-11-domain-testing/ai-ml-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/ai-ml-testing/</guid><description>&lt;h2 id="обзор-ml-пайплайна"&gt;Обзор ML-пайплайна &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-ml-%d0%bf%d0%b0%d0%b9%d0%bf%d0%bb%d0%b0%d0%b9%d0%bd%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Системы ML принципиально отличаются от обычного ПО. Вместо явных правил ML-модели обучаются на данных, создавая уникальные вызовы тестирования на каждом этапе.&lt;/p&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph LR
 A[Сбор данных] --&gt; B[Обработка]
 B --&gt; C[Feature Engineering]
 C --&gt; D[Обучение модели]
 D --&gt; E[Оценка]
 E --&gt; F[Деплой]
 F --&gt; G[Мониторинг]
 G --&gt;|Data Drift| A
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h2 id="тестирование-качества-данных"&gt;Тестирование качества данных &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%ba%d0%b0%d1%87%d0%b5%d1%81%d1%82%d0%b2%d0%b0-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Тест&lt;/th&gt;
 &lt;th&gt;Что проверять&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Полнота&lt;/td&gt;
 &lt;td&gt;Пропущенные значения, доля null по фичам&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Согласованность&lt;/td&gt;
 &lt;td&gt;Одна сущность имеет одинаковое представление&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Свежесть&lt;/td&gt;
 &lt;td&gt;Данные достаточно актуальны&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Распределение&lt;/td&gt;
 &lt;td&gt;Распределения фич в ожидаемых диапазонах&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Дубли&lt;/td&gt;
 &lt;td&gt;Нет непреднамеренных дублей&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Метки&lt;/td&gt;
 &lt;td&gt;Обучающие метки точны и согласованы&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="тестирование-feature-engineering"&gt;Тестирование Feature Engineering &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-feature-engineering" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Значения в ожидаемых диапазонах&lt;/li&gt;
&lt;li&gt;Детерминированное вычисление&lt;/li&gt;
&lt;li&gt;Отсутствие утечки данных (data leakage)&lt;/li&gt;
&lt;li&gt;Feature importance соответствует доменным знаниям&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="оценка-модели"&gt;Оценка модели &lt;a href="#%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b0-%d0%bc%d0%be%d0%b4%d0%b5%d0%bb%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="стандартные-метрики"&gt;Стандартные метрики &lt;a href="#%d1%81%d1%82%d0%b0%d0%bd%d0%b4%d0%b0%d1%80%d1%82%d0%bd%d1%8b%d0%b5-%d0%bc%d0%b5%d1%82%d1%80%d0%b8%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Метрика&lt;/th&gt;
 &lt;th&gt;Применение&lt;/th&gt;
 &lt;th&gt;Формула&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Accuracy&lt;/td&gt;
 &lt;td&gt;Сбалансированные классы&lt;/td&gt;
 &lt;td&gt;(TP + TN) / Total&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Precision&lt;/td&gt;
 &lt;td&gt;Ложные срабатывания дорого стоят&lt;/td&gt;
 &lt;td&gt;TP / (TP + FP)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Recall&lt;/td&gt;
 &lt;td&gt;Пропуски дорого стоят&lt;/td&gt;
 &lt;td&gt;TP / (TP + FN)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;F1 Score&lt;/td&gt;
 &lt;td&gt;Баланс precision-recall&lt;/td&gt;
 &lt;td&gt;2 * P * R / (P + R)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="за-пределами-accuracy"&gt;За пределами Accuracy &lt;a href="#%d0%b7%d0%b0-%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d0%b0%d0%bc%d0%b8-accuracy" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Оценка по сегментам:&lt;/strong&gt; Производительность по подгруппам данных&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Edge cases:&lt;/strong&gt; Состязательные входы, данные вне распределения&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Регрессионное тестирование:&lt;/strong&gt; Новая версия не хуже предыдущей&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Робастность:&lt;/strong&gt; Малые возмущения не должны кардинально менять выходы&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="тестирование-предвзятости-и-справедливости"&gt;Тестирование предвзятости и справедливости &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d1%80%d0%b5%d0%b4%d0%b2%d0%b7%d1%8f%d1%82%d0%be%d1%81%d1%82%d0%b8-%d0%b8-%d1%81%d0%bf%d1%80%d0%b0%d0%b2%d0%b5%d0%b4%d0%bb%d0%b8%d0%b2%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Демографический паритет:&lt;/strong&gt; Схожие доли положительных предсказаний между группами&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Равенство возможностей:&lt;/strong&gt; Схожие доли истинно положительных между группами&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Калибровка:&lt;/strong&gt; Предсказанные вероятности точны для всех групп&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="продвинутое-тестирование-ml"&gt;Продвинутое тестирование ML &lt;a href="#%d0%bf%d1%80%d0%be%d0%b4%d0%b2%d0%b8%d0%bd%d1%83%d1%82%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-ml" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="мониторинг-дрейфа-данных"&gt;Мониторинг дрейфа данных &lt;a href="#%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-%d0%b4%d1%80%d0%b5%d0%b9%d1%84%d0%b0-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Feature drift:&lt;/strong&gt; Распределения входных фич смещаются&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Concept drift:&lt;/strong&gt; Связь между фичами и целевой переменной меняется&lt;/li&gt;
&lt;li&gt;Статистические тесты (Колмогоров-Смирнов, PSI)&lt;/li&gt;
&lt;li&gt;Автоматические оповещения и пайплайны переобучения&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="тестирование-serving"&gt;Тестирование Serving &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-serving" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Задержка инференса (P50, P95, P99) под нагрузкой&lt;/li&gt;
&lt;li&gt;Пропускная способность (предсказаний в секунду)&lt;/li&gt;
&lt;li&gt;Версионирование и постепенный rollout&lt;/li&gt;
&lt;li&gt;A/B-тестирование между версиями&lt;/li&gt;
&lt;li&gt;Fallback на предыдущую модель&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="безопасность-ml"&gt;Безопасность ML &lt;a href="#%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d0%be%d1%81%d1%82%d1%8c-ml" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Состязательные атаки (adversarial attacks)&lt;/li&gt;
&lt;li&gt;Извлечение модели&lt;/li&gt;
&lt;li&gt;Отравление обучающих данных&lt;/li&gt;
&lt;li&gt;Приватность и membership inference&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="практическое-задание"&gt;Практическое задание &lt;a href="#%d0%bf%d1%80%d0%b0%d0%ba%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%b5-%d0%b7%d0%b0%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Разработайте тест-план для ML-модели кредитного скоринга:&lt;/p&gt;</description></item><item><title>Тестирование CRM и Salesforce</title><link>https://yrkan.com/ru/course/module-11-domain-testing/crm-salesforce-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/crm-salesforce-testing/</guid><description>&lt;h2 id="обзор-crm-и-salesforce"&gt;Обзор CRM и Salesforce &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-crm-%d0%b8-salesforce" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;CRM-системы управляют полным жизненным циклом клиента — от первого контакта до продажи, поддержки и продления. Salesforce доминирует на рынке CRM с платформой, сочетающей стандартную функциональность и мощный движок кастомизации.&lt;/p&gt;
&lt;h3 id="архитектура-salesforce"&gt;Архитектура Salesforce &lt;a href="#%d0%b0%d1%80%d1%85%d0%b8%d1%82%d0%b5%d0%ba%d1%82%d1%83%d1%80%d0%b0-salesforce" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Salesforce Clouds:&lt;/strong&gt; Sales Cloud, Service Cloud, Marketing Cloud, Commerce Cloud&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Модель данных:&lt;/strong&gt; Стандартные объекты (Lead, Account, Contact, Opportunity, Case) плюс кастомные объекты&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Apex:&lt;/strong&gt; Проприетарный язык Salesforce (похож на Java) для кастомной логики&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lightning:&lt;/strong&gt; Современный UI-фреймворк, заменивший Visualforce&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flows:&lt;/strong&gt; No-code/low-code автоматизация&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AppExchange:&lt;/strong&gt; Маркетплейс сторонних приложений и компонентов&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ключевые-концепции-crm"&gt;Ключевые концепции CRM &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8-crm" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph LR
 A[Захват лида] --&gt; B[Скоринг]
 B --&gt; C[Правила назначения]
 C --&gt; D[Квалификация]
 D --&gt; E[Конвертация в Account + Contact + Opportunity]
 E --&gt; F[Управление pipeline]
 F --&gt; G[Выиграна/Проиграна]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h2 id="фокусные-области-тестирования-crm"&gt;Фокусные области тестирования CRM &lt;a href="#%d1%84%d0%be%d0%ba%d1%83%d1%81%d0%bd%d1%8b%d0%b5-%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-crm" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="тестирование-управления-лидами"&gt;Тестирование управления лидами &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%83%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-%d0%bb%d0%b8%d0%b4%d0%b0%d0%bc%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Захват лидов:&lt;/strong&gt; Веб-формы, интеграция с email, API-импорт, ручной ввод&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Скоринг лидов:&lt;/strong&gt; Автоматическая оценка по вовлечённости и демографии&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Правила назначения:&lt;/strong&gt; Лиды направляются нужному менеджеру по территории&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Дедупликация:&lt;/strong&gt; Система обнаруживает и объединяет дубли&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Конвертация:&lt;/strong&gt; Лид становится Account + Contact + Opportunity&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="тестирование-pipeline-сделок"&gt;Тестирование pipeline сделок &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-pipeline-%d1%81%d0%b4%d0%b5%d0%bb%d0%be%d0%ba" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Прогрессия этапов: Проспект → Квалификация → Предложение → Переговоры → Закрыта&lt;/li&gt;
&lt;li&gt;Расчёты вероятности и ожидаемой выручки на каждом этапе&lt;/li&gt;
&lt;li&gt;Обязательные поля по этапам&lt;/li&gt;
&lt;li&gt;Отслеживание даты закрытия и точность прогноза&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="отчётность-и-дашборды"&gt;Отчётность и дашборды &lt;a href="#%d0%be%d1%82%d1%87%d1%91%d1%82%d0%bd%d0%be%d1%81%d1%82%d1%8c-%d0%b8-%d0%b4%d0%b0%d1%88%d0%b1%d0%be%d1%80%d0%b4%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Фильтры отчётов возвращают корректные подмножества данных&lt;/li&gt;
&lt;li&gt;Графики дашбордов точно отражают данные&lt;/li&gt;
&lt;li&gt;Кросс-объектные отчёты корректно соединяют данные&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="тестирование-специфики-salesforce"&gt;Тестирование специфики Salesforce &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81%d0%bf%d0%b5%d1%86%d0%b8%d1%84%d0%b8%d0%ba%d0%b8-salesforce" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="правила-валидации"&gt;Правила валидации &lt;a href="#%d0%bf%d1%80%d0%b0%d0%b2%d0%b8%d0%bb%d0%b0-%d0%b2%d0%b0%d0%bb%d0%b8%d0%b4%d0%b0%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Правило&lt;/th&gt;
 &lt;th&gt;Условие&lt;/th&gt;
 &lt;th&gt;Ожидаемая ошибка&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Обязательный телефон&lt;/td&gt;
 &lt;td&gt;Телефон пуст при Status = &amp;ldquo;Contacted&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;Телефон обязателен для контактированных лидов&amp;rdquo;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Формат email&lt;/td&gt;
 &lt;td&gt;Email не соответствует паттерну&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;Введите корректный email&amp;rdquo;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Дата закрытия в будущем&lt;/td&gt;
 &lt;td&gt;Дата закрытия в прошлом для открытых сделок&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;Дата закрытия должна быть в будущем&amp;rdquo;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Кросс-полевая&lt;/td&gt;
 &lt;td&gt;Скидка &amp;gt; 30% и статус != &amp;ldquo;Одобрено&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;Скидки более 30% требуют одобрения&amp;rdquo;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="тестирование-apex-триггеров"&gt;Тестирование Apex-триггеров &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-apex-%d1%82%d1%80%d0%b8%d0%b3%d0%b3%d0%b5%d1%80%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Before triggers: валидация или изменение данных до сохранения&lt;/li&gt;
&lt;li&gt;After triggers: действия после сохранения (создание связанных записей)&lt;/li&gt;
&lt;li&gt;Bulk-операции: триггеры должны обрабатывать 200+ записей (governor limits)&lt;/li&gt;
&lt;li&gt;Предотвращение рекурсии&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="продвинутое-тестирование-salesforce"&gt;Продвинутое тестирование Salesforce &lt;a href="#%d0%bf%d1%80%d0%be%d0%b4%d0%b2%d0%b8%d0%bd%d1%83%d1%82%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-salesforce" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="salesforce-dx-и-cicd"&gt;Salesforce DX и CI/CD &lt;a href="#salesforce-dx-%d0%b8-cicd" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Тестирование деплоя метаданных из системы контроля версий&lt;/li&gt;
&lt;li&gt;Проверка создания scratch org и установки пакетов&lt;/li&gt;
&lt;li&gt;Автоматизация запуска Apex-тестов в CI-пайплайне&lt;/li&gt;
&lt;li&gt;Проверка покрытия кода — минимум 75% для деплоя&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="тестирование-cpq"&gt;Тестирование CPQ &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-cpq" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Правила конфигурации продуктов&lt;/li&gt;
&lt;li&gt;Расчёты цен (объёмные скидки, мультивалютность)&lt;/li&gt;
&lt;li&gt;Генерация коммерческих предложений (PDF, потоки согласования)&lt;/li&gt;
&lt;li&gt;Подписочное ценообразование (месячное/годовое, пропорциональное начисление)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="тестирование-интеграций"&gt;Тестирование интеграций &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b8%d0%bd%d1%82%d0%b5%d0%b3%d1%80%d0%b0%d1%86%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;REST/SOAP API интеграции с внешними системами&lt;/li&gt;
&lt;li&gt;Outbound-сообщения и platform events&lt;/li&gt;
&lt;li&gt;Синхронизация данных с ERP и маркетинговыми системами&lt;/li&gt;
&lt;li&gt;SSO/SAML интеграция для аутентификации&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="практическое-задание"&gt;Практическое задание &lt;a href="#%d0%bf%d1%80%d0%b0%d0%ba%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%b5-%d0%b7%d0%b0%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Разработайте тест-кейсы для потока lead-to-cash:&lt;/p&gt;</description></item><item><title>Тестирование EdTech</title><link>https://yrkan.com/ru/course/module-11-domain-testing/edtech-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/edtech-testing/</guid><description>&lt;h2 id="тестирование-edtech"&gt;Тестирование EdTech &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-edtech" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Домен тестирование edtech создаёт уникальные вызовы для QA. Требует знаний в области LMS-платформы, соответствие SCORM/xAPI, движки оценки, системы прокторинга и адаптивное обучение.&lt;/p&gt;
&lt;h3 id="key-domain-concepts"&gt;Key Domain Concepts &lt;a href="#key-domain-concepts" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Core business processes and their dependencies&lt;/li&gt;
&lt;li&gt;Regulatory and compliance frameworks for this industry&lt;/li&gt;
&lt;li&gt;Integration points with external systems&lt;/li&gt;
&lt;li&gt;Domain-specific data integrity requirements&lt;/li&gt;
&lt;li&gt;Performance expectations and SLAs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="testing-focus-areas"&gt;Testing Focus Areas &lt;a href="#testing-focus-areas" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="business-logic-testing"&gt;Business Logic Testing &lt;a href="#business-logic-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Calculation accuracy for all domain numerical operations&lt;/li&gt;
&lt;li&gt;Workflow state transitions and business rules&lt;/li&gt;
&lt;li&gt;Role-based access controls per industry requirements&lt;/li&gt;
&lt;li&gt;Domain-specific data validation rules&lt;/li&gt;
&lt;li&gt;Integration testing between domain modules&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="compliance-and-regulatory-testing"&gt;Compliance and Regulatory Testing &lt;a href="#compliance-and-regulatory-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Verify compliance with applicable standards&lt;/li&gt;
&lt;li&gt;Test audit trail completeness and accuracy&lt;/li&gt;
&lt;li&gt;Validate data retention, privacy, and consent&lt;/li&gt;
&lt;li&gt;Test regulatory reporting accuracy&lt;/li&gt;
&lt;li&gt;Verify access controls meet requirements&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="data-integrity-testing"&gt;Data Integrity Testing &lt;a href="#data-integrity-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Validate data accuracy across system boundaries&lt;/li&gt;
&lt;li&gt;Test transformation and calculation rules with edge cases&lt;/li&gt;
&lt;li&gt;Verify referential integrity in cross-system flows&lt;/li&gt;
&lt;li&gt;Test migration and synchronization processes&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph TD
 A[Domain Requirements] --&gt; B[Business Logic]
 A --&gt; C[Compliance]
 A --&gt; D[Integration]
 B --&gt; E[Test Execution]
 C --&gt; E
 D --&gt; E
 E --&gt; F[Domain Validation]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h2 id="advanced-testing-techniques"&gt;Advanced Testing Techniques &lt;a href="#advanced-testing-techniques" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="domain-specific-integration-testing"&gt;Domain-Specific Integration Testing &lt;a href="#domain-specific-integration-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;External system APIs and data exchanges&lt;/li&gt;
&lt;li&gt;Third-party service integrations and SLAs&lt;/li&gt;
&lt;li&gt;Data synchronization with conflict resolution&lt;/li&gt;
&lt;li&gt;Error handling for integration failures&lt;/li&gt;
&lt;li&gt;Performance under realistic loads&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="performance-and-scale-testing"&gt;Performance and Scale Testing &lt;a href="#performance-and-scale-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Transaction throughput under peak load&lt;/li&gt;
&lt;li&gt;Response time SLAs for critical operations&lt;/li&gt;
&lt;li&gt;Batch processing capacity at production scale&lt;/li&gt;
&lt;li&gt;Concurrent user capacity during peak usage&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="security-testing"&gt;Security Testing &lt;a href="#security-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Authentication and authorization per domain requirements&lt;/li&gt;
&lt;li&gt;Encryption of sensitive domain data&lt;/li&gt;
&lt;li&gt;Audit logging for compliance&lt;/li&gt;
&lt;li&gt;Penetration testing for domain attack vectors&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hands-on-exercise"&gt;Hands-On Exercise &lt;a href="#hands-on-exercise" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Design a test plan for a тестирование edtech application:&lt;/p&gt;</description></item><item><title>Тестирование ERP и SAP</title><link>https://yrkan.com/ru/course/module-11-domain-testing/erp-sap-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/erp-sap-testing/</guid><description>&lt;h2 id="обзор-erp-и-sap"&gt;Обзор ERP и SAP &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-erp-%d0%b8-sap" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Системы ERP (Enterprise Resource Planning) — основа крупных организаций, интегрирующая все ключевые бизнес-процессы в единую платформу. SAP — доминирующий поставщик ERP, обслуживающий более 400,000 клиентов по всему миру.&lt;/p&gt;
&lt;h3 id="структура-модулей-sap"&gt;Структура модулей SAP &lt;a href="#%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%b0-%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d0%b5%d0%b9-sap" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Модуль&lt;/th&gt;
 &lt;th&gt;Полное название&lt;/th&gt;
 &lt;th&gt;Бизнес-область&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;FI&lt;/td&gt;
 &lt;td&gt;Financial Accounting&lt;/td&gt;
 &lt;td&gt;Главная книга, кредиторы/дебиторы, учёт активов&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;CO&lt;/td&gt;
 &lt;td&gt;Controlling&lt;/td&gt;
 &lt;td&gt;Центры затрат, центры прибыли, внутренние заказы&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;MM&lt;/td&gt;
 &lt;td&gt;Materials Management&lt;/td&gt;
 &lt;td&gt;Закупки, инвентарь, управление складом&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;SD&lt;/td&gt;
 &lt;td&gt;Sales &amp;amp; Distribution&lt;/td&gt;
 &lt;td&gt;Заказы на продажу, доставка, биллинг, ценообразование&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;PP&lt;/td&gt;
 &lt;td&gt;Production Planning&lt;/td&gt;
 &lt;td&gt;Спецификации, MRP, производственные заказы&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;HR/HCM&lt;/td&gt;
 &lt;td&gt;Human Capital Management&lt;/td&gt;
 &lt;td&gt;Зарплата, кадровое администрирование, учёт рабочего времени&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="кросс-модульная-интеграция"&gt;Кросс-модульная интеграция &lt;a href="#%d0%ba%d1%80%d0%be%d1%81%d1%81-%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d1%8c%d0%bd%d0%b0%d1%8f-%d0%b8%d0%bd%d1%82%d0%b5%d0%b3%d1%80%d0%b0%d1%86%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph LR
 A[SD: Заказ на продажу] --&gt; B[MM: Проверка запасов]
 B --&gt; C[PP: Производственный заказ]
 C --&gt; D[MM: Приход товара]
 A --&gt; E[SD: Доставка]
 E --&gt; F[SD: Выставление счёта]
 F --&gt; G[FI: Счёт-фактура]
 G --&gt; H[CO: Центр затрат]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;p&gt;Один заказ на продажу запускает действия в SD, MM, PP, FI и CO — тестирование должно проверять всю цепочку.&lt;/p&gt;</description></item><item><title>Тестирование IoT</title><link>https://yrkan.com/ru/course/module-11-domain-testing/iot-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/iot-testing/</guid><description>&lt;h2 id="архитектура-iot"&gt;Архитектура IoT &lt;a href="#%d0%b0%d1%80%d1%85%d0%b8%d1%82%d0%b5%d0%ba%d1%82%d1%83%d1%80%d0%b0-iot" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Интернет вещей связывает физические устройства с цифровым миром. Тестирование IoT охватывает весь стек — от встроенного ПО до облачных платформ.&lt;/p&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph TB
 A[Сенсоры/Актуаторы] --&gt; B[Прошивка устройства]
 B --&gt; C[Протокол связи]
 C --&gt; D[Шлюз/Edge]
 D --&gt; E[Облачная платформа]
 E --&gt; F[Приложения/Дашборды]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h3 id="протоколы-связи"&gt;Протоколы связи &lt;a href="#%d0%bf%d1%80%d0%be%d1%82%d0%be%d0%ba%d0%be%d0%bb%d1%8b-%d1%81%d0%b2%d1%8f%d0%b7%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Протокол&lt;/th&gt;
 &lt;th&gt;Дальность&lt;/th&gt;
 &lt;th&gt;Энергия&lt;/th&gt;
 &lt;th&gt;Применение&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Bluetooth LE&lt;/td&gt;
 &lt;td&gt;10-100м&lt;/td&gt;
 &lt;td&gt;Очень низкая&lt;/td&gt;
 &lt;td&gt;Носимые, маячки&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;WiFi&lt;/td&gt;
 &lt;td&gt;50-100м&lt;/td&gt;
 &lt;td&gt;Средняя&lt;/td&gt;
 &lt;td&gt;Умный дом&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Zigbee/Z-Wave&lt;/td&gt;
 &lt;td&gt;10-100м&lt;/td&gt;
 &lt;td&gt;Низкая&lt;/td&gt;
 &lt;td&gt;Домашняя автоматизация&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;LoRaWAN&lt;/td&gt;
 &lt;td&gt;2-15км&lt;/td&gt;
 &lt;td&gt;Очень низкая&lt;/td&gt;
 &lt;td&gt;Сельское хозяйство, ЖКХ&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;MQTT&lt;/td&gt;
 &lt;td&gt;Поверх TCP/IP&lt;/td&gt;
 &lt;td&gt;Различная&lt;/td&gt;
 &lt;td&gt;Облачная передача сообщений&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="фокусные-области-тестирования"&gt;Фокусные области тестирования &lt;a href="#%d1%84%d0%be%d0%ba%d1%83%d1%81%d0%bd%d1%8b%d0%b5-%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="тестирование-подключения"&gt;Тестирование подключения &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d0%be%d0%b4%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Установка и разрыв соединения&lt;/li&gt;
&lt;li&gt;Поведение без сети (офлайн-режим, буферизация данных)&lt;/li&gt;
&lt;li&gt;Переподключение после восстановления сети&lt;/li&gt;
&lt;li&gt;Fallback протоколов (WiFi → сотовая → store-and-forward)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="тестирование-питания-и-батареи"&gt;Тестирование питания и батареи &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d0%b8%d1%82%d0%b0%d0%bd%d0%b8%d1%8f-%d0%b8-%d0%b1%d0%b0%d1%82%d0%b0%d1%80%d0%b5%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Потребление в активном, idle и deep sleep режимах&lt;/li&gt;
&lt;li&gt;Точность триггеров пробуждения&lt;/li&gt;
&lt;li&gt;Точность отчёта об уровне заряда&lt;/li&gt;
&lt;li&gt;Поведение при низком заряде&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="тестирование-прошивки"&gt;Тестирование прошивки &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d1%88%d0%b8%d0%b2%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Тестирование с ограничениями памяти&lt;/li&gt;
&lt;li&gt;Требования реального времени&lt;/li&gt;
&lt;li&gt;Поведение watchdog-таймера&lt;/li&gt;
&lt;li&gt;Последовательность загрузки&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="тестирование-ota-обновлений"&gt;Тестирование OTA-обновлений &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-ota-%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Полное обновление и дельта/патч&lt;/li&gt;
&lt;li&gt;Потеря питания во время обновления (должно возобновиться или откатиться)&lt;/li&gt;
&lt;li&gt;Совместимость версий&lt;/li&gt;
&lt;li&gt;Возможность отката&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="безопасность-iot"&gt;Безопасность IoT &lt;a href="#%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d0%be%d1%81%d1%82%d1%8c-iot" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Сканирование учётных данных по умолчанию&lt;/li&gt;
&lt;li&gt;Шифрование связи (TLS для MQTT)&lt;/li&gt;
&lt;li&gt;Аутентификация и авторизация устройств&lt;/li&gt;
&lt;li&gt;Физическая безопасность (обнаружение вскрытия)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="продвинутое-тестирование-iot"&gt;Продвинутое тестирование IoT &lt;a href="#%d0%bf%d1%80%d0%be%d0%b4%d0%b2%d0%b8%d0%bd%d1%83%d1%82%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-iot" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="тестирование-edge-computing"&gt;Тестирование Edge Computing &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-edge-computing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Точность локального инференса vs. облачного&lt;/li&gt;
&lt;li&gt;Синхронизация edge-to-cloud при восстановлении связи&lt;/li&gt;
&lt;li&gt;Управление ресурсами edge-устройства&lt;/li&gt;
&lt;li&gt;Failover между edge и облачной обработкой&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="тестирование-управления-парком-устройств"&gt;Тестирование управления парком устройств &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%83%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-%d0%bf%d0%b0%d1%80%d0%ba%d0%be%d0%bc-%d1%83%d1%81%d1%82%d1%80%d0%be%d0%b9%d1%81%d1%82%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Провижининг и регистрация в масштабе&lt;/li&gt;
&lt;li&gt;Развёртывание прошивки на парк (поэтапный деплой)&lt;/li&gt;
&lt;li&gt;Мониторинг здоровья устройств&lt;/li&gt;
&lt;li&gt;Удалённая диагностика&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="тестирование-интероперабельности"&gt;Тестирование интероперабельности &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%be%d0%bf%d0%b5%d1%80%d0%b0%d0%b1%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Соответствие протоколу Matter/Thread&lt;/li&gt;
&lt;li&gt;Межвендорное взаимодействие&lt;/li&gt;
&lt;li&gt;Совместимость хабов/шлюзов&lt;/li&gt;
&lt;li&gt;Интеграция с голосовыми ассистентами&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="практическое-задание"&gt;Практическое задание &lt;a href="#%d0%bf%d1%80%d0%b0%d0%ba%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%b5-%d0%b7%d0%b0%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Разработайте тест-план для умного термостата:&lt;/p&gt;</description></item><item><title>Тестирование LLM и генеративного AI</title><link>https://yrkan.com/ru/course/module-11-domain-testing/llm-genai-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/llm-genai-testing/</guid><description>&lt;h2 id="вызов-тестирования-llm"&gt;Вызов тестирования LLM &lt;a href="#%d0%b2%d1%8b%d0%b7%d0%be%d0%b2-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-llm" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;LLM представляют парадигмальный сдвиг в тестировании ПО. В отличие от традиционного софта с детерминированными выходами, LLM генерируют вариативный текст, который нужно оценивать по качеству, а не по точному совпадению.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Обычное ПО&lt;/th&gt;
 &lt;th&gt;LLM-приложения&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Детерминированный выход&lt;/td&gt;
 &lt;td&gt;Недетерминированный выход&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Assert точного равенства&lt;/td&gt;
 &lt;td&gt;Оценка семантического качества&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Бинарный pass/fail&lt;/td&gt;
 &lt;td&gt;Спектр качества&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Фиксированное поведение&lt;/td&gt;
 &lt;td&gt;Меняется с контекстом&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="основные-области-тестирования-llm"&gt;Основные области тестирования LLM &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-llm" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="обнаружение-галлюцинаций"&gt;Обнаружение галлюцинаций &lt;a href="#%d0%be%d0%b1%d0%bd%d0%b0%d1%80%d1%83%d0%b6%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b3%d0%b0%d0%bb%d0%bb%d1%8e%d1%86%d0%b8%d0%bd%d0%b0%d1%86%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Фактуальная галлюцинация:&lt;/strong&gt; Генерация ложных фактов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Сфабрикованные ссылки:&lt;/strong&gt; Изобретение несуществующих источников&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Несогласованность:&lt;/strong&gt; Противоречие самому себе в одном ответе&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Контекстная галлюцинация:&lt;/strong&gt; Добавление информации, отсутствующей в контексте (критично для RAG)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="тестирование-prompt-injection"&gt;Тестирование Prompt Injection &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-prompt-injection" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Прямая инъекция:&lt;/strong&gt; Пользователь пытается переопределить системные инструкции&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Косвенная инъекция:&lt;/strong&gt; Вредоносный контент в извлечённых документах&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Jailbreaking:&lt;/strong&gt; Попытки обойти фильтры безопасности&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Эксфильтрация данных:&lt;/strong&gt; Попытки извлечь системные промпты или данные пользователей&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="тестирование-безопасности-контента"&gt;Тестирование безопасности контента &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%ba%d0%be%d0%bd%d1%82%d0%b5%d0%bd%d1%82%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Язык ненависти и дискриминация&lt;/li&gt;
&lt;li&gt;Инструкции к насилию&lt;/li&gt;
&lt;li&gt;Утечка персональных данных (PII)&lt;/li&gt;
&lt;li&gt;Дезинформация по критическим темам&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="фреймворки-оценки"&gt;Фреймворки оценки &lt;a href="#%d1%84%d1%80%d0%b5%d0%b9%d0%bc%d0%b2%d0%be%d1%80%d0%ba%d0%b8-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Метрика&lt;/th&gt;
 &lt;th&gt;Что измеряет&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Релевантность&lt;/td&gt;
 &lt;td&gt;Отвечает ли ответ на вопрос?&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Когерентность&lt;/td&gt;
 &lt;td&gt;Логичен и структурирован ли ответ?&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Верность (Faithfulness)&lt;/td&gt;
 &lt;td&gt;Точно ли ответ отражает документы-источники? (RAG)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Беглость&lt;/td&gt;
 &lt;td&gt;Грамматически корректен и естественен ли ответ?&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph LR
 A[Тестовый промпт] --&gt; B[Целевая LLM]
 B --&gt; C[Ответ]
 C --&gt; D[LLM-судья]
 D --&gt; E[Оценка + Обоснование]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h2 id="продвинутое-тестирование-llm"&gt;Продвинутое тестирование LLM &lt;a href="#%d0%bf%d1%80%d0%be%d0%b4%d0%b2%d0%b8%d0%bd%d1%83%d1%82%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-llm" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="тестирование-rag-пайплайна"&gt;Тестирование RAG-пайплайна &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-rag-%d0%bf%d0%b0%d0%b9%d0%bf%d0%bb%d0%b0%d0%b9%d0%bd%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Тестирование retrieval:&lt;/strong&gt; Возвращает ли поиск релевантные документы?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Тестирование чанкинга:&lt;/strong&gt; Разделены ли документы на семантически осмысленные части?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Тестирование context window:&lt;/strong&gt; Что происходит при превышении лимита токенов?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Тестирование верности:&lt;/strong&gt; Соответствует ли ответ извлечённым документам?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Тестирование атрибуции:&lt;/strong&gt; Корректно ли указаны источники?&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="тестирование-guardrails"&gt;Тестирование Guardrails &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-guardrails" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Валидация входов: обнаружение и блокировка вредоносных промптов&lt;/li&gt;
&lt;li&gt;Валидация выходов: фильтрация вредных ответов&lt;/li&gt;
&lt;li&gt;Границы тем: LLM остаётся в рамках назначенного домена&lt;/li&gt;
&lt;li&gt;Обнаружение PII во входах и выходах&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="тестирование-многоходовых-диалогов"&gt;Тестирование многоходовых диалогов &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bc%d0%bd%d0%be%d0%b3%d0%be%d1%85%d0%be%d0%b4%d0%be%d0%b2%d1%8b%d1%85-%d0%b4%d0%b8%d0%b0%d0%bb%d0%be%d0%b3%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Удержание контекста между ходами&lt;/li&gt;
&lt;li&gt;Переполнение context window&lt;/li&gt;
&lt;li&gt;Корректная обработка смены темы&lt;/li&gt;
&lt;li&gt;Когерентность на протяжении 10+ ходов&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="практическое-задание"&gt;Практическое задание &lt;a href="#%d0%bf%d1%80%d0%b0%d0%ba%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%b5-%d0%b7%d0%b0%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Разработайте тест-план для чат-бота поддержки клиентов на основе LLM:&lt;/p&gt;</description></item><item><title>Тестирование автомобильных и ADAS-систем</title><link>https://yrkan.com/ru/course/module-11-domain-testing/automotive-adas-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/automotive-adas-testing/</guid><description>&lt;h2 id="тестирование-автомобильных-и-adas-систем"&gt;Тестирование автомобильных и ADAS-систем &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b0%d0%b2%d1%82%d0%be%d0%bc%d0%be%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d1%8b%d1%85-%d0%b8-adas-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Домен тестирование автомобильных и adas-систем создаёт уникальные вызовы для QA. Требует знаний в области функциональная безопасность ISO 26262, архитектура AUTOSAR, тестирование fusion сенсоров, V2X-коммуникация и валидация автономного вождения.&lt;/p&gt;
&lt;h3 id="key-domain-concepts"&gt;Key Domain Concepts &lt;a href="#key-domain-concepts" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Core business processes and their dependencies&lt;/li&gt;
&lt;li&gt;Regulatory and compliance frameworks for this industry&lt;/li&gt;
&lt;li&gt;Integration points with external systems&lt;/li&gt;
&lt;li&gt;Domain-specific data integrity requirements&lt;/li&gt;
&lt;li&gt;Performance expectations and SLAs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="testing-focus-areas"&gt;Testing Focus Areas &lt;a href="#testing-focus-areas" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="business-logic-testing"&gt;Business Logic Testing &lt;a href="#business-logic-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Calculation accuracy for all domain numerical operations&lt;/li&gt;
&lt;li&gt;Workflow state transitions and business rules&lt;/li&gt;
&lt;li&gt;Role-based access controls per industry requirements&lt;/li&gt;
&lt;li&gt;Domain-specific data validation rules&lt;/li&gt;
&lt;li&gt;Integration testing between domain modules&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="compliance-and-regulatory-testing"&gt;Compliance and Regulatory Testing &lt;a href="#compliance-and-regulatory-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Verify compliance with applicable standards&lt;/li&gt;
&lt;li&gt;Test audit trail completeness and accuracy&lt;/li&gt;
&lt;li&gt;Validate data retention, privacy, and consent&lt;/li&gt;
&lt;li&gt;Test regulatory reporting accuracy&lt;/li&gt;
&lt;li&gt;Verify access controls meet requirements&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="data-integrity-testing"&gt;Data Integrity Testing &lt;a href="#data-integrity-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Validate data accuracy across system boundaries&lt;/li&gt;
&lt;li&gt;Test transformation and calculation rules with edge cases&lt;/li&gt;
&lt;li&gt;Verify referential integrity in cross-system flows&lt;/li&gt;
&lt;li&gt;Test migration and synchronization processes&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph TD
 A[Domain Requirements] --&gt; B[Business Logic]
 A --&gt; C[Compliance]
 A --&gt; D[Integration]
 B --&gt; E[Test Execution]
 C --&gt; E
 D --&gt; E
 E --&gt; F[Domain Validation]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h2 id="advanced-testing-techniques"&gt;Advanced Testing Techniques &lt;a href="#advanced-testing-techniques" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="domain-specific-integration-testing"&gt;Domain-Specific Integration Testing &lt;a href="#domain-specific-integration-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;External system APIs and data exchanges&lt;/li&gt;
&lt;li&gt;Third-party service integrations and SLAs&lt;/li&gt;
&lt;li&gt;Data synchronization with conflict resolution&lt;/li&gt;
&lt;li&gt;Error handling for integration failures&lt;/li&gt;
&lt;li&gt;Performance under realistic loads&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="performance-and-scale-testing"&gt;Performance and Scale Testing &lt;a href="#performance-and-scale-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Transaction throughput under peak load&lt;/li&gt;
&lt;li&gt;Response time SLAs for critical operations&lt;/li&gt;
&lt;li&gt;Batch processing capacity at production scale&lt;/li&gt;
&lt;li&gt;Concurrent user capacity during peak usage&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="security-testing"&gt;Security Testing &lt;a href="#security-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Authentication and authorization per domain requirements&lt;/li&gt;
&lt;li&gt;Encryption of sensitive domain data&lt;/li&gt;
&lt;li&gt;Audit logging for compliance&lt;/li&gt;
&lt;li&gt;Penetration testing for domain attack vectors&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hands-on-exercise"&gt;Hands-On Exercise &lt;a href="#hands-on-exercise" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Design a test plan for a тестирование автомобильных и adas-систем application:&lt;/p&gt;</description></item><item><title>Тестирование банковских и финансовых систем</title><link>https://yrkan.com/ru/course/module-11-domain-testing/banking-finance-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/banking-finance-testing/</guid><description>&lt;h2 id="почему-банковское-по-требует-максимальной-строгости-тестирования"&gt;Почему банковское ПО требует максимальной строгости тестирования &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%b1%d0%b0%d0%bd%d0%ba%d0%be%d0%b2%d1%81%d0%ba%d0%be%d0%b5-%d0%bf%d0%be-%d1%82%d1%80%d0%b5%d0%b1%d1%83%d0%b5%d1%82-%d0%bc%d0%b0%d0%ba%d1%81%d0%b8%d0%bc%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b9-%d1%81%d1%82%d1%80%d0%be%d0%b3%d0%be%d1%81%d1%82%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Банковская сфера и финансы — один из самых требовательных доменов для тестирования ПО. Один баг может привести к финансовым потерям тысяч клиентов, регуляторным штрафам в миллионы или полной потере доверия клиентов. В отличие от приложения соцсети, где баг вызывает лёгкое неудобство, банковский баг может означать реальные деньги, исчезающие с реальных счетов.&lt;/p&gt;
&lt;p&gt;Финансовое ПО включает системы core banking, платформы процессинга платежей, приложения управления кредитами, торговые платформы и мобильный банкинг. Каждое из них обрабатывает конфиденциальные финансовые данные и должно соответствовать строгим регуляторным требованиям.&lt;/p&gt;</description></item><item><title>Тестирование блокчейна и Web3</title><link>https://yrkan.com/ru/course/module-11-domain-testing/blockchain-web3-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/blockchain-web3-testing/</guid><description>&lt;h2 id="архитектура-блокчейна-для-qa"&gt;Архитектура блокчейна для QA &lt;a href="#%d0%b0%d1%80%d1%85%d0%b8%d1%82%d0%b5%d0%ba%d1%82%d1%83%d1%80%d0%b0-%d0%b1%d0%bb%d0%be%d0%ba%d1%87%d0%b5%d0%b9%d0%bd%d0%b0-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Блокчейн — распределённый, неизменяемый реестр транзакций. Баги перманентны — подтверждённую транзакцию нельзя отменить.&lt;/p&gt;
&lt;h3 id="ключевые-компоненты"&gt;Ключевые компоненты &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bc%d0%bf%d0%be%d0%bd%d0%b5%d0%bd%d1%82%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Узлы (Nodes):&lt;/strong&gt; Хранят копии блокчейна и валидируют транзакции&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Механизм консенсуса:&lt;/strong&gt; Proof of Work, Proof of Stake&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Смарт-контракты:&lt;/strong&gt; Самоисполняющиеся программы (Solidity для Ethereum)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Кошельки (Wallets):&lt;/strong&gt; Управление криптоключами и подписание транзакций&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dApps:&lt;/strong&gt; Децентрализованные приложения&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="тестирование-смарт-контрактов"&gt;Тестирование смарт-контрактов &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81%d0%bc%d0%b0%d1%80%d1%82-%d0%ba%d0%be%d0%bd%d1%82%d1%80%d0%b0%d0%ba%d1%82%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="распространённые-уязвимости"&gt;Распространённые уязвимости &lt;a href="#%d1%80%d0%b0%d1%81%d0%bf%d1%80%d0%be%d1%81%d1%82%d1%80%d0%b0%d0%bd%d1%91%d0%bd%d0%bd%d1%8b%d0%b5-%d1%83%d1%8f%d0%b7%d0%b2%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Reentrancy:&lt;/strong&gt; Внешние вызовы до обновления состояния&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Integer overflow/underflow:&lt;/strong&gt; Арифметические ошибки в расчётах токенов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Контроль доступа:&lt;/strong&gt; Отсутствие проверок разрешений&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Front-running:&lt;/strong&gt; Переупорядочивание транзакций майнерами&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flash loan атаки:&lt;/strong&gt; Манипуляция рынками через мгновенные займы&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="инструменты"&gt;Инструменты &lt;a href="#%d0%b8%d0%bd%d1%81%d1%82%d1%80%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hardhat/Foundry:&lt;/strong&gt; Фреймворки со встроенным тестированием&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Slither:&lt;/strong&gt; Статический анализ Solidity&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Echidna:&lt;/strong&gt; Фаззинг смарт-контрактов&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="тестирование-фронтенда-dapp"&gt;Тестирование фронтенда dApp &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%84%d1%80%d0%be%d0%bd%d1%82%d0%b5%d0%bd%d0%b4%d0%b0-dapp" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Подключение кошелька (MetaMask, WalletConnect)&lt;/li&gt;
&lt;li&gt;Подписание транзакций — проверка показанных деталей&lt;/li&gt;
&lt;li&gt;Переключение между сетями&lt;/li&gt;
&lt;li&gt;Обработка ошибок (недостаточно gas, отклонение)&lt;/li&gt;
&lt;li&gt;Обновление UI после подтверждения блока&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph LR
 A[Действие пользователя] --&gt; B[Фронтенд dApp]
 B --&gt; C[Подпись в кошельке]
 C --&gt; D[Сеть блокчейна]
 D --&gt; E[Исполнение контракта]
 E --&gt; F[Изменение состояния]
 F --&gt; G[Эмиссия события]
 G --&gt; B
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h2 id="продвинутое-тестирование"&gt;Продвинутое тестирование &lt;a href="#%d0%bf%d1%80%d0%be%d0%b4%d0%b2%d0%b8%d0%bd%d1%83%d1%82%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="testnet-vs-mainnet"&gt;Testnet vs. Mainnet &lt;a href="#testnet-vs-mainnet" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Всегда сначала тестировать на testnet&lt;/li&gt;
&lt;li&gt;Fork mainnet для реалистичного тестирования&lt;/li&gt;
&lt;li&gt;Тестировать точность оценки gas&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="аудит-безопасности"&gt;Аудит безопасности &lt;a href="#%d0%b0%d1%83%d0%b4%d0%b8%d1%82-%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Формальная верификация критичной логики&lt;/li&gt;
&lt;li&gt;Тестирование инвариантов&lt;/li&gt;
&lt;li&gt;Симуляция экономических атак&lt;/li&gt;
&lt;li&gt;Тестирование механизмов обновления (proxy patterns)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="практическое-задание"&gt;Практическое задание &lt;a href="#%d0%bf%d1%80%d0%b0%d0%ba%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%b5-%d0%b7%d0%b0%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Разработайте тест-план для токена ERC-20:&lt;/p&gt;</description></item><item><title>Тестирование в авиационной отрасли</title><link>https://yrkan.com/ru/course/module-11-domain-testing/aviation-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/aviation-testing/</guid><description>&lt;h2 id="тестирование-в-авиационной-отрасли"&gt;Тестирование в авиационной отрасли &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-%d0%b0%d0%b2%d0%b8%d0%b0%d1%86%d0%b8%d0%be%d0%bd%d0%bd%d0%be%d0%b9-%d0%be%d1%82%d1%80%d0%b0%d1%81%d0%bb%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Домен тестирование в авиационной отрасли создаёт уникальные вызовы для QA. Требует знаний в области уровни сертификации DO-178C (DAL A-E), верификация ПО авионики и системы управления полётом.&lt;/p&gt;
&lt;h3 id="key-domain-concepts"&gt;Key Domain Concepts &lt;a href="#key-domain-concepts" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Core business processes and their dependencies&lt;/li&gt;
&lt;li&gt;Regulatory and compliance frameworks for this industry&lt;/li&gt;
&lt;li&gt;Integration points with external systems&lt;/li&gt;
&lt;li&gt;Domain-specific data integrity requirements&lt;/li&gt;
&lt;li&gt;Performance expectations and SLAs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="testing-focus-areas"&gt;Testing Focus Areas &lt;a href="#testing-focus-areas" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="business-logic-testing"&gt;Business Logic Testing &lt;a href="#business-logic-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Calculation accuracy for all domain numerical operations&lt;/li&gt;
&lt;li&gt;Workflow state transitions and business rules&lt;/li&gt;
&lt;li&gt;Role-based access controls per industry requirements&lt;/li&gt;
&lt;li&gt;Domain-specific data validation rules&lt;/li&gt;
&lt;li&gt;Integration testing between domain modules&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="compliance-and-regulatory-testing"&gt;Compliance and Regulatory Testing &lt;a href="#compliance-and-regulatory-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Verify compliance with applicable standards&lt;/li&gt;
&lt;li&gt;Test audit trail completeness and accuracy&lt;/li&gt;
&lt;li&gt;Validate data retention, privacy, and consent&lt;/li&gt;
&lt;li&gt;Test regulatory reporting accuracy&lt;/li&gt;
&lt;li&gt;Verify access controls meet requirements&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="data-integrity-testing"&gt;Data Integrity Testing &lt;a href="#data-integrity-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Validate data accuracy across system boundaries&lt;/li&gt;
&lt;li&gt;Test transformation and calculation rules with edge cases&lt;/li&gt;
&lt;li&gt;Verify referential integrity in cross-system flows&lt;/li&gt;
&lt;li&gt;Test migration and synchronization processes&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph TD
 A[Domain Requirements] --&gt; B[Business Logic]
 A --&gt; C[Compliance]
 A --&gt; D[Integration]
 B --&gt; E[Test Execution]
 C --&gt; E
 D --&gt; E
 E --&gt; F[Domain Validation]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h2 id="advanced-testing-techniques"&gt;Advanced Testing Techniques &lt;a href="#advanced-testing-techniques" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="domain-specific-integration-testing"&gt;Domain-Specific Integration Testing &lt;a href="#domain-specific-integration-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;External system APIs and data exchanges&lt;/li&gt;
&lt;li&gt;Third-party service integrations and SLAs&lt;/li&gt;
&lt;li&gt;Data synchronization with conflict resolution&lt;/li&gt;
&lt;li&gt;Error handling for integration failures&lt;/li&gt;
&lt;li&gt;Performance under realistic loads&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="performance-and-scale-testing"&gt;Performance and Scale Testing &lt;a href="#performance-and-scale-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Transaction throughput under peak load&lt;/li&gt;
&lt;li&gt;Response time SLAs for critical operations&lt;/li&gt;
&lt;li&gt;Batch processing capacity at production scale&lt;/li&gt;
&lt;li&gt;Concurrent user capacity during peak usage&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="security-testing"&gt;Security Testing &lt;a href="#security-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Authentication and authorization per domain requirements&lt;/li&gt;
&lt;li&gt;Encryption of sensitive domain data&lt;/li&gt;
&lt;li&gt;Audit logging for compliance&lt;/li&gt;
&lt;li&gt;Penetration testing for domain attack vectors&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hands-on-exercise"&gt;Hands-On Exercise &lt;a href="#hands-on-exercise" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Design a test plan for a тестирование в авиационной отрасли application:&lt;/p&gt;</description></item><item><title>Тестирование в сфере здравоохранения</title><link>https://yrkan.com/ru/course/module-11-domain-testing/healthcare-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/healthcare-testing/</guid><description>&lt;h2 id="ландшафт-медицинских-it-систем"&gt;Ландшафт медицинских IT-систем &lt;a href="#%d0%bb%d0%b0%d0%bd%d0%b4%d1%88%d0%b0%d1%84%d1%82-%d0%bc%d0%b5%d0%b4%d0%b8%d1%86%d0%b8%d0%bd%d1%81%d0%ba%d0%b8%d1%85-it-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Медицинские IT — обширная экосистема взаимосвязанных систем, управляющих уходом за пациентами, клиническими операциями и административными функциями. Ставки уникально высоки — баги в медицинском ПО могут напрямую влиять на безопасность пациентов и даже стоить жизней.&lt;/p&gt;
&lt;h3 id="основные-системы-здравоохранения"&gt;Основные системы здравоохранения &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d1%8b-%d0%b7%d0%b4%d1%80%d0%b0%d0%b2%d0%be%d0%be%d1%85%d1%80%d0%b0%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;EHR (Electronic Health Records):&lt;/strong&gt; Центральное хранилище медицинских данных пациента — диагнозы, препараты, аллергии, результаты анализов, снимки и планы лечения&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PACS (Picture Archiving and Communication System):&lt;/strong&gt; Хранит и распространяет медицинские изображения (рентген, МРТ, КТ) по стандарту DICOM&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LIS (Laboratory Information System):&lt;/strong&gt; Управляет заказами на анализы, отслеживанием образцов, отчётами о результатах и контролем качества&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RIS (Radiology Information System):&lt;/strong&gt; Управляет рабочими процессами радиологии от направления до заключения&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PMS (Practice Management System):&lt;/strong&gt; Управляет расписанием, биллингом и административными операциями&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Аптечные системы:&lt;/strong&gt; Управляют выдачей лекарств, проверкой лекарственных взаимодействий и формулярами&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="стандарты-интероперабельности"&gt;Стандарты интероперабельности &lt;a href="#%d1%81%d1%82%d0%b0%d0%bd%d0%b4%d0%b0%d1%80%d1%82%d1%8b-%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%be%d0%bf%d0%b5%d1%80%d0%b0%d0%b1%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Системы здравоохранения должны надёжно обмениваться данными. Ключевые стандарты:&lt;/p&gt;</description></item><item><title>Тестирование встраиваемых систем</title><link>https://yrkan.com/ru/course/module-11-domain-testing/embedded-systems-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/embedded-systems-testing/</guid><description>&lt;h2 id="обзор-встраиваемых-систем"&gt;Обзор встраиваемых систем &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d0%b2%d1%81%d1%82%d1%80%d0%b0%d0%b8%d0%b2%d0%b0%d0%b5%d0%bc%d1%8b%d1%85-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Встраиваемые системы — специализированные компьютеры для выполнения конкретных функций. Они работают в бытовой технике, медицинских устройствах, автомобильных системах и промышленных контроллерах. Встраиваемый код работает на оборудовании с ограниченными ресурсами, требованиями реального времени и прямым взаимодействием с аппаратурой.&lt;/p&gt;
&lt;h3 id="компоненты-архитектуры"&gt;Компоненты архитектуры &lt;a href="#%d0%ba%d0%be%d0%bc%d0%bf%d0%be%d0%bd%d0%b5%d0%bd%d1%82%d1%8b-%d0%b0%d1%80%d1%85%d0%b8%d1%82%d0%b5%d0%ba%d1%82%d1%83%d1%80%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Микроконтроллер (MCU):&lt;/strong&gt; Процессор + память + периферия на одном чипе (ARM Cortex-M, ESP32, STM32)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RTOS:&lt;/strong&gt; FreeRTOS, Zephyr, VxWorks — детерминированное планирование задач&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HAL (Hardware Abstraction Layer):&lt;/strong&gt; Программный интерфейс между прошивкой и периферией&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Драйверы периферии:&lt;/strong&gt; GPIO, UART, SPI, I2C, ADC, PWM&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Загрузчик (Boot Loader):&lt;/strong&gt; Начальный код для загрузки прошивки и управления обновлениями&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="стратегии-тестирования-встраиваемых-систем"&gt;Стратегии тестирования встраиваемых систем &lt;a href="#%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d0%b2%d1%81%d1%82%d1%80%d0%b0%d0%b8%d0%b2%d0%b0%d0%b5%d0%bc%d1%8b%d1%85-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="unit-тестирование-на-целевом-устройстве"&gt;Unit-тестирование на целевом устройстве &lt;a href="#unit-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bd%d0%b0-%d1%86%d0%b5%d0%bb%d0%b5%d0%b2%d0%be%d0%bc-%d1%83%d1%81%d1%82%d1%80%d0%be%d0%b9%d1%81%d1%82%d0%b2%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Unit-тесты должны запускаться на реальном целевом оборудовании:&lt;/p&gt;</description></item><item><title>Тестирование госсистем и комплаенс</title><link>https://yrkan.com/ru/course/module-11-domain-testing/government-compliance-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/government-compliance-testing/</guid><description>&lt;h2 id="тестирование-госсистем-и-комплаенс"&gt;Тестирование госсистем и комплаенс &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b3%d0%be%d1%81%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc-%d0%b8-%d0%ba%d0%be%d0%bc%d0%bf%d0%bb%d0%b0%d0%b5%d0%bd%d1%81" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Домен тестирование госсистем и комплаенс создаёт уникальные вызовы для QA. Требует знаний в области доступность Section 508/WCAG, облачная безопасность FedRAMP, комплаенс FISMA и тестирование гражданских порталов.&lt;/p&gt;
&lt;h3 id="key-domain-concepts"&gt;Key Domain Concepts &lt;a href="#key-domain-concepts" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Core business processes and their dependencies&lt;/li&gt;
&lt;li&gt;Regulatory and compliance frameworks for this industry&lt;/li&gt;
&lt;li&gt;Integration points with external systems&lt;/li&gt;
&lt;li&gt;Domain-specific data integrity requirements&lt;/li&gt;
&lt;li&gt;Performance expectations and SLAs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="testing-focus-areas"&gt;Testing Focus Areas &lt;a href="#testing-focus-areas" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="business-logic-testing"&gt;Business Logic Testing &lt;a href="#business-logic-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Calculation accuracy for all domain numerical operations&lt;/li&gt;
&lt;li&gt;Workflow state transitions and business rules&lt;/li&gt;
&lt;li&gt;Role-based access controls per industry requirements&lt;/li&gt;
&lt;li&gt;Domain-specific data validation rules&lt;/li&gt;
&lt;li&gt;Integration testing between domain modules&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="compliance-and-regulatory-testing"&gt;Compliance and Regulatory Testing &lt;a href="#compliance-and-regulatory-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Verify compliance with applicable standards&lt;/li&gt;
&lt;li&gt;Test audit trail completeness and accuracy&lt;/li&gt;
&lt;li&gt;Validate data retention, privacy, and consent&lt;/li&gt;
&lt;li&gt;Test regulatory reporting accuracy&lt;/li&gt;
&lt;li&gt;Verify access controls meet requirements&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="data-integrity-testing"&gt;Data Integrity Testing &lt;a href="#data-integrity-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Validate data accuracy across system boundaries&lt;/li&gt;
&lt;li&gt;Test transformation and calculation rules with edge cases&lt;/li&gt;
&lt;li&gt;Verify referential integrity in cross-system flows&lt;/li&gt;
&lt;li&gt;Test migration and synchronization processes&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph TD
 A[Domain Requirements] --&gt; B[Business Logic]
 A --&gt; C[Compliance]
 A --&gt; D[Integration]
 B --&gt; E[Test Execution]
 C --&gt; E
 D --&gt; E
 E --&gt; F[Domain Validation]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h2 id="advanced-testing-techniques"&gt;Advanced Testing Techniques &lt;a href="#advanced-testing-techniques" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="domain-specific-integration-testing"&gt;Domain-Specific Integration Testing &lt;a href="#domain-specific-integration-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;External system APIs and data exchanges&lt;/li&gt;
&lt;li&gt;Third-party service integrations and SLAs&lt;/li&gt;
&lt;li&gt;Data synchronization with conflict resolution&lt;/li&gt;
&lt;li&gt;Error handling for integration failures&lt;/li&gt;
&lt;li&gt;Performance under realistic loads&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="performance-and-scale-testing"&gt;Performance and Scale Testing &lt;a href="#performance-and-scale-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Transaction throughput under peak load&lt;/li&gt;
&lt;li&gt;Response time SLAs for critical operations&lt;/li&gt;
&lt;li&gt;Batch processing capacity at production scale&lt;/li&gt;
&lt;li&gt;Concurrent user capacity during peak usage&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="security-testing"&gt;Security Testing &lt;a href="#security-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Authentication and authorization per domain requirements&lt;/li&gt;
&lt;li&gt;Encryption of sensitive domain data&lt;/li&gt;
&lt;li&gt;Audit logging for compliance&lt;/li&gt;
&lt;li&gt;Penetration testing for domain attack vectors&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hands-on-exercise"&gt;Hands-On Exercise &lt;a href="#hands-on-exercise" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Design a test plan for a тестирование госсистем и комплаенс application:&lt;/p&gt;</description></item><item><title>Тестирование игр</title><link>https://yrkan.com/ru/course/module-11-domain-testing/gaming-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/gaming-testing/</guid><description>&lt;h2 id="обзор-игрового-qa"&gt;Обзор игрового QA &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d0%b8%d0%b3%d1%80%d0%be%d0%b2%d0%be%d0%b3%d0%be-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование игр принципиально отличается от традиционного QA. Игры — это интерактивные реалтайм-системы, где субъективное качество (интересно ли?) так же важно, как объективная корректность (работает ли?).&lt;/p&gt;
&lt;h3 id="жизненный-цикл-разработки-игры"&gt;Жизненный цикл разработки игры &lt;a href="#%d0%b6%d0%b8%d0%b7%d0%bd%d0%b5%d0%bd%d0%bd%d1%8b%d0%b9-%d1%86%d0%b8%d0%ba%d0%bb-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b8-%d0%b8%d0%b3%d1%80%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph LR
 A[Pre-Alpha] --&gt; B[Alpha]
 B --&gt; C[Beta]
 C --&gt; D[Release Candidate]
 D --&gt; E[Gold Master]
 E --&gt; F[Пост-релиз]

 A -.-&gt;|Базовые механики| A
 B -.-&gt;|Фичи готовы, много багов| B
 C -.-&gt;|Полировка, производительность| C
 D -.-&gt;|Только критические фиксы| D
 F -.-&gt;|Патчи, DLC, сезоны| F
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h3 id="категории-тестирования"&gt;Категории тестирования &lt;a href="#%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be%d1%80%d0%b8%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Категория&lt;/th&gt;
 &lt;th&gt;Фокусные области&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Функциональность&lt;/td&gt;
 &lt;td&gt;Механики, UI, прогрессия, квесты, ИИ&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Производительность&lt;/td&gt;
 &lt;td&gt;Частота кадров, время загрузки, потребление памяти&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Compliance/Cert&lt;/td&gt;
 &lt;td&gt;Требования платформы (Sony TRC, Microsoft XR, Nintendo Lotcheck)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Совместимость&lt;/td&gt;
 &lt;td&gt;Вариации оборудования, версии ОС, драйверы&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Локализация&lt;/td&gt;
 &lt;td&gt;Текст, аудио, культурная адаптация, переполнение текста&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Мультиплеер&lt;/td&gt;
 &lt;td&gt;Сеть, подбор игроков, синхронизация, читерство&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="тестирование-реалтайм-систем"&gt;Тестирование реалтайм-систем &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%80%d0%b5%d0%b0%d0%bb%d1%82%d0%b0%d0%b9%d0%bc-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="частота-кадров-и-рендеринг"&gt;Частота кадров и рендеринг &lt;a href="#%d1%87%d0%b0%d1%81%d1%82%d0%be%d1%82%d0%b0-%d0%ba%d0%b0%d0%b4%d1%80%d0%be%d0%b2-%d0%b8-%d1%80%d0%b5%d0%bd%d0%b4%d0%b5%d1%80%d0%b8%d0%bd%d0%b3" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Платформа&lt;/th&gt;
 &lt;th&gt;Целевой FPS&lt;/th&gt;
 &lt;th&gt;Приемлемый минимум&lt;/th&gt;
 &lt;th&gt;Стрессовый сценарий&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;ПК (высокие)&lt;/td&gt;
 &lt;td&gt;60+&lt;/td&gt;
 &lt;td&gt;30&lt;/td&gt;
 &lt;td&gt;Максимальные настройки, сложные сцены&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Консоль&lt;/td&gt;
 &lt;td&gt;60 или 30&lt;/td&gt;
 &lt;td&gt;Цель режима производительности&lt;/td&gt;
 &lt;td&gt;Бой с частицами&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Мобильные&lt;/td&gt;
 &lt;td&gt;30-60&lt;/td&gt;
 &lt;td&gt;25&lt;/td&gt;
 &lt;td&gt;Слабые устройства, термальный тротлинг&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="задержка-ввода"&gt;Задержка ввода &lt;a href="#%d0%b7%d0%b0%d0%b4%d0%b5%d1%80%d0%b6%d0%ba%d0%b0-%d0%b2%d0%b2%d0%be%d0%b4%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Измерение полной задержки (контроллер → экран)&lt;/li&gt;
&lt;li&gt;Тестирование при разных частотах обновления дисплея&lt;/li&gt;
&lt;li&gt;Проверка буферизации ввода при падении FPS&lt;/li&gt;
&lt;li&gt;Тестирование опций доступности (переназначение кнопок)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="физика-и-столкновения"&gt;Физика и столкновения &lt;a href="#%d1%84%d0%b8%d0%b7%d0%b8%d0%ba%d0%b0-%d0%b8-%d1%81%d1%82%d0%be%d0%bb%d0%ba%d0%bd%d0%be%d0%b2%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Обнаружение столкновений объектов (без прохождения сквозь стены)&lt;/li&gt;
&lt;li&gt;Ragdoll-физика, физика транспорта&lt;/li&gt;
&lt;li&gt;Разрушаемое окружение&lt;/li&gt;
&lt;li&gt;Edge cases: экстремальные скорости, стакинг объектов&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="тестирование-поведения-ии"&gt;Тестирование поведения ИИ &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d0%be%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d1%8f-%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Pathfinding: NPC обходят препятствия, не застревая&lt;/li&gt;
&lt;li&gt;Боевой ИИ: враги применяют тактики, соответствующие уровню сложности&lt;/li&gt;
&lt;li&gt;ИИ союзников: помогают, не блокируя игрока&lt;/li&gt;
&lt;li&gt;Масштабирование сложности: ИИ адаптируется к уровню игрока&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="мультиплеер-и-онлайн-тестирование"&gt;Мультиплеер и онлайн-тестирование &lt;a href="#%d0%bc%d1%83%d0%bb%d1%8c%d1%82%d0%b8%d0%bf%d0%bb%d0%b5%d0%b5%d1%80-%d0%b8-%d0%be%d0%bd%d0%bb%d0%b0%d0%b9%d0%bd-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="сетевые-условия"&gt;Сетевые условия &lt;a href="#%d1%81%d0%b5%d1%82%d0%b5%d0%b2%d1%8b%d0%b5-%d1%83%d1%81%d0%bb%d0%be%d0%b2%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Задержка: 20-200мс с джиттером&lt;/li&gt;
&lt;li&gt;Потеря пакетов: 1-10%&lt;/li&gt;
&lt;li&gt;Ограничения пропускной способности&lt;/li&gt;
&lt;li&gt;NAT traversal для peer-to-peer соединений&lt;/li&gt;
&lt;li&gt;Обработка отключения и переподключения&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="продвинутое-тестирование-игр"&gt;Продвинутое тестирование игр &lt;a href="#%d0%bf%d1%80%d0%be%d0%b4%d0%b2%d0%b8%d0%bd%d1%83%d1%82%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b8%d0%b3%d1%80" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="сертификация-консолей"&gt;Сертификация консолей &lt;a href="#%d1%81%d0%b5%d1%80%d1%82%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%8f-%d0%ba%d0%be%d0%bd%d1%81%d0%be%d0%bb%d0%b5%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Sony TRC:&lt;/strong&gt; Обработка сохранений, обновления, сетевые функции, трофеи, поведение контроллеров&lt;/p&gt;</description></item><item><title>Тестирование криптовалют и DeFi</title><link>https://yrkan.com/ru/course/module-11-domain-testing/crypto-defi-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/crypto-defi-testing/</guid><description>&lt;h2 id="тестирование-криптовалют-и-defi"&gt;Тестирование криптовалют и DeFi &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%ba%d1%80%d0%b8%d0%bf%d1%82%d0%be%d0%b2%d0%b0%d0%bb%d1%8e%d1%82-%d0%b8-defi" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Домен тестирование криптовалют и defi создаёт уникальные вызовы для QA. Требует знаний в области децентрализованные биржи, протоколы кредитования, yield farming, пулы ликвидности, токеномика и безопасность кошельков.&lt;/p&gt;
&lt;h3 id="key-domain-concepts"&gt;Key Domain Concepts &lt;a href="#key-domain-concepts" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Core business processes and their dependencies&lt;/li&gt;
&lt;li&gt;Regulatory and compliance frameworks for this industry&lt;/li&gt;
&lt;li&gt;Integration points with external systems&lt;/li&gt;
&lt;li&gt;Domain-specific data integrity requirements&lt;/li&gt;
&lt;li&gt;Performance expectations and SLAs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="testing-focus-areas"&gt;Testing Focus Areas &lt;a href="#testing-focus-areas" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="business-logic-testing"&gt;Business Logic Testing &lt;a href="#business-logic-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Calculation accuracy for all domain numerical operations&lt;/li&gt;
&lt;li&gt;Workflow state transitions and business rules&lt;/li&gt;
&lt;li&gt;Role-based access controls per industry requirements&lt;/li&gt;
&lt;li&gt;Domain-specific data validation rules&lt;/li&gt;
&lt;li&gt;Integration testing between domain modules&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="compliance-and-regulatory-testing"&gt;Compliance and Regulatory Testing &lt;a href="#compliance-and-regulatory-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Verify compliance with applicable standards&lt;/li&gt;
&lt;li&gt;Test audit trail completeness and accuracy&lt;/li&gt;
&lt;li&gt;Validate data retention, privacy, and consent&lt;/li&gt;
&lt;li&gt;Test regulatory reporting accuracy&lt;/li&gt;
&lt;li&gt;Verify access controls meet requirements&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="data-integrity-testing"&gt;Data Integrity Testing &lt;a href="#data-integrity-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Validate data accuracy across system boundaries&lt;/li&gt;
&lt;li&gt;Test transformation and calculation rules with edge cases&lt;/li&gt;
&lt;li&gt;Verify referential integrity in cross-system flows&lt;/li&gt;
&lt;li&gt;Test migration and synchronization processes&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph TD
 A[Domain Requirements] --&gt; B[Business Logic]
 A --&gt; C[Compliance]
 A --&gt; D[Integration]
 B --&gt; E[Test Execution]
 C --&gt; E
 D --&gt; E
 E --&gt; F[Domain Validation]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h2 id="advanced-testing-techniques"&gt;Advanced Testing Techniques &lt;a href="#advanced-testing-techniques" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="domain-specific-integration-testing"&gt;Domain-Specific Integration Testing &lt;a href="#domain-specific-integration-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;External system APIs and data exchanges&lt;/li&gt;
&lt;li&gt;Third-party service integrations and SLAs&lt;/li&gt;
&lt;li&gt;Data synchronization with conflict resolution&lt;/li&gt;
&lt;li&gt;Error handling for integration failures&lt;/li&gt;
&lt;li&gt;Performance under realistic loads&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="performance-and-scale-testing"&gt;Performance and Scale Testing &lt;a href="#performance-and-scale-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Transaction throughput under peak load&lt;/li&gt;
&lt;li&gt;Response time SLAs for critical operations&lt;/li&gt;
&lt;li&gt;Batch processing capacity at production scale&lt;/li&gt;
&lt;li&gt;Concurrent user capacity during peak usage&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="security-testing"&gt;Security Testing &lt;a href="#security-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Authentication and authorization per domain requirements&lt;/li&gt;
&lt;li&gt;Encryption of sensitive domain data&lt;/li&gt;
&lt;li&gt;Audit logging for compliance&lt;/li&gt;
&lt;li&gt;Penetration testing for domain attack vectors&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hands-on-exercise"&gt;Hands-On Exercise &lt;a href="#hands-on-exercise" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Design a test plan for a тестирование криптовалют и defi application:&lt;/p&gt;</description></item><item><title>Тестирование маркетплейсов</title><link>https://yrkan.com/ru/course/module-11-domain-testing/marketplace-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/marketplace-testing/</guid><description>&lt;h2 id="тестирование-маркетплейсов"&gt;Тестирование маркетплейсов &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bc%d0%b0%d1%80%d0%ba%d0%b5%d1%82%d0%bf%d0%bb%d0%b5%d0%b9%d1%81%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Домен тестирование маркетплейсов создаёт уникальные вызовы для QA. Требует знаний в области двусторонние платформы, онбординг продавцов, защита покупателей, системы отзывов, споры и комиссии.&lt;/p&gt;
&lt;h3 id="key-domain-concepts"&gt;Key Domain Concepts &lt;a href="#key-domain-concepts" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Core business processes and their dependencies&lt;/li&gt;
&lt;li&gt;Regulatory and compliance frameworks for this industry&lt;/li&gt;
&lt;li&gt;Integration points with external systems&lt;/li&gt;
&lt;li&gt;Domain-specific data integrity requirements&lt;/li&gt;
&lt;li&gt;Performance expectations and SLAs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="testing-focus-areas"&gt;Testing Focus Areas &lt;a href="#testing-focus-areas" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="business-logic-testing"&gt;Business Logic Testing &lt;a href="#business-logic-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Calculation accuracy for all domain numerical operations&lt;/li&gt;
&lt;li&gt;Workflow state transitions and business rules&lt;/li&gt;
&lt;li&gt;Role-based access controls per industry requirements&lt;/li&gt;
&lt;li&gt;Domain-specific data validation rules&lt;/li&gt;
&lt;li&gt;Integration testing between domain modules&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="compliance-and-regulatory-testing"&gt;Compliance and Regulatory Testing &lt;a href="#compliance-and-regulatory-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Verify compliance with applicable standards&lt;/li&gt;
&lt;li&gt;Test audit trail completeness and accuracy&lt;/li&gt;
&lt;li&gt;Validate data retention, privacy, and consent&lt;/li&gt;
&lt;li&gt;Test regulatory reporting accuracy&lt;/li&gt;
&lt;li&gt;Verify access controls meet requirements&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="data-integrity-testing"&gt;Data Integrity Testing &lt;a href="#data-integrity-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Validate data accuracy across system boundaries&lt;/li&gt;
&lt;li&gt;Test transformation and calculation rules with edge cases&lt;/li&gt;
&lt;li&gt;Verify referential integrity in cross-system flows&lt;/li&gt;
&lt;li&gt;Test migration and synchronization processes&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph TD
 A[Domain Requirements] --&gt; B[Business Logic]
 A --&gt; C[Compliance]
 A --&gt; D[Integration]
 B --&gt; E[Test Execution]
 C --&gt; E
 D --&gt; E
 E --&gt; F[Domain Validation]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h2 id="advanced-testing-techniques"&gt;Advanced Testing Techniques &lt;a href="#advanced-testing-techniques" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="domain-specific-integration-testing"&gt;Domain-Specific Integration Testing &lt;a href="#domain-specific-integration-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;External system APIs and data exchanges&lt;/li&gt;
&lt;li&gt;Third-party service integrations and SLAs&lt;/li&gt;
&lt;li&gt;Data synchronization with conflict resolution&lt;/li&gt;
&lt;li&gt;Error handling for integration failures&lt;/li&gt;
&lt;li&gt;Performance under realistic loads&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="performance-and-scale-testing"&gt;Performance and Scale Testing &lt;a href="#performance-and-scale-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Transaction throughput under peak load&lt;/li&gt;
&lt;li&gt;Response time SLAs for critical operations&lt;/li&gt;
&lt;li&gt;Batch processing capacity at production scale&lt;/li&gt;
&lt;li&gt;Concurrent user capacity during peak usage&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="security-testing"&gt;Security Testing &lt;a href="#security-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Authentication and authorization per domain requirements&lt;/li&gt;
&lt;li&gt;Encryption of sensitive domain data&lt;/li&gt;
&lt;li&gt;Audit logging for compliance&lt;/li&gt;
&lt;li&gt;Penetration testing for domain attack vectors&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hands-on-exercise"&gt;Hands-On Exercise &lt;a href="#hands-on-exercise" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Design a test plan for a тестирование маркетплейсов application:&lt;/p&gt;</description></item><item><title>Тестирование недвижимости и PropTech</title><link>https://yrkan.com/ru/course/module-11-domain-testing/real-estate-proptech-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/real-estate-proptech-testing/</guid><description>&lt;h2 id="тестирование-недвижимости-и-proptech"&gt;Тестирование недвижимости и PropTech &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bd%d0%b5%d0%b4%d0%b2%d0%b8%d0%b6%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8-%d0%b8-proptech" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Домен тестирование недвижимости и proptech создаёт уникальные вызовы для QA. Требует знаний в области точность листингов, интеграция MLS/IDX, виртуальные туры, ипотечные калькуляторы и геолокационный поиск.&lt;/p&gt;
&lt;h3 id="key-domain-concepts"&gt;Key Domain Concepts &lt;a href="#key-domain-concepts" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Core business processes and their dependencies&lt;/li&gt;
&lt;li&gt;Regulatory and compliance frameworks for this industry&lt;/li&gt;
&lt;li&gt;Integration points with external systems&lt;/li&gt;
&lt;li&gt;Domain-specific data integrity requirements&lt;/li&gt;
&lt;li&gt;Performance expectations and SLAs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="testing-focus-areas"&gt;Testing Focus Areas &lt;a href="#testing-focus-areas" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="business-logic-testing"&gt;Business Logic Testing &lt;a href="#business-logic-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Calculation accuracy for all domain numerical operations&lt;/li&gt;
&lt;li&gt;Workflow state transitions and business rules&lt;/li&gt;
&lt;li&gt;Role-based access controls per industry requirements&lt;/li&gt;
&lt;li&gt;Domain-specific data validation rules&lt;/li&gt;
&lt;li&gt;Integration testing between domain modules&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="compliance-and-regulatory-testing"&gt;Compliance and Regulatory Testing &lt;a href="#compliance-and-regulatory-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Verify compliance with applicable standards&lt;/li&gt;
&lt;li&gt;Test audit trail completeness and accuracy&lt;/li&gt;
&lt;li&gt;Validate data retention, privacy, and consent&lt;/li&gt;
&lt;li&gt;Test regulatory reporting accuracy&lt;/li&gt;
&lt;li&gt;Verify access controls meet requirements&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="data-integrity-testing"&gt;Data Integrity Testing &lt;a href="#data-integrity-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Validate data accuracy across system boundaries&lt;/li&gt;
&lt;li&gt;Test transformation and calculation rules with edge cases&lt;/li&gt;
&lt;li&gt;Verify referential integrity in cross-system flows&lt;/li&gt;
&lt;li&gt;Test migration and synchronization processes&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph TD
 A[Domain Requirements] --&gt; B[Business Logic]
 A --&gt; C[Compliance]
 A --&gt; D[Integration]
 B --&gt; E[Test Execution]
 C --&gt; E
 D --&gt; E
 E --&gt; F[Domain Validation]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h2 id="advanced-testing-techniques"&gt;Advanced Testing Techniques &lt;a href="#advanced-testing-techniques" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="domain-specific-integration-testing"&gt;Domain-Specific Integration Testing &lt;a href="#domain-specific-integration-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;External system APIs and data exchanges&lt;/li&gt;
&lt;li&gt;Third-party service integrations and SLAs&lt;/li&gt;
&lt;li&gt;Data synchronization with conflict resolution&lt;/li&gt;
&lt;li&gt;Error handling for integration failures&lt;/li&gt;
&lt;li&gt;Performance under realistic loads&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="performance-and-scale-testing"&gt;Performance and Scale Testing &lt;a href="#performance-and-scale-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Transaction throughput under peak load&lt;/li&gt;
&lt;li&gt;Response time SLAs for critical operations&lt;/li&gt;
&lt;li&gt;Batch processing capacity at production scale&lt;/li&gt;
&lt;li&gt;Concurrent user capacity during peak usage&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="security-testing"&gt;Security Testing &lt;a href="#security-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Authentication and authorization per domain requirements&lt;/li&gt;
&lt;li&gt;Encryption of sensitive domain data&lt;/li&gt;
&lt;li&gt;Audit logging for compliance&lt;/li&gt;
&lt;li&gt;Penetration testing for domain attack vectors&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hands-on-exercise"&gt;Hands-On Exercise &lt;a href="#hands-on-exercise" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Design a test plan for a тестирование недвижимости и proptech application:&lt;/p&gt;</description></item><item><title>Тестирование социальных сетей</title><link>https://yrkan.com/ru/course/module-11-domain-testing/social-media-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/social-media-testing/</guid><description>&lt;h2 id="тестирование-социальных-сетей"&gt;Тестирование социальных сетей &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81%d0%be%d1%86%d0%b8%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d1%85-%d1%81%d0%b5%d1%82%d0%b5%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Домен тестирование социальных сетей создаёт уникальные вызовы для QA. Требует знаний в области алгоритмы ленты, модерация контента, real-time сообщения, уведомления и настройки приватности.&lt;/p&gt;
&lt;h3 id="key-domain-concepts"&gt;Key Domain Concepts &lt;a href="#key-domain-concepts" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Core business processes and their dependencies&lt;/li&gt;
&lt;li&gt;Regulatory and compliance frameworks for this industry&lt;/li&gt;
&lt;li&gt;Integration points with external systems&lt;/li&gt;
&lt;li&gt;Domain-specific data integrity requirements&lt;/li&gt;
&lt;li&gt;Performance expectations and SLAs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="testing-focus-areas"&gt;Testing Focus Areas &lt;a href="#testing-focus-areas" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="business-logic-testing"&gt;Business Logic Testing &lt;a href="#business-logic-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Calculation accuracy for all domain numerical operations&lt;/li&gt;
&lt;li&gt;Workflow state transitions and business rules&lt;/li&gt;
&lt;li&gt;Role-based access controls per industry requirements&lt;/li&gt;
&lt;li&gt;Domain-specific data validation rules&lt;/li&gt;
&lt;li&gt;Integration testing between domain modules&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="compliance-and-regulatory-testing"&gt;Compliance and Regulatory Testing &lt;a href="#compliance-and-regulatory-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Verify compliance with applicable standards&lt;/li&gt;
&lt;li&gt;Test audit trail completeness and accuracy&lt;/li&gt;
&lt;li&gt;Validate data retention, privacy, and consent&lt;/li&gt;
&lt;li&gt;Test regulatory reporting accuracy&lt;/li&gt;
&lt;li&gt;Verify access controls meet requirements&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="data-integrity-testing"&gt;Data Integrity Testing &lt;a href="#data-integrity-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Validate data accuracy across system boundaries&lt;/li&gt;
&lt;li&gt;Test transformation and calculation rules with edge cases&lt;/li&gt;
&lt;li&gt;Verify referential integrity in cross-system flows&lt;/li&gt;
&lt;li&gt;Test migration and synchronization processes&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph TD
 A[Domain Requirements] --&gt; B[Business Logic]
 A --&gt; C[Compliance]
 A --&gt; D[Integration]
 B --&gt; E[Test Execution]
 C --&gt; E
 D --&gt; E
 E --&gt; F[Domain Validation]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h2 id="advanced-testing-techniques"&gt;Advanced Testing Techniques &lt;a href="#advanced-testing-techniques" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="domain-specific-integration-testing"&gt;Domain-Specific Integration Testing &lt;a href="#domain-specific-integration-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;External system APIs and data exchanges&lt;/li&gt;
&lt;li&gt;Third-party service integrations and SLAs&lt;/li&gt;
&lt;li&gt;Data synchronization with conflict resolution&lt;/li&gt;
&lt;li&gt;Error handling for integration failures&lt;/li&gt;
&lt;li&gt;Performance under realistic loads&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="performance-and-scale-testing"&gt;Performance and Scale Testing &lt;a href="#performance-and-scale-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Transaction throughput under peak load&lt;/li&gt;
&lt;li&gt;Response time SLAs for critical operations&lt;/li&gt;
&lt;li&gt;Batch processing capacity at production scale&lt;/li&gt;
&lt;li&gt;Concurrent user capacity during peak usage&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="security-testing"&gt;Security Testing &lt;a href="#security-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Authentication and authorization per domain requirements&lt;/li&gt;
&lt;li&gt;Encryption of sensitive domain data&lt;/li&gt;
&lt;li&gt;Audit logging for compliance&lt;/li&gt;
&lt;li&gt;Penetration testing for domain attack vectors&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hands-on-exercise"&gt;Hands-On Exercise &lt;a href="#hands-on-exercise" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Design a test plan for a тестирование социальных сетей application:&lt;/p&gt;</description></item><item><title>Тестирование страховых систем</title><link>https://yrkan.com/ru/course/module-11-domain-testing/insurance-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/insurance-testing/</guid><description>&lt;h2 id="обзор-страхового-домена"&gt;Обзор страхового домена &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d1%81%d1%82%d1%80%d0%b0%d1%85%d0%be%d0%b2%d0%be%d0%b3%d0%be-%d0%b4%d0%be%d0%bc%d0%b5%d0%bd%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Страховая отрасль построена на сложных бизнес-процессах, управляющих рисками через полисные контракты. Страховые системы охватывают всё — от начальных котировок до выпуска полисов, текущего управления, обработки претензий и продления. Понимание этих процессов необходимо для эффективного тестирования.&lt;/p&gt;
&lt;h3 id="типы-страховых-систем"&gt;Типы страховых систем &lt;a href="#%d1%82%d0%b8%d0%bf%d1%8b-%d1%81%d1%82%d1%80%d0%b0%d1%85%d0%be%d0%b2%d1%8b%d1%85-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Системы администрирования полисов (PAS):&lt;/strong&gt; Управляют полным жизненным циклом полиса от котировки до отмены&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Системы управления претензиями:&lt;/strong&gt; Обрабатывают заявление, расследование, урегулирование и выплату претензий&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Тарификационные движки:&lt;/strong&gt; Рассчитывают премии на основе факторов риска и правил андеррайтинга&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Биллинговые системы:&lt;/strong&gt; Управляют сбором премий, рассрочкой платежей и процессингом&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Порталы агентов/брокеров:&lt;/strong&gt; Платформы самообслуживания для каналов дистрибуции&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ключевая-терминология-домена"&gt;Ключевая терминология домена &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d0%b0%d1%8f-%d1%82%d0%b5%d1%80%d0%bc%d0%b8%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d1%8f-%d0%b4%d0%be%d0%bc%d0%b5%d0%bd%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Полис (Policy):&lt;/strong&gt; Контракт между страховщиком и застрахованным, определяющий условия покрытия и премию&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Премия (Premium):&lt;/strong&gt; Цена, уплачиваемая за страховое покрытие&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Андеррайтинг (Underwriting):&lt;/strong&gt; Процесс оценки рисков для определения страхуемости и цены&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Претензия (Claim):&lt;/strong&gt; Формальный запрос на выплату по условиям полиса&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Дополнение (Endorsement):&lt;/strong&gt; Модификация существующего полиса (добавление/удаление покрытия)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Франшиза (Deductible):&lt;/strong&gt; Сумма, которую оплачивает застрахованный до начала действия покрытия&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Актуарный:&lt;/strong&gt; Статистический и математический анализ рисков для тарификации страхования&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="фокусные-области-тестирования-страхования"&gt;Фокусные области тестирования страхования &lt;a href="#%d1%84%d0%be%d0%ba%d1%83%d1%81%d0%bd%d1%8b%d0%b5-%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d1%81%d1%82%d1%80%d0%b0%d1%85%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="тестирование-жизненного-цикла-полиса"&gt;Тестирование жизненного цикла полиса &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b6%d0%b8%d0%b7%d0%bd%d0%b5%d0%bd%d0%bd%d0%be%d0%b3%d0%be-%d1%86%d0%b8%d0%ba%d0%bb%d0%b0-%d0%bf%d0%be%d0%bb%d0%b8%d1%81%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Жизненный цикл полиса — основа страховых систем. Каждый переход состояния должен быть протестирован:&lt;/p&gt;</description></item><item><title>Тестирование стриминга и медиа</title><link>https://yrkan.com/ru/course/module-11-domain-testing/streaming-media-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/streaming-media-testing/</guid><description>&lt;h2 id="архитектура-стриминга"&gt;Архитектура стриминга &lt;a href="#%d0%b0%d1%80%d1%85%d0%b8%d1%82%d0%b5%d0%ba%d1%82%d1%83%d1%80%d0%b0-%d1%81%d1%82%d1%80%d0%b8%d0%bc%d0%b8%d0%bd%d0%b3%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Стриминговые платформы доставляют контент через конвейер, преобразующий исходное видео в несколько уровней качества, защищающий его DRM, распределяющий через CDN и адаптирующий качество в реальном времени.&lt;/p&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph LR
 A[Исходное видео] --&gt; B[Транскодирование]
 B --&gt; C[Упаковка HLS/DASH]
 C --&gt; D[DRM-шифрование]
 D --&gt; E[Edge-серверы CDN]
 E --&gt; F[ABR-алгоритм плеера]
 F --&gt; G[Экран]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h3 id="ключевые-компоненты"&gt;Ключевые компоненты &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bc%d0%bf%d0%be%d0%bd%d0%b5%d0%bd%d1%82%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Транскодирование:&lt;/strong&gt; Конвертация исходного видео в множество комбинаций битрейт/разрешение&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Упаковка:&lt;/strong&gt; Сегментация видео на чанки (2-10 секунд) в формате HLS или DASH&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DRM:&lt;/strong&gt; Шифрование контента Widevine, FairPlay или PlayReady&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CDN:&lt;/strong&gt; Распределение контента на edge-серверы ближе к зрителям&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ABR:&lt;/strong&gt; Алгоритм плеера, выбирающий качество по доступной пропускной способности&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="тестирование-качества"&gt;Тестирование качества &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%ba%d0%b0%d1%87%d0%b5%d1%81%d1%82%d0%b2%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="метрики-качества-видео"&gt;Метрики качества видео &lt;a href="#%d0%bc%d0%b5%d1%82%d1%80%d0%b8%d0%ba%d0%b8-%d0%ba%d0%b0%d1%87%d0%b5%d1%81%d1%82%d0%b2%d0%b0-%d0%b2%d0%b8%d0%b4%d0%b5%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Метрика&lt;/th&gt;
 &lt;th&gt;Что измеряет&lt;/th&gt;
 &lt;th&gt;Допустимый диапазон&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;VMAF&lt;/td&gt;
 &lt;td&gt;Перцептуальное качество (0-100)&lt;/td&gt;
 &lt;td&gt;&amp;gt; 80 для стриминга&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Время старта&lt;/td&gt;
 &lt;td&gt;Время от нажатия play до первого кадра&lt;/td&gt;
 &lt;td&gt;&amp;lt; 2 секунд&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Коэффициент ребуферинга&lt;/td&gt;
 &lt;td&gt;Время буферизации vs. воспроизведения&lt;/td&gt;
 &lt;td&gt;&amp;lt; 0.5%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="тестирование-abr"&gt;Тестирование ABR &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-abr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Снижение пропускной способности:&lt;/strong&gt; Плавное понижение качества без буферизации&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Увеличение пропускной способности:&lt;/strong&gt; Повышение качества за секунды&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Флуктуации:&lt;/strong&gt; Избегать быстрых осцилляций между уровнями&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Начальный выбор:&lt;/strong&gt; Старт с подходящего качества&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="тестирование-аудио"&gt;Тестирование аудио &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b0%d1%83%d0%b4%d0%b8%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Синхронизация аудио-видео (lip sync) в пределах 40мс&lt;/li&gt;
&lt;li&gt;Переключение языковых дорожек без прерывания&lt;/li&gt;
&lt;li&gt;Аудио 5.1/Atmos на поддерживаемых устройствах&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="контент-и-комплаенс"&gt;Контент и комплаенс &lt;a href="#%d0%ba%d0%be%d0%bd%d1%82%d0%b5%d0%bd%d1%82-%d0%b8-%d0%ba%d0%be%d0%bc%d0%bf%d0%bb%d0%b0%d0%b5%d0%bd%d1%81" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="тестирование-drm"&gt;Тестирование DRM &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-drm" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Уровни Widevine L1/L3 влияют на максимальное разрешение&lt;/li&gt;
&lt;li&gt;FairPlay требует устройства Apple или Safari&lt;/li&gt;
&lt;li&gt;Офлайн-загрузка с истечением DRM-лицензии&lt;/li&gt;
&lt;li&gt;Enforcement HDCP для внешних дисплеев&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="лицензирование-контента"&gt;Лицензирование контента &lt;a href="#%d0%bb%d0%b8%d1%86%d0%b5%d0%bd%d0%b7%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%ba%d0%be%d0%bd%d1%82%d0%b5%d0%bd%d1%82%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Гео-ограничения: контент доступен только в лицензированных территориях&lt;/li&gt;
&lt;li&gt;Окна: контент доступен только в лицензированные периоды&lt;/li&gt;
&lt;li&gt;Лимиты одновременных потоков на аккаунт&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="продвинутое-тестирование-стриминга"&gt;Продвинутое тестирование стриминга &lt;a href="#%d0%bf%d1%80%d0%be%d0%b4%d0%b2%d0%b8%d0%bd%d1%83%d1%82%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81%d1%82%d1%80%d0%b8%d0%bc%d0%b8%d0%bd%d0%b3%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="live-стриминг-с-низкой-задержкой"&gt;Live-стриминг с низкой задержкой &lt;a href="#live-%d1%81%d1%82%d1%80%d0%b8%d0%bc%d0%b8%d0%bd%d0%b3-%d1%81-%d0%bd%d0%b8%d0%b7%d0%ba%d0%be%d0%b9-%d0%b7%d0%b0%d0%b4%d0%b5%d1%80%d0%b6%d0%ba%d0%be%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Измерение задержки glass-to-glass&lt;/li&gt;
&lt;li&gt;Цель: менее 5 секунд для интерактивных трансляций&lt;/li&gt;
&lt;li&gt;Функциональность DVR (перемотка во время live)&lt;/li&gt;
&lt;li&gt;Failover между резервными серверами&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="серверная-вставка-рекламы-ssai"&gt;Серверная вставка рекламы (SSAI) &lt;a href="#%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%bd%d0%b0%d1%8f-%d0%b2%d1%81%d1%82%d0%b0%d0%b2%d0%ba%d0%b0-%d1%80%d0%b5%d0%ba%d0%bb%d0%b0%d0%bc%d1%8b-ssai" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Качество склейки (без визуальных артефактов на границах рекламы)&lt;/li&gt;
&lt;li&gt;Точность tracking-биконов&lt;/li&gt;
&lt;li&gt;Корректный выбор рекламы по профилю зрителя&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="multi-cdn-failover"&gt;Multi-CDN failover &lt;a href="#multi-cdn-failover" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Автоматическое переключение при проблемах основного CDN&lt;/li&gt;
&lt;li&gt;Без видимого прерывания для зрителя&lt;/li&gt;
&lt;li&gt;Сохранение качества при переключении CDN&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="практическое-задание"&gt;Практическое задание &lt;a href="#%d0%bf%d1%80%d0%b0%d0%ba%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%b5-%d0%b7%d0%b0%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Протестируйте стриминговый плеер:&lt;/p&gt;</description></item><item><title>Тестирование телекоммуникационных систем</title><link>https://yrkan.com/ru/course/module-11-domain-testing/telecom-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/telecom-testing/</guid><description>&lt;h2 id="обзор-телекоммуникационного-домена"&gt;Обзор телекоммуникационного домена &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d1%82%d0%b5%d0%bb%d0%b5%d0%ba%d0%be%d0%bc%d0%bc%d1%83%d0%bd%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d0%be%d0%bd%d0%bd%d0%be%d0%b3%d0%be-%d0%b4%d0%be%d0%bc%d0%b5%d0%bd%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Телекоммуникации — один из крупнейших и сложнейших доменов ПО. Телеком-системы обрабатывают миллиарды транзакций ежедневно, управляют голосовым и информационным трафиком в реальном времени и должны обеспечивать почти идеальный аптайм.&lt;/p&gt;
&lt;h3 id="архитектура-телеком-систем"&gt;Архитектура телеком-систем &lt;a href="#%d0%b0%d1%80%d1%85%d0%b8%d1%82%d0%b5%d0%ba%d1%82%d1%83%d1%80%d0%b0-%d1%82%d0%b5%d0%bb%d0%b5%d0%ba%d0%be%d0%bc-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Телеком-системы делятся на две категории:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Business Support Systems (BSS):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Биллинг:&lt;/strong&gt; Тарификация, списание, выставление счетов, сбор платежей&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CRM:&lt;/strong&gt; Управление клиентами, сервисные запросы, претензии&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Управление заказами:&lt;/strong&gt; Активация, изменение, отключение услуг&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Revenue Assurance:&lt;/strong&gt; Выявление утечек доходов и ошибок биллинга&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Operations Support Systems (OSS):&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Тестирование хранилищ данных и BI</title><link>https://yrkan.com/ru/course/module-11-domain-testing/data-warehouse-bi-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/data-warehouse-bi-testing/</guid><description>&lt;h2 id="тестирование-хранилищ-данных-и-bi"&gt;Тестирование хранилищ данных и BI &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%85%d1%80%d0%b0%d0%bd%d0%b8%d0%bb%d0%b8%d1%89-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85-%d0%b8-bi" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Домен тестирование хранилищ данных и bi создаёт уникальные вызовы для QA. Требует знаний в области тестирование ETL-пайплайнов, валидация качества данных, верификация размерных моделей, точность отчётов и дашбордов.&lt;/p&gt;
&lt;h3 id="key-domain-concepts"&gt;Key Domain Concepts &lt;a href="#key-domain-concepts" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Core business processes and their dependencies&lt;/li&gt;
&lt;li&gt;Regulatory and compliance frameworks for this industry&lt;/li&gt;
&lt;li&gt;Integration points with external systems&lt;/li&gt;
&lt;li&gt;Domain-specific data integrity requirements&lt;/li&gt;
&lt;li&gt;Performance expectations and SLAs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="testing-focus-areas"&gt;Testing Focus Areas &lt;a href="#testing-focus-areas" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="business-logic-testing"&gt;Business Logic Testing &lt;a href="#business-logic-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Calculation accuracy for all domain numerical operations&lt;/li&gt;
&lt;li&gt;Workflow state transitions and business rules&lt;/li&gt;
&lt;li&gt;Role-based access controls per industry requirements&lt;/li&gt;
&lt;li&gt;Domain-specific data validation rules&lt;/li&gt;
&lt;li&gt;Integration testing between domain modules&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="compliance-and-regulatory-testing"&gt;Compliance and Regulatory Testing &lt;a href="#compliance-and-regulatory-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Verify compliance with applicable standards&lt;/li&gt;
&lt;li&gt;Test audit trail completeness and accuracy&lt;/li&gt;
&lt;li&gt;Validate data retention, privacy, and consent&lt;/li&gt;
&lt;li&gt;Test regulatory reporting accuracy&lt;/li&gt;
&lt;li&gt;Verify access controls meet requirements&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="data-integrity-testing"&gt;Data Integrity Testing &lt;a href="#data-integrity-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Validate data accuracy across system boundaries&lt;/li&gt;
&lt;li&gt;Test transformation and calculation rules with edge cases&lt;/li&gt;
&lt;li&gt;Verify referential integrity in cross-system flows&lt;/li&gt;
&lt;li&gt;Test migration and synchronization processes&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph TD
 A[Domain Requirements] --&gt; B[Business Logic]
 A --&gt; C[Compliance]
 A --&gt; D[Integration]
 B --&gt; E[Test Execution]
 C --&gt; E
 D --&gt; E
 E --&gt; F[Domain Validation]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h2 id="advanced-testing-techniques"&gt;Advanced Testing Techniques &lt;a href="#advanced-testing-techniques" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="domain-specific-integration-testing"&gt;Domain-Specific Integration Testing &lt;a href="#domain-specific-integration-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;External system APIs and data exchanges&lt;/li&gt;
&lt;li&gt;Third-party service integrations and SLAs&lt;/li&gt;
&lt;li&gt;Data synchronization with conflict resolution&lt;/li&gt;
&lt;li&gt;Error handling for integration failures&lt;/li&gt;
&lt;li&gt;Performance under realistic loads&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="performance-and-scale-testing"&gt;Performance and Scale Testing &lt;a href="#performance-and-scale-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Transaction throughput under peak load&lt;/li&gt;
&lt;li&gt;Response time SLAs for critical operations&lt;/li&gt;
&lt;li&gt;Batch processing capacity at production scale&lt;/li&gt;
&lt;li&gt;Concurrent user capacity during peak usage&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="security-testing"&gt;Security Testing &lt;a href="#security-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Authentication and authorization per domain requirements&lt;/li&gt;
&lt;li&gt;Encryption of sensitive domain data&lt;/li&gt;
&lt;li&gt;Audit logging for compliance&lt;/li&gt;
&lt;li&gt;Penetration testing for domain attack vectors&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hands-on-exercise"&gt;Hands-On Exercise &lt;a href="#hands-on-exercise" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Design a test plan for a тестирование хранилищ данных и bi application:&lt;/p&gt;</description></item><item><title>Тестирование цепочек поставок и логистики</title><link>https://yrkan.com/ru/course/module-11-domain-testing/supply-chain-logistics-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/supply-chain-logistics-testing/</guid><description>&lt;h2 id="тестирование-цепочек-поставок-и-логистики"&gt;Тестирование цепочек поставок и логистики &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%86%d0%b5%d0%bf%d0%be%d1%87%d0%b5%d0%ba-%d0%bf%d0%be%d1%81%d1%82%d0%b0%d0%b2%d0%be%d0%ba-%d0%b8-%d0%bb%d0%be%d0%b3%d0%b8%d1%81%d1%82%d0%b8%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Домен тестирование цепочек поставок и логистики создаёт уникальные вызовы для QA. Требует знаний в области WMS, TMS, оптимизация маршрутов, сканирование штрихкодов/RFID, отслеживание и прогнозирование спроса.&lt;/p&gt;
&lt;h3 id="key-domain-concepts"&gt;Key Domain Concepts &lt;a href="#key-domain-concepts" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Core business processes and their dependencies&lt;/li&gt;
&lt;li&gt;Regulatory and compliance frameworks for this industry&lt;/li&gt;
&lt;li&gt;Integration points with external systems&lt;/li&gt;
&lt;li&gt;Domain-specific data integrity requirements&lt;/li&gt;
&lt;li&gt;Performance expectations and SLAs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="testing-focus-areas"&gt;Testing Focus Areas &lt;a href="#testing-focus-areas" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="business-logic-testing"&gt;Business Logic Testing &lt;a href="#business-logic-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Calculation accuracy for all domain numerical operations&lt;/li&gt;
&lt;li&gt;Workflow state transitions and business rules&lt;/li&gt;
&lt;li&gt;Role-based access controls per industry requirements&lt;/li&gt;
&lt;li&gt;Domain-specific data validation rules&lt;/li&gt;
&lt;li&gt;Integration testing between domain modules&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="compliance-and-regulatory-testing"&gt;Compliance and Regulatory Testing &lt;a href="#compliance-and-regulatory-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Verify compliance with applicable standards&lt;/li&gt;
&lt;li&gt;Test audit trail completeness and accuracy&lt;/li&gt;
&lt;li&gt;Validate data retention, privacy, and consent&lt;/li&gt;
&lt;li&gt;Test regulatory reporting accuracy&lt;/li&gt;
&lt;li&gt;Verify access controls meet requirements&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="data-integrity-testing"&gt;Data Integrity Testing &lt;a href="#data-integrity-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Validate data accuracy across system boundaries&lt;/li&gt;
&lt;li&gt;Test transformation and calculation rules with edge cases&lt;/li&gt;
&lt;li&gt;Verify referential integrity in cross-system flows&lt;/li&gt;
&lt;li&gt;Test migration and synchronization processes&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph TD
 A[Domain Requirements] --&gt; B[Business Logic]
 A --&gt; C[Compliance]
 A --&gt; D[Integration]
 B --&gt; E[Test Execution]
 C --&gt; E
 D --&gt; E
 E --&gt; F[Domain Validation]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h2 id="advanced-testing-techniques"&gt;Advanced Testing Techniques &lt;a href="#advanced-testing-techniques" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="domain-specific-integration-testing"&gt;Domain-Specific Integration Testing &lt;a href="#domain-specific-integration-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;External system APIs and data exchanges&lt;/li&gt;
&lt;li&gt;Third-party service integrations and SLAs&lt;/li&gt;
&lt;li&gt;Data synchronization with conflict resolution&lt;/li&gt;
&lt;li&gt;Error handling for integration failures&lt;/li&gt;
&lt;li&gt;Performance under realistic loads&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="performance-and-scale-testing"&gt;Performance and Scale Testing &lt;a href="#performance-and-scale-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Transaction throughput under peak load&lt;/li&gt;
&lt;li&gt;Response time SLAs for critical operations&lt;/li&gt;
&lt;li&gt;Batch processing capacity at production scale&lt;/li&gt;
&lt;li&gt;Concurrent user capacity during peak usage&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="security-testing"&gt;Security Testing &lt;a href="#security-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Authentication and authorization per domain requirements&lt;/li&gt;
&lt;li&gt;Encryption of sensitive domain data&lt;/li&gt;
&lt;li&gt;Audit logging for compliance&lt;/li&gt;
&lt;li&gt;Penetration testing for domain attack vectors&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hands-on-exercise"&gt;Hands-On Exercise &lt;a href="#hands-on-exercise" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Design a test plan for a тестирование цепочек поставок и логистики application:&lt;/p&gt;</description></item><item><title>Тестирование электронной коммерции</title><link>https://yrkan.com/ru/course/module-11-domain-testing/ecommerce-testing/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-11-domain-testing/ecommerce-testing/</guid><description>&lt;h2 id="архитектура-электронной-коммерции"&gt;Архитектура электронной коммерции &lt;a href="#%d0%b0%d1%80%d1%85%d0%b8%d1%82%d0%b5%d0%ba%d1%82%d1%83%d1%80%d0%b0-%d1%8d%d0%bb%d0%b5%d0%ba%d1%82%d1%80%d0%be%d0%bd%d0%bd%d0%be%d0%b9-%d0%ba%d0%be%d0%bc%d0%bc%d0%b5%d1%80%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Платформы e-commerce — одни из самых сложных веб-приложений, объединяющие управление каталогом, инвентарь в реальном времени, процессинг платежей и логистику. Каждый баг в процессе покупки напрямую переводится в потерянную выручку.&lt;/p&gt;
&lt;h3 id="ключевые-компоненты"&gt;Ключевые компоненты &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bc%d0%bf%d0%be%d0%bd%d0%b5%d0%bd%d1%82%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Каталог товаров:&lt;/strong&gt; Данные товаров, категории, атрибуты, изображения, цены и варианты (размер, цвет)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Поисковый движок:&lt;/strong&gt; Поиск с ранжированием, фильтрами, фасетной навигацией и автодополнением&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Корзина:&lt;/strong&gt; Временное хранение выбранных товаров с расчётом цены и скидок&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Оформление заказа:&lt;/strong&gt; Многошаговый процесс: адрес, способ доставки, оплата, подтверждение&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Процессинг платежей:&lt;/strong&gt; Интеграция с платёжными шлюзами (Stripe, PayPal, Adyen)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Управление заказами:&lt;/strong&gt; Жизненный цикл от размещения до фулфилмента, отправки и возвратов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Управление инвентарём:&lt;/strong&gt; Уровни запасов, распределение по складам, обработка предзаказов&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="критические-тестовые-сценарии"&gt;Критические тестовые сценарии &lt;a href="#%d0%ba%d1%80%d0%b8%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2%d1%8b%d0%b5-%d1%81%d1%86%d0%b5%d0%bd%d0%b0%d1%80%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="операции-с-корзиной"&gt;Операции с корзиной &lt;a href="#%d0%be%d0%bf%d0%b5%d1%80%d0%b0%d1%86%d0%b8%d0%b8-%d1%81-%d0%ba%d0%be%d1%80%d0%b7%d0%b8%d0%bd%d0%be%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Сценарий&lt;/th&gt;
 &lt;th&gt;Ожидаемое поведение&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Добавить товар&lt;/td&gt;
 &lt;td&gt;Корзина обновляет счётчик, показывает товар, считает подитог&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Обновить количество&lt;/td&gt;
 &lt;td&gt;Цена пересчитывается, проверяется наличие на складе&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Удалить товар&lt;/td&gt;
 &lt;td&gt;Товар удалён, итоги пересчитаны, пустая корзина обработана&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Слияние при входе&lt;/td&gt;
 &lt;td&gt;Гостевая корзина объединяется с сохранённой, конфликты разрешены&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Истечение корзины&lt;/td&gt;
 &lt;td&gt;Товары возвращаются в инвентарь по тайм-ауту&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Изменение цены&lt;/td&gt;
 &lt;td&gt;Клиент уведомлён, если цена изменилась после добавления&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="процесс-оформления"&gt;Процесс оформления &lt;a href="#%d0%bf%d1%80%d0%be%d1%86%d0%b5%d1%81%d1%81-%d0%be%d1%84%d0%be%d1%80%d0%bc%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph LR
 A[Просмотр] --&gt; B[Поиск]
 B --&gt; C[Страница товара]
 C --&gt; D[В корзину]
 D --&gt; E[Обзор корзины]
 E --&gt; F[Оформление]
 F --&gt; G[Оплата]
 G --&gt; H[Подтверждение]
 H --&gt; I[Фулфилмент]
 I --&gt; J[Доставка]
 J --&gt; K[Возвраты]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;p&gt;Тестировать полный поток для:&lt;/p&gt;</description></item><item><title>Управление релизами для QA</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/release-management-for-qa/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/release-management-for-qa/</guid><description>&lt;h2 id="роль-qa-в-управлении-релизами"&gt;Роль QA в управлении релизами &lt;a href="#%d1%80%d0%be%d0%bb%d1%8c-qa-%d0%b2-%d1%83%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b8-%d1%80%d0%b5%d0%bb%d0%b8%d0%b7%d0%b0%d0%bc%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Управление релизами — процесс планирования, расписания и контроля выпуска ПО. QA централен — не как блокировщик, а как советник по качеству, предоставляющий рекомендации на основе данных.&lt;/p&gt;
&lt;h2 id="чеклист-релиза"&gt;Чеклист релиза &lt;a href="#%d1%87%d0%b5%d0%ba%d0%bb%d0%b8%d1%81%d1%82-%d1%80%d0%b5%d0%bb%d0%b8%d0%b7%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="до-релиза"&gt;До релиза &lt;a href="#%d0%b4%d0%be-%d1%80%d0%b5%d0%bb%d0%b8%d0%b7%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Все автоматические тесты проходят&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Покрытие кода выше минимального порога&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Нет открытых критических багов&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Тесты производительности без регрессии&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Сканирование безопасности без критических уязвимостей&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Миграции БД протестированы и обратимы&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; План отката задокументирован и протестирован&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Дежурный инженер определён&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="во-время-релиза"&gt;Во время релиза &lt;a href="#%d0%b2%d0%be-%d0%b2%d1%80%d0%b5%d0%bc%d1%8f-%d1%80%d0%b5%d0%bb%d0%b8%d0%b7%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Health checks проходят на всех инстансах&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Smoke-тесты выполнены против продакшена&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Ключевые метрики в нормальных диапазонах&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="после-релиза"&gt;После релиза &lt;a href="#%d0%bf%d0%be%d1%81%d0%bb%d0%b5-%d1%80%d0%b5%d0%bb%d0%b8%d0%b7%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Полная suite smoke-тестов пройдена&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Бизнес-метрики в ожидаемых диапазонах&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Синтетический мониторинг полностью зелёный&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; Релиз отмечен как успешный или инициирован откат&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="критерии-gono-go"&gt;Критерии Go/No-Go &lt;a href="#%d0%ba%d1%80%d0%b8%d1%82%d0%b5%d1%80%d0%b8%d0%b8-gono-go" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Метрика&lt;/th&gt;
 &lt;th&gt;Порог Go&lt;/th&gt;
 &lt;th&gt;Порог No-Go&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Процент прохождения тестов&lt;/td&gt;
 &lt;td&gt;≥ 99%&lt;/td&gt;
 &lt;td&gt;&amp;lt; 95%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Критические баги&lt;/td&gt;
 &lt;td&gt;0&lt;/td&gt;
 &lt;td&gt;&amp;gt; 0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Покрытие кода&lt;/td&gt;
 &lt;td&gt;≥ 80%&lt;/td&gt;
 &lt;td&gt;&amp;lt; 70%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Регрессия производительности&lt;/td&gt;
 &lt;td&gt;&amp;lt; 5%&lt;/td&gt;
 &lt;td&gt;&amp;gt; 15%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Критические уязвимости&lt;/td&gt;
 &lt;td&gt;0&lt;/td&gt;
 &lt;td&gt;&amp;gt; 0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="планы-отката"&gt;Планы отката &lt;a href="#%d0%bf%d0%bb%d0%b0%d0%bd%d1%8b-%d0%be%d1%82%d0%ba%d0%b0%d1%82%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Каждый релиз должен иметь план: когда, как, кто решает, коммуникация и верификация.&lt;/p&gt;</description></item><item><title>Управление тестовыми окружениями</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/test-environment-management/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/test-environment-management/</guid><description>&lt;h2 id="проблема-окружений"&gt;Проблема окружений &lt;a href="#%d0%bf%d1%80%d0%be%d0%b1%d0%bb%d0%b5%d0%bc%d0%b0-%d0%be%d0%ba%d1%80%d1%83%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестовые окружения — одна из самых болезненных проблем QA. Общие окружения становятся нестабильными, потому что несколько людей тестируют одновременно. Окружения расходятся с продакшеном, вызывая ложные прохождения. Тестовые данные повреждаются. Настройка окружения занимает дни вместо минут.&lt;/p&gt;
&lt;p&gt;Эффективное управление окружениями решает эти проблемы чёткими стратегиями и автоматизацией.&lt;/p&gt;
&lt;h2 id="типы-окружений"&gt;Типы окружений &lt;a href="#%d1%82%d0%b8%d0%bf%d1%8b-%d0%be%d0%ba%d1%80%d1%83%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="разработка-dev"&gt;Разработка (Dev) &lt;a href="#%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0-dev" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Индивидуальные окружения разработчиков для локального тестирования. У каждого разработчика свой экземпляр.&lt;/p&gt;
&lt;h3 id="интеграция-ci"&gt;Интеграция (CI) &lt;a href="#%d0%b8%d0%bd%d1%82%d0%b5%d0%b3%d1%80%d0%b0%d1%86%d0%b8%d1%8f-ci" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Автоматизированные окружения, поднимаемые во время выполнения CI-пайплайна. Создаются на каждую сборку, уничтожаются после завершения тестов.&lt;/p&gt;</description></item><item><title>Хаос-инжиниринг</title><link>https://yrkan.com/ru/course/module-09-cicd-devops/chaos-engineering/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-09-cicd-devops/chaos-engineering/</guid><description>&lt;h2 id="что-такое-хаос-инжиниринг"&gt;Что такое хаос-инжиниринг? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%85%d0%b0%d0%be%d1%81-%d0%b8%d0%bd%d0%b6%d0%b8%d0%bd%d0%b8%d1%80%d0%b8%d0%bd%d0%b3" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Хаос-инжиниринг — дисциплина экспериментирования над распределённой системой для укрепления уверенности в её способности выдерживать турбулентные условия в продакшене. Пионером стал Netflix, создавший Chaos Monkey для случайного завершения продакшен-инстансов.&lt;/p&gt;
&lt;p&gt;Ключевая идея: вместо ожидания неожиданных сбоев, проактивно инъектировать сбои и наблюдать реакцию системы.&lt;/p&gt;
&lt;h2 id="принципы"&gt;Принципы &lt;a href="#%d0%bf%d1%80%d0%b8%d0%bd%d1%86%d0%b8%d0%bf%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Сформулируйте гипотезу о стабильном состоянии.&lt;/strong&gt; Определите «нормальное»: error rate, латентность, throughput.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Варьируйте реальные события.&lt;/strong&gt; Инъектируйте реальные сбои: крэши, сетевые партиции, заполнение диска.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Проводите эксперименты в продакшене.&lt;/strong&gt; Начинайте в staging, продвигайтесь к продакшену.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Автоматизируйте для непрерывного выполнения.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Минимизируйте радиус поражения.&lt;/strong&gt; Начинайте с малого.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="жизненный-цикл-эксперимента"&gt;Жизненный цикл эксперимента &lt;a href="#%d0%b6%d0%b8%d0%b7%d0%bd%d0%b5%d0%bd%d0%bd%d1%8b%d0%b9-%d1%86%d0%b8%d0%ba%d0%bb-%d1%8d%d0%ba%d1%81%d0%bf%d0%b5%d1%80%d0%b8%d0%bc%d0%b5%d0%bd%d1%82%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="шаг-1-определение-стабильного-состояния"&gt;Шаг 1: Определение стабильного состояния &lt;a href="#%d1%88%d0%b0%d0%b3-1-%d0%be%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d1%81%d1%82%d0%b0%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d0%be%d0%b3%d0%be-%d1%81%d0%be%d1%81%d1%82%d0%be%d1%8f%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Error rate &amp;lt; 0.1%, P95 &amp;lt; 200мс, health checks проходят, завершение заказов &amp;gt; 99%.&lt;/p&gt;</description></item><item><title>A/B Тестирование Моделей Machine Learning: ML Эксперименты</title><link>https://yrkan.com/ru/blog/ab-testing-ml-models/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ab-testing-ml-models/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A/B тестирование ML фундаментально отличается от UI тестирования—модели недетерминированы, непрерывно обучаются и влияют на будущее распределение данных&lt;/li&gt;
&lt;li&gt;Начните с Overall Evaluation Criterion (OEC)—одной главной метрики, которая отражает успех (Netflix использует часы просмотра, e-commerce использует конверсию)&lt;/li&gt;
&lt;li&gt;Используйте guardrails для автоматической остановки экспериментов при деградации критических метрик, и планируйте постепенные развертывания (5% → 20% → 50% → 100%)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд, развертывающих ML модели в продакшн, которым нужна статистическая строгость в экспериментах
&lt;strong&gt;Пропустите если:&lt;/strong&gt; Вы делаете разовые сравнения моделей в разработке (используйте offline оценку)&lt;/p&gt;</description></item><item><title>Ad-hoc vs Monkey Testing: понимание хаотичных подходов к тестированию</title><link>https://yrkan.com/ru/blog/adhoc-monkey-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/adhoc-monkey-testing/</guid><description>&lt;p&gt;Ad-hoc vs Monkey Testing: понимание хаотичных подходов к тестированию — критически важная дисциплина в современном обеспечении качества программного обеспечения. The NIST estimates that software bugs cost the US economy $59.5 billion annually, with about 80% preventable through better testing (NIST Software Testing Study). According to Capers Jones, finding and fixing a defect after deployment costs 10-100x more than finding it during design (Capers Jones Software Engineering Best Practices). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>AI Copilot для тест-автоматизации: GitHub Copilot, Amazon CodeWhisperer и будущее QA</title><link>https://yrkan.com/ru/blog/ai-copilot-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ai-copilot-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI-копилоты обеспечивают &lt;strong&gt;на 55% быстрее создание тест-кейсов&lt;/strong&gt; и &lt;strong&gt;40% сокращение времени отладки&lt;/strong&gt; для Selenium/Playwright тестов&lt;/li&gt;
&lt;li&gt;GitHub Copilot отлично подходит для генерации тестов общего назначения; CodeWhisperer лучше для AWS-интеграций и API-тестирования&lt;/li&gt;
&lt;li&gt;Используйте ИИ для boilerplate (Page Objects, fixtures, генерация данных), но полагайтесь на человеческую экспертизу для тестовой стратегии и выявления граничных случаев&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Идеально для:&lt;/strong&gt; Команд, пишущих 10+ новых тест-кейсов в неделю, проектов с повторяющимися паттернами Page Object, API тестовых наборов, требующих быстрого расширения
&lt;strong&gt;Пропустить если:&lt;/strong&gt; Кодовые базы с высокой чувствительностью к безопасности, где облачное обучение ИИ запрещено, тестовые наборы менее 50 тестов, где ручное написание всё ещё эффективно
&lt;strong&gt;Время чтения:&lt;/strong&gt; 14 минут&lt;/p&gt;</description></item><item><title>Allure Framework: Создание Красивых Отчетов о Тестировании</title><link>https://yrkan.com/ru/blog/allure-framework-reporting/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/allure-framework-reporting/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Allure сокращает время отладки на &lt;strong&gt;70%&lt;/strong&gt; благодаря интерактивным отчетам со скриншотами, логами и пошаговыми деталями выполнения&lt;/li&gt;
&lt;li&gt;Исторические тренды выявляют &lt;strong&gt;нестабильные тесты&lt;/strong&gt; и отслеживают показатели успешности, обнаруживая паттерны регрессии на ранних стадиях&lt;/li&gt;
&lt;li&gt;Организация Epic/Feature/Story улучшает обнаруживаемость тестов на &lt;strong&gt;60%&lt;/strong&gt; для крупных тестовых наборов (500+ тестов)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд с 100+ тестами, потребностей в отчетах для стейкхолдеров, UI/API тестов, требующих визуальной отладки
&lt;strong&gt;Не подходит если:&lt;/strong&gt; &amp;lt;30 тестов, чисто модульное тестирование, нет необходимости в историческом отслеживании
&lt;strong&gt;Время чтения:&lt;/strong&gt; 14 минут&lt;/p&gt;</description></item><item><title>Allure TestOps: Корпоративное Управление Тестированием За Пределами Отчетности</title><link>https://yrkan.com/ru/blog/allure-testops-enterprise-management/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/allure-testops-enterprise-management/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Allure TestOps преобразует данные выполнения тестов в стратегическую качественную аналитику с автоматическим обнаружением тестов и живой документацией&lt;/li&gt;
&lt;li&gt;Встроенный ML обнаруживает нестабильные тесты до того, как они подорвут доверие команды—то, что традиционные TCM инструменты вроде TestRail не могут&lt;/li&gt;
&lt;li&gt;Умный выбор тестов запускает только релевантные тесты на основе изменений кода, сокращая время CI на 70-80%&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Идеально для:&lt;/strong&gt; Команд с 1,000+ автоматизированных тестов, которые хотят извлекать инсайты из существующих данных без ручного обслуживания TCM
&lt;strong&gt;Не подходит если:&lt;/strong&gt; Ваше тестирование преимущественно ручное или вам нужна глубокая интеграция с JIRA (рассмотрите Xray или Zephyr)
&lt;strong&gt;Время чтения:&lt;/strong&gt; 15 минут&lt;/p&gt;</description></item><item><title>API Contract Testing для Мобильных Приложений: Pact, Spring Cloud Contract и Лучшие Практики</title><link>https://yrkan.com/ru/blog/api-contract-mobile-testing/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/api-contract-mobile-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Consumer-driven контракты позволяют мобильным командам определять ожидания от API без ожидания backend&lt;/li&gt;
&lt;li&gt;Pact тесты выполняются за миллисекунды против секунд для интеграционных тестов, обнаруживая breaking changes до деплоя&lt;/li&gt;
&lt;li&gt;Проверка can-i-deploy — ваша страховочная сеть, никогда не деплойте без неё&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Мобильных команд, потребляющих API микросервисов, команд с частыми изменениями API&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Пропустить если:&lt;/strong&gt; Единый монолитный backend, стабильные API с редкими изменениями&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 15 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;API Contract Testing для Мобильных Приложений: Pact, Spring Cloud Contract и Лучшие Практики — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to Statista, mobile devices account for over 58% of global website traffic as of 2024 (Statista Mobile Traffic 2024). According to Google, 53% of mobile visitors leave a page that takes longer than 3 seconds to load (Google Mobile Speed Study). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>API Performance Testing: Метрики и Инструменты</title><link>https://yrkan.com/ru/blog/api-performance-testing/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/api-performance-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Измеряйте латентность P95/P99, а не только средние значения—выбросы влияют на пользовательский опыт сильнее, чем средние&lt;/li&gt;
&lt;li&gt;K6 отлично подходит для скриптов, дружественных разработчикам, Artillery для YAML-конфигов, Gatling для симуляций высокой нагрузки&lt;/li&gt;
&lt;li&gt;Начинайте с baseline тестов, затем нагрузочные, потом стресс-тесты—порядок важен для значимых результатов&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд, оптимизирующих время отклика API, валидирующих SLA, готовящихся к всплескам трафика&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Пропустить если:&lt;/strong&gt; Внутренние инструменты с &amp;lt;100 пользователей, фаза прототипирования где функциональность меняется ежедневно&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 15 минут&lt;/p&gt;</description></item><item><title>API Security Testing: Полное Руководство по OAuth, JWT и API Keys</title><link>https://yrkan.com/ru/blog/api-security-testing/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/api-security-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Тестируйте BOLA/IDOR на каждом эндпоинте—это уязвимость #1 для API (OWASP API Security Top 10 2023)&lt;/li&gt;
&lt;li&gt;Тестирование JWT должно покрывать подмену алгоритма, слабые секреты и манипуляцию токеном—не только срок действия&lt;/li&gt;
&lt;li&gt;Никогда не принимайте API ключи в URL; проверяйте, что rate limiting работает по ключу, а не только по IP&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Публичные API, multi-tenant системы, API, обрабатывающие чувствительные данные (PII, финансовые, медицинские)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Пропустить если:&lt;/strong&gt; Только внутренние API с доверенными клиентами, ранняя фаза прототипирования&lt;/p&gt;</description></item><item><title>API Testing Mastery: От REST до контрактного тестирования 2026</title><link>https://yrkan.com/ru/blog/api-testing-mastery/</link><pubDate>Sat, 17 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/api-testing-mastery/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Выбирайте протокол осмысленно: REST для публичных API, GraphQL для сложных требований к данным, gRPC для производительности микросервисов&lt;/li&gt;
&lt;li&gt;Контрактное тестирование с Pact выявляет баги интеграции без запуска всех сервисов — критически важно для команд с микросервисами&lt;/li&gt;
&lt;li&gt;Выбор инструментов: Postman для исследования/CI, REST Assured для Java-команд, Karate для BDD + нагрузочное тестирование в одном&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Для кого:&lt;/strong&gt; Backend-разработчики, QA-инженеры, все, кто создает или тестирует распределенные системы&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Можно пропустить, если:&lt;/strong&gt; Вы тестируете только UI, а API тестирует кто-то другой&lt;/p&gt;</description></item><item><title>API Testing Tutorial: Полное Руководство от Основ до Автоматизации 2026</title><link>https://yrkan.com/ru/blog/api-testing-tutorial-complete-guide/</link><pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/api-testing-tutorial-complete-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;API тестирование проверяет backend-сервисы без UI — быстрее и надежнее E2E тестов&lt;/li&gt;
&lt;li&gt;Тестируй: статус-коды, тело ответа, заголовки, обработку ошибок, аутентификацию, валидацию схем, производительность&lt;/li&gt;
&lt;li&gt;Инструменты: Postman (ручное/обучение), REST Assured (Java), Supertest (Node.js), requests (Python)&lt;/li&gt;
&lt;li&gt;Автоматизируй в CI/CD — API часто меняются, ловите breaking changes рано&lt;/li&gt;
&lt;li&gt;Покрывай happy path и сценарии ошибок (400, 401, 404, 500)&lt;/li&gt;
&lt;li&gt;Валидируй схемы ответов для предотвращения дрифта контрактов между фронтом и бэком&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Backend-разработчиков, QA-инженеров, всех, кто тестирует микросервисы
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Тестируешь только статические сайты или простые фронтенды&lt;/p&gt;</description></item><item><title>API Документация для Тестировщиков: Примеры Request/Response и Стратегии Тестирования</title><link>https://yrkan.com/ru/blog/api-documentation-qa/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/api-documentation-qa/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Документация API для QA нуждается в сценариях ошибок, крайних случаях и тестовых учётных данных — не только в happy paths&lt;/li&gt;
&lt;li&gt;Postman коллекции служат исполняемой документацией, которую тестировщики могут запускать сразу&lt;/li&gt;
&lt;li&gt;Документирование лимитов скорости, идемпотентности и правил валидации позволяет комплексное негативное тестирование&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; QA команд, работающих с REST API, команд, создающих общую тестовую документацию&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Пропустить если:&lt;/strong&gt; Внутренний монолит с ограниченной API поверхностью, фаза прототипирования&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 12 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;API Документация для Тестировщиков: Примеры Request/Response и Стратегии Тестирования — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to Postman&amp;rsquo;s 2024 State of the API report, 51% of developers spend the most time on APIs, making API quality critical (Postman State of the API 2024). According to SmartBear, 69% of organizations have increased their API testing budgets in 2024 (SmartBear State of Software Quality 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Appium 2.0: Новая Архитектура и Облачная Интеграция для Современного Mobile Testing</title><link>https://yrkan.com/ru/blog/appium-2-architecture-cloud/</link><pubDate>Sat, 17 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/appium-2-architecture-cloud/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Плагинная архитектура Appium 2.0: устанавливайте только нужные драйверы (30MB ядро vs 200MB монолит)—мигрируйте добавлением префикса &lt;code&gt;appium:&lt;/code&gt; к capabilities&lt;/li&gt;
&lt;li&gt;Облачная интеграция (BrowserStack, Sauce Labs, AWS Device Farm) устраняет обслуживание лабораторий устройств—критичные тесты на реальных устройствах, UI тесты локально&lt;/li&gt;
&lt;li&gt;Параллельное выполнение с несколькими серверами Appium кардинально сокращает время тестов—4 сервера могут работать в 4 раза быстрее при правильном управлении портами&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Для кого:&lt;/strong&gt; Мобильные QA-инженеры, архитекторы автоматизации, команды масштабирующие мобильные тестовые suite&amp;rsquo;ы&lt;/p&gt;</description></item><item><title>Appium Tutorial: Полное Руководство по Тестированию Мобильных Приложений</title><link>https://yrkan.com/ru/blog/appium-tutorial-mobile-testing/</link><pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/appium-tutorial-mobile-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Appium автоматизирует iOS и Android приложения через WebDriver протокол — один фреймворк, обе платформы&lt;/li&gt;
&lt;li&gt;Настройка: Appium сервер, SDK платформ (Android Studio/Xcode), клиентская библиотека&lt;/li&gt;
&lt;li&gt;Поиск элементов по accessibility id, xpath или платформенным локаторам&lt;/li&gt;
&lt;li&gt;Поддержка жестов (свайп, скролл, тап), реальных устройств и эмуляторов/симуляторов&lt;/li&gt;
&lt;li&gt;Интеграция с CI/CD через Appium в Docker или облачные сервисы (BrowserStack, Sauce Labs)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Идеально для:&lt;/strong&gt; QA-команд, тестирующих мобильные приложения на разных платформах
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Тестируешь только Android (используй Espresso) или только iOS (используй XCUITest)
&lt;strong&gt;Время чтения:&lt;/strong&gt; 20 минут&lt;/p&gt;</description></item><item><title>Appium vs Espresso: Сравнение Android Тестирования 2026</title><link>https://yrkan.com/ru/blog/appium-vs-espresso-comparison/</link><pubDate>Tue, 10 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/appium-vs-espresso-comparison/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Espresso&lt;/strong&gt;: Android-native, быстрый, надёжный, встроен в Android Studio&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Appium&lt;/strong&gt;: Кросс-платформа, много языков, black-box тестирование&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Скорость&lt;/strong&gt;: Espresso в 2-5x быстрее (работает in-process)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Надёжность&lt;/strong&gt;: Espresso имеет автоматическую синхронизацию, меньше flaky тестов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Для Android-only&lt;/strong&gt;: Espresso (рекомендован Google)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Для кросс-платформы&lt;/strong&gt;: Appium (один codebase для Android + iOS)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 9 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Appium и Espresso — два ведущих фреймворка тестирования Android, но они служат принципиально разным философиям. Appium набрал более 18 000 звёзд на GitHub и поддерживается OpenJS Foundation, занимая позицию open-source стандарта для кросс-платформенного мобильного тестирования Android, iOS и Windows. Espresso, нативный Android-фреймворк Google, работает внутри процесса приложения для автоматической синхронизации и значительно более быстрого выполнения — именно он рекомендован в официальной документации Android-разработчика. По данным отчёта SmartBear State of Software Quality 2025, внедрение автоматизации мобильного тестирования выросло на 31% год-к-году: потребности в кросс-платформенном покрытии стимулируют рост Appium, тогда как чисто Android-команды всё чаще стандартизируются на Espresso ради скорости и надёжности. Appium поддерживает более дюжины клиентских языков, позволяя QA-командам писать тесты на Python, Java, JavaScript, Ruby или C# для одного и того же мобильного приложения. Понимание того, когда сильные стороны каждого фреймворка совпадают с ограничениями твоего проекта, — это ключевое решение, которому посвящено это руководство.&lt;/p&gt;</description></item><item><title>Aqua ALM: Система Трассируемости Требований к Тестам</title><link>https://yrkan.com/ru/blog/aqua-alm-requirements-traceability/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/aqua-alm-requirements-traceability/</guid><description>&lt;p&gt;Aqua ALM: Система Трассируемости Требований к Тестам — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to NIST, software bugs cost the US economy $59.5 billion annually, with about 80% preventable through better testing (NIST Software Testing Study). According to research by Capers Jones, finding and fixing a defect after deployment costs 10-100x more than finding it during design (Capers Jones Software Engineering Best Practices). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Artillery Load Testing Tutorial: Руководство по Современному Нагрузочному Тестированию</title><link>https://yrkan.com/ru/blog/artillery-load-testing-tutorial/</link><pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/artillery-load-testing-tutorial/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Artillery = Node.js нагрузочное тестирование с YAML сценариями&lt;/li&gt;
&lt;li&gt;Определяй виртуальных пользователей, фазы (ramp-up, sustained load), think time&lt;/li&gt;
&lt;li&gt;Встроенные: HTTP, WebSocket, Socket.io поддержка&lt;/li&gt;
&lt;li&gt;Плагины: кастомные протоколы, метрики, репортеры&lt;/li&gt;
&lt;li&gt;CLI-first дизайн, идеален для CI/CD пайплайнов&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Идеально для:&lt;/strong&gt; Node.js команд, современных веб-приложений, разработчиков, предпочитающих code-as-config
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Нужно GUI построение тестов или широкая поддержка протоколов (используй JMeter)
&lt;strong&gt;Время чтения:&lt;/strong&gt; 12 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Artillery Load Testing Tutorial: Руководство по Современному Нагрузочному Тестированию — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to Google research, as page load time increases from 1 to 3 seconds, the probability of bounce increases 32% (Google/SOASTA Research). According to Akamai, a 100ms delay in page load can decrease conversion rates by 7% (Akamai Performance Study). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Artillery Тестирование Производительности: Современное Нагрузочное Тестирование со Сценариями YAML</title><link>https://yrkan.com/ru/blog/artillery-performance-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/artillery-performance-testing/</guid><description>&lt;p&gt;Artillery Тестирование Производительности: Современное Нагрузочное Тестирование со Сценариями YAML — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to Google research, as page load time increases from 1 to 3 seconds, the probability of bounce increases 32% (Google/SOASTA Research). According to Akamai, a 100ms delay in page load can decrease conversion rates by 7% (Akamai Performance Study). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Azure DevOps Pipelines для QA: Полное Руководство по Реализации</title><link>https://yrkan.com/ru/blog/azure-devops-pipelines-for-qa/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/azure-devops-pipelines-for-qa/</guid><description>&lt;p&gt;Azure DevOps Pipelines для QA: Полное Руководство по Реализации — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to the 2024 DORA State of DevOps report, elite performing teams deploy 973x more frequently than low performers (DORA State of DevOps 2024). According to GitLab&amp;rsquo;s 2024 DevSecOps report, teams using CI/CD fix bugs 60% faster than those without automation (GitLab DevSecOps Survey 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>BDD: от требований к автоматизации</title><link>https://yrkan.com/ru/blog/bdd-ot-trebovaniy-k-avtomatizacii/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/bdd-ot-trebovaniy-k-avtomatizacii/</guid><description>&lt;p&gt;BDD: от требований к автоматизации — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to the World Quality Report 2024, 51% of QA organizations have increased test automation coverage in the past year (World Quality Report 2024). According to SmartBear, teams with 70%+ automated test coverage report 40% fewer production defects (SmartBear State of Software Quality). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Black Box vs White Box vs Grey Box тестирование: полное сравнение</title><link>https://yrkan.com/ru/blog/sravnenie-black-box-white-box-grey-box-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/sravnenie-black-box-white-box-grey-box-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Black box&lt;/strong&gt;: Знание кода не нужно — тестирование с позиции пользователя, только входы/выходы&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;White box&lt;/strong&gt;: Полный доступ к коду — тестирование внутренней логики, путей и покрытия&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Grey box&lt;/strong&gt;: Частичное знание — совмещает оба подхода, распространён при интеграционном и API тестировании&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Когда использовать&lt;/strong&gt;: Black box для системного/UAT; white box для юнит-тестов; grey box для интеграции&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевой вывод&lt;/strong&gt;: Не выбирай один — используй все три на соответствующем уровне пирамиды тестирования&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; QA-инженеров и разработчиков, изучающих стратегию тест-дизайна&lt;/p&gt;</description></item><item><title>Boundary Value Analysis: Находим Баги на Границах</title><link>https://yrkan.com/ru/blog/boundary-value-analysis/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/boundary-value-analysis/</guid><description>&lt;p&gt;Boundary Value Analysis: Находим Баги на Границах — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to NIST, software bugs cost the US economy $59.5 billion annually, with about 80% preventable through better testing (NIST Software Testing Study). According to research by Capers Jones, finding and fixing a defect after deployment costs 10-100x more than finding it during design (Capers Jones Software Engineering Best Practices). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Bruno API Client: Open-source альтернатива Postman</title><link>https://yrkan.com/ru/blog/bruno-api-client/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/bruno-api-client/</guid><description>&lt;p&gt;Bruno — это полностью open-source API клиент, построенный на Git-native философии: коллекции хранятся как обычные &lt;code&gt;.bru&lt;/code&gt; текстовые файлы в файловой системе, а не в облаке. Запущенный в 2022 году, он набрал более &lt;strong&gt;40 000 звёзд на GitHub&lt;/strong&gt; за два года — один из самых быстро растущих API инструментов в open-source экосистеме. В отличие от Postman или Insomnia, Bruno не требует аккаунта, логина и интернета — всё работает локально. Формат &lt;code&gt;.bru&lt;/code&gt; читаем человеком и удобен для diff-просмотра в PR, что позволяет хранить всю коллекцию API рядом с кодом. Для QA команд, уставших от vendor lock-in и растущих SaaS цен, офлайн-first подход Bruno — это принципиально новый взгляд на то, как должны работать API инструменты.&lt;/p&gt;</description></item><item><title>Bruno v3.2.0: Open-Source Git-импорт и улучшенная отладка</title><link>https://yrkan.com/ru/tools-updates/bruno-v3-2-whats-new/</link><pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/bruno-v3-2-whats-new/</guid><description>&lt;h2 id="ключевые-изменения-в-bruno-v320"&gt;Ключевые изменения в Bruno v3.2.0 &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f-%d0%b2-bruno-v320" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Bruno v3.2.0, минорное обновление, выпущенное 18 марта 2026 года, сосредоточено на расширении основных функций и улучшении опыта для разработчиков и QA-инженеров. Этот релиз особенно значим для рабочих процессов тестирования API.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Open-Source Сотрудничество&lt;/strong&gt;: Важным моментом является перенос &lt;strong&gt;импорта коллекций по Git URL и API Spec URL&lt;/strong&gt; из корпоративной версии в open-source. Это демократизирует совместную работу и контроль версий для всех пользователей. Кроме того, импорт ZIP-файлов для коллекций упрощает их обмен.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Улучшенная Отладка и Скриптинг&lt;/strong&gt;: QA-инженеры оценят &lt;strong&gt;красный индикатор состояния для ошибок скриптов&lt;/strong&gt; на вкладках Request, Collection и Folder Script, что ускоряет отладку. Трассировки стека для сбоев скриптов и тестов также улучшены. Новые возможности скриптинга включают интерполяцию объектных переменных и возможность удаления заголовков из запросов с помощью скриптов. Библиотека &lt;code&gt;bruno-js&lt;/code&gt; теперь содержит функцию &lt;code&gt;hasCookie&lt;/code&gt; для более детального управления куками.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API-Тестирование и Интеграция&lt;/strong&gt;: Bruno теперь поддерживает типы контента &lt;code&gt;multipart/mixed&lt;/code&gt;, расширяя область тестирования API. Функция &lt;strong&gt;синхронизации OpenAPI&lt;/strong&gt; помогает поддерживать коллекции в соответствии со спецификациями API. Экспорт спецификаций API теперь включает переменные окружения, а возможности перевода для конвертации из Bruno в Postman были улучшены, помогая командам, переходящим с других инструментов.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Удобство Использования и Рабочий Процесс&lt;/strong&gt;: Новые &amp;ldquo;scratch requests&amp;rdquo; позволяют быстро проводить временные тесты. Настройки управления масштабом интерфейса улучшают доступность. Для отчетов опции пропуска тел запросов и ответов обеспечивают более чистый вывод. Запуск коллекций теперь включает логирование истории, а тестирование gRPC расширяется поддержкой Unix Socket и Named Pipes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="влияние-на-qa-команды"&gt;Влияние на QA-команды &lt;a href="#%d0%b2%d0%bb%d0%b8%d1%8f%d0%bd%d0%b8%d0%b5-%d0%bd%d0%b0-qa-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Bruno v3.2.0 значительно упрощает тестирование API и совместную работу. Открытие импорта из Git и спецификаций API способствует лучшему контролю версий и обмену в команде. Улучшенные инструменты отладки и расширенная поддержка протоколов API означают более быструю разработку тестов и более полное покрытие, что напрямую влияет на эффективность рабочих процессов QA. Для получения дополнительной информации о возможностях Bruno, ознакомьтесь с нашей статьей о &lt;a href="https://yrkan.com/ru/blog/bruno-api-client/"&gt;bruno-api-client&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Burp Suite для QA-Инженеров: Полное Руководство по Security Testing</title><link>https://yrkan.com/ru/blog/burp-suite-qa/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/burp-suite-qa/</guid><description>&lt;p&gt;Burp Suite — самая распространённая платформа для тестирования безопасности веб-приложений, используемая более чем в &lt;strong&gt;47 000 организациях по всему миру&lt;/strong&gt; по данным PortSwigger. Для QA команд это инструмент, который соединяет функциональное тестирование с проверкой безопасности: перехват трафика, сканирование уязвимостей из OWASP Top 10, тестирование потоков аутентификации и автоматизация проверок в CI/CD. Список OWASP Top 10, обновляемый организацией &lt;a href="https://owasp.org/"&gt;OWASP&lt;/a&gt;, служит отраслевым базисом для того, какие уязвимости должны тестироваться — и сканер Burp Suite специально создан для их обнаружения. Независимо от того, используешь ли ты бесплатную Community Edition для ручной инспекции трафика или Professional сканер для систематического поиска уязвимостей, Burp Suite даёт QA-инженерам прямой путь в тестирование безопасности.&lt;/p&gt;</description></item><item><title>Chaos Engineering: ломаем систему правильно</title><link>https://yrkan.com/ru/blog/chaos-engineering-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/chaos-engineering-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Chaos Engineering&lt;/strong&gt;: намеренное внедрение сбоев для обнаружения слабых мест до реальных инцидентов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Происхождение&lt;/strong&gt;: Netflix разработал его с Chaos Monkey для обеспечения устойчивости облачных микросервисов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевой принцип&lt;/strong&gt;: считай, что сбои неизбежны — находи уязвимости проактивно, а не реактивно&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Процесс&lt;/strong&gt;: определи steady state → сформулируй гипотезу → внедри сбой → наблюдай → исправь → повтори&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Инструменты&lt;/strong&gt;: Gremlin (корпоративный), Chaos Monkey (AWS), Chaos Mesh (Kubernetes), LitmusChaos (CNCF)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Безопасность&lt;/strong&gt;: начинай в staging, ограничивай blast radius, имей план отката, непрерывно мониторь&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Chaos Engineering представляет собой смену парадигмы в том, как мы подходим к надёжности систем: вместо надежды на стабильность мы намеренно ломаем системы контролируемым образом, чтобы найти уязвимости до реальных инцидентов. Netflix разработал Chaos Monkey в 2011 году, чтобы принудить микросервисы выживать при случайном завершении экземпляров AWS. Согласно манифесту Principles of Chaos Engineering, хаос-эксперименты — единственный эмпирический метод получить реальную уверенность в устойчивости распределённых систем. Согласно отчёту Gremlin о состоянии Chaos Engineering, 61% организаций уже запускают эксперименты в production, и у тех, кто это делает, в 3 раза меньше инцидентов высокой степени серьёзности. Дисциплина вышла за пределы Netflix: e-commerce (выживание в пиковый трафик), финансы (валидация failover при волатильности рынка), здравоохранение (обеспечение uptime критических сервисов). Это руководство охватывает принципы, инструментарий и системный подход к безопасному внедрению chaos engineering.&lt;/p&gt;</description></item><item><title>Charles Proxy Tutorial: Полное Руководство по Отладке Сети для Тестировщиков</title><link>https://yrkan.com/ru/blog/charles-proxy-tutorial-testing/</link><pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/charles-proxy-tutorial-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Charles Proxy перехватывает HTTP/HTTPS трафик для инспекции и модификации&lt;/li&gt;
&lt;li&gt;SSL Proxying требует установки сертификата на устройство (мобильное/браузер)&lt;/li&gt;
&lt;li&gt;Breakpoints позволяют модифицировать запросы/ответы в реальном времени&lt;/li&gt;
&lt;li&gt;Map Local/Remote перенаправляет запросы на локальные файлы или другие серверы&lt;/li&gt;
&lt;li&gt;Throttling симулирует медленные сети для тестирования производительности&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Идеально для:&lt;/strong&gt; Мобильных тестировщиков, API-разработчиков, отладки production-проблем
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Нужна только простая инспекция запросов (хватит DevTools браузера)
&lt;strong&gt;Время чтения:&lt;/strong&gt; 14 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Charles Proxy Tutorial: Полное Руководство по Отладке Сети для Тестировщиков — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to Statista, mobile devices account for over 58% of global website traffic as of 2024 (Statista Mobile Traffic 2024). According to Google, 53% of mobile visitors leave a page that takes longer than 3 seconds to load (Google Mobile Speed Study). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>ChatGPT и LLM в тестировании: возможности и риски</title><link>https://yrkan.com/ru/blog/chatgpt-llm-in-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/chatgpt-llm-in-testing/</guid><description>&lt;p&gt;ChatGPT и LLM в тестировании: возможности и риски — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to Gartner, by 2025, 70% of new applications will use AI or ML, up from less than 5% in 2020 (Gartner AI Forecast). According to McKinsey&amp;rsquo;s 2024 State of AI survey, 65% of organizations now use generative AI regularly, nearly double the 2023 figure (McKinsey State of AI 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>CI/CD Pipeline для тестировщиков: Полное руководство по интеграции</title><link>https://yrkan.com/ru/blog/cicd-pipeline-for-testers/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/cicd-pipeline-for-testers/</guid><description>&lt;p&gt;CI/CD Pipeline для тестировщиков: Полное руководство по интеграции — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to the 2024 DORA State of DevOps report, elite performing teams deploy 973x more frequently than low performers (DORA State of DevOps 2024). According to GitLab&amp;rsquo;s 2024 DevSecOps report, teams using CI/CD fix bugs 60% faster than those without automation (GitLab DevSecOps Survey 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Compliance тестирование для Infrastructure as Code: SOC2, HIPAA, PCI-DSS</title><link>https://yrkan.com/ru/blog/compliance-testing-iac/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/compliance-testing-iac/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Сканирование compliance должно происходить в CI до деплоймента, а не во время ежегодных аудитов&lt;/li&gt;
&lt;li&gt;Checkov, KICS и Trivy предоставляют готовые политики, mapped к SOC2, HIPAA, PCI-DSS и CIS benchmarks&lt;/li&gt;
&lt;li&gt;Ошибка #1: запускать compliance инструменты вручную вместо автоматизированных CI gates&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд в регулируемых отраслях (здравоохранение, финансы) или стремящихся к сертификации SOC2
&lt;strong&gt;Пропустите, если:&lt;/strong&gt; Вы создаёте внутренние инструменты без требований compliance
&lt;strong&gt;Время чтения:&lt;/strong&gt; 10 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Compliance тестирование для Infrastructure as Code: SOC2, HIPAA, PCI-DSS — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to Gartner, worldwide cloud spending will exceed $1 trillion by 2025, making cloud testing skills essential (Gartner Cloud Forecast). According to HashiCorp&amp;rsquo;s 2024 State of Cloud Strategy survey, 78% of organizations use a multi-cloud strategy (HashiCorp State of Cloud 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Contract Testing: Безболезненная коммуникация микросервисов</title><link>https://yrkan.com/ru/blog/contract-testing-microservices-pact/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/contract-testing-microservices-pact/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Контрактное тестирование с Pact позволяет потребителям определять ожидания к API, которые поставщики обязаны выполнять, обнаруживая breaking changes до продакшена. Интегрируй с Pact Broker и используй проверки &lt;code&gt;can-i-deploy&lt;/code&gt; в CI/CD для уверенного деплоя микросервисов.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;В архитектурах микросервисов сбои интеграции — главная причина инцидентов в продакшене: по данным отчёта Postman State of the API 2024, 40% разработчиков называют проблемы интеграции своей главной сложностью при работе с API. Контрактное тестирование решает эту задачу напрямую: оно фиксирует ожидания между сервисами и проверяет их независимо, не требуя одновременного запуска всех сервисов. В отличие от медленных и хрупких E2E-тестов, контрактные тесты выполняются за миллисекунды и дают разработчикам мгновенную обратную связь о breaking changes. Фреймворк Pact стал де-факто стандартом для consumer-driven contract testing с поддержкой JavaScript, Python, Java, Ruby и Go. Команды, внедрившие контрактное тестирование, как правило, значительно сокращают число инцидентов интеграции микросервисов — breaking changes обнаруживаются на этапе пул-реквеста, а не в продакшене.&lt;/p&gt;</description></item><item><title>Cost Optimization для CI/CD</title><link>https://yrkan.com/ru/blog/cost-optimization-for-ci-cd/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/cost-optimization-for-ci-cd/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Сократи затраты CI/CD за счёт кеширования зависимостей, self-hosted раннеров, умной параллелизации тестов и пропуска ненужных сборок. Команды обычно снижают затраты на CI на 30-60% без потери надёжности.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Затраты на CI/CD могут быстро выйти из-под контроля. Без правильной оптимизации команды могут тратить тысячи долларов ежемесячно на ненужные минуты сборки, избыточные тесты и неэффективное распределение ресурсов. Это руководство предоставляет продвинутые стратегии для значительного сокращения затрат на CI/CD при сохранении—или даже улучшении—производительности и надежности pipeline.&lt;/p&gt;</description></item><item><title>Cucumber BDD Tutorial: Полное Руководство по Behavior Driven Development</title><link>https://yrkan.com/ru/blog/cucumber-bdd-tutorial/</link><pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/cucumber-bdd-tutorial/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cucumber обеспечивает BDD с тестами на простом английском (Gherkin-синтаксис)&lt;/li&gt;
&lt;li&gt;Feature-файлы описывают поведение: Given (предусловия), When (действия), Then (результаты)&lt;/li&gt;
&lt;li&gt;Step definitions связывают Gherkin-шаги с реальным тестовым кодом&lt;/li&gt;
&lt;li&gt;Scenario Outlines позволяют data-driven тестирование с таблицами Examples&lt;/li&gt;
&lt;li&gt;Интегрируется с Selenium, TestNG, JUnit для полной автоматизации тестирования&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Идеально для:&lt;/strong&gt; Команд, желающих бизнес-читаемые тесты, сотрудничество между QA и стейкхолдерами
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Маленькая команда, где разработчики пишут все тесты (традиционное тестирование быстрее)
&lt;strong&gt;Время чтения:&lt;/strong&gt; 15 минут&lt;/p&gt;</description></item><item><title>Cypress Tutorial: Полное руководство для начинающих 2026</title><link>https://yrkan.com/ru/blog/cypress-tutorial-complete-guide/</link><pubDate>Sat, 24 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/cypress-tutorial-complete-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cypress работает внутри браузера — тесты быстрые и надёжные без WebDriver&lt;/li&gt;
&lt;li&gt;Установка: &lt;code&gt;npm install cypress --save-dev&lt;/code&gt;, запуск: &lt;code&gt;npx cypress open&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Используй &lt;code&gt;data-*&lt;/code&gt; атрибуты для селекторов — они переживают изменения UI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подойдёт:&lt;/strong&gt; Начинающим в автоматизации, командам с JavaScript веб-приложениями
&lt;strong&gt;Не подойдёт:&lt;/strong&gt; Если нужно тестирование мобильных приложений или Safari из коробки&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Cypress — фреймворк end-to-end тестирования на JavaScript, который работает непосредственно в браузере, обеспечивая быстрое выполнение тестов и отладку в реальном времени без внешних зависимостей WebDriver. С более чем 47 000 звёзд на GitHub и 5,2 млн скачиваний в неделю на npm по состоянию на 2026 год, Cypress стал самым популярным E2E-инструментом для фронтенд-команд. Согласно &lt;a href="https://stateofjs.com/"&gt;опросу State of JS 2024&lt;/a&gt;, Cypress занимает первое место по использованию среди инструментов тестирования в браузере у JavaScript-разработчиков с показателем удержания 59%. В отличие от Selenium, который отправляет команды по HTTP к внешнему драйверу, Cypress выполняется в том же event loop, что и твоё приложение, что устраняет сетевую задержку и даёт более стабильные результаты. Хочешь ли ты написать свой первый автоматизированный тест или мигрировать с другого фреймворка — это полное руководство охватывает установку, селекторы, assertions, моки API, паттерны Page Object, компонентное тестирование, интеграцию с CI/CD и реальные практики, которые я использую в продакшн-наборах Cypress.&lt;/p&gt;</description></item><item><title>Cypress vs Selenium: Детальное Сравнение 2026</title><link>https://yrkan.com/ru/blog/cypress-vs-selenium-comparison/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/cypress-vs-selenium-comparison/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cypress&lt;/strong&gt;: Только JavaScript, работает в браузере, time-travel отладка, автоматическое ожидание&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Selenium&lt;/strong&gt;: Мульти-язык, протокол WebDriver, более широкая поддержка браузеров, мобильный через Appium&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Скорость&lt;/strong&gt;: Cypress в 2-3x быстрее последовательно; параллелизм нужен платный Cloud ($75+/мес)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Отладка&lt;/strong&gt;: Cypress выигрывает однозначно — time-travel, DOM-снимки, автоматические скриншоты&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Выбирай Cypress&lt;/strong&gt; для: JS команд, SPA, быстрой разработки тестов, приоритета отладки&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Выбирай Selenium&lt;/strong&gt; для: мульти-языковых команд, мобильного тестирования, legacy браузеров, Grid в энтерпрайзе&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Моё мнение:&lt;/strong&gt; Если начинаешь с нуля на JavaScript стеке — бери Cypress. Если нужен мульти-язык или мобильное тестирование, Selenium по-прежнему правильный выбор.&lt;/p&gt;</description></item><item><title>Cypress Подробно: Архитектура, Отладка и Мастерство Network Stubbing</title><link>https://yrkan.com/ru/blog/cypress-deep-dive/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/cypress-deep-dive/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cypress работает внутри браузера (не через WebDriver) — тесты быстрее и надёжнее&lt;/li&gt;
&lt;li&gt;Используй &lt;code&gt;cy.intercept()&lt;/code&gt; для network stubbing — это швейцарский нож мокирования API&lt;/li&gt;
&lt;li&gt;Отладка через time-travel снимки, &lt;code&gt;.debug()&lt;/code&gt; и DevTools одновременно&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Лучше всего для:&lt;/strong&gt; Команд, тестирующих современные JavaScript-приложения (React, Vue, Angular), которые ценят developer experience
&lt;strong&gt;Не подходит если:&lt;/strong&gt; Нужна поддержка Safari, тестирование multi-tab или cross-origin iframe&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Cypress революционизировал end-to-end тестирование для современных веб-приложений, внедрив фундаментально иной подход к автоматизации тестирования. В отличие от традиционных фреймворков на базе Selenium, Cypress работает непосредственно внутри браузера, обеспечивая беспрецедентную скорость, надёжность и опыт разработки. Это всестороннее руководство исследует уникальную архитектуру Cypress, продвинутые возможности отладки и техники network stubbing, которыми должен овладеть каждый QA-инженер и специалист по автоматизации тестирования.&lt;/p&gt;</description></item><item><title>Dashboard метрик DevOps для QA: метрики DORA, стабильность тестов и инсайты качества</title><link>https://yrkan.com/ru/blog/devops-metrics-dashboard-qa/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/devops-metrics-dashboard-qa/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; DORA-метрики (частота деплоев, время выполнения, частота сбоев, MTTR) измеряют производительность доставки ПО. QA напрямую улучшает все четыре метрики, обеспечивая более быстрые и надёжные деплои.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="стратегическая-важность-метрик-qa-в-devops"&gt;Стратегическая важность метрик QA в DevOps &lt;a href="#%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b0%d1%8f-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be%d1%81%d1%82%d1%8c-%d0%bc%d0%b5%d1%82%d1%80%d0%b8%d0%ba-qa-%d0%b2-devops" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;В эпоху DevOps и непрерывной доставки метрики качества эволюционировали от простых показателей прошло/не прошло к сложным индикаторам, которые коррелируют производительность тестирования с бизнес-результатами. Хорошо спроектированный dashboard метрик не просто отслеживает тестовую активность—он предоставляет действенные инсайты, которые двигают непрерывное улучшение, предсказывают потенциальные проблемы и демонстрируют ценность инженерии качества стейкхолдерам.&lt;/p&gt;</description></item><item><title>Database DevOps для Автоматизации Тестирования: Flyway, Liquibase и Тестирование Схем</title><link>https://yrkan.com/ru/blog/database-devops-test-automation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/database-devops-test-automation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Database DevOps применяет принципы CI/CD к изменениям схемы с помощью Flyway или Liquibase. Версионируй миграции, запускай их в изолированных CI-окружениях, тестируй откаты и проверяй целостность данных.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="вызов-тестирования-баз-данных-в-devops"&gt;Вызов Тестирования Баз Данных в DevOps &lt;a href="#%d0%b2%d1%8b%d0%b7%d0%be%d0%b2-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d0%b1%d0%b0%d0%b7-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85-%d0%b2-devops" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Изменения в базах данных часто являются самой рискованной частью развертывания программного обеспечения. Традиционные подходы к управлению базами данных - ручные изменения схемы, несогласованные окружения и отсутствие контроля версий - создают узкие места, которые замедляют CI/CD пайплайны и увеличивают риск развертывания. Современные практики DevOps требуют, чтобы изменения баз данных тестировались, версионировались и автоматизировались с той же тщательностью, что и код приложения.&lt;/p&gt;</description></item><item><title>Database Performance Testing: Оптимизация Запросов</title><link>https://yrkan.com/ru/blog/database-performance-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/database-performance-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Тестирование производительности БД использует планы EXPLAIN, журналы медленных запросов и нагрузочные тесты для выявления узких мест. Профилируй при производственных объёмах данных и тестируй лимиты пула соединений.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Производительность базы данных критична для отзывчивости приложений. Медленные запросы могут вызвать проблемы производительности всей системы.&lt;/p&gt;
&lt;p&gt;Тестирование производительности баз данных является важной частью &lt;a href="https://yrkan.com/ru/blog/database-testing-deep-dive"&gt;глубокого погружения в тестирование баз данных&lt;/a&gt; и тесно связано с &lt;a href="https://yrkan.com/ru/blog/api-performance-testing"&gt;тестированием производительности API&lt;/a&gt;. Для комплексного подхода рекомендуем изучить &lt;a href="https://yrkan.com/ru/blog/test-automation-pyramid-strategy"&gt;стратегию автоматизации тестирования&lt;/a&gt; и &lt;a href="https://yrkan.com/ru/blog/continuous-testing-devops"&gt;непрерывное тестирование в DevOps&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Database Testing Deep Dive: От интегрити до производительности</title><link>https://yrkan.com/ru/blog/database-testing-deep-dive/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/database-testing-deep-dive/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Тестирование БД охватывает ограничения целостности, корректность CRUD, хранимые процедуры, производительность и миграции. Тестируй как через слой приложения, так и напрямую к базе данных.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Базы данных — это фундамент большинства приложений, хранящие критические бизнес-данные и обеспечивающие основной функционал. Однако тестирование баз данных часто получает меньше внимания, чем тестирование приложений, что приводит к проблемам в продакшене, от повреждения данных до катастрофической деградации производительности. Это всеобъемлющее руководство охватывает ключевые аспекты тестирования баз данных—от обеспечения целостности данных до валидации сложных миграций—снабжая QA-инженеров практическими стратегиями для тщательной валидации баз данных.&lt;/p&gt;</description></item><item><title>DDoS Testing: Тестирование Устойчивости Системы</title><link>https://yrkan.com/ru/blog/ddos-testing-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ddos-testing-guide/</guid><description>&lt;p&gt;DDoS-атаки — реальная угроза: по данным отчёта Cloudflare о DDoS-угрозах, количество атак на прикладной уровень выросло на 65% в 2023 году, а средняя продолжительность атаки составила 52 минуты. При этом большинство инженерных команд занимаются устойчивостью к DDoS только после инцидента — когда потери измеряются выручкой и нарушениями SLA. DDoS-тестирование проверяет каждый защитный уровень системы: rate limiting, правила WAF, кэширование CDN, геоблокировку, лимиты соединений и автомасштабирование. Согласно OWASP, атаки на доступность входят в топ-10 рисков безопасности веб-приложений. Организации, проводящие структурированное тестирование устойчивости до инцидентов, восстанавливаются на 80% быстрее и минимизируют окно простоя сервиса. В этом руководстве — практический многоуровневый подход к DDoS-тестированию, который можно адаптировать под любую инфраструктуру.&lt;/p&gt;</description></item><item><title>Defect Life Cycle: путь бага от рождения до закрытия</title><link>https://yrkan.com/ru/blog/defect-life-cycle/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/defect-life-cycle/</guid><description>&lt;p&gt;Жизненный цикл дефекта — это структурированный процесс, который определяет, как каждый зарегистрированный баг проходит путь от первичного обнаружения до финального закрытия. По данным исследований, цитируемых &lt;a href="https://smartbear.com/"&gt;SmartBear&lt;/a&gt;, команды, следующие формальному процессу управления дефектами, решают баги &lt;strong&gt;на 45% быстрее&lt;/strong&gt;, чем команды с хаотичным трекингом. Программа ISTQB Foundation Level отдельно рассматривает управление дефектами как одну из ключевых компетенций QA-специалиста. Хорошо определённый lifecycle гарантирует, что ни один баг не теряется в бэклоге, severity и priority назначаются корректно, верификация всегда выполняется перед закрытием, и команда может измерять тенденции плотности и времени разрешения дефектов.&lt;/p&gt;</description></item><item><title>Defect Taxonomy: Классификация Багов и Анализ Паттернов</title><link>https://yrkan.com/ru/blog/defect-taxonomy/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/defect-taxonomy/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Таксономия дефектов систематически классифицирует баги по типу, серьёзности, первопричине и фазе обнаружения. Используя ODC, команды выявляют слабые места процессов из паттернов дефектов и принимают решения на основе данных.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Defect Taxonomy&lt;/strong&gt; (Таксономия Дефектов) предоставляет систематическую схему классификации багов, позволяя командам анализировать паттерны дефектов, идентифицировать корневые причины и внедрять стратегии предотвращения. Классифицируя дефекты последовательно, организации создают ценные данные для улучшения процессов, обучения и метрик качества.&lt;/p&gt;
&lt;p&gt;Таксономия дефектов интегрируется с &lt;a href="https://yrkan.com/ru/blog/defect-life-cycle"&gt;Defect Life Cycle&lt;/a&gt; для полного управления багами, питает &lt;a href="https://yrkan.com/ru/blog/testing-metrics-kpis-guide"&gt;Testing Metrics and KPIs&lt;/a&gt; данными классификации и поддерживает &lt;a href="https://yrkan.com/ru/blog/defect-taxonomy"&gt;Root Cause Analysis&lt;/a&gt; структурированными категориями.&lt;/p&gt;</description></item><item><title>Detox: Grey-Box Тестирование для React Native Приложений</title><link>https://yrkan.com/ru/blog/detox-react-native-grey-box/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/detox-react-native-grey-box/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Detox обеспечивает grey-box E2E-тестирование для React Native, синхронизируясь с JavaScript-рантаймом приложения. Это устраняет ненадёжные вызовы sleep(), даёт более быстрые тесты, чем Appium, и поддерживает iOS и Android.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Detox революционизирует тестирование React (как обсуждается в &lt;a href="https://yrkan.com/ru/blog/mobile-testing-2025-ios-android-beyond"&gt;Mobile Testing in 2025: iOS, Android and Beyond&lt;/a&gt;) Native, реализуя подход grey-box тестирования, который сочетает преимущества методологий white-box и black-box. Этот фреймворк использует внутреннее знание о runtime React Native, тестируя через пользовательский интерфейс, обеспечивая надежные, быстрые и поддерживаемые end-to-end тесты.&lt;/p&gt;</description></item><item><title>DNS для тестировщиков</title><link>https://yrkan.com/ru/course/module-10-networking/dns-for-testers/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-10-networking/dns-for-testers/</guid><description>&lt;h2 id="как-работает-dns"&gt;Как работает DNS &lt;a href="#%d0%ba%d0%b0%d0%ba-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d0%b5%d1%82-dns" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Система доменных имён (DNS) — это телефонная книга интернета: она переводит понятные человеку доменные имена (вроде &lt;code&gt;api.example.com&lt;/code&gt;) в IP-адреса (вроде &lt;code&gt;93.184.216.34&lt;/code&gt;), которые компьютеры используют для связи. Каждый сетевой запрос вашего приложения начинается с DNS-запроса, что делает DNS основой всей сетевой коммуникации.&lt;/p&gt;
&lt;h3 id="процесс-разрешения"&gt;Процесс разрешения &lt;a href="#%d0%bf%d1%80%d0%be%d1%86%d0%b5%d1%81%d1%81-%d1%80%d0%b0%d0%b7%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Когда браузеру или тестовому инструменту нужно разрешить доменное имя, происходит каскад запросов:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Кеш браузера:&lt;/strong&gt; Браузер сначала проверяет собственный DNS-кеш (обычно 60 секунд)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Кеш ОС:&lt;/strong&gt; Проверяется кеш DNS-резолвера операционной системы&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Рекурсивный резолвер:&lt;/strong&gt; Запрашивается DNS-сервер вашего провайдера или настроенный (Google 8.8.8.8 или Cloudflare 1.1.1.1)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Корневой nameserver:&lt;/strong&gt; Если у резолвера нет кешированного ответа, он спрашивает корневой сервер, который направляет к TLD-серверу&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TLD nameserver:&lt;/strong&gt; Сервер .com, .org или .io направляет к авторитативному серверу домена&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Авторитативный nameserver:&lt;/strong&gt; Возвращает фактическую DNS-запись с IP-адресом&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Весь процесс обычно занимает 20-100мс, но может кешироваться на каждом уровне, сокращая последующие запросы практически до нуля.&lt;/p&gt;</description></item><item><title>Dynamic Testing: тестирование в действии</title><link>https://yrkan.com/ru/blog/dynamic-testing-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/dynamic-testing-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Динамическое тестирование&lt;/strong&gt;: Выполнение кода для проверки поведения, функциональности и производительности&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевой принцип&lt;/strong&gt;: Запускай ПО с реальными данными и проверяй фактические результаты&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Основные уровни&lt;/strong&gt;: Unit → Integration → System → Acceptance тестирование&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Техники&lt;/strong&gt;: Black box (ввод/вывод), white box (пути в коде), grey box (частичное знание)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Лучшая практика&lt;/strong&gt;: Следуй пирамиде тестов — много unit, меньше integration, минимум E2E&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Автоматизируй&lt;/strong&gt;: Динамические тесты должны быть в CI/CD для немедленного обнаружения регрессий&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 12 минут&lt;/p&gt;</description></item><item><title>Equivalence Partitioning: Делим Данные на Классы</title><link>https://yrkan.com/ru/blog/equivalence-partitioning/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/equivalence-partitioning/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Разбиение на классы эквивалентности группирует входные данные в классы с одинаковым поведением, затем тестирует по одному представителю от каждого класса. В сочетании с анализом граничных значений обеспечивает эффективное покрытие.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Тестирование каждого возможного входного значения невозможно. Простое поле пароля, принимающее 8-32 символа, имеет миллиарды потенциальных входов. &lt;a href="https://www.istqb.org/certifications/certified-tester-foundation-level"&gt;Силлабус ISTQB Foundation Level&lt;/a&gt; определяет разбиение на классы эквивалентности как одну из четырёх основных техник проектирования тестов методом чёрного ящика. Согласно исследованиям &lt;a href="https://www.computer.org/"&gt;IEEE Computer Society&lt;/a&gt;, эта техника сокращает тестовые наборы на 60-80% при сохранении сопоставимого уровня обнаружения дефектов. Борис Бейзер в фундаментальной работе &lt;em&gt;Software Testing Techniques&lt;/em&gt; продемонстрировал, что систематическое разбиение выявляет 85% дефектов, связанных с вводом данных, при использовании лишь малой части тест-кейсов, которые потребовало бы исчерпывающее тестирование. Как тестировать всесторонне, не тратя годы на написание тест-кейсов?&lt;/p&gt;</description></item><item><title>Espresso &amp; XCUITest: Мастеринг Нативных Фреймворков Мобильного Тестирования</title><link>https://yrkan.com/ru/blog/espresso-xcuitest-native-frameworks/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/espresso-xcuitest-native-frameworks/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Espresso (Android) и XCUITest (iOS) — нативные фреймворки, работающие в процессе приложения, что даёт тесты в 2-5 раз быстрее, чем кросс-платформенные инструменты.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Espresso (как обсуждается в &lt;a href="https://yrkan.com/ru/blog/mobile-testing-2025-ios-android-beyond"&gt;Mobile Testing in 2025: iOS, Android and Beyond&lt;/a&gt;) (как обсуждается в &lt;a href="https://yrkan.com/ru/blog/appium-2-architecture-cloud"&gt;Appium 2.0: New Architecture and Cloud Integration for Modern Mobile Testing&lt;/a&gt;) (как обсуждается в &lt;a href="https://yrkan.com/ru/blog/detox-react-native-grey-box"&gt;Detox: Grey-Box Testing for React Native Applications&lt;/a&gt;) и XCUITest представляют официальные подходы Google и Apple к нативному мобильному тестированию, обеспечивая глубокую интеграцию со своими платформами. Эти фреймворки предлагают превосходную производительность, надежность и доступ к специфичным для платформы функциям, которые кроссплатформенные инструменты не могут обеспечить.&lt;/p&gt;</description></item><item><title>Exploratory Testing: искусство исследования программного обеспечения</title><link>https://yrkan.com/ru/blog/rukovodstvo-exploratory-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/rukovodstvo-exploratory-testing/</guid><description>&lt;p&gt;Исследовательское тестирование обнаруживает непропорционально большую долю критических багов. По данным отчёта SmartBear о качестве программного обеспечения, 42% команд используют его как основной метод поиска дефектов, которые пропускают автоматизированные наборы. В отличие от скриптованного тестирования — где выполняются заранее определённые тест-кейсы — исследовательское тестирование сочетает обучение, проектирование и выполнение одновременно: тестировщик активно адаптирует подход на основе того, что находит в реальном времени. Джеймс Бах, один из пионеров современного исследовательского тестирования, определяет его как тестирование, при котором тестировщик контролирует проектирование тестов по мере их выполнения. ISTQB классифицирует его как форму тестирования, основанного на опыте. Команды, сочетающие session-based исследовательское тестирование (SBTM) с туровыми эвристиками, стабильно находят на 30–60% больше дефектов, чем команды, запускающие только скриптованные тесты. Это руководство даёт полный фреймворк — от написания charter до проведения сессий и отчётности по результатам.&lt;/p&gt;</description></item><item><title>Exploratory Testing: структурированное исследование для лучшего качества</title><link>https://yrkan.com/ru/blog/exploratory-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/exploratory-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Исследовательское тестирование — это структурированное исследование с чартерами, таймбоксами и эвристиками, а не хаотичное кликание&lt;/li&gt;
&lt;li&gt;Используй Session-Based Test Management (SBTM): 90-минутные сессии, заметки дебрифинга и метрики покрытия&lt;/li&gt;
&lt;li&gt;Комбинируй с автоматизированным регрессом — исследовательское тестирование находит на 30-40% больше критических дефектов&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; QA-команд, которые хотят находить баги, пропущенные скриптовыми тестами, особенно в новых фичах
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Тебе нужно только повторяемое регрессионное покрытие без исследовательской работы&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Исследовательское тестирование находит на 30-40% больше критических дефектов, чем только скриптовые тесты, согласно отчёту SmartBear о состоянии качества ПО. Однако многие организации воспринимают его как неформальное &amp;ldquo;тыкание кнопок&amp;rdquo;, а не структурированную дисциплину. Это различие важно: правильное исследовательское тестирование использует чартеры (определяющие что исследовать), 60-90-минутные сессии с таймбоксом и структурированные заметки. Джеймс Бах, создавший термин &amp;ldquo;сессионное управление тестированием&amp;rdquo;, определяет исследовательское тестирование как одновременное изучение, проектирование и выполнение тестов — когнитивный навык, совершенствующийся с практикой. Согласно World Quality Report 2024 от Capgemini, 67% руководителей QA называют исследовательское тестирование основным источником серьёзных ошибок в сложных функциях. Это руководство охватывает полный инструментарий: структуру сессий, написание чартеров, эвристики и интеграцию с автоматизацией.&lt;/p&gt;</description></item><item><title>Flaky Test Detection с Machine Learning: Борьба с Нестабильными Тестами</title><link>https://yrkan.com/ru/blog/flaky-test-ml-detection/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/flaky-test-ml-detection/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Обнаружение нестабильных тестов на основе ML анализирует исторические паттерны с точностью 85-92%, превосходя методы на основе порогов. Стройте конвейеры обнаружения с метриками выполнения тестов как признаками, обучайте на минимум 30 днях истории.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Нестабильные тесты потребляют 16% всех вычислительных ресурсов CI в Google, что побудило компанию разработать обнаружение на основе ML для выявления нестабильных тестов до расхода ресурсов. Согласно исследованию, опубликованному на IEEE International Conference on Software Testing 2022, модели ML, анализирующие историю выполнения тестов, достигают точности 85-92% — по сравнению с 60-70% для простого обнаружения по порогам. Ключевое понимание: нестабильные тесты оставляют предсказуемые сигнатуры в данных выполнения. Тесты, которые отказывают не случайно, показывают характерные паттерны в последовательностях отказов и временных распределениях. Команда Microsoft Azure DevOps сократила инциденты с нестабильными тестами на 73% после внедрения раннего обнаружения на основе ML. В этом руководстве рассматривается построение конвейера обнаружения: сбор данных, разработка признаков, выбор модели и интеграция с CI/CD.&lt;/p&gt;</description></item><item><title>Flaky Test Management в CI/CD</title><link>https://yrkan.com/ru/blog/flaky-test-management-in-ci-cd/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/flaky-test-management-in-ci-cd/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Нестабильные тесты подрывают надёжность CI/CD. Обнаруживайте их, отслеживая частоту отказов (&amp;gt;5% = нестабильный), немедленно помещайте в карантин с тегами @flaky, устраняйте коренные причины (тайминг, зависимости от окружения) и устанавливайте SLA 30 дней на исправление.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Flaky tests — один из самых фрустрирующих вызовов в современных CI/CD pipelines. Flaky test — это тест, который проявляет недетерминированное поведение—иногда проходит, а иногда падает без изменений в коде. Эти тесты подрывают уверенность команды, тратят инженерные часы впустую и могут маскировать реальные баги. Это комплексное руководство предоставляет продвинутые стратегии для обнаружения, управления и финального устранения flaky tests из вашего CI/CD pipeline.&lt;/p&gt;</description></item><item><title>Flutter Testing: Полное Руководство по Юнит, Виджет и Интеграционным Тестам</title><link>https://yrkan.com/ru/blog/flutter-testing-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/flutter-testing-guide/</guid><description>&lt;p&gt;Flutter стал одним из самых быстрорастущих мобильных фреймворков в мире — более 166 000 звёзд на GitHub и применение в Google, BMW, eBay и сотнях компаний из списка Fortune 500. По данным опроса разработчиков Flutter 2024, фреймворк используется в более чем 1 миллионе опубликованных приложений в Play Store и App Store вместе взятых. Единая кодовая база для iOS, Android, веба и десктопа делает стратегию тестирования критически важной инвестицией — один набор тестов охватывает все платформы. Многоуровневая архитектура тестирования Flutter уникальна: юнит-тесты работают за миллисекунды без устройства, тесты виджетов рендерят UI-компоненты в виртуальной среде без реального экрана, а интеграционные тесты запускаются на реальном железе для сквозной валидации. Этот трёхуровневый подход при правильном соотношении (70% юнит, 20% виджет, 10% интеграция) обеспечивает как комплексное покрытие, так и быстрые циклы обратной связи.&lt;/p&gt;</description></item><item><title>Gatling Load Testing Tutorial: Полное Руководство по Тестированию Производительности на Scala</title><link>https://yrkan.com/ru/blog/gatling-load-testing-tutorial/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/gatling-load-testing-tutorial/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Gatling — инструмент нагрузочного тестирования с приоритетом кода на Scala DSL, обрабатывающий в 10 раз больше параллельных пользователей, чем JMeter. Пишите сценарии как код Scala, используйте фидеры для данных и настраивайте пороги для CI/CD.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Gatling используют более 100 000 разработчиков по всему миру, и он включён в ThoughtWorks Technology Radar как рекомендуемый инструмент для нагрузочного тестирования с приоритетом кода. Построенный на асинхронной архитектуре Netty/Akka, Gatling обрабатывает в 10 раз больше параллельных пользователей, чем JMeter, на аналогичном оборудовании. Согласно опросу State of Performance Testing 2024, использование Gatling выросло на 34% год к году. Scala DSL позволяет выразительно писать сценарии, использовать фидеры для тестирования на основе данных и автоматически генерировать HTML-отчёты с перцентильными разбивками. В отличие от JMeter, симуляции Gatling — просто классы Scala, которые можно версионировать и проверять в тех же пул-реквестах, что и код приложения. В этом руководстве рассматривается полный инструментарий: основы Scala DSL, настройка HTTP, фидеры, утверждения и интеграция с CI/CD.&lt;/p&gt;</description></item><item><title>Gatling: Высокопроизводительное Нагрузочное Тестирование с Scala DSL</title><link>https://yrkan.com/ru/blog/gatling-testirovanie-proizvoditelnosti/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/gatling-testirovanie-proizvoditelnosti/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Gatling использует async архитектуру Netty/Akka для симуляции в 10 раз больше пользователей, чем потоковые инструменты. Пишите сценарии на Scala с DSL Simulation, используйте фидеры для реалистичных данных и анализируйте перцентили p95/p99 в HTML-отчётах.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Gatling доверяют более 100 000 разработчиков, и он включён в ThoughtWorks Technology Radar как рекомендуемый инструмент высокопроизводительного нагрузочного тестирования. Его асинхронная архитектура Netty/Akka — ключевое отличие: где JMeter использует один поток на симулируемого пользователя, Gatling использует событийно-ориентированные корутины — позволяя одной машине симулировать более 50 000 параллельных пользователей. По данным опроса State of Performance Testing 2024, использование Gatling выросло на 34% год к году по мере перехода команд от инструментов на основе GUI к нагрузочному тестированию с приоритетом кода. Сценарии Gatling — обычные классы Scala: версионируемые, проверяемые в пул-реквестах и параметризуемые. В этом руководстве рассматриваются продвинутые паттерны Gatling: реалистичная симуляция пользователей с фидерами, профили инъекции корпоративного уровня и интерпретация HTML-отчётов для диагностики узких мест производительности.&lt;/p&gt;</description></item><item><title>GitHub Actions для Автоматизации QA</title><link>https://yrkan.com/ru/blog/github-actions-for-qa-automation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/github-actions-for-qa-automation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; GitHub Actions обеспечивает встроенную автоматизацию тестирования с YAML-рабочими процессами, матричной стратегией для параллельного тестирования в браузерах и обязательными проверками статуса для требований качества. Используйте повторно используемые рабочие процессы и загрузку артефактов для отчётов.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;GitHub Actions используют более 100 миллионов разработчиков, что делает его наиболее широко используемой платформой CI/CD для автоматизации QA, согласно отчёту GitHub Octoverse 2024. Нативная интеграция платформы с пул-реквестами и защитой веток обеспечивает требования качества, блокирующие слияния при провале тестов. По данным DORA State of DevOps 2024, команды, использующие автоматизацию CI/CD с правилами защиты ветки, развёртывают в 5 раз чаще при 50% более низком уровне сбоев. Матричная стратегия GitHub Actions обеспечивает параллельное выполнение тестов в нескольких браузерах — сокращая время цикла тестирования на 60-80%. В этом руководстве рассматривается полный стек автоматизации QA с GitHub Actions: структура рабочих процессов, матричное тестирование, паттерны повторно используемых рабочих процессов и управление требованиями качества.&lt;/p&gt;</description></item><item><title>GitLab CI/CD для Workflows Тестирования</title><link>https://yrkan.com/ru/blog/gitlab-ci-cd-for-testing-workflows/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/gitlab-ci-cd-for-testing-workflows/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Рабочие процессы тестирования GitLab CI/CD используют .gitlab-ci.yml со стадиями (build → test → report), артефакты JUnit XML для отчётов в виджетах MR, конвейеры DAG и Review Apps для тестирования среды на каждый MR. Кэш и parallel: сокращают длительность конвейера на 50-70%.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;GitLab CI/CD используют более 30 миллионов разработчиков, и это единственная платформа, предлагающая полный жизненный цикл DevOps в одном приложении, согласно Global DevSecOps Report GitLab 2024. Нативная интеграция CI/CD с запросами на слияние, отчётностью о тестах и управлением средой делает его особенно мощным для автоматизации QA: результаты тестов появляются непосредственно в виджетах MR, изменения покрытия блокируют слияния, а Review Apps обеспечивают развёртывание для каждой ветки. По данным DORA State of DevOps 2024, команды, использующие интегрированную автоматизацию тестирования, достигают в 4 раза более высокой частоты развёртывания. Режим конвейера DAG позволяет заданиям начинаться сразу после завершения зависимостей — сокращая общее время конвейера на 30-50%.&lt;/p&gt;</description></item><item><title>GitOps Workflows для QA и Тестирования</title><link>https://yrkan.com/ru/blog/gitops-workflows-for-qa-and-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/gitops-workflows-for-qa-and-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; GitOps-рабочие процессы для QA управляют тестовыми средами декларативно через Git. Каждое изменение конфигурации — это PR с проверкой, автосинхронизация ArgoCD/Flux устраняет дрейф, а тестовые среды воспроизводимы из любого коммита Git.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Практики GitOps сокращают время предоставления тестовой среды на 70% и устраняют дрейф конфигурации, вызывающий нестабильные тесты, согласно CNCF Cloud Native Survey 2024. Храня конфигурацию тестовой среды, схемы тестовых данных и определения конвейера в репозиториях Git, команды QA получают те же преимущества для инфраструктуры, что разработчики ожидают для кода: историю версий, проверку PR и мгновенный откат. ArgoCD и Flux непрерывно согласовывают фактическое состояние Kubernetes с Git — любое ручное изменение тестовой среды автоматически откатывается в течение 5 минут. Для QA-рабочих процессов GitOps обеспечивает эфемерные тестовые среды, создаваемые при открытии PR и уничтожаемые при слиянии, постепенное продвижение тестовых сред и проверку изменений инфраструктуры вместе с изменениями кода приложения.&lt;/p&gt;</description></item><item><title>GitOps для тестовых окружений: управление тестовой инфраструктурой через Git-репозитории</title><link>https://yrkan.com/ru/blog/gitops-test-environments/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/gitops-test-environments/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; GitOps управляет тестовыми средами декларативно через Git — ArgoCD или Flux автоматически синхронизируют состояние Kubernetes с репозиториями Git. Продвижение среды — это Git PR, каждое изменение отслеживаемо, а дрейф конфигурации устраняется непрерывной согласованностью.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Практики GitOps сокращают время предоставления среды на 70% и устраняют дрейф конфигурации, вызывающий сбои &amp;ldquo;работает на моей машине&amp;rdquo;, согласно CNCF Cloud Native Survey 2024. Рассматривая конфигурацию тестовой среды как код в репозиториях Git, команды получают те же преимущества для инфраструктуры, что контроль версий даёт коду приложения: отслеживаемость, возможность отката и проверку каждого изменения. ArgoCD и Flux непрерывно согласовывают фактическое состояние кластера Kubernetes с желаемым состоянием в Git — любой дрейф автоматически исправляется в течение 5 минут. Для команд QA GitOps означает, что каждая тестовая среда воспроизводима из коммита Git: можно воссоздать любое прошлое состояние и продвигать конфигурации через среды с тем же рабочим процессом пул-реквестов, что используется для кода приложения.&lt;/p&gt;</description></item><item><title>Grafana и Prometheus: Полный Stack Мониторинга Производительности</title><link>https://yrkan.com/ru/blog/grafana-prometheus-monitoring/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/grafana-prometheus-monitoring/</guid><description>&lt;p&gt;Prometheus и Grafana формируют индустриальный стандарт open-source стека мониторинга, принятый &lt;strong&gt;63% организаций, использующих Kubernetes&lt;/strong&gt;, согласно CNCF Annual Survey 2023. Prometheus занимается сбором метрик — опрашивая time-series данные из эндпоинтов приложений каждые 15 секунд по умолчанию — в то время как Grafana визуализирует эти данные через настраиваемые дашборды и алерты. Для QA-инженеров этот стек обеспечивает видимость в реальном времени того, как приложение ведёт себя под нагрузкой: частота ошибок, P95-задержка и пропускная способность — всё это наблюдаемо без зависимости от облачных вендоров. Grafana Labs сообщает о более чем &lt;strong&gt;10 миллионах активных инстанций Grafana&lt;/strong&gt; по всему миру, что делает её наиболее широко развёртываемым frontend-решением для observability в отрасли.&lt;/p&gt;</description></item><item><title>Hoppscotch: Open-source платформа для API тестирования в браузере</title><link>https://yrkan.com/ru/blog/hoppscotch-browser-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/hoppscotch-browser-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Hoppscotch — бесплатная платформа тестирования API с открытым исходным кодом, поддерживающая REST, GraphQL, WebSocket и gRPC в браузере. Используйте для быстрого исследования API, командного сотрудничества через общие коллекции и интеграции CI/CD через Hoppscotch CLI.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Hoppscotch имеет более 63 000 звёзд на GitHub и 5 миллионов+ пользователей, что делает его одним из наиболее быстро растущих инструментов тестирования API с открытым исходным кодом. В отличие от Postman, который требует локальной установки и платного уровня для расширенных функций совместной работы, Hoppscotch работает полностью в браузере и полностью бесплатен. Его поддержка REST, GraphQL, WebSocket и gRPC в одном интерфейсе охватывает современный API-ландшафт. По данным State of API Testing от SmartBear 2024, 34% команд регулярно тестируют более одного протокола API. CLI Hoppscotch обеспечивает интеграцию CI/CD для автоматизированных запусков коллекций, а развёртывание с Docker даёт командам полный контроль над данными. В этом руководстве рассматривается полный инструментарий Hoppscotch.&lt;/p&gt;</description></item><item><title>HTTP: глубокое погружение</title><link>https://yrkan.com/ru/course/module-10-networking/http-deep-dive/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-10-networking/http-deep-dive/</guid><description>&lt;h2 id="эволюция-версий-http"&gt;Эволюция версий HTTP &lt;a href="#%d1%8d%d0%b2%d0%be%d0%bb%d1%8e%d1%86%d0%b8%d1%8f-%d0%b2%d0%b5%d1%80%d1%81%d0%b8%d0%b9-http" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;HTTP значительно эволюционировал с момента создания, и каждая версия вносит изменения, которые напрямую влияют на тестирование веб-приложений. Понимание этих различий необходимо для диагностики проблем производительности и написания точных тестовых ассертов.&lt;/p&gt;
&lt;h3 id="http11-рабочая-лошадка"&gt;HTTP/1.1: Рабочая лошадка &lt;a href="#http11-%d1%80%d0%b0%d0%b1%d0%be%d1%87%d0%b0%d1%8f-%d0%bb%d0%be%d1%88%d0%b0%d0%b4%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;HTTP/1.1 приводит в движение веб с 1997 года. Его ключевые возможности включают persistent-соединения (повторное использование TCP-соединения для нескольких запросов) и pipelining (отправка нескольких запросов без ожидания ответов). Однако HTTP/1.1 страдает от блокировки head-of-line — если один запрос медленный, все последующие запросы на том же соединении должны ждать.&lt;/p&gt;</description></item><item><title>HTTPie и cURL: Сравнение инструментов командной строки для API тестирования</title><link>https://yrkan.com/ru/blog/httpie-curl-cli-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/httpie-curl-cli-testing/</guid><description>&lt;p&gt;Для разработчиков, живущих в терминале, инструменты командной строки для тестирования API незаменимы. curl предустановлен практически на каждой Unix-подобной системе с 1997 года и с 2023 года включён в &lt;strong&gt;Windows 10+ по умолчанию&lt;/strong&gt; — доступен на оценочно &lt;strong&gt;10 миллиардах устройств&lt;/strong&gt; по данным самого проекта curl. HTTPie, напротив, превысил &lt;strong&gt;30 000 звёзд на GitHub&lt;/strong&gt; и ценится за дружественный синтаксис, делающий JSON API естественными для интерактивного запроса. Два инструмента служат одной фундаментальной цели — делать HTTP запросы из терминала — но с разными философиями: curl ставит во главу угла универсальную совместимость и сырую мощь, HTTPie — читаемость и счастье разработчика.&lt;/p&gt;</description></item><item><title>IDE и расширения для тестировщика: Полное руководство по инструментам для QA-инженеров</title><link>https://yrkan.com/ru/blog/ide-extensions-for-testers/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ide-extensions-for-testers/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Расширения IDE трансформируют продуктивность разработки тестов. Основные расширения VS Code для тестировщиков: Playwright Test (запись/запуск/отладка), REST Client (тестирование API inline), GitLens, Error Lens и Copilot (генерация тест-кейсов).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Современное тестирование программного обеспечения требует большего, чем просто ручные клики и исследовательское тестирование. Сегодняшние QA-инженеры нуждаются в мощных средах разработки, специализированных расширениях и инструментах отладки для написания автоматизированных тестов, анализа сетевого трафика и эффективного расследования багов. Это всеобъемлющее руководство охватывает основные IDE, расширения и инструменты, которые должен освоить каждый тестировщик.&lt;/p&gt;</description></item><item><title>Insomnia REST Client: Полное руководство и лучшие практики</title><link>https://yrkan.com/ru/blog/insomnia-rest-client/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/insomnia-rest-client/</guid><description>&lt;p&gt;Insomnia — это мощный REST API клиент, приобретённый Kong в 2019 году. Инструмент собрал преданную аудиторию — &lt;strong&gt;GitHub репозиторий Insomnia имеет более 34 000 звёзд&lt;/strong&gt; — особенно среди разработчиков, работающих с GraphQL API, где возможности интроспекции схемы и автодополнения считаются лучшими в классе. После приобретения Kong Insomnia претерпел значительные изменения в 2023 году, когда часть функций синхронизации переместилась за логин-требование, что побудило многих пользователей рассмотреть альтернативы вроде &lt;a href="https://yrkan.com/ru/blog/bruno-api-client/"&gt;Bruno&lt;/a&gt;. Несмотря на это, Insomnia остаётся сильным выбором для команд, ценящих чистый интерфейс, экосистему плагинов и отличный GraphQL-инструментарий. &lt;a href="https://docs.insomnia.rest/"&gt;Документация Insomnia&lt;/a&gt; охватывает тестирование REST, GraphQL и gRPC с одинаковой глубиной.&lt;/p&gt;</description></item><item><title>iOS UI Тестирование с XCTest: Продвинутые Техники и Лучшие Практики</title><link>https://yrkan.com/ru/blog/ios-xctest-ui-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ios-xctest-ui-testing/</guid><description>&lt;p&gt;XCUITest — это нативный фреймворк Apple для UI тестирования iOS, встроенный прямо в Xcode. iOS занимает &lt;strong&gt;около 27% мирового рынка смартфонов&lt;/strong&gt; (Statcounter 2024), что представляет огромную QA-ответственность для мобильных команд. Фреймворк XCTest Apple, включающий как юнит-тесты, так и UI-тесты через XCUITest, — это единственный фреймворк, способный работать на iOS Simulators и физических устройствах без стороннего middleware. Согласно &lt;a href="https://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual/testing_with_xcode/"&gt;документации Apple по тестированию&lt;/a&gt;, XCUITest использует Accessibility API для взаимодействия с UI элементами, что делает тесты изначально устойчивыми к изменениям макета — при условии правильной установки идентификаторов доступности.&lt;/p&gt;</description></item><item><title>Jenkins Pipeline для Автоматизации Тестирования</title><link>https://yrkan.com/ru/blog/jenkins-pipeline-for-test-automation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/jenkins-pipeline-for-test-automation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Jenkins Pipeline для автоматизации тестирования использует декларативный конвейер (Jenkinsfile) с parallel{} для параллельного выполнения тестов, Shared Libraries для повторно используемой логики стадий и разбор JUnit XML для визуализации результатов.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;В 2024 году 78% команд разработки, использующих Jenkins, сообщили о значительных улучшениях в эффективности автоматизации тестирования благодаря правильной реализации pipeline. Jenkins Pipeline трансформирует подход QA команд к непрерывному тестированию, обеспечивая инфраструктуру как код, параллельное выполнение тестов и бесшовную интеграцию с фреймворками тестирования. Это комплексное руководство показывает, как строить надёжные, масштабируемые Jenkins pipeline, специально спроектированные для рабочих процессов автоматизации тестирования.&lt;/p&gt;</description></item><item><title>Jest &amp; Testing Library: Современное Компонентное Тестирование для React Приложений</title><link>https://yrkan.com/ru/blog/jest-testing-library-komponenetnoe-testirovanie/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/jest-testing-library-komponenetnoe-testirovanie/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Jest — это тест-раннер; React Testing Library — утилита для взаимодействия с компонентами. Вместе они являются стандартом тестирования React. Делай запросы по роли и label, используй userEvent для взаимодействий, MSW для мокирования API, findBy для асинхронных элементов. Jest используют 73% JavaScript-разработчиков.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Jest и React Testing Library стали де-факто стандартом для тестирования React-приложений, объединяя мощный тест-раннер с утилитами взаимодействия, ориентированными на пользователя. Jest, разработанный Facebook/Meta, обеспечивает полную инфраструктуру тестирования — запуск тестов, утверждения, моки и покрытие кода. React Testing Library от Kent C. Dodds поощряет тестирование компонентов так, как с ними взаимодействуют реальные пользователи. По данным State of JS Survey 2023, Jest используют 73% JavaScript-разработчиков, делая его самым распространённым фреймворком тестирования в экосистеме. Статистика npm показывает, что @testing-library/react превысила 10 миллионов еженедельных загрузок в 2024 году. Связка поддерживает современные практики тестирования: запросы на основе доступности, симуляцию пользовательских событий и интеграцию с CI/CD через GitHub Actions.&lt;/p&gt;</description></item><item><title>Jest Tutorial: Полное Руководство по Unit-тестированию JavaScript</title><link>https://yrkan.com/ru/blog/jest-testing-tutorial/</link><pubDate>Tue, 27 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/jest-testing-tutorial/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Jest — фреймворк тестирования без конфигурации со встроенными assertions, моками и покрытием&lt;/li&gt;
&lt;li&gt;Matchers вроде &lt;code&gt;toBe&lt;/code&gt;, &lt;code&gt;toEqual&lt;/code&gt;, &lt;code&gt;toContain&lt;/code&gt; делают assertions читаемыми&lt;/li&gt;
&lt;li&gt;Мокай функции с &lt;code&gt;jest.fn()&lt;/code&gt;, модули с &lt;code&gt;jest.mock()&lt;/code&gt;, таймеры с &lt;code&gt;jest.useFakeTimers()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Async тестирование: используй &lt;code&gt;async/await&lt;/code&gt;, &lt;code&gt;resolves/rejects&lt;/code&gt; или callback &lt;code&gt;done&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Snapshot тестирование захватывает UI — полезно для React компонентов&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; JavaScript/TypeScript разработчиков, React/Vue/Node.js проектов, команд, хотящих всё-в-одном
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Нужно браузерное тестирование (используй Playwright/Cypress)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Jest — наиболее широко используемый фреймворк тестирования JavaScript, стабильно занимающий первое место в опросе State of JS 2024 по всем категориям инструментов тестирования. Имея более 44 000 звёзд на GitHub и десятки миллионов загрузок npm в неделю, Jest поставляет всё необходимое JavaScript-проекту для unit- и интеграционного тестирования в одной зависимости: test runner, библиотеку assertions на основе expect(), систему моков для функций, модулей и таймеров, встроенное покрытие кода через V8 и snapshot-тестирование для захвата отрендеренного вывода. Созданный Facebook и теперь поддерживаемый open-source сообществом под OpenJS Foundation, Jest работает с React, Vue, Angular, Node.js и любой JavaScript или TypeScript кодовой базой. Нулевая конфигурация означает, что большинство проектов может запустить первый тестовый набор в течение нескольких минут после установки. Официальная документация на jestjs.io/docs/getting-started детально описывает весь API. Этот туториал обучает Jest с первых принципов — matchers, паттерны async-тестирования, стратегии моков, snapshot-воркфлоу и конфигурация покрытия — с практическими примерами и лучшими практиками, которые делают тестовые наборы поддерживаемыми в масштабе.&lt;/p&gt;</description></item><item><title>Jest vs Mocha: Сравнение JavaScript Тестирования 2026</title><link>https://yrkan.com/ru/blog/jest-vs-mocha-comparison/</link><pubDate>Sat, 07 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/jest-vs-mocha-comparison/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Jest&lt;/strong&gt;: Zero-config, встроенный mocking/coverage/snapshots, параллелизм по умолчанию — рекомендую для большинства новых проектов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mocha&lt;/strong&gt;: Гибкость в выборе инструментов, устоявшаяся экосистема Node.js, лучше для команд, которые хотят контроль&lt;/li&gt;
&lt;li&gt;Jest работает в 2-3 раза быстрее на больших сьютах благодаря параллельным воркерам и умной сортировке тестов&lt;/li&gt;
&lt;li&gt;Mocha + Chai + Sinon даёт те же возможности, но требует 3 пакета вместо 1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подойдёт:&lt;/strong&gt; Командам, выбирающим JavaScript тест-фреймворк для нового или существующего проекта
&lt;strong&gt;Не подойдёт:&lt;/strong&gt; Если используешь Vite (бери Vitest) или Python (бери pytest)&lt;/p&gt;</description></item><item><title>JMeter Tutorial: Полное Руководство по Нагрузочному Тестированию</title><link>https://yrkan.com/ru/blog/jmeter-tutorial-load-testing/</link><pubDate>Thu, 29 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/jmeter-tutorial-load-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Apache JMeter — самый популярный open-source инструмент нагрузочного тестирования. Установи его, создай Thread Group, добавь HTTP Sampler, запусти в CLI-режиме и проанализируй результаты в HTML-отчёте.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Apache JMeter — наиболее загружаемый инструмент нагрузочного тестирования с более чем 10 миллионами загрузок, согласно статистике Apache Software Foundation. По данным SmartBear State of API Testing 2024, 47% команд, проводящих нагрузочное тестирование, используют JMeter — более чем в два раза больше, чем у следующего по популярности инструмента. GUI позволяет создавать тесты через запись или ручную конфигурацию без программирования. Для продвинутого использования добавь параметризацию через CSV Data Set Config, корреляцию через Regular Expression Extractor и интеграцию с CI/CD через non-GUI режим. Этот туториал охватывает JMeter от первого теста до интеграции в CI/CD: структуру тест-плана, thread groups, samplers, assertions и распределённое тестирование.&lt;/p&gt;</description></item><item><title>JMeter vs Gatling: Сравнение Инструментов Нагрузочного Тестирования 2026</title><link>https://yrkan.com/ru/blog/jmeter-vs-gatling-comparison/</link><pubDate>Sun, 08 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/jmeter-vs-gatling-comparison/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;JMeter&lt;/strong&gt;: GUI-based, Java, больше протоколов, большее сообщество&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gatling&lt;/strong&gt;: Код-based, Scala/Java, лучшая производительность, современный CI/CD&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ресурсы&lt;/strong&gt;: Gatling использует в 5-10x меньше памяти для той же нагрузки&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Кривая обучения&lt;/strong&gt;: JMeter проще для начинающих, Gatling лучше для разработчиков&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Выбирай JMeter&lt;/strong&gt;: Legacy системы, много протоколов, не-программисты&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Выбирай Gatling&lt;/strong&gt;: CI/CD пайплайны, высокая нагрузка, команды разработчиков&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 9 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;JMeter и Gatling — два ведущих open-source инструмента нагрузочного тестирования, каждый из которых представляет отдельную архитектурную философию. Apache JMeter, впервые выпущенный в 1998 году, создал одно из крупнейших сообществ в нагрузочном тестировании и остаётся наиболее используемым инструментом в категории — его модель «один поток на пользователя» и обширная экосистема плагинов поддерживают всё от HTTP до JDBC, JMS и LDAP. Gatling, выпущенный в 2012 году, внедрил асинхронную архитектуру на основе модели акторов, которая использует в 5-10 раз меньше памяти при эквивалентной нагрузке, что делает его значительно более ресурсоэффективным при высокой конкурентности. Отчёт SmartBear State of Software Quality 2025 показал, что 58% команд теперь запускают нагрузочные тесты в CI/CD, создавая спрос на headless-режимы обоих инструментов. Это сравнение охватывает архитектуру, эффективность ресурсов, модель скриптинга и командные контексты, в которых каждый инструмент по-настоящему превосходит.&lt;/p&gt;</description></item><item><title>k6 Tutorial: Современное Нагрузочное Тестирование на JavaScript</title><link>https://yrkan.com/ru/blog/k6-load-testing-tutorial/</link><pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/k6-load-testing-tutorial/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;k6 — современный, дружественный к разработчикам инструмент для нагрузочного тестирования — пишешь тесты на JavaScript&lt;/li&gt;
&lt;li&gt;Установка через brew/apt/docker, пишешь скрипты, запускаешь из CLI&lt;/li&gt;
&lt;li&gt;Определяй thresholds для критериев pass/fail: время ответа, процент ошибок&lt;/li&gt;
&lt;li&gt;Встроенные метрики: http_req_duration, http_reqs, iterations, vus&lt;/li&gt;
&lt;li&gt;Интеграция с CI/CD, Grafana Cloud, InfluxDB для дашбордов&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Идеально для:&lt;/strong&gt; Разработчиков, DevOps, команд, которые хотят performance-тесты как код
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Нужен GUI для дизайна тестов или экзотические протоколы (используй JMeter)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;k6 — это современный open-source инструмент нагрузочного тестирования с более чем 20,000 звёздами на GitHub, созданный для разработчиков и интеграции с CI/CD. По данным State of DevOps Report 2024, 34% организаций теперь рассматривают тестирование производительности как обязательный этап CI-пайплайна. В отличие от XML-конфигураций JMeter, k6 использует JavaScript — тесты читаемы, хранятся в системе контроля версий и проверяются в pull request-ах. Один инстанс k6 может генерировать тысячи виртуальных пользователей с минимальным потреблением памяти. Этот туториал охватывает k6 от установки до продвинутой интеграции с CI/CD: написание скриптов на JavaScript, определение порогов производительности, параметризацию через переменные окружения и визуализацию результатов в Grafana Cloud.&lt;/p&gt;</description></item><item><title>k6 vs JMeter: Сравнение Современного Нагрузочного Тестирования 2026</title><link>https://yrkan.com/ru/blog/k6-vs-jmeter-comparison/</link><pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/k6-vs-jmeter-comparison/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;k6&lt;/strong&gt;: JavaScript-based, современный, лёгкий, отличный CI/CD&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JMeter&lt;/strong&gt;: GUI-based, Java, больше протоколов, устоявшееся сообщество&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ресурсы&lt;/strong&gt;: k6 использует в 10-20x меньше памяти для той же нагрузки&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Для разработчиков&lt;/strong&gt;: k6 (код как тесты, версионный контроль)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Для QA команд&lt;/strong&gt;: JMeter (GUI, не нужно кодить)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Для CI/CD&lt;/strong&gt;: k6 (создан для automation pipelines)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 9 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;k6 и JMeter представляют два поколения философии нагрузочного тестирования, и разрыв между ними только увеличился с переходом современной разработки к CI/CD-first рабочим процессам. k6, набравший более 26 000 звёзд на GitHub, был создан Grafana Labs специально для ориентированного на разработчиков нагрузочного тестирования — его скриптинг на JavaScript, Go-рантайм и логика pass/fail на основе порогов напрямую интегрируются в автоматизированные пайплайны. Один инстанс k6 может симулировать 50 000+ виртуальных пользователей на 8 ГБ ОЗУ, по сравнению с приблизительно 2 000 для JMeter в аналогичных условиях. Apache JMeter является отраслевым стандартом с 1998 года — его GUI, экосистема плагинов и мультипротокольная поддержка (HTTP, JDBC, JMS, LDAP) делают его незаменимым для команд, тестирующих не-HTTP системы или работающих без навыков кодирования. Отчёт SmartBear State of Software Quality 2025 показал, что 64% команд ставят интеграцию с CI/CD приоритетом при выборе performance-инструмента — метрика, которая значительно благоприятствует архитектуре k6 над GUI-first дизайном JMeter.&lt;/p&gt;</description></item><item><title>K6: Современный Load Testing с JavaScript для DevOps Команд</title><link>https://yrkan.com/ru/blog/k6-sovremennyi-load-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/k6-sovremennyi-load-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; K6 — дружелюбный для разработчиков open-source инструмент нагрузочного тестирования, написанный на Go и со скриптами на JavaScript. Лучший вариант для CI/CD и современных микросервисов. Поддерживает HTTP/2, WebSocket и gRPC. Ключевые метрики: http_req_duration, http_req_failed, vus. K6 — самый распространённый open-source инструмент нагрузочного тестирования среди cloud-native команд.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;K6 — современный open-source инструмент нагрузочного тестирования, разработанный для удобства разработчиков и естественной интеграции в CI/CD пайплайны. Написанный на Go для высокой эффективности и со скриптами на JavaScript — языке, который знают большинство веб-разработчиков, — K6 позволяет командам сдвигать тестирование производительности влево: запускать нагрузочные тесты как часть каждого пул-реквеста или деплой-пайплайна. По данным отчёта Grafana Labs State of Observability 2024, K6 стал наиболее часто используемым open-source инструментом нагрузочного тестирования среди cloud-native инженерных команд с более чем 90 миллионами загрузок через Docker. Инструмент поддерживает HTTP/1.1, HTTP/2, WebSocket и gRPC, что делает его подходящим для современных микросервисных архитектур. Его CLI-ориентированная конструкция означает, что скрипты тестов хранятся в системе контроля версий вместе с кодом приложения.&lt;/p&gt;</description></item><item><title>Karate API Testing Tutorial: Полное Руководство по BDD-фреймворку</title><link>https://yrkan.com/ru/blog/karate-api-testing-tutorial/</link><pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/karate-api-testing-tutorial/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Karate = BDD API тестирование без Java кода (тесты в &lt;code&gt;.feature&lt;/code&gt; файлах)&lt;/li&gt;
&lt;li&gt;Синтаксис: Given/When/Then со встроенными JSON/XML assertions&lt;/li&gt;
&lt;li&gt;Отдельные step definitions не нужны — assertions встроены в DSL&lt;/li&gt;
&lt;li&gt;Включает мокирование, нагрузочное тестирование, параллельное выполнение&lt;/li&gt;
&lt;li&gt;Работает на JVM, но тесты пишутся в Gherkin-подобном синтаксисе&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Идеально для:&lt;/strong&gt; Команд, желающих BDD без программирования, быстрой разработки API тестов
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Нужен полный программный контроль (используй REST Assured)
&lt;strong&gt;Время чтения:&lt;/strong&gt; 14 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Karate DSL — это BDD-фреймворк для тестирования API, используемый тысячами enterprise-команд, которым нужна быстрая разработка тестов без специализированных Java-разработчиков. По данным SmartBear State of API Testing 2024, BDD-фреймворки для API-тестирования демонстрируют 40% рост adoption в enterprise за год. В отличие от Cucumber, Karate не требует файлов определений шагов — assertions встроены в DSL, что позволяет тестировщикам писать полные наборы API-тестов в Gherkin-подобном синтаксисе без единой строки Java-кода. Karate поддерживает REST, SOAP, GraphQL, WebSocket и даже автоматизацию браузера в одном фреймворке.&lt;/p&gt;</description></item><item><title>Katalon Studio: Полноценная All-in-One Платформа для Автоматизации Тестирования</title><link>https://yrkan.com/ru/blog/katalon-studio-all-in-one-reshenie/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/katalon-studio-all-in-one-reshenie/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Katalon Studio — платформа автоматизации «всё-в-одном» на основе Selenium и Appium. Поддерживает веб, мобильное (iOS/Android), API (REST/SOAP) и десктопное тестирование. Есть бесплатный уровень. Ключевые функции: запись и воспроизведение, AI self-healing локаторов, встроенная интеграция CI/CD, нативная интеграция с Jira/Git. Используется более 850 000 тестировщиков по всему миру.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Katalon Studio — это комплексная платформа автоматизации тестирования «всё-в-одном», которая делает автоматизацию доступной, объединяя мощь Selenium и Appium с понятной интегрированной средой разработки. В отличие от чистых фреймворков автоматизации, требующих значительной настройки и навыков программирования, Katalon предоставляет встроенное создание тестов, выполнение, интеграцию CI/CD и отчётность в одном пакете. По данным Magic Quadrant Gartner для автоматизации тестирования ПО, Katalon признан Visionary за способность обслуживать как бескодовую, так и скриптовую автоматизацию на единой платформе. По данным Katalon 2023, более 850 000 тестировщиков по всему миру используют платформу. Katalon поддерживает тестирование веб, мобильных (iOS и Android), REST/SOAP API и десктопных приложений, с AI-self-healing для локаторов элементов, встроенными data-driven тестами и нативной интеграцией с Jira и Git.&lt;/p&gt;</description></item><item><title>Kitchen-Terraform для Тестирования: Руководство по Поддержке Legacy и Миграции</title><link>https://yrkan.com/ru/blog/kitchen-terraform-for-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/kitchen-terraform-for-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kitchen-Terraform был &lt;strong&gt;архивирован в октябре 2024&lt;/strong&gt;—не используйте его для новых проектов&lt;/li&gt;
&lt;li&gt;Если вы унаследовали кодовую базу с Kitchen-Terraform, это руководство поможет поддерживать её, планируя миграцию&lt;/li&gt;
&lt;li&gt;Паттерны compliance InSpec всё ещё ценны—мигрируйте их на нативные тесты Terraform или standalone InSpec&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд, поддерживающих legacy-конфигурации Kitchen-Terraform или планирующих миграцию
&lt;strong&gt;Пропустите если:&lt;/strong&gt; Начинаете с нуля—используйте &lt;a href="https://yrkan.com/ru/blog/terraform-testing-and-validation-strategies/"&gt;нативные тесты Terraform&lt;/a&gt; или &lt;a href="https://yrkan.com/ru/blog/terratest-testing-infrastructure-as-code/"&gt;Terratest&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 10 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Kitchen-Terraform был архивирован 22 октября 2024 года после выхода нативного фреймворка тестирования в Terraform 1.6, — но по статистике загрузок RubyGems его всё ещё используют более 50 000 организаций в production. Инструмент объединял оркестрацию Test Kitchen, провизионирование Terraform и проверку compliance через InSpec. По данным HashiCorp Infrastructure State 2024, 67% пользователей Terraform уже на версии 1.6+, то есть нативная команда &lt;code&gt;terraform test&lt;/code&gt; доступна большинству команд как цель для миграции. Это руководство охватывает поддержку существующих настроек Kitchen-Terraform и планирование миграции на современные альтернативы.&lt;/p&gt;</description></item><item><title>Lighthouse Performance Testing: Мастерство Core Web Vitals</title><link>https://yrkan.com/ru/blog/lighthouse-performance-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/lighthouse-performance-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Lighthouse измеряет Core Web Vitals (LCP, INP, CLS) и выдаёт баллы по Performance, Accessibility, Best Practices и SEO. Запускай в Chrome DevTools, через CLI или автоматизируй с Lighthouse CI в пайплайне.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Google Lighthouse — самый распространённый инструмент аудита веб-производительности, встроенный прямо в Chrome DevTools и используемый миллионами разработчиков. По данным HTTP Archive Web Almanac 2024, только 43% мобильных страниц достигают статуса «Хорошо» по всем трём Core Web Vitals — LCP, INP и CLS. Google подтвердил в 2021 году, что Core Web Vitals являются факторами ранжирования, что делает баллы Lighthouse напрямую связанными с видимостью в поиске. Lighthouse предоставляет составные баллы по Performance, Accessibility, Best Practices и SEO, при этом каждый балл рассчитывается на основе взвешенных метрик. Это руководство охватывает Lighthouse от первого аудита до интеграции бюджетов производительности в CI/CD пайплайны.&lt;/p&gt;</description></item><item><title>LitmusChaos 3.27.0: Таргетинг Job и Улучшения Стабильности</title><link>https://yrkan.com/ru/tools-updates/litmus-chaos-3-27-whats-new/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/litmus-chaos-3-27-whats-new/</guid><description>&lt;h3 id="litmuschaos-3270-таргетинг-job-и-улучшения-стабильности"&gt;LitmusChaos 3.27.0: Таргетинг Job и Улучшения Стабильности &lt;a href="#litmuschaos-3270-%d1%82%d0%b0%d1%80%d0%b3%d0%b5%d1%82%d0%b8%d0%bd%d0%b3-job-%d0%b8-%d1%83%d0%bb%d1%83%d1%87%d1%88%d0%b5%d0%bd%d0%b8%d1%8f-%d1%81%d1%82%d0%b0%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;LitmusChaos 3.27.0, минорное обновление, выпущенное 18 марта 2026 года, приносит значительные улучшения для команд DevOps и QA, практикующих хаос-инжиниринг. Эта версия сфокусирована на расширении возможностей экспериментов и повышении общей стабильности и надежности платформы, обеспечивая более надежную и предсказуемую среду для тестирования хаосом.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ключевые Изменения&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Новые Функции:&lt;/strong&gt;
Наиболее заметной функцией в версии 3.27.0 является &lt;strong&gt;добавление поддержки таргетирования Kubernetes Jobs в экспериментах хаоса&lt;/strong&gt;. Эта возможность позволяет инженерам QA разрабатывать более детализированные и реалистичные сценарии хаоса. Вместо воздействия на целые Deployments или Pods, тестировщики теперь могут целенаправленно внедрять сбои в пакетные процессы, миграции данных или другие одноразовые задачи, управляемые Kubernetes Jobs. Такая точность критически важна для проверки устойчивости специфических асинхронных рабочих нагрузок.&lt;/p&gt;</description></item><item><title>Living Documentation: Автоматическая Генерация Документации из Кода и Тестов</title><link>https://yrkan.com/ru/blog/living-documentation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/living-documentation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Живая документация генерируется автоматически из кода и тестов, всегда оставаясь актуальной. Используй Swagger для API-документации, Cucumber/Serenity для BDD-отчётов и Allure для визуализации выполнения тестов. Интегрируй генерацию в CI, чтобы документация обновлялась при каждой сборке.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Живая документация решает самую стойкую проблему документации: она устаревает в течение нескольких дней после написания. По данным Stack Overflow Developer Survey 2024, 78% разработчиков указывают, что устаревшая документация существенно снижает производительность. Традиционная документация, написанная вручную в вики, расходится с кодом сразу после первого коммита. Живая документация инвертирует это отношение — документация генерируется из самого источника истины: аннотаций кода, исполняемых тестовых сценариев и поведения во время выполнения. Это руководство охватывает полный стек живой документации: API-документацию из аннотаций OpenAPI, BDD-отчёты из Cucumber и Serenity, дашборды выполнения тестов с Allure и интеграцию с CI/CD для автоматической публикации.&lt;/p&gt;</description></item><item><title>Load Testing с JMeter: Полное Руководство</title><link>https://yrkan.com/ru/blog/jmeter-load-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/jmeter-load-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Apache JMeter симулирует параллельных пользователей для нагрузочного тестирования. Создавайте тест-планы с группами потоков, HTTP-сэмплерами и утверждениями. Запускайте в не-GUI режиме для CI/CD. Используйте распределённое тестирование для масштабирования до миллионов пользователей.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Apache JMeter (как обсуждается в &lt;a href="https://yrkan.com/ru/blog/performance-testing-comprehensive-guide"&gt;Performance Testing: From Load to Stress Testing&lt;/a&gt;) — один из самых популярных open-source инструментов для тестирования производительности и нагрузки. Изначально разработанный для тестирования веб-приложений, JMeter (как обсуждается в &lt;a href="https://yrkan.com/ru/blog/k6-for-testing/"&gt;K6: Modern Load Testing with JavaScript for DevOps Teams&lt;/a&gt;) эволюционировал в комплексную платформу тестирования, способную тестировать различные протоколы, включая HTTP, HTTPS, SOAP, REST, FTP, JDBC, JMS и другие.&lt;/p&gt;</description></item><item><title>Locust Load Testing Tutorial: Руководство по Нагрузочному Тестированию на Python</title><link>https://yrkan.com/ru/blog/locust-load-testing-python/</link><pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/locust-load-testing-python/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Locust = нагрузочное тестирование на Python (тесты — это просто Python код)&lt;/li&gt;
&lt;li&gt;Определяй поведение пользователей в &lt;code&gt;locustfile.py&lt;/code&gt; с декораторами &lt;code&gt;@task&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Запуск с web UI (&lt;code&gt;locust&lt;/code&gt;) или headless (&lt;code&gt;locust --headless&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Распределённый режим: один master + N workers для масштаба&lt;/li&gt;
&lt;li&gt;Метрики в реальном времени: RPS, время отклика, процент ошибок&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Идеально для:&lt;/strong&gt; Python-команд, нагрузочного тестирования API, разработчиков, предпочитающих код GUI
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Нужно GUI-построение тестов или широкая поддержка протоколов (используй JMeter)
&lt;strong&gt;Время чтения:&lt;/strong&gt; 12 минут&lt;/p&gt;</description></item><item><title>Locust Нагрузочное Тестирование на Python: Полное Руководство по Тестированию Производительности</title><link>https://yrkan.com/ru/blog/locust-python-load-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/locust-python-load-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Locust — это Python-фреймворк нагрузочного тестирования. Пиши сценарии пользователей как Python-классы, запускай тесты через веб-UI или CLI, масштабируй с распределённым режимом. Идеален для Python-команд, которым нужны code-based тесты производительности с интеграцией CI/CD.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Locust — это Python-based open-source фреймворк нагрузочного тестирования, позволяющий инженерам описывать сложные сценарии поведения пользователей как Python-код, а не как XML-конфигурации или GUI-воркфлоу. С более чем 24,000 звёздами на GitHub он стал предпочтительным инструментом нагрузочного тестирования для Python-ориентированных команд. По данным JetBrains Developer Ecosystem Survey 2024, Python используется 51% разработчиков для автоматизации тестирования. В отличие от потоковой модели JMeter, Locust использует greenlets (лёгкие корутины), что позволяет одной машине симулировать тысячи параллельных пользователей с минимальным потреблением памяти. Это всестороннее руководство охватывает Locust от первого теста до распределённого нагрузочного тестирования в production.&lt;/p&gt;</description></item><item><title>Matrix Testing в CI/CD Pipelines</title><link>https://yrkan.com/ru/blog/matrix-testing-in-ci-cd-pipelines/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/matrix-testing-in-ci-cd-pipelines/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Матричное тестирование запускает одни и те же тесты в нескольких комбинациях окружений (ОС, браузер, версии Node.js) в параллельных CI-заданиях. Определяй через &lt;code&gt;strategy.matrix&lt;/code&gt; в GitHub Actions или &lt;code&gt;parallel&lt;/code&gt; в GitLab CI. Используй для обеспечения кросс-платформенной совместимости без последовательного выполнения.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Matrix testing — одна из самых мощных техник для обеспечения работы вашего приложения в различных окружениях, конфигурациях и платформах. В современных CI/CD pipelines matrix testing позволяет автоматически запускать один и тот же набор тестов в разных комбинациях переменных. Это комплексное руководство проведет вас через внедрение стратегий matrix testing, которые масштабируются вместе с вашим рабочим процессом разработки.&lt;/p&gt;</description></item><item><title>Memory Leak Testing: Поиск и Исправление Утечек Памяти</title><link>https://yrkan.com/ru/blog/memory-leak-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/memory-leak-testing/</guid><description>&lt;p&gt;Утечки памяти — одни из самых сложных проблем производительности в современной разработке. По данным исследования Google, около 70% критических ошибок в браузерах связаны с управлением памятью. Для QA-инженеров раннее обнаружение утечек помогает предотвратить падения приложений и плохой пользовательский опыт. Исследование JetBrains 2023 года показало, что 45% разработчиков называют управление памятью главной проблемой производительности в веб-, мобильных и серверных приложениях. Это руководство охватывает практические техники обнаружения и предотвращения утечек памяти с использованием DevTools браузера, профайлеров Node.js clinic, Python tracemalloc, JVisualVM и автоматизированных тестов для CI/CD.&lt;/p&gt;</description></item><item><title>Mobile App Security Testing: Полное Руководство iOS и Android</title><link>https://yrkan.com/ru/blog/mobile-security-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/mobile-security-testing/</guid><description>&lt;p&gt;Мобильные приложения становятся основной поверхностью атаки для утечек данных и мошенничества. IBM Cost of a Data Breach Report 2023 показал, что средняя стоимость мобильной утечки данных составляет $4,45 миллиона — рост на 15% за три года. OWASP Mobile Security Testing Guide (MSTG) выявляет критические уязвимости в iOS и Android приложениях, где небезопасное хранение данных и ненадлежащая аутентификация стабильно занимают первые места. Отчёт NowSecure 2023 показал, что 83% протестированных мобильных приложений имели как минимум одну уязвимость безопасности. Это руководство охватывает статический анализ (MobSF), динамический анализ (Frida, Burp Suite) и техники пентеста для мобильных платформ.&lt;/p&gt;</description></item><item><title>Mobile Performance Profiling: Память, батарея и не только</title><link>https://yrkan.com/ru/blog/mobile-performance-profiling-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/mobile-performance-profiling-guide/</guid><description>&lt;p&gt;Производительность мобильных приложений напрямую измеряется бизнес-показателями. По данным исследования Google Play, 53% пользователей покидают приложения, которые загружаются дольше 3 секунд — порог, который многие команды незаметно для себя превышают. Согласно правилам App Store Apple, чрезмерное потребление батареи и памяти входят в топ причин отклонения приложений. Средний мобильный пользователь имеет 80+ установленных приложений, но активно использует только 9 в день — это означает, что производительность напрямую определяет, попадёт ли твоё приложение в эту активную группу или будет удалено. По данным Google Play, каждые 6 МБ увеличения размера приложения коррелируют с падением конверсии установок на 1%. Профилирование мобильной производительности — систематическое измерение памяти, CPU, батареи, сети и поведения при запуске — это дисциплина, которая закрывает разрыв между «работает» и «пользователи обожают».&lt;/p&gt;</description></item><item><title>Mocha Testing Tutorial: Полное Руководство по Unit-тестированию JavaScript</title><link>https://yrkan.com/ru/blog/mocha-testing-tutorial/</link><pubDate>Tue, 03 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/mocha-testing-tutorial/</guid><description>&lt;p&gt;Mocha — один из самых популярных JavaScript тест-фреймворков, загружаемый более 9 миллионов раз в неделю на NPM. По данным опроса State of JS 2023, Mocha поддерживает 50%+ использования среди JavaScript-разработчиков, особенно для Node.js backend-тестирования, где он доминирует почти десятилетие. По данным исследования npm Trends, Mocha стабильно превосходит альтернативные фреймворки в серверных JavaScript-проектах благодаря гибкости сочетания с Chai, Sinon и Istanbul. Этот туториал охватывает всё: от первоначальной настройки Mocha до расширенных шаблонов тестирования, включая async-тесты, жизненный цикл хуков, пользовательские репортёры и параллельное выполнение.&lt;/p&gt;</description></item><item><title>Mocha и Chai: Полное Руководство по Тестированию JavaScript</title><link>https://yrkan.com/ru/blog/mocha-chai-javascript/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/mocha-chai-javascript/</guid><description>&lt;p&gt;Mocha и Chai остаются одними из наиболее широко используемых инструментов для тестирования JavaScript, применяемых миллионами разработчиков для юнит и интеграционного тестирования. По данным опроса State of JS 2023, Mocha сохраняет более 50% доли использования среди разработчиков JavaScript и является выбором по умолчанию в более чем 60% Node.js backend-проектов. По данным статистики NPM, mocha получает более 9 миллионов загрузок в неделю. Комбинация Mocha + Chai особенно мощна из-за взаимодополняющего дизайна: Mocha обеспечивает гибкую структуру тестов и запуск асинхронных тестов, а Chai предоставляет три стиля утверждений (assert, expect, should). Это руководство охватывает установку, расширенную конфигурацию, асинхронные шаблоны и лучшие практики.&lt;/p&gt;</description></item><item><title>Mock Серверы для Мобильной Разработки: Руководство по WireMock, Mockoon и json-server</title><link>https://yrkan.com/ru/blog/mock-servers-mobile-dev/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/mock-servers-mobile-dev/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — Mock-серверы WireMock (15+ млн загрузок), Mockoon и json-server позволяют мобильным командам разрабатывать и тестировать без живого бэкенда. В руководстве — настройка, интеграция с Android/iOS, CI/CD конфигурация и продвинутые паттерны.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Mock-серверы — критически важные инструменты для мобильной разработки, позволяющие командам разрабатывать и тестировать приложения до готовности backend API, симулировать крайние случаи и работать offline. Согласно документации WireMock, инструмент набрал более 15 миллионов загрузок и используется тысячами команд по всему миру. Опрос SmartBear по использованию API-мокинга показал, что 71% команд, применяющих mock API, сообщают о более быстрых циклах разработки и меньшем количестве интеграционных проблем. Эти инструменты устраняют проблему «заблокированы из-за бэкенда», которая задерживает мобильные релизы по всей индустрии.&lt;/p&gt;</description></item><item><title>Model-Based Testing: Автоматическая Генерация Тестов из Моделей</title><link>https://yrkan.com/ru/blog/model-based-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/model-based-testing/</guid><description>&lt;p&gt;Тестирование на основе моделей (MBT) — систематический подход, который автоматически генерирует тест-кейсы из формальных моделей поведения системы. По данным исследования IEEE, команды, использующие MBT, сообщают о сокращении времени создания тест-кейсов на 40-60% при достижении более высокого структурного покрытия. По данным исследования в Journal of Software Testing, организации, применяющие MBT на системном уровне, обнаруживают в среднем на 23% больше дефектов. Инструменты MBT — Graphwalker, Spec Explorer и Conformiq — набирают популярность по мере того, как команды ищут способы масштабировать тестовое покрытие без пропорционального увеличения команды.&lt;/p&gt;</description></item><item><title>Monorepo Testing Strategies</title><link>https://yrkan.com/ru/blog/monorepo-testing-strategies/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/monorepo-testing-strategies/</guid><description>&lt;p&gt;Монорепозитории стали предпочтительной стратегией организации кода во многих крупнейших технологических компаниях. По данным Google, Microsoft и Meta, все три компании успешно управляют десятками тысяч проектов в единых репозиториях, при этом монорепозиторий Google содержит более 2 миллиардов строк кода. По данным опроса JetBrains 2023, 34% профессиональных разработчиков работают в монорепозиторных средах, по сравнению с 12% в 2019 году — под влиянием таких инструментов как Nx, Turborepo и Bazel. Тестирование в монорепозиториях уникально: изменения в общей библиотеке могут затронуть десятки приложений.&lt;/p&gt;</description></item><item><title>Mutation Testing с ИИ: Интеллектуальная Генерация Мутантов для Лучшего Качества Тестов</title><link>https://yrkan.com/ru/blog/mutation-testing-ai/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/mutation-testing-ai/</guid><description>&lt;p&gt;Мутационное тестирование измеряет реальную эффективность вашего тест-набора путём внесения небольших изменений в код (мутаций) и проверки их обнаружения тестами. В сочетании с ИИ оно становится значительно мощнее. По данным исследования Университета Карнеги-Меллон, традиционное мутационное тестирование применяет около 200-300 операторов мутации, а подходы на основе ИИ выявляют до 10 раз больше семантически значимых мутаций. По данным исследования IEEE Transactions on Software Engineering, команды с мутационным тестированием на основе ИИ достигают показателей мутации на 35-50% выше. Это руководство охватывает инструменты мутационного тестирования и интеграцию ИИ-подходов.&lt;/p&gt;</description></item><item><title>Mutation Testing: Измерение Качества Тестов За Пределами Покрытия Кода</title><link>https://yrkan.com/ru/blog/mutation-testing-coverage/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/mutation-testing-coverage/</guid><description>&lt;p&gt;Метрики покрытия кода широко используются для оценки качества тест-набора, но они измеряют, какой код был выполнен — а не то, действительно ли тесты проверяют правильное поведение. Мутационное тестирование устраняет этот разрыв, измеряя kill rate: процент внедрённых дефектов кода (мутаций), которые обнаруживают твои тесты. По данным исследования Coles et al., опубликованного в IEEE Software, мутационное тестирование стабильно выявляет на 60-70% больше слабостей тестов, чем анализ ветвевого покрытия. По данным Google Testing Blog, тест-наборы с 80% покрытием кода, но низким mutation score часто пропускают баги в продакшн.&lt;/p&gt;</description></item><item><title>Nightwatch.js E2E Тестирование: Полное Руководство по Автоматизации Браузеров с Node.js</title><link>https://yrkan.com/ru/blog/nightwatch-js-e2e/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/nightwatch-js-e2e/</guid><description>&lt;p&gt;Nightwatch.js — один из наиболее устоявшихся E2E тест-фреймворков на базе Node.js, предлагающий интегрированную поддержку WebDriver и чистый, читаемый API тестирования. По данным статистики загрузок NPM, Nightwatch.js получает более 1 миллиона загрузок в месяц, поддерживая стабильное внедрение более десяти лет. По данным опроса State of JavaScript 2023, 18% разработчиков фронтенда используют Nightwatch.js для E2E тестирования, особенно в корпоративных средах. По сравнению с более новыми инструментами как Playwright и Cypress, Nightwatch предлагает преимущества длительного корпоративного внедрения и нативную поддержку Selenium Grid.&lt;/p&gt;</description></item><item><title>NLP для Конвертации Требований в Тесты: От User Story к Автоматизированному BDD</title><link>https://yrkan.com/ru/blog/nlp-requirements-tests/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/nlp-requirements-tests/</guid><description>&lt;p&gt;Обработка естественного языка (NLP) трансформирует то, как QA-команды извлекают тест-кейсы из документов с требованиями. По данным исследования Capgemini 2023, среднестатистический корпоративный программный проект тратит 20-30% QA-усилий на анализ требований и формирование тест-кейсов — именно то, что NLP может значительно ускорить. По данным Testing Excellence Group, команды с NLP-assisted генерацией тест-кейсов сокращают цикл от требований до тест-кейса на 40-60%. Инструменты от коммерческих платформ до Python-библиотек с открытым исходным кодом (spaCy, transformers) позволяют QA-инженерам автоматически парсить спецификации на естественном языке.&lt;/p&gt;</description></item><item><title>OWASP ZAP Automation: Сканирование Безопасности в CI/CD</title><link>https://yrkan.com/ru/blog/owasp-zap-automation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/owasp-zap-automation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — OWASP ZAP — самый популярный бесплатный сканер безопасности с более чем 10 млн загрузок. В руководстве — интеграция CI/CD, сканирование API, кастомные политики, конфигурация аутентификации и автоматизированная отчётность для QA-команд.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;OWASP ZAP — самый популярный бесплатный инструмент тестирования безопасности в мире, которому доверяют тысячи организаций. Согласно статистике проекта OWASP, ZAP был загружен более 10 миллионов раз и является наиболее широко используемым open-source сканером веб-безопасности. Согласно исследованию MarketsandMarkets, мировой рынок тестирования безопасности приложений достигнет $10,4 млрд к 2027 году, что делает навыки в security testing всё более востребованными. Интеграция ZAP в CI/CD пайплайны позволяет командам обнаруживать SQL injection, XSS и небезопасные заголовки до продакшена.&lt;/p&gt;</description></item><item><title>Page Objects, Генерируемые ИИ: Автоматизация Автоматизации</title><link>https://yrkan.com/ru/blog/ai-page-objects/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ai-page-objects/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Генераторы page objects на основе ИИ сокращают время создания на &lt;strong&gt;70%&lt;/strong&gt; и накладные расходы на обслуживание на &lt;strong&gt;85%&lt;/strong&gt; благодаря интеллектуальному анализу DOM&lt;/li&gt;
&lt;li&gt;Самовосстанавливающиеся локаторы с ML-предсказанными оценками стабильности (0.92+) устраняют причину #1 нестабильных тестов: хрупкие селекторы&lt;/li&gt;
&lt;li&gt;Оптимальный подход: используйте ИИ для начальной генерации и оптимизации селекторов, но &lt;strong&gt;проверка человеком остаётся критичной&lt;/strong&gt; для бизнес-логики и граничных случаев&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд, поддерживающих 50+ page objects, приложений с частыми изменениями UI, проектов с проблемами локаторов
&lt;strong&gt;Пропустите если:&lt;/strong&gt; Небольшие тестовые наборы (&amp;lt;20 page objects), статичные UI, редко меняющиеся, команды без инфраструктуры для интеграции инструментов ИИ&lt;/p&gt;</description></item><item><title>Pairwise Testing: Комбинаторная Оптимизация для Покрытия Тестами</title><link>https://yrkan.com/ru/blog/pairwise-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/pairwise-testing/</guid><description>&lt;p&gt;Попарное тестирование (также известное как all-pairs testing) — комбинаторная техника проектирования тестов, которая значительно сокращает количество тест-кейсов для достижения всестороннего охвата. По данным исследования Microsoft, 70% производственных дефектов можно обнаружить, тестируя все пары входных переменных — намного эффективнее, чем исчерпывающее комбинаторное тестирование, которое растёт экспоненциально с каждым новым параметром. По данным исследования IBM, попарное тестирование сокращает количество тест-кейсов на 60-80% по сравнению с тестированием всех комбинаций при сохранении сопоставимых показателей обнаружения дефектов.&lt;/p&gt;</description></item><item><title>Penetration Testing Basics для QA Тестировщиков</title><link>https://yrkan.com/ru/blog/penetration-testing-basics/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/penetration-testing-basics/</guid><description>&lt;p&gt;Тестирование на проникновение трансформирует теоретические знания безопасности в практические, активно пытаясь использовать уязвимости в контролируемых условиях. По данным Ponemon Institute Cost of a Data Breach Report 2023, организации, регулярно проводящие пентест, испытывают утечки, которые обходятся в среднем на $1,6 миллиона дешевле. По данным исследования IBM Security, организации со зрелыми программами пентеста обнаруживают уязвимости на 54 дня быстрее. Для QA-инженеров, расширяющихся в сторону тестирования безопасности, основы пентеста — разведка, сканирование уязвимостей, эксплуатация и отчётность — образуют систематическую методологию.&lt;/p&gt;</description></item><item><title>Percy, Applitools &amp; BackstopJS: Сравнение Решений для Visual Regression Testing</title><link>https://yrkan.com/ru/blog/percy-applitools-backstopjs-visual-regression/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/percy-applitools-backstopjs-visual-regression/</guid><description>&lt;p&gt;Визуальное регрессионное тестирование стало необходимым для современной frontend-разработки. По данным исследования Applitools 2023, визуальные ошибки ответственны за 60% UI-проблем, о которых сообщают пользователи. По данным Browserstack, команды с визуальным тестированием обнаруживают в среднем 4 визуальных дефекта на 100 изменений кода. Инструменты Percy, Applitools Eyes и BackstopJS предлагают различные подходы к захвату и сравнению скриншотов.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Инструменты визуального регрессионного тестирования сравнивают снимки UI. Percy интегрируется с CI и Storybook, Applitools использует ИИ, BackstopJS — open-source. Все три следуют рабочему процессу baseline-capture/compare/approve.&lt;/p&gt;</description></item><item><title>Performance Profiling Guide: Оптимизация CPU, Памяти, Сети</title><link>https://yrkan.com/ru/blog/performance-profiling-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/performance-profiling-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;
Performance profiling превращает «приложение тормозит» в измеримые данные. Исследования Google показывают: задержка в 100 мс повышает показатель отказов на 7%, а страницы, соответствующие порогам Core Web Vitals, имеют на 24% меньше отказов. Профилируй CPU с flame-графами, отслеживай выделение памяти для обнаружения утечек, анализируй запросы к БД с EXPLAIN и используй APM-инструменты в продакшене.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; QA-инженеров и разработчиков, расследующих регрессии производительности или оптимизирующих высоконагруженные системы
&lt;strong&gt;Пропусти если:&lt;/strong&gt; нужна настройка нагрузочного тестирования — это руководство о профилировании отдельных функций, а не о нагрузке системы&lt;/p&gt;</description></item><item><title>Performance Testing: от нагрузки до стресса</title><link>https://yrkan.com/ru/blog/performance-testing-comprehensive-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/performance-testing-comprehensive-guide/</guid><description>&lt;p&gt;Производительность напрямую определяет, вернутся ли пользователи. Исследование Google по Core Web Vitals показывает, что увеличение времени загрузки страницы на 100 мс снижает конверсию на 7%. По данным Akamai о производительности веба, 40% пользователей покидают страницы, загружающиеся дольше 3 секунд. Согласно ISTQB, тестирование производительности — это отдельная дисциплина качества, охватывающая нагрузочное, стресс, пиковое, объёмное и длительное тестирование. Однако многие команды относятся к производительности как к второстепенному вопросу, обнаруживая точки отказа при запуске продукта, а не во время тестирования. Цена такого подхода огромна: устранение узкого места производительности в продакшене обходится в 100 раз дороже, чем его обнаружение в разработке. Это руководство охватывает весь ландшафт тестирования производительности — от выбора инструментов до выявления узких мест и метрик, согласованных с SLA.&lt;/p&gt;</description></item><item><title>Performance Testing: от нагрузочного до стресс-тестирования</title><link>https://yrkan.com/ru/blog/performance-testing-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/performance-testing-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Тестирование производительности&lt;/strong&gt;: оценка скорости, стабильности и масштабируемости под нагрузкой&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Типы&lt;/strong&gt;: нагрузочное (ожидаемый трафик), стресс (точка отказа), пиковое (резкие всплески), выносливость (длительная нагрузка)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевые метрики&lt;/strong&gt;: p95/p99 время отклика, пропускная способность (RPS), процент ошибок, утилизация ресурсов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ориентир Google&lt;/strong&gt;: LCP до 2.5с, FID до 100мс, CLS до 0.1 для хорошего UX&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Процесс&lt;/strong&gt;: SLA → сценарии → окружение → выполнение → анализ → оптимизация&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CI/CD&lt;/strong&gt;: автоматизируй smoke-тесты производительности на каждый PR&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Тестирование производительности — фундаментальная практика обеспечения качества, определяющая, соответствует ли система требованиям по скорости, стабильности и масштабируемости. По данным Google, 53% мобильных посещений прерываются, если страница загружается дольше 3 секунд. Исследования Akamai показывают, что задержка в 100 миллисекунд снижает конверсию на 7%, а задержка в 2 секунды увеличивает показатель отказов на 103%. В отличие от функционального тестирования, тестирование производительности фокусируется не на том, что делает система, а на том, насколько быстро, стабильно и масштабируемо она работает под нагрузкой. Согласно ISTQB, это структурированная дисциплина, включающая нагрузочные, стресс, пиковые, объёмные и тесты выносливости — каждый выявляет свой класс дефектов производительности. Это руководство охватывает все пять типов, значимые метрики и системный подход к выявлению узких мест до того, как они затронут пользователей.&lt;/p&gt;</description></item><item><title>Playwright Tutorial: Современное Web-тестирование с TypeScript 2026</title><link>https://yrkan.com/ru/blog/playwright-tutorial-web-testing/</link><pubDate>Mon, 26 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/playwright-tutorial-web-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Playwright — фреймворк автоматизации браузеров от Microsoft: auto-wait, встроенные assertions, 3 движка&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Настройка за 60 секунд:&lt;/strong&gt; &lt;code&gt;npm init playwright@latest&lt;/code&gt; создаёт проект с конфигом, тестом и CI workflow&lt;/li&gt;
&lt;li&gt;TypeScript-first с лучшей в классе IDE поддержкой, генерацией кода и accessibility-локаторами&lt;/li&gt;
&lt;li&gt;Бесплатное параллельное выполнение из коробки — в 3-5 раз быстрее последовательного Selenium или Cypress&lt;/li&gt;
&lt;li&gt;Trace Viewer + UI Mode для отладки — DOM, сеть, консоль на каждом шаге теста&lt;/li&gt;
&lt;li&gt;Встроенное API тестирование, переиспользование аутентификации и визуальная регрессия&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд, желающих современный инструментарий, TypeScript и быстрое параллельное выполнение
&lt;strong&gt;Пропусти если:&lt;/strong&gt; Нужен Safari на реальных устройствах или есть большая Selenium инфраструктура&lt;/p&gt;</description></item><item><title>Playwright vs Cypress: Полное Сравнение 2026</title><link>https://yrkan.com/ru/blog/playwright-vs-cypress-comparison/</link><pubDate>Fri, 06 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/playwright-vs-cypress-comparison/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Playwright&lt;/strong&gt;: Мульти-браузер, мульти-язык, быстрое параллельное выполнение, лучше для сложных сценариев&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cypress&lt;/strong&gt;: Проще настройка, лучший DX для JavaScript команд, превосходная time-travel отладка&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Скорость&lt;/strong&gt;: Playwright ~40% быстрее при параллельном выполнении (бесплатно vs Cypress Cloud $67+/мес)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Браузеры&lt;/strong&gt;: Playwright = Chromium, Firefox, WebKit нативно; Cypress = WebKit ещё экспериментально&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Выбирай Playwright&lt;/strong&gt; если: cross-browser критичен, большие тест-сьюты, нужны разные языки, фокус на CI/CD&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Выбирай Cypress&lt;/strong&gt; если: только JavaScript команда, простые приложения, приоритет — интерактивная отладка&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд, которые выбирают основной E2E фреймворк на 2026+
&lt;strong&gt;Пропусти если:&lt;/strong&gt; Сравниваешь фреймворки для модульного тестирования (здесь про E2E)&lt;/p&gt;</description></item><item><title>Postman Tutorial: Полное Руководство по API-тестированию для Начинающих</title><link>https://yrkan.com/ru/blog/postman-tutorial-api-testing/</link><pubDate>Sun, 25 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/postman-tutorial-api-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Postman — самый популярный инструмент API-тестирования с 30M+ разработчиков&lt;/li&gt;
&lt;li&gt;Организуй запросы в Коллекции с папками для связанных эндпоинтов&lt;/li&gt;
&lt;li&gt;Используй Окружения для переключения между dev/staging/production без изменения запросов&lt;/li&gt;
&lt;li&gt;Пиши тесты на JavaScript используя &lt;code&gt;pm.test()&lt;/code&gt; — выполняются после каждого запроса&lt;/li&gt;
&lt;li&gt;Newman CLI запускает коллекции в CI/CD пайплайнах&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; QA-инженеров, изучающих API-тестирование, разработчиков, тестирующих свои API
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Предпочитаешь code-only инструменты (REST Assured, requests) или нужен сложный скриптинг
Postman — самая популярная платформа для работы с API в мире, которой доверяют более 30 миллионов разработчиков и QA-инженеров. По данным отчёта SmartBear State of Testing 2025, API-тестирование применяется в 72% команд разработки — это делает навыки работы с API одними из самых востребованных в индустрии. Postman упрощает этот процесс, объединяя создание запросов, управление окружениями, написание тест-скриптов и автоматизацию CI/CD в едином GUI-приложении. Ты организуешь связанные запросы в Коллекции, храншь переменные в Окружениях — чтобы тот же запрос работал с dev, staging и production без ручного редактирования URL, — и пишешь JavaScript-assertions, которые автоматически проверяют статус-коды, тела ответов и заголовки. Когда нужно headless-выполнение в пайплайне, Newman — CLI-компаньон Postman — запускает любую экспортированную коллекцию прямо из терминала. Официальный центр обучения Postman на learning.postman.com/docs детально описывает весь API. Этот туториал проведёт тебя через все уровни: от первого GET-запроса до data-driven тестирования и интеграции с CI/CD через репортеры Newman.&lt;/p&gt;</description></item><item><title>Postman vs Insomnia vs Bruno vs Paw: Полное сравнение инструментов API 2025</title><link>https://yrkan.com/ru/blog/api-tools-comparison-2025/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/api-tools-comparison-2025/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Postman&lt;/strong&gt;: 30M+ пользователей, лучший для enterprise-коллаборации, mock-серверов и мониторинга API — но дорожает&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Insomnia&lt;/strong&gt;: чистый UI, лучшая поддержка GraphQL, MIT-лицензированное ядро, $7–18/пользователь/мес для командных функций&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bruno&lt;/strong&gt;: 100% бесплатный, Git-native, offline-first — лучшая open-source альтернатива Postman в 2025&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Paw&lt;/strong&gt;: нативное macOS-приложение с лучшим дизайном, теперь часть RapidAPI&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Итог&lt;/strong&gt;: соло/маленькие команды → Bruno; GraphQL-команды → Insomnia; enterprise → Postman; macOS-пуристы → Paw&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h2 id="введение"&gt;Введение &lt;a href="#%d0%b2%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Ландшафт инструментов тестирования API кардинально изменился: Postman доминирует в enterprise-сегменте, пока open-source альтернативы оспаривают его позицию. В 2024 году у Postman более 30 миллионов зарегистрированных пользователей — больше, чем у любого другого API-клиента. При этом Bruno (выпущен в 2022 году) набрал более 29 000 звёзд на GitHub менее чем за два года, сигнализируя о сильном запросе разработчиков на open-source, Git-native инструменты. Мировой рынок управления API прогнозируется на уровне $21,5 млрд к 2027 году (Allied Market Research). В 2025 году выбор правильного инструмента тестирования API означает баланс между функциями, стоимостью, потребностями в коллаборации и возможностями интеграции. Это сравнение рассматривает четыре ведущих инструмента — Postman, Insomnia, Bruno и Paw — с анализом их архитектуры, ценообразования и идеальных сценариев использования.&lt;/p&gt;</description></item><item><title>Postman vs Insomnia: Сравнение API Клиентов 2026</title><link>https://yrkan.com/ru/blog/postman-vs-insomnia-comparison/</link><pubDate>Sun, 08 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/postman-vs-insomnia-comparison/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Postman&lt;/strong&gt; побеждает в командной работе, документации API, mock серверах и мониторинге&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Insomnia&lt;/strong&gt; побеждает в GraphQL, чистом UI, скорости и для команд с ограниченным бюджетом&lt;/li&gt;
&lt;li&gt;Оба работают с REST, GraphQL и gRPC — разница в процессе, не в возможностях&lt;/li&gt;
&lt;li&gt;Миграция между ними занимает меньше 10 минут&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд, выбирающих между этими двумя инструментами для ежедневного API тестирования
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Ты уже выбрал Bruno или Thunder Client&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Postman и Insomnia — два наиболее устоявшихся API-клиента, каждый из которых воплощает разную философию. Согласно State of the API Report 2024 от Postman, платформа насчитывает более 30 миллионов зарегистрированных пользователей — стандарт индустрии для enterprise-команд. Insomnia, приобретённый Kong в 2019 году, предлагает более лёгкий подход: MIT-лицензированное ядро не требует аккаунта и работает полностью офлайн, что делает его предпочтительным выбором для разработчиков, ценящих приватность и GraphQL. По данным опроса JetBrains Developer Ecosystem 2024, инструментами REST-клиентов пользуются более 80% профессиональных разработчиков. Для команды из 10 человек Postman Professional стоит $290/месяц против Insomnia Team за $120/месяц — разница $2 040/год, которая часто определяет выбор. Postman — это полноценная API lifecycle-платформа с генерацией документации, mock-серверами, мониторингом и RBAC. Insomnia — сфокусированный API-клиент, потребляющий около 200 МБ RAM против 500 МБ у Postman в режиме простоя. Это сравнение помогает тебе выбрать инструмент под твой процесс, бюджет и потребности в коллаборации.&lt;/p&gt;</description></item><item><title>Prompt Engineering для QA: Мастерство Создания Эффективных Запросов к AI</title><link>https://yrkan.com/ru/blog/prompt-engineering-qa/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/prompt-engineering-qa/</guid><description>&lt;p&gt;Prompt-инжиниринг для QA — это дисциплина создания точных запросов к языковым моделям AI для максимального качества результатов тестовых задач. По данным опроса GitHub 2023 года, разработчики, использующие AI-ассистентов для программирования, сообщают о 55% повышении производительности, но большинству QA-специалистов не хватает системных подходов к промптам. По данным исследований Anthropic, качество результатов AI может варьироваться в 3-5 раз исключительно в зависимости от структуры промптов, причём цепочка мышления и ролевые промпты неизменно превосходят обобщённые запросы. Для QA-инженеров освоение prompt-инжиниринга открывает возможности более быстрой генерации тест-кейсов, лучшего анализа отчётов об ошибках, автоматической подготовки документации и более точной оценки рисков — превращая AI-инструменты из новинок в усилители, которые улучшают каждую фазу жизненного цикла тестирования.&lt;/p&gt;</description></item><item><title>Property-Based Testing: Генеративное Тестирование Инвариантов Системы</title><link>https://yrkan.com/ru/blog/property-based-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/property-based-testing/</guid><description>&lt;p&gt;Тестирование на основе свойств (PBT) автоматически генерирует сотни тест-кейсов путём определения инвариантов — правил, которые должны всегда выполняться — вместо ручного создания отдельных примеров. По данным исследования Джона Хьюза, создателя QuickCheck, тестирование на основе свойств выявило более 200 ошибок в телекоммуникационных системах Erlang, которые традиционные тесты на примерах полностью пропустили. По данным исследования IEEE Software, команды, использующие PBT совместно с тестами на основе примеров, сообщали о 35-50% более высоких показателях обнаружения дефектов для граничных случаев и граничных условий. Для QA-инженеров, работающих со сложной бизнес-логикой, преобразованиями данных или API, PBT-фреймворки — Hypothesis (Python), QuickCheck (Haskell/Erlang) и fast-check (JavaScript) — предоставляют мощное дополнение к традиционным подходам к тестированию.&lt;/p&gt;</description></item><item><title>Puppeteer vs Playwright: Всесторонняя Сравнение для Автоматизации Тестирования</title><link>https://yrkan.com/ru/blog/puppeteer-vs-playwright-comparison/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/puppeteer-vs-playwright-comparison/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Выбирай Puppeteer&lt;/strong&gt; для: веб-скрапинга, генерации PDF, Chrome-специфичной автоматизации, лёгких задач&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Выбирай Playwright&lt;/strong&gt; для: E2E-тестирования, кросс-браузерного покрытия, встроенного тест-ранера, продвинутой отладки&lt;/li&gt;
&lt;li&gt;Оба имеют ~90% совместимость API для базовых операций — миграция несложная&lt;/li&gt;
&lt;li&gt;Playwright обошёл Puppeteer по npm-загрузкам в use-кейсах тестирования&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 18 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Puppeteer и Playwright — два доминирующих Node.js-инструмента автоматизации браузеров, но они принципиально разошлись по назначению: Puppeteer превосходит в Chrome-специфичных задачах, тогда как Playwright стал ведущим фреймворком для кросс-браузерного E2E-тестирования. Puppeteer, выпущенный Google в 2017 году, накопил около 89 000 GitHub-звёзд и стал де-факто стандартом для веб-скрапинга и headless Chrome задач. Playwright, созданный Microsoft в 2020 году командой бывших инженеров Puppeteer, имеет около 68 000 GitHub-звёзд, но обошёл Puppeteer по еженедельным npm-загрузкам для E2E-тестовых проектов. Согласно тенденциям npm-загрузок, недельные загрузки Playwright для E2E-тестирования теперь превышают показатели Puppeteer. Согласно отчёту SmartBear State of Software Quality 2025, внедрение кросс-браузерного тестирования выросло на 28% год-к-году — ключевой фактор роста Playwright. Playwright патчит браузеры на этапе сборки для единого API через Chromium, Firefox и WebKit — Puppeteer фокусируется на Chrome/Chromium с экспериментальной поддержкой Firefox.&lt;/p&gt;</description></item><item><title>Pytest Tutorial: Полное Руководство по Тестированию на Python</title><link>https://yrkan.com/ru/blog/pytest-tutorial-python-testing/</link><pubDate>Tue, 27 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/pytest-tutorial-python-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pytest — стандартный фреймворк тестирования Python — простой синтаксис, мощные возможности&lt;/li&gt;
&lt;li&gt;Пиши тесты как функции: &lt;code&gt;def test_something():&lt;/code&gt; с &lt;code&gt;assert&lt;/code&gt; выражениями&lt;/li&gt;
&lt;li&gt;Fixtures обрабатывают setup/teardown с декоратором &lt;code&gt;@pytest.fixture&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Параметризация для запуска теста с разными данными: &lt;code&gt;@pytest.mark.parametrize&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Богатая экосистема плагинов: pytest-cov (покрытие), pytest-xdist (параллельно), pytest-mock&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Python разработчиков, Django/Flask/FastAPI проектов, тестирования data science
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Не используешь Python (используй Jest для JS, JUnit для Java)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pytest — самый популярный фреймворк тестирования Python, используемый 65% Python-разработчиков согласно &lt;a href="https://lp.jetbrains.com/python-developers-survey-2024/"&gt;опросу JetBrains Python Developers Survey 2024&lt;/a&gt;. С более чем 12 000 звёзд на GitHub и 1 000+ плагинов на PyPI, pytest стал стандартом тестирования Python — от простых unit-тестов до сложных интеграционных наборов. В отличие от встроенного модуля unittest, pytest не требует шаблонных классов, предоставляет детальную интроспекцию assertions, показывающую что именно упало и почему, и предлагает мощную систему fixtures, основанную на dependency injection, а не наследовании. Крупные проекты — Django, Flask, FastAPI и Requests — все используют pytest для своих тестов. Хочешь ли ты написать свой первый Python-тест или мигрировать с unittest — это руководство охватывает установку, assertions, fixtures, параметризацию, мокирование, параллельное выполнение, интеграцию с CI/CD и реальные паттерны, которые поддерживают большие pytest-наборы.&lt;/p&gt;</description></item><item><title>QA для Квантовых Вычислений: Тестирование Нетестируемого</title><link>https://yrkan.com/ru/blog/quantum-computing-qa/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/quantum-computing-qa/</guid><description>&lt;p&gt;Квантовые вычисления представляют собой смену парадигмы, которая ставит под сомнение каждое фундаментальное допущение традиционного тестирования ПО. В отличие от классических вычислений, где биты являются детерминированными 0 и 1, квантовые биты (кубиты) существуют в состояниях суперпозиции — и тестирование вероятностных выходных данных требует совершенно новых методологий. По данным отчёта IBM Quantum Network 2023, квантовый объём коммерческих квантовых процессоров удвоился до 1024, что делает тестирование квантового ПО насущной практической проблемой. По данным McKinsey Global Institute, квантовые вычисления прогнозируются к генерации $700 млрд стоимости к 2035 году в фармацевтике, финансах и логистике — QA-инженеры, развивающие экспертизу в квантовом тестировании сейчас, будут среди самых востребованных специалистов в этой области.&lt;/p&gt;</description></item><item><title>Qase JavaScript Commons v2.5.10: Рефакторинг HostData</title><link>https://yrkan.com/ru/tools-updates/qase-qase-javascript-commons-v2-5-whats-new/</link><pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/qase-qase-javascript-commons-v2-5-whats-new/</guid><description>&lt;h2 id="qase-javascript-commons-v2510-рефакторинг-hostdata"&gt;Qase JavaScript Commons v2.5.10: Рефакторинг HostData &lt;a href="#qase-javascript-commons-v2510-%d1%80%d0%b5%d1%84%d0%b0%d0%ba%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-hostdata" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Внутренний рефакторинг имен полей &lt;code&gt;HostData&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Повышает согласованность между репортерами Qase JavaScript.&lt;/li&gt;
&lt;li&gt;Улучшает удобство поддержки и дальнейшее развитие.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Библиотека Qase JavaScript Commons обновлена до версии v2.5.10, сосредоточившись на внутренних улучшениях. Основное изменение — рефакторинг, направленный на унификацию имен полей &lt;code&gt;HostData&lt;/code&gt; во всех репортерах. Эта стандартизация оптимизирует внутреннюю обработку данных в библиотеке.&lt;/p&gt;
&lt;p&gt;Для получения полной информации, обратитесь к &lt;a href="https://github.com/qase-tms/qase-javascript/compare/qase-javascript-commons-v2.5.9...qase-javascript-commons-v2.5.10"&gt;Qase JavaScript Changelog&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="impact-for-qa-teams"&gt;Impact for QA Teams &lt;a href="#impact-for-qa-teams" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Это обновление представляет собой преимущественно внутреннее улучшение кода. Хотя оно не вводит новые функции и не исправляет видимые пользователю ошибки, оно способствует стабильности и удобству поддержки библиотеки. Команды QA могут рассчитывать на более согласованную и надежную основу для интеграции своих JavaScript-тестов с Qase.&lt;/p&gt;</description></item><item><title>Ranorex Studio: Codeless Автоматизация для Windows Desktop Приложений</title><link>https://yrkan.com/ru/blog/ranorex-studio-codeless-windows/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ranorex-studio-codeless-windows/</guid><description>&lt;p&gt;Ranorex Studio — коммерческая платформа автоматизации тестирования, специально разработанная для тестирования настольных приложений Windows, предлагающая возможности бескодовой записи в сочетании с полноценной автоматизацией на коде для сложных сценариев. По данным обзоров G2 Crowd, Ranorex Studio входит в топ-3 инструментов автоматизации настольных приложений со средним рейтингом 4,2/5, особенно высоко оценённая за технологию распознавания объектов, которая обрабатывает приложения Delphi, MFC, WinForms и WPF. По данным опроса клиентов Ranorex, команды, использующие бескодовую запись Ranorex, сокращают время создания тестов на 60% для простых UI-рабочих процессов. Для QA-команд, тестирующих устаревшие настольные приложения Windows, Ranorex представляет целевое решение для корпоративной автоматизации настольных приложений.&lt;/p&gt;</description></item><item><title>RapidAPI Client: Тестирование публичных API из Marketplace</title><link>https://yrkan.com/ru/blog/rapidapi-client-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/rapidapi-client-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;RapidAPI&lt;/strong&gt;: marketplace API (40 000+ API) и клиент тестирования с единой аутентификацией&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Главное преимущество&lt;/strong&gt;: один API-ключ для всех API маркетплейса — без управления учётными данными&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Обнаружение&lt;/strong&gt;: поиск API по категориям (погода, финансы, AI/ML), фильтрация по задержке и цене&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Тестирование&lt;/strong&gt;: встроенный тестировщик endpoint с инспекцией запрос/ответ и генерацией кода&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Мониторинг&lt;/strong&gt;: здоровье API, тренды задержки и использование квот в одном дашборде&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Подходит для&lt;/strong&gt;: прототипирования со сторонними API, сравнения API, сокращения времени интеграции&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;RapidAPI занимает уникальное место в API-экосистеме — это одновременно крупнейший в мире маркетплейс API и полноценный клиент для тестирования. По данным RapidAPI, на платформе размещено более 40 000 публичных API, которыми пользуются свыше 4 миллионов разработчиков. Мировая API-экономика оценивалась в $4,5 триллиона в 2023 году, а API-first компании растут на 59% быстрее по данным исследования Postman. В отличие от традиционных клиентов вроде Postman или Insomnia, требующих ручной настройки endpoint и управления отдельными учётными данными, RapidAPI предоставляет предварительно настроенные API с автоматической инъекцией заголовков аутентификации, единым биллингом и мгновенной генерацией кода. Это руководство охватывает эффективное использование RapidAPI для обнаружения, тестирования, мониторинга и интеграции API.&lt;/p&gt;</description></item><item><title>React Native Testing Library: Лучшие Практики и Продвинутые Техники</title><link>https://yrkan.com/ru/blog/react-native-testing-library/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/react-native-testing-library/</guid><description>&lt;p&gt;React Native Testing Library (RNTL) стала стандартом для компонентного тестирования в приложениях React Native, предоставляя утилиты тестирования, которые поощряют хорошие практики, делая тесты похожими на то, как пользователи взаимодействуют с компонентами. По данным опроса React Native Community 2023, 68% разработчиков React Native теперь используют RNTL для компонентного тестирования, по сравнению с 31% в 2020 году, что делает её самым быстрорастущим инструментом тестирования в экосистеме. По данным исследования Journal of Systems and Software, приложения, протестированные с помощью пользовательского подхода RNTL, показывают на 35% меньше регрессионных ошибок в UI-компонентах. Для QA-инженеров и разработчиков React Native освоение утилит async, пользовательских запросов, мокирования нативных модулей и интеграции с Jest обеспечивает комплексное компонентное тестирование.&lt;/p&gt;</description></item><item><title>Release Notes для QA: Что Тестировать в Новой Версии</title><link>https://yrkan.com/ru/blog/release-notes-qa/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/release-notes-qa/</guid><description>&lt;p&gt;QA-ориентированные примечания к релизу заполняют разрыв между журналами изменений разработчиков и actionable директивами тестирования, превращая «что изменилось» в «что тестировать, насколько тщательно и с каким приоритетом». По данным исследования Software Testing Institute, команды, использующие структурированные QA-примечания к релизу, сокращают время планирования тестирования на 45% и достигают на 30% лучшего регрессионного покрытия по сравнению с командами, интерпретирующими обобщённые журналы изменений. По данным исследования Atlassian Developer Success Lab, QA-команды, получающие хорошо структурированную информацию об изменениях, тратят на 2,5 часа меньше за цикл релиза на анализ тестового охвата. Освоение QA-ориентированных примечаний к релизу означает извлечение сигналов риска из истории коммитов, маппинг изменений на тестовые области и определение регрессионных горячих точек.&lt;/p&gt;</description></item><item><title>ReportPortal: AI-Powered Агрегация Результатов Тестов</title><link>https://yrkan.com/ru/blog/reportportal-ai-test-aggregation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/reportportal-ai-test-aggregation/</guid><description>&lt;p&gt;ReportPortal — open-source платформа отчётности тестирования на базе AI, которая агрегирует результаты тестов из нескольких фреймворков, применяет машинное обучение для обнаружения паттернов сбоев и автоматически сортирует дефекты для снижения накладных расходов на ручной анализ. По собственным тестам ReportPortal, команды, использующие ReportPortal, сокращают время анализа тестов на 70% через AI-триаж сбоев по сравнению с ручным анализом логов. По данным кейс-стади EPAM Systems, крупномасштабное внедрение ReportPortal через 50 CI/CD пайплайнов сократило время от сбоя теста до определения первопричины с 45 минут до 8 минут. Для QA-команд, ежедневно запускающих тысячи автоматизированных тестов, ReportPortal трансформирует сырые тестовые данные в actionable разведданные о качестве.&lt;/p&gt;</description></item><item><title>Requestly: Перехват и модификация HTTP запросов</title><link>https://yrkan.com/ru/blog/requestly-http-intercept/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/requestly-http-intercept/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — Requestly — браузерный HTTP-перехватчик с более чем 300 000 пользователей. Он позволяет перенаправлять URL, мокировать API-ответы, изменять заголовки и инъектировать скрипты без изменения кода приложения. Руководство охватывает все 6 типов правил с реальными тестовыми сценариями.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Requestly — мощное расширение для браузера, позволяющее QA-инженерам перехватывать, изменять и перенаправлять HTTP-запросы и ответы в реальном времени. Расширение установлено более чем 300 000 пользователями в Chrome Web Store. Согласно опросу Requestly, команды, использующие браузерные HTTP-перехватчики, сообщают о 40% меньшем количестве блокеров интеграции при параллельной разработке. Расширение работает на уровне браузера — без настройки системного прокси — и идеально подходит для тестирования пограничных случаев и сценариев ошибок без изменения кода приложения.&lt;/p&gt;</description></item><item><title>Requirements Traceability Matrix (RTM): связь требований с тестами</title><link>https://yrkan.com/ru/blog/requirements-traceability-matrix/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/requirements-traceability-matrix/</guid><description>&lt;p&gt;Матрица прослеживаемости требований (RTM) — единственный артефакт, связывающий бизнес-требования с тест-кейсами и дефектами, обеспечивая двунаправленную прослеживаемость, которая гарантирует тестирование каждого требования и обратную трассировку каждого тест-кейса к бизнес-потребности. По данным исследования IEEE Software, проекты, поддерживающие формальную прослеживаемость требований, испытывают на 45% меньше дефектов, связанных с требованиями, в продакшне и на 30% быстрее проводят анализ влияния при изменении требований. По данным ISTQB, прослеживаемость требований — обязательная практика для систем, критически важных для безопасности (IEC 62304, DO-178C, ISO 26262). Для QA-команд RTM обеспечивает конкретные доказательства тестового покрытия для аудитов и служит критически важным коммуникационным мостом между бизнес-аналитиками, разработчиками и инженерами качества.&lt;/p&gt;</description></item><item><title>REST API vs GraphQL vs gRPC: Выбор Правильного Протокола для Мобильных Приложений</title><link>https://yrkan.com/ru/blog/rest-graphql-grpc-mobile/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/rest-graphql-grpc-mobile/</guid><description>&lt;p&gt;Выбор API-протокола для мобильных приложений напрямую влияет на пользовательский опыт, время автономной работы и скорость разработки — неправильный выбор может привести к значительным затратам на рефакторинг. По данным исследования производительности Coursera Engineering, переход с REST на GraphQL сократил передачу мобильных данных на 50% и улучшил время отклика API на 30% для их обучающей платформы. По данным исследования Google по gRPC, сериализация protocol buffer в 3-10 раз быстрее десериализации JSON, что делает gRPC в 2-4 раза более эффективным по полосе пропускания, чем REST. Для мобильных разработчиков и QA-инженеров понимание тестовых последствий каждого протокола необходимо для разработки эффективных стратегий тестирования.&lt;/p&gt;</description></item><item><title>REST Assured Tutorial: Полное Руководство по API-тестированию на Java</title><link>https://yrkan.com/ru/blog/rest-assured-tutorial-java/</link><pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/rest-assured-tutorial-java/</guid><description>&lt;p&gt;REST Assured — мощная Java-библиотека для тестирования RESTful API, предоставляющая предметно-ориентированный язык, который делает написание HTTP-тестов таким же естественным, как написание бизнес-требований. По данным JetBrains State of Developer Ecosystem 2023, REST Assured используется примерно 65% Java-разработчиков, пишущих API-тесты, что делает его доминирующим фреймворком API-тестирования в мире Java. По данным исследования Sauce Labs, команды, принявшие REST Assured, сообщают о 40% более высокой скорости написания тестов и на 25% меньших накладных расходах на обслуживание тестов. Этот туториал охватывает REST Assured от нуля до production-ready настройки, включая конфигурацию Maven/Gradle, построение запросов, валидацию ответов с JSONPath и паттерны аутентификации.&lt;/p&gt;</description></item><item><title>REST Assured: Java-Based Фреймворк для Тестирования API в Современных Приложениях</title><link>https://yrkan.com/ru/blog/rest-assured-testirovanie-api/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/rest-assured-testirovanie-api/</guid><description>&lt;p&gt;REST Assured стал де-факто стандартом для API-тестирования в Java-экосистеме, предлагая свободный DSL, который делает сложную валидацию HTTP-запросов читаемой и поддерживаемой. По данным JetBrains State of Developer Ecosystem 2023, Java остаётся лидирующим языком для backend-разработки с 45% долей рынка, и REST Assured используется более чем в 60% Java-проектов с автоматизированными API-тестами. По данным ThoughtWorks Technology Radar, REST Assured неизменно значится как инструмент для &amp;lsquo;Trial&amp;rsquo; или &amp;lsquo;Adopt&amp;rsquo; с 2015 года, что отражает его проверенную надёжность в корпоративном API-тестировании. Для Java QA-инженеров синтаксис given-when-then, встроенные утверждения JSON/XML path, валидация схем и бесшовная интеграция с JUnit и TestNG делают REST Assured наиболее продуктивным выбором.&lt;/p&gt;</description></item><item><title>Risk-Based Testing: приоритизация усилий тестирования для максимального эффекта</title><link>https://yrkan.com/ru/blog/risk-based-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/risk-based-testing/</guid><description>&lt;p&gt;Тестирование на основе рисков — подход, при котором тестовые мероприятия выбираются, приоритизируются и выполняются на основе оценённых уровней риска тестируемого ПО. По данным исследования IEEE Transactions on Software Engineering, тестирование на основе рисков выявляет на 25-40% больше критических дефектов за час выполнения тестов по сравнению с тестированием на основе покрытия требований. По данным учебного плана ISTQB Advanced Level Test Manager, тестирование на основе рисков входит в пятёрку наиболее важных техник тестирования для профессиональных QA-менеджеров. Для QA-профессионалов всех уровней применение риск-ориентированного тестирования требует понимания двух измерений: риска продукта (что может пойти не так с ПО) и риска проекта (что может пойти не так с процессом тестирования).&lt;/p&gt;</description></item><item><title>Robot Framework Tutorial: Полное Руководство по Keyword-Driven Тестированию</title><link>https://yrkan.com/ru/blog/robot-framework-tutorial/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/robot-framework-tutorial/</guid><description>&lt;p&gt;Robot Framework — open-source фреймворк автоматизации на базе Python, который популяризировал тестирование на основе ключевых слов, делая автоматизацию тестирования доступной благодаря удобочитаемому синтаксису. По данным ежегодного опроса Robot Framework Foundation, Robot Framework имеет более 1,5 миллиона загрузок в месяц и используется в 100+ странах с 34% ростом год к году. По данным исследования Sauce Labs, команды, использующие Robot Framework, сообщают о 50% более высокой скорости создания тестов. Этот туториал охватывает Robot Framework от установки до интеграции CI/CD.&lt;/p&gt;</description></item><item><title>Robot Framework vs Selenium: Сравнение Тест-Автоматизации 2026</title><link>https://yrkan.com/ru/blog/robot-framework-vs-selenium/</link><pubDate>Tue, 10 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/robot-framework-vs-selenium/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Robot Framework&lt;/strong&gt;: Keyword-driven тест-фреймворк — использует библиотеки (Selenium, Playwright и др.) для автоматизации&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Selenium&lt;/strong&gt;: Библиотека браузерной автоматизации — требует программирования, даёт максимальный контроль&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Главное&lt;/strong&gt;: Это не конкуренты. RF использует Selenium под капотом через SeleniumLibrary&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Для не-программистов&lt;/strong&gt;: Robot Framework (читаемые keywords, кодирование не нужно)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Для разработчиков&lt;/strong&gt;: Чистый Selenium с pytest/JUnit (полный контроль, нативная IDE)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Современный вариант&lt;/strong&gt;: Robot Framework + Browser library (использует Playwright, не Selenium)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд, выбирающих между keyword-driven и код-автоматизацией тестов
&lt;strong&gt;Пропусти если:&lt;/strong&gt; Сравниваешь Selenium с Playwright или Cypress (другое сравнение)&lt;/p&gt;</description></item><item><title>Robot Framework: Освоение Ключевого Подхода к Автоматизации Тестирования</title><link>https://yrkan.com/ru/blog/robot-framework-keyword-driven-avtomatizaciya/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/robot-framework-keyword-driven-avtomatizaciya/</guid><description>&lt;p&gt;Архитектура keyword-driven в Robot Framework отличает его от других фреймворков: тесты пишутся в удобочитаемом синтаксисе с высокоуровневыми ключевыми словами, позволяя совместно работать техническим и нетехническим членам команды. По данным State of Testing Report 2023 от SmartBear, Robot Framework используется 22% QA-профессионалов, применяющих open-source инструменты. По данным QAComplete, проекты с keyword-driven тестированием демонстрируют на 40% более высокие показатели повторного использования тестов и на 30% ниже затраты на обслуживание. Освоение архитектуры ключевых слов, экосистемы библиотек (SeleniumLibrary, RequestsLibrary) и создания пользовательских ключевых слов обеспечивает масштабируемую основу для автоматизации.&lt;/p&gt;</description></item><item><title>ROI Тестирования с ИИ: Измерение Бизнес-Ценности</title><link>https://yrkan.com/ru/blog/roi-ai-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/roi-ai-testing/</guid><description>&lt;p&gt;Измерение ROI инвестиций в AI-тестирование стало критически важным по мере внедрения AI-инструментов для генерации тестов, предсказания дефектов и оптимизации выполнения тестов. По данным Capgemini World Quality Report 2023, организации с AI в тестировании сообщают о средней экономии 20-30%, но только 35% имеют формальные фреймворки измерения. По данным Gartner, AI-расширенное тестирование прогнозируется к автоматизации 75% деятельности регрессионного тестирования к 2025 году, с 2-4-кратным повышением производительности. Для QA-лидов и CTO, оценивающих инвестиции, построение строгого фреймворка ROI необходимо для обоснования бюджета и демонстрации стратегической ценности.&lt;/p&gt;</description></item><item><title>SDLC vs STLC: понимание процессов разработки и тестирования</title><link>https://yrkan.com/ru/blog/sdlc-vs-stlc/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/sdlc-vs-stlc/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SDLC&lt;/strong&gt; — фреймворк для всего процесса создания ПО, от концепции до поддержки&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;STLC&lt;/strong&gt; — структурированный подход к тестировочным активностям внутри SDLC&lt;/li&gt;
&lt;li&gt;STLC не отделён от SDLC: он начинается уже на этапе анализа требований&lt;/li&gt;
&lt;li&gt;В Agile оба цикла сжаты в спринты; в Waterfall — последовательные фазы&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 12 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Согласно глоссарию &lt;a href="https://glossary.istqb.org/"&gt;ISTQB&lt;/a&gt;, SDLC определяет полный набор фаз планирования, создания, тестирования и поставки ПО, а STLC описывает последовательность тестировочных активностей внутри этих фаз. На практике они неразделимы: отчёт &lt;a href="https://smartbear.com/resources/ebooks/the-state-of-software-quality/"&gt;SmartBear State of Software Quality 2025&lt;/a&gt; показал, что 61% QA-команд по-прежнему рассматривают тестирование как позднюю стадию, а не интегрируют его на всём протяжении SDLC — а это напрямую коррелирует с более высоким дефектным просачиванием и более длинными циклами выпуска. Понимание того, как SDLC и STLC соотносятся друг с другом, — не просто теория: это определяет, как рано ты находишь баги, сколько доработок делает команда и где QA находится в организационной иерархии. В Agile-окружении различие становится ещё важнее: тестировщики, понимающие SDLC, могут аргументированно добиваться shift-left практик, раннего участия в ревью дизайна и полноценного времени на планирование тестов. В этом руководстве мы разберём оба цикла по фазам и сопоставим их с контекстами Waterfall, V-Model, Agile и DevOps.&lt;/p&gt;</description></item><item><title>Security Headers Testing: Защита Веб-Приложений</title><link>https://yrkan.com/ru/blog/security-headers-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/security-headers-testing/</guid><description>&lt;p&gt;Заголовки безопасности — HTTP-заголовки ответа, которые инструктируют браузеры применять политики безопасности, защищая веб-приложения от XSS, кликджекинга, сниффинга типов MIME и других распространённых атак с минимальными усилиями по реализации. По данным Mozilla Web Security Observatory, только 35% веб-сайтов правильно реализуют Content Security Policy (CSP), а 45% не имеют HTTP Strict Transport Security (HSTS). По данным OWASP, отсутствующие или неправильно настроенные заголовки безопасности ответственны примерно за 30% уязвимостей безопасности веб-приложений, обнаруженных при тестировании на проникновение. Для QA-инженеров автоматизированное тестирование заголовков безопасности с инструментами Mozilla Observatory или Playwright обеспечивает воспроизводимую проверку.&lt;/p&gt;</description></item><item><title>Security Testing для QA: OWASP Top 10</title><link>https://yrkan.com/ru/blog/security-testing-owasp/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/security-testing-owasp/</guid><description>&lt;p&gt;OWASP Top 10 представляет наиболее критические риски безопасности веб-приложений, выявленные экспертами по безопасности по всему миру, предоставляя QA-инженерам окончательный фреймворк для планирования тестирования безопасности. По данным собственного анализа OWASP, категории Top 10 охватывают уязвимости, ответственные за более чем 90% реальных взломов веб-приложений. По данным Veracode State of Software Security 2023, 76% приложений имеют хотя бы одну уязвимость из OWASP Top 10, а 24% имеют критические уязвимости. Для QA-инженеров понимание категорий OWASP Top 10 2021 года — от Broken Access Control (#1) до Server-Side Request Forgery (#10) — и умение тестировать каждую обеспечивает комплексное покрытие наиболее опасных классов уязвимостей.&lt;/p&gt;</description></item><item><title>Security Testing для QA: Практическое руководство</title><link>https://yrkan.com/ru/blog/security-testing-for-qa/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/security-testing-for-qa/</guid><description>&lt;p&gt;Тестирование безопасности стало основной компетенцией QA по мере того, как приложения сталкиваются со всё более изощрёнными угрозами и регуляторными требованиями. По данным IBM Cost of a Data Breach Report 2023, средняя стоимость утечки данных достигла $4,45 млн глобально, рост 15% за три года, при этом 82% взломов связаны с данными, хранящимися в облаке. По данным OWASP, 10 наиболее критических рисков безопасности веб-приложений остаются стабильными год от года, что означает, что QA-инженеры, освоившие эти паттерны уязвимостей, получают устойчивую ценную экспертизу. Это практическое руководство охватывает OWASP Top 10, основы тестирования на проникновение, техники тестирования SQL Injection и XSS, валидацию CSRF и интеграцию инструментов сканирования безопасности.&lt;/p&gt;</description></item><item><title>Selenium Grid 4: Архитектура Распределенного Выполнения Тестов</title><link>https://yrkan.com/ru/blog/selenium-grid-4-distributed-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/selenium-grid-4-distributed-testing/</guid><description>&lt;p&gt;Selenium Grid 4 — это полная архитектурная переработка фреймворка для распределённого выполнения тестов. По данным отчёта SmartBear «State of Testing 2024», Selenium остаётся самым распространённым инструментом автоматизации браузеров: его используют 61% команд в продакшне. В отличие от Grid 3, четвёртая версия разбивает монолитный Hub на шесть независимых компонентов — Router, Distributor, Session Map, Queue, Event Bus и Node, — каждый из которых можно масштабировать отдельно. Нативная трассировка OpenTelemetry, GraphQL API для интроспекции и официальные Docker-образы с Helm-чартами решают три главные проблемы Grid 3: слабую наблюдаемость, ограниченное горизонтальное масштабирование и сложность работы с контейнерами. По данным инфраструктурной команды Google, распределённые тестовые сетки с сотнями параллельных сессий сокращают время обратной связи CI до 80% по сравнению с последовательным запуском. Это руководство охватывает архитектуру Grid 4, развёртывание в Docker и Kubernetes, стек наблюдаемости и реальные паттерны конфигурации.&lt;/p&gt;</description></item><item><title>Selenium Tutorial для Начинающих 2026: Полное Руководство по WebDriver</title><link>https://yrkan.com/ru/blog/selenium-tutorial-beginners/</link><pubDate>Sun, 25 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/selenium-tutorial-beginners/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Selenium WebDriver автоматизирует реальные браузеры (Chrome, Firefox, Safari, Edge) для тестирования веб-приложений&lt;/li&gt;
&lt;li&gt;Начни с Python — проще синтаксис, быстрее обратная связь для новичков&lt;/li&gt;
&lt;li&gt;Освой локаторы (ID, CSS, XPath) и явные ожидания до написания сложных тестов&lt;/li&gt;
&lt;li&gt;Используй Page Object Model с первого дня — рефакторить потом больно&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; QA-инженеров, начинающих автоматизацию браузеров, разработчиков, пишущих E2E-тесты
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Нужно только API-тестирование (используй Postman) или уже знаешь Playwright/Cypress&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Selenium WebDriver — open-source фреймворк автоматизации браузеров, который программно управляет реальными браузерами для тестирования веб-приложений. С более чем 31 000 звёзд на GitHub и поддержкой Python, Java, C#, JavaScript и Ruby, Selenium остаётся самым распространённым инструментом тестирования в браузерах. Согласно &lt;a href="https://www.jetbrains.com/lp/devecosystem-2025/"&gt;опросу JetBrains Developer Ecosystem 2025&lt;/a&gt;, Selenium используют 48% разработчиков, пишущих автоматизированные тесты, что делает его самым популярным фреймворком автоматизации браузеров, опережая Playwright (29%) и Cypress (24%). Сложность Selenium не в самом API — а в освоении ожиданий, выборе надёжных локаторов и структурировании тестов паттернами вроде Page Object Model. Этот полный туториал охватывает настройку WebDriver для Python и Java, стратегии локаторов, явные ожидания, Page Object Model, headless-выполнение, интеграцию с CI/CD и реальные паттерны, которые я использую ежедневно для создания стабильных Selenium-тестов.&lt;/p&gt;</description></item><item><title>Selenium vs Playwright: Что Выбрать в 2026</title><link>https://yrkan.com/ru/blog/selenium-vs-playwright-comparison/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/selenium-vs-playwright-comparison/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Playwright&lt;/strong&gt;: Современный, в 2-3x быстрее, auto-waiting, Trace Viewer, поддержка Microsoft&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Selenium&lt;/strong&gt;: 20-летний ветеран, большая экосистема, больше языков, проверен enterprise&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Скорость&lt;/strong&gt;: Playwright выигрывает — нативные протоколы браузера vs HTTP-based WebDriver&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Стабильность&lt;/strong&gt;: Auto-waiting Playwright снижает flaky тесты с ~8% до ~1%&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Выбирай Playwright&lt;/strong&gt; для: новых проектов, современных веб-приложений, TypeScript/Python команд, скорости CI/CD&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Выбирай Selenium&lt;/strong&gt; для: legacy браузеров, существующей Grid инфраструктуры, мобильного через Appium, Ruby/Kotlin&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Моё мнение:&lt;/strong&gt; Для любого нового проекта в 2026 я бы начал с Playwright. Selenium имеет смысл только при конкретных ограничениях — legacy браузеры, Appium или большой существующий тестовый набор.&lt;/p&gt;</description></item><item><title>Selenium WebDriver в 2026: все еще актуально?</title><link>https://yrkan.com/ru/blog/selenium-webdriver-2025-vse-esche-aktualno/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/selenium-webdriver-2025-vse-esche-aktualno/</guid><description>&lt;p&gt;Selenium WebDriver остаётся одним из самых используемых фреймворков для автоматизации браузеров в 2026 году — несмотря на появление Playwright и Cypress. По данным опроса SmartBear «State of Testing 2024», 61% QA-команд продолжают использовать Selenium в продакшне — этот показатель стабилен уже пять лет. Долголетие фреймворка объясняется факторами, которые новые инструменты просто не могут воспроизвести: нативная поддержка всех основных языков программирования (Java, Python, C#, Ruby, JavaScript), крупнейшая экосистема облачных провайдеров (Sauce Labs, BrowserStack, LambdaTest) и единственный mainstream-инструмент с production-grade поддержкой Safari через SafariDriver. Selenium 4, выпущенный в октябре 2021 года и постоянно улучшаемый с тех пор, устранил главные претензии к третьей версии: принял стандарт W3C WebDriver, добавил относительные локаторы, интегрировал Chrome DevTools Protocol и переработал Grid с поддержкой Kubernetes. Это руководство анализирует, достаточно ли этих улучшений, чтобы Selenium оставался конкурентоспособным, и когда именно стоит выбирать его вместо Playwright, Cypress или WebdriverIO.&lt;/p&gt;</description></item><item><title>Semgrep v1.156.0: Улучшения Kotlin и Исправления Производительности</title><link>https://yrkan.com/ru/tools-updates/semgrep-v1-156-whats-new/</link><pubDate>Mon, 23 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/semgrep-v1-156-whats-new/</guid><description>&lt;h2 id="semgrep-v11560-улучшения-kotlin-и-исправления-производительности"&gt;Semgrep v1.156.0: Улучшения Kotlin и Исправления Производительности &lt;a href="#semgrep-v11560-%d1%83%d0%bb%d1%83%d1%87%d1%88%d0%b5%d0%bd%d0%b8%d1%8f-kotlin-%d0%b8-%d0%b8%d1%81%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-%d0%bf%d1%80%d0%be%d0%b8%d0%b7%d0%b2%d0%be%d0%b4%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Semgrep v1.156.0, выпущенный 17 марта 2026 года, сосредоточен на улучшении поддержки языков и устранении ключевых проблем производительности и стабильности. Это минорное обновление относится к категории Производительность и Безопасность.&lt;/p&gt;
&lt;h3 id="tldr"&gt;TL;DR &lt;a href="#tldr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Улучшена поддержка Kotlin за счет обновления парсера.&lt;/li&gt;
&lt;li&gt;Исправлены ошибки в Semgrep Pro, касающиеся Ruby и парсинга &lt;code&gt;tsconfig.json&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Устранено падение &lt;code&gt;semgrep ci&lt;/code&gt; при отсутствии удаленного репозитория Git.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Улучшения:&lt;/strong&gt; Semgrep v1.156.0 улучшает поддержку Kotlin за счет обновления парсера tree-sitter, что повышает точность статического анализа для проектов на Kotlin.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Исправления:&lt;/strong&gt; Устранен ряд проблем. Semgrep Pro теперь корректно различает доступ к переменным и вызовы методов без аргументов в Ruby для экспериментального межфайлового анализа taint. Также оптимизирован парсинг &lt;code&gt;tsconfig.json&lt;/code&gt; путем мемоизации результатов, что сокращает избыточные операции. Общее исправление предотвращает сбой &lt;code&gt;semgrep ci&lt;/code&gt; при запуске в Git-репозитории без настроенного удаленного origin.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="impact-for-qa-teams"&gt;Impact for QA Teams &lt;a href="#impact-for-qa-teams" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Команды QA, работающие с проектами на Kotlin, получат более точные результаты статического анализа, что позволит выявлять проблемы на ранних этапах. Улучшения производительности в Semgrep Pro для Ruby и TypeScript могут сократить время сканирования. Исправление &lt;code&gt;semgrep ci&lt;/code&gt; обеспечивает более стабильную интеграцию в CI-пайплайны, даже при нестандартных конфигурациях Git.&lt;/p&gt;</description></item><item><title>Session-Based Test Management: Структурированный Подход к Исследовательскому Тестированию</title><link>https://yrkan.com/ru/blog/session-based-test-management/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/session-based-test-management/</guid><description>&lt;p&gt;Session-Based Test Management (SBTM) объединяет преимущества исследования с подотчётностью скриптованного тестирования. По данным SmartBear «State of Testing 2024», исследовательское тестирование используют 62% QA-команд, однако 41% называют отсутствие структуры своей главной проблемой. Разработанное Джоном Бахом и Джеймсом Бахом в рамках RST, SBTM организует работу в сессии по 60-120 минут с письменным чартером, определяющим миссию без предписания конкретных шагов. Опрос по исследовательскому тестированию 2023 года Маарет Пюхяярви выявил, что команды, использующие структурированные методы вроде SBTM, находят на 30-50% больше критических багов в час, чем команды с ad-hoc подходом. Это руководство охватывает написание чартеров, проведение сессий, дебрифинг, метрики и интеграцию с CI/CD.&lt;/p&gt;</description></item><item><title>Shift-Left Testing: Стратегия раннего обнаружения проблем</title><link>https://yrkan.com/ru/blog/shift-left-testing-early-detection/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/shift-left-testing-early-detection/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;
Shift-left testing перемещает активности качества на более ранние этапы цикла разработки. По данным IBM, исправление дефектов в продакшене обходится в 100-200 раз дороже, чем на этапе разработки. Начни с pre-commit hooks, добавь статический анализ в CI/CD, установи пороги покрытия и подключи QA к код-ревью. Цель — ловить баги на этапе стоимостью 1x, а не 100x.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; QA-лидов и инженерных менеджеров, внедряющих DevOps-практики качества в SDLC
&lt;strong&gt;Пропусти если:&lt;/strong&gt; нужно нагрузочное тестирование или мониторинг продакшена — это руководство о предотвращении дефектов до продакшена&lt;/p&gt;</description></item><item><title>Shift-Left Тестирование: Ранняя Интеграция Качества для Экономии Затрат</title><link>https://yrkan.com/ru/blog/shift-left-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/shift-left-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Shift-left тестирование&lt;/strong&gt;: перенос активностей качества на ранние этапы SDLC&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевой факт&lt;/strong&gt;: дефект в требованиях стоит 1x; тот же дефект в production — 100x и более&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Основные практики&lt;/strong&gt;: TDD (сначала тесты), BDD (бизнес-сценарии), инспекции требований&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Данные IBM&lt;/strong&gt;: стоимость дефекта умножается на 10 с каждым следующим этапом&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Опрос SmartBear&lt;/strong&gt;: команды с shift-left сокращают post-release дефекты на 60%&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Путь внедрения&lt;/strong&gt;: инспекции требований → unit-тесты → TDD → BDD&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Shift-left тестирование переносит активности по качеству на более ранние этапы жизненного цикла разработки, обнаруживая дефекты тогда, когда их дешевле и проще исправить. По данным IBM System Science Institute, дефект, найденный при проверке требований, стоит 1x, а тот же дефект, обнаруженный в production, обходится в 100x и более — стократный рост, превращающий раннее обнаружение дефектов не просто в практику качества, но и в финансовый императив. Согласно опросу SmartBear о состоянии качества ПО, команды, практикующие shift-left, сокращают плотность дефектов после релиза до 60% и уменьшают аварийные исправления в production более чем на 40%. Вместо того чтобы рассматривать тестирование как финальные ворота перед релизом, shift-left встраивает проверку качества в каждый этап: инспекции требований, проверки архитектуры, TDD, делающий код тестируемым по дизайну, и BDD-сценарии, согласующие бизнес-намерение с реализацией.&lt;/p&gt;</description></item><item><title>Smoke vs Sanity vs Regression Testing: В Чем Разница?</title><link>https://yrkan.com/ru/blog/smoke-sanity-regression/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/smoke-sanity-regression/</guid><description>&lt;p&gt;Smoke, sanity и regression тестирование — три наиболее часто путаемых термина в QA, хотя каждый служит принципиально разной цели. По данным ISTQB Foundation Level Syllabus, путаница между этими типами входит в пятёрку главных концептуальных ошибок QA-команд по всему миру. Smoke-тестирование (Build Verification Testing) занимает 15-30 минут и отвечает на один вопрос: «Эта сборка достаточно стабильна для тестирования?» Sanity-тестирование занимает 30-60 минут и проверяет, работает ли конкретное исправление. Regression-тестирование всестороннее — от часов до дней. SmartBear «State of Testing 2024» выявил, что 73% команд автоматизируют регрессионные наборы, но лишь 45% имеют формализованные smoke-gate в CI/CD-пайплайнах. Это руководство разъясняет каждый тип с примерами и критериями выбора.&lt;/p&gt;</description></item><item><title>SoapUI Tutorial: Полное Руководство по Тестированию REST и SOAP API</title><link>https://yrkan.com/ru/blog/soapui-tutorial-api-testing/</link><pubDate>Tue, 03 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/soapui-tutorial-api-testing/</guid><description>&lt;p&gt;SoapUI остаётся незаменимым инструментом для enterprise API-тестирования: согласно SmartBear API Testing Report 2024, SOAP-протокол обслуживает 22% трафика enterprise-интеграций, а SoapUI используют как основной инструмент 41% QA-специалистов в крупных организациях. Инструмент выделяется полной поддержкой WSDL — автоматически парсит все операции, генерирует sample requests и обрабатывает XML namespaces без ручной настройки. В отличие от Postman, SoapUI изначально проектировался под сложные SOAP-сценарии: вложенные XML-структуры, WS-Security, динамические mock-сервисы. Для REST-тестирования он также функционален: JSONPath assertions, OAuth, data-driven тесты с CSV и Groovy scripting для сложной логики. Это руководство охватывает полный цикл работы с SoapUI — от импорта WSDL до запуска тестов в CI/CD-пайплайне — с практическими примерами для команд, работающих с SOAP и REST.&lt;/p&gt;</description></item><item><title>SoapUI vs ReadyAPI: Сравнение Enterprise решений для API тестирования</title><link>https://yrkan.com/ru/blog/soapui-vs-readyapi/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/soapui-vs-readyapi/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SoapUI (бесплатно)&lt;/strong&gt;: лучший выбор для SOAP-тестирования с нулевым бюджетом&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ReadyAPI&lt;/strong&gt;: enterprise-платформа с нагрузочным, security- и virtualization-модулями — от $1 899/пользователь в год&lt;/li&gt;
&lt;li&gt;SmartBear приобрел SoapUI в 2011 году и создал на его основе ReadyAPI&lt;/li&gt;
&lt;li&gt;Для чистых REST API рассмотри современные альтернативы: Postman или Bruno&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Итог&lt;/strong&gt;: используй SoapUI для legacy-SOAP систем; переходи на ReadyAPI, если нужен load-тест или сканирование безопасности&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;SoapUI и ReadyAPI — enterprise-инструменты тестирования API, изначально созданные для SOAP-сервисов и сложных QA-процессов. В 2011 году SmartBear приобрел SoapUI и превратил его в платформу ReadyAPI — сегодня её используют более 10 000 enterprise-команд по всему миру (SmartBear, 2024). Глобальный рынок тестирования API оценивался в $1,1 млрд в 2023 году и растёт с темпом 18% CAGR до 2028 года (MarketsandMarkets). Более 70% enterprise-организаций по-прежнему поддерживают SOAP-интеграции наряду с REST-сервисами, что делает SoapUI и ReadyAPI незаменимыми для команд, работающих с legacy-системами. SoapUI остаётся open-source основой для SOAP-тестирования, а ReadyAPI добавляет нагрузочное тестирование (LoadUI Pro), сканирование безопасности (Secure Pro) и виртуализацию API (ServiceV Pro) — всё в единой платформе. Это сравнение помогает тебе выбрать между бесплатным инструментом и коммерческим enterprise-решением.&lt;/p&gt;</description></item><item><title>Soft Skills для QA Engineers: Мастерство командной коммуникации в 2025</title><link>https://yrkan.com/ru/blog/soft-skills-team-communication/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/soft-skills-team-communication/</guid><description>&lt;p&gt;В 2025 году soft skills стали главным дифференциатором для QA инженеров: согласно LinkedIn Workplace Learning Report 2024, коммуникацию и сотрудничество называют главным пробелом в технических кандидатах 73% менеджеров по найму, а QA специалисты с сильными soft skills достигают senior-позиций на 40% быстрее. Переход на удалённую и гибридную работу усилил этот разрыв — команды теперь зависят от письменной коммуникации, асинхронных инструментов и осознанного построения отношений. Для QA инженеров в частности умение представить качество как общую цель, объяснить результаты тестирования нетехническим стейкхолдерам и разрешать конфликты по поводу серьёзности багов и готовности к релизу напрямую влияет на качество продукта. Это руководство охватывает ключевые коммуникационные навыки: сотрудничество с разработчиками, презентация тестовых результатов, разрешение конфликтов и работа в распределённых командах.&lt;/p&gt;</description></item><item><title>Specification by Example: Живая Документация Через Коллаборативные Примеры</title><link>https://yrkan.com/ru/blog/specification-by-example/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/specification-by-example/</guid><description>&lt;p&gt;Specification by Example (SbE) всё активнее внедряется в высокопроизводительных командах: согласно Digital.ai State of Agile Report 2024, 67% организаций, практикующих BDD или ATDD, сообщают о значительном снижении неоднозначности между бизнес-требованиями и доставленным ПО, а команды с исполняемыми спецификациями фиксируют на 30-40% меньше дефектов после релиза, вызванных неправильным пониманием требований. Метод решает фундаментальную проблему: традиционные документы с требованиями устаревают в момент изменения кода, тогда как конкретные примеры, исполняемые на реальном коде, синхронизированы по определению. SbE устраняет коммуникационный разрыв между бизнесом и разработкой, используя общий однозначный язык — конкретные сценарии, понятные всем участникам. Это руководство охватывает полный воркфлоу: от воркшопов Three Amigos до реализации в FitNesse и Concordion.&lt;/p&gt;</description></item><item><title>SQL Injection и XSS: Находим Уязвимости</title><link>https://yrkan.com/ru/blog/sql-injection-xss/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/sql-injection-xss/</guid><description>&lt;p&gt;SQL injection и XSS остаются наиболее эксплуатируемыми уязвимостями веб-приложений: по данным OWASP Top 10 2021, injection-атаки (A03) затрагивают 94% тестируемых приложений, а XSS обнаруживается в 41% веб-приложений при оценке безопасности. Verizon DBIR 2024 сообщает, что 40% подтверждённых утечек данных связаны с атаками на веб-приложения, причём SQL injection — один из ведущих векторов. Несмотря на десятилетия осведомлённости, эти уязвимости сохраняются, потому что разработчики смешивают пользовательский ввод с логикой запросов. Для QA-команд тестирование на SQL injection и XSS должно быть частью каждого спринта — как в виде ручных исследовательских проверок, так и автоматизированных DAST-сканов в CI/CD. Это руководство охватывает техники обнаружения, ручное тестирование с пейлоадами, автоматизированные инструменты и паттерны предотвращения.&lt;/p&gt;</description></item><item><title>Static Testing: находим дефекты без запуска кода</title><link>https://yrkan.com/ru/blog/static-testing-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/static-testing-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Статическое тестирование&lt;/strong&gt;: анализ артефактов без запуска кода — ревью, инспекции, статический анализ&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевое преимущество&lt;/strong&gt;: находит дефекты в 10-100 раз дешевле, чем динамическое тестирование&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Виды&lt;/strong&gt;: неформальные ревью, обходы, технические ревью, формальные инспекции, инструменты статического анализа&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Инструменты&lt;/strong&gt;: SonarQube, ESLint, Checkstyle, PyLint — интеграция в CI/CD для автоматических шлюзов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Данные ISTQB&lt;/strong&gt;: статическое тестирование обнаруживает 60-80% дефектов до начала динамического тестирования&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Лучшая практика&lt;/strong&gt;: сочетай ручное code review с автоматическим статическим анализом&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Статическое тестирование — это дисциплина исследования программных артефактов: кода, требований, документов дизайна и тест-кейсов — без запуска ПО. По данным ISTQB, статическое тестирование способно обнаружить 60-80% всех дефектов до выполнения хоть одной строки кода, значительно снижая стоимость качества. Согласно исследованию SonarQube, разработчики тратят 23% времени на исправление ошибок, которых можно было бы избежать, если бы автоматический статический анализ поймал их в момент коммита. В отличие от динамического тестирования, проверяющего поведение при запуске, статическое тестирование анализирует структуру, синтаксис, логику и согласованность рабочих продуктов, чтобы найти проблемы, невидимые в рантайме: мёртвый код, противоречия в требованиях, уязвимости безопасности и нарушения стандартов. Это руководство охватывает весь спектр статического тестирования — от неформальных ревью до формальных инспекций и автоматизированных SAST-инструментов.&lt;/p&gt;</description></item><item><title>Storybook v10.3.0: ИИ, Экосистема, Улучшения для QA</title><link>https://yrkan.com/ru/tools-updates/storybook-v10-3-whats-new/</link><pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/storybook-v10-3-whats-new/</guid><description>&lt;p&gt;Storybook v10.3.0, выпущенный 18 марта 2026 года, содержит ключевые обновления, ориентированные на улучшение опыта разработчиков, инструменты с ИИ и расширенную поддержку экосистемы. Этот минорный релиз в категории Test Automation предлагает ценные улучшения для инженеров по QA.&lt;/p&gt;
&lt;h3 id="основные-изменения"&gt;Основные изменения &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ИИ и разработка компонентов:&lt;/strong&gt; Представлен предварительный выпуск Storybook MCP (Agentic Component Development) для React, предназначенный для помощи в создании компонентов, документации и тестировании. Экспериментальный инструмент &lt;code&gt;react-component-meta&lt;/code&gt; для извлечения пропсов повышает точность таблиц controls и args.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Совместимость с экосистемой:&lt;/strong&gt; Storybook теперь поддерживает Vite 8, Next.js 16.2 и ESLint 10, обеспечивая совместимость с современными средами разработки. Addon Pseudo-States также получил поддержку Tailwind v4.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Инструменты QA и доступность:&lt;/strong&gt; Конфигурация Addon-Vitest упрощена, что устраняет необходимость в отдельных файлах настройки. Кроме того, реализованы многочисленные улучшения доступности в пользовательском интерфейсе Storybook, повышающие удобство использования для всех.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="влияние-на-qa-команды"&gt;Влияние на QA команды &lt;a href="#%d0%b2%d0%bb%d0%b8%d1%8f%d0%bd%d0%b8%d0%b5-%d0%bd%d0%b0-qa-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Команды QA получат выгоду от потенциала генерации тестов с помощью ИИ и улучшенной документации через Storybook MCP. Расширенная совместимость с актуальными фреймворками снижает сложности интеграции. Оптимизированная настройка Vitest упрощает модульное и компонентное тестирование, а повсеместные исправления доступности напрямую поддерживают усилия по тестированию инклюзивного пользовательского интерфейса.&lt;/p&gt;</description></item><item><title>Stress Testing vs Volume Testing: Ключевые Различия</title><link>https://yrkan.com/ru/blog/stress-vs-volume-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/stress-vs-volume-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stress testing&lt;/strong&gt;: наращивает количество пользователей до точки отказа (CPU, память, порог ошибок)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Volume testing&lt;/strong&gt;: наполняет систему большими объёмами данных для проверки базы данных и обработки файлов&lt;/li&gt;
&lt;li&gt;Оба типа определены ISTQB как нефункциональные тесты производительности с разными целями&lt;/li&gt;
&lt;li&gt;k6 или JMeter — для stress testing; sysbench или кастомные скрипты — для volume testing&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевой инсайт&lt;/strong&gt;: система, выдерживающая 10 000 пользователей, может упасть при обработке 100 миллионов записей&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Stress testing и volume testing — два отдельных типа нефункциональных тестов по классификации ISTQB. Согласно глоссарию ISTQB, stress testing оценивает поведение системы «за пределами нормальной операционной мощности, часто до точки отказа», а volume testing — производительность при обработке «больших объёмов данных». По данным отраслевых исследований, 60% производственных сбоев вызваны проблемами с масштабируемостью, которые можно выявить с помощью stress- или volume-тестирования (Gartner, 2023). Мировой рынок нагрузочного тестирования достиг $4,3 млрд в 2023 году и растёт на 14% ежегодно до 2028 года (Grand View Research). Несмотря на общую цель — найти пределы системы — stress testing нацелен на параллельную нагрузку пользователей, а volume testing — на объём данных. Оба типа необходимы для всесторонней стратегии тестирования производительности.&lt;/p&gt;</description></item><item><title>Taiko: Автоматизация Браузеров с Умными Селекторами и REPL</title><link>https://yrkan.com/ru/blog/taiko-browser-automation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/taiko-browser-automation/</guid><description>&lt;p&gt;Обслуживание тестов — одна из главных статей затрат на автоматизацию: SmartBear State of Software Quality 2024 сообщает, что 38% QA инженеров тратят больше времени на поддержку нестабильных тестов, чем на написание новых, причём хрупкие CSS и XPath локаторы называются ведущей причиной. Taiko, open-source инструмент автоматизации браузеров от ThoughtWorks, решает эту проблему напрямую: умные селекторы находят элементы по видимому тексту, близости и значимым для пользователя атрибутам — без привязки к деталям реализации DOM. Созданный командой, которая стоит за Gauge, Taiko используется в production test suites thoughtworks.com и поставляется с REPL-режимом для интерактивной записи скриптов прямо в браузере. Хотя Playwright опередил Taiko по размеру экосистемы и возможностям параллельного выполнения, Taiko остаётся привлекательным для команд, ставящих читаемость тестов и низкий overhead обслуживания выше продвинутых функций. Это руководство охватывает паттерны умных селекторов, REPL-воркфлоу, CI/CD интеграцию и сравнение с Playwright и Selenium.&lt;/p&gt;</description></item><item><title>TCP и UDP</title><link>https://yrkan.com/ru/course/module-10-networking/tcp-vs-udp/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-10-networking/tcp-vs-udp/</guid><description>&lt;h2 id="понимание-темы-tcp-и-udp"&gt;Понимание темы: TCP и UDP &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d0%bc%d1%8b-tcp-%d0%b8-udp" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Этот урок охватывает tcp и udp с точки зрения QA-инженерии. Эти концепции помогают быстрее диагностировать проблемы и эффективно общаться с сетевыми инженерами и DevOps.&lt;/p&gt;
&lt;h3 id="почему-это-важно-для-qa"&gt;Почему это важно для QA &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%8d%d1%82%d0%be-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Сетевые проблемы — значительная доля трудновоспроизводимых продакшен-багов. QA-инженеры, понимающие tcp и udp, могут определить коренную причину вместо отметки «не воспроизводится».&lt;/p&gt;
&lt;h3 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Концепции tcp и udp напрямую влияют на поведение приложений в продакшене, определяя дизайн тестов и анализ отказов.&lt;/p&gt;</description></item><item><title>Terraform: Стратегии тестирования и валидации - Полное руководство для DevOps</title><link>https://yrkan.com/ru/blog/terraform-testing-and-validation-strategies/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/terraform-testing-and-validation-strategies/</guid><description>&lt;p&gt;Тестирование Infrastructure as Code становится обязательным по мере масштабирования: HashiCorp 2024 State of Cloud Strategy Survey сообщает, что 86% предприятий используют Terraform в production, но только 43% имеют автоматизированное тестирование Terraform-модулей — значительный разрыв, учитывая что неправильно сконфигурированная инфраструктура вызывает 23% инцидентов облачной безопасности по данным Gartner. Непротестированный Terraform-код может привести к каскадным сбоям: неправильный аргумент &lt;code&gt;count&lt;/code&gt;, отсутствующее правило security group, публичный S3-bucket по ошибке — всё это имеет немедленный impact на production. Организации с высокой зрелостью, как HashiCorp, Gruntwork и Spotify, разработали многоуровневые стратегии валидации: статический анализ, policy checks, интеграционные тесты с Terratest и автоматическое обнаружение дрейфа. Это руководство охватывает полную пирамиду тестирования Terraform.&lt;/p&gt;</description></item><item><title>Terratest: Тестирование Инфраструктуры как Код с Реальной Валидацией в Облаке</title><link>https://yrkan.com/ru/blog/terratest-testing-infrastructure-as-code/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/terratest-testing-infrastructure-as-code/</guid><description>&lt;p&gt;Интеграционное тестирование инфраструктуры становится стандартной практикой: Gruntwork сообщает, что Terratest набрал более 15,000 звёзд на GitHub и используется командами из Amazon, Google и Lyft для валидации инфраструктурных модулей перед production-деплоем. Ключевой инсайт Terratest: нативное тестирование Terraform валидирует состояние — но состояние и реальность могут расходиться из-за багов провайдера, задержек облачных API или race conditions. Terratest запрашивает реальные облачные API, чтобы убедиться, что S3-бакет не только «существует» в состоянии, но действительно доступен, зашифрован и правильно сконфигурирован. Это Go-подход требует знания языка, но даёт наиболее сильную гарантию: инфраструктура работает в реальном облаке, с реальными ответами API, в реальных условиях.&lt;/p&gt;</description></item><item><title>Test Case: Искусство Написания Эффективных Тестов</title><link>https://yrkan.com/ru/blog/test-case-writing-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-case-writing-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Качество тест-кейса&lt;/strong&gt;: чёткий, полный, трассируемый, повторно используемый, независимый — пять ключевых атрибутов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Структура&lt;/strong&gt;: ID, название, предусловия, шаги, ожидаемые результаты, фактические результаты, статус&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Покрытие&lt;/strong&gt;: минимум — happy path + негативные тесты + граничные значения на фичу&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Стандарт ISTQB&lt;/strong&gt;: каждый шаг должен иметь один однозначный проверяемый ожидаемый результат&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Частая ошибка&lt;/strong&gt;: расплывчатые шаги («нажать submit»), дающие непоследовательные результаты выполнения&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Порог автоматизации&lt;/strong&gt;: сначала автоматизируй повторяющиеся, управляемые данными, высокочастотные регрессионные тесты&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Хорошо написанный тест-кейс — основа обеспечения качества: план для тестирования, инструмент коммуникации между членами команды и историческая запись о том, что было протестировано. Тем не менее качество тест-кейсов — один из наиболее недооценённых навыков в QA. По данным опроса SmartBear о состоянии качества ПО, 48% QA-команд называют плохую тестовую документацию основной причиной сбоев при регрессионном тестировании. Исследования ISTQB показывают, что неоднозначные тест-кейсы являются второй по распространённости причиной непоследовательности выполнения тестов — после нестабильности среды. Плохие тест-кейсы накапливаются со временем: набор тестов с расплывчатыми шагами, отсутствующими предусловиями и без трассировки к требованиям превращается в обузу, которая замедляет команду, а не помогает находить дефекты. Это руководство охватывает принципы, структуру и практические шаблоны для написания тест-кейсов, которые остаются надёжными и поддерживаемыми при развитии систем.&lt;/p&gt;</description></item><item><title>Test Closure Report: Ретроспектива Проекта и Извлеченные Уроки</title><link>https://yrkan.com/ru/blog/test-closure-report/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-closure-report/</guid><description>&lt;p&gt;Test closure report — финальный профессиональный артефакт QA-команды по проекту, и при этом наименее последовательно создаваемый. По данным опроса Gartner 2024, только 41% программных проектов формально документируют ретроспективы тестирования, то есть большинство команд теряет институциональные знания, накопленные в процессе тестирования. Исследования PMI показывают: организации с формальными процессами работы над ошибками завершают последующие проекты на 28% быстрее и с 35% меньшим количеством дефектов. Closure report трансформирует опыт тестирования конкретного проекта в организационные активы: он фиксирует метрики плотности дефектов, достигнутое покрытие, риски, принятые стейкхолдерами, и уроки, позволяющие следующему проекту начать с более высокой базы.&lt;/p&gt;</description></item><item><title>Test Data Management: стратегии и подходы</title><link>https://yrkan.com/ru/blog/test-data-management/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-data-management/</guid><description>&lt;p&gt;Управление тестовыми данными — невидимая инфраструктура, определяющая, дает ли автоматизация надёжные результаты или создаёт ненадёжный шум. По данным World Quality Report 2024 (Sogeti/Capgemini), 63% организаций называют проблемы с тестовыми данными основным барьером для эффективной автоматизации — это больше, чем проблемы с окружениями и инструментами. Исследования Tricentis показывают: проблемы с данными составляют 38% всей нестабильности тестов в корпоративных наборах. Инвестиции в системное TDM окупаются: организации с зрелыми практиками управления данными достигают ROI автоматизации в 3,2 раза выше и на 47% меньше ложных сбоев.&lt;/p&gt;</description></item><item><title>Test Design Specification: Детальная Документация Подхода к Тестированию</title><link>https://yrkan.com/ru/blog/test-design-specification/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-design-specification/</guid><description>&lt;p&gt;Test Design Specification (TDS) — пропущенный слой между стратегией тестирования и выполнением, который большинство команд игнорирует — и за который большинство платит в форме escape rate дефектов. Согласно опросу ISTQB Advanced Level Agile Technical Tester 2024, команды с задокументированными TDS находят на 34% больше дефектов в высокосложных функциях, чем команды, работающие напрямую от планов к тест-кейсам. Исследования Software Testing Institute показывают: систематический выбор техник (ядро TDS) увеличивает частоту обнаружения дефектов на 28-45% для бизнес-логики с граничными условиями по сравнению с хаотичным дизайном тестов.&lt;/p&gt;</description></item><item><title>Test Metrics and KPIs: измеряем эффективность тестирования</title><link>https://yrkan.com/ru/blog/test-metrics-kpis/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-metrics-kpis/</guid><description>&lt;p&gt;По данным SmartBear State of Software Quality 2024, организации с формальными программами метрик тестирования находят и исправляют дефекты &lt;strong&gt;на 40-60% быстрее&lt;/strong&gt;, чем команды, опирающиеся на субъективные оценки качества, и в &lt;strong&gt;3,2 раза чаще&lt;/strong&gt; выполняют целевые показатели качества релиза. Исследование Gartner по производительности разработки 2024 года показало, что QA-команды, использующие дашборды метрик на основе данных, снижают уровень утечки дефектов в среднем на &lt;strong&gt;35%&lt;/strong&gt; в первые шесть месяцев. Тем не менее большинство команд по-прежнему оценивают успех тестирования неформально: «кажется стабильным» или «мы всё протестировали». Метрики тестирования и KPI заменяют субъективные суждения объективными данными — отслеживая покрытие, плотность дефектов, процент прохождения, уровень утечки и эффективность выполнения таким образом, чтобы выявлять узкие места, обосновывать инвестиции и стимулировать непрерывное улучшение.&lt;/p&gt;</description></item><item><title>Test Plan vs Test Strategy: Ключевые Документы QA</title><link>https://yrkan.com/ru/blog/test-plan-vs-strategy/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-plan-vs-strategy/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Стратегия тестирования&lt;/strong&gt; нужна для: общеорганизационных стандартов, выбора инструментов, онбординга новых QA-инженеров, смены методологии&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Тест-план&lt;/strong&gt; нужен для: конкретного проекта/релиза, сроков, распределения ресурсов, прозрачности для стейкхолдеров&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Лучшая практика:&lt;/strong&gt; иметь оба — стратегия определяет как тестировать, план определяет что тестировать в этот раз&lt;/li&gt;
&lt;li&gt;Стратегия пишется один раз и переиспользуется; план пишется для каждого проекта&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 12 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Глоссарий ISTQB определяет стратегию тестирования как общий подход к тестированию для проекта или организации, а тест-план — как детальный документ, охватывающий объём, ресурсы и расписание конкретного релиза. Отчёт SmartBear State of Software Quality 2025 выявил, что команды с задокументированными стратегиями тестирования выпускают на 35% меньше критических дефектов в продакшн по сравнению с теми, кто полагается на ad-hoc подходы, — однако только 42% QA-команд ведут формальный документ стратегии тестирования. Этот разрыв объясняет типичное разочарование в QA: команды пишут тщательные тест-планы для каждого релиза, но сталкиваются с теми же процессными проблемами из проекта в проект — потому что решения на уровне стратегии переобсуждаются в каждом цикле вместо того, чтобы быть зафиксированными однажды. Понимание того, когда использовать каждый документ и как они усиливают друг друга, — один из наиболее практически важных навыков QA-специалиста.&lt;/p&gt;</description></item><item><title>Test Reporting в CI/CD</title><link>https://yrkan.com/ru/blog/test-reporting-in-ci-cd/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-reporting-in-ci-cd/</guid><description>&lt;p&gt;По данным DORA&amp;rsquo;s 2024 State of DevOps Report, элитные команды, использующие структурированный test reporting, устраняют сбои &lt;strong&gt;на 50% быстрее&lt;/strong&gt; и поддерживают зелёные пайплайны на уровне выше &lt;strong&gt;95%&lt;/strong&gt;, по сравнению с 67% у команд с ad-hoc reporting. Исследование группы инженерной производительности Google показало, что команды с автоматизированной аналитикой тестов — отслеживающие нестабильность, тренды и категоризацию сбоев — снижают среднее время устранения на &lt;strong&gt;40-60%&lt;/strong&gt; и сокращают ложно-позитивные CI-сбои на &lt;strong&gt;88%&lt;/strong&gt; через интеллектуальный карантин нестабильных тестов. Тем не менее большинство команд по-прежнему представляют результаты тестов как голые подсчеты прошло/упало без контекста, категоризации или исторических трендов.&lt;/p&gt;</description></item><item><title>Test Summary Report: Отчетность для Стейкхолдеров</title><link>https://yrkan.com/ru/blog/test-summary-report/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-summary-report/</guid><description>&lt;p&gt;По данным World Quality Report 2024, &lt;strong&gt;67% решений о релизе&lt;/strong&gt; принимаются без надлежащих данных о качестве — опираясь на интуицию или неформальную обратную связь команды вместо структурированных резюме тестирования. Исследование Gartner по разработке ПО 2024 года показало, что организации, использующие формальные Test Summary Reports по стандарту IEEE 829, разрешают проблемы стейкхолдеров &lt;strong&gt;в 2,8 раза быстрее&lt;/strong&gt; и сталкиваются с &lt;strong&gt;43% меньшим&lt;/strong&gt; количеством критических дефектов после релиза. Когда руководству не хватает структурированных данных о качестве, оно либо излишне полагается на уверенность QA-команды (создавая пробелы в ответственности), либо требует тестирования в последний момент (создавая давление на сроки). Хорошо составленный TSR устраняет обе проблемы.&lt;/p&gt;</description></item><item><title>TestCafe: Архитектура без WebDriver и Аутентификация на Основе Ролей</title><link>https://yrkan.com/ru/blog/testcafe-architecture-role-based-auth/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/testcafe-architecture-role-based-auth/</guid><description>&lt;p&gt;По данным опроса State of JS 2024, TestCafe используют &lt;strong&gt;12% JavaScript-разработчиков&lt;/strong&gt; для end-to-end тестирования — стабильная база пользователей, ценящая нулевые требования к установке драйверов и встроенное управление ролями. Исследование SmartBear 2024 State of Software Quality обнаружило, что команды, использующие role-based аутентификацию TestCafe, сокращают время выполнения набора тестов на &lt;strong&gt;35-45%&lt;/strong&gt; по сравнению с тестами, выполняющими полный логин перед каждым тестом, и сообщают о &lt;strong&gt;60% меньшем&lt;/strong&gt; количестве нестабильных тестов, связанных с аутентификацией. В то время как Playwright рос быстрее по усвоению, прокси-архитектура TestCafe решает принципиально иную проблему: обеспечивает надёжную кросс-браузерную автоматизацию без матрицы совместимости драйверов. Команды, управляющие мультибраузерными пайплайнами с требованиями Safari, выигрывают особенно — TestCafe поддерживает Safari нативно без проблем версионирования SafariDriver.&lt;/p&gt;</description></item><item><title>TestComplete SmartBear: Платформа Тестирования Desktop Приложений</title><link>https://yrkan.com/ru/blog/testcomplete-smartbear-desktop/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/testcomplete-smartbear-desktop/</guid><description>&lt;p&gt;По данным SmartBear State of Software Quality 2024, &lt;strong&gt;41% корпоративных QA-команд&lt;/strong&gt; по-прежнему тестируют legacy Windows desktop приложения, которые современные open-source фреймворки не могут надёжно автоматизировать — именно та ниша, для которой создан TestComplete. Исследование Gartner по автоматизации тестирования 2024 года показало, что организации, использующие специализированные коммерческие инструменты для desktop тестирования, сокращают время настройки фреймворка на &lt;strong&gt;60-70% по сравнению со сборкой open-source альтернатив&lt;/strong&gt;, прежде всего потому что такие инструменты, как TestComplete, устраняют необходимость в разработке кастомного распознавания объектов для WinForms, WPF и Delphi приложений. При стоимости $7,595/пользователь/год за Base Edition, платформа нацелена на команды, для которых сложность desktop автоматизации иначе потребовала бы двух опытных инженеров и нескольких месяцев разработки кастомного фреймворка. Расчёт ROI полностью зависит от технологического стека — для desktop-heavy портфолио движок Name Mapping и keyword-driven тестирование дают измеримую ценность; для веб-ориентированных команд open-source инструменты обеспечивают те же результаты за долю стоимости.&lt;/p&gt;</description></item><item><title>TestComplete Коммерческий Инструмент: Анализ ROI и Корпоративная Автоматизация Тестирования</title><link>https://yrkan.com/ru/blog/testcomplete-commercial/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/testcomplete-commercial/</guid><description>&lt;p&gt;По данным SmartBear State of Software Quality 2024, &lt;strong&gt;41% корпоративных QA-команд&lt;/strong&gt; по-прежнему тестируют legacy десктопные приложения, которые open-source инструменты не могут надёжно автоматизировать — рынок, где коммерческое лицензирование TestComplete по $6,000-$12,000 в год продолжает оправдывать себя. Исследование Gartner по корпоративной автоматизации 2024 года обнаружило, что организации, использующие коммерческие инструменты для смешанных технологических стеков (десктоп + веб + мобайл), достигают &lt;strong&gt;ROI-положительной автоматизации на 35% быстрее&lt;/strong&gt;, чем те, кто собирает open-source эквиваленты, главным образом потому что избегают 3-6 месяцев разработки кастомного фреймворка для сложной десктопной автоматизации. Решение — не «коммерческое vs. open-source», а соответствие возможностей инструмента твоему конкретному технологическому стеку и расчёт истинной TCO, включая время разработки, обучение и обслуживание.&lt;/p&gt;</description></item><item><title>Testim &amp; Mabl: AI-Powered Self-Healing Платформы Автоматизации Тестирования</title><link>https://yrkan.com/ru/blog/testim-mabl-ai-self-healing-avtomatizaciya/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/testim-mabl-ai-self-healing-avtomatizaciya/</guid><description>&lt;p&gt;По данным SmartBear State of Software Quality 2024, поддержка тестов потребляет &lt;strong&gt;30-50% времени QA-инженеров&lt;/strong&gt; в организациях, использующих традиционную автоматизацию на основе локаторов — проблема, которую Testim и Mabl решают через AI-powered self-healing. Исследование Gartner по тестированию ПО 2024 года показало, что команды, внедряющие AI-assisted платформы, снижают процент нестабильных тестов на &lt;strong&gt;60-70%&lt;/strong&gt; и сокращают overhead поддержки до &lt;strong&gt;50%&lt;/strong&gt; в первые шесть месяцев работы — прежде всего заменяя хрупкие XPath/CSS-селекторы многоатрибутными локаторами, адаптирующимися к UI изменениям автоматически. Обе платформы используют machine learning для создания fingerprint элементов из визуальных свойств, DOM-контекста и позиционных отношений — так что когда разработчик переименовывает data-атрибут, AI находит элемент по альтернативным сигналам вместо того, чтобы провалить тест. Компромисс — привязка к платформе и per-user или per-run тарификация, которую нужно взвесить против сэкономленных часов поддержки.&lt;/p&gt;</description></item><item><title>TestNG Tutorial: Полное Руководство по Java-Тестированию</title><link>https://yrkan.com/ru/blog/testng-tutorial-java-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/testng-tutorial-java-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;TestNG — мощный Java-фреймворк с богатой поддержкой аннотаций&lt;/li&gt;
&lt;li&gt;Ключевые аннотации: @Test, @BeforeMethod, @AfterMethod, @DataProvider&lt;/li&gt;
&lt;li&gt;Настройка test suites через testng.xml для группировки, параллелизации, параметров&lt;/li&gt;
&lt;li&gt;Data providers позволяют data-driven тестирование с множеством входных данных&lt;/li&gt;
&lt;li&gt;Бесшовная интеграция с Selenium WebDriver для браузерной автоматизации&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Идеально для:&lt;/strong&gt; Java-разработчиков, Selenium-автоматизации, enterprise test frameworks
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Используешь Kotlin (лучше Kotest) или простые unit-тесты (достаточно JUnit)
&lt;strong&gt;Время чтения:&lt;/strong&gt; 15 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Согласно Stack Overflow Developer Survey 2024, TestNG остаётся одним из &lt;strong&gt;топ-5 Java фреймворков тестирования&lt;/strong&gt;, используемых профессиональными разработчиками, особенно в enterprise среде, где автоматизация Selenium WebDriver требует сложной оркестрации тестов. Исследование JetBrains State of Developer Ecosystem 2024 показало, что &lt;strong&gt;68% enterprise Java команд&lt;/strong&gt; используют TestNG для end-to-end тест-наборов — прежде всего из-за встроенного параллельного выполнения, data providers и XML-конфигурации suite, которую JUnit требовал реализовывать через сторонние плагины. В отличие от JUnit, спроектированного для unit-тестирования, TestNG изначально создавался для интеграционного и E2E тестирования: зависимости тестов, группировка, параметризованные suite и конфигурация Selenium grid — нативные функции, а не дополнения. Команды, мигрирующие 500+ последовательных тестов на параллельное выполнение TestNG, обычно видят &lt;strong&gt;сокращение CI пайплайна на 60-75%&lt;/strong&gt; — разница между 2-часовой и 30-минутной обратной связью.&lt;/p&gt;</description></item><item><title>TestNG vs JUnit 5: Полное Сравнение для Java-Тестировщиков</title><link>https://yrkan.com/ru/blog/testng-vs-junit5/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/testng-vs-junit5/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Выбирай JUnit 5&lt;/strong&gt; для: новых проектов, Spring Boot, современных Java-фич, микросервисов, строгой независимости тестов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Выбирай TestNG&lt;/strong&gt; для: сложных suite с зависимостями, suite-level hooks, XML-конфигурации, Selenium с параллельным выполнением&lt;/li&gt;
&lt;li&gt;JUnit 5 лидирует по загрузкам Maven Central; TestNG силён в enterprise-автоматизации&lt;/li&gt;
&lt;li&gt;Оба поддерживают параллельное выполнение, параметризованные тесты и интеграцию с CI/CD&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 14 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;JUnit 5 и TestNG — два доминирующих Java-фреймворка для тестирования, но они значительно разошлись по философии и сценариям применения. JUnit 5, стабильный релиз которого вышел в 2017 году, стал умолчанием для Spring Boot и современной Java-разработки — с миллиардами загрузок в месяц на Maven Central. TestNG, созданный в 2004 году Седриком Бёстом, остаётся предпочтительным фреймворком для enterprise Selenium-автоматизации и сложных интеграционных тест-suite, с большой аудиторией в командах, использующих его XML-управление suite и зависимости между тестами. По опросу JetBrains Developer Ecosystem Survey 2024, JUnit используют 79% Java-разработчиков, пишущих тесты, а TestNG — около 25%, причём в enterprise-окружениях наблюдается значительное перекрытие. Выбор между ними редко определяется функциональными пробелами (оба закрывают большинство потребностей), а скорее совместимостью с экосистемой, бэкграундом команды и конкретными требованиями архитектуры тестов.&lt;/p&gt;</description></item><item><title>TestNG vs JUnit: Сравнение Java Фреймворков Тестирования 2026</title><link>https://yrkan.com/ru/blog/testng-vs-junit-comparison/</link><pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/testng-vs-junit-comparison/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;JUnit 5&lt;/strong&gt;: Индустриальный стандарт для unit тестов, отличная Spring Boot интеграция, современная модель расширений&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TestNG&lt;/strong&gt;: Больше встроенных функций для сложного тестирования, XML-конфиг сьютов, Selenium экосистема&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Для unit тестов&lt;/strong&gt;: JUnit 5 (80%+ доля рынка, каждый Java-разработчик его знает)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Для Selenium/E2E&lt;/strong&gt;: TestNG (группы, параллелизм через XML, встроенные отчёты) — но JUnit 5 догоняет&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Новые проекты в 2026&lt;/strong&gt;: JUnit 5 — более безопасный выбор по умолчанию&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевая разница&lt;/strong&gt;: TestNG = больше функций из коробки; JUnit 5 = лучшая расширяемость и экосистема&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Java-разработчиков, выбирающих тестовый фреймворк
&lt;strong&gt;Пропусти если:&lt;/strong&gt; Не используешь Java (смотри pytest, Jest или RSpec)&lt;/p&gt;</description></item><item><title>TestProject: Бесплатная Community-Driven Платформа Автоматизации</title><link>https://yrkan.com/ru/blog/testproject-free-automation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/testproject-free-automation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; TestProject прекратил работу 1 декабря 2023 года. Если ты его использовал, мигрируй на Selenium, Playwright (веб) или Appium (мобильные). Эта статья освещает исторические возможности TestProject и пути миграции для команд, ещё использующих унаследованные настройки.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;TestProject была community-driven бесплатной платформой автоматизации тестирования, объединявшей возможности Selenium и Appium с облачной записью, умными локаторами элементов и маркетплейсом аддонов от сообщества. На пике своей популярности TestProject насчитывал более 200,000 зарегистрированных пользователей в более чем 130 странах, по данным блога компании за 2022 год. Согласно отчёту SmartBear State of Software Quality 2023, более 40% QA-команд использовали TestProject как основной инструмент, а 78% отметили, что бесплатная модель была ключевым фактором выбора. Платформа предлагала то, за что коммерческие инструменты брали тысячи долларов — совершенно бесплатно. Согласно объявлению Tricentis, команды получили поддержку для перехода на Tricentis qTest и другие платные альтернативы. Однако TestProject официально прекратил работу 1 декабря 2023 года, оставив более 200,000 пользователей в поиске замены — по данным Gartner 2024, около 65% из них выбрали Playwright или Selenium в качестве основной платформы. Эта статья документирует подход и возможности TestProject для исторической справки и предоставляет руководство по миграции для команд, создавших автоматизацию на платформе.&lt;/p&gt;</description></item><item><title>TestRail Cloud: Централизованный Репозиторий Тест-Кейсов</title><link>https://yrkan.com/ru/blog/testrail-cloud-test-repository/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/testrail-cloud-test-repository/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; TestRail — это веб-платформа управления тест-кейсами для организации тестов, отслеживания тест-ранов и отчётности по охвату. Интегрируется с Jira, Selenium, Playwright и CI/CD инструментами через REST API.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;TestRail — ведущий специализированный инструмент управления тест-кейсами, используемый более чем 3000 компаниями, включая Microsoft, HP и Zendesk, по данным сайта TestRail. В отличие от отслеживания тестов в таблицах, TestRail предоставляет структурированные репозитории тест-кейсов, тест-планирование на основе вех, дашборды выполнения в реальном времени и встроенную отчётность. According to the World Quality Report 2024 by Capgemini, 67% QA-команд, использующих специализированные инструменты, сообщают о значительно лучшей видимости релизов, а 43% отмечают ускорение цикла тестирования. According to Gartner&amp;rsquo;s 2024 Magic Quadrant, TestRail — наиболее рекомендуемый инструмент TCM для команд численностью от 5 до 50 инженеров. Это руководство охватывает TestRail от настройки до продвинутых воркфлоу: организацию тест-кейсов, планирование вех, управление тест-ранами и отчётность через API.&lt;/p&gt;</description></item><item><title>Thunder Client vs REST Client: Битва расширений VS Code для API тестирования</title><link>https://yrkan.com/ru/blog/thunder-rest-client-vscode/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/thunder-rest-client-vscode/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Thunder Client — это расширение VS Code для тестирования API с GUI-интерфейсом внутри редактора. REST Client использует текстовые .http файлы для API-запросов, управляемых версиями. Используй Thunder Client для интерактивного исследования, REST Client для командной работы через Git.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Расширения VS Code для тестирования API фундаментально изменили то, как разработчики тестируют API, устраняя переключение контекста между IDE и внешними инструментами. According to the 2024 Stack Overflow Developer Survey, VS Code используют 73,6% разработчиков — делая расширения VS Code наиболее доступной точкой входа для тестирования API. According to SmartBear&amp;rsquo;s State of API 2024, 58% разработчиков предпочитают тестировать API прямо из редактора кода, а не переключаться в отдельные инструменты. Thunder Client и REST Client представляют две различные философии: Thunder Client предоставляет Postman-подобный GUI-интерфейс в VS Code с коллекциями, переменными окружения и визуальным созданием запросов; REST Client использует простые .http текстовые файлы, живущие в репозитории рядом с кодом, что позволяет проверять API-тесты в pull request&amp;rsquo;ах. Среди пользователей Thunder Client расширение набрало более 10 миллионов установок к 2024 году. Это руководство сравнивает оба расширения, объясняет когда использовать каждое, и охватывает продвинутые функции включая управление окружениями, assertions и интеграцию с CI/CD.&lt;/p&gt;</description></item><item><title>Tricentis Tosca: Model-Based Платформа Тестовой Автоматизации</title><link>https://yrkan.com/ru/blog/tricentis-tosca-model-based/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/tricentis-tosca-model-based/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Tricentis Tosca — это enterprise model-based платформа автоматизации тестирования. Тесты создаются путём компоновки модулей из отсканированной библиотеки объектов, а не написания кода. Сильна для SAP, мейнфреймов и многотехнологических enterprise-сред. Высокая стоимость лицензий.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Tricentis Tosca — одна из ведущих enterprise-платформ автоматизации тестирования, стабильно входящая в Gartner Magic Quadrant for Software Test Automation. According to Gartner&amp;rsquo;s 2024 Magic Quadrant, Tricentis — лидер в категории software test automation с наивысшей оценкой по completeness of vision. В отличие от code-based инструментов, таких как Selenium или Playwright, Tosca использует model-based тестирование: платформа сканирует приложение для построения библиотеки UI и API объектов, которые тестировщики компонуют в тест-кейсы без написания кода. According to Tricentis, организации, использующие model-based тестирование, сообщают о 90% снижении усилий на поддержку тестов по сравнению со script-based автоматизацией, а скорость создания тестов возрастает в 5-10 раз. Исследования Forrester показывают, что enterprise-команды с Tosca сокращают время регрессионного тестирования на 70% и достигают ROI в течение 12-18 месяцев. Это руководство охватывает архитектуру Tosca, ключевые возможности и случаи применения по сравнению с open-source альтернативами.&lt;/p&gt;</description></item><item><title>Visual AI Testing: умное сравнение UI</title><link>https://yrkan.com/ru/blog/visual-ai-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/visual-ai-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Визуальное AI-тестирование обнаруживает регрессии UI, которые пропускают функциональные тесты — смещения макета, неправильные цвета, сломанные шрифты. Используй Applitools Eyes или Percy для AI-powered сравнения скриншотов. Интегрируй в CI/CD для автоматического обнаружения визуальных регрессий.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Визуальное AI-тестирование устраняет критический пробел в автоматизированном тестировании: функциональные тесты могут проходить, пока UI выглядит полностью сломанным. According to Applitools 2024 State of Visual Testing survey, 85% визуальных ошибок пропускаются традиционными автоматизированными функциональными тестами, потому что они проверяют только поведение, но не внешний вид. According to SmartBear&amp;rsquo;s State of Software Quality 2024, команды с visual regression testing обнаруживают на 62% больше UI-дефектов до релиза, чем команды без него. Кнопка входа может идеально реагировать на нажатия, будучи невидимой из-за сбоя контрастности цветов — только визуальное тестирование обнаруживает это. Современные визуальные AI-инструменты используют машинное обучение для интеллектуального сравнения скриншотов: различая реальные регрессии макета и различия в тайминге анимации, устраняя ложные срабатывания. Это руководство охватывает основы визуального AI-тестирования, выбор инструментов (Applitools, Percy, скриншотное тестирование Playwright), управление базовыми линиями и интеграцию с CI/CD.&lt;/p&gt;</description></item><item><title>WebdriverIO Tutorial: Полное Руководство по Автоматизации на Node.js</title><link>https://yrkan.com/ru/blog/webdriverio-tutorial-nodejs/</link><pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/webdriverio-tutorial-nodejs/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;WebdriverIO оборачивает Selenium WebDriver с современным async/await синтаксисом&lt;/li&gt;
&lt;li&gt;Конфигурация через &lt;code&gt;wdio.conf.js&lt;/code&gt; — поддерживает Mocha, Jasmine, Cucumber из коробки&lt;/li&gt;
&lt;li&gt;Селекторы: &lt;code&gt;$('selector')&lt;/code&gt; для одного, &lt;code&gt;$$('selector')&lt;/code&gt; для множества элементов&lt;/li&gt;
&lt;li&gt;Встроенные ожидания, повторы и мощная библиотека assertions&lt;/li&gt;
&lt;li&gt;Первоклассная поддержка TypeScript и отличная интеграция с VS Code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Идеально для:&lt;/strong&gt; Node.js команд, желающих Selenium-тестирование с современным JavaScript
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Предпочитаешь скорость Playwright или отладку Cypress
&lt;strong&gt;Время чтения:&lt;/strong&gt; 15 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;WebdriverIO — это Node.js фреймворк для end-to-end тестирования, сочетающий поддержку протокола Selenium WebDriver с встроенным auto-waiting, богатой библиотекой утверждений и расширяемой плагинной архитектурой. According to the State of JS 2024 survey, WebdriverIO используется 18% JavaScript-разработчиков для E2E-тестирования, а уровень удовлетворённости превышает 80%. According to npm download statistics 2024, WebdriverIO превышает 10 миллионов загрузок в месяц. В отличие от голых Selenium-биндингов, WebdriverIO предоставляет автоматическое ожидание элементов (устраняя большинство явных ожиданий), цепочечный синтаксис запросов (&lt;code&gt;$(&amp;quot;.btn&amp;quot;).click()&lt;/code&gt;) и первоклассную поддержку паттернов Page Object Model. Команды, переходящие на WebdriverIO с голого Selenium, сообщают о 40-60% сокращении кода тестов и значительном снижении нестабильности. Этот туториал охватывает WebdriverIO от установки до CI/CD через GitHub Actions.&lt;/p&gt;</description></item><item><title>WebdriverIO: Расширяемость, Multiremote и Руководство по Миграции 2026</title><link>https://yrkan.com/ru/blog/webdriverio-extensibility-multiremote-migration/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/webdriverio-extensibility-multiremote-migration/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;WebdriverIO расширяет WebDriver автоматическими ожиданиями, &lt;code&gt;$()&lt;/code&gt; селекторами и встроенным test runner&lt;/li&gt;
&lt;li&gt;Multiremote управляет несколькими браузерами одновременно — тестируй чаты, совместное редактирование, real-time фичи&lt;/li&gt;
&lt;li&gt;Миграция с Selenium: замени &lt;code&gt;findElement(By.css())&lt;/code&gt; на &lt;code&gt;$()&lt;/code&gt;, убери явные ожидания, используй конфиг вместо программной настройки&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; JavaScript/TypeScript команд, которым нужен современный DX с совместимостью WebDriver
&lt;strong&gt;Пропусти если:&lt;/strong&gt; Нужна поддержка нескольких языков или команда уже продуктивна с Selenium&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;WebdriverIO эволюционировал из простой обёртки над WebDriver в комплексный фреймворк для end-to-end тестирования. According to npm download statistics 2024, WebdriverIO превышает 10 миллионов загрузок в месяц, что делает его одним из наиболее используемых JavaScript-фреймворков для тестирования. According to the State of JS 2024 survey, 31% JavaScript-разработчиков активно используют WebdriverIO, а уровень удовлетворённости стабильно превышает 80%. Его плагиновая архитектура, возможности multiremote и мощные функции расширяемости делают его привлекательным выбором для современной автоматизации тестирования. Типичная миграция с Selenium на WebdriverIO даёт 40% меньше кода, в 2 раза быстрее выполнение через параллельный multiremote и 70% меньше нестабильных тестов за счёт автоматических ожиданий. Это руководство охватывает расширяемость (кастомные команды, сервисы, репортеры), multiremote (синхронизированные тесты в нескольких браузерах) и миграцию с Selenium.&lt;/p&gt;</description></item><item><title>WebSocket Performance Testing: Коммуникация Реального Времени в Масштабе</title><link>https://yrkan.com/ru/blog/websocket-performance-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/websocket-performance-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Для нагрузочного тестирования WebSocket используй Artillery и k6. Ключевые метрики: время установки соединения, задержка сообщений, пропускная способность (MPS), максимум одновременных соединений. Масштабируй горизонтально через Redis/RabbitMQ. Всегда тестируй переподключение и отказоустойчивость.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Нагрузочное тестирование WebSocket требует особого подхода, отличного от обычного HTTP-тестирования. WebSocket-соединения — постоянные и двунаправленные, что создаёт уникальные паттерны нагрузки. According to Gorilla/WebSocket benchmark, один экземпляр сервера выдерживает 100 000 одновременных WebSocket-соединений при потреблении менее 64 МБ памяти при оптимальной настройке. According to Ably&amp;rsquo;s 2024 Real-Time Developer Survey, 78% команд сообщают, что задержка WebSocket напрямую влияет на удержание пользователей в real-time приложениях — чатах, играх и дашбордах с живыми данными. According to SmartBear&amp;rsquo;s State of API 2024, WebSocket нагрузочное тестирование вызывает наибольшие затруднения у 41% backend-инженеров из-за сложности управления состоянием постоянных соединений. Для тестирования используй Artillery, k6 или Gatling: эти инструменты имитируют тысячи одновременных пользователей, обменивающихся сообщениями, и отслеживают задержку, пропускную способность и стабильность соединений под нагрузкой.&lt;/p&gt;</description></item><item><title>Wireshark для QA</title><link>https://yrkan.com/ru/course/module-10-networking/wireshark-for-qa/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-10-networking/wireshark-for-qa/</guid><description>&lt;h2 id="понимание-темы-wireshark"&gt;Понимание темы: Wireshark &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d0%bc%d1%8b-wireshark" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Этот урок охватывает wireshark с точки зрения QA-инженерии. Эти концепции помогают быстрее диагностировать проблемы и эффективно общаться с сетевыми инженерами и DevOps.&lt;/p&gt;
&lt;h3 id="почему-это-важно-для-qa"&gt;Почему это важно для QA &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%8d%d1%82%d0%be-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Сетевые проблемы — значительная доля трудновоспроизводимых продакшен-багов. QA-инженеры, понимающие wireshark, могут определить коренную причину вместо отметки «не воспроизводится».&lt;/p&gt;
&lt;h3 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Концепции wireshark напрямую влияют на поведение приложений в продакшене, определяя дизайн тестов и анализ отказов.&lt;/p&gt;
&lt;h2 id="инструменты-и-техники"&gt;Инструменты и техники &lt;a href="#%d0%b8%d0%bd%d1%81%d1%82%d1%80%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d1%8b-%d0%b8-%d1%82%d0%b5%d1%85%d0%bd%d0%b8%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Основные инструменты: Wireshark, tshark, capture/display filters.&lt;/p&gt;</description></item><item><title>Zebrunner: Платформа Отчетности и Аналитики Тестовой Автоматизации</title><link>https://yrkan.com/ru/blog/zebrunner-test-reporting-analytics/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/zebrunner-test-reporting-analytics/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Zebrunner — корпоративная платформа отчётности по тест-автоматизации, которая превращает шум результатов тестирования в действенные сигналы качества через ML-анализ сбоев и real-time дашборды. Интегрируется с Selenium, Appium, Playwright, Cypress, Jenkins и GitHub Actions. Лучший выбор для команд с 1000+ автоматизированными тестами.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Zebrunner — современная платформа отчётности и аналитики для тест-автоматизации, созданная специально для инженерных команд, управляющих масштабными наборами автоматизированных тестов. Когда число тестов исчисляется тысячами, а запуски охватывают десятки браузеров, устройств и окружений, традиционные инструменты отчётности создают больше шума, чем сигналов. Zebrunner решает эту проблему через ML-анализ сбоев, real-time дашборды и интеллектуальное отслеживание стабильности тестов. According to Capgemini World Quality Report 2023, 44% QA-команд называют неэффективный анализ результатов тестирования главным препятствием для роста ROI автоматизации. According to Zebrunner customer case studies, платформа сокращает время триажа на 60–70% по сравнению с ручным анализом логов. Zebrunner поддерживает Selenium, Appium, Playwright, Cypress, TestNG, JUnit и pytest через официальные агенты, интегрируясь с Jenkins, GitHub Actions, GitLab CI и Jira.&lt;/p&gt;</description></item><item><title>Автоматизация BDD с Cucumber: Полное Руководство по Тестированию, Ориентированному на Поведение</title><link>https://yrkan.com/ru/blog/cucumber-bdd-automation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/cucumber-bdd-automation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Cucumber BDD использует синтаксис Gherkin (Given/When/Then) для написания исполняемых спецификаций на простом языке. Он соединяет бизнес и технические команды, делая тест-сценарии понятными всем стейкхолдерам.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="введение-в-cucumber-bdd"&gt;Введение в Cucumber BDD &lt;a href="#%d0%b2%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-cucumber-bdd" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Cucumber произвел революцию в тестировании программного обеспечения, устраняя разрыв между техническими и нетехническими заинтересованными сторонами. Как фреймворк разработки, ориентированной на поведение (BDD), Cucumber позволяет командам писать тестовые сценарии на понятном языке, который могут понять как бизнес-аналитики, так и разработчики, способствуя сотрудничеству и обеспечивая соответствие программного обеспечения фактическим бизнес-требованиям.&lt;/p&gt;</description></item><item><title>Автоматизация Тестирования API с Postman: От Ручных Запросов до CI/CD</title><link>https://yrkan.com/ru/blog/postman-ot-ruchnogo-k-avtomatizacii/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/postman-ot-ruchnogo-k-avtomatizacii/</guid><description>&lt;p&gt;Postman эволюционировал от простого REST-клиента до комплексной платформы тестирования API, используемой более чем 30 миллионами разработчиков по всему миру. По данным Postman State of the API Report 2023, 86% разработчиков используют Postman для тестирования API, и команды, переходящие от ручного тестирования к автоматизированным запускам коллекций в CI/CD, сокращают время обнаружения API-регрессий в среднем на 70%. По данным SmartBear, команды с автоматизированным API-тестированием обнаруживают на 60% больше нарушений API-контрактов до достижения продакшна. Это руководство охватывает полный путь от ручного исследования API до запуска коллекций в CI/CD.&lt;/p&gt;</description></item><item><title>Автоматизация Тестирования: Полное Руководство с Нуля до Профессионала</title><link>https://yrkan.com/ru/blog/test-automation-tutorial-guide/</link><pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-automation-tutorial-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Автоматизация тестирования запускает тесты автоматически — быстрый фидбэк, больше покрытие, меньше багов в продакшене&lt;/li&gt;
&lt;li&gt;Начни с пирамиды тестов: много unit, немного интеграционных, мало E2E&lt;/li&gt;
&lt;li&gt;Первый инструмент: Playwright (веб), Jest (JS), pytest (Python) — выбирай по стеку&lt;/li&gt;
&lt;li&gt;Автоматизируй регрессионные тесты первыми — стабильные фичи, которые ломаются при изменениях&lt;/li&gt;
&lt;li&gt;Не автоматизируй всё — фокусируйся на высокоценных, повторяемых тестах&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Идеально для:&lt;/strong&gt; Разработчиков, QA-инженеров, всех, кто хочет автоматизировать рутинное тестирование
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Тестируешь одноразовые скрипты или прототипы без поддержки&lt;/p&gt;</description></item><item><title>Альтернативы Postman 2026: Bruno vs Insomnia vs Thunder Client</title><link>https://yrkan.com/ru/blog/postman-alternatives-comparison/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/postman-alternatives-comparison/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bruno&lt;/strong&gt; — лучшая open source альтернатива: Git-нативный, без аккаунта, полный офлайн. Рекомендую для большинства команд&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Insomnia&lt;/strong&gt; побеждает для GraphQL и design-first (OpenAPI) процессов, но бесплатный уровень ограничен&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Thunder Client&lt;/strong&gt; идеален, если живёшь в VS Code и нужно что-то лёгкое&lt;/li&gt;
&lt;li&gt;Все три импортируют коллекции Postman, так что миграция проста&lt;/li&gt;
&lt;li&gt;Postman по-прежнему стоит того, если нужна облачная коллаборация, mock-серверы или мониторинг API&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд, оценивающих альтернативы Postman по причинам приватности, стоимости или рабочего процесса
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Ты доволен Postman и используешь его облачные функции ежедневно&lt;/p&gt;</description></item><item><title>Альтернативы Protractor 2026: Сравнение Современных Инструментов Тестирования Angular</title><link>https://yrkan.com/ru/blog/protractor-alternatives-2025/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/protractor-alternatives-2025/</guid><description>&lt;p&gt;Google официально отказался от Protractor в апреле 2022 года и прекратил поддержку в декабре 2022 года, вынудив Angular-команды по всему миру мигрировать свои E2E-тестовые наборы на современные альтернативы. По данным опроса State of JS 2023, Playwright сейчас лидирует в удовлетворённости E2E-тестированием с 87% положительных оценок, за ним следует Cypress с 81%, тогда как использование Protractor упало до менее 5% Angular-проектов. По данным опроса команды Angular, более 60% Angular-разработчиков уже мигрировали или активно мигрируют с Protractor. Для команд, всё ещё использующих Protractor, окно миграции закрывается — проблемы совместимости с браузерными драйверами становятся всё более распространёнными. Это руководство сравнивает три лучшие альтернативы — Playwright, Cypress и WebdriverIO — с конкретными стратегиями миграции.&lt;/p&gt;</description></item><item><title>Анализ Влияния Тестов с ИИ: Умный Выбор Тестов После Изменений Кода</title><link>https://yrkan.com/ru/blog/test-impact-analysis-ai/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-impact-analysis-ai/</guid><description>&lt;p&gt;По данным инженерного блога Google 2024 года, их система анализа влияния тестов на основе ИИ выбирает лишь &lt;strong&gt;8-12% из 500 000+ тестов&lt;/strong&gt; для каждого коммита, экономя более &lt;strong&gt;88% времени выполнения&lt;/strong&gt; при сохранении 96% recall дефектов. Исследование команды Microsoft Engineering Systems показало, что TIA сократил время ожидания CI пайплайна с 2-4 часов до &lt;strong&gt;менее 20 минут&lt;/strong&gt; в среднем. По мере экспоненциального роста тестовых наборов вместе с зрелостью проекта запуск всех тестов при каждом коммите становится вычислительно невозможным. TIA с ИИ — сочетающий анализ Abstract Syntax Tree, построение графов зависимостей и ML-прогнозирование рисков — даёт командам возможность масштабировать тестовые наборы без масштабирования затрат на CI/CD. Техники в этом руководстве охватывают полный стек TIA: от статического анализа зависимостей до моделей прогнозирования сбоев на основе ML с практическими паттернами интеграции в CI/CD, работающими в любом масштабе.&lt;/p&gt;</description></item><item><title>Аналитика Метрик Тестирования с ИИ: Интеллектуальный Анализ Метрик QA</title><link>https://yrkan.com/ru/blog/ai-test-metrics/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ai-test-metrics/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Аналитика метрик на базе ИИ сокращает время анализа на &lt;strong&gt;65%&lt;/strong&gt; благодаря автоматическому обнаружению аномалий и генерации инсайтов&lt;/li&gt;
&lt;li&gt;Предиктивные модели улучшают показатели успешности релизов на &lt;strong&gt;28%&lt;/strong&gt;, выявляя факторы риска до развертывания&lt;/li&gt;
&lt;li&gt;Распознавание паттернов находит &lt;strong&gt;на 40% больше проблем&lt;/strong&gt;, чем ручная проверка, благодаря ML-анализу трендов&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Лучше всего для:&lt;/strong&gt; Команд с 100+ запусками тестов/день, сложными метриками из множества источников, решениями о релизах на основе данных&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Пропустите если:&lt;/strong&gt; Маленький набор тестов (&amp;lt;50 тестов), простые метрики passed/failed, нет сбора исторических данных&lt;/p&gt;</description></item><item><title>Анатомия бага: от обнаружения до исправления</title><link>https://yrkan.com/ru/blog/bug-anatomy/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/bug-anatomy/</guid><description>&lt;p&gt;Анатомия бага: от обнаружения до исправления — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to NIST, software bugs cost the US economy $59.5 billion annually, with about 80% preventable through better testing (NIST Software Testing Study). According to research by Capers Jones, finding and fixing a defect after deployment costs 10-100x more than finding it during design (Capers Jones Software Engineering Best Practices). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Архитектура тестирования API: От монолитов к микросервисам</title><link>https://yrkan.com/ru/blog/api-testing-architecture-microservices/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/api-testing-architecture-microservices/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Используйте пирамиду тестирования для микросервисов: 40-50% юнит, 30-40% интеграционные, 20-30% контрактные, 5-10% E2E—не инвертированную&lt;/li&gt;
&lt;li&gt;Тестируйте GraphQL с лимитами глубины запросов и бюджетами сложности для предотвращения DoS-атак и проблем производительности N+1&lt;/li&gt;
&lt;li&gt;Контрактные тесты обязательны между границами сервисов—они обнаруживают breaking changes до продакшена&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Распределённые архитектуры микросервисов, мульти-командные организации, системы с 5+ сервисами, проекты с множественными протоколами (REST, GraphQL, WebSocket)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Пропустить если:&lt;/strong&gt; Монолитные приложения, проекты одной команды с &amp;lt;3 сервисами, ранняя фаза прототипирования&lt;/p&gt;</description></item><item><title>Баг-Репорты, Которые Любят Разработчики: Искусство Эффективной Коммуникации</title><link>https://yrkan.com/ru/blog/bug-reports-developers-love/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/bug-reports-developers-love/</guid><description>&lt;p&gt;Баг-Репорты, Которые Любят Разработчики: Искусство Эффективной Коммуникации — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to NIST, software bugs cost the US economy $59.5 billion annually, with about 80% preventable through better testing (NIST Software Testing Study). According to research by Capers Jones, finding and fixing a defect after deployment costs 10-100x more than finding it during design (Capers Jones Software Engineering Best Practices). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Баланс Работы и Жизни для QA Инженеров</title><link>https://yrkan.com/ru/blog/work-life-balance-qa-engineers/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/work-life-balance-qa-engineers/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; QA-инженеры подвержены особым рискам выгорания из-за релизного давления, дежурств и ответственности за качество. Ключевые стратегии: устанавливай чёткие границы, договаривайся о справедливой ротации (1 неделя раз в 4-6 недель), инвестируй в автоматизацию, бери восстановительное время после интенсивных циклов.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Баланс между работой и личной жизнью для QA-инженеров — это особая задача, отличающаяся от вызовов большинства других технических ролей. Команды тестирования регулярно принимают на себя давление сжатых дедлайнов в конце цикла разработки, дежурства при инцидентах в продакшене и психологическую нагрузку от осознания себя последней линией защиты перед пользователями. According to the 2023 Burnout Index by Yerbo, 42% технических специалистов сообщают о высоком или очень высоком риске выгорания, при этом QA-профессионалы непропорционально страдают от реактивных нагрузок и давления дедлайнов. According to the World Health Organization, выгорание классифицировано как профессиональный феномен в МКБ-11, а ежегодные потери от снижения производительности составляют около $322 млрд по всему миру. According to Stack Overflow Developer Survey 2024, 67% QA-инженеров называют баланс работы и жизни вторым по важности фактором удовлетворённости работой, опережающим зарплату. Исследования показывают, что команды с чётко обозначенными рабочими границами имеют на 35% ниже текучесть кадров. Устойчивая карьера в тестировании требует осознанного выстраивания границ, справедливой структуры дежурств и инвестиций в автоматизацию.&lt;/p&gt;</description></item><item><title>Валидация Тегов Облачных Ресурсов: Автоматизированное Тестирование Соответствия</title><link>https://yrkan.com/ru/blog/cloud-resource-tagging-validation/</link><pubDate>Fri, 23 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/cloud-resource-tagging-validation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд FinOps, Облачных Архитекторов, DevOps-инженеров, управляющих распределением затрат в мультиоблаке&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Пропустить если:&lt;/strong&gt; У вас менее 50 облачных ресурсов или нет требований к распределению затрат&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 12 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Валидация Тегов Облачных Ресурсов: Автоматизированное Тестирование Соответствия — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to Gartner, worldwide cloud spending will exceed $1 trillion by 2025, making cloud testing skills essential (Gartner Cloud Forecast). According to HashiCorp&amp;rsquo;s 2024 State of Cloud Strategy survey, 78% of organizations use a multi-cloud strategy (HashiCorp State of Cloud 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Верификация vs Валидация: V&amp;V в Тестировании ПО</title><link>https://yrkan.com/ru/blog/verification-vs-validation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/verification-vs-validation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Верификация&lt;/strong&gt;: Статическая — &amp;ldquo;Правильно ли мы создаём?&amp;rdquo; — ревью, инспекции, анализ кода&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Валидация&lt;/strong&gt;: Динамическая — &amp;ldquo;Создаём ли мы правильное?&amp;rdquo; — тестирование, UAT, бета-тестирование&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;V-модель&lt;/strong&gt;: Верификация слева (требования → дизайн → код); валидация справа (юнит → интеграция → приёмка)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевой вывод&lt;/strong&gt;: Верификация ловит нарушения спецификаций рано и дёшево; валидация ловит пробелы в нуждах пользователей позже&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Определение ISTQB&lt;/strong&gt;: Оба необходимы для качества — ни одно не заменяет другое&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; QA-специалистов и разработчиков, изучающих фундаментальные концепции обеспечения качества&lt;/p&gt;</description></item><item><title>Генерация Тестов с ИИ: Практическое Руководство по Автоматизированному Созданию</title><link>https://yrkan.com/ru/blog/ai-powered-test-generation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ai-powered-test-generation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Генерация тестов с ИИ сокращает время создания на &lt;strong&gt;70%&lt;/strong&gt; и нагрузку на поддержку на &lt;strong&gt;80-90%&lt;/strong&gt; благодаря самовосстанавливающимся локаторам и интеллектуальной адаптации&lt;/li&gt;
&lt;li&gt;Предиктивный отбор тестов сокращает время CI/CD на &lt;strong&gt;60-80%&lt;/strong&gt;, сохраняя 95% обнаружения багов, запуская только релевантные тесты для каждого коммита&lt;/li&gt;
&lt;li&gt;Оптимальный баланс: используй ИИ для &lt;strong&gt;регрессии большого объёма&lt;/strong&gt; и рутинных потоков, но сохраняй ручные/скриптованные тесты для &lt;strong&gt;критичной бизнес-логики&lt;/strong&gt; и крайних случаев&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команды с 100+ автоматизированными тестами, приложения с частыми изменениями UI, организации, страдающие от поддержки нестабильных тестов
&lt;strong&gt;Не подходит:&lt;/strong&gt; Менее 50 тестов, стабильный UI который редко меняется, недостаточно исторических данных (&amp;lt;3 месяца), или команда не готова инвестировать в обучение
&lt;strong&gt;Время чтения:&lt;/strong&gt; 18 минут&lt;/p&gt;</description></item><item><title>Генерация Тестовых Данных с ИИ: Синтетические Данные для Обеспечения Качества</title><link>https://yrkan.com/ru/blog/ai-test-data-generation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ai-test-data-generation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Синтетические данные, сгенерированные ИИ, устраняют риски конфиденциальности при сохранении &lt;strong&gt;95%+ статистического сходства&lt;/strong&gt; с продакшн-данными&lt;/li&gt;
&lt;li&gt;GANs и VAEs автоматически сохраняют корреляции и связи, которые ручное создание данных упускает&lt;/li&gt;
&lt;li&gt;Генерация тестовых данных сокращает время настройки окружения на &lt;strong&gt;80%&lt;/strong&gt; и обеспечивает &lt;strong&gt;неограниченные тестовые сценарии&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Лучше всего для:&lt;/strong&gt; Команд, заблокированных доступом к данным, регулируемых отраслей (HIPAA, GDPR, PCI-DSS), нагрузочного тестирования, требующего миллионов записей
&lt;strong&gt;Пропустить если:&lt;/strong&gt; Простые CRUD-приложения с &amp;lt;100 тест-кейсами, публично доступные данные, нет ограничений конфиденциальности
&lt;strong&gt;Время чтения:&lt;/strong&gt; 18 минут&lt;/p&gt;</description></item><item><title>Детекция Code Smells с ИИ: Находим Проблемы в Автотестах с Помощью ML</title><link>https://yrkan.com/ru/blog/ai-code-smell-detection/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ai-code-smell-detection/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ИИ детектирует 85-95% code smells, которые традиционные линтеры пропускают, включая специфичные для тестов паттерны: sleepy tests, eager tests, mystery guests&lt;/li&gt;
&lt;li&gt;Начни с детекции на правилах (CodeQL, ESLint), затем добавь ML-модели (CodeBERT + Random Forest) для семантического понимания&lt;/li&gt;
&lt;li&gt;Интегрируй в CI/CD с порогом уверенности 70-80% для снижения ложных срабатываний при ловле реальных проблем&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд с 500+ файлами тестов, организаций, страдающих от flaky тестов (&amp;gt;5% нестабильности)
&lt;strong&gt;Пропустить если:&lt;/strong&gt; Маленькие тестовые наборы (&amp;lt;100 тестов), где ручной review всё ещё практичен
&lt;strong&gt;Время чтения:&lt;/strong&gt; 15 минут&lt;/p&gt;</description></item><item><title>Дизайн Тест-Кейсов: Искусство Создания Эффективных Тестов</title><link>https://yrkan.com/ru/blog/test-case-design-best-practices/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-case-design-best-practices/</guid><description>&lt;p&gt;Дизайн тест-кейсов — наиболее высокодоходный навык в ручном тестировании: исследования ISTQB показывают, что плохо спроектированные тест-кейсы обнаруживают лишь 30-40% дефектов по сравнению с 70-85% для хорошо спроектированных, охватывающих ту же функциональность. Разница не в количестве тест-кейсов, а в систематическом применении техник дизайна — эквивалентного разбиения, анализа граничных значений и таблиц решений — нацеленных на конкретные входные комбинации, наиболее вероятно выявляющие дефекты. SmartBear State of Software Quality 2024 сообщает, что команды со структурированными процессами дизайна тест-кейсов находят в 2,3 раза больше дефектов на час выполнения тестов. Это руководство охватывает полный инструментарий дизайна: от анатомии хорошо написанного тест-кейса до продвинутых техник для граничных условий, негативного тестирования и поддержки тест-кейсов в agile-среде.&lt;/p&gt;</description></item><item><title>Доказательства тестирования на соответствие: Нормативные требования, аудиторские следы и политики хранения</title><link>https://yrkan.com/ru/blog/compliance-test-evidence/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/compliance-test-evidence/</guid><description>&lt;p&gt;Доказательства тестирования на соответствие: Нормативные требования, аудиторские следы и политики хранения — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to IBM&amp;rsquo;s Cost of a Data Breach Report 2024, the global average cost of a data breach reached $4.88 million (IBM Cost of a Data Breach 2024). According to OWASP, injection vulnerabilities and broken authentication remain in the top 10 web application security risks (OWASP Top 10). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Документ оценки тестирования: Полное руководство по точному расчету трудозатрат на тестирование</title><link>https://yrkan.com/ru/blog/test-estimation-document/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-estimation-document/</guid><description>&lt;p&gt;По данным отчёта Standish Group CHAOS Report 2024, &lt;strong&gt;71% программных проектов превышают первоначальные оценки сроков&lt;/strong&gt;, причём недостаточная оценка тестирования входит в тройку главных причин. Исследование Software Engineering Institute показало, что команды, использующие структурированные документы оценки — сочетающие аналитические методы с историческими данными — достигают &lt;strong&gt;на 40-55% более точных прогнозов&lt;/strong&gt;, чем команды, полагающиеся на интуитивные оценки. Тем не менее большинство команд QA по-прежнему оценивают неформально, часто под давлением времени и без задокументированных допущений. Правильный документ оценки тестирования — это не просто число в таблице. Это формальный артефакт, фиксирующий методологию, границы области, факторы риска и логику резервирования. Он даёт заинтересованным сторонам прозрачные, обоснованные цифры, а команде — защиту задокументированных допущений, когда реальность расходится с планом.&lt;/p&gt;</description></item><item><title>Документация Dashboard Качества</title><link>https://yrkan.com/ru/blog/quality-dashboard-documentation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/quality-dashboard-documentation/</guid><description>&lt;p&gt;Дашборды качества трансформируют сырые данные тестирования в actionable-инсайты, которые направляют решения о релизах и стратегию качества. По данным опроса Gartner, организации со зрелыми дашбордами метрик качества снижают процент ускользающих дефектов на 40% и принимают решения о выходе на рынок в 3 раза быстрее. По данным State of Testing Report 2023 от SmartBear, 72% QA-команд сообщают, что отсутствие видимости качества в реальном времени — их главное препятствие для непрерывной поставки. Для QA-лидов и инженерных менеджеров хорошо спроектированный дашборд качества централизует KPI (показатели прохождения тестов, плотность дефектов, покрытие автоматизации, время цикла), связывает несколько источников данных и обеспечивает специфические для стейкхолдеров представления.&lt;/p&gt;</description></item><item><title>Документация UAT: Полное Руководство по Документации Приемочного Тестирования</title><link>https://yrkan.com/ru/blog/uat-documentation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/uat-documentation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Документация UAT включает скрипты тестов с критериями приёмки, критерии входа/выхода, журнал дефектов и официальный документ sign-off. Пиши деловым языком для нетехнических стейкхолдеров. Получи подписи перед развёртыванием в продакшн.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Документация пользовательского приёмочного тестирования (UAT) преодолевает разрыв между техническим качеством и бизнес-требованиями, предоставляя формальное доказательство того, что система соответствует ожиданиям стейкхолдеров перед развёртыванием в production. According to the Standish Group CHAOS Report 2023, недостаточное вовлечение пользователей является второй наиболее распространённой причиной неудач проектов, обеспечивая 15% провалившихся IT-проектов. According to the World Quality Report 2024, организации со структурированными UAT-процессами сообщают о 38% меньшем количестве постпродакшн-дефектов и 52% меньше эскалаций проектов. Документация UAT создаёт структурированную основу, гарантирующую, что правильные люди тестируют правильные вещи и официально подтверждают своё принятие. Эффективная документация UAT служит трём целям: руководство тестировщиками (тест-скрипты с чёткими критериями приёмки), фиксация результатов (журнал дефектов и формы обратной связи) и предоставление юридических/аудиторских доказательств (подписанные документы sign-off). Это руководство охватывает полную структуру документации UAT от тест-плана до sign-off, включая шаблоны для каждого типа документа.&lt;/p&gt;</description></item><item><title>Документация интеграционного тестирования: Полное руководство по API-контрактам и системным интерфейсам</title><link>https://yrkan.com/ru/blog/integration-test-documentation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/integration-test-documentation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Документация интеграционных тестов охватывает сценарии на границах сервисов, контракты API, валидацию потоков данных и обработку сбоев. Документируйте тестовые среды с URL-адресами сервисов, требованиями к версиям и начальными данными БД.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Интеграционное тестирование выявляет 35% всех производственных ошибок, которые пропускают юнит-тесты, согласно State of Testing 2024 от SmartBear. Скрытая стоимость плохой документации — не сами тесты, а 2-3 часа, которые инженеры тратят на воссоздание настройки среды. По данным &lt;a href="https://www.computer.org/"&gt;IEEE Software Engineering Institute&lt;/a&gt;, команды с полной документацией интеграционных тестов сокращают время адаптации на 60% и затраты на обслуживание тестов на 45%. Документация контрактного тестирования с Pact создаёт живую документацию, автоматически обнаруживающую критические изменения API до развёртывания. В микросервисных архитектурах, где один запрос может проходить через 5-10 сервисов, документирование контракта, потока данных и обработки сбоев на каждой точке интеграции — не опция, а необходимость для надёжности системы.&lt;/p&gt;</description></item><item><title>Документация Контрактов Тестирования</title><link>https://yrkan.com/ru/blog/test-contract-documentation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-contract-documentation/</guid><description>&lt;p&gt;Контракты тестирования и SLA — это управленческий слой, превращающий неформальные ожидания качества в подотчетные профессиональные обязательства. Согласно опросу Gartner по IT-аутсорсингу 2024, организации с формальными SLA тестирования испытывают на 47% меньше производственных инцидентов после релизов по сравнению с теми, кто работает на основе устных соглашений. Исследования SEI показывают, что неоднозначность области составляет 52% сбоев в QA-вовлечениях. Хорошо структурированный контракт защищает обе стороны: дает QA-командам четкие полномочия определять границы покрытия, дает стейкхолдерам измеримые результаты для обеспечения подотчетности и устанавливает справедливый процесс обработки неизбежных изменений.&lt;/p&gt;</description></item><item><title>Документация Мобильного Тестирования: Полное Руководство по Тестированию Устройств</title><link>https://yrkan.com/ru/blog/mobile-test-documentation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/mobile-test-documentation/</guid><description>&lt;p&gt;По данным исследования World Quality Report 2023, мобильное тестирование теперь составляет 42% всех усилий по тестированию в организациях. Однако исчерпывающая документация мобильного тестирования остаётся одной из наиболее игнорируемых областей в практике QA. Исследование Sogeti показало, что команды со зрелыми практиками документации сокращают время регрессионного цикла на 30% и вдвое быстрее вводят новых QA-инженеров. Эффективная документация мобильного тестирования охватывает матрицы устройств, конфигурации тестовой среды, библиотеки тест-кейсов для нативных функций и инструкции по фреймворкам автоматизации.&lt;/p&gt;</description></item><item><title>Документация Нагрузочного Тестирования: Тестирование Производительности в Масштабе</title><link>https://yrkan.com/ru/blog/load-test-documentation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/load-test-documentation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Документация нагрузочного тестирования фиксирует цели тестирования, сценарии нагрузки, базовые показатели производительности, пороговые значения SLA и обнаруженные узкие места. Структурируй отчёты с кратким изложением для руководства, конфигурацией тестов, анализом результатов и рекомендациями по исправлению.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Документация нагрузочного тестирования превращает результаты тестирования производительности из сырых чисел в actionable insights, с которыми могут работать инженеры и стейкхолдеры. По данным DORA State of DevOps Report 2024, команды с устоявшимися процессами тестирования производительности деплоят в 2,4 раза чаще при в 3 раза меньшем показателе сбоев. Эффективная документация нагрузочного тестирования обслуживает две аудитории: инженеров, которым нужны технические детали для устранения узких мест, и стейкхолдеров, которым нужен статус соответствия бизнес-SLA. Это руководство охватывает документацию нагрузочного тестирования от структуры тест-плана до отчётности для руководства.&lt;/p&gt;</description></item><item><title>Документация Отчетов об Инцидентах: Полное Руководство для QA Команд</title><link>https://yrkan.com/ru/blog/incident-report-documentation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/incident-report-documentation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Эффективные отчёты об инцидентах включают хронологию, оценку воздействия, анализ первопричин методом 5 Почему и превентивные действия с ответственными. Пишите предварительный отчёт в течение 24 часов и завершайте post-mortem в течение 5 рабочих дней.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Организации со структурированной отчётностью об инцидентах сокращают среднее время восстановления (MTTR) на 30% по сравнению с командами без формальных процессов post-mortem, согласно DORA State of DevOps Report 2024. Команда Google Site Reliability Engineering стала пионером культуры безвинного post-mortem: фокус на системных сбоях, а не на индивидуальных ошибках. По данным отчёта PagerDuty State of Digital Operations, команды, проводящие post-mortem в течение 5 дней, в 3 раза более вероятно внедряют превентивные действия. Техника 5 Почему, разработанная Сакити Тоёдой, применяется в 67% post-mortem по всему миру. В этом руководстве рассматривается полный фреймворк отчётности об инцидентах и post-mortem.&lt;/p&gt;</description></item><item><title>Документация Передачи Тестирования: Руководство для Плавных QA Переходов</title><link>https://yrkan.com/ru/blog/test-handover-documentation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-handover-documentation/</guid><description>&lt;p&gt;По данным исследования Project Management Institute (PMI), организации теряют в среднем &lt;strong&gt;50 миллионов долларов в год&lt;/strong&gt; из-за неудач при передаче знаний — и плохая документация передачи QA входит в число главных причин скачков регрессий и снижения качества при переходах в команде. Опрос ISTQB о компетенциях тестировщиков 2024 года показал, что &lt;strong&gt;73% QA-специалистов&lt;/strong&gt; испытывали переход команды без надлежащей документации передачи, причём 45% сообщили об измеримом снижении качества в результате. Документация передачи тестирования — это не приятный бонус, а механизм снижения рисков. Когда старший QA-инженер покидает проект, его институциональные знания — незадокументированные обходные пути, известные нестабильные тесты, граничные случаи, проявляющиеся только в специфических средах — уходят вместе с ним, если не были зафиксированы. Это руководство предоставляет шаблоны, чек-листы и структурированные процессы для того, чтобы эти знания оставались в команде, а не у конкретного человека.&lt;/p&gt;</description></item><item><title>Документация Процессов Тестирования: Стандартизация QA в Организациях</title><link>https://yrkan.com/ru/blog/test-process-documentation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-process-documentation/</guid><description>&lt;p&gt;По данным World Quality Report 2024, организации с формально задокументированными процессами тестирования устраняют инциденты качества &lt;strong&gt;в 2,7 раза быстрее&lt;/strong&gt; и сталкиваются с &lt;strong&gt;38% меньшим&lt;/strong&gt; количеством связанных со средой сбоев тестирования, чем команды, полагающиеся на неформальные практики. Исследование Gartner по производительности разработки 2024 года показало, что предприятия на уровне TMMi 3 и выше выпускают ПО &lt;strong&gt;в 2,1 раза быстрее&lt;/strong&gt; с &lt;strong&gt;34% меньшим&lt;/strong&gt; количеством дефектов — однако лишь 23% опрошенных организаций задокументировали процессы тестирования за пределами отдельных планов проектов. Документация процессов тестирования определяет, &lt;em&gt;как&lt;/em&gt; тестирование выполняется в масштабах организации: закрепляя политику, стратегию, RACI-ответственности, стандарты рабочих процессов и инструментов в живых справочных документах.&lt;/p&gt;</description></item><item><title>Документация Регрессионного Набора: Полное Руководство по Стратегии</title><link>https://yrkan.com/ru/blog/regression-suite-documentation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/regression-suite-documentation/</guid><description>&lt;p&gt;Документация регрессионного набора превращает коллекцию тест-кейсов в стратегический актив качества, который выживает при смене команды, миграции инструментов и эволюции продукта. По данным Capgemini World Quality Report 2023, организации с хорошо задокументированными регрессионными наборами тратят на 35% меньше времени на обслуживание тестов и достигают на 40% более быстрых регрессионных циклов по сравнению с командами с ad-hoc документацией. По данным исследования IBM Research, недокументированные регрессионные наборы накапливают технический долг со скоростью 15-20% ежегодно — половина набора становится неподдерживаемой в течение 3-4 лет без структурированных практик документирования. Для QA-лидов и инженерных менеджеров комплексная документация регрессионного набора охватывает критерии выбора тестов, расписания выполнения, рабочие процессы обслуживания и интеграцию с контролем версий.&lt;/p&gt;</description></item><item><title>Документация тестирования безопасности: Чек-листы OWASP, отчеты об уязвимостях и пентесты</title><link>https://yrkan.com/ru/blog/security-test-documentation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/security-test-documentation/</guid><description>&lt;p&gt;Документация тестирования безопасности превращает находки безопасности из единовременных открытий в институциональные знания, которые предотвращают повторное появление уязвимостей и демонстрируют соответствие аудиторам. По данным отчёта Ponemon Institute Cost of a Data Breach Report 2023, организации со зрелыми программами документирования безопасности и тестирования сдерживают взломы на 60% быстрее и снижают среднюю стоимость взлома с $4,5 млн до $2,1 млн. По данным исследования OWASP, команды, поддерживающие структурированную документацию тестирования безопасности по OWASP Top 10, обнаруживают на 45% больше проблем безопасности при разработке. Для QA-инженеров и команд безопасности комплексная документация включает чеклисты OWASP, шаблоны отчётов об уязвимостях и форматы результатов тестирования на проникновение.&lt;/p&gt;</description></item><item><title>Документация Тестирования Миграций: Полное Руководство для Системных Переходов</title><link>https://yrkan.com/ru/blog/migration-test-documentation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/migration-test-documentation/</guid><description>&lt;p&gt;Тестирование миграций — одна из наиболее рискованных деятельностей в разработке ПО, где неполная документация непосредственно приводит к потере данных, простоям и нарушениям соответствия. По данным Gartner, 83% проектов по миграции данных терпят неудачу или выходят за рамки бюджета из-за неадекватного тестирования. IDC оценивает, что плохое качество данных обходится организациям в среднем в 15 миллионов долларов в год. Независимо от того, мигрируете ли вы с Oracle на PostgreSQL, переносите системы в AWS или обновляете legacy-монолиты, исчерпывающая документация тестов обеспечивает целостность данных и непрерывность бизнеса.&lt;/p&gt;</description></item><item><title>Документация тестирования пользовательских историй: От критериев приемки до валидации тестов</title><link>https://yrkan.com/ru/blog/user-story-testing-docs/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/user-story-testing-docs/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Документация тестирования пользовательских историй связывает критерии приёмки с тест-кейсами с полной трассируемостью. Пиши тест-кейсы в BDD-формате (Given/When/Then) по каждому критерию приёмки. Связывай всё в инструменте управления тестами для обзора спринта и доказательства аудита.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Документация тестирования пользовательских историй создаёт цепочку трассируемости от бизнес-требований до проверенного поведения программного обеспечения, позволяя командам доказать, что каждая потребность пользователя была протестирована и проверена. According to the 2024 State of Agile Report by Digital.ai, 94% организаций практикуют ту или иную форму agile-методологии, делая работу на основе пользовательских историй доминирующим режимом разработки программного обеспечения. According to the World Quality Report 2024, только 38% agile-команд поддерживают систематическую трассируемость между пользовательскими историями и тест-кейсами, что создаёт проблемы видимости на обзоре спринта и риски соответствия при аудитах. Этот разрыв ведёт к неясности в покрытии и сложностям при оценке влияния регрессии при изменении историй. Эффективная документация тестирования пользовательских историй преодолевает разрыв между критериями приёмки и выполнением тестов, предоставляя доказательство завершения истории, выходящее за рамки простого &amp;ldquo;готово&amp;rdquo; разработчика. Это руководство охватывает извлечение тест-кейсов из историй, написание в BDD-формате, матрицы трассируемости и валидацию Definition of Done.&lt;/p&gt;</description></item><item><title>Документация Тестов с ИИ: Автоматизированная Документация от Скриншотов до Инсайтов</title><link>https://yrkan.com/ru/blog/ai-test-documentation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ai-test-documentation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Документация с ИИ сокращает время ручной документации на &lt;strong&gt;75%&lt;/strong&gt; через автоматизированный анализ скриншотов и извлечение шагов из видео&lt;/li&gt;
&lt;li&gt;Модели компьютерного зрения генерируют полные отчёты о багах из скриншотов с &lt;strong&gt;90%+ точностью&lt;/strong&gt;, включая анализ первопричины&lt;/li&gt;
&lt;li&gt;Распознавание паттернов по прогонам тестов автоматически выявляет нестабильные тесты, проблемы окружения и деградацию производительности&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Лучше всего для:&lt;/strong&gt; Команд, тратящих &amp;gt;10 часов/неделю на документацию, приложений с частыми изменениями UI, организаций с непоследовательными отчётами о багах
&lt;strong&gt;Пропустить если:&lt;/strong&gt; &amp;lt;50 тест-кейсов, минимум скриншотов/видео, документация уже автоматизирована более простыми инструментами
&lt;strong&gt;Время чтения:&lt;/strong&gt; 16 минут&lt;/p&gt;</description></item><item><title>Документация Тестовой Среды: Руководство по Конфигурации, Зависимостям и Управлению</title><link>https://yrkan.com/ru/blog/test-environment-documentation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-environment-documentation/</guid><description>&lt;p&gt;По данным отчёта Gartner DevOps 2024, проблемы со средами приводят к &lt;strong&gt;38% сбоев при выполнении тестов&lt;/strong&gt; — больше, чем нестабильные тесты или плохие тестовые данные вместе взятые. Исследование World Quality Report 2024 показало, что команды с полноценной документацией тестовой среды тратят &lt;strong&gt;в 2,7 раза меньше времени на устранение неполадок&lt;/strong&gt; со средой и вводят в строй новых инженеров на 45% быстрее. Тем не менее большинство организаций обращаются к документации среды как к запасному вариантs — обновляя её только после инцидентов. Документация тестовой среды — это не просто справочный артефакт. Это операционный договор между твоей инфраструктурой, командой QA и конвейером релизов. Она охватывает, какие сервисы существуют, как они настроены, у кого есть доступ, как обновляются данные и что делать, когда что-то идёт не так. Грамотно составленная, она устраняет целый класс ошибок «у меня работает» и даёт каждому члену команды одинаковую видимость тестовой инфраструктуры.&lt;/p&gt;</description></item><item><title>Документация Тестовых Данных: Каталогизация и Управление Тестовыми Активами</title><link>https://yrkan.com/ru/blog/test-data-documentation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-data-documentation/</guid><description>&lt;p&gt;Документация тестовых данных — один из наиболее часто игнорируемых QA-артефактов, и один из самых дорогостоящих в игнорировании. По данным SmartBear State of Software Quality 2024, команды с задокументированными и версионированными тестовыми данными испытывают на 43% меньше сбоев тестов из-за несогласованности данных и вводят новых QA-инженеров в 2,6 раза быстрее. Исследования Software Engineering Institute показывают: недокументированные тестовые данные являются второй наиболее распространённой причиной невоспроизводимых сбоев тестов. Проблема усугубляется со временем: набор данных, который «все знают», как использовать, становится непрозрачным после ухода членов команды.&lt;/p&gt;</description></item><item><title>Документация Фреймворка Автоматизации Тестирования: Полное Руководство</title><link>https://yrkan.com/ru/blog/test-automation-framework-docs/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-automation-framework-docs/</guid><description>&lt;p&gt;Документация фреймворка автоматизации — одна из самых высокодоходных инвестиций QA-команды: SmartBear State of Software Quality 2024 сообщает, что 52% QA-команд называют «плохую документацию» главным барьером для внедрения автоматизации, а команды с хорошо задокументированными фреймворками онбордят новых инженеров по автоматизации в 3 раза быстрее. Несмотря на это, документация фреймворка часто пишется последней и забрасывается первой при давлении дедлайнов. Результат: узкие места знаний, дублирование утилит, непоследовательные паттерны и bus-factor риск. Это руководство предоставляет систематический подход к документированию фреймворков автоматизации — от архитектурной документации до воркфлоу обслуживания, которые поддерживают документацию актуальной без героических усилий.&lt;/p&gt;</description></item><item><title>Документация чеклистов дымовых тестов: Создание эффективных тестов верификации сборки</title><link>https://yrkan.com/ru/blog/smoke-test-checklist-docs/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/smoke-test-checklist-docs/</guid><description>&lt;p&gt;Дымовое тестирование служит первой линией защиты в обеспечении качества. По данным SmartBear «State of Testing 2024», 73% QA-команд автоматизируют часть регрессионных наборов, однако эффективная документация дымовых тестов — фундамент для gate-проверок — часто остаётся недокументированной. Хорошо разработанный чеклист охватывает 20% функциональности, отказ которой обесценил бы оставшиеся 80% тестирования. ISTQB определяет дымовые тесты как «набор тестов, запускаемых при каждой сборке для проверки базовой функциональности». Команды со зрелой документацией сообщают о снижении потерь времени на тестирование нестабильных сборок на 40-60%. Это руководство охватывает идентификацию критических путей, структуру чеклиста, критерии go/no-go и стратегии сопровождения.&lt;/p&gt;</description></item><item><title>Дорожная карта QA Engineer 2025: Полный карьерный путь от Junior до Senior</title><link>https://yrkan.com/ru/blog/qa-engineer-roadmap-2025/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/qa-engineer-roadmap-2025/</guid><description>&lt;p&gt;Карьерный ландшафт QA-инженерии кардинально изменился: роль эволюционировала от ручного выполнения тестов к стратегической технической дисциплине, охватывающей автоматизацию, производительность, безопасность и тестирование с помощью AI. По данным Бюро статистики труда США, должности аналитиков по обеспечению качества программного обеспечения должны вырасти на 25% с 2022 по 2032 год, что значительно превышает средний показатель, при медианной зарплате $99 620. По данным State of Testing Report 2023 от Smartbear, 87% QA-специалистов сообщают, что навыки автоматизации теперь необходимы для карьерного роста, и 65% ожидают, что знания AI/ML станут критически важными в течение двух лет. Для инженеров на любом этапе карьеры понимание полного пути помогает расставить приоритеты в развитии навыков и определить возможности специализации.&lt;/p&gt;</description></item><item><title>Журнал Выполнения Тестов: Полное Руководство по Документированию и Сбору Доказательств</title><link>https://yrkan.com/ru/blog/test-execution-log/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-execution-log/</guid><description>&lt;p&gt;По данным SmartBear State of Software Quality 2024, команды со структурированными журналами выполнения тестов решают дефекты &lt;strong&gt;в 2,4 раза быстрее&lt;/strong&gt;, чем команды, полагающиеся на неформальные заметки о тестировании, и снижают долю ошибок «не удаётся воспроизвести» на &lt;strong&gt;58%&lt;/strong&gt;. Исследование Software Testing Institute показало, что автоматизированный сбор доказательств (скриншоты, логи, снимки среды) сокращает среднее время расследования дефектов на &lt;strong&gt;35 минут на баг&lt;/strong&gt;. Тем не менее большинство команд QA относятся к журналированию как к второстепенному по сравнению с поиском багов, теряя документацию, которая позже сэкономила бы часы расследования. Журнал выполнения тестов — это не просто таблица прохождения/провала. Это след доказательств, обеспечивающий воспроизведение, анализ трендов, аудит соответствия и передачу институциональных знаний. Когда через шесть месяцев после релиза обнаруживается критический баг, именно журналы выполнения говорят, что именно тестировалось и каково было состояние системы.&lt;/p&gt;</description></item><item><title>Заменит ли ИИ QA-инженеров к 2030 году? Будущее профессии тестировщика</title><link>https://yrkan.com/ru/blog/future-of-qa-profession/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/future-of-qa-profession/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; ИИ автоматизирует 40-60% рутинных задач QA к 2030 году (Gartner), но адаптировавшиеся QA-инженеры увидят расширенный охват и более высокие зарплаты. Стратегия победителя: изучить промпт-инжиниринг, валидацию моделей ИИ и архитектуру качества.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;По прогнозам Gartner Technology Predictions 2024, ИИ автоматизирует 40-60% рутинных задач QA и тестирования к 2030 году — однако публикации вакансий QA-инженера выросли на 23% в 2024 году, по данным LinkedIn Workforce Report. Этот кажущийся парадокс разрешается, когда смотришь на то, что именно автоматизирует ИИ. Инструменты ИИ теперь генерируют тест-кейсы, поддерживают регрессионные наборы и обнаруживают визуальные аномалии — механические части QA. Но кто-то должен определять, что и почему тестировать, валидировать сами ИИ-сгенерированные тесты и проектировать системы качества для ПО на основе ИИ. По данным World Quality Report 2024 от Capgemini, 78% организаций активно повышают квалификацию команд QA в области ИИ, а не сокращают штат. Профессия QA не исчезает — она раздваивается: адаптировавшиеся получат расширенный охват и надбавку к зарплате 20-35%.&lt;/p&gt;</description></item><item><title>ИИ Анализ Логов: Интеллектуальное Обнаружение Ошибок и Анализ Первопричин</title><link>https://yrkan.com/ru/blog/ai-log-analysis/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ai-log-analysis/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ИИ-анализ логов снижает шум алертов на &lt;strong&gt;70-90%&lt;/strong&gt; через интеллектуальную кластеризацию и дедупликацию&lt;/li&gt;
&lt;li&gt;Обнаружение аномалий с использованием Isolation Forest ловит &lt;strong&gt;неизвестные-неизвестные&lt;/strong&gt;—ошибки без предопределенных правил—с точностью 95%+ при пороге контаминации 1%&lt;/li&gt;
&lt;li&gt;Анализ первопричин через графы зависимостей сервисов сокращает среднее время восстановления (MTTR) на &lt;strong&gt;40-60%&lt;/strong&gt; автоматически отслеживая сбои вверх по цепочке&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Идеально для:&lt;/strong&gt; Систем генерирующих 1M+ записей логов/день, микросервисов со сложными зависимостями, команд с усталостью от алертов
&lt;strong&gt;Не подходит если:&lt;/strong&gt; Простые монолитные приложения с базовым логированием, команды с менее 100 ошибок/день где ручной анализ посилен
&lt;strong&gt;Время чтения:&lt;/strong&gt; 12 минут&lt;/p&gt;</description></item><item><title>Интеграция Serenity BDD: Живая Документация и Продвинутые Отчеты о Тестировании</title><link>https://yrkan.com/ru/blog/serenity-bdd-integration/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/serenity-bdd-integration/</guid><description>&lt;p&gt;Serenity BDD (ранее Thucydides) — это мощная open-source библиотека, улучшающая BDD за счёт исключительных возможностей отчётности и живой документации. По данным JVM Ecosystem Report 2024 от JRebel, BDD-фреймворки используют 34% Java-команд, а Cucumber — самый популярный из них. Serenity расширяет Cucumber и JBehave понятными для заказчиков HTML-отчётами, полной историей скриншотов и трассировкой требований — превращая сырые результаты тестов в документацию, которую владелец продукта может читать без технических знаний. Паттерн Screenplay, альтернатива Page Objects в Serenity, решает проблемы поддерживаемости, делающие большие Selenium-наборы хрупкими со временем. По данным кейс-стади Serenity, команды, перешедшие на Screenplay, сообщают о сокращении времени на поддержку тестов на 40-60% благодаря лучшему разделению ответственности между целями пользователей и UI-взаимодействиями. Это руководство охватывает интеграцию Serenity с BDD-фреймворками, архитектуру паттерна Screenplay и возможности отчётности.&lt;/p&gt;</description></item><item><title>Как Выбрать Правильный Инструмент Тестирования API: Framework Принятия Решений и Руководство по Выбору</title><link>https://yrkan.com/ru/blog/choosing-api-testing-tool/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/choosing-api-testing-tool/</guid><description>&lt;p&gt;Как Выбрать Правильный Инструмент Тестирования API: Framework Принятия Решений и Руководство по Выбору — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to Postman&amp;rsquo;s 2024 State of the API report, 51% of developers spend the most time on APIs, making API quality critical (Postman State of the API 2024). According to SmartBear, 69% of organizations have increased their API testing budgets in 2024 (SmartBear State of Software Quality 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Карьера в QA: От Junior до Principal Engineer</title><link>https://yrkan.com/ru/blog/qa-career-path-progression/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/qa-career-path-progression/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — Карьера в QA охватывает уровни от Junior ($50-70K) до Principal ($190K+) с 5-7 чёткими ступенями. Каждый уровень имеет ясные требования к навыкам, обязанностям и стратегиям роста. Это полный roadmap с данными по зарплатам, матрицей навыков и планами продвижения.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Карьера в области обеспечения качества предлагает разнообразные возможности для роста — от практического тестирования до стратегических лидерских ролей. Согласно опросу Stack Overflow Developer Survey 2024, QA и тест-инженеры представляют одну из наиболее быстрорастущих технических дисциплин, а медианные зарплаты выросли на 18% за три года. Согласно данным Бюро трудовой статистики США, занятость аналитиков по обеспечению качества ПО вырастет на 25% к 2032 году — значительно быстрее среднего по рынку. Это руководство охватывает каждый уровень с матрицами навыков, зарплатными диапазонами и практическими стратегиями роста.&lt;/p&gt;</description></item><item><title>Карьерные Переходы в Области QA</title><link>https://yrkan.com/ru/blog/career-transitions-qa-field/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/career-transitions-qa-field/</guid><description>&lt;p&gt;Карьерные Переходы в Области QA — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to the Bureau of Labor Statistics, software QA analyst positions are projected to grow 25% through 2032, much faster than average (BLS Occupational Outlook). According to Stack Overflow&amp;rsquo;s 2024 Developer Survey, the median QA engineer salary in the US is $110,000 (Stack Overflow Developer Survey 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Комбинаторный Дизайн Тестов: Систематическое Покрытие Взаимодействий Параметров</title><link>https://yrkan.com/ru/blog/combinatorial-test-design/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/combinatorial-test-design/</guid><description>&lt;p&gt;Комбинаторный Дизайн Тестов: Систематическое Покрытие Взаимодействий Параметров — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to NIST, software bugs cost the US economy $59.5 billion annually, with about 80% preventable through better testing (NIST Software Testing Study). According to research by Capers Jones, finding and fixing a defect after deployment costs 10-100x more than finding it during design (Capers Jones Software Engineering Best Practices). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Комплексное Руководство по Тестированию Контейнеров</title><link>https://yrkan.com/ru/blog/container-testing-comprehensive-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/container-testing-comprehensive-guide/</guid><description>&lt;p&gt;Тестирование контейнеров стало одним из ключевых навыков современного QA-инженера. По данным &lt;a href="https://www.cncf.io/reports/"&gt;ежегодного опроса CNCF 2024&lt;/a&gt;, 92% организаций используют контейнеры в продакшене, а Docker и Kubernetes занимают доминирующее положение в экосистеме. При этом 62% команд обнаруживают уязвимости контейнеров уже после выхода в продакшен — именно этот разрыв и закрывает грамотно выстроенное тестирование. Тестирование контейнеров принципиально отличается от традиционного: нужно одновременно проверять целостность образа, конфигурацию во время выполнения, ограничения ресурсов, сетевое взаимодействие и зависимости оркестрации. Команды, инвестирующие в многоуровневые стратегии тестирования — сканирование образов, структурные тесты и интеграционные наборы — стабильно сокращают количество инцидентов в продакшене на 70–90%. Согласно &lt;a href="https://docs.docker.com/"&gt;официальной документации Docker&lt;/a&gt;, организации, применяющие shift-left подход к тестированию контейнеров, сокращают среднее время восстановления более чем на 50%. В этом руководстве — проверенная методология, которая работает на практике.&lt;/p&gt;</description></item><item><title>Контейнеризация для тестирования: Полное руководство по Docker, Kubernetes и Testcontainers</title><link>https://yrkan.com/ru/blog/containerization-for-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/containerization-for-testing/</guid><description>&lt;p&gt;Контейнеризация для тестирования: Полное руководство по Docker, Kubernetes и Testcontainers — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to the 2024 DORA report, organizations with high DevOps maturity have 4x lower change failure rates (DORA State of DevOps 2024). According to Puppet&amp;rsquo;s State of DevOps report, high-performing DevOps teams spend 44% less time on unplanned work (Puppet State of DevOps). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Контекстно-Ориентированное Тестирование: Адаптивный Подход к Качеству ПО</title><link>https://yrkan.com/ru/blog/context-driven-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/context-driven-testing/</guid><description>&lt;p&gt;Контекстно-Ориентированное Тестирование: Адаптивный Подход к Качеству ПО — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to NIST, software bugs cost the US economy $59.5 billion annually, with about 80% preventable through better testing (NIST Software Testing Study). According to research by Capers Jones, finding and fixing a defect after deployment costs 10-100x more than finding it during design (Capers Jones Software Engineering Best Practices). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Контроль версий тестовых артефактов: Git-стратегии, ветвление и документация как код</title><link>https://yrkan.com/ru/blog/test-artifacts-version-control/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-artifacts-version-control/</guid><description>&lt;p&gt;Отношение к тестовым артефактам как к первоклассному коду с контролем версий становится отличительным признаком зрелых QA-организаций: GitHub State of the Octoverse 2024 сообщает, что 73% высокопроизводительных инженерных команд хранят тестовый код рядом с кодом приложения, а команды, которые версионируют тестовую документацию в Git, обнаруживают на 28% меньше регрессий, потому что тестовые изменения остаются синхронизированными с изменениями кода. Несмотря на это, многие QA-команды по-прежнему управляют тест-кейсами в электронных таблицах или изолированных инструментах, создавая разрыв между тем, что было протестировано, и тем, что было закоммичено. Документация-как-код привносит ветвление, слияние, код-ревью и CI/CD интеграцию Git в тестовые артефакты.&lt;/p&gt;</description></item><item><title>Критерии входа и выхода в тестировании: когда начинать и заканчивать тестирование</title><link>https://yrkan.com/ru/blog/entry-exit-criteria/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/entry-exit-criteria/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Критерии входа определяют, когда можно начинать тестирование; критерии выхода — когда оно завершено. Документируй их в тест-плане и используй как объективные ворота качества.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Критерии входа и выхода — одни из самых недоиспользуемых ворот качества в тестировании ПО. Согласно &lt;a href="https://www.istqb.org/certifications/certified-tester-foundation-level"&gt;силлабусу ISTQB Foundation Level&lt;/a&gt;, критерии входа проверяют выполнение предусловий для тестирования, а критерии выхода подтверждают достижение целей — однако World Quality Report 2024 от Capgemini обнаружил, что 54% организаций до сих пор не имеют формально определённых критериев. Результат: команды начинают тестирование на нестабильных билдах и выпускают продукт с неизвестным уровнем качества. По данным SmartBear, команды с документированными критериями сокращают цикл тестирования на 30% и находят на 25% больше дефектов до UAT. Разница между «готовы ли мы к релизу?» как политической дискуссией и объективным измерением зависит от того, были ли критерии определены до начала спринта.&lt;/p&gt;</description></item><item><title>Кроссплатформенное Мобильное Тестирование: Стратегии Успеха на Множестве Устройств</title><link>https://yrkan.com/ru/blog/cross-platform-mobile-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/cross-platform-mobile-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Кросс-платформенное мобильное тестирование требует приоритизированной матрицы устройств на основе аналитики пользователей. Используй Appium или облачные фермы устройств для автоматизации и сосредоточь полные наборы тестов на топ-комбинациях устройство/ОС.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="введение-в-вызовы-кроссплатформенного-тестирования"&gt;Введение в Вызовы Кроссплатформенного Тестирования &lt;a href="#%d0%b2%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-%d0%b2%d1%8b%d0%b7%d0%be%d0%b2%d1%8b-%d0%ba%d1%80%d0%be%d1%81%d1%81%d0%bf%d0%bb%d0%b0%d1%82%d1%84%d0%be%d1%80%d0%bc%d0%b5%d0%bd%d0%bd%d0%be%d0%b3%d0%be-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;В современной мобильной экосистеме приложения должны безупречно работать на сотнях комбинаций устройств. Кроссплатформенное мобильное тестирование решает проблему обеспечения согласованной функциональности, производительности и пользовательского опыта на различных операционных системах, производителях устройств, размерах экрана и версиях ОС.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Матрица устройств — самый недооценённый документ в мобильном QA. Команды, которые пропускают её, в итоге тестируют на личных телефонах — что почти никогда не отражает реальную аудиторию.&amp;rdquo; — Yuri Kan, Senior QA Lead&lt;/p&gt;</description></item><item><title>Лучшие Практики Тестирования Pulumi: Юнит, Property и Интеграционные Тесты для IaC</title><link>https://yrkan.com/ru/blog/pulumi-testing-best-practices/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/pulumi-testing-best-practices/</guid><description>&lt;p&gt;Pulumi революционизирует тестирование инфраструктуры, позволяя командам использовать знакомые языки программирования и нативные тестовые фреймворки вместо изучения DSL-специфичных инструментов. По данным опроса Pulumi State of Cloud Engineering 2022, команды, внедряющие комплексное тестирование инфраструктуры, сокращают сбои при деплое на 45% и восстанавливаются после инцидентов на 60% быстрее. По данным Puppet State of DevOps Report 2023, организации, практикующие IaC с автоматизированным тестированием, имеют в 5 раз более высокую частоту деплоев и в 3 раза меньший процент провальных изменений. Для QA-инженеров и DevOps-команд подход Pulumi означает, что юнит-тесты с моками работают в 60 раз быстрее интеграционных тестов — одна команда сократила 20-минутный набор до 20 секунд — а тесты свойств перехватывают нарушения соответствия до деплоя.&lt;/p&gt;</description></item><item><title>Лучшие Практики Тестирования в CircleCI</title><link>https://yrkan.com/ru/blog/circleci-testing-best-practices/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/circleci-testing-best-practices/</guid><description>&lt;p&gt;Лучшие Практики Тестирования в CircleCI — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to the 2024 DORA State of DevOps report, elite performing teams deploy 973x more frequently than low performers (DORA State of DevOps 2024). According to GitLab&amp;rsquo;s 2024 DevSecOps report, teams using CI/CD fix bugs 60% faster than those without automation (GitLab DevSecOps Survey 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Матрица Кросс-Браузерного Тестирования: Руководство по Мульти-Браузерной Стратегии</title><link>https://yrkan.com/ru/blog/cross-browser-test-matrix/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/cross-browser-test-matrix/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Матрица кросс-браузерного тестирования сопоставляет тест-кейсы с комбинациями браузер/ОС на основе аналитики пользователей. Приоритизируй Tier 1 браузеры (80%+ охват) для полной автоматизации, Tier 2 — для smoke-тестов.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="введение-в-кросс-браузерное-тестирование"&gt;Введение в Кросс-Браузерное Тестирование &lt;a href="#%d0%b2%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-%d0%ba%d1%80%d0%be%d1%81%d1%81-%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Кросс-браузерное тестирование обеспечивает, что веб-приложения функционируют согласованно в разных браузерах, версиях, операционных системах и устройствах. С более чем 15 основными версиями браузеров и бесчисленными комбинациями платформ и размеров экранов, структурированный подход к тестированию необходим для предоставления согласованного пользовательского опыта.&lt;/p&gt;</description></item><item><title>Менторство Junior QA Инженеров: Всеобъемлющее Руководство по Эффективной Передаче Знаний</title><link>https://yrkan.com/ru/blog/mentoring-junior-qa-engineers/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/mentoring-junior-qa-engineers/</guid><description>&lt;p&gt;Наставничество — одна из самых эффективных инвестиций, которые может сделать старший QA-инженер. По данным LinkedIn Workplace Learning Report 2023, сотрудники с наставниками получают повышение в пять раз чаще тех, кто работает без поддержки, а организации с культурой наставничества удерживают на 20% больше сотрудников. Для QA-команд передача знаний особенно важна: джуниоры часто приходят с теоретической подготовкой, но без практического опыта в реальных сценариях тестирования. Структурированный подход к наставничеству — с планом на первые 90 дней, парным тестированием и code review — может сократить время до полной продуктивности с шести месяцев до трёх.&lt;/p&gt;</description></item><item><title>Метаморфическое Тестирование: Валидация ПО Без Известных Корректных Выходов</title><link>https://yrkan.com/ru/blog/metamorphic-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/metamorphic-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;«Метаморфическое тестирование — одна из самых недооценённых техник в индустрии. Когда ты начинаешь думать категориями отношений между результатами, а не абсолютными значениями, ты находишь баги там, куда традиционное тестирование просто не добирается.» — Yuri Kan, Senior QA Lead&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — Метаморфическое тестирование проверяет отношения между входами и выходами (метаморфические отношения) вместо сравнения с ожидаемыми значениями. Это основная техника для тестирования ML-моделей, компиляторов и научного ПО. В руководстве — пять типов отношений с примерами кода на Python и переиспользуемый фреймворк.&lt;/p&gt;</description></item><item><title>Метрики и KPI в Тестировании: Измерение Качества и Прогресса</title><link>https://yrkan.com/ru/blog/testing-metrics-kpis-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/testing-metrics-kpis-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;
Метрики тестирования превращают субъективные оценки качества в решения, основанные на данных. Пять ключевых метрик: Плотность Дефектов (на KLOC), Утечка Дефектов (цель &amp;lt;5%), Эффективность Устранения Дефектов (цель &amp;gt;90%), Покрытие Автоматизации Тестов и Скорость Выполнения Тестов. По данным SmartBear, команды, систематически отслеживающие метрики дефектов, выпускают на 35% меньше дефектов в продакшен, чем команды, опирающиеся на интуицию.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Для кого:&lt;/strong&gt; QA-менеджеры и тест-лиды, которым нужно обосновать ценность тестирования перед стейкхолдерами и улучшить процессы
&lt;strong&gt;Можно пропустить, если:&lt;/strong&gt; тебе нужны руководство по написанию тест-кейсов или настройка фреймворка автоматизации&lt;/p&gt;</description></item><item><title>Мобильное тестирование в 2025: iOS, Android и за пределами</title><link>https://yrkan.com/ru/blog/mobile-testing-2025-ios-android-beyond/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/mobile-testing-2025-ios-android-beyond/</guid><description>&lt;p&gt;Мобильное тестирование в 2025 году вышло далеко за пределы традиционных подходов к iOS и Android. По данным отчёта Statista Mobile 2024, сейчас существует более 7 миллиардов мобильных подписок по всему миру, и мобильные приложения генерируют более 65% всего времени цифровых медиа. По данным исследования App Annie, средний пользователь смартфона имеет 80 установленных приложений и использует 9 в день. Ландшафт расширился, включив складные устройства, AR/VR приложения, требования к тестированию 5G, функции на основе ИИ и кроссплатформенные фреймворки Flutter и React Native. Это руководство охватывает полный спектр мобильного тестирования 2025 года.&lt;/p&gt;</description></item><item><title>Модели OSI и TCP/IP</title><link>https://yrkan.com/ru/course/module-10-networking/osi-tcp-ip-models/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-10-networking/osi-tcp-ip-models/</guid><description>&lt;h2 id="модель-osi"&gt;Модель OSI &lt;a href="#%d0%bc%d0%be%d0%b4%d0%b5%d0%bb%d1%8c-osi" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Модель взаимодействия открытых систем (OSI) — это концептуальная структура, которая разделяет сетевую коммуникацию на семь отдельных уровней. Для QA-инженеров эта модель предоставляет системный способ диагностировать, где возникают сетевые проблемы — вместо «не работает» вы можете точно указать уровень, вызывающий сбой.&lt;/p&gt;
&lt;p&gt;Представьте модель OSI как почтовую систему. Когда вы отправляете письмо, оно проходит несколько этапов: вы пишете содержание (Прикладной), кладёте в конверт с адресом (Представления/Сеансовый), почта маршрутизирует его (Транспортный/Сетевой), почтовый грузовик доставляет (Канальный), а физическая дорога несёт грузовик (Физический). У каждого уровня своя задача.&lt;/p&gt;</description></item><item><title>Мониторинг и Observability для QA: Полное руководство</title><link>https://yrkan.com/ru/blog/monitoring-observability-for-qa/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/monitoring-observability-for-qa/</guid><description>&lt;p&gt;Наблюдаемость и мониторинг стали необходимыми компетенциями для QA-инженеров по мере перехода систем к распределённым микросервисным архитектурам. По данным отчёта Dynatrace 2023, 85% организаций столкнулись со сбоем цифровых сервисов за прошлый год, при этом среднее время обнаружения (MTTD) превышало 70 минут в организациях без зрелых практик наблюдаемости. По данным DORA State of DevOps, высокопроизводительные команды восстанавливают сервисы в 100 раз быстрее — и наблюдаемость является ключевым отличительным фактором. Для QA-инженеров это означает переход от реактивного обнаружения багов к проактивному измерению качества.&lt;/p&gt;</description></item><item><title>Написание Test Charter для Исследовательского Тестирования: Структура, Эвристики и Отчеты о Сессиях</title><link>https://yrkan.com/ru/blog/test-charter-writing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-charter-writing/</guid><description>&lt;p&gt;Test charter — основа дисциплинированного исследовательского тестирования: исследования программы BBST (Black Box Software Testing) показывают, что исследовательские сессии с письменными чартерами находят на 40-60% больше actionable-багов по сравнению с равной по времени неуправляемой эксплорацией. Тем не менее, согласно State of Testing 2024, менее 35% команд регулярно пишут чартеры перед исследовательскими сессиями. Хорошо структурированный чартер определяет миссию, фокусирует внимание тестировщика на зонах высокого риска, указывает необходимые ресурсы и инструменты, устанавливает временные рамки — обеспечивая как творческое открытие, так и профессиональную документацию того, что было и не было протестировано.&lt;/p&gt;</description></item><item><title>Настройка Тестового Окружения: Полное Руководство</title><link>https://yrkan.com/ru/blog/test-environment-setup/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-environment-setup/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — Правильно настроенное тестовое окружение — основа надёжного QA. Согласно опросу SmartBear, 42% команд называют нестабильность окружения главной проблемой в тестировании. Руководство охватывает Infrastructure as Code, Docker, управление тестовыми данными и мониторинг здоровья окружения.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Правильно настроенное тестовое окружение критично для надёжного и повторяемого тестирования. Согласно опросу SmartBear State of Testing, 42% QA-команд называют управление тестовым окружением своей главной проблемой — больше, чем проектирование тест-кейсов или навыки автоматизации. Согласно исследованию Docker, организации, использующие контейнеризованные тестовые окружения, сокращают время настройки на 70% и устраняют до 80% отказов, связанных с окружением. Следуя практикам Infrastructure as Code, контейнеризуя окружения с Docker и автоматизируя обновление тестовых данных, команды превращают ненадёжные окружения в стабильные воспроизводимые основы.&lt;/p&gt;</description></item><item><title>Непрерывное Обучение в Автоматизации Тестирования: Создание Самосовершенствующихся Тестовых Систем</title><link>https://yrkan.com/ru/blog/continuous-learning-automation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/continuous-learning-automation/</guid><description>&lt;p&gt;Непрерывное Обучение в Автоматизации Тестирования: Создание Самосовершенствующихся Тестовых Систем — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to the World Quality Report 2024, 51% of QA organizations have increased test automation coverage in the past year (World Quality Report 2024). According to SmartBear, teams with 70%+ automated test coverage report 40% fewer production defects (SmartBear State of Software Quality). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Непрерывное Тестирование в DevOps: Quality Gates и Интеграция CI/CD</title><link>https://yrkan.com/ru/blog/continuous-testing-devops/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/continuous-testing-devops/</guid><description>&lt;p&gt;Непрерывное Тестирование в DevOps: Quality Gates и Интеграция CI/CD — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to the 2024 DORA State of DevOps report, elite performing teams deploy 973x more frequently than low performers (DORA State of DevOps 2024). According to GitLab&amp;rsquo;s 2024 DevSecOps report, teams using CI/CD fix bugs 60% faster than those without automation (GitLab DevSecOps Survey 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Нефункциональное тестирование: за пределами функциональности</title><link>https://yrkan.com/ru/blog/nefunktsionalnoe-testirovanie-rukovodstvo/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/nefunktsionalnoe-testirovanie-rukovodstvo/</guid><description>&lt;p&gt;Нефункциональное тестирование определяет, получают ли пользователи удовольствие от программного обеспечения и доверяют ли ему — не просто работает ли оно технически. Согласно таксономии тестирования ISTQB, нефункциональное тестирование охватывает полную модель качества, определённую в ISO 25010: производительность, юзабилити, надёжность, совместимость, безопасность, доступность и локализацию. Ставки измеримы: 88% пользователей не возвращаются после плохого опыта, задержка загрузки страницы на 1 секунду снижает конверсию e-commerce на 7%, а несоответствие требованиям доступности спровоцировало тысячи исков по ADA в США. При этом 15% населения Земли живёт с той или иной формой инвалидности, а некачественная локализация закрывает целые рынки. В этом руководстве — практический комплексный фреймворк для всех четырёх столпов нефункционального тестирования.&lt;/p&gt;</description></item><item><title>Обзор Ranorex Studio: Автоматизация Десктопа и Корпоративная Платформа Тестирования</title><link>https://yrkan.com/ru/blog/ranorex-studio-overview/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ranorex-studio-overview/</guid><description>&lt;p&gt;Ranorex Studio — комплексная платформа автоматизации тестирования корпоративного класса, разработанная для кросс-технологического тестирования настольных приложений Windows, веб и мобильных приложений из единой среды. По данным G2 Crowd, Ranorex Studio используется более чем 4000 компаниями по всему миру, особенно сильное распространение в отраслях с устаревшими настольными системами — производство, здравоохранение и финансовые услуги. По опубликованным тестам Ranorex, команды, использующие объектный репозиторий и возможности тестирования на основе данных, сообщают о снижении времени на обслуживание тестов на 70% по сравнению с подходами на основе локаторов элементов. Для корпоративных QA-команд, управляющих разнообразными портфелями приложений — от современных веб-приложений до многолетних WinForms — возможность Ranorex Studio тестировать всё из одного инструмента делает его практичным выбором.&lt;/p&gt;</description></item><item><title>Облачные Платформы Тестирования: Полное Руководство по BrowserStack, Sauce Labs, AWS Device Farm и Другим</title><link>https://yrkan.com/ru/blog/cloud-testing-platforms/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/cloud-testing-platforms/</guid><description>&lt;p&gt;Облачные Платформы Тестирования: Полное Руководство по BrowserStack, Sauce Labs, AWS Device Farm и Другим — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to Gartner, worldwide cloud spending will exceed $1 trillion by 2025, making cloud testing skills essential (Gartner Cloud Forecast). According to HashiCorp&amp;rsquo;s 2024 State of Cloud Strategy survey, 78% of organizations use a multi-cloud strategy (HashiCorp State of Cloud 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Обнаружение Drift в Инфраструктуре: Синхронизация состояния Terraform</title><link>https://yrkan.com/ru/blog/drift-detection-infrastructure/</link><pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/drift-detection-infrastructure/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Drift происходит когда реальная инфраструктура расходится с состоянием Terraform — ручные изменения, правки в консоли или неудачные apply&lt;/li&gt;
&lt;li&gt;driftctl сканирует ваш cloud аккаунт и сравнивает с состоянием, обнаруживая ресурсы о которых Terraform не знает&lt;/li&gt;
&lt;li&gt;Ошибка #1: предполагать что &lt;code&gt;terraform plan&lt;/code&gt; ловит весь drift (он проверяет только ресурсы &lt;em&gt;в&lt;/em&gt; состоянии)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд где несколько человек имеют доступ к cloud консолям или унаследованной инфраструктуре
&lt;strong&gt;Пропустите, если:&lt;/strong&gt; Вы работаете один, все изменения идут через Terraform и вы никогда не трогаете консоль
&lt;strong&gt;Время чтения:&lt;/strong&gt; 10 минут&lt;/p&gt;</description></item><item><title>Обнаружение Аномалий Производительности с ИИ: За Пределами Статических Порогов</title><link>https://yrkan.com/ru/blog/ai-performance-anomaly/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ai-performance-anomaly/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Обнаружение аномалий с ИИ выявляет на &lt;strong&gt;73% больше&lt;/strong&gt; проблем производительности, чем мониторинг на основе порогов, сокращая ложные срабатывания на &lt;strong&gt;65%&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Динамические базовые линии автоматически изучают паттерны (дневные, недельные, сезонные), устраняя необходимость ручной настройки порогов&lt;/li&gt;
&lt;li&gt;Isolation Forest лучше для множественных метрик; LSTM превосходит для обнаружения на основе трендов с временными рядами&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Системы с переменными паттернами трафика, команды с усталостью от алертов, приложения с высокими требованиями к соотношению сигнал/шум
&lt;strong&gt;Не подходит:&lt;/strong&gt; Стабильные метрики с известными диапазонами, менее 30 дней исторических данных, без инвестиций в ML инфраструктуру
&lt;strong&gt;Время чтения:&lt;/strong&gt; 15 минут&lt;/p&gt;</description></item><item><title>Обнаружение дрифта в инфраструктуре: Полное руководство по управлению состоянием IaC</title><link>https://yrkan.com/ru/blog/drift-detection-in-infrastructure/</link><pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/drift-detection-in-infrastructure/</guid><description>&lt;h2 id="tldr"&gt;TL;DR &lt;a href="#tldr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Что:&lt;/strong&gt; Обнаружение дрифта выявляет различия между вашими определениями IaC и фактически развёрнутой инфраструктурой&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Зачем:&lt;/strong&gt; Ручные изменения, неудачные деплои и внешние модификации вызывают дрифт конфигурации, приводящий к инцидентам&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Инструменты:&lt;/strong&gt; Terraform plan, AWS Config, driftctl, Spacelift, env0&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевая метрика:&lt;/strong&gt; 100% ресурсов отслеживается с алертами о дрифте в течение 1 часа после изменения&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Начните здесь:&lt;/strong&gt; Запланируйте ежедневные запуски &lt;code&gt;terraform plan&lt;/code&gt; и алертуйте о любых обнаруженных изменениях&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Дрифт инфраструктуры — тихий накопитель рисков. Команда, сделавшая три ручных исправления в production в прошлом квартале, не документировала их — теперь IaC и реальность расходятся, и никто не знает, чему доверять.&amp;rdquo; — Yuri Kan, Senior QA Lead&lt;/p&gt;</description></item><item><title>Обнаружение Предвзятости в ML Моделях: Этичное ИИ Тестирование</title><link>https://yrkan.com/ru/blog/bias-detection-ml/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/bias-detection-ml/</guid><description>&lt;p&gt;Обнаружение Предвзятости в ML Моделях: Этичное ИИ Тестирование — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to Gartner, by 2025, 70% of new applications will use AI or ML, up from less than 5% in 2020 (Gartner AI Forecast). According to McKinsey&amp;rsquo;s 2024 State of AI survey, 65% of organizations now use generative AI regularly, nearly double the 2023 figure (McKinsey State of AI 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Оптимизация CI/CD Пайплайна для QA Команд</title><link>https://yrkan.com/ru/blog/ci-cd-pipeline-optimization-for-qa-teams/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ci-cd-pipeline-optimization-for-qa-teams/</guid><description>&lt;p&gt;Оптимизация CI/CD Пайплайна для QA Команд — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to the 2024 DORA State of DevOps report, elite performing teams deploy 973x more frequently than low performers (DORA State of DevOps 2024). According to GitLab&amp;rsquo;s 2024 DevSecOps report, teams using CI/CD fix bugs 60% faster than those without automation (GitLab DevSecOps Survey 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>От Manual к Automation: Полное руководство по переходу для QA Engineers</title><link>https://yrkan.com/ru/blog/manual-to-automation-transition/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/manual-to-automation-transition/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Переход от ручного к автоматизированному тестированию: изучи один язык (Python/JS), один фреймворк (Selenium/Playwright) и создай реальные портфолио-проекты. При ежедневной практике ожидай 6-12 месяцев до базовой компетентности в автоматизации.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Переход от ручного тестирования к автоматизации тестов—один из наиболее значимых карьерных шагов, который может сделать QA инженер. Навыки автоматизации значительно увеличивают вашу рыночную стоимость, расширяют карьерные возможности и позиционируют вас для senior ролей. Однако путь от ручного тестирования к автоматизации может казаться overwhelming, особенно если у вас нет программистского бэкграунда.&lt;/p&gt;</description></item><item><title>Отчет о Покрытии Тестами: Полное Руководство по Анализу и Визуализации Покрытия</title><link>https://yrkan.com/ru/blog/test-coverage-report/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-coverage-report/</guid><description>&lt;p&gt;Отчет о покрытии тестами — одна из наиболее неверно понимаемых метрик качества в разработке ПО. По данным SmartBear State of Software Quality 2024, 68% команд отслеживают покрытие кода, но только 31% — покрытие требований, метрику, напрямую коррелирующую с процентом escape rate дефектов. Исследования Capers Jones (Software Engineering Best Practices) показывают: команды с покрытием прослеживаемости требований выше 90% имеют на 45% меньше пост-релизных дефектов, чем отслеживающие только покрытие кода. Различие важно: 85% покрытие строк означает, что тесты проходят через 85% строк кода, но ничего не говорит о том, тестируются ли правильные сценарии.&lt;/p&gt;</description></item><item><title>Отчет о сессии исследовательского тестирования: Документирование заметок, находок и последующих действий</title><link>https://yrkan.com/ru/blog/exploratory-session-report/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/exploratory-session-report/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Структурируй отчёты: чартер, заметки с таймстемпами, доказательства багов (скриншоты/записи) и план действий&lt;/li&gt;
&lt;li&gt;Используй 90-минутные сессии с таймбоксом (методология SBTM): 70 мин исследование + 15 мин документирование&lt;/li&gt;
&lt;li&gt;Немедленно конвертируй находки в тикеты — незадокументированные инсайты теряются безвозвратно&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; QA-инженеров, проводящих исследовательские сессии и нуждающихся в фреймворке документирования
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Ты выполняешь только скриптовые тесты без практики исследовательского тестирования&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Исследовательское тестирование выявляет 30-40% всех критических дефектов в программных проектах, согласно отчёту SmartBear о состоянии качества ПО. Однако большинство команд теряет 60% ценности этих сессий, потому что находки не документируются, пути тестирования невоспроизводимы, а знания остаются в головах тестировщиков. Эффективные отчёты о сессиях исследовательского тестирования превращают ненаправленное исследование в структурированные знания. Хорошо написанный отчёт фиксирует чартер тестирования, наблюдения с временными метками, баги с шагами воспроизведения и скриншотами, охваченные области и последующие действия. Методология Session-Based Test Management (SBTM) Джеймса Баха устанавливает золотой стандарт: 90-минутные сессии с таймбоксом, структурированные заметки дебрифинга и явные метрики покрытия. Команды, использующие SBTM, сообщают о 45% лучшей прослеживаемости ошибок и значительно меньших потерях знаний при ротации тестировщиков.&lt;/p&gt;</description></item><item><title>Отчет о Тестировании Доступности: Полное Руководство по Соответствию WCAG</title><link>https://yrkan.com/ru/blog/accessibility-test-report/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/accessibility-test-report/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Автоматизированные инструменты обнаруживают 30-40% проблем доступности — вам нужны как автоматизированные, так и ручные тесты со вспомогательными технологиями&lt;/li&gt;
&lt;li&gt;Структурируйте отчеты по принципам POUR WCAG (Воспринимаемый, Управляемый, Понятный, Надежный) с четкими уровнями серьезности&lt;/li&gt;
&lt;li&gt;Включайте шаги воспроизведения, затронутые группы пользователей и код исправления для каждой проблемы для быстрого устранения&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Лучше всего для:&lt;/strong&gt; QA-команд, проводящих аудиты доступности, специалистов по соответствию, документирующих конформность WCAG
&lt;strong&gt;Пропустить если:&lt;/strong&gt; Вам нужно только быстрое автоматическое сканирование — используйте axe DevTools напрямую вместо построения полных отчетов
&lt;strong&gt;Время чтения:&lt;/strong&gt; 15 минут&lt;/p&gt;</description></item><item><title>Отчёт о Тестировании Локализации: Документирование Качества Международного ПО</title><link>https://yrkan.com/ru/blog/localization-test-report/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/localization-test-report/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Отчёты о локализационном тестировании документируют охват перевода, проблемы с макетом UI, культурную уместность и ошибки кодировки по поддерживаемым локалям. Используй матрицу охвата для отслеживания протестированных локалей и приоритизируй дефекты по функциональному воздействию.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Локализационное тестирование проверяет, что программные продукты корректно работают в разных языках, регионах и культурах — критический барьер качества для любого продукта, ориентированного на международные рынки. По данным отчёта Common Sense Advisory 2024, 76% глобальных потребителей предпочитают покупать продукты с информацией на родном языке, а 60% редко или никогда не покупают на сайтах только на английском. Дефекты локализации варьируются от незначительных косметических проблем (усечение текста) до критических функциональных сбоев (сломанный парсинг дат, повреждение макета RTL). Эффективные отчёты о локализационном тестировании предоставляют структурированную документацию того, что тестировалось, что было обнаружено и что нужно исправить.&lt;/p&gt;</description></item><item><title>Отчет о тестировании производительности: Полное руководство по метрикам, анализу и оптимизации</title><link>https://yrkan.com/ru/blog/performance-test-report/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/performance-test-report/</guid><description>&lt;p&gt;Отчёты о тестировании производительности — критически важный артефакт коммуникации, который переводит необработанные метрики в практические бизнес-решения. По данным исследования Gartner, проекты тестирования производительности, где результаты плохо коммуницируются заинтересованным сторонам, имеют на 40% более высокий уровень игнорирования проблем производительности. По данным Software Engineering Institute, технические метрики производительности типа p95 задержки бессмысленны для бизнес-заинтересованных сторон, если не переведены в пользовательский эффект. Эффективные отчёты объединяют техническую строгость с чёткими нарративами о бизнес-воздействии.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Эффективный отчёт о тестировании производительности включает: резюме для руководства (1 страница, язык бизнес-воздействия), описание тестовой среды и сценария, ключевые метрики (пропускная способность, задержка p50/p95/p99, частота ошибок), сравнение с SLO и предыдущими базовыми уровнями, анализ узких мест и приоритизированные рекомендации.&lt;/p&gt;</description></item><item><title>Отчет об Оценке Инструментов Тестирования</title><link>https://yrkan.com/ru/blog/test-tool-evaluation-report/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-tool-evaluation-report/</guid><description>&lt;p&gt;По данным исследования Gartner по разработке ПО 2024 года, &lt;strong&gt;62% организаций&lt;/strong&gt; меняют инструменты автоматизации тестирования в течение трёх лет после внедрения — главным образом потому, что первоначальный выбор был основан на демо у вендора, а не на структурированной оценке по реальным требованиям проекта. Исследование Forrester по QA-инструментарию 2024 года обнаружило, что команды, использующие формальные фреймворки оценки с взвешенными критериями и POC, достигают &lt;strong&gt;45% более высоких показателей принятия инструментов&lt;/strong&gt; и &lt;strong&gt;2,3x лучшего ROI&lt;/strong&gt; за три года. Разница сводится к системному подходу: определению требований до демо, оценке инструментов по единым критериям, запуску POC на реальных сценариях и расчёту полного TCO.&lt;/p&gt;</description></item><item><title>Оценка по модулю 10</title><link>https://yrkan.com/ru/course/module-10-networking/module-10-assessment/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-10-networking/module-10-assessment/</guid><description>&lt;h2 id="обзор-оценки"&gt;Обзор оценки &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Эта оценка проверяет понимание сетевых концепций из всех 14 уроков Модуля 10. Оценивает практические диагностические навыки, а не только теорию.&lt;/p&gt;
&lt;h3 id="структура"&gt;Структура &lt;a href="#%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Часть&lt;/th&gt;
 &lt;th&gt;Вес&lt;/th&gt;
 &lt;th&gt;Время&lt;/th&gt;
 &lt;th&gt;Описание&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Множественный выбор&lt;/td&gt;
 &lt;td&gt;40%&lt;/td&gt;
 &lt;td&gt;15 мин&lt;/td&gt;
 &lt;td&gt;10 вопросов-сценариев&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Диагностика&lt;/td&gt;
 &lt;td&gt;30%&lt;/td&gt;
 &lt;td&gt;15 мин&lt;/td&gt;
 &lt;td&gt;3 сценария отладки&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Лаборатория&lt;/td&gt;
 &lt;td&gt;30%&lt;/td&gt;
 &lt;td&gt;15 мин&lt;/td&gt;
 &lt;td&gt;Практика с инструментами&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="проверка-знаний"&gt;Проверка знаний &lt;a href="#%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d0%ba%d0%b0-%d0%b7%d0%bd%d0%b0%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Вопросы квиза покрывают реальные сценарии по всем темам: модели OSI/TCP-IP, HTTP, DNS, SSL/TLS, прокси, WebSocket, эмуляция сети, балансировщики/CDN, файрволы/WAF, TCP/UDP, API gateway, VPN, IPv4/IPv6 и Wireshark.&lt;/p&gt;</description></item><item><title>Параллелизация тестов в CI/CD: Полное руководство по ускорению сборок</title><link>https://yrkan.com/ru/blog/test-parallelization-in-ci-cd/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-parallelization-in-ci-cd/</guid><description>&lt;p&gt;По данным отчёта DORA State of DevOps Report 2024, элитные инженерные команды поддерживают &lt;strong&gt;медианное время сборки менее 10 минут&lt;/strong&gt; — и параллелизация тестов последовательно является техникой №1, отличающей быстро разворачивающиеся команды от медленных. Исследование инженерного блога Google показало, что их CI-инфраструктура запускает тесты с &lt;strong&gt;сокращением времени более чем на 88%&lt;/strong&gt; через интеллектуальное шардирование, позволяя 45-минутным последовательным наборам тестов завершаться менее чем за 8 минут. Тем не менее подавляющее большинство инженерных команд по-прежнему запускают тесты последовательно, принимая 20-60 минут пайплайна как неизбежность. Параллелизация тестов распределяет набор тестов по нескольким воркерам, работающим одновременно, сокращая время выполнения пропорционально количеству воркеров — при правильной стратегии разделения. Это руководство охватывает полный стек параллелизации: от базового шардирования до продвинутого распределения на основе таймингов, конфигурации CI на разных платформах и антипаттернов, из-за которых тесты проваливаются при параллельном запуске.&lt;/p&gt;</description></item><item><title>Переговоры о Зарплате для QA Engineers: Полное Руководство</title><link>https://yrkan.com/ru/blog/salary-negotiation-qa-engineers/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/salary-negotiation-qa-engineers/</guid><description>&lt;p&gt;Переговоры о зарплате — одно из мероприятий с наибольшей отдачей для QA-инженера, однако большинство специалистов оставляют деньги на столе из-за недостаточной подготовки. По данным LinkedIn Salary Insights, QA-инженеры, ведущие переговоры, получают в среднем на 7-10% более высокие предложения, что составляет $5000-$15000+ в год. По данным Glassdoor, 59% работников принимают первое предложенное жалование без переговоров. Для QA-профессионалов понимание рыночных ставок (старшие QA-инженеры зарабатывают $95K-$165K на основных рынках США), знание того, какие компоненты компенсации подлежат переговорам, и подготовка стратегий значительно улучшают результаты.&lt;/p&gt;</description></item><item><title>Пирамида автоматизации: строим правильную стратегию</title><link>https://yrkan.com/ru/blog/piramida-avtomatizacii-strategiya/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/piramida-avtomatizacii-strategiya/</guid><description>&lt;p&gt;Пирамида автоматизации тестирования — один из самых устойчивых фреймворков в качестве ПО, но команды систематически реализуют его неправильно: SmartBear State of Software Quality 2024 сообщает, что 58% команд с неудачными инвестициями в автоматизацию имеют тест-сьюты, доминируемые E2E тестами вместо рекомендуемой пирамидой базы из юнит-тестов — это приводит к медленным сборкам (40+ минут CI), высоким затратам на поддержку и ложным срабатываниям нестабильных тестов. Концепт пирамиды, введённый Майком Коном в &amp;ldquo;Succeeding with Agile&amp;rdquo; (2009), кодирует критический экономический принцип: юнит-тесты в 100 раз дешевле в написании, в 100 раз быстрее и в 10 раз проще в отладке, чем E2E тесты — поэтому они должны доминировать в портфеле автоматизации. Это руководство охватывает полную стратегию пирамиды: когда использовать каждый уровень тестирования, как рассчитать ROI автоматизации и как исправить перевёрнутую пирамиду.&lt;/p&gt;</description></item><item><title>План Тестирования и Стратегия: Blueprint Успеха</title><link>https://yrkan.com/ru/blog/test-plan-test-strategy-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-plan-test-strategy-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;
Стратегия тестирования — это долгосрочная философия организации; план тестирования — конкретный план исполнения для спринта. IEEE 829 даёт хороший шаблон, но его нужно адаптировать: Agile-командам нужны живые документы, а не статичные PDF. Применяй риск-ориентированный подход и всегда определяй измеримые критерии входа и выхода.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; QA-лидов и тест-менеджеров, создающих или улучшающих документацию команды
&lt;strong&gt;Пропусти если:&lt;/strong&gt; тебе нужна настройка инструментов автоматизации или фреймворков тестирования&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Планы и стратегии тестирования — фундамент систематического обеспечения качества, однако многие команды по-прежнему путают эти понятия или вовсе пропускают формальную документацию. Отчёт SmartBear 2024 State of Software Quality показал, что команды с задокументированными стратегиями тестирования обнаруживают на 35% больше дефектов до продакшена по сравнению с командами, полагающимися на ad-hoc подход. Стратегия — это высокоуровневый долгосрочный документ, определяющий цели тестирования, уровни, инструменты и методологию рисков. План — тактический документ для конкретного релиза с детальным расписанием, ресурсами и критериями. Вместе они согласовывают стейкхолдеров и создают измеримые критерии ответа на вопрос «готовы ли мы к релизу?» Руководство охватывает оба документа: стандарт IEEE 829, адаптации для Agile и готовые шаблоны.&lt;/p&gt;</description></item><item><title>Подготовка к QA интервью: Полное руководство для получения вашей следующей роли</title><link>https://yrkan.com/ru/blog/qa-interview-preparation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/qa-interview-preparation/</guid><description>&lt;p&gt;Собеседования на позиции QA-инженера стали значительно более требовательными, требуя от кандидатов демонстрации навыков программирования, системного мышления и глубоких знаний тестирования. По данным LinkedIn Talent Insights, позиция QA Engineer входит в топ-10 быстрорастущих технических ролей с 30% ростом публикаций вакансий год к году. По данным Glassdoor, среднее собеседование на должность QA Engineer в ведущих технологических компаниях включает 4-6 раундов — технический скрининг, задания на кодирование, проектирование систем и поведенческие оценки. Для кандидатов на старшие позиции и SDET подготовка должна быть комплексной — охватывающей структуры данных, сценарии API-тестирования, архитектуру CI/CD и поведенческие фреймворки типа STAR. Это руководство предоставляет структурированный план подготовки с реальными вопросами и практическими задачами.&lt;/p&gt;</description></item><item><title>Полное Руководство по Playwright: Мультибраузерное Тестирование, Auto-Wait и Мастерство Trace Viewer</title><link>https://yrkan.com/ru/blog/playwright-comprehensive-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/playwright-comprehensive-guide/</guid><description>&lt;p&gt;Playwright стал самым быстрорастущим фреймворком для end-to-end тестирования в JavaScript-экосистеме. По данным опроса State of JS 2024, показатели удовлетворённости и использования Playwright впервые превысили аналогичные показатели Cypress, а более 40% JavaScript-разработчиков используют его для e2e-тестирования. Фреймворк преодолел отметку в 95 000 звёзд на GitHub и набирает более 5 миллионов еженедельных скачиваний через npm. Разработанный Microsoft — той же командой, что создала Puppeteer — Playwright устраняет фундаментальные ограничения старых фреймворков: нестабильные тесты, зависящие от таймингов, отсутствие настоящей мультибраузерной поддержки и трудности с отладкой. Механизм auto-wait проверяет шесть условий actionability перед каждым взаимодействием, устраняя класс ошибок гонки состояний, которые преследуют Selenium и ранние версии Cypress. Trace Viewer фиксирует скриншоты, снимки DOM и сетевую активность для каждого шага теста, превращая сбои в продакшене из загадок в чётко воспроизводимые последовательности.&lt;/p&gt;</description></item><item><title>Построение QA Портфолио и Личного Бренда: Полное Руководство</title><link>https://yrkan.com/ru/blog/building-qa-portfolio-personal-brand/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/building-qa-portfolio-personal-brand/</guid><description>&lt;p&gt;Построение QA Портфолио и Личного Бренда: Полное Руководство — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to the Bureau of Labor Statistics, software QA analyst positions are projected to grow 25% through 2032, much faster than average (BLS Occupational Outlook). According to Stack Overflow&amp;rsquo;s 2024 Developer Survey, the median QA engineer salary in the US is $110,000 (Stack Overflow Developer Survey 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Построение Сети в QA Сообществе</title><link>https://yrkan.com/ru/blog/networking-qa-community/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/networking-qa-community/</guid><description>&lt;p&gt;Создание профессиональной сети в QA-сообществе — одно из наиболее эффективных карьерных действий для специалистов по тестированию. По данным опроса LinkedIn, 70% людей были наняты через нетворкинг, а в специализированных областях, таких как инженерия QA, рекомендации от известных специалистов часто обходят длительные процессы найма. По данным исследования Professional Development Institute, профессионалы с активными сетями достигают старших позиций в среднем на 18 месяцев быстрее. Для QA-инженеров сообщество включает онлайн-пространства (Testing Community Discord, форумы ISTQB, Ministry of Testing), местные встречи и крупные конференции.&lt;/p&gt;</description></item><item><title>Предиктивный Выбор Тестов: ИИ-Оптимизация Тестирования</title><link>https://yrkan.com/ru/blog/predictive-test-selection/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/predictive-test-selection/</guid><description>&lt;p&gt;Предиктивный выбор тестов использует машинное обучение для определения, какие тесты нужно запускать при изменениях кода, резко сокращая время CI/CD-пайплайнов. По данным исследования Google Engineering Productivity Research, выборочное выполнение тестов может сократить время запуска тестового набора на 60-80% при сохранении процента обнаружения дефектов выше 95%. По данным DORA State of DevOps Report 2023, высокоэффективные команды развёртываются в 208 раз чаще и восстанавливаются в 2604 раза быстрее, чем отстающие — и интеллектуальный выбор тестов является ключевым фактором. Для QA-инженеров, управляющих большими тестовыми наборами, предиктивный выбор означает более быструю обратную связь, меньшие вычислительные затраты и возможность всестороннего регрессионного тестирования без замедления процесса разработки.&lt;/p&gt;</description></item><item><title>Принципы тестирования: 7 золотых правил ISTQB</title><link>https://yrkan.com/ru/blog/testing-principles/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/testing-principles/</guid><description>&lt;p&gt;Учебная программа ISTQB Foundation Level — преподаваемая более &lt;strong&gt;1 миллиону сертифицированных тестировщиков по всему миру&lt;/strong&gt; — строится на 7 принципах тестирования, которые остаются фундаментальными с 1970-х годов, когда Гленфорд Майерс впервые задокументировал их в &lt;em&gt;The Art of Software Testing&lt;/em&gt;. Согласно World Quality Report 2024, команды, применяющие структурированные принципы тестирования (риск-ориентированный выбор тестов, раннее обнаружение дефектов, систематический анализ покрытия), поставляют ПО с &lt;strong&gt;на 35% меньшим числом производственных дефектов&lt;/strong&gt; по сравнению с командами, использующими ad-hoc подходы. Эти принципы — не абстрактная теория: они решают реальные повторяющиеся проблемы — почему исчерпывающее тестирование математически невозможно, почему прохождение тестов не гарантирует качество, почему дефекты предсказуемо кластеризируются в 20% кодовой базы, и почему твой регрессионный набор теряет эффективность без намеренного обслуживания. Согласно исследованию Gartner 2024, организации со зрелыми практиками тестирования, основанными на этих принципах, имеют на 45% меньший процент ускользнувших дефектов.&lt;/p&gt;</description></item><item><title>Продвинутые Техники Pytest: Мастерство Автоматизации Тестирования на Python</title><link>https://yrkan.com/ru/blog/pytest-advanced-techniques/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/pytest-advanced-techniques/</guid><description>&lt;p&gt;Pytest стал де-факто стандартом для тестирования на Python с более чем 2,5 миллионами еженедельных загрузок на PyPI, что делает его одним из самых широко применяемых тестовых фреймворков в экосистеме. По данным опроса JetBrains Python Developer Survey 2023, 88% разработчиков на Python используют pytest как основной тестовый фреймворк, значительно опережая unittest (27%) и nose (4%). По данным исследования Python Packaging Authority, проекты, использующие расширенные возможности pytest — parametrize, fixtures и пользовательские маркеры — достигают на 40% лучшего покрытия тестами по сравнению с базовыми реализациями unittest. Для QA-инженеров и Python-разработчиков освоение расширенных возможностей pytest трансформирует хорошие тестовые наборы в исключительные, которые масштабируются вместе с кодовой базой.&lt;/p&gt;</description></item><item><title>Прокси-инструменты: Charles, Fiddler, mitmproxy</title><link>https://yrkan.com/ru/course/module-10-networking/proxy-tools-charles-fiddler/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-10-networking/proxy-tools-charles-fiddler/</guid><description>&lt;h2 id="зачем-qa-прокси-инструменты"&gt;Зачем QA прокси-инструменты &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-qa-%d0%bf%d1%80%d0%be%d0%ba%d1%81%d0%b8-%d0%b8%d0%bd%d1%81%d1%82%d1%80%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;HTTP-прокси инструменты располагаются между клиентом и сервером, давая полную видимость и контроль над сетевым трафиком. Для QA-инженеров они незаменимы: отладка мобильных приложений (где нельзя увидеть сетевые запросы напрямую), тестирование граничных случаев (модификацией ответов сервера) и симуляция сетевых условий (throttling, задержка).&lt;/p&gt;
&lt;p&gt;В отличие от DevTools браузера, которые показывают трафик только из браузера, прокси-инструменты захватывают трафик из любого приложения — мобильных, десктопных, CLI и фоновых сервисов.&lt;/p&gt;
&lt;h3 id="типичные-qa-сценарии"&gt;Типичные QA-сценарии &lt;a href="#%d1%82%d0%b8%d0%bf%d0%b8%d1%87%d0%bd%d1%8b%d0%b5-qa-%d1%81%d1%86%d0%b5%d0%bd%d0%b0%d1%80%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Отладка мобильных приложений:&lt;/strong&gt; Просмотр каждого API-вызова&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Тестирование обработки ошибок:&lt;/strong&gt; Модификация ответов для возврата ошибок, пустых данных или невалидного JSON&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Симуляция медленных сетей:&lt;/strong&gt; Throttling полосы пропускания для тестирования в условиях 3G/4G&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Проверка API-контрактов:&lt;/strong&gt; Инспекция точных payload запросов/ответов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Тестирование без изменений бэкенда:&lt;/strong&gt; Замена ответов сервера локальными файлами&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="charles-proxy-и-fiddler"&gt;Charles Proxy и Fiddler &lt;a href="#charles-proxy-%d0%b8-fiddler" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="charles-proxy"&gt;Charles Proxy &lt;a href="#charles-proxy" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Charles — самый популярный GUI-прокси для QA-инженеров:&lt;/p&gt;</description></item><item><title>Публичные Выступления для QA: От Конференц-Докладов до Презентаций на Митапах</title><link>https://yrkan.com/ru/blog/public-speaking-qa-conferences/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/public-speaking-qa-conferences/</guid><description>&lt;p&gt;Публичные выступления — один из самых мощных ускорителей карьеры для QA-профессионалов, однако остаются недооценёнными большинством инженеров. По данным опроса Toastmasters International, 74% людей страдают от речевой тревоги, но те, кто её преодолевает, сообщают о среднем 20% преимуществе в зарплате перед коллегами, избегающими публичных выступлений. По данным исследования LinkedIn 2022 года, специалисты, выступающие на отраслевых конференциях, получают в 3 раза больше рекрутинговых запросов и на 45% больше просмотров профиля, чем не выступающие коллеги. Для QA-инженеров техническая глубина нашей работы — от решений по тест-архитектуре до оценок инструментов — делает нас уникально ценными голосами в тестировочном сообществе. Это руководство охватывает полный путь от первого митапа до выступления на крупных конференциях, включая выбор темы, структуру доклада и преодоление страха сцены.&lt;/p&gt;</description></item><item><title>Реестр Рисков в Тестировании: Полное Руководство по Документированию и Управлению Рисками</title><link>https://yrkan.com/ru/blog/risk-register-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/risk-register-testing/</guid><description>&lt;p&gt;Реестр рисков — центральный документ, который трансформирует неформальное осознание рисков в структурированную систему управления. По данным PMI (Project Management Institute), проекты с формальными реестрами рисков сокращают частоту отказов на 28% и справляются с неожиданными проблемами на 45% быстрее. По данным исследования Gartner, 80% провалов проектов можно отследить до рисков, которые были известны, но не отслеживались формально. Для QA-лидов комплексный реестр рисков документирует каждый выявленный риск с оценками вероятности, влиянием и стратегиями смягчения.&lt;/p&gt;</description></item><item><title>Реестр тестового долга: Управление непротестированными областями и пробелами в автоматизации</title><link>https://yrkan.com/ru/blog/test-debt-register/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-debt-register/</guid><description>&lt;p&gt;Тестовый долг — качественный эквивалент финансового долга: он накапливает проценты со временем в форме инцидентов в продакшне, медленной разработки и выгорания инженеров. По данным опроса Gartner Engineering Survey 2024, организации, отслеживающие тестовый долг в формальном реестре, испытывают на 52% меньше неожиданных инцидентов в продакшне из непротестированных областей и принимают в 3 раза лучшие решения по распределению ресурсов. Проблема — видимость: большинство команд имеют значительный тестовый долг, но не имеют систематического способа донести его до стейкхолдеров или приоритизировать погашение. Реестр тестового долга трансформирует невидимый риск в управляемый бэклог с количественным бизнес-влиянием.&lt;/p&gt;</description></item><item><title>Риск-Ориентированная Стратегия Тестирования: Оптимизация Тестовых Усилий Через Приоритизацию Бизнес-Рисков</title><link>https://yrkan.com/ru/blog/risk-based-strategy/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/risk-based-strategy/</guid><description>&lt;p&gt;Стратегия тестирования на основе рисков — это практика распределения усилий по тестированию пропорционально вероятности и влиянию потенциальных сбоев, а не попытка исчерпывающего охвата всех возможных тест-кейсов. По данным отчёта Capers Jones Software Quality Report, риск-ориентированные подходы снижают процент ускользающих дефектов на 35-50% по сравнению со случайными стратегиями тестирования при использовании того же тестового бюджета. По данным исследований Дороти Грэм и Эрика ван Вендаала, опубликованных в материалах сертификации RSTQB, команды, применяющие формальное риск-ориентированное тестирование, достигают на 45% лучшего покрытия высокоприоритетных бизнес-областей в тех же временных ограничениях. Для QA-лидов и менеджеров по тестированию стратегия на основе рисков означает создание матрицы рисков.&lt;/p&gt;</description></item><item><title>Руководство по Gauge Framework: Языко-Независимая BDD Альтернатива Cucumber</title><link>https://yrkan.com/ru/blog/gauge-framework-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/gauge-framework-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;
Gauge — современный BDD-фреймворк от ThoughtWorks, заменяющий Gherkin стандартным Markdown. Ключевые преимущества перед Cucumber: встроенное параллельное выполнение (до 84% быстрее с 8 воркерами), языковая независимость (Java/JS/Python/Go/C#/Ruby) и система концепций для переиспользования шагов. Лучший выбор для команд, которых останавливает синтаксис Gherkin.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; команд, внедряющих BDD и желающих простоты Markdown с нативным параллелизмом
&lt;strong&gt;Пропусти если:&lt;/strong&gt; есть значительная инфраструктура Cucumber или нужна его расширенная экосистема плагинов&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Gauge — это фреймворк автоматизации с открытым кодом, созданный ThoughtWorks — той же консалтинговой компанией, что разработала практики непрерывной интеграции и TDD. Вместо Gherkin Gauge использует стандартный Markdown, снижая барьер для нетехнических участников команды. Согласно репозиторию Gauge на GitHub, фреймворк набрал более 3900 звёзд и активно поддерживает Java, JavaScript, Python, Ruby, C# и Go. Руководство охватывает Markdown-спецификации, языково-независимую архитектуру, встроенное параллельное выполнение с бенчмарками, систему концепций для переиспользования шагов и детальное сравнение с Cucumber.&lt;/p&gt;</description></item><item><title>Руководство по тестированию Serverless: AWS Lambda и Azure Functions</title><link>https://yrkan.com/ru/blog/serverless-testing-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/serverless-testing-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;
Тестирование serverless требует принципиально другого подхода. Учитывай stateless-выполнение, задержки холодного старта и event-driven триггеры, которые сложно воспроизвести локально. Комбинируй юнит-тесты для бизнес-логики, интеграционные тесты с LocalStack и бенчмарки холодного старта.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; бэкенд-инженеров и QA-лидов, работающих с Lambda и Azure Functions
&lt;strong&gt;Пропусти если:&lt;/strong&gt; ты тестируешь традиционные серверные API без serverless-компонентов&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Serverless-вычисления обеспечивают работу более половины современных облачных систем, но тестирование serverless-функций остаётся одной из наиболее недооценённых инженерных задач. Согласно &lt;a href="https://docs.aws.amazon.com/lambda/"&gt;документации AWS Lambda&lt;/a&gt;, функции могут испытывать задержки холодного старта от 100 мс до более чем 3 секунд в зависимости от среды выполнения и конфигурации памяти — разрыв, который напрямую влияет на пользовательский опыт, если его не валидировать в процессе тестирования. CNCF 2023 Cloud Native Survey выявил, что 53% респондентов запускают serverless-нагрузки в продакшене, но команды часто обнаруживают баги, специфичные для среды, только после деплоя — потому что локальные тестовые стенды не воспроизводят ограничения IAM, сетевую конфигурацию VPC и поведение при параллельном выполнении. В этом руководстве рассматривается полная стратегия тестирования serverless — от настройки SAM CLI и интеграционного тестирования с LocalStack до бенчмаркинга холодного старта и валидации разрешений IAM. Также рекомендуем изучить &lt;a href="https://www.serverless.com/framework/docs"&gt;документацию Serverless Framework&lt;/a&gt; для интеграции с деплой-пайплайнами.&lt;/p&gt;</description></item><item><title>Руководство по тестированию в Bitbucket Pipelines: Полный туториал</title><link>https://yrkan.com/ru/blog/bitbucket-pipelines-testing-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/bitbucket-pipelines-testing-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;
Bitbucket Pipelines использует файл bitbucket-pipelines.yml для автоматизации тестов при каждом коммите. Параллельные шаги сокращают время сборки на 50-70%, многоуровневое кеширование уменьшает последующие сборки со 120 до 35 секунд, а конфигурации для разных веток позволяют фича-веткам выполнять быстрые юнит-тесты, а main — полный набор перед деплоем.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; команд на Bitbucket Cloud, которые хотят CI/CD-автоматизацию без управления Jenkins или GitHub Actions
&lt;strong&gt;Пропусти если:&lt;/strong&gt; используешь GitHub или GitLab — концепции применимы, но синтаксис YAML отличается&lt;/p&gt;</description></item><item><title>Руководство по Тестированию Чатботов: Валидация Систем Разговорного ИИ</title><link>https://yrkan.com/ru/blog/chatbot-testing-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/chatbot-testing-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Тестирование чатботов&lt;/strong&gt;: валидация точности NLU, диалоговых потоков, управления контекстом и качества ответов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевая сложность&lt;/strong&gt;: открытые входные данные на естественном языке — требует вероятностного тестирования&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NLU-тестирование&lt;/strong&gt;: золотые датасеты (100-200 фраз/намерение) и измерение precision/recall&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Инструменты&lt;/strong&gt;: Botium (специализированная платформа), тестовая консоль Dialogflow, Postman (API-бэкенд)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Метрики качества&lt;/strong&gt;: точность намерений &amp;gt;90%, процент fallback &amp;lt;15%, процент решения &amp;gt;80%&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Критические области&lt;/strong&gt;: многоходовой контекст, извлечение сущностей, граничные случаи (опечатки, неоднозначность)&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Мировой рынок чатботов оценивался в $5,1 млрд в 2022 году и, по прогнозам, достигнет $27,3 млрд к 2030 году при росте 23% в год. Согласно Gartner, 80% организаций клиентского сервиса будут использовать генеративный ИИ к 2025 году. Тем не менее чатботы остаются одними из наиболее плохо протестированных программных систем: традиционные методы QA не справляются, потому что нельзя перечислить все возможные входные данные на естественном языке, диалоговые потоки нелинейны, а «правильный» ответ зависит от контекста. Плохо протестированный чатбот раздражает пользователей потерей контекста, неправильно классифицированными намерениями и галлюцинациями. Тестирование требует специализированных техник: NLU на золотых датасетах, покрытие диалоговых потоков, валидация извлечения сущностей и регрессионное тестирование после каждого переобучения.&lt;/p&gt;</description></item><item><title>Ручное Тестирование: Полное Руководство для QA-инженеров</title><link>https://yrkan.com/ru/blog/manual-testing-tutorial-complete-guide/</link><pubDate>Thu, 29 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/manual-testing-tutorial-complete-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ручное тестирование использует человеческое суждение для поиска багов, которые пропускает автоматизация — проблемы юзабилити, визуальные дефекты, неожиданное поведение&lt;/li&gt;
&lt;li&gt;Ключевые навыки: дизайн тест-кейсов, исследовательское тестирование, баг-репорты, анализ требований&lt;/li&gt;
&lt;li&gt;Структура тест-кейса: ID, название, предусловия, шаги, ожидаемый результат, фактический результат&lt;/li&gt;
&lt;li&gt;Баг-репорты должны содержать: описание, шаги воспроизведения, ожидаемое vs фактическое, severity, скриншоты&lt;/li&gt;
&lt;li&gt;Ручное тестирование дополняет автоматизацию — оба подхода необходимы для качества&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Идеально для:&lt;/strong&gt; Начинающих QA-инженеров, людей, меняющих карьеру, разработчиков, изучающих основы QA
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Работаешь только с автоматизированными пайплайнами и не касаешься UI
&lt;strong&gt;Время чтения:&lt;/strong&gt; 18 минут&lt;/p&gt;</description></item><item><title>Самовосстанавливающиеся Тесты: ИИ-Автоматизация, Которая Чинит Себя Сама</title><link>https://yrkan.com/ru/blog/self-healing-tests/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/self-healing-tests/</guid><description>&lt;p&gt;Поддержка тестовой автоматизации давно стала ахиллесовой пятой QA-команд. По данным World Quality Report 2024 от Capgemini, команды тратят в среднем 36% QA-бюджета на поддержку тестов — обновление локаторов, перезапуск нестабильных тестов и отладку ложных срабатываний. Самовосстанавливающаяся автоматизация полностью меняет эту парадигму. Используя ИИ и машинное обучение, такие тесты автоматически обнаруживают изменения UI, адаптируют локаторы на лету и восстанавливаются после сбоев без вмешательства человека. По внутренним данным Tricentis, команды, внедрившие ИИ-самовосстановление, сокращают незапланированные работы по поддержке тестов на 60-70% в первом квартале после развёртывания. Вместо того чтобы ломаться при переименовании ID кнопки или сдвиге элемента, такие фреймворки пробуют несколько резервных стратегий — CSS, текст, визуальный отпечаток, контекст DOM — и обновляют хранящийся локатор для будущих запусков.&lt;/p&gt;</description></item><item><title>Системы Управления Тестированием: Jira vs TestRail vs Zephyr</title><link>https://yrkan.com/ru/blog/test-management-systems-comparison/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-management-systems-comparison/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Jira + Zephyr Scale&lt;/strong&gt;: Лучший выбор для команд, уже использующих Jira — QA и разработка в одном месте&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TestRail&lt;/strong&gt;: Специализированный инструмент, простейший в использовании, лучшая отчётность — идеален для выделенных QA-команд&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zephyr Enterprise&lt;/strong&gt;: Крупные предприятия, строгие требования соответствия, вариант on-premises&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Выбирай по размеру команды&lt;/strong&gt;: Небольшие → TestRail или Zephyr Scale; Enterprise → Zephyr Enterprise&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевая цифра&lt;/strong&gt;: Более 10 000 организаций по всему миру используют TestRail; у Jira 300K+ клиентов&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; QA-команд, выбирающих инструменты управления тестированием в 2026 году&lt;/p&gt;</description></item><item><title>Стратегии Кеширования для Ускорения CI/CD</title><link>https://yrkan.com/ru/blog/caching-strategies-for-faster-ci-cd/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/caching-strategies-for-faster-ci-cd/</guid><description>&lt;p&gt;Стратегии Кеширования для Ускорения CI/CD — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to the 2024 DORA State of DevOps report, elite performing teams deploy 973x more frequently than low performers (DORA State of DevOps 2024). According to GitLab&amp;rsquo;s 2024 DevSecOps report, teams using CI/CD fix bugs 60% faster than those without automation (GitLab DevSecOps Survey 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Стратегии развертывания для QA команд: Blue-Green, Canary и прогрессивные rollouts</title><link>https://yrkan.com/ru/blog/deployment-strategies-qa-teams/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/deployment-strategies-qa-teams/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Стратегии blue-green, canary и прогрессивного развёртывания снижают риски деплоя, контролируя, как новый код достигает пользователей. Роль QA — валидация окружений, мониторинг метрик и определение критериев отката.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="эволюция-тестирования-развертываний"&gt;Эволюция тестирования развертываний &lt;a href="#%d1%8d%d0%b2%d0%be%d0%bb%d1%8e%d1%86%d0%b8%d1%8f-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d1%80%d0%b0%d0%b7%d0%b2%d0%b5%d1%80%d1%82%d1%8b%d0%b2%d0%b0%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Современные стратегии развертывания трансформировали подход QA команд к тестированию. Прошли дни, когда тестирование заканчивалось на staging-окружениях. Сегодняшние сложные паттерны развертывания—blue-green, canary, rolling updates и feature flags—требуют от QA команд адаптации своих стратегий тестирования к сложности и скорости современных пайплайнов доставки.&lt;/p&gt;</description></item><item><title>Стратегии Тестирования Kubernetes: Тестирование Подов, Валидация Service Mesh и Тестирование Helm Charts</title><link>https://yrkan.com/ru/blog/kubernetes-testing-strategies/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/kubernetes-testing-strategies/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Тестирование Kubernetes требует валидации манифестов, Helm-чартов, конфигураций service mesh и поведения приложений при сбоях. Используй kubeval для валидации схемы, helm lint для чартов, Terratest для интеграционных тестов и Chaos Mesh для тестирования отказоустойчивости.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Kubernetes стал де-факто стандартом оркестрации контейнеров: по данным CNCF Annual Survey 2023, 84% предприятий используют его в production. Это создаёт уникальные вызовы для тестирования: QA-команды должны валидировать не только код приложений, но и Kubernetes-манифесты, Helm-чарты, операторы, кастомные определения ресурсов, сетевые политики и конфигурации service mesh. Согласно отчёту State of Cloud Native Development 2024, неправильно сконфигурированные ресурсы Kubernetes отвечают за 43% инцидентов в production в cloud-native средах. Это руководство охватывает комплексные стратегии тестирования Kubernetes: валидацию манифестов, тестирование Helm-чартов, проверку конфигурации подов, валидацию service mesh и chaos engineering.&lt;/p&gt;</description></item><item><title>Стратегия Версионирования API для Мобильных Клиентов: Обратная Совместимость, Принудительные Обновления и A/B Тестирование</title><link>https://yrkan.com/ru/blog/api-versioning-mobile/</link><pubDate>Sat, 17 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/api-versioning-mobile/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Используйте версионирование в URL для мажорных изменений (v1 → v2), в header для минорных — у каждого свои особенности кеширования&lt;/li&gt;
&lt;li&gt;Всегда поддерживайте минимум N-1 версии; используйте принудительное обновление только для критических исправлений безопасности, не для новых функций&lt;/li&gt;
&lt;li&gt;A/B тестируйте новые версии API с 10-20% rollout сначала — hash-based bucketing обеспечивает консистентный опыт для каждого пользователя&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Для кого:&lt;/strong&gt; Мобильные разработчики, backend-команды поддерживающие мобильных клиентов, все кто управляет multi-version API экосистемами&lt;/p&gt;</description></item><item><title>Стратегия Кэширования API Ответов для Мобильных Приложений: Политики Кэша, Offline Поддержка и Стратегии Синхронизации</title><link>https://yrkan.com/ru/blog/api-caching-mobile-strategy/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/api-caching-mobile-strategy/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Выбирайте cache-first для данных с интенсивным чтением (профили, каталоги) и network-first для контента, чувствительного ко времени (ленты, уведомления)&lt;/li&gt;
&lt;li&gt;Реализуйте многослойное кэширование: HTTP cache (OkHttp) для сетевого уровня + Room/SQLite для персистенции + in-memory LRU для горячих данных&lt;/li&gt;
&lt;li&gt;Тестируйте offline-сценарии систематически—cache hit/miss, истечение, инвалидация и лимиты хранилища в реальных сетевых условиях&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Идеально для:&lt;/strong&gt; Команд, создающих мобильные приложения с требованиями offline или нестабильными сетевыми условиями
&lt;strong&gt;Не подходит если:&lt;/strong&gt; Ваше приложение полностью онлайн без потребностей в offline-функциональности
&lt;strong&gt;Время чтения:&lt;/strong&gt; 15 минут&lt;/p&gt;</description></item><item><title>Стратегия Тестирования Feature Flags: LaunchDarkly, Flagsmith и A/B Testing для QA</title><link>https://yrkan.com/ru/blog/feature-flags-testing-strategy/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/feature-flags-testing-strategy/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Стратегия тестирования фича-флагов требует проверки включённых/выключенных путей, тестирования комбинаций на граничных условиях и интеграции управления флагами в CI/CD. Используйте LaunchDarkly или Flagsmith для программного контроля флагов в тестах.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Фича-флаги используют 82% команд разработки для управления развёртыванием, однако лишь 37% систематически тестируют оба пути — включённый и выключенный, по данным LaunchDarkly Feature Management Survey 2024. Комбинаторный взрыв реален: 10 флагов создают 1024 возможных состояния; 20 флагов — более миллиона. Решение — тестирование на основе рисков, а не исчерпывающее покрытие комбинаций. Команды Netflix, Spotify и Facebook используют флаги для непрерывной доставки, поддерживая качество через целевое тестирование критических путей, автоматическую проверку отката и интеграции LaunchDarkly/Flagsmith с тестовыми фреймворками. Согласно ThoughtWorks Technology Radar, тестирование фича-флагов теперь считается основной практикой DevOps. В этом руководстве рассматривается полная стратегия: таксономия флагов, паттерны интеграции LaunchDarkly, валидация A/B-тестов, тестирование постепенных выкаток и управление жизненным циклом.&lt;/p&gt;</description></item><item><title>Тест-автоматизация с Claude и GPT-4: Реальные кейсы интеграции и практическая реализация</title><link>https://yrkan.com/ru/blog/claude-gpt4-automation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/claude-gpt4-automation/</guid><description>&lt;p&gt;Тест-автоматизация с Claude и GPT-4: Реальные кейсы интеграции и практическая реализация — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to Gartner, by 2025, 70% of new applications will use AI or ML, up from less than 5% in 2020 (Gartner AI Forecast). According to McKinsey&amp;rsquo;s 2024 State of AI survey, 65% of organizations now use generative AI regularly, nearly double the 2023 figure (McKinsey State of AI 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Тестирование AI/ML систем: новые вызовы QA</title><link>https://yrkan.com/ru/blog/testing-ai-ml-systems/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/testing-ai-ml-systems/</guid><description>&lt;p&gt;По данным World Quality Report 2024, &lt;strong&gt;68% организаций&lt;/strong&gt;, развернувших AI/ML системы, сообщают, что традиционные QA-методы недостаточны для валидации поведения модели — фундаментальный сдвиг от тестирования детерминированной логики к тестированию вероятностных систем. Исследование Google по ML инженерным практикам показало, что &lt;strong&gt;проблемы качества данных вызывают 70-80% продакшн-сбоев ML&lt;/strong&gt; — это делает валидацию данных задачей с наивысшей отдачей для AI команд. В отличие от традиционного ПО, где баги находятся в коде, дефекты ML могут быть встроены в распределения тренировочных данных, веса модели или разрыв между тренировочным и продакшн окружением — проблемы, которые unit тесты и функциональные утверждения не могут поймать. Исследование Gartner по внедрению AI 2024 года показало, что организации со зрелыми ML практиками тестирования испытывают &lt;strong&gt;на 45% меньше продакшн инцидентов&lt;/strong&gt; и обнаруживают деградацию модели в 3 раза раньше.&lt;/p&gt;</description></item><item><title>Тестирование Ansible с Molecule: Полное Руководство</title><link>https://yrkan.com/ru/blog/ansible-testing-with-molecule/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ansible-testing-with-molecule/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Molecule обеспечивает автоматизированное тестирование ролей Ansible с Docker-контейнерами, мультиплатформенными сценариями и встроенными проверками идемпотентности&lt;/li&gt;
&lt;li&gt;Жизненный цикл тестирования (&lt;code&gt;create → converge → idempotence → verify → destroy&lt;/code&gt;) выявляет дрейф конфигурации и неидемпотентные задачи до продакшна&lt;/li&gt;
&lt;li&gt;Используйте Docker для быстрой итерации в разработке; переключайтесь на Vagrant только для тестирования параметров ядра или специфических функций systemd&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Идеально для:&lt;/strong&gt; Команд с 5+ ролями Ansible, которым нужна воспроизводимая инфраструктура и CI/CD интеграция
&lt;strong&gt;Не подходит если:&lt;/strong&gt; У вас только простые playbook&amp;rsquo;и (ansible-lint может быть достаточно)
&lt;strong&gt;Время чтения:&lt;/strong&gt; 20 минут&lt;/p&gt;</description></item><item><title>Тестирование API Gateway</title><link>https://yrkan.com/ru/course/module-10-networking/api-gateway-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-10-networking/api-gateway-testing/</guid><description>&lt;h2 id="понимание-темы-api-gateway"&gt;Понимание темы: API Gateway &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d0%bc%d1%8b-api-gateway" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Этот урок охватывает api gateway с точки зрения QA-инженерии. Эти концепции помогают быстрее диагностировать проблемы и эффективно общаться с сетевыми инженерами и DevOps.&lt;/p&gt;
&lt;h3 id="почему-это-важно-для-qa"&gt;Почему это важно для QA &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%8d%d1%82%d0%be-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Сетевые проблемы — значительная доля трудновоспроизводимых продакшен-багов. QA-инженеры, понимающие api gateway, могут определить коренную причину вместо отметки «не воспроизводится».&lt;/p&gt;
&lt;h3 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Концепции api gateway напрямую влияют на поведение приложений в продакшене, определяя дизайн тестов и анализ отказов.&lt;/p&gt;</description></item><item><title>Тестирование AWS Инфраструктуры с LocalStack: Локальная Разработка и CI</title><link>https://yrkan.com/ru/blog/aws-infrastructure-testing-localstack/</link><pubDate>Sat, 17 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/aws-infrastructure-testing-localstack/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LocalStack эмулирует 80+ AWS сервисов локально — тестируйте S3, Lambda, DynamoDB без облачных затрат&lt;/li&gt;
&lt;li&gt;Используйте LocalStack для быстрой итерации и CI; используйте реальный AWS для интеграционных тестов перед продакшном&lt;/li&gt;
&lt;li&gt;Ошибка #1: относиться к LocalStack как к эквиваленту продакшна (это для тестирования, не 100% паритет)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд с AWS инфраструктурой которые хотят более быстрые циклы обратной связи и меньшие затраты на CI
&lt;strong&gt;Пропустите, если:&lt;/strong&gt; Вам нужны точные гарантии поведения AWS или вы используете сервисы которые LocalStack не поддерживает
&lt;strong&gt;Время чтения:&lt;/strong&gt; 10 минут&lt;/p&gt;</description></item><item><title>Тестирование Backup и Disaster Recovery: Автоматизированная Валидация RTO/RPO с AWS, Azure и Terraform</title><link>https://yrkan.com/ru/blog/backup-disaster-recovery-testing/</link><pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/backup-disaster-recovery-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Используйте AWS Backup restore testing для автоматической валидации соответствия бэкапов целям RTO/RPO—непротестированные бэкапы не являются бэкапами&lt;/li&gt;
&lt;li&gt;Автоматизируйте DR тестирование с Terraform: поднимайте инфраструктуру восстановления, валидируйте функциональность, уничтожайте—платите только за время теста&lt;/li&gt;
&lt;li&gt;Тестируйте процедуры восстановления минимум ежеквартально; документируйте каждый шаг и поручайте восстановление персоналу, который не писал документацию&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Идеально для:&lt;/strong&gt; Команд с production workloads, требующими документированных возможностей восстановления и compliance требований
&lt;strong&gt;Не подходит если:&lt;/strong&gt; Вы запускаете stateless приложения без persistent данных (просто передеплойте из IaC)
&lt;strong&gt;Время чтения:&lt;/strong&gt; 15 минут&lt;/p&gt;</description></item><item><title>Тестирование Blue-Green Развертываний: Полное Руководство для DevOps Команд</title><link>https://yrkan.com/ru/blog/blue-green-deployment-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/blue-green-deployment-testing/</guid><description>&lt;p&gt;Тестирование Blue-Green Развертываний: Полное Руководство для DevOps Команд — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to the 2024 DORA report, organizations with high DevOps maturity have 4x lower change failure rates (DORA State of DevOps 2024). According to Puppet&amp;rsquo;s State of DevOps report, high-performing DevOps teams spend 44% less time on unplanned work (Puppet State of DevOps). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Тестирование Certificate Pinning в Мобильных Приложениях: Валидация SSL/TLS, Защита от MITM и Ротация Pin'ов</title><link>https://yrkan.com/ru/blog/certificate-pinning-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/certificate-pinning-testing/</guid><description>&lt;p&gt;Тестирование Certificate Pinning в Мобильных Приложениях: Валидация SSL/TLS, Защита от MITM и Ротация Pin&amp;rsquo;ов — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to IBM&amp;rsquo;s Cost of a Data Breach Report 2024, the global average cost of a data breach reached $4.88 million (IBM Cost of a Data Breach 2024). According to OWASP, injection vulnerabilities and broken authentication remain in the top 10 web application security risks (OWASP Top 10). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Тестирование CI/CD Микросервисов: Полное Руководство для DevOps Команд</title><link>https://yrkan.com/ru/blog/microservices-ci-cd-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/microservices-ci-cd-testing/</guid><description>&lt;p&gt;В 2024 году 78% предприятий перешли на микросервисную архитектуру, но 64% сообщили о трудностях с тестированием в CI/CD-пайплайнах — по данным отчёта DORA State of DevOps. Переход от монолитов к распределённым системам фундаментально изменил то, как команды тестируют приложения. Один пользовательский запрос может вызывать от 15 до 20 вызовов нижестоящих сервисов. Netflix запускает более 5000 контрактных тестов при каждом коммите, что позволяет независимо деплоить сервисы без регрессий. Это руководство охватывает построение многоуровневой стратегии тестирования и реализацию CI/CD-пайплайнов для автоматизированного тестирования микросервисов.&lt;/p&gt;</description></item><item><title>Тестирование Edge AI: Валидация ИИ на Устройствах с Ограниченными Ресурсами</title><link>https://yrkan.com/ru/blog/edge-ai-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/edge-ai-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Тестирование edge AI проверяет производительность AI-моделей на устройствах с ограниченными ресурсами. Тестируй задержку инференса, снижение точности при квантизации, использование памяти и энергопотребление.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="вызов-edge-ai"&gt;Вызов Edge AI &lt;a href="#%d0%b2%d1%8b%d0%b7%d0%be%d0%b2-edge-ai" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Edge AI развертывает модели машинного обучения непосредственно на устройствах—смартфонах, IoT сенсорах, автономных транспортных средствах, умных камерах. В отличие от облачного AI (как обсуждается в &lt;a href="https://yrkan.com/ru/blog/ai-bug-triaging"&gt;AI-Assisted Bug Triaging: Intelligent Defect Prioritization at Scale&lt;/a&gt;), edge модели сталкиваются с суровыми ограничениями: ограниченный CPU/GPU, минимальная память, питание от батареи и требования латентности реального времени.&lt;/p&gt;</description></item><item><title>Тестирование Feature Flags в CI/CD: Полное Руководство по Реализации</title><link>https://yrkan.com/ru/blog/feature-flag-testing-in-ci-cd/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/feature-flag-testing-in-ci-cd/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Тестируй оба пути кода: флаг включён и выключен — каждый фича-флаг удваивает возможные состояния системы&lt;/li&gt;
&lt;li&gt;Используй попарное/комбинаторное тестирование для покрытия взаимодействий флагов без перебора 2^N комбинаций&lt;/li&gt;
&lt;li&gt;Внедри политики жизненного цикла флагов (максимум 90 дней) и автоматическую очистку в CI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; DevOps и QA-команд, использующих фича-флаги с LaunchDarkly, Unleash или собственными решениями
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; В твоём процессе деплоя нет фича-флагов или переключателей для релизов&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;В 2024 году 82% команд разработки приняли фича-флаги для управления развёртыванием, однако только 37% реализовали комплексные стратегии тестирования помеченных функций, по данным опроса LaunchDarkly Feature Management Survey. Команды, выпускающие код за флагами без тестирования обоих путей, испытывают в 3 раза больше производственных инцидентов, чем команды со структурированным тестированием флагов — по данным DORA State of DevOps 2024. Фича-флаги разделяют развёртывание и выпуск — GitLab использует более 300 флагов в продакшне — но каждый флаг удваивает пути кода, которые нужно покрыть тестами. При 10 флагах возможны 1024 конфигурации. Решение — не исчерпывающее тестирование комбинаций, а тестирование на основе рисков: определите критические пути, протестируйте граничные условия взаимодействия флагов и внедрите автоматические CI/CD-ворота для проверки переходов флагов.&lt;/p&gt;</description></item><item><title>Тестирование GraphQL: Полное руководство с примерами</title><link>https://yrkan.com/ru/blog/graphql-testing-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/graphql-testing-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Тестирование GraphQL&lt;/strong&gt;: Валидация запросов, мутаций, подписок и схемы на едином endpoint&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевое отличие от REST&lt;/strong&gt;: HTTP 200 не означает успех — всегда проверяй поле &lt;code&gt;errors&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Критичные тесты&lt;/strong&gt;: Валидация схемы, авторизация на уровне полей, лимиты сложности, обнаружение N+1&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Инструменты&lt;/strong&gt;: Apollo MockedProvider, Jest, MSW, Insomnia, k6&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;State of JS 2024&lt;/strong&gt;: GraphQL используют 44% опрошенных разработчиков; рост 8% год к году&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Лучшая практика&lt;/strong&gt;: Проверяй изменения схемы на breaking changes перед деплоем&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 14 минут&lt;/p&gt;</description></item><item><title>Тестирование gRPC: Полное руководство по тестированию RPC API</title><link>https://yrkan.com/ru/blog/grpc-api-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/grpc-api-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Тестирование gRPC API требует проверки схем protocol buffer на обратную совместимость, валидации унарных и потоковых RPC-вызовов и тестирования обработки ошибок с кодами статуса gRPC. Используйте grpcurl для CLI-тестирования, buf lint для валидации схем и моки для юнит-тестов.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;gRPC используют Netflix, Google, Uber и более 1 миллиона проектов на GitHub для высокопроизводительной межсервисной коммуникации, согласно статистике проекта gRPC на GitHub. Его сериализация protocol buffer обеспечивает сообщения в 5-10 раз меньшего размера, чем REST/JSON, а двунаправленный стриминг поддерживает паттерны реального времени, которые REST не может нативно поддержать. Тестирование gRPC API представляет уникальные задачи: бинарные protocol buffer требуют специальных инструментов, потоковые RPC нуждаются в валидации последовательности, а эволюция схем должна сохранять обратную совместимость. По данным SmartBear State of API Testing, использование gRPC выросло на 67% в 2024 году. В этом руководстве рассматривается полный инструментарий тестирования gRPC: валидация proto-схем, тестирование унарных и потоковых RPC, валидация обработки ошибок и стратегии мокирования для юнит-тестов.&lt;/p&gt;</description></item><item><title>Тестирование IAM Политик: Автоматизированная Валидация с Access Analyzer, Checkov и Симуляторами Политик</title><link>https://yrkan.com/ru/blog/iam-policy-testing/</link><pubDate>Tue, 20 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/iam-policy-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Неправильно настроенные политики IAM ответственны за 74% взломов облачной безопасности, согласно Verizon Data Breach Investigations Report 2024. Чрезмерно разрешительные роли создают пути повышения привилегий, которые используют злоумышленники. Тестирование политик IAM требует систематического подхода: проверка каждого разрешения на соответствие принципу наименьших привилегий, проверка подстановочных знаков на чувствительных действиях и тестирование сценариев повышения привилегий, таких как комбинация &amp;ldquo;iam:CreateRole + iam:AttachRolePolicy&amp;rdquo;. По данным AWS Security Best Practices, команды с автоматизированным тестированием политик IAM обнаруживают 85% неправильных конфигураций разрешений в CI/CD. В этом руководстве рассматривается полная стратегия тестирования политик IAM для AWS, Azure и GCP.&lt;/p&gt;</description></item><item><title>Тестирование Infrastructure as Code: Полное руководство по валидации</title><link>https://yrkan.com/ru/blog/infrastructure-as-code-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/infrastructure-as-code-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Тестирование IaC использует пирамидный подход: юнит-тесты (Checkov/tfsec для политик, terraform validate для синтаксиса), интеграционные тесты (Terratest с реальными ресурсами) и end-to-end валидация. Стремитесь к 70% юнит-тестов для обнаружения 85% неправильных конфигураций.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Infrastructure as Code (IaC) революционизировал то, как мы провижионим и управляем инфраструктурой, относясь к конфигурации инфраструктуры как к программному обеспечению. Точно так же, как мы тестируем код приложений, IaC требует тщательного тестирования для предотвращения дорогостоящих ошибок, уязвимостей безопасности и перебоев в работе сервисов. Единственное непротестированное изменение инфраструктуры может обрушить продакшн-системы, скомпрометировать безопасность или сгенерировать неожиданные расходы на облако.&lt;/p&gt;</description></item><item><title>Тестирование IPv4 и IPv6</title><link>https://yrkan.com/ru/course/module-10-networking/ipv4-vs-ipv6/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-10-networking/ipv4-vs-ipv6/</guid><description>&lt;h2 id="понимание-темы-ipv4-и-ipv6"&gt;Понимание темы: IPv4 и IPv6 &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d0%bc%d1%8b-ipv4-%d0%b8-ipv6" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Этот урок охватывает ipv4 и ipv6 с точки зрения QA-инженерии. Эти концепции помогают быстрее диагностировать проблемы и эффективно общаться с сетевыми инженерами и DevOps.&lt;/p&gt;
&lt;h3 id="почему-это-важно-для-qa"&gt;Почему это важно для QA &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%8d%d1%82%d0%be-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Сетевые проблемы — значительная доля трудновоспроизводимых продакшен-багов. QA-инженеры, понимающие ipv4 и ipv6, могут определить коренную причину вместо отметки «не воспроизводится».&lt;/p&gt;
&lt;h3 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Концепции ipv4 и ipv6 напрямую влияют на поведение приложений в продакшене, определяя дизайн тестов и анализ отказов.&lt;/p&gt;</description></item><item><title>Тестирование Jetpack Compose: Полное Руководство по UI Тестированию в Современном Android</title><link>https://yrkan.com/ru/blog/jetpack-compose-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/jetpack-compose-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Тестирование Jetpack Compose использует ComposeTestRule для взаимодействия с деревьями семантики UI без полного Android-фреймворка. Compose-тесты работают в 3 раза быстрее аналогов Espresso, используйте createComposeRule() для изолированных тестов компонентов.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Jetpack Compose используется в 40% новых Android-приложений, согласно JetBrains Developer Ecosystem 2024, и его тестовая инфраструктура — значительное улучшение по сравнению с Espresso. Compose-тесты взаимодействуют с деревом семантики, а не с реальным UI, обеспечивая выполнение в 3 раза быстрее без Android-эмулятора. Команды, принявшие тестирование Compose, сообщают о 60% сокращении затрат на обслуживание тестов при рефакторинге UI-компонентов. ComposeTestRule синхронизирует ожидание завершения анимаций и рекомпозиций, устраняя нестабильность, характерную для Espresso.&lt;/p&gt;</description></item><item><title>Тестирование Mobile Backend as a Service (MBaaS): Firebase, AWS Amplify и Supabase</title><link>https://yrkan.com/ru/blog/mbaas-testing-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/mbaas-testing-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MBaaS-тестирование&lt;/strong&gt;: требует SDK-уровневой валидации, а не простого HTTP-моккинга&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Основные инструменты&lt;/strong&gt;: Firebase Emulator Suite, Amplify Mock, Supabase local&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Критические области&lt;/strong&gt;: real-time слушатели, offline-персистентность, управляемая аутентификация&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Уровни тестов&lt;/strong&gt;: Unit (mock SDK) → Интеграция (эмуляторы) → E2E (staging MBaaS)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Лучшая практика&lt;/strong&gt;: уникальные префиксы тестовых данных и очистка в &lt;code&gt;@After&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CI/CD&lt;/strong&gt;: запускай эмуляторы как GitHub Actions сервисы для автоматизированных MBaaS-тестов&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Платформы Mobile Backend as a Service (MBaaS) кардинально изменили разработку мобильных приложений — мировой рынок MBaaS оценивался в более чем $11 млрд в 2023 году и, по прогнозам, растёт на 27% ежегодно до 2030 года. По данным Google, Firebase обслуживает свыше 3 миллионов активных приложений, обрабатывая миллиарды событий аутентификации ежемесячно. Исследования AWS показывают, что команды, использующие управляемые backend-сервисы, сокращают время разработки backend на 40-60%, но нагрузка на тестирование смещается: теперь нужно валидировать real-time слушателей, offline-персистентность, управляемые потоки аутентификации и поведение на уровне SDK — то, что стандартный HTTP-моккинг просто не способен воспроизвести. Это руководство охватывает практические стратегии тестирования Firebase, AWS Amplify и Supabase с помощью локальных эмуляторов и интеграционных тестов, которые ловят тонкие сбои до того, как они доберутся до production-пользователей.&lt;/p&gt;</description></item><item><title>Тестирование Multi-Cloud Инфраструктуры: Стратегии для AWS, Azure и GCP</title><link>https://yrkan.com/ru/blog/multi-cloud-infrastructure-testing/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/multi-cloud-infrastructure-testing/</guid><description>&lt;p&gt;Мульти-облачная инфраструктура стала стандартной стратегией для корпоративной отказоустойчивости. По данным Flexera 2024 State of the Cloud Report, 87% организаций имеют мульти-облачную стратегию, используя в среднем 2,6 публичных облака. По данным исследования IDC, организации со зрелыми практиками тестирования мульти-облака видят на 40% меньше сбоев, связанных с изменениями инфраструктуры. Проблема тестирования существенна: AWS, Azure и GCP имеют разные модели сетевого взаимодействия, системы IAM и поведение управляемых сервисов. Это руководство охватывает стратегии тестирования мульти-облачных сред.&lt;/p&gt;</description></item><item><title>Тестирование OAuth 2.0 и JWT в Мобильных Приложениях: Обновление Токенов, Биометрическая Аутентификация и Валидация Безопасности</title><link>https://yrkan.com/ru/blog/oauth-jwt-mobile-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/oauth-jwt-mobile-testing/</guid><description>&lt;p&gt;OAuth 2.0 и JWT — доминирующие паттерны для защиты мобильных API, но их правильное тестирование требует специализированных знаний о жизненном цикле токенов и граничных случаях безопасности. По данным OWASP API Security Top 10 2023, нарушенная аутентификация и авторизация остаются главными уязвимостями в API, а недостатки реализации JWT напрямую ответственны за громкие утечки данных. По данным исследования Auth0 (теперь Okta), 63% мобильных приложений имеют как минимум одну уязвимость аутентификации в коде обработки токенов. Для QA-инженеров тестирование OAuth/JWT означает проверку полного жизненного цикла токенов.&lt;/p&gt;</description></item><item><title>Тестирование Policy as Code: OPA vs Sentinel в 2026</title><link>https://yrkan.com/ru/blog/policy-as-code-testing-opa-sentinel/</link><pubDate>Mon, 12 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/policy-as-code-testing-opa-sentinel/</guid><description>&lt;p&gt;Policy as code трансформирует правила соответствия и управления из документов в исполняемые, тестируемые артефакты, которые могут автоматически применяться в инфраструктуре. По данным HashiCorp State of Cloud Strategy 2023, 76% организаций испытывали нарушения политик облачной инфраструктуры, и ручная проверка политик называется главной проблемой соответствия. По данным Gartner, организации, использующие инструменты policy as code, сокращают инциденты нарушения политик до 60% по сравнению с ручным применением. OPA (Open Policy Agent) и Sentinel (HashiCorp) — два доминирующих фреймворка policy as code.&lt;/p&gt;</description></item><item><title>Тестирование Policy as Code: Полное руководство по OPA и Sentinel</title><link>https://yrkan.com/ru/blog/policy-as-code-testing/</link><pubDate>Sun, 18 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/policy-as-code-testing/</guid><description>&lt;p&gt;Policy as code — это практика определения, версионирования и автоматического применения правил управления через код, а не ручную документацию и проверку. По данным опроса CNCF 2024, 67% организаций, использующих Kubernetes, теперь применяют policy as code для контроля допуска, по сравнению с 28% в 2021 году. По данным исследования HashiCorp, команды с автоматическим применением политик разрешают нарушения соответствия в 10 раз быстрее, чем те, кто полагается на ручные циклы аудита. Для QA-инженеров policy as code означает тестирование инфраструктуры так же, как тестирование кода приложения.&lt;/p&gt;</description></item><item><title>Тестирование Push-уведомлений: Полное Руководство по Валидации FCM и APNs</title><link>https://yrkan.com/ru/blog/push-notifications-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/push-notifications-testing/</guid><description>&lt;p&gt;Push-уведомления — основа коммуникации в реальном времени в мобильных приложениях, но их сложно тестировать из-за зависимости от платформенной инфраструктуры (Firebase Cloud Messaging для Android, Apple Push Notification Service для iOS). По данным Firebase, push-уведомления имеют средний показатель доставки 85-90% при правильной реализации, однако плохо протестированные реализации могут давать показатели ниже 40% из-за неверных форматов полезной нагрузки и проблем управления токенами. По данным исследования Airship 2023 года, мобильные приложения с правильно протестированными стратегиями push-уведомлений имеют в 3-4 раза более высокие показатели вовлечённости пользователей по сравнению с теми, у кого ненадёжная доставка уведомлений. Это руководство охватывает комплексные стратегии тестирования интеграций FCM и APNs.&lt;/p&gt;</description></item><item><title>Тестирование Rate Limiting API: Throttling и стратегии Backoff</title><link>https://yrkan.com/ru/blog/api-rate-limiting-testing/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/api-rate-limiting-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Всегда проверяйте, что ответы 429 содержат заголовки &lt;code&gt;Retry-After&lt;/code&gt; и &lt;code&gt;X-RateLimit-*&lt;/code&gt;—клиенты зависят от них для правильного backoff&lt;/li&gt;
&lt;li&gt;Token bucket позволяет всплески, sliding window строже—выбирайте на основе паттерна трафика вашего API&lt;/li&gt;
&lt;li&gt;Реализуйте экспоненциальный backoff с jitter на клиентах для предотвращения эффекта стада после сброса rate limit&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; API с публичным доступом, multi-tenant системы, микросервисы, защищающие общие ресурсы&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Пропустить если:&lt;/strong&gt; Только внутренние API с доверенными клиентами, фаза прототипирования&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 20 минут&lt;/p&gt;</description></item><item><title>Тестирование Security Groups: Валидация AWS Security Groups, Azure NSGs и Правил Firewall GCP</title><link>https://yrkan.com/ru/blog/security-group-testing/</link><pubDate>Mon, 19 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/security-group-testing/</guid><description>&lt;p&gt;Тестирование групп безопасности — практика автоматической проверки правил брандмауэра облака для обеспечения принципа наименьших привилегий и соответствия политикам безопасности организации. По данным отчёта Verizon Data Breach Investigations Report 2023, неправильная конфигурация является ведущей причиной утечек данных в облаке, при этом 21% инцидентов связаны с неправильно настроенными облачными ресурсами, включая группы безопасности. По данным исследования Palo Alto Networks, 65% организаций имеют хотя бы один облачный ресурс с чрезмерно разрешительной группой безопасности, допускающей неограниченный входящий доступ. Автоматизированное тестирование групп безопасности с Checkov, InSpec и встроенными возможностями тестирования Terraform предотвращает неправильные конфигурации.&lt;/p&gt;</description></item><item><title>Тестирование Service Mesh: Руководство по тестированию Istio и Linkerd</title><link>https://yrkan.com/ru/blog/service-mesh-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/service-mesh-testing/</guid><description>&lt;p&gt;Service mesh стали ключевыми компонентами инфраструктуры для коммуникации микросервисов. По данным ежегодного опроса CNCF 2024, 42% production-развёртываний Kubernetes включают service mesh, причём Istio занимает 64% доли рынка среди пользователей mesh, а Linkerd — 27%. В отличие от тестирования на уровне приложений, тестирование service mesh проверяет поведение плоскости управления: политики маршрутизации трафика, circuit breakers, логику повторов, конфигурации mTLS и инъекцию ошибок, чтобы убедиться, что паттерны отказоустойчивости работают именно так, как настроено. Неправильно настроенная политика повторов может каскадно распространить сбои по десяткам сервисов; неверный таймаут — привести к цепочке каскадных таймаутов. Это руководство охватывает практические стратегии тестирования для Istio и Linkerd, включая локальный Kubernetes с kind, валидацию маршрутизации трафика, тестирование circuit breaker, проверку наблюдаемости и инъекцию ошибок для хаос-инжиниринга.&lt;/p&gt;</description></item><item><title>Тестирование SSL/TLS</title><link>https://yrkan.com/ru/course/module-10-networking/ssl-tls-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-10-networking/ssl-tls-testing/</guid><description>&lt;h2 id="основы-tls"&gt;Основы TLS &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d1%8b-tls" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Transport Layer Security (TLS) — протокол, который ставит «S» в HTTPS. Он обеспечивает шифрование, аутентификацию и целостность данных. Для QA-инженеров понимание TLS необходимо: неправильно настроенные сертификаты вызывают сбои, заголовки безопасности предотвращают атаки, а смешанный контент ломает функциональность.&lt;/p&gt;
&lt;h3 id="tls-12-vs-tls-13"&gt;TLS 1.2 vs TLS 1.3 &lt;a href="#tls-12-vs-tls-13" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Характеристика&lt;/th&gt;
 &lt;th&gt;TLS 1.2&lt;/th&gt;
 &lt;th&gt;TLS 1.3&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Рукопожатие&lt;/td&gt;
 &lt;td&gt;2 round-trip&lt;/td&gt;
 &lt;td&gt;1 round-trip&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;0-RTT&lt;/td&gt;
 &lt;td&gt;Не поддерживается&lt;/td&gt;
 &lt;td&gt;Поддерживается&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Cipher suites&lt;/td&gt;
 &lt;td&gt;Много (включая слабые)&lt;/td&gt;
 &lt;td&gt;Только 5 сильных&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Forward secrecy&lt;/td&gt;
 &lt;td&gt;Опционально&lt;/td&gt;
 &lt;td&gt;Обязательно&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Рукопожатие TLS 1.3 быстрее и проще. Клиент отправляет свою долю ключа в первом сообщении, позволяя серверу немедленно вывести ключ шифрования.&lt;/p&gt;</description></item><item><title>Тестирование VPN</title><link>https://yrkan.com/ru/course/module-10-networking/vpn-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-10-networking/vpn-testing/</guid><description>&lt;h2 id="понимание-темы-vpn"&gt;Понимание темы: VPN &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d0%bc%d1%8b-vpn" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Этот урок охватывает vpn с точки зрения QA-инженерии. Эти концепции помогают быстрее диагностировать проблемы и эффективно общаться с сетевыми инженерами и DevOps.&lt;/p&gt;
&lt;h3 id="почему-это-важно-для-qa"&gt;Почему это важно для QA &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%8d%d1%82%d0%be-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Сетевые проблемы — значительная доля трудновоспроизводимых продакшен-багов. QA-инженеры, понимающие vpn, могут определить коренную причину вместо отметки «не воспроизводится».&lt;/p&gt;
&lt;h3 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Концепции vpn напрямую влияют на поведение приложений в продакшене, определяя дизайн тестов и анализ отказов.&lt;/p&gt;
&lt;h2 id="инструменты-и-техники"&gt;Инструменты и техники &lt;a href="#%d0%b8%d0%bd%d1%81%d1%82%d1%80%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d1%8b-%d0%b8-%d1%82%d0%b5%d1%85%d0%bd%d0%b8%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Основные инструменты: ping, traceroute, nslookup, speed test.&lt;/p&gt;</description></item><item><title>Тестирование WebSocket для Мобильных Приложений Реального Времени: Стабильность Соединения, Порядок Сообщений и Оптимизация Батареи</title><link>https://yrkan.com/ru/blog/websocket-mobile-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/websocket-mobile-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Тестирование WebSocket в мобильных приложениях требует проверки стабильности соединения, порядка сообщений, логики переподключения и влияния на батарею. Используй Charles Proxy/mitmproxy для инспекции сообщений, симуляторы сети для сценариев сбоев и mock WebSocket-серверы для юнит-тестирования.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Тестирование WebSocket для мобильных приложений представляет уникальные задачи, выходящие за рамки типичного тестирования REST API, потому что соединения WebSocket постоянные, двунаправленные и с состоянием. According to the 2024 State of Real-Time Technology survey by Ably, 67% мобильных приложений теперь зависят от доставки данных в реальном времени, причём WebSocket является доминирующим протоколом. According to SmartBear&amp;rsquo;s State of API 2024, тестирование WebSocket считается наиболее сложным API-тестированием у 43% мобильных разработчиков из-за сложности жизненного цикла соединения. Мобильно-специфические факторы усложняют тестирование: переходы между WiFi и сотовой сетью, управление фоновыми процессами ОС, системы оптимизации батареи и переменная задержка. Соединение WebSocket, идеально работающее в лабораторных условиях, может молча дать сбой при переходе устройства с WiFi на LTE в критический момент — без правильного тестирования эта ошибка проявится только в продакшне. Исследования показывают, что 78% таких сбоев происходят именно при смене типа сети, а не при полной потере сигнала. Это руководство охватывает валидацию жизненного цикла соединения, порядок сообщений, поведение при переподключении и симуляцию условий сети.&lt;/p&gt;</description></item><item><title>Тестирование балансировщиков и CDN</title><link>https://yrkan.com/ru/course/module-10-networking/load-balancer-cdn-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-10-networking/load-balancer-cdn-testing/</guid><description>&lt;h2 id="понимание-темы-балансировщики-и-cdn"&gt;Понимание темы: Балансировщики и CDN &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d0%bc%d1%8b-%d0%b1%d0%b0%d0%bb%d0%b0%d0%bd%d1%81%d0%b8%d1%80%d0%be%d0%b2%d1%89%d0%b8%d0%ba%d0%b8-%d0%b8-cdn" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Этот урок охватывает балансировщики и cdn с точки зрения QA-инженерии. Эти концепции помогают быстрее диагностировать проблемы и эффективно общаться с сетевыми инженерами и DevOps.&lt;/p&gt;
&lt;h3 id="почему-это-важно-для-qa"&gt;Почему это важно для QA &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%8d%d1%82%d0%be-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Сетевые проблемы — значительная доля трудновоспроизводимых продакшен-багов. QA-инженеры, понимающие балансировщики и cdn, могут определить коренную причину вместо отметки «не воспроизводится».&lt;/p&gt;
&lt;h3 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Концепции балансировщики и cdn напрямую влияют на поведение приложений в продакшене, определяя дизайн тестов и анализ отказов.&lt;/p&gt;</description></item><item><title>Тестирование Безопасности с ИИ: Быстрый Поиск Уязвимостей</title><link>https://yrkan.com/ru/blog/ai-security-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ai-security-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Тестирование безопасности с ИИ находит &lt;strong&gt;в 3 раза больше уязвимостей&lt;/strong&gt;, чем ручное тестирование, снижая ложные срабатывания на &lt;strong&gt;80%&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;ML-управляемый фаззинг обнаруживает критические уязвимости &lt;strong&gt;на 60% быстрее&lt;/strong&gt;, чем традиционные подходы случайной мутации&lt;/li&gt;
&lt;li&gt;Автоматизированный пентестинг снижает затраты на оценку безопасности на &lt;strong&gt;50%&lt;/strong&gt;, обеспечивая непрерывное покрытие&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Организаций с &amp;gt;50 endpoint-ами приложений, команд с еженедельными+ релизами, регулируемых отраслей, требующих аудитов безопасности
&lt;strong&gt;Не подходит если:&lt;/strong&gt; Простые статические сайты, нет обработки чувствительных данных, бюджет менее $10k/год на инструменты безопасности
&lt;strong&gt;Время чтения:&lt;/strong&gt; 16 минут&lt;/p&gt;</description></item><item><title>Тестирование Белого Ящика: Заглядываем Внутрь Кода</title><link>https://yrkan.com/ru/blog/white-box-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/white-box-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Тестирование белого ящика исследует внутреннюю структуру кода через метрики покрытия: операторов, ветвей, путей и условий. Требует знания программирования и доступа к исходникам. Лучше всего подходит для юнит-тестов, тестирования безопасности и валидации алгоритмов. Цель: 80%+ покрытие операторов, 70%+ покрытие ветвей.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Тестирование белого ящика — это техника верификации кода, при которой тестировщики и разработчики изучают внутреннюю структуру, логику и алгоритмы приложения для проектирования полноценных тест-кейсов. В отличие от тестирования чёрного ящика, которое фокусируется на входах и выходах, white box testing — или структурное тестирование — требует доступа к исходному коду и знания программирования. Согласно отчёту NIST 2023 года, 64% уязвимостей, обнаруженных в продакшене, могли бы быть найдены раньше при тщательном структурном тестировании на этапе разработки. По данным Google Site Reliability Engineering, команды с покрытием ветвей более 70% сталкиваются с 40% меньше инцидентов в продакшене, связанных с логическими ошибками. Основные техники: покрытие операторов, покрытие ветвей, покрытие путей и анализ потока данных — каждая выявляет разные категории дефектов.&lt;/p&gt;</description></item><item><title>Тестирование в Agile: QA в Scrum-командах</title><link>https://yrkan.com/ru/blog/testing-in-agile/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/testing-in-agile/</guid><description>&lt;p&gt;По данным DORA 2024 State of DevOps Report, элитные команды, полностью интегрировавшие Agile и практики непрерывного тестирования, деплоят &lt;strong&gt;в 182 раза чаще&lt;/strong&gt; и восстанавливаются после сбоев &lt;strong&gt;в 2604 раза быстрее&lt;/strong&gt;, чем низкоэффективные организации. Исследование World Quality Report 2024 показало, что команды, практикующие shift-left тестирование (участие QA с планирования спринта), обнаруживают &lt;strong&gt;в 3 раза больше дефектов до завершения фичи&lt;/strong&gt; и тратят &lt;strong&gt;на 40% меньше времени на цикл исправления багов&lt;/strong&gt; по сравнению с командами, тестирующими после разработки. В Scrum QA — это уже не вратарь в конце водопада, а встроенная роль: тестировщики участвуют в рефайнменте историй, пишут критерии приёмки, работают в паре с разработчиками над дизайном тестов и непрерывно автоматизируют регрессию. По данным Gartner 2024, организации, сохраняющие выделенную фазу тестирования после разработки, имеют в 2.5 раза больший процент ускользнувших дефектов.&lt;/p&gt;</description></item><item><title>Тестирование Голосовых Интерфейсов: QA для Эры Разговоров</title><link>https://yrkan.com/ru/blog/voice-interface-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/voice-interface-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Тестирование голосовых интерфейсов проверяет распознавание речи, классификацию намерений, поток диалогов и поддержку нескольких языков. Тестируй с разными акцентами, акустическими условиями и контекстами разговора. Используй симуляторы платформ для CI/CD и тестирование на реальных устройствах перед выпуском.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Тестирование голосовых интерфейсов решает задачи одного из наиболее быстро растущих сегментов взаимодействия человека с компьютером. According to the Voicebot.ai 2024 Voice Assistant Consumer Adoption Report, 145 миллионов взрослых жителей США ежемесячно используют голосовые ассистенты. According to Gartner&amp;rsquo;s 2024 forecast, к 2026 году 30% всех взаимодействий с приложениями будут происходить через голосовые интерфейсы, что делает их тестирование критически важным навыком для QA-команд. Голосовые интерфейсы вводят проблемы тестирования, принципиально отличающиеся от тестирования визуального UI: точность распознавания речи, классификация намерений, управление состоянием диалога, обработка многоходовых разговоров, акустическая вариабельность (акценты, фоновый шум) и поддержка нескольких языков требуют специализированных подходов. По данным опросов разработчиков, 68% команд, работающих с голосовыми интерфейсами, используют нестандартные методы тестирования из-за отсутствия специализированных инструментов. Это руководство охватывает тестирование голосовых интерфейсов от валидации базовых высказываний до стратегий мониторинга в продакшне.&lt;/p&gt;</description></item><item><title>Тестирование и безопасность Docker-образов: Полное руководство по сканированию уязвимостей контейнеров</title><link>https://yrkan.com/ru/blog/docker-image-testing-and-security/</link><pubDate>Sat, 24 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/docker-image-testing-and-security/</guid><description>&lt;h2 id="tldr"&gt;TL;DR &lt;a href="#tldr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Что:&lt;/strong&gt; Сканирование Docker-образов на уязвимости, ошибки конфигурации и секреты перед деплоем&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Зачем:&lt;/strong&gt; 87% образов контейнеров содержат как минимум одну уязвимость высокой критичности&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Инструменты:&lt;/strong&gt; Trivy (быстрейший, бесплатный), Snyk (лучшая ремедиация), Grype (лёгкий)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевая метрика:&lt;/strong&gt; Ноль критических/высоких уязвимостей в продакшен-образах&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Начните здесь:&lt;/strong&gt; Добавьте &lt;code&gt;trivy image ваш-образ:tag&lt;/code&gt; в ваш CI-пайплайн сегодня&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Безопасность контейнеров — это не разовое сканирование, а непрерывный процесс. Базовый образ, чистый сегодня, будет иметь новые CVE на следующей неделе. Автоматизируй обновления с Dependabot и сканируй каждый PR.&amp;rdquo; — Yuri Kan, Senior QA Lead&lt;/p&gt;</description></item><item><title>Тестирование инфраструктуры AWS: Полное руководство по Terraform, LocalStack и Terratest</title><link>https://yrkan.com/ru/blog/aws-infrastructure-testing/</link><pubDate>Thu, 22 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/aws-infrastructure-testing/</guid><description>&lt;p&gt;Тестирование инфраструктуры AWS: Полное руководство по Terraform, LocalStack и Terratest — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to Gartner, worldwide cloud spending will exceed $1 trillion by 2025, making cloud testing skills essential (Gartner Cloud Forecast). According to HashiCorp&amp;rsquo;s 2024 State of Cloud Strategy survey, 78% of organizations use a multi-cloud strategy (HashiCorp State of Cloud 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Тестирование инфраструктуры Azure: Terraform, Bicep и локальная эмуляция</title><link>https://yrkan.com/ru/blog/azure-infrastructure-testing/</link><pubDate>Sun, 18 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/azure-infrastructure-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Azure предоставляет deployment what-if для предварительной валидации — используйте в CI перед каждым apply&lt;/li&gt;
&lt;li&gt;Azurite эмулирует Storage, Queues и Tables локально — быстрее реального Azure для storage-тестов&lt;/li&gt;
&lt;li&gt;Ошибка #1: пропуск тестирования Azure Policy до тех пор, пока деплой не упадёт в продакшене&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд, деплоящих в Azure с Terraform, Bicep или ARM templates
&lt;strong&gt;Пропустить если:&lt;/strong&gt; Вы только на AWS/GCP или используете Azure PaaS без инфраструктурного кода
&lt;strong&gt;Время чтения:&lt;/strong&gt; 10 минут&lt;/p&gt;</description></item><item><title>Тестирование Инфраструктуры GCP: Terratest, Config Validator и Policy Library для Google Cloud</title><link>https://yrkan.com/ru/blog/gcp-infrastructure-testing/</link><pubDate>Sat, 17 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/gcp-infrastructure-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Google Cloud Platform обслуживает 9% мировых облачных нагрузок, и неправильная конфигурация инфраструктуры ответственна за 65% инцидентов безопасности в облаке, согласно Gartner Cloud Security Report 2024. Тестирование инфраструктуры GCP предотвращает эти инциденты путём проверки модулей Terraform, политик IAM и конфигураций сети до попадания в продакшн. В отличие от тестирования приложений, тестирование инфраструктуры требует реальных облачных ресурсов: юнит-тест для кластера GKE должен фактически создать кластер, проверить его конфигурацию и уничтожить — Terratest делает это воспроизводимым в CI/CD. Согласно ThoughtWorks Technology Radar, тестирование инфраструктуры с Terratest теперь считается основной практикой DevOps. Библиотека GCP Policy Library предоставляет 100+ готовых политик Rego для проверки безопасности. В этом руководстве рассматривается полный стек тестирования инфраструктуры GCP.&lt;/p&gt;</description></item><item><title>Тестирование инфраструктуры как кода: стратегии валидации для Terraform и Ansible</title><link>https://yrkan.com/ru/blog/infrastructure-code-testing-validation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/infrastructure-code-testing-validation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Валидация инфраструктурного кода сочетает terraform validate (синтаксис), Checkov/tfsec (безопасность), Conftest/OPA (пользовательские политики) и Terratest (интеграция). Для Kubernetes добавьте kubeval/kubeconform и kube-score. Интегрируйте всё в проверки PR в CI/CD.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Валидация инфраструктурного кода выявляет 85% неправильных конфигураций безопасности облака до развёртывания. Конвейер валидации для современной облачной инфраструктуры включает четыре этапа: синтаксическую валидацию, сканирование безопасности (Checkov для 1000+ правил), применение пользовательских политик (Conftest/OPA) и интеграционное тестирование (Terratest). По данным CNCF Survey 2024, 71% организаций, использующих Kubernetes, выполняют автоматическую валидацию манифестов в CI/CD. Подход shift-left обеспечивает 10-кратное сокращение затрат: обнаружение неправильной конфигурации в PR стоит минут, а после развёртывания — часов реагирования.&lt;/p&gt;</description></item><item><title>Тестирование Компьютерного Зрения: Валидация Систем Распознавания Изображений</title><link>https://yrkan.com/ru/blog/computer-vision-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/computer-vision-testing/</guid><description>&lt;p&gt;Тестирование Компьютерного Зрения: Валидация Систем Распознавания Изображений — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to Gartner, by 2025, 70% of new applications will use AI or ML, up from less than 5% in 2020 (Gartner AI Forecast). According to McKinsey&amp;rsquo;s 2024 State of AI survey, 65% of organizations now use generative AI regularly, nearly double the 2023 figure (McKinsey State of AI 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Тестирование Масштабируемости Инфраструктуры: Валидация Auto-Scaling с K6, Locust и Terraform</title><link>https://yrkan.com/ru/blog/infrastructure-scalability-testing/</link><pubDate>Thu, 22 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/infrastructure-scalability-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Сбои масштабируемости инфраструктуры обходятся в среднем в 300 000 долларов в час потерянного дохода для платформ электронной коммерции, согласно исследованию Gartner IT Downtime 2024. По данным CNCF Survey 2024, 68% организаций, работающих с Kubernetes, испытывали проблемы с автоматическим масштабированием в продакшне, которые могли быть обнаружены при предпродакшн тестировании. Тестирование масштабируемости проверяет полный жизненный цикл: условия срабатывания, скорость масштабирования, максимальные ограничения и постепенную деградацию при достижении максимальной мощности. Практики хаос-инжиниринга Netflix показывают, что команды, тестирующие поведение автомасштабирования в условиях сбоев, сокращают производственные инциденты на 80%.&lt;/p&gt;</description></item><item><title>Тестирование миграций базы данных: Руководство по Flyway и Liquibase</title><link>https://yrkan.com/ru/blog/database-migration-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/database-migration-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Тестирование миграций БД проверяет изменения схемы с Flyway/Liquibase. Тестируй откаты, проверяй целостность данных, используй паттерны expand-contract для нулевого простоя и всегда тестируй на снимках данных production-размера.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Миграции баз данных - это критические операции, которые могут сделать или сломать развертывания в продакшене. Это всеобъемлющее руководство охватывает стратегии тестирования для миграций баз данных с использованием Flyway и Liquibase, обеспечивая безопасные изменения схемы и развертывания без простоя.&lt;/p&gt;
&lt;p&gt;Тестирование миграций является ключевой частью &lt;a href="https://yrkan.com/ru/blog/database-testing-deep-dive"&gt;глубокого погружения в тестирование баз данных&lt;/a&gt; и тесно связано с &lt;a href="https://yrkan.com/ru/blog/database-performance-testing"&gt;тестированием производительности баз данных&lt;/a&gt;. Для успешной интеграции миграций в CI/CD рекомендуем изучить &lt;a href="https://yrkan.com/ru/blog/continuous-testing-devops"&gt;непрерывное тестирование в DevOps&lt;/a&gt; и &lt;a href="https://yrkan.com/ru/blog/test-automation-pyramid-strategy"&gt;стратегию автоматизации тестирования&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Тестирование Мобильной Доступности: Соответствие WCAG для iOS и Android</title><link>https://yrkan.com/ru/blog/mobile-accessibility-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/mobile-accessibility-testing/</guid><description>&lt;p&gt;Тестирование доступности мобильных приложений больше не является опциональным — это юридически и этически необходимо. По данным Всемирной организации здравоохранения, более 1,3 миллиарда человек во всём мире живут с какой-либо формой инвалидности, что составляет 16% населения планеты. Только в США Закон об Americans with Disabilities Act (ADA) ежегодно приводит к более чем 4000 судебных исков в сфере цифровой доступности. Исследование WebAIM 2023 года показало, что более 96% протестированных мобильных главных экранов имели обнаруживаемые сбои доступности. Это руководство охватывает комплексные стратегии тестирования доступности мобильных приложений, включая автоматизированные инструменты и проверку соответствия WCAG 2.2.&lt;/p&gt;</description></item><item><title>Тестирование Мобильных Игр: Полное Руководство по QA Игровых Приложений</title><link>https://yrkan.com/ru/blog/mobile-game-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/mobile-game-testing/</guid><description>&lt;p&gt;Мобильные игры — один из крупнейших и наиболее конкурентных программных рынков в мире, приносящий более $92 миллиардов выручки в 2023 году по данным Newzoo Global Games Market Report. Среди более чем 3 миллиардов мобильных геймеров средняя продолжительность сессии составляет 8-12 минут, поэтому проблемы с производительностью и критические баги немедленно приводят к удалению приложений. Данные Google Play показывают, что приложения с рейтингом 4+ получают на 200% больше установок, чем приложения с рейтингом ниже 3 звёзд. Это руководство охватывает стратегии тестирования при фрагментации устройств, профилирование производительности и метрики качества, специфичные для мобильных игр.&lt;/p&gt;</description></item><item><title>Тестирование Мобильных Платежных Систем: Полное Руководство для QA Инженеров</title><link>https://yrkan.com/ru/blog/mobile-payment-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/mobile-payment-testing/</guid><description>&lt;p&gt;Мобильные платежи — одна из наиболее критически важных с точки зрения безопасности и регулирования областей тестирования ПО. Глобальный объём транзакций через мобильные платежи достиг $2,1 триллиона в 2023 году и, по прогнозам Statista, превысит $12 триллионов к 2028 году. С вводом в действие требований PCI DSS 4.0 и усилением регуляторного надзора за финтех-приложениями провалы тестирования платежей несут последствия, выходящие далеко за рамки пользовательского опыта. Отчёт Verizon Payment Security 2023 показал, что только 43% организаций поддерживали полное соответствие PCI DSS. Это руководство охватывает стратегии тестирования мобильных платежей, безопасности обработки данных карт и верификации регуляторного соответствия.&lt;/p&gt;</description></item><item><title>Тестирование на Основе Observability: OpenTelemetry, Распределенный Tracing и Тестирование в Продакшене</title><link>https://yrkan.com/ru/blog/observability-driven-testing-opentelemetry/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/observability-driven-testing-opentelemetry/</guid><description>&lt;p&gt;Тестирование на основе наблюдаемости объединяет выполнение тестов с телеметрией производственного уровня для создания цикла обратной связи между тестированием и поведением системы. OpenTelemetry, теперь выпускной проект CNCF, стал отраслевым стандартом для инструментирования приложений с трассировками, метриками и логами. По данным CNCF Survey 2023, 74% организаций используют или оценивают OpenTelemetry — по сравнению с 49% в 2021 году. По данным Honeycomb, команды с распределённой трассировкой в рабочих процессах тестирования находят первопричины сбоев на 60% быстрее. Для QA-инженеров OpenTelemetry открывает новый подход: тесты генерируют телеметрию как производственный код.&lt;/p&gt;</description></item><item><title>Тестирование Объяснимого ИИ: Понимание и Валидация Решений ИИ</title><link>https://yrkan.com/ru/blog/explainable-ai-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/explainable-ai-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Проверяй объяснения LIME и SHAP на стабильность, достоверность и соответствие экспертным знаниям&lt;/li&gt;
&lt;li&gt;Тестируй соответствие регуляторным требованиям (GDPR статья 22, EU AI Act) — объяснения должны быть понятны человеку&lt;/li&gt;
&lt;li&gt;Выявляй предвзятость модели до развёртывания с помощью метрик справедливости: демографический паритет и равенство шансов&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; QA-инженеров и ML-команд, развёртывающих ИИ в регулируемых отраслях (финансы, медицина, найм)
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Твои модели — внутренние инструменты без решений, влияющих на пользователей&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Поскольку системы ИИ принимают решения с высокими ставками — одобрение кредитов, медицинские диагнозы, рекомендации по найму — понимание того, почему модель сделала конкретное предсказание, становится критически важным как для соответствия требованиям, так и для качества. По оценке воздействия EU AI Act, 85% высокорисковых систем ИИ, развёрнутых в ЕС, должны предоставлять понятные человеку объяснения к 2026 году. Статья 22 GDPR уже устанавливает &amp;ldquo;право на объяснение&amp;rdquo; для автоматизированных решений, затрагивающих людей. Тестирование объяснимости выявляет предвзятость модели до развёртывания: модель найма, использующая почтовый индекс как прокси для расы, будет выглядеть точной по агрегированным метрикам, но провалит тесты справедливости. Тестирование XAI проверяет стабильность объяснений LIME и SHAP на похожих входных данных, соответствие важности признаков знаниям предметной области и понятность объяснений для человека.&lt;/p&gt;</description></item><item><title>Тестирование оценки затрат для Infrastructure as Code: Полное руководство</title><link>https://yrkan.com/ru/blog/cost-estimation-testing-for-iac/</link><pubDate>Tue, 20 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/cost-estimation-testing-for-iac/</guid><description>&lt;h2 id="tldr"&gt;TL;DR &lt;a href="#tldr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Что:&lt;/strong&gt; Тестирование оценки затрат валидирует изменения инфраструктуры против пороговых значений бюджета до деплоя&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Зачем:&lt;/strong&gt; Предотвращает неожиданные облачные счета — выявляет увеличение затрат во время ревью PR, а не после получения счёта&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Инструменты:&lt;/strong&gt; Infracost (бесплатный уровень доступен), нативные калькуляторы облаков, кастомный анализ terraform plan&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевая метрика:&lt;/strong&gt; 100% изменений IaC имеют видимые оценки затрат в комментариях PR&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Начните здесь:&lt;/strong&gt; Добавьте Infracost в ваш CI/CD pipeline для автоматического diff затрат на каждый terraform PR&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;В 2025 году организации, использующие автоматизированную оценку затрат в своих IaC pipelines, сократили неожиданное увеличение облачных затрат на 64%. Одна неправильно настроенная политика автоскейлинга или забытое dev-окружение может стоить тысячи долларов. Тестирование оценки затрат делает затраты на инфраструктуру видимыми до деплоя.&lt;/p&gt;</description></item><item><title>Тестирование оценки стоимости для Infrastructure as Code: FinOps в CI/CD</title><link>https://yrkan.com/ru/blog/cost-estimation-testing-iac/</link><pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/cost-estimation-testing-iac/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Infracost показывает влияние изменений Terraform на стоимость в каждом PR — до деплоймента, а не после выставления счёта&lt;/li&gt;
&lt;li&gt;Политики стоимости могут блокировать PR, превышающие пороги (как сканеры безопасности блокируют уязвимости)&lt;/li&gt;
&lt;li&gt;Ошибка #1: относиться к review стоимости как к опциональному, а не автоматизированному gate&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд со значительными затратами на cloud или тех, кого удивляли счета
&lt;strong&gt;Пропустите, если:&lt;/strong&gt; Вы на бесплатном тарифе или инфраструктуре с фиксированной ценой
&lt;strong&gt;Время чтения:&lt;/strong&gt; 9 минут&lt;/p&gt;</description></item><item><title>Тестирование очередей сообщений: Асинхронные системы и Event-Driven архитектура</title><link>https://yrkan.com/ru/blog/message-queue-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/message-queue-testing/</guid><description>&lt;p&gt;Очереди сообщений составляют основу современных распределённых систем, обеспечивая асинхронное взаимодействие. По данным отчёта Confluent State of Messaging 2024, более 70% предприятий используют брокеры сообщений — Apache Kafka, AWS SQS или RabbitMQ — как критически важную инфраструктуру. Для QA-инженеров тестирование этих систем представляет уникальные сложности: асинхронное поведение делает проверки зависимыми от времени, ошибки могут тихо накапливаться в dead-letter queue. Исследование Postman 2023 года показало, что 41% команд считает тестирование асинхронных API своим главным пробелом. Это руководство охватывает стратегии тестирования порядка сообщений, идемпотентности, логики повторов и обработки ядовитых сообщений.&lt;/p&gt;</description></item><item><title>Тестирование Производительности Мобильных Приложений: Метрики, Инструменты и Лучшие Практики</title><link>https://yrkan.com/ru/blog/mobile-app-performance/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/mobile-app-performance/</guid><description>&lt;p&gt;Производительность мобильных приложений напрямую определяет удержание пользователей и доходы бизнеса. По данным исследования Google 2023 года, 53% посещений мобильных сайтов прерываются, если страницы загружаются дольше 3 секунд, а каждая дополнительная секунда задержки снижает конверсию на 20%. Для нативных приложений ставки ещё выше: алгоритмы App Store и Google Play активно понижают рейтинг приложений с высоким уровнем сбоев или событиями ANR (Application Not Responding). Исследование Firebase показало, что приложения с мониторингом Crashlytics обнаруживают на 70% больше сбоев в препродакшне. Это руководство охватывает инструменты профилирования производительности для iOS и Android.&lt;/p&gt;</description></item><item><title>Тестирование протокола WebSocket</title><link>https://yrkan.com/ru/course/module-10-networking/websocket-protocol-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-10-networking/websocket-protocol-testing/</guid><description>&lt;h2 id="понимание-темы-протокол-websocket"&gt;Понимание темы: Протокол WebSocket &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d0%bc%d1%8b-%d0%bf%d1%80%d0%be%d1%82%d0%be%d0%ba%d0%be%d0%bb-websocket" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Этот урок охватывает протокол websocket с точки зрения QA-инженерии. Эти концепции помогают быстрее диагностировать проблемы и эффективно общаться с сетевыми инженерами и DevOps.&lt;/p&gt;
&lt;h3 id="почему-это-важно-для-qa"&gt;Почему это важно для QA &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%8d%d1%82%d0%be-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Сетевые проблемы — значительная доля трудновоспроизводимых продакшен-багов. QA-инженеры, понимающие протокол websocket, могут определить коренную причину вместо отметки «не воспроизводится».&lt;/p&gt;
&lt;h3 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Концепции протокол websocket напрямую влияют на поведение приложений в продакшене, определяя дизайн тестов и анализ отказов.&lt;/p&gt;</description></item><item><title>Тестирование резервного копирования и восстановления после сбоев: Полное руководство по валидации RTO и RPO</title><link>https://yrkan.com/ru/blog/backup-and-disaster-recovery-testing/</link><pubDate>Fri, 23 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/backup-and-disaster-recovery-testing/</guid><description>&lt;p&gt;Тестирование резервного копирования и восстановления после сбоев: Полное руководство по валидации RTO и RPO — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to the 2024 DORA report, organizations with high DevOps maturity have 4x lower change failure rates (DORA State of DevOps 2024). According to Puppet&amp;rsquo;s State of DevOps report, high-performing DevOps teams spend 44% less time on unplanned work (Puppet State of DevOps). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Тестирование Серого Ящика: Лучшее из Двух Миров</title><link>https://yrkan.com/ru/blog/grey-box-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/grey-box-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Тестирование серого ящика сочетает частичные внутренние знания (архитектурные схемы, схемы БД, контракты API) с внешним выполнением тестов. Находит на 40% больше дефектов, чем чистое тестирование чёрного ящика, нацеливаясь на вероятные точки сбоя, идентифицированные из частичных знаний.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Тестирование серого ящика находит на 40% больше дефектов, чем чистое тестирование чёрного ящика в интеграционных сценариях, согласно исследованию, опубликованному в IEEE Transactions on Software Engineering. Ключевое понимание: тестировщики, знающие архитектуру, могут нацеливаться на вероятные точки сбоя без необходимости видеть исходный код. Команда безопасности Google использует фаззинг серого ящика (фаззинг с управлением покрытием при частичном внутреннем знании) как основной метод обнаружения уязвимостей — находя в 5 раз больше ошибок безопасности, чем традиционный фаззинг чёрного ящика. Тестирование серого ящика занимает оптимальное пространство между белым ящиком (дорогостоящий, требует доступа к коду) и чёрным ящиком (ограниченная эффективность): тестировщики имеют достаточно внутреннего контекста для разработки целевых тестов, но выполняют их внешне. В этом руководстве рассматриваются техники тестирования серого ящика для интеграционного тестирования, оценки безопасности и тестирования API.&lt;/p&gt;</description></item><item><title>Тестирование Сетевой Конфигурации: Batfish, Terraform и Валидация VPC для Облачной Инфраструктуры</title><link>https://yrkan.com/ru/blog/network-configuration-testing/</link><pubDate>Sun, 18 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/network-configuration-testing/</guid><description>&lt;p&gt;Тестирование сетевой конфигурации критически важно для обеспечения того, что изменения инфраструктуры случайно не откроют сервисы, не нарушат связность или не нарушат политики безопасности. По данным Verizon Data Breach Investigations Report, 20% нарушений безопасности связаны с неправильной конфигурацией сети. По данным Gartner, 99% нарушений через межсетевые экраны к 2025 году были вызваны неправильной конфигурацией, а не уязвимостями нулевого дня. Для команд QA и DevOps тестирование сетевой конфигурации охватывает валидацию правил брандмауэра, политики групп безопасности, проверки работоспособности балансировщика нагрузки и разрешение DNS.&lt;/p&gt;</description></item><item><title>Тестирование Сетевых Условий для Мобильных Приложений: Симуляция Задержек, Потери Пакетов и Offline Режима</title><link>https://yrkan.com/ru/blog/network-condition-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/network-condition-testing/</guid><description>&lt;p&gt;Сетевые условия оказывают глубокое влияние на пользовательский опыт так, как среды разработки никогда не воспроизводят. По данным исследования Google, 53% пользователей мобильных устройств покидают сайты, загружающиеся дольше 3 секунд. По данным Akamai, страницы с даже кратковременными сетевыми перебоями имеют на 40% более высокий показатель отказов. Тестирование в реалистичных сетевых условиях необходимо для команд, ориентированных на глобальные рынки: нужно проверять поведение приложения при разной пропускной способности (2G, 3G, 4G, WiFi), задержках и потере пакетов. Это руководство охватывает инструменты симуляции сетевых условий.&lt;/p&gt;</description></item><item><title>Тестирование событийно-ориентированной архитектуры: Kafka, RabbitMQ и другие</title><link>https://yrkan.com/ru/blog/event-driven-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/event-driven-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Тестируй порядок сообщений Kafka внутри разделов и FIFO-гарантии RabbitMQ с помощью Testcontainers для изолированного CI&lt;/li&gt;
&lt;li&gt;Проверяй доставку exactly-once через идемпотентных потребителей, маршрутизацию в dead letter queue и совместимость схем&lt;/li&gt;
&lt;li&gt;Используй контрактное тестирование (Pact) и нагрузочное тестирование для выявления интеграционных ошибок до продакшна&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Бэкенд-разработчиков и QA-инженеров, тестирующих микросервисы с Kafka или RabbitMQ
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Твоя система использует только синхронные REST API без брокеров сообщений&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Событийно-ориентированные архитектуры обеспечивают работу 78% микросервисов Fortune 500, согласно отчёту State of Kafka 2024 от Confluent. Тестирование таких систем создаёт уникальные задачи: согласованность в конечном счёте, порядок сообщений в распределённых узлах и сценарии сбоев, которые обычное синхронное тестирование полностью упускает. В отличие от REST API, где запросы возвращают немедленные ответы, событийно-ориентированные системы разделяют продюсеров и потребителей через брокеры сообщений — Kafka и RabbitMQ — что делает проверку результатов принципиально сложнее. Сообщение, отправленное в момент T, может быть обработано через 500 мс или 5 секунд, и тесты должны учитывать оба варианта. Команды, применяющие структурированные стратегии тестирования событий, выявляют на 40% больше интеграционных ошибок до продакшна. В этом руководстве рассматриваются полные стратегии тестирования Kafka и RabbitMQ: проверка порядка сообщений, тестирование доставки exactly-once, валидация очередей мёртвых писем и паттерны контрактного тестирования.&lt;/p&gt;</description></item><item><title>Тестирование соответствия для Infrastructure as Code: Полное руководство</title><link>https://yrkan.com/ru/blog/compliance-testing-for-iac/</link><pubDate>Mon, 19 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/compliance-testing-for-iac/</guid><description>&lt;p&gt;Тестирование соответствия для Infrastructure as Code: Полное руководство — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to Gartner, worldwide cloud spending will exceed $1 trillion by 2025, making cloud testing skills essential (Gartner Cloud Forecast). According to HashiCorp&amp;rsquo;s 2024 State of Cloud Strategy survey, 78% of organizations use a multi-cloud strategy (HashiCorp State of Cloud 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Тестирование файрволов и WAF</title><link>https://yrkan.com/ru/course/module-10-networking/firewall-waf-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-10-networking/firewall-waf-testing/</guid><description>&lt;h2 id="понимание-темы-файрволы-и-waf"&gt;Понимание темы: Файрволы и WAF &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d0%bc%d1%8b-%d1%84%d0%b0%d0%b9%d1%80%d0%b2%d0%be%d0%bb%d1%8b-%d0%b8-waf" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Этот урок охватывает файрволы и waf с точки зрения QA-инженерии. Эти концепции помогают быстрее диагностировать проблемы и эффективно общаться с сетевыми инженерами и DevOps.&lt;/p&gt;
&lt;h3 id="почему-это-важно-для-qa"&gt;Почему это важно для QA &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%8d%d1%82%d0%be-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Сетевые проблемы — значительная доля трудновоспроизводимых продакшен-багов. QA-инженеры, понимающие файрволы и waf, могут определить коренную причину вместо отметки «не воспроизводится».&lt;/p&gt;
&lt;h3 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Концепции файрволы и waf напрямую влияют на поведение приложений в продакшене, определяя дизайн тестов и анализ отказов.&lt;/p&gt;</description></item><item><title>Тестирование Чёрного Ящика: Техники и Подходы</title><link>https://yrkan.com/ru/blog/black-box-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/black-box-testing/</guid><description>&lt;p&gt;Тестирование Чёрного Ящика: Техники и Подходы — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to NIST, software bugs cost the US economy $59.5 billion annually, with about 80% preventable through better testing (NIST Software Testing Study). According to research by Capers Jones, finding and fixing a defect after deployment costs 10-100x more than finding it during design (Capers Jones Software Engineering Best Practices). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Тестирование шаблонов CloudFormation: Пирамида тестирования для Infrastructure as Code</title><link>https://yrkan.com/ru/blog/cloudformation-template-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/cloudformation-template-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Применяйте пирамиду тестирования к CloudFormation: быстрый статический анализ в основании, медленные интеграционные тесты на вершине&lt;/li&gt;
&lt;li&gt;cfn-lint v1 находит 80% проблем за секунды; taskcat обнаруживает оставшиеся 20%, которые проявляются только в реальном AWS&lt;/li&gt;
&lt;li&gt;В 2026 году ИИ генерирует шаблоны быстрее, чем когда-либо — что делает тестирование БОЛЕЕ критичным, а не менее&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд, деплоящих CloudFormation еженедельно или чаще, с 10+ шаблонами
&lt;strong&gt;Пропустить если:&lt;/strong&gt; У вас 2-3 простых шаблона и деплой раз в квартал
&lt;strong&gt;Время чтения:&lt;/strong&gt; 11 минут&lt;/p&gt;</description></item><item><title>Тестовая Инфраструктура с ИИ: Умное Управление Ресурсами</title><link>https://yrkan.com/ru/blog/ai-test-infrastructure/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ai-test-infrastructure/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Управление инфраструктурой с ИИ снижает затраты на &lt;strong&gt;40-60%&lt;/strong&gt; через предиктивное масштабирование и интеллектуальное распределение ресурсов&lt;/li&gt;
&lt;li&gt;Предиктивное выделение сокращает время настройки окружений с часов до &lt;strong&gt;минут&lt;/strong&gt; с ML-прогнозированием нагрузки&lt;/li&gt;
&lt;li&gt;Умное сопоставление ресурсов направляет тесты в оптимальные окружения, достигая &lt;strong&gt;70%+ утилизации ресурсов&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд с 100+ ежедневными запусками, облачной инфраструктурой, значительными затратами на инфраструктуру (&amp;gt;$5k/мес)
&lt;strong&gt;Пропустить если:&lt;/strong&gt; Небольшие тестовые наборы (&amp;lt;50 тестов), фиксированная инфраструктура, минимальные потребности в масштабировании
&lt;strong&gt;Время чтения:&lt;/strong&gt; 14 минут&lt;/p&gt;</description></item><item><title>Тестовые Доказательства и Документация Соответствия: Построение Готовых к Аудиту QA-Систем</title><link>https://yrkan.com/ru/blog/test-evidence-compliance/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-evidence-compliance/</guid><description>&lt;p&gt;По данным отчёта Ponemon Institute о стоимости несоответствия 2024 года, организации, не прошедшие регуляторные аудиты из-за недостаточных тестовых доказательств, сталкиваются со средними штрафами в &lt;strong&gt;14,82 миллиона долларов&lt;/strong&gt; — и &lt;strong&gt;67% неудач аудитов&lt;/strong&gt; в регулируемых программных отраслях восходят к неполной или нетрассируемой документации тестирования. Исследование Gartner по управлению рисками 2024 года показало, что компании с автоматизированным сбором доказательств и готовыми к аудиту системами QA снижают расходы на соответствие в среднем на &lt;strong&gt;43% ежегодно&lt;/strong&gt;, сокращая время подготовки к аудитам с недель до дней. В регулируемых отраслях — финансы (SOX), здравоохранение (HIPAA), фармацевтика (FDA 21 CFR Part 11) и другие — тестовые доказательства не являются запоздалой мыслью. Это юридическая основа, доказывающая, что твоё программное обеспечение соответствует требованиям. Это руководство охватывает, как создавать системы QA, автоматически производящие готовые к аудиту доказательства, от матриц трассировки до политик хранения.&lt;/p&gt;</description></item><item><title>Техники Оценки Тестирования: Точное Планирование Времени на Тестирование</title><link>https://yrkan.com/ru/blog/test-estimation-techniques/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-estimation-techniques/</guid><description>&lt;p&gt;По данным Standish Group CHAOS Report 2024, неточная оценка входит в тройку главных причин неудач проектов, а фаза тестирования последовательно является наиболее недооцениваемой. Исследование Software Engineering Institute показало, что команды, использующие структурированные техники оценки, создают прогнозы на &lt;strong&gt;40-55% более точные&lt;/strong&gt;, чем неформальные оценки — и проекты, отслеживающие фактические показатели относительно оценок, улучшают точность в среднем на &lt;strong&gt;27% год за годом&lt;/strong&gt;. Тем не менее большинство специалистов QA по-прежнему полагаются на интуицию, грубые проценты от времени разработки или просто принимают дедлайн, предложенный менеджером проекта. Оценка тестирования — это не угадывание: это структурированный аналитический процесс, которому можно научиться, измерить и улучшить. Техники, рассмотренные в этом руководстве — WBS, трёхточечная оценка, Planning Poker и исторический анализ — дают тебе повторяемый инструментарий для создания оценок, которым доверяют стейкхолдеры и которые команды реально могут выполнить.&lt;/p&gt;</description></item><item><title>Техническое Письмо для QA: Мастерство Навыков Документации</title><link>https://yrkan.com/ru/blog/technical-writing-qa-documentation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/technical-writing-qa-documentation/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; — Техническое письмо — сила-умножитель для карьеры QA. Согласно опросу SmartBear, команды с сильными практиками документации разрешают баги на 50% быстрее. В руководстве — баг-репорты, тест-планы, документация API и RFC с практическими примерами.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Техническое письмо — один из самых недооценённых, но критически важных навыков для QA-специалистов. Согласно опросу SmartBear State of Software Quality, низкое качество документации входит в топ-5 причин задержек проектов и переработок в командах разработки. Исследование сообщества Write the Docs показало, что технические писатели, вносящие вклад в документацию для разработчиков, снижают объём запросов в поддержку в среднем на 27%. Хотя экспертиза в тестировании и навыки автоматизации часто выходят на первый план, способность ясно передавать техническую информацию может кратно усилить твоё влияние как QA-инженера.&lt;/p&gt;</description></item><item><title>Триаж Багов с ИИ: Интеллектуальная Приоритизация Дефектов в Масштабе</title><link>https://yrkan.com/ru/blog/ai-bug-triaging/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/ai-bug-triaging/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ИИ-триаж сокращает ручной труд на 65% и достигает 85-90% точности классификации серьёзности против 60-70% у людей&lt;/li&gt;
&lt;li&gt;Начни с TF-IDF + Random Forest (быстро, интерпретируемо), обнови до CodeBERT fine-tuning для улучшения на 29-140%&lt;/li&gt;
&lt;li&gt;Обнаружение дубликатов с sentence embeddings + FAISS ловит 80% дубликатов до того, как они потратят время разработчика&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Команд, обрабатывающих 100+ багов/месяц, организаций с требованиями соответствия SLA
&lt;strong&gt;Пропустить если:&lt;/strong&gt; Маленькие команды (&amp;lt;5 багов/неделю), где ручной триаж всё ещё управляем
&lt;strong&gt;Время чтения:&lt;/strong&gt; 18 минут&lt;/p&gt;</description></item><item><title>Туториал по тестированию ПО для начинающих: Полное руководство по основам QA</title><link>https://yrkan.com/ru/blog/software-testing-tutorial-beginners/</link><pubDate>Mon, 26 Jan 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/software-testing-tutorial-beginners/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Тестирование ПО проверяет, что софт работает как ожидается и соответствует потребностям пользователей&lt;/li&gt;
&lt;li&gt;Типы тестирования: функциональное, нефункциональное, ручное, автоматизированное, черный ящик, белый ящик&lt;/li&gt;
&lt;li&gt;Дизайн тест-кейсов: классы эквивалентности, граничные значения, таблицы решений&lt;/li&gt;
&lt;li&gt;STLC (Software Testing Life Cycle): требования → планирование → дизайн → выполнение → отчетность&lt;/li&gt;
&lt;li&gt;Код не нужен для старта — ручное тестирование — это полноценный карьерный путь&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; Людей, рассматривающих карьеру в QA, разработчиков, желающих понять тестирование, проектных менеджеров
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Ты уже практикующий тестировщик, ищущий продвинутые техники
&lt;strong&gt;Время чтения:&lt;/strong&gt; 12 минут&lt;/p&gt;</description></item><item><title>Удаленная работа в QA: лучшие практики и стратегии</title><link>https://yrkan.com/ru/blog/remote-qa-work-best-practices/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/remote-qa-work-best-practices/</guid><description>&lt;p&gt;Удалённая QA-работа трансформировалась из временной меры в постоянное стратегическое преимущество для команд инженерии качества по всему миру. По данным опроса Buffer State of Remote Work 2023, 98% удалённых сотрудников хотят продолжать работать удалённо хотя бы часть времени, и QA-инженеры особо указывают на гибкость и доступ к глобальным пулам талантов. По данным исследования Forrester Research, распределённые QA-команды, внедряющие структурированные практики асинхронной коммуникации, достигают на 20% большей пропускной способности тестирования и на 15% лучших показателей обнаружения дефектов. Для QA-инженеров, работающих удалённо или управляющих распределёнными командами, успех зависит от пяти столпов: культуры асинхронной коммуникации прежде всего, комплексных практик документирования, намеренных ритмов совместной работы, эффективного инструментария и намеренного построения отношений.&lt;/p&gt;</description></item><item><title>Управление Артефактами в CI/CD</title><link>https://yrkan.com/ru/blog/artifact-management-in-ci-cd/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/artifact-management-in-ci-cd/</guid><description>&lt;p&gt;Управление Артефактами в CI/CD — критически важная дисциплина в современном обеспечении качества программного обеспечения. According to the 2024 DORA State of DevOps report, elite performing teams deploy 973x more frequently than low performers (DORA State of DevOps 2024). According to GitLab&amp;rsquo;s 2024 DevSecOps report, teams using CI/CD fix bugs 60% faster than those without automation (GitLab DevSecOps Survey 2024). Это руководство охватывает практические подходы, которые QA-команды могут применить немедленно: от базовых концепций и инструментов до реальных паттернов реализации. Независимо от того, развиваешь ли ты навыки в этой области или улучшаешь существующий процесс, здесь ты найдёшь действенные техники, подкреплённые практическим опытом. Цель — не просто теоретическое понимание, а рабочий фреймворк, который можно адаптировать под контекст команды, технологический стек и цели по качеству.&lt;/p&gt;</description></item><item><title>Управление Знаниями в QA: Построение Устойчивой Базы Знаний</title><link>https://yrkan.com/ru/blog/knowledge-management-qa/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/knowledge-management-qa/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; База знаний QA фиксирует опыт тестирования в структурированном, доступном для поиска виде. Начни с того, о чём команда спрашивает чаще всего: руководства по тестированию, документация по устранению неполадок и материалы для онбординга.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Управление знаниями в QA решает одну из самых устойчивых проблем в тестировании программного обеспечения: экспертиза, которая существует только в головах опытных инженеров и исчезает, когда они уходят. По данным отчёта Deloitte Global Human Capital Trends 2023, организации теряют 30-40% институциональных знаний при уходе опытного сотрудника. В QA это означает потерю понимания исторических дефектов, накопленных эвристик тестирования и недокументированного поведения системы. Хорошо структурированная база знаний QA преобразует эти эфемерные знания в организационные активы — доступные для поиска, версионируемые и доступные новым сотрудникам с первого дня.&lt;/p&gt;</description></item><item><title>Управление Секретами в CI/CD: HashiCorp Vault, SOPS и Тестирование с Секретами</title><link>https://yrkan.com/ru/blog/secrets-management-cicd-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/secrets-management-cicd-testing/</guid><description>&lt;p&gt;Управление секретами — критически важная практика безопасного хранения, ротации и внедрения учётных данных, API-ключей и сертификатов в CI/CD пайплайны без их раскрытия в исходном коде. По данным отчёта GitGuardian State of Secrets Sprawl 2023, более 10 миллионов секретов были обнаружены в публичных репозиториях GitHub, рост 67% год к году, при этом 85% жёстко закодированных секретов остаются активными более 30 дней после обнаружения. По данным исследования Snyk, 25% всех инцидентов безопасности в cloud-native приложениях вызваны неправильно управляемыми секретами в CI/CD пайплайнах. Для DevOps-инженеров и QA-профессионалов внедрение управления секретами с HashiCorp Vault, AWS Secrets Manager или SOPS больше не опционально.&lt;/p&gt;</description></item><item><title>Управление тестовыми данными в DevOps-пайплайнах: синхронизация, маскирование и версионирование</title><link>https://yrkan.com/ru/blog/test-data-devops-pipelines/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/test-data-devops-pipelines/</guid><description>&lt;p&gt;Управление тестовыми данными — скрытое узкое место современных DevOps-пайплайнов. Согласно опросу Gartner DevOps 2024, 67% организаций называют предоставление тестовых данных главным препятствием для непрерывного тестирования, а команды тратят в среднем 35% времени тестирования на ожидание или подготовку данных вместо выполнения тестов. Исследования World Quality Report 2024 (Sogeti/Capgemini) показывают: организации с автоматизированными пайплайнами тестовых данных деплоят в 2,4 раза чаще и имеют на 58% меньше сбоев пайплайна из-за проблем с данными. Проблему усугубляют GDPR, CCPA и отраслевые регуляции, запрещающие использование реальных данных клиентов в тестовых средах.&lt;/p&gt;</description></item><item><title>Уровни Тестирования: Unit, Integration, System и UAT</title><link>https://yrkan.com/ru/blog/testing-levels-guide/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/testing-levels-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;
Тестирование имеет четыре уровня: юнит-тесты (разработчики, миллисекунды), интеграционные, системные и UAT. Юнит-тесты обнаруживают дефекты дешевле всего. Следуй пирамиде тестирования: 60% усилий на нижних уровнях, где дефекты в 100-10000 раз дешевле исправить.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; разработчиков и QA-инженеров, выстраивающих стратегию тестирования или изучающих ISTQB
&lt;strong&gt;Пропусти если:&lt;/strong&gt; нужна настройка фреймворков автоматизации или конфигурация CI/CD&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Тестирование программного обеспечения организовано в четыре отдельных уровня, каждый из которых охватывает разные аспекты системы и вовлекает разных участников команды. Согласно ISTQB Foundation Level Syllabus — самой широко признанной сертификации по тестированию с более чем 1 миллионом сертифицированных специалистов — эти уровни напрямую соответствуют этапам SDLC. Исследования неизменно показывают: дефект, обнаруженный при юнит-тестировании, стоит 1x; тот же дефект в продакшене обходится в 10 000x больше. Пирамида тестирования рекомендует 60% покрытия на уровне юнит/интеграционного тестирования, 30% на уровне системного и лишь 10% в виде ручного UAT. Понимание целей, базы тестирования и ответственных на каждом уровне — основа любой эффективной QA-стратегии.&lt;/p&gt;</description></item><item><title>Функциональное тестирование: полное руководство от А до Я</title><link>https://yrkan.com/ru/blog/funktsionalnoe-testirovanie-polnoe-rukovodstvo/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/funktsionalnoe-testirovanie-polnoe-rukovodstvo/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Функциональное тестирование&lt;/strong&gt;: Проверка что ПО делает то что должно (подход чёрного ящика)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Типы&lt;/strong&gt;: Smoke → Sanity → Regression → Integration → System → UAT&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевая практика&lt;/strong&gt;: Пиши тест-кейсы с прямой привязкой к требованиям&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Автоматизируй&lt;/strong&gt;: Smoke и regression тесты; оставь exploratory и UAT ручными&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SmartBear 2025&lt;/strong&gt;: 91% команд используют функциональное тестирование как основной контроль качества&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Критичный чек-лист&lt;/strong&gt;: Валидация ввода, обработка ошибок, бизнес-логика, сохранность данных&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 18 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Функциональное тестирование проверяет что ПО работает в соответствии со своими требованиями, рассматривая приложение как чёрный ящик и проверяя выходные данные для заданных входных данных без анализа внутренней структуры кода. Согласно отчёту SmartBear State of Software Quality 2025, 91% команд разработки используют функциональное тестирование как основной контроль качества. ISTQB определяет функциональное тестирование как проверку «что делает система» — в отличие от нефункционального тестирования, которое проверяет «как система работает». Функциональные дефекты, обнаруженные до релиза, обходятся в 10 раз дешевле в исправлении, чем найденные в production. Это руководство охватывает полный ландшафт функционального тестирования — с практическими чек-листами применимыми к реальным delivery pipeline.&lt;/p&gt;</description></item><item><title>Что такое API Тестирование: Полное Руководство 2026</title><link>https://yrkan.com/ru/blog/what-is-api-testing-guide/</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/what-is-api-testing-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;API тестирование&lt;/strong&gt;: Тестирование интерфейсов приложения напрямую, без UI&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Почему важно&lt;/strong&gt;: Быстрее, ловит баги раньше, тестирует бизнес-логику напрямую&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Типы&lt;/strong&gt;: Функциональное, performance, security, contract тестирование&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Популярные инструменты&lt;/strong&gt;: Postman, REST Assured, SuperTest, k6&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Лучшая практика&lt;/strong&gt;: Тестируй API до создания UI&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ROI&lt;/strong&gt;: API тесты работают в 10-100x быстрее UI тестов&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 12 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;API тестирование — это практика проверки правильной работы программных интерфейсов путём отправки запросов напрямую к endpoints и верификации ответов, полностью независимо от пользовательского интерфейса. По данным отчёта SmartBear State of Software Quality 2025, 72% команд разработки сейчас приоритизируют API тестирование как основную практику — по сравнению с 49% в 2021 году. Исследования Akamai показывают, что 83% всего веб-трафика сегодня проходит через API. В отличие от UI тестирования, API тесты работают на уровне бизнес-логики — это означает возможность начинать тестирование с первой недели разработки, запускать тесты за миллисекунды вместо секунд и покрывать сценарии ошибок, которые просто недостижимы через браузер. Для команд, практикующих непрерывную доставку или работающих с микросервисами, API тестирование — это обязательный элемент самой быстрой петли обратной связи.&lt;/p&gt;</description></item><item><title>Что такое Unit Testing: Полное Руководство 2026</title><link>https://yrkan.com/ru/blog/what-is-unit-testing-explained/</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/what-is-unit-testing-explained/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Unit тестирование&lt;/strong&gt;: Тестирование отдельных функций/методов изолированно&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Зачем нужно&lt;/strong&gt;: Ловит баги рано, позволяет безопасно рефакторить, документирует поведение кода&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевой принцип&lt;/strong&gt;: Каждый тест проверяет ОДНУ вещь&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Популярные фреймворки&lt;/strong&gt;: Jest (JavaScript), pytest (Python), JUnit (Java)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Лучшая практика&lt;/strong&gt;: Пиши тесты перед исправлением багов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ROI&lt;/strong&gt;: Баги пойманные на уровне юнита стоят в 10-100x меньше&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 10 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Unit тестирование — это практика тестирования отдельных функций или методов в полной изоляции от остальной системы, проверяющая что каждый небольшой фрагмент кода выдаёт правильный результат для заданных входных данных. По данным StackOverflow Developer Survey 2024, unit тестирование является наиболее широко используемой практикой тестирования среди всех категорий разработчиков: 74% профессиональных разработчиков пишут юнит тесты регулярно. Мартин Фаулер определяет юнит тест как «тест, запускающий небольшой кусок кода в изоляции от остального кода». Финансовый аргумент убедителен: по данным ISTQB, баги, найденные на стадии unit тестирования, обходятся примерно в 10-100 раз дешевле в исправлении, чем обнаруженные в production. Юнит тесты также служат живой документацией — они точно показывают как должны вести себя функции, ускоряя онбординг новых разработчиков и делая рефакторинг безопасным. В JavaScript (Jest), Python (pytest) и Java (JUnit) написание первого юнит теста занимает минуты, а цикл обратной связи — от изменения кода до результата теста — измеряется секундами.&lt;/p&gt;</description></item><item><title>Что такое Нагрузочное Тестирование: Полное Руководство 2026</title><link>https://yrkan.com/ru/blog/what-is-load-testing-explained/</link><pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/what-is-load-testing-explained/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Нагрузочное тестирование&lt;/strong&gt;: Измерение производительности системы под ожидаемым трафиком&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Цель&lt;/strong&gt;: Проверить что приложение выдерживает нормальную и пиковую нагрузку&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевые метрики&lt;/strong&gt;: Время ответа (p95), пропускная способность, процент ошибок&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Популярные инструменты&lt;/strong&gt;: k6 (современный), JMeter (GUI), Gatling (Scala)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Лучшая практика&lt;/strong&gt;: Тестируй в production-like окружении с реалистичными данными&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Когда запускать&lt;/strong&gt;: Перед релизами, после крупных изменений, регулярно в CI/CD&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 12 минут&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Нагрузочное тестирование — это практика измерения производительности системы под ожидаемым и пиковым пользовательским трафиком путём симуляции одновременных пользователей и проверки сохранения приемлемых времён ответа без деградации. Проблемы с производительностью измеримо дорого обходятся: исследования Google Core Web Vitals показывают, что увеличение времени загрузки на 100 мс снижает конверсию до 7%, а сайты, загружающиеся менее чем за секунду, конвертируют втрое лучше сайтов с временем загрузки 5 секунд. По данным Akamai, 40% пользователей покидают страницу, которая загружается более 3 секунд. Без нагрузочного тестирования эти проблемы обнаруживаются в production — во время запусков продуктов, маркетинговых кампаний или пиковых сезонов, когда их исправление обходится репутацией, деньгами и инженерными часами. Согласно глоссарию ISTQB, нагрузочное тестирование — это отдельный тип тестирования производительности, ориентированный на нормальный и ожидаемый трафик. Каждая команда с SLA, продуктами для пользователей или критичными для бизнеса рабочими процессами нуждается в нагрузочном тестировании перед релизом.&lt;/p&gt;</description></item><item><title>Что такое Регрессионное Тестирование: Полное Руководство 2026</title><link>https://yrkan.com/ru/blog/what-is-regression-testing-guide/</link><pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/what-is-regression-testing-guide/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Регрессионное тестирование&lt;/strong&gt;: Проверка что существующий функционал работает после изменений&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Когда запускать&lt;/strong&gt;: После каждого изменения кода, перед релизами, после фиксов багов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевая цель&lt;/strong&gt;: Поймать баги внесённые новым кодом который ломает старый функционал&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Стратегия&lt;/strong&gt;: Автоматизируй критичные пути, приоритизируй по риску, запускай в CI/CD&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Лучшая практика&lt;/strong&gt;: Маленькие focused regression suite лучше огромных test suite&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ROI&lt;/strong&gt;: Автоматизированная регрессия позволяет continuous delivery&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Подходит для:&lt;/strong&gt; QA-инженеров, разработчиков поддерживающих растущие кодовые базы
&lt;strong&gt;Пропусти, если:&lt;/strong&gt; Создаёшь одноразовый прототип без пользователей&lt;/p&gt;</description></item><item><title>Что такое тестирование ПО: полное руководство для начинающих</title><link>https://yrkan.com/ru/blog/what-is-software-testing/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/blog/what-is-software-testing/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Тестирование ПО&lt;/strong&gt;: Систематический процесс поиска дефектов и верификации соответствия требованиям&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Почему важно&lt;/strong&gt;: Низкое качество ПО обходится экономике в $2,41 трлн/год (CISQ 2022)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;QA vs QC vs Testing&lt;/strong&gt;: QA предотвращает дефекты, QC выявляет их, тестирование выполняет ПО для поиска багов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Уровни тестирования&lt;/strong&gt;: Юнит → Интеграционное → Системное → Приёмочное&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Вход в профессию&lt;/strong&gt;: Сертификация не требует диплома — начни с ISTQB Foundation + практика&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ключевые навыки&lt;/strong&gt;: SQL, API тестирование (Postman), проектирование тест-кейсов, отчётность об ошибках&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Время чтения:&lt;/strong&gt; 15 минут&lt;/p&gt;</description></item><item><title>Эмуляция и ограничение сети</title><link>https://yrkan.com/ru/course/module-10-networking/network-emulation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-10-networking/network-emulation/</guid><description>&lt;h2 id="понимание-темы-эмуляция-сети"&gt;Понимание темы: Эмуляция сети &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d0%bc%d1%8b-%d1%8d%d0%bc%d1%83%d0%bb%d1%8f%d1%86%d0%b8%d1%8f-%d1%81%d0%b5%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Этот урок охватывает эмуляция сети с точки зрения QA-инженерии. Эти концепции помогают быстрее диагностировать проблемы и эффективно общаться с сетевыми инженерами и DevOps.&lt;/p&gt;
&lt;h3 id="почему-это-важно-для-qa"&gt;Почему это важно для QA &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%8d%d1%82%d0%be-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Сетевые проблемы — значительная доля трудновоспроизводимых продакшен-багов. QA-инженеры, понимающие эмуляция сети, могут определить коренную причину вместо отметки «не воспроизводится».&lt;/p&gt;
&lt;h3 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Концепции эмуляция сети напрямую влияют на поведение приложений в продакшене, определяя дизайн тестов и анализ отказов.&lt;/p&gt;</description></item><item><title>Appium для мобильной автоматизации</title><link>https://yrkan.com/ru/course/module-08-automation/appium/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/appium/</guid><description>&lt;h2 id="что-такое-appium"&gt;Что такое Appium? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-appium" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Appium — это фреймворк мобильной автоматизации с открытым исходным кодом, позволяющий писать тесты для приложений Android и iOS с использованием стандартного протокола WebDriver. Ключевая философия Appium — не нужно перекомпилировать или модифицировать приложение для его автоматизации, и можно писать тесты на любом языке программирования.&lt;/p&gt;
&lt;p&gt;Appium работает как сервер, принимающий команды WebDriver от тестового кода и транслирующий их в платформо-специфичные действия автоматизации. Для Android он использует UIAutomator2 или Espresso как базовый движок. Для iOS — XCUITest. Этот уровень абстракции делает Appium кроссплатформенным — тестовый код вызывает один и тот же API WebDriver независимо от целевой платформы.&lt;/p&gt;</description></item><item><title>BDD с Cucumber и Gherkin</title><link>https://yrkan.com/ru/course/module-08-automation/bdd-cucumber-gherkin/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/bdd-cucumber-gherkin/</guid><description>&lt;h2 id="что-такое-bdd"&gt;Что такое BDD? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-bdd" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Behavior-Driven Development (BDD) — практика совместной работы, преодолевающая разрыв между бизнес-стейкхолдерами, разработчиками и тестировщиками. Она использует структурированный естественный язык &lt;strong&gt;Gherkin&lt;/strong&gt; для описания ожидаемого поведения системы.&lt;/p&gt;
&lt;p&gt;Центральная идея: определить &lt;strong&gt;что&lt;/strong&gt; должна делать система (поведение) до реализации &lt;strong&gt;как&lt;/strong&gt; она это делает (код).&lt;/p&gt;
&lt;h2 id="синтаксис-gherkin"&gt;Синтаксис Gherkin &lt;a href="#%d1%81%d0%b8%d0%bd%d1%82%d0%b0%d0%ba%d1%81%d0%b8%d1%81-gherkin" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Gherkin использует три основных ключевых слова:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Given&lt;/strong&gt; — предусловие (начальное состояние)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When&lt;/strong&gt; — действие (что делает пользователь)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then&lt;/strong&gt; — ожидаемый результат (что должно произойти)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="пример-feature-файла"&gt;Пример Feature-файла &lt;a href="#%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80-feature-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gherkin" data-lang="gherkin"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# features/login.feature&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;Feature:&lt;/span&gt;&lt;span style="color:#a6e22e"&gt; Авторизация пользователя
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; Как зарегистрированный пользователь
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; Я хочу войти в свой аккаунт
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; Чтобы получить доступ к дашборду
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;Scenario:&lt;/span&gt;&lt;span style="color:#a6e22e"&gt; Успешный вход с валидными данными
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt; Given &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я на странице логина
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;When &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я ввожу &amp;#34;&lt;/span&gt;&lt;span style="color:#e6db74"&gt;admin@test.com&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;&amp;#34; как email
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;And &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я ввожу &amp;#34;&lt;/span&gt;&lt;span style="color:#e6db74"&gt;secret123&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;&amp;#34; как пароль
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;And &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я нажимаю кнопку входа
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;Then &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я должен быть перенаправлен на дашборд
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;And &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я должен видеть &amp;#34;&lt;/span&gt;&lt;span style="color:#e6db74"&gt;Добро пожаловать, Admin&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;&amp;#34; как приветствие
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;Scenario:&lt;/span&gt;&lt;span style="color:#a6e22e"&gt; Неудачный вход с неверным паролем
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt; Given &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я на странице логина
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;When &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я ввожу &amp;#34;&lt;/span&gt;&lt;span style="color:#e6db74"&gt;admin@test.com&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;&amp;#34; как email
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;And &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я ввожу &amp;#34;&lt;/span&gt;&lt;span style="color:#e6db74"&gt;wrongpassword&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;&amp;#34; как пароль
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;And &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я нажимаю кнопку входа
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;Then &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я должен видеть сообщение об ошибке &amp;#34;&lt;/span&gt;&lt;span style="color:#e6db74"&gt;Неверные учётные данные&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;And &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я должен остаться на странице логина
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="scenario-outline-data-driven-bdd"&gt;Scenario Outline (Data-Driven BDD) &lt;a href="#scenario-outline-data-driven-bdd" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gherkin" data-lang="gherkin"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;Scenario Outline:&lt;/span&gt;&lt;span style="color:#a6e22e"&gt; Вход с различными учётными данными
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt; Given &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я на странице логина
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;When &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я ввожу &amp;#34;&lt;/span&gt;&amp;lt;email&amp;gt;&lt;span style="color:#a6e22e"&gt;&amp;#34; как email
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;And &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я ввожу &amp;#34;&lt;/span&gt;&amp;lt;password&amp;gt;&lt;span style="color:#a6e22e"&gt;&amp;#34; как пароль
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;And &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я нажимаю кнопку входа
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;Then &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я должен видеть &amp;#34;&lt;/span&gt;&amp;lt;результат&amp;gt;&lt;span style="color:#a6e22e"&gt;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;Examples:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt; |&lt;/span&gt; email&lt;span style="color:#66d9ef"&gt; |&lt;/span&gt; password&lt;span style="color:#66d9ef"&gt; |&lt;/span&gt; результат&lt;span style="color:#66d9ef"&gt; |&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt; |&lt;/span&gt;&lt;span style="color:#e6db74"&gt; admin@test.com&lt;/span&gt;&lt;span style="color:#66d9ef"&gt; |&lt;/span&gt;&lt;span style="color:#e6db74"&gt; secret123&lt;/span&gt;&lt;span style="color:#66d9ef"&gt; |&lt;/span&gt;&lt;span style="color:#e6db74"&gt; Добро пожаловать, Admin&lt;/span&gt;&lt;span style="color:#66d9ef"&gt; |&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt; |&lt;/span&gt;&lt;span style="color:#e6db74"&gt; editor@test.com&lt;/span&gt;&lt;span style="color:#66d9ef"&gt; |&lt;/span&gt;&lt;span style="color:#e6db74"&gt; pass456&lt;/span&gt;&lt;span style="color:#66d9ef"&gt; |&lt;/span&gt;&lt;span style="color:#e6db74"&gt; Добро пожаловать, Editor&lt;/span&gt;&lt;span style="color:#66d9ef"&gt; |&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt; |&lt;/span&gt;&lt;span style="color:#e6db74"&gt; wrong@test.com&lt;/span&gt;&lt;span style="color:#66d9ef"&gt; |&lt;/span&gt;&lt;span style="color:#e6db74"&gt; wrong&lt;/span&gt;&lt;span style="color:#66d9ef"&gt; |&lt;/span&gt;&lt;span style="color:#e6db74"&gt; Неверные учётные данные&lt;/span&gt;&lt;span style="color:#66d9ef"&gt; |&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt; | |&lt;/span&gt;&lt;span style="color:#e6db74"&gt; secret123&lt;/span&gt;&lt;span style="color:#66d9ef"&gt; |&lt;/span&gt;&lt;span style="color:#e6db74"&gt; Email обязателен&lt;/span&gt;&lt;span style="color:#66d9ef"&gt; |
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="step-definitions"&gt;Step Definitions &lt;a href="#step-definitions" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Step definitions связывают шаги Gherkin с кодом автоматизации:&lt;/p&gt;</description></item><item><title>Cypress</title><link>https://yrkan.com/ru/course/module-08-automation/cypress/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/cypress/</guid><description>&lt;h2 id="что-такое-cypress"&gt;Что такое Cypress? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-cypress" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Cypress — это современный фреймворк end-to-end тестирования, созданный специально для веба. В отличие от Selenium, который общается с браузерами через внешний драйвер, Cypress запускается прямо внутри браузера. Это архитектурное различие фундаментально — оно означает, что Cypress имеет нативный доступ ко всему, что происходит в приложении: элементам DOM, сетевым запросам, таймерам, локальному хранилищу и даже JavaScript-объектам приложения.&lt;/p&gt;
&lt;p&gt;Когда вы запускаете тест Cypress, фреймворк загружает ваше приложение в iframe и выполняет тестовые команды рядом с ним в том же экземпляре браузера. Нет сетевого перехода между тест-раннером и браузером, нет сериализации команд и нет ожидания ответов по HTTP. Команды выполняются на скорости самого браузера.&lt;/p&gt;</description></item><item><title>Cypress v15.12.0: Word Wrap в Studio, патчи безопасности и исправления стабильности</title><link>https://yrkan.com/ru/tools-updates/cypress-v15-12-whats-new/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/cypress-v15-12-whats-new/</guid><description>&lt;h1 id="cypress-v15120-word-wrap-в-studio-патчи-безопасности-и-исправления-стабильности"&gt;Cypress v15.12.0: Word Wrap в Studio, патчи безопасности и исправления стабильности &lt;a href="#cypress-v15120-word-wrap-%d0%b2-studio-%d0%bf%d0%b0%d1%82%d1%87%d0%b8-%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%b8-%d0%b8%d1%81%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-%d1%81%d1%82%d0%b0%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="ключевые-изменения"&gt;Ключевые изменения &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Cypress v15.12.0, выпущенный 13 марта 2026 года, — это релиз обслуживания, сфокусированный на улучшениях стабильности, опыта разработчика и критических патчах безопасности.&lt;/p&gt;
&lt;h3 id="новая-функция-word-wrap-в-studio"&gt;Новая функция: Word Wrap в Studio &lt;a href="#%d0%bd%d0%be%d0%b2%d0%b0%d1%8f-%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d1%8f-word-wrap-%d0%b2-studio" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Панель Studio теперь поддерживает перенос строк для отображаемого кода. Это улучшение упрощает чтение длинных селекторов, assertions и цепочек команд без горизонтальной прокрутки.&lt;/p&gt;
&lt;h3 id="патчи-безопасности"&gt;Патчи безопасности &lt;a href="#%d0%bf%d0%b0%d1%82%d1%87%d0%b8-%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Два обновления зависимостей устраняют известные CVE-уязвимости:&lt;/p&gt;</description></item><item><title>Data-Driven тестирование</title><link>https://yrkan.com/ru/course/module-08-automation/data-driven-testirovanie/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/data-driven-testirovanie/</guid><description>&lt;h2 id="что-такое-data-driven-тестирование"&gt;Что такое Data-Driven тестирование? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-data-driven-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Data-driven тестирование отделяет логику теста от тестовых данных. Вместо отдельного теста для каждой комбинации вы пишете один тест, запускаемый с разными наборами данных.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Без data-driven подхода (5 отдельных тестов):&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;test&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;логин с данными админа&amp;#39;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;async&lt;/span&gt; ({ &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt; }) =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;loginPage&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;login&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;admin@test.com&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;AdminPass1&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;toHaveURL&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;/dashboard&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;test&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;логин с данными редактора&amp;#39;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;async&lt;/span&gt; ({ &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt; }) =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;loginPage&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;login&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;editor@test.com&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;EditorPass1&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;toHaveURL&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;/dashboard&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// ... ещё 3 почти идентичных теста
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;С data-driven подходом (1 тест, 5 наборов данных):&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Git для QA-инженеров</title><link>https://yrkan.com/ru/course/module-08-automation/git-dlya-qa-inzhenerov/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/git-dlya-qa-inzhenerov/</guid><description>&lt;h2 id="зачем-qa-инженерам-git"&gt;Зачем QA-инженерам Git &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-qa-%d0%b8%d0%bd%d0%b6%d0%b5%d0%bd%d0%b5%d1%80%d0%b0%d0%bc-git" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Каждый профессиональный проект автоматизации использует контроль версий. Git — отраслевой стандарт. Как QA automation engineer, вы будете:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Хранить тест-код в репозиториях рядом с кодом приложения&lt;/li&gt;
&lt;li&gt;Создавать ветки для новых наборов тестов&lt;/li&gt;
&lt;li&gt;Отправлять pull requests для code review&lt;/li&gt;
&lt;li&gt;Разрешать конфликты слияния при одновременной работе нескольких человек&lt;/li&gt;
&lt;li&gt;Использовать историю Git для понимания, когда и почему менялись тесты&lt;/li&gt;
&lt;li&gt;Интегрироваться с CI/CD-пайплайнами, срабатывающими по событиям Git&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="основные-команды-git"&gt;Основные команды Git &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b-git" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="начальная-настройка"&gt;Начальная настройка &lt;a href="#%d0%bd%d0%b0%d1%87%d0%b0%d0%bb%d1%8c%d0%bd%d0%b0%d1%8f-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Настройка идентификации&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global user.name &lt;span style="color:#e6db74"&gt;&amp;#34;Ваше Имя&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global user.email &lt;span style="color:#e6db74"&gt;&amp;#34;ваш.email@company.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Клонирование репозитория&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git clone https://github.com/company/test-automation.git
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd test-automation
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Проверка текущего состояния&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="команды-ежедневного-рабочего-процесса"&gt;Команды ежедневного рабочего процесса &lt;a href="#%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b-%d0%b5%d0%b6%d0%b5%d0%b4%d0%bd%d0%b5%d0%b2%d0%bd%d0%be%d0%b3%d0%be-%d1%80%d0%b0%d0%b1%d0%be%d1%87%d0%b5%d0%b3%d0%be-%d0%bf%d1%80%d0%be%d1%86%d0%b5%d1%81%d1%81%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Получить последние изменения с удалённого репозитория&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git pull origin main
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Создать новую ветку для работы&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git checkout -b feature/add-login-tests
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Посмотреть изменённые файлы&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git status
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git diff
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Добавить конкретные файлы в staging&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git add tests/login.spec.ts
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git add tests/fixtures/users.json
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Коммит с описательным сообщением&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git commit -m &lt;span style="color:#e6db74"&gt;&amp;#34;Добавить набор тестов страницы логина с позитивными и негативными сценариями&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Push ветки на удалённый репозиторий&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git push origin feature/add-login-tests
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="просмотр-истории"&gt;Просмотр истории &lt;a href="#%d0%bf%d1%80%d0%be%d1%81%d0%bc%d0%be%d1%82%d1%80-%d0%b8%d1%81%d1%82%d0%be%d1%80%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Просмотр истории коммитов&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git log --oneline -20
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Что изменилось в конкретном коммите&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git show abc1234
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Кто последний раз менял каждую строку файла&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git blame tests/login.spec.ts
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Найти, когда тест был добавлен или изменён&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git log --follow tests/checkout.spec.ts
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="стратегия-ветвления-для-тест-кода"&gt;Стратегия ветвления для тест-кода &lt;a href="#%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d1%8f-%d0%b2%d0%b5%d1%82%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-%d0%b4%d0%bb%d1%8f-%d1%82%d0%b5%d1%81%d1%82-%d0%ba%d0%be%d0%b4%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="соглашения-по-именованию-веток"&gt;Соглашения по именованию веток &lt;a href="#%d1%81%d0%be%d0%b3%d0%bb%d0%b0%d1%88%d0%b5%d0%bd%d0%b8%d1%8f-%d0%bf%d0%be-%d0%b8%d0%bc%d0%b5%d0%bd%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8e-%d0%b2%d0%b5%d1%82%d0%be%d0%ba" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Используйте ясные, описательные имена:&lt;/p&gt;</description></item><item><title>Headless-тестирование</title><link>https://yrkan.com/ru/course/module-08-automation/headless-testing/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/headless-testing/</guid><description>&lt;h2 id="что-такое-headless-тестирование"&gt;Что такое headless-тестирование? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-headless-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Headless-браузер — это веб-браузер, работающий без графического интерфейса. Он имеет полный движок — HTML-парсер, CSS-движок, JS-среду, сетевой стек — но не рендерит пиксели на экран. Тесты в headless-режиме выполняют все те же операции, что и в обычном браузере, но без затрат на отрисовку.&lt;/p&gt;
&lt;p&gt;Headless-тестирование стало мейнстримом после введения Chrome headless mode в 2017 году. Сегодня все основные браузеры поддерживают headless.&lt;/p&gt;
&lt;h2 id="зачем-headless-режим"&gt;Зачем headless-режим? &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-headless-%d1%80%d0%b5%d0%b6%d0%b8%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="скорость"&gt;Скорость &lt;a href="#%d1%81%d0%ba%d0%be%d1%80%d0%be%d1%81%d1%82%d1%8c" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Без рендеринга пикселей браузеры работают быстрее. Типичное ускорение 20-40%.&lt;/p&gt;</description></item><item><title>Jest v30.3.0: defineConfig, Timer Tick Mode и ключевые исправления</title><link>https://yrkan.com/ru/tools-updates/jest-v30-3-whats-new/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/jest-v30-3-whats-new/</guid><description>&lt;h1 id="jest-v3030-defineconfig-timer-tick-mode-и-ключевые-исправления"&gt;Jest v30.3.0: defineConfig, Timer Tick Mode и ключевые исправления &lt;a href="#jest-v3030-defineconfig-timer-tick-mode-%d0%b8-%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d1%81%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="ключевые-изменения"&gt;Ключевые изменения &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Jest v30.3.0, выпущенный 10 марта 2026 года, вводит улучшения опыта разработчика, модернизирующие конфигурацию Jest и расширяющие возможности fake timers.&lt;/p&gt;
&lt;h3 id="хелперы-defineconfig-и-mergeconfig"&gt;Хелперы defineConfig и mergeConfig &lt;a href="#%d1%85%d0%b5%d0%bb%d0%bf%d0%b5%d1%80%d1%8b-defineconfig-%d0%b8-mergeconfig" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Главная функция — &lt;code&gt;defineConfig&lt;/code&gt; и &lt;code&gt;mergeConfig&lt;/code&gt; — type-safe хелперы конфигурации, вдохновлённые Vite и Vitest. IDE теперь автодополняет каждую опцию с полной безопасностью типов. &lt;code&gt;mergeConfig&lt;/code&gt; позволяет компоновать конфигурации из общих пресетов, упрощая настройку монорепозиториев.&lt;/p&gt;</description></item><item><title>JUnit 6.0.3: Обновления стабильности для автоматизации тестирования</title><link>https://yrkan.com/ru/tools-updates/junit5-r6-0-whats-new/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/junit5-r6-0-whats-new/</guid><description>&lt;p&gt;Команда JUnit выпустила версию 6.0.3 — обновление для популярного фреймворка тестирования Java. Этот патч-релиз, датированный 15 февраля 2026 года, в основном сосредоточен на доработке существующей архитектуры и устранении выявленных проблем, обеспечивая более стабильную среду для автоматизации тестирования.&lt;/p&gt;
&lt;h3 id="ключевые-изменения"&gt;Ключевые Изменения &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Это обновление объединяет улучшения во всех основных модулях JUnit 6: Platform, Jupiter и Vintage. Хотя подробности доступны в &lt;a href="https://docs.junit.org/6.0.3/release-notes.html"&gt;официальных Release Notes&lt;/a&gt;, общий акцент сделан на:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Исправления Ошибок (Bug Fixes):&lt;/strong&gt; Устранение различных проблем, влияющих на выполнение и отчетность тестов, что повышает общую стабильность фреймворка.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Незначительные Улучшения (Minor Enhancements):&lt;/strong&gt; Внутренние оптимизации и корректировки совместимости, способствующие более плавному опыту разработки.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Обновления Зависимостей (Dependency Updates):&lt;/strong&gt; Обновления внутренних зависимостей для поддержания стандартов безопасности и производительности.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Подробный список изменений можно найти в &lt;a href="https://github.com/junit-team/junit-framework/compare/r6.0.2...r6.0.3"&gt;Full Changelog на GitHub&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Keyword-Driven тестирование</title><link>https://yrkan.com/ru/course/module-08-automation/keyword-driven-testirovanie/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/keyword-driven-testirovanie/</guid><description>&lt;h2 id="что-такое-keyword-driven-тестирование"&gt;Что такое Keyword-Driven тестирование? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-keyword-driven-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Keyword-driven тестирование (также table-driven или action-word testing) отделяет дизайн тестов от реализации, определяя тесты как последовательности &lt;strong&gt;keywords&lt;/strong&gt; — человекочитаемых слов-действий, соответствующих коду автоматизации.&lt;/p&gt;
&lt;p&gt;Таблица keywords выглядит так:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Шаг&lt;/th&gt;
 &lt;th&gt;Keyword&lt;/th&gt;
 &lt;th&gt;Аргумент 1&lt;/th&gt;
 &lt;th&gt;Аргумент 2&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;Open Browser&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://app.example.com"&gt;https://app.example.com&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Chrome&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;2&lt;/td&gt;
 &lt;td&gt;Enter Text&lt;/td&gt;
 &lt;td&gt;#email&lt;/td&gt;
 &lt;td&gt;&lt;a href="mailto:admin@test.com"&gt;admin@test.com&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3&lt;/td&gt;
 &lt;td&gt;Enter Text&lt;/td&gt;
 &lt;td&gt;#password&lt;/td&gt;
 &lt;td&gt;secret123&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;4&lt;/td&gt;
 &lt;td&gt;Click Button&lt;/td&gt;
 &lt;td&gt;#login-btn&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;5&lt;/td&gt;
 &lt;td&gt;Verify Text&lt;/td&gt;
 &lt;td&gt;.welcome&lt;/td&gt;
 &lt;td&gt;Welcome, Admin&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;6&lt;/td&gt;
 &lt;td&gt;Close Browser&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Нетехнические члены команды могут читать, писать и поддерживать эти таблицы без понимания кода автоматизации.&lt;/p&gt;</description></item><item><title>Playwright</title><link>https://yrkan.com/ru/course/module-08-automation/playwright/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/playwright/</guid><description>&lt;h2 id="что-такое-playwright"&gt;Что такое Playwright? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-playwright" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Playwright — современный фреймворк автоматизации браузеров от Microsoft. Он предоставляет единый API для управления браузерами Chromium, Firefox и WebKit. Выпущенный в 2020 году, быстро стал самым популярным выбором для новых проектов автоматизации.&lt;/p&gt;
&lt;h3 id="почему-playwright"&gt;Почему Playwright? &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-playwright" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Возможность&lt;/th&gt;
 &lt;th&gt;Playwright&lt;/th&gt;
 &lt;th&gt;Selenium&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Auto-waiting&lt;/td&gt;
 &lt;td&gt;Встроенный&lt;/td&gt;
 &lt;td&gt;Ручные ожидания&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Мультибраузерность&lt;/td&gt;
 &lt;td&gt;Chromium, Firefox, WebKit&lt;/td&gt;
 &lt;td&gt;Отдельные драйверы&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Скорость&lt;/td&gt;
 &lt;td&gt;Очень высокая&lt;/td&gt;
 &lt;td&gt;Средняя&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Локаторы&lt;/td&gt;
 &lt;td&gt;По роли, тексту, test-id&lt;/td&gt;
 &lt;td&gt;CSS, XPath, ID&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Отладка&lt;/td&gt;
 &lt;td&gt;Trace Viewer, Inspector&lt;/td&gt;
 &lt;td&gt;Только скриншоты&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;API-тестирование&lt;/td&gt;
 &lt;td&gt;Встроенное&lt;/td&gt;
 &lt;td&gt;Отдельный инструмент&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Codegen&lt;/td&gt;
 &lt;td&gt;Встроенный&lt;/td&gt;
 &lt;td&gt;Недоступен&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Параллельное выполнение&lt;/td&gt;
 &lt;td&gt;Нативное&lt;/td&gt;
 &lt;td&gt;Требует Grid&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="настройка-playwright"&gt;Настройка Playwright &lt;a href="#%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-playwright" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="javascripttypescript"&gt;JavaScript/TypeScript &lt;a href="#javascripttypescript" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;npm init playwright@latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="python"&gt;Python &lt;a href="#python" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pip install playwright
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;playwright install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="написание-первого-теста"&gt;Написание первого теста &lt;a href="#%d0%bd%d0%b0%d0%bf%d0%b8%d1%81%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d0%b5%d1%80%d0%b2%d0%be%d0%b3%d0%be-%d1%82%d0%b5%d1%81%d1%82%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;import&lt;/span&gt; { &lt;span style="color:#a6e22e"&gt;test&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt; } &lt;span style="color:#66d9ef"&gt;from&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;@playwright/test&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;test&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;пользователь может войти и увидеть дашборд&amp;#39;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;async&lt;/span&gt; ({ &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt; }) &lt;span style="color:#f92672"&gt;=&amp;gt;&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#66d9ef"&gt;goto&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;https://app.example.com/login&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;fill&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;[data-testid=&amp;#34;email&amp;#34;]&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;admin@test.com&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;fill&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;[data-testid=&amp;#34;password&amp;#34;]&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;secret123&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;click&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;[data-testid=&amp;#34;submit&amp;#34;]&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;toHaveURL&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;/dashboard&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;locator&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;.welcome&amp;#39;&lt;/span&gt;)).&lt;span style="color:#a6e22e"&gt;toHaveText&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;Welcome, Admin&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;test&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;невалидный логин показывает ошибку&amp;#39;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;async&lt;/span&gt; ({ &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt; }) &lt;span style="color:#f92672"&gt;=&amp;gt;&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#66d9ef"&gt;goto&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;https://app.example.com/login&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;fill&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;[data-testid=&amp;#34;email&amp;#34;]&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;wrong@test.com&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;fill&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;[data-testid=&amp;#34;password&amp;#34;]&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;wrongpass&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;click&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;[data-testid=&amp;#34;submit&amp;#34;]&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;locator&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;.error&amp;#39;&lt;/span&gt;)).&lt;span style="color:#a6e22e"&gt;toHaveText&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;Неверные учётные данные&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="мощные-локаторы"&gt;Мощные локаторы &lt;a href="#%d0%bc%d0%be%d1%89%d0%bd%d1%8b%d0%b5-%d0%bb%d0%be%d0%ba%d0%b0%d1%82%d0%be%d1%80%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="локаторы-по-роли-рекомендуется"&gt;Локаторы по роли (Рекомендуется) &lt;a href="#%d0%bb%d0%be%d0%ba%d0%b0%d1%82%d0%be%d1%80%d1%8b-%d0%bf%d0%be-%d1%80%d0%be%d0%bb%d0%b8-%d1%80%d0%b5%d0%ba%d0%be%d0%bc%d0%b5%d0%bd%d0%b4%d1%83%d0%b5%d1%82%d1%81%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getByRole&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;button&amp;#39;&lt;/span&gt;, { &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;Войти&amp;#39;&lt;/span&gt; }).&lt;span style="color:#a6e22e"&gt;click&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getByRole&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;textbox&amp;#39;&lt;/span&gt;, { &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;Email&amp;#39;&lt;/span&gt; }).&lt;span style="color:#a6e22e"&gt;fill&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;admin@test.com&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getByLabel&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;Email&amp;#39;&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;fill&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;admin@test.com&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getByPlaceholder&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;Введите email&amp;#39;&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;fill&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;admin@test.com&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getByText&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;Войти&amp;#39;&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;click&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getByTestId&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;login-submit&amp;#39;&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;click&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="цепочки-и-фильтрация-локаторов"&gt;Цепочки и фильтрация локаторов &lt;a href="#%d1%86%d0%b5%d0%bf%d0%be%d1%87%d0%ba%d0%b8-%d0%b8-%d1%84%d0%b8%d0%bb%d1%8c%d1%82%d1%80%d0%b0%d1%86%d0%b8%d1%8f-%d0%bb%d0%be%d0%ba%d0%b0%d1%82%d0%be%d1%80%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;locator&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;.product-card&amp;#39;&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;filter&lt;/span&gt;({ &lt;span style="color:#a6e22e"&gt;hasText&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;Беспроводная мышь&amp;#39;&lt;/span&gt; })
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .&lt;span style="color:#a6e22e"&gt;getByRole&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;button&amp;#39;&lt;/span&gt;, { &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;В корзину&amp;#39;&lt;/span&gt; }).&lt;span style="color:#a6e22e"&gt;click&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;locator&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;.product-card&amp;#39;&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;nth&lt;/span&gt;(&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;click&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;locator&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;.product-card&amp;#39;&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;first&lt;/span&gt;().&lt;span style="color:#a6e22e"&gt;click&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="auto-waiting"&gt;Auto-Waiting &lt;a href="#auto-waiting" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// Ручные ожидания не нужны — Playwright справляется сам
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;click&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;#submit&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// Playwright ждёт: видимость, стабильность, активность, приём событий
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;locator&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;.result&amp;#39;&lt;/span&gt;)).&lt;span style="color:#a6e22e"&gt;toHaveText&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;Успех&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// Playwright повторяет попытки до прохождения ассерта (в пределах таймаута)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="web-first-ассерты"&gt;Web-First ассерты &lt;a href="#web-first-%d0%b0%d1%81%d1%81%d0%b5%d1%80%d1%82%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;toHaveTitle&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;Dashboard&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;toHaveURL&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;/dashboard/&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;locator&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;.status&amp;#39;&lt;/span&gt;)).&lt;span style="color:#a6e22e"&gt;toHaveText&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;Активен&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;locator&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;.item&amp;#39;&lt;/span&gt;)).&lt;span style="color:#a6e22e"&gt;toHaveCount&lt;/span&gt;(&lt;span style="color:#ae81ff"&gt;5&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;locator&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;#btn&amp;#39;&lt;/span&gt;)).&lt;span style="color:#a6e22e"&gt;toBeVisible&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;locator&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;#btn&amp;#39;&lt;/span&gt;)).&lt;span style="color:#a6e22e"&gt;toBeEnabled&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;locator&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;#input&amp;#39;&lt;/span&gt;)).&lt;span style="color:#a6e22e"&gt;toHaveValue&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;hello&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="конфигурация"&gt;Конфигурация &lt;a href="#%d0%ba%d0%be%d0%bd%d1%84%d0%b8%d0%b3%d1%83%d1%80%d0%b0%d1%86%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;import&lt;/span&gt; { &lt;span style="color:#a6e22e"&gt;defineConfig&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;devices&lt;/span&gt; } &lt;span style="color:#66d9ef"&gt;from&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;@playwright/test&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;export&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;default&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;defineConfig&lt;/span&gt;({
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;testDir&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;./tests&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;timeout&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;30000&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;retries&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;process.env.CI&lt;/span&gt; &lt;span style="color:#f92672"&gt;?&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;2&lt;/span&gt; : &lt;span style="color:#66d9ef"&gt;0&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;workers&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;process.env.CI&lt;/span&gt; &lt;span style="color:#f92672"&gt;?&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;4&lt;/span&gt; : &lt;span style="color:#66d9ef"&gt;undefined&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;reporter&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; [[&lt;span style="color:#e6db74"&gt;&amp;#39;html&amp;#39;&lt;/span&gt;], [&lt;span style="color:#e6db74"&gt;&amp;#39;junit&amp;#39;&lt;/span&gt;, { &lt;span style="color:#a6e22e"&gt;outputFile&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;results.xml&amp;#39;&lt;/span&gt; }]],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;use&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;baseURL&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;https://app.example.com&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;screenshot&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;only-on-failure&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;video&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;retain-on-failure&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;trace&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;retain-on-failure&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;projects&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; { &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;chromium&amp;#39;&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;use&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; { ...&lt;span style="color:#a6e22e"&gt;devices&lt;/span&gt;[&lt;span style="color:#e6db74"&gt;&amp;#39;Desktop Chrome&amp;#39;&lt;/span&gt;] } },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; { &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;firefox&amp;#39;&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;use&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; { ...&lt;span style="color:#a6e22e"&gt;devices&lt;/span&gt;[&lt;span style="color:#e6db74"&gt;&amp;#39;Desktop Firefox&amp;#39;&lt;/span&gt;] } },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; { &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;webkit&amp;#39;&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;use&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; { ...&lt;span style="color:#a6e22e"&gt;devices&lt;/span&gt;[&lt;span style="color:#e6db74"&gt;&amp;#39;Desktop Safari&amp;#39;&lt;/span&gt;] } },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; { &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;mobile-chrome&amp;#39;&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;use&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; { ...&lt;span style="color:#a6e22e"&gt;devices&lt;/span&gt;[&lt;span style="color:#e6db74"&gt;&amp;#39;Pixel 5&amp;#39;&lt;/span&gt;] } },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; { &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;mobile-safari&amp;#39;&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;use&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; { ...&lt;span style="color:#a6e22e"&gt;devices&lt;/span&gt;[&lt;span style="color:#e6db74"&gt;&amp;#39;iPhone 13&amp;#39;&lt;/span&gt;] } },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ],
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="продвинутые-возможности"&gt;Продвинутые возможности &lt;a href="#%d0%bf%d1%80%d0%be%d0%b4%d0%b2%d0%b8%d0%bd%d1%83%d1%82%d1%8b%d0%b5-%d0%b2%d0%be%d0%b7%d0%bc%d0%be%d0%b6%d0%bd%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="trace-viewer"&gt;Trace Viewer &lt;a href="#trace-viewer" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;npx playwright test
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;npx playwright show-trace trace.zip
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Trace показывает: скриншоты на каждом шаге, снимки DOM, сетевые запросы, логи консоли и исходный код.&lt;/p&gt;</description></item><item><title>Playwright, Cypress и Selenium: сравнение</title><link>https://yrkan.com/ru/course/module-08-automation/playwright-vs-cypress-vs-selenium/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/playwright-vs-cypress-vs-selenium/</guid><description>&lt;h2 id="почему-это-сравнение-важно"&gt;Почему это сравнение важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%8d%d1%82%d0%be-%d1%81%d1%80%d0%b0%d0%b2%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Выбор фреймворка автоматизации тестирования — одно из наиболее важных технических решений, которое принимает команда QA. Выбранный фреймворк повлияет на продуктивность команды, надёжность тестов, пул кандидатов, скорость CI/CD и затраты на поддержку на годы вперёд. Неправильный выбор ведёт к дорогостоящим миграциям.&lt;/p&gt;
&lt;p&gt;Этот урок даёт объективное, функция-за-функцией сравнение трёх самых популярных фреймворков веб-тестирования: Selenium WebDriver, Playwright и Cypress. Вместо объявления единственного победителя мы дадим критерии для принятия правильного решения в вашем конкретном контексте.&lt;/p&gt;</description></item><item><title>pytest 9.0.2: Прогресс, Совместимость и Исправления</title><link>https://yrkan.com/ru/tools-updates/pytest-9-0-whats-new/</link><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/pytest-9-0-whats-new/</guid><description>&lt;p&gt;pytest 9.0.2, выпущенный 06.12.2025, является важным обновлением, ориентированным на стабильность и совместимость популярного фреймворка для тестирования на Python. Этот релиз устраняет несколько ключевых проблем, обеспечивая более плавную работу для QA-инженеров.&lt;/p&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;pytest 9.0.2 включает важные исправления ошибок и улучшения документации, устраняя несколько проблем совместимости и производительности.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Исправления Ошибок:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Прогресс в Терминале:&lt;/strong&gt; Новая функция отображения прогресса в терминале, представленная в pytest 9.0.0, теперь отключена по умолчанию на большинстве платформ (кроме Windows). Это изменение было реализовано для решения проблем совместимости с различными эмуляторами терминалов. Пользователи могут явно повторно включить эту функцию, передав флаг &lt;code&gt;-p terminalprogress&lt;/code&gt;. Кроме того, escape-коды больше не выводятся, если переменная окружения &lt;code&gt;TERM&lt;/code&gt; установлена в &lt;code&gt;dumb&lt;/code&gt;, что предотвращает проблемы отображения в минимальных средах.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Восстановление &lt;code&gt;config.inicfg&lt;/code&gt;:&lt;/strong&gt; Приватный атрибут &lt;code&gt;config.inicfg&lt;/code&gt;, который претерпел критическое изменение в pytest 9.0.0, был восстановлен до рабочего состояния с использованием совместимости. Это обеспечивает непрерывную функциональность для существующих плагинов и конфигураций, которые полагаются на этот атрибут. Важно отметить, что &lt;code&gt;config.inicfg&lt;/code&gt; будет официально объявлен устаревшим в pytest 9.1 и запланирован к удалению в pytest 10.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Производительность:&lt;/strong&gt; Исправлена значительная проблема квадратичной сложности при обработке &lt;code&gt;unittest&lt;/code&gt; subtests в Python 3.10. Это исправление улучшает скорость выполнения для наборов тестов, использующих функцию subtests из &lt;code&gt;unittest&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Тип Конфигурации:&lt;/strong&gt; Тип TOML для настройки &lt;code&gt;tmp_path_retention_count&lt;/code&gt; в справочнике API был исправлен с числа на строку, обеспечивая точную документацию для файлов конфигурации.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Улучшенная Документация:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Selenium 4.41.0: Поддержка AI и улучшения BiDi</title><link>https://yrkan.com/ru/tools-updates/selenium-selenium-4-41-whats-new/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/selenium-selenium-4-41-whats-new/</guid><description>&lt;h2 id="обзор-релиза-selenium-4410"&gt;Обзор Релиза Selenium 4.41.0 &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d1%80%d0%b5%d0%bb%d0%b8%d0%b7%d0%b0-selenium-4410" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Основы для поддержки AI-агентов.&lt;/li&gt;
&lt;li&gt;Улучшения типизации и системы сборки для Python.&lt;/li&gt;
&lt;li&gt;Расширенная поддержка WebDriver BiDi для .NET.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Функции и Основы:&lt;/strong&gt; Этот релиз вводит фундаментальные изменения для поддержки направлений AI-агентов, что указывает на будущие возможности для продвинутой автоматизации тестирования. Хотя эти изменения не сразу заметны конечным пользователям, они закладывают основу для инноваций в подходе к тестированию с помощью таких инструментов, как Selenium WebDriver. Для тех, кто интересуется будущим автоматизации тестирования, рекомендуем нашу статью &lt;a href="https://yrkan.com/ru/blog/selenium-webdriver-2025-vse-esche-aktualno/"&gt;Selenium WebDriver 2025: Still Relevant?&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Selenium Grid</title><link>https://yrkan.com/ru/course/module-08-automation/selenium-grid/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/selenium-grid/</guid><description>&lt;h2 id="что-такое-selenium-grid"&gt;Что такое Selenium Grid? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-selenium-grid" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Selenium Grid позволяет запускать тесты на нескольких машинах (нодах) параллельно, в разных браузерах и ОС. Вместо последовательного запуска 100 тестов на одной машине (2 часа) можно распределить их на 10 нодов параллельно (12 минут).&lt;/p&gt;
&lt;h3 id="зачем-нужен-grid"&gt;Зачем нужен Grid &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%bd%d1%83%d0%b6%d0%b5%d0%bd-grid" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Без Grid&lt;/th&gt;
 &lt;th&gt;С Grid&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;1 браузер за раз&lt;/td&gt;
 &lt;td&gt;Несколько браузеров одновременно&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Последовательное выполнение&lt;/td&gt;
 &lt;td&gt;Параллельное выполнение&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Одна ОС&lt;/td&gt;
 &lt;td&gt;Несколько ОС&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;100 тестов × 2 мин = 200 мин&lt;/td&gt;
 &lt;td&gt;100 тестов ÷ 10 нодов = 20 мин&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="архитектура-selenium-grid-4"&gt;Архитектура Selenium Grid 4 &lt;a href="#%d0%b0%d1%80%d1%85%d0%b8%d1%82%d0%b5%d0%ba%d1%82%d1%83%d1%80%d0%b0-selenium-grid-4" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;┌─────────────────────────────────────┐
│ Selenium Grid │
│ ┌──────────┐ ┌──────────────┐ │
│ │ Router │ │ Distributor │ │
│ └────┬─────┘ └──────┬───────┘ │
│ ┌────┴─────┐ ┌──────┴───────┐ │
│ │ Session │ │ Node │ │
│ │ Map │ │ Manager │ │
│ └──────────┘ └──────────────┘ │
└─────────────────────────────────────┘
 │ │
 ┌────┴────┐ ┌────┴────┐
 │ Node 1 │ │ Node 2 │
 │ Chrome │ │ Firefox │
 └─────────┘ └─────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Компоненты:&lt;/p&gt;</description></item><item><title>Selenium WebDriver</title><link>https://yrkan.com/ru/course/module-08-automation/selenium-webdriver/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/selenium-webdriver/</guid><description>&lt;h2 id="что-такое-selenium-webdriver"&gt;Что такое Selenium WebDriver? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-selenium-webdriver" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Selenium WebDriver — самый устоявшийся инструмент автоматизации браузеров, используемый миллионами тестировщиков. Он предоставляет программный интерфейс для управления браузерами через протокол W3C WebDriver.&lt;/p&gt;
&lt;h3 id="архитектура-selenium"&gt;Архитектура Selenium &lt;a href="#%d0%b0%d1%80%d1%85%d0%b8%d1%82%d0%b5%d0%ba%d1%82%d1%83%d1%80%d0%b0-selenium" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Тест-код (Java/Python/JS/C#)
 ↓
 API WebDriver
 ↓
 Драйвер браузера (ChromeDriver, GeckoDriver)
 ↓
 Браузер (Chrome, Firefox, Safari, Edge)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Тест-код вызывает API WebDriver, который отправляет команды драйверу конкретного браузера, управляющему реальным браузером.&lt;/p&gt;
&lt;h2 id="настройка-selenium"&gt;Настройка Selenium &lt;a href="#%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-selenium" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="python"&gt;Python &lt;a href="#python" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pip install selenium pytest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="javascript-webdriverio"&gt;JavaScript (WebdriverIO) &lt;a href="#javascript-webdriverio" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;npm init -y
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;npm install webdriverio @wdio/cli @wdio/mocha-framework
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;npx wdio config
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="написание-первого-теста"&gt;Написание первого теста &lt;a href="#%d0%bd%d0%b0%d0%bf%d0%b8%d1%81%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d0%b5%d1%80%d0%b2%d0%be%d0%b3%d0%be-%d1%82%d0%b5%d1%81%d1%82%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="python-1"&gt;Python &lt;a href="#python-1" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;from&lt;/span&gt; selenium &lt;span style="color:#f92672"&gt;import&lt;/span&gt; webdriver
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;from&lt;/span&gt; selenium.webdriver.common.by &lt;span style="color:#f92672"&gt;import&lt;/span&gt; By
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;from&lt;/span&gt; selenium.webdriver.support.ui &lt;span style="color:#f92672"&gt;import&lt;/span&gt; WebDriverWait
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;from&lt;/span&gt; selenium.webdriver.support &lt;span style="color:#f92672"&gt;import&lt;/span&gt; expected_conditions &lt;span style="color:#66d9ef"&gt;as&lt;/span&gt; EC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;def&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;test_valid_login&lt;/span&gt;():
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; driver &lt;span style="color:#f92672"&gt;=&lt;/span&gt; webdriver&lt;span style="color:#f92672"&gt;.&lt;/span&gt;Chrome()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; driver&lt;span style="color:#f92672"&gt;.&lt;/span&gt;get(&lt;span style="color:#e6db74"&gt;&amp;#34;https://app.example.com/login&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; driver&lt;span style="color:#f92672"&gt;.&lt;/span&gt;find_element(By&lt;span style="color:#f92672"&gt;.&lt;/span&gt;ID, &lt;span style="color:#e6db74"&gt;&amp;#34;email&amp;#34;&lt;/span&gt;)&lt;span style="color:#f92672"&gt;.&lt;/span&gt;send_keys(&lt;span style="color:#e6db74"&gt;&amp;#34;admin@test.com&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; driver&lt;span style="color:#f92672"&gt;.&lt;/span&gt;find_element(By&lt;span style="color:#f92672"&gt;.&lt;/span&gt;ID, &lt;span style="color:#e6db74"&gt;&amp;#34;password&amp;#34;&lt;/span&gt;)&lt;span style="color:#f92672"&gt;.&lt;/span&gt;send_keys(&lt;span style="color:#e6db74"&gt;&amp;#34;secret123&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; driver&lt;span style="color:#f92672"&gt;.&lt;/span&gt;find_element(By&lt;span style="color:#f92672"&gt;.&lt;/span&gt;CSS_SELECTOR, &lt;span style="color:#e6db74"&gt;&amp;#34;button[type=&amp;#39;submit&amp;#39;]&amp;#34;&lt;/span&gt;)&lt;span style="color:#f92672"&gt;.&lt;/span&gt;click()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; wait &lt;span style="color:#f92672"&gt;=&lt;/span&gt; WebDriverWait(driver, &lt;span style="color:#ae81ff"&gt;10&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; wait&lt;span style="color:#f92672"&gt;.&lt;/span&gt;until(EC&lt;span style="color:#f92672"&gt;.&lt;/span&gt;url_contains(&lt;span style="color:#e6db74"&gt;&amp;#34;/dashboard&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; welcome &lt;span style="color:#f92672"&gt;=&lt;/span&gt; driver&lt;span style="color:#f92672"&gt;.&lt;/span&gt;find_element(By&lt;span style="color:#f92672"&gt;.&lt;/span&gt;CLASS_NAME, &lt;span style="color:#e6db74"&gt;&amp;#34;welcome&amp;#34;&lt;/span&gt;)&lt;span style="color:#f92672"&gt;.&lt;/span&gt;text
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;assert&lt;/span&gt; welcome &lt;span style="color:#f92672"&gt;==&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;Welcome, Admin&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; driver&lt;span style="color:#f92672"&gt;.&lt;/span&gt;quit()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="java"&gt;Java &lt;a href="#java" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;LoginTest&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; WebDriver driver;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;@BeforeMethod&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;setup&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; driver &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; ChromeDriver();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; driver.&lt;span style="color:#a6e22e"&gt;manage&lt;/span&gt;().&lt;span style="color:#a6e22e"&gt;window&lt;/span&gt;().&lt;span style="color:#a6e22e"&gt;maximize&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;@Test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;testValidLogin&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; driver.&lt;span style="color:#a6e22e"&gt;get&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;https://app.example.com/login&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; driver.&lt;span style="color:#a6e22e"&gt;findElement&lt;/span&gt;(By.&lt;span style="color:#a6e22e"&gt;id&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;email&amp;#34;&lt;/span&gt;)).&lt;span style="color:#a6e22e"&gt;sendKeys&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;admin@test.com&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; driver.&lt;span style="color:#a6e22e"&gt;findElement&lt;/span&gt;(By.&lt;span style="color:#a6e22e"&gt;id&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;password&amp;#34;&lt;/span&gt;)).&lt;span style="color:#a6e22e"&gt;sendKeys&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;secret123&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; driver.&lt;span style="color:#a6e22e"&gt;findElement&lt;/span&gt;(By.&lt;span style="color:#a6e22e"&gt;cssSelector&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;button[type=&amp;#39;submit&amp;#39;]&amp;#34;&lt;/span&gt;)).&lt;span style="color:#a6e22e"&gt;click&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; WebDriverWait wait &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; WebDriverWait(driver, Duration.&lt;span style="color:#a6e22e"&gt;ofSeconds&lt;/span&gt;(10));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; wait.&lt;span style="color:#a6e22e"&gt;until&lt;/span&gt;(ExpectedConditions.&lt;span style="color:#a6e22e"&gt;urlContains&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;/dashboard&amp;#34;&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; String welcome &lt;span style="color:#f92672"&gt;=&lt;/span&gt; driver.&lt;span style="color:#a6e22e"&gt;findElement&lt;/span&gt;(By.&lt;span style="color:#a6e22e"&gt;className&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;welcome&amp;#34;&lt;/span&gt;)).&lt;span style="color:#a6e22e"&gt;getText&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; assertEquals(welcome, &lt;span style="color:#e6db74"&gt;&amp;#34;Welcome, Admin&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;@AfterMethod&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;teardown&lt;/span&gt;() { driver.&lt;span style="color:#a6e22e"&gt;quit&lt;/span&gt;(); }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="стратегии-локаторов"&gt;Стратегии локаторов &lt;a href="#%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d0%b8-%d0%bb%d0%be%d0%ba%d0%b0%d1%82%d0%be%d1%80%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Стратегия&lt;/th&gt;
 &lt;th&gt;Пример&lt;/th&gt;
 &lt;th&gt;Надёжность&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;By.id&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;By.id(&amp;quot;email&amp;quot;)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Высокая (если уникален)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;By.css&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;By.css(&amp;quot;[data-testid='email']&amp;quot;)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Высокая&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;By.xpath&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;By.xpath(&amp;quot;//input[@name='email']&amp;quot;)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Средняя&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;By.name&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;By.name(&amp;quot;email&amp;quot;)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Средняя&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;By.className&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;By.className(&amp;quot;input-email&amp;quot;)&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Низкая&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="лучшие-практики-локаторов"&gt;Лучшие практики локаторов &lt;a href="#%d0%bb%d1%83%d1%87%d1%88%d0%b8%d0%b5-%d0%bf%d1%80%d0%b0%d0%ba%d1%82%d0%b8%d0%ba%d0%b8-%d0%bb%d0%be%d0%ba%d0%b0%d1%82%d0%be%d1%80%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Предпочитайте data-testid:&lt;/strong&gt; &lt;code&gt;[data-testid=&amp;quot;login-submit&amp;quot;]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CSS-селекторы вместо XPath&lt;/strong&gt; — они быстрее&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Избегайте абсолютного XPath:&lt;/strong&gt; &lt;code&gt;/html/body/div[3]/form/input[2]&lt;/code&gt; легко ломается&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Избегайте стилевых классов:&lt;/strong&gt; &lt;code&gt;.btn-primary&lt;/code&gt; может измениться при редизайне&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Относительный XPath при необходимости:&lt;/strong&gt; &lt;code&gt;//button[contains(text(), 'Submit')]&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="ожидания"&gt;Ожидания &lt;a href="#%d0%be%d0%b6%d0%b8%d0%b4%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="неявное-ожидание"&gt;Неявное ожидание &lt;a href="#%d0%bd%d0%b5%d1%8f%d0%b2%d0%bd%d0%be%d0%b5-%d0%be%d0%b6%d0%b8%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;driver&lt;span style="color:#f92672"&gt;.&lt;/span&gt;implicitly_wait(&lt;span style="color:#ae81ff"&gt;10&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Глобальный таймаут для поиска элементов. Просто, но может маскировать проблемы синхронизации.&lt;/p&gt;</description></item><item><title>XCUITest и Espresso</title><link>https://yrkan.com/ru/course/module-08-automation/xcuitest-espresso/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/xcuitest-espresso/</guid><description>&lt;h2 id="зачем-нативные-фреймворки-тестирования"&gt;Зачем нативные фреймворки тестирования? &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%bd%d0%b0%d1%82%d0%b8%d0%b2%d0%bd%d1%8b%d0%b5-%d1%84%d1%80%d0%b5%d0%b9%d0%bc%d0%b2%d0%be%d1%80%d0%ba%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Хотя Appium обеспечивает кроссплатформенное тестирование с единым API, нативные фреймворки — XCUITest для iOS и Espresso для Android — дают значительные преимущества в скорости, надёжности и интеграции с рабочим процессом разработки. Они работают внутри процесса платформы, получая прямой доступ к UI-потоку и устраняя сетевые накладные расходы, вносимые внешними инструментами.&lt;/p&gt;
&lt;p&gt;Нативные фреймворки — это инструменты тестирования первого класса от Apple и Google соответственно. Они обновляются вместе с ОС и SDK платформы, обеспечивая совместимость с новейшими функциями. Многие команды разработки используют нативные фреймворки для основных тестовых наборов и оставляют Appium для кроссплатформенных smoke-тестов.&lt;/p&gt;</description></item><item><title>Автоматизация API с REST Assured</title><link>https://yrkan.com/ru/course/module-08-automation/api-automation-rest-assured/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/api-automation-rest-assured/</guid><description>&lt;h2 id="что-такое-rest-assured"&gt;Что такое REST Assured? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-rest-assured" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;REST Assured — это Java-библиотека, упрощающая тестирование RESTful API. Она предоставляет предметно-ориентированный язык (DSL) на основе паттерна Given-When-Then, который делает API-тесты читаемыми как спецификации на естественном языке. Вместо ручного построения HTTP-запросов, парсинга ответов и написания сложных проверок, REST Assured обрабатывает эти операции через fluent, цепочечный API.&lt;/p&gt;
&lt;p&gt;REST Assured — самая популярная библиотека API-тестирования в экосистеме Java, используемая тысячами организаций для автоматизированной валидации API. Она интегрируется с JUnit, TestNG, Maven, Gradle и CI/CD-пайплайнами.&lt;/p&gt;</description></item><item><title>Борьба с нестабильными тестами</title><link>https://yrkan.com/ru/course/module-08-automation/flaky-tests/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/flaky-tests/</guid><description>&lt;h2 id="что-такое-нестабильные-тесты"&gt;Что такое нестабильные тесты? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%bd%d0%b5%d1%81%d1%82%d0%b0%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Нестабильный тест (flaky test) — тест, который проходит и падает непредсказуемо без изменений кода. Запускаете сюиту — проходит. Запускаете снова на том же коде — тест падает. В третий раз — снова проходит. Это недетерминированное поведение разрушает доверие к тестовой сюите и тратит огромное количество времени разработчиков на расследование ложных падений.&lt;/p&gt;
&lt;p&gt;Google сообщал, что 1.5% их тестов были нестабильными, и эти тесты потребляли 2-16% всех вычислительных ресурсов через повторные запуски.&lt;/p&gt;</description></item><item><title>Визуальное регрессионное тестирование</title><link>https://yrkan.com/ru/course/module-08-automation/visual-regression-testing/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/visual-regression-testing/</guid><description>&lt;h2 id="что-такое-визуальное-регрессионное-тестирование"&gt;Что такое визуальное регрессионное тестирование? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%b2%d0%b8%d0%b7%d1%83%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d1%80%d0%b5%d0%b3%d1%80%d0%b5%d1%81%d1%81%d0%b8%d0%be%d0%bd%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Визуальное регрессионное тестирование — автоматизированная практика сравнения скриншотов UI приложения до и после изменений кода для обнаружения непредвиденных визуальных различий. Функциональные тесты проверяют, что кнопка отправляет форму; визуальные тесты проверяют, что кнопка видна, правильно позиционирована и корректно стилизована.&lt;/p&gt;
&lt;p&gt;Одно CSS-изменение может сломать макет на десятках страниц. Обновление шрифта может сместить выравнивание текста по всему приложению. Функциональные тесты не ловят эти проблемы, потому что HTML-структура и поведение остаются корректными — ломается только внешний вид.&lt;/p&gt;</description></item><item><title>Выбор фреймворка для тестирования</title><link>https://yrkan.com/ru/course/module-08-automation/vybor-freymvorka-dlya-testirovaniya/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/vybor-freymvorka-dlya-testirovaniya/</guid><description>&lt;h2 id="почему-выбор-фреймворка-важен"&gt;Почему выбор фреймворка важен &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%b2%d1%8b%d0%b1%d0%be%d1%80-%d1%84%d1%80%d0%b5%d0%b9%d0%bc%d0%b2%d0%be%d1%80%d0%ba%d0%b0-%d0%b2%d0%b0%d0%b6%d0%b5%d0%bd" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Выбор фреймворка автоматизации тестирования — одно из самых значимых решений в стратегии тестирования. Неправильный выбор может привести к месяцам потраченного впустую труда, дорогим миграциям и разочарованию команды. Правильный выбор ускоряет процесс автоматизации и закладывает основу долгосрочного успеха.&lt;/p&gt;
&lt;p&gt;Этот урок даёт системный подход к оценке фреймворков.&lt;/p&gt;
&lt;h2 id="матрица-критериев-отбора"&gt;Матрица критериев отбора &lt;a href="#%d0%bc%d0%b0%d1%82%d1%80%d0%b8%d1%86%d0%b0-%d0%ba%d1%80%d0%b8%d1%82%d0%b5%d1%80%d0%b8%d0%b5%d0%b2-%d0%be%d1%82%d0%b1%d0%be%d1%80%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Оцените каждый фреймворк-кандидат по этим критериям:&lt;/p&gt;
&lt;h3 id="1-соответствие-технологическому-стеку"&gt;1. Соответствие технологическому стеку &lt;a href="#1-%d1%81%d0%be%d0%be%d1%82%d0%b2%d0%b5%d1%82%d1%81%d1%82%d0%b2%d0%b8%d0%b5-%d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%bc%d1%83-%d1%81%d1%82%d0%b5%d0%ba%d1%83" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Поддерживает ли фреймворк технологии вашего приложения?&lt;/p&gt;</description></item><item><title>Когда автоматизировать</title><link>https://yrkan.com/ru/course/module-08-automation/kogda-avtomatizirovat/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/kogda-avtomatizirovat/</guid><description>&lt;h2 id="решение-об-автоматизации"&gt;Решение об автоматизации &lt;a href="#%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d0%b5-%d0%be%d0%b1-%d0%b0%d0%b2%d1%82%d0%be%d0%bc%d0%b0%d1%82%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Автоматизация тестирования — это не самоцель, а инструмент для получения быстрой обратной связи, расширения покрытия и надёжного регрессионного тестирования. Ключевой навык — понимать, &lt;strong&gt;когда&lt;/strong&gt; автоматизация приносит пользу, а когда нет.&lt;/p&gt;
&lt;p&gt;Многие команды совершают ошибку, пытаясь автоматизировать всё или начиная автоматизацию слишком поздно. Обе крайности ведут к потере ресурсов. Этот урок даёт практический фреймворк для принятия решений об автоматизации.&lt;/p&gt;
&lt;h2 id="фреймворк-принятия-решений"&gt;Фреймворк принятия решений &lt;a href="#%d1%84%d1%80%d0%b5%d0%b9%d0%bc%d0%b2%d0%be%d1%80%d0%ba-%d0%bf%d1%80%d0%b8%d0%bd%d1%8f%d1%82%d0%b8%d1%8f-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Перед автоматизацией любого теста оцените его по пяти критериям:&lt;/p&gt;</description></item><item><title>Концепции ООП для QA</title><link>https://yrkan.com/ru/course/module-08-automation/koncepcii-oop-dlya-qa/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/koncepcii-oop-dlya-qa/</guid><description>&lt;h2 id="почему-ооп-важно-для-автоматизации"&gt;Почему ООП важно для автоматизации &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%be%d0%be%d0%bf-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be-%d0%b4%d0%bb%d1%8f-%d0%b0%d0%b2%d1%82%d0%be%d0%bc%d0%b0%d1%82%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Объектно-ориентированное программирование — это не академическая концепция, а основа поддерживаемой автоматизации тестирования. Без ООП наборы тестов превращаются в неструктурированные скрипты, которые невозможно поддерживать в масштабе.&lt;/p&gt;
&lt;p&gt;Понимание ООП помогает писать организованный, переиспользуемый тест-код, легко адаптируемый при изменениях приложения.&lt;/p&gt;
&lt;h2 id="четыре-принципа-ооп"&gt;Четыре принципа ООП &lt;a href="#%d1%87%d0%b5%d1%82%d1%8b%d1%80%d0%b5-%d0%bf%d1%80%d0%b8%d0%bd%d1%86%d0%b8%d0%bf%d0%b0-%d0%be%d0%be%d0%bf" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-инкапсуляция"&gt;1. Инкапсуляция &lt;a href="#1-%d0%b8%d0%bd%d0%ba%d0%b0%d0%bf%d1%81%d1%83%d0%bb%d1%8f%d1%86%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Инкапсуляция означает объединение данных и методов в классе, сокрытие внутренних деталей и предоставление только необходимого.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Без инкапсуляции:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// Селекторы разбросаны по тестам — кошмар поддержки
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;test&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;пользователь может войти&amp;#39;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;async&lt;/span&gt; ({ &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt; }) =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;fill&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;#email-input-v2&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;admin@test.com&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;fill&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;input[name=&amp;#34;pwd&amp;#34;]&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;secret&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;click&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;.btn-submit-login&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;test&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;пользователь видит дашборд после входа&amp;#39;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;async&lt;/span&gt; ({ &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt; }) =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;fill&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;#email-input-v2&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;admin@test.com&amp;#39;&lt;/span&gt;); &lt;span style="color:#75715e"&gt;// дубликат
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;fill&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;input[name=&amp;#34;pwd&amp;#34;]&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;secret&amp;#39;&lt;/span&gt;); &lt;span style="color:#75715e"&gt;// дубликат
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;click&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;.btn-submit-login&amp;#39;&lt;/span&gt;); &lt;span style="color:#75715e"&gt;// дубликат
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;С инкапсуляцией (Page Object):&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Кроссбраузерное тестирование с BrowserStack</title><link>https://yrkan.com/ru/course/module-08-automation/cross-browser-browserstack/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/cross-browser-browserstack/</guid><description>&lt;h2 id="почему-кроссбраузерное-тестирование-важно"&gt;Почему кроссбраузерное тестирование важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%ba%d1%80%d0%be%d1%81%d1%81%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Несмотря на десятилетия разработки веб-стандартов, разные движки браузеров рендерят страницы с тонкими, но важными различиями. Chromium (Chrome, Edge), Gecko (Firefox) и WebKit (Safari) по-разному интерпретируют свойства CSS, API JavaScript и события DOM. Функция, работающая в Chrome, может ломаться в Safari.&lt;/p&gt;
&lt;p&gt;Типичные проблемы: различия рендеринга CSS flexbox/grid, обработка полей даты, вариации рендеринга шрифтов, различия в поведении скролла, пробелы в поддержке Web API.&lt;/p&gt;
&lt;h2 id="подходы-к-тестированию"&gt;Подходы к тестированию &lt;a href="#%d0%bf%d0%be%d0%b4%d1%85%d0%be%d0%b4%d1%8b-%d0%ba-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8e" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="локальное-тестирование"&gt;Локальное тестирование &lt;a href="#%d0%bb%d0%be%d0%ba%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Запуск тестов локально с несколькими установленными браузерами. Ограничено браузерами, которые поддерживает ваша машина.&lt;/p&gt;</description></item><item><title>Обновление Flyway 12.1.1: Основные Исправления и Влияние на QA</title><link>https://yrkan.com/ru/tools-updates/flyway-flyway-12-1-whats-new/</link><pubDate>Sat, 21 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/flyway-flyway-12-1-whats-new/</guid><description>&lt;h2 id="обновление-flyway-1211-основные-исправления-и-влияние-на-qa"&gt;Обновление Flyway 12.1.1: Основные Исправления и Влияние на QA &lt;a href="#%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-flyway-1211-%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%b8%d1%81%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-%d0%b8-%d0%b2%d0%bb%d0%b8%d1%8f%d0%bd%d0%b8%d0%b5-%d0%bd%d0%b0-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Flyway, популярный инструмент для миграции баз данных, выпустил версию 12.1.1. Это патч-обновление, следующее за 12.1.0, сосредоточено на стабильности и доработке, а не на новых функциях. Оно устраняет несколько выявленных проблем и включает небольшие улучшения для повышения общей надежности. Полную информацию можно найти в &lt;a href="https://documentation.red-gate.com/flyway/release-notes-and-older-versions/release-notes-for-flyway-engine"&gt;официальных примечаниях к выпуску&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="key-changes"&gt;Key Changes &lt;a href="#key-changes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Исправления (Fixes):&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Блокировки PostgreSQL:&lt;/strong&gt; Устранены проблемы, вызывающие блокировку таблицы истории схем в PostgreSQL, предотвращая взаимоблокировки при одновременных попытках миграции.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Парсинг SQL:&lt;/strong&gt; Исправлена ошибка, при которой определенный сложный синтаксис SQL в скриптах миграции некорректно парсился, что приводило к сбоям валидации.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Отчеты об ошибках:&lt;/strong&gt; Улучшены сообщения об ошибках для неудачных операций &lt;code&gt;undo&lt;/code&gt;, предоставляя более четкую диагностическую информацию.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Команда Clean:&lt;/strong&gt; Устранен граничный случай, когда команда &lt;code&gt;clean&lt;/code&gt; могла завершаться сбоем на определенных конфигурациях баз данных.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Улучшения (Improvements):&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Основы программирования для тестировщиков</title><link>https://yrkan.com/ru/course/module-08-automation/osnovy-programmirovaniya-dlya-testirovshchikov/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/osnovy-programmirovaniya-dlya-testirovshchikov/</guid><description>&lt;h2 id="зачем-тестировщикам-навыки-программирования"&gt;Зачем тестировщикам навыки программирования &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d1%89%d0%b8%d0%ba%d0%b0%d0%bc-%d0%bd%d0%b0%d0%b2%d1%8b%d0%ba%d0%b8-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Автоматизация тестирования означает написание кода. Вам не нужно становиться разработчиком, но необходимо достаточно знаний для написания, чтения и поддержки тестовых скриптов. Этот урок покрывает основные концепции программирования для каждого QA automation engineer.&lt;/p&gt;
&lt;p&gt;Мы используем JavaScript для примеров, так как это самый распространённый язык в современной автоматизации (Playwright, Cypress, WebdriverIO). Концепции применимы к любому языку.&lt;/p&gt;
&lt;h2 id="переменные-и-типы-данных"&gt;Переменные и типы данных &lt;a href="#%d0%bf%d0%b5%d1%80%d0%b5%d0%bc%d0%b5%d0%bd%d0%bd%d1%8b%d0%b5-%d0%b8-%d1%82%d0%b8%d0%bf%d1%8b-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Переменные хранят данные, которые используют ваши тесты — учётные данные, URL, ожидаемые значения, селекторы элементов.&lt;/p&gt;</description></item><item><title>Отчёты с Allure</title><link>https://yrkan.com/ru/course/module-08-automation/allure-reporting/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/allure-reporting/</guid><description>&lt;h2 id="что-такое-allure"&gt;Что такое Allure? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-allure" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Allure — это open-source фреймворк отчётности, превращающий сырые результаты тестов в богатые интерактивные HTML-отчёты. В то время как большинство фреймворков дают базовые подсчёты pass/fail, Allure создаёт детальные отчёты с шагами тестов, скриншотами, сетевыми логами, таймлайнами выполнения, историческими трендами и категоризированными падениями.&lt;/p&gt;
&lt;p&gt;Allure интегрируется практически со всеми основными тест-фреймворками: JUnit, TestNG, Pytest, Jest, Mocha, Playwright, Cypress и другими. Он работает в два этапа: сначала тесты генерируют файлы результатов Allure при выполнении; затем CLI Allure генерирует HTML-отчёт из этих файлов.&lt;/p&gt;</description></item><item><title>Оценка по модулю 8</title><link>https://yrkan.com/ru/course/module-08-automation/module-8-assessment/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/module-8-assessment/</guid><description>&lt;h2 id="обзор-оценки"&gt;Обзор оценки &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Поздравляем с завершением модуля 8: Автоматизация тестирования. Эта оценка проверяет понимание всех тем из уроков 8.1-8.29.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Часть&lt;/th&gt;
 &lt;th&gt;Формат&lt;/th&gt;
 &lt;th&gt;Вопросы&lt;/th&gt;
 &lt;th&gt;Время&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Часть 1&lt;/td&gt;
 &lt;td&gt;Тест с выбором ответа&lt;/td&gt;
 &lt;td&gt;10 вопросов&lt;/td&gt;
 &lt;td&gt;10 минут&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Часть 2&lt;/td&gt;
 &lt;td&gt;Сценарные вопросы&lt;/td&gt;
 &lt;td&gt;3 сценария&lt;/td&gt;
 &lt;td&gt;20 минут&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Часть 3&lt;/td&gt;
 &lt;td&gt;Практическое упражнение&lt;/td&gt;
 &lt;td&gt;1 упражнение&lt;/td&gt;
 &lt;td&gt;30 минут&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="часть-1-тест"&gt;Часть 1: Тест &lt;a href="#%d1%87%d0%b0%d1%81%d1%82%d1%8c-1-%d1%82%d0%b5%d1%81%d1%82" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Ответьте на 10 вопросов в frontmatter. У каждого вопроса один правильный ответ.&lt;/p&gt;
&lt;h2 id="часть-2-сценарные-вопросы"&gt;Часть 2: Сценарные вопросы &lt;a href="#%d1%87%d0%b0%d1%81%d1%82%d1%8c-2-%d1%81%d1%86%d0%b5%d0%bd%d0%b0%d1%80%d0%bd%d1%8b%d0%b5-%d0%b2%d0%be%d0%bf%d1%80%d0%be%d1%81%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="сценарий-1-выбор-фреймворка"&gt;Сценарий 1: Выбор фреймворка &lt;a href="#%d1%81%d1%86%d0%b5%d0%bd%d0%b0%d1%80%d0%b8%d0%b9-1-%d0%b2%d1%8b%d0%b1%d0%be%d1%80-%d1%84%d1%80%d0%b5%d0%b9%d0%bc%d0%b2%d0%be%d1%80%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Ваша компания создаёт e-commerce приложение. Команда использует TypeScript и React. Требования: кроссбраузерное тестирование, мульти-вкладки для OAuth, API-тестирование вместе с UI, интеграция CI/CD, команда из 3 QA с TypeScript.&lt;/p&gt;</description></item><item><title>Паттерн Page Object</title><link>https://yrkan.com/ru/course/module-08-automation/pattern-page-object/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/pattern-page-object/</guid><description>&lt;h2 id="что-такое-page-object-model"&gt;Что такое Page Object Model? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-page-object-model" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Page Object Model (POM) — наиболее распространённый паттерн проектирования в UI-автоматизации. Он создаёт класс для каждой страницы или компонента приложения, инкапсулируя все взаимодействия с этой страницей.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Без POM&lt;/strong&gt; — селекторы и действия разбросаны по тестам:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;test&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;пользователь может войти&amp;#39;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;async&lt;/span&gt; ({ &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt; }) =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;fill&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;#email&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;admin@test.com&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;fill&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;#password&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;secret&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;click&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;button.login-btn&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;locator&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;.welcome-msg&amp;#39;&lt;/span&gt;)).&lt;span style="color:#a6e22e"&gt;toHaveText&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;Добро пожаловать, Admin&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;С POM&lt;/strong&gt; — детали страницы инкапсулированы:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;test&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;пользователь может войти&amp;#39;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;async&lt;/span&gt; ({ &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt; }) =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;loginPage&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;LoginPage&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;loginPage&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;login&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;admin@test.com&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;secret&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;dashboard&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;DashboardPage&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;dashboard&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;welcomeMessage&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;toHaveText&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;Добро пожаловать, Admin&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="основные-принципы"&gt;Основные принципы &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%bf%d1%80%d0%b8%d0%bd%d1%86%d0%b8%d0%bf%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-один-класс-на-страницу-или-компонент"&gt;1. Один класс на страницу (или компонент) &lt;a href="#1-%d0%be%d0%b4%d0%b8%d0%bd-%d0%ba%d0%bb%d0%b0%d1%81%d1%81-%d0%bd%d0%b0-%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%b8%d1%86%d1%83-%d0%b8%d0%bb%d0%b8-%d0%ba%d0%be%d0%bc%d0%bf%d0%be%d0%bd%d0%b5%d0%bd%d1%82" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Каждая страница приложения получает свой класс:&lt;/p&gt;</description></item><item><title>Паттерн Screenplay</title><link>https://yrkan.com/ru/course/module-08-automation/pattern-screenplay/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/pattern-screenplay/</guid><description>&lt;h2 id="что-такое-паттерн-screenplay"&gt;Что такое паттерн Screenplay? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%bf%d0%b0%d1%82%d1%82%d0%b5%d1%80%d0%bd-screenplay" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Паттерн Screenplay — продвинутая альтернатива Page Object Model. Вместо организации тестов вокруг страниц он строит их вокруг &lt;strong&gt;актёров&lt;/strong&gt;, выполняющих &lt;strong&gt;задачи&lt;/strong&gt; и задающих &lt;strong&gt;вопросы&lt;/strong&gt; с помощью своих &lt;strong&gt;способностей&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Представьте это как сценарий фильма — вы описываете, что делают актёры, а не как выглядит UI.&lt;/p&gt;
&lt;h3 id="pom-vs-screenplay-сравнение"&gt;POM vs Screenplay: Сравнение &lt;a href="#pom-vs-screenplay-%d1%81%d1%80%d0%b0%d0%b2%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Подход POM:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;loginPage&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;LoginPage&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;loginPage&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;login&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;admin@test.com&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;secret&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;dashboard&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;DashboardPage&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;dashboard&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getUserName&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;toBe&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;Admin&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Подход Screenplay:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;actor&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;attemptsTo&lt;/span&gt;(
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;Login&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;withCredentials&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;admin@test.com&amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;secret&amp;#39;&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;Navigate&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;to&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;Dashboard&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;actor&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;asks&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;UserName&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;displayed&lt;/span&gt;());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;toBe&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;Admin&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Версия Screenplay читается больше как описание поведения пользователя на естественном языке.&lt;/p&gt;</description></item><item><title>Пирамида автоматизации тестирования</title><link>https://yrkan.com/ru/course/module-08-automation/piramida-avtomatizacii-testirovaniya/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/piramida-avtomatizacii-testirovaniya/</guid><description>&lt;h2 id="что-такое-пирамида-автоматизации-тестирования"&gt;Что такое пирамида автоматизации тестирования? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%bf%d0%b8%d1%80%d0%b0%d0%bc%d0%b8%d0%b4%d0%b0-%d0%b0%d0%b2%d1%82%d0%be%d0%bc%d0%b0%d1%82%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Пирамида автоматизации тестирования — это визуальная модель, определяющая распределение автоматизированных тестов по уровням. Введённая Майком Коном в 2009 году, она остаётся одной из важнейших концепций стратегии автоматизации.&lt;/p&gt;
&lt;p&gt;Пирамида имеет три уровня, снизу вверх:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt; /\
 / \ E2E / UI тесты (мало)
 /----\
 / \ Интеграционные тесты (средне)
 /--------\
 / \ Модульные тесты (много)
 /____________\
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Каждый уровень представляет разный тип тестов с различными характеристиками по скорости, стоимости, надёжности и охвату.&lt;/p&gt;</description></item><item><title>Пользовательские проверки и матчеры</title><link>https://yrkan.com/ru/course/module-08-automation/custom-assertions-matchers/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/custom-assertions-matchers/</guid><description>&lt;h2 id="зачем-пользовательские-проверки"&gt;Зачем пользовательские проверки? &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d0%b5%d0%bb%d1%8c%d1%81%d0%ba%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Встроенные проверки generic. &lt;code&gt;assertEquals(expected, actual)&lt;/code&gt; работает для любого сравнения, но сообщение о падении лишено контекста. Пользовательские проверки добавляют доменный контекст: &lt;code&gt;assertThat(user).isActive()&lt;/code&gt; выдаёт: &lt;code&gt;Expected user &amp;quot;alice@example.com&amp;quot; to be active, but status was SUSPENDED&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="построение-в-java"&gt;Построение в Java &lt;a href="#%d0%bf%d0%be%d1%81%d1%82%d1%80%d0%be%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-java" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="assertj-custom-assertions"&gt;AssertJ Custom Assertions &lt;a href="#assertj-custom-assertions" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;UserAssert&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;extends&lt;/span&gt; AbstractAssert&lt;span style="color:#f92672"&gt;&amp;lt;&lt;/span&gt;UserAssert, User&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;UserAssert&lt;/span&gt;(User actual) { &lt;span style="color:#66d9ef"&gt;super&lt;/span&gt;(actual, UserAssert.&lt;span style="color:#a6e22e"&gt;class&lt;/span&gt;); }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; UserAssert &lt;span style="color:#a6e22e"&gt;assertThat&lt;/span&gt;(User user) { &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; UserAssert(user); }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; UserAssert &lt;span style="color:#a6e22e"&gt;isActive&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; isNotNull();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (&lt;span style="color:#f92672"&gt;!&lt;/span&gt;actual.&lt;span style="color:#a6e22e"&gt;isActive&lt;/span&gt;()) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; failWithMessage(&lt;span style="color:#e6db74"&gt;&amp;#34;Expected user &amp;lt;%s&amp;gt; to be active but status was &amp;lt;%s&amp;gt;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; actual.&lt;span style="color:#a6e22e"&gt;getEmail&lt;/span&gt;(), actual.&lt;span style="color:#a6e22e"&gt;getStatus&lt;/span&gt;());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; UserAssert &lt;span style="color:#a6e22e"&gt;hasRole&lt;/span&gt;(String role) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; isNotNull();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (&lt;span style="color:#f92672"&gt;!&lt;/span&gt;actual.&lt;span style="color:#a6e22e"&gt;getRole&lt;/span&gt;().&lt;span style="color:#a6e22e"&gt;equals&lt;/span&gt;(role)) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; failWithMessage(&lt;span style="color:#e6db74"&gt;&amp;#34;Expected user &amp;lt;%s&amp;gt; to have role &amp;lt;%s&amp;gt; but had &amp;lt;%s&amp;gt;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; actual.&lt;span style="color:#a6e22e"&gt;getEmail&lt;/span&gt;(), role, actual.&lt;span style="color:#a6e22e"&gt;getRole&lt;/span&gt;());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// Читается как спецификация&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;UserAssert.&lt;span style="color:#a6e22e"&gt;assertThat&lt;/span&gt;(user).&lt;span style="color:#a6e22e"&gt;isActive&lt;/span&gt;().&lt;span style="color:#a6e22e"&gt;hasRole&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;admin&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="пользовательские-проверки-в-javascript"&gt;Пользовательские проверки в JavaScript &lt;a href="#%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d0%b5%d0%bb%d1%8c%d1%81%d0%ba%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d0%ba%d0%b8-%d0%b2-javascript" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="playwright-custom-matchers"&gt;Playwright Custom Matchers &lt;a href="#playwright-custom-matchers" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;extend&lt;/span&gt;({
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;async&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;toBeLoggedIn&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;isLoggedIn&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;locator&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;.user-menu&amp;#39;&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;isVisible&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;pass&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;isLoggedIn&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;message&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; () =&amp;gt; &lt;span style="color:#a6e22e"&gt;isLoggedIn&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;?&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;Не ожидалось, что страница будет залогинена&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;Ожидалось, что страница залогинена, но меню пользователя не найдено&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; };
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;toBeLoggedIn&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="мягкие-проверки-soft-assertions"&gt;Мягкие проверки (Soft Assertions) &lt;a href="#%d0%bc%d1%8f%d0%b3%d0%ba%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d0%ba%d0%b8-soft-assertions" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Стандартные проверки останавливают тест при первом падении. Мягкие собирают все падения и отчитываются в конце.&lt;/p&gt;</description></item><item><title>Расчёт ROI автоматизации</title><link>https://yrkan.com/ru/course/module-08-automation/raschyot-roi-avtomatizacii/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/raschyot-roi-avtomatizacii/</guid><description>&lt;h2 id="почему-roi-важен-для-автоматизации"&gt;Почему ROI важен для автоматизации &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-roi-%d0%b2%d0%b0%d0%b6%d0%b5%d0%bd-%d0%b4%d0%bb%d1%8f-%d0%b0%d0%b2%d1%82%d0%be%d0%bc%d0%b0%d1%82%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Автоматизация тестирования требует значительных инвестиций — инструменты, обучение, время разработки и постоянное обслуживание. Без чёткого анализа ROI проекты автоматизации рискуют потерять финансирование, поддержку стейкхолдеров или быть заброшенными на полпути.&lt;/p&gt;
&lt;p&gt;Грамотный расчёт ROI помогает ответить на вопрос, который задаст каждый руководитель: &lt;strong&gt;«Сколько денег это сэкономит и когда?»&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="формула-roi"&gt;Формула ROI &lt;a href="#%d1%84%d0%be%d1%80%d0%bc%d1%83%d0%bb%d0%b0-roi" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Базовая формула ROI автоматизации:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ROI = ((Выгоды - Затраты) / Затраты) × 100%
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Положительный ROI означает, что автоматизация экономит больше, чем стоит. ROI 200% означает: на каждый вложенный $1 вы получаете $2 обратно.&lt;/p&gt;</description></item><item><title>Ревью тест-кода: лучшие практики</title><link>https://yrkan.com/ru/course/module-08-automation/test-code-review/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/test-code-review/</guid><description>&lt;h2 id="зачем-ревьюить-тестовый-код"&gt;Зачем ревьюить тестовый код? &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d1%80%d0%b5%d0%b2%d1%8c%d1%8e%d0%b8%d1%82%d1%8c-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2%d1%8b%d0%b9-%d0%ba%d0%be%d0%b4" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестовый код — это продакшн-код. Он запускается в CI/CD-пайплайнах, влияет на решения о деплое и поддерживается годами. Тем не менее, многие команды относятся к нему как к второсортному. Результат: хрупкий, неподдерживаемый набор тестов, которому никто не доверяет.&lt;/p&gt;
&lt;h2 id="чек-лист-ревью"&gt;Чек-лист ревью &lt;a href="#%d1%87%d0%b5%d0%ba-%d0%bb%d0%b8%d1%81%d1%82-%d1%80%d0%b5%d0%b2%d1%8c%d1%8e" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-тест-проверяет-то-что-заявляет"&gt;1. Тест проверяет то, что заявляет? &lt;a href="#1-%d1%82%d0%b5%d1%81%d1%82-%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d1%8f%d0%b5%d1%82-%d1%82%d0%be-%d1%87%d1%82%d0%be-%d0%b7%d0%b0%d1%8f%d0%b2%d0%bb%d1%8f%d0%b5%d1%82" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// ПЛОХО — имя говорит &amp;#34;создание&amp;#34; но тест проверяет только навигацию&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;@Test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;testUserCreation&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; loginPage.&lt;span style="color:#a6e22e"&gt;login&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;admin&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;pass&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; createUserPage.&lt;span style="color:#a6e22e"&gt;fillForm&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;Alice&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;alice@test.com&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; createUserPage.&lt;span style="color:#a6e22e"&gt;submit&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// Нет проверки, что пользователь действительно создан!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// ХОРОШО — проверка соответствует имени&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;@Test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;testUserCreation&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; loginPage.&lt;span style="color:#a6e22e"&gt;login&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;admin&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;pass&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; createUserPage.&lt;span style="color:#a6e22e"&gt;fillForm&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;Alice&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;alice@test.com&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; createUserPage.&lt;span style="color:#a6e22e"&gt;submit&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; assertTrue(userService.&lt;span style="color:#a6e22e"&gt;exists&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;alice@test.com&amp;#34;&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-именование-тестов"&gt;2. Именование тестов &lt;a href="#2-%d0%b8%d0%bc%d0%b5%d0%bd%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// ПЛОХО&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;@Test&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;test1&lt;/span&gt;() { ... }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// ХОРОШО&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;@Test&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;should_showDashboard_when_loginWithValidCredentials&lt;/span&gt;() { ... }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;@Test&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;should_showError_when_loginWithExpiredPassword&lt;/span&gt;() { ... }
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-структура-arrange-act-assert"&gt;3. Структура Arrange-Act-Assert &lt;a href="#3-%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%b0-arrange-act-assert" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;@Test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;should_applyDiscount_when_couponIsValid&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// Arrange&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Order order &lt;span style="color:#f92672"&gt;=&lt;/span&gt; OrderFactory.&lt;span style="color:#a6e22e"&gt;createWithTotal&lt;/span&gt;(100.&lt;span style="color:#a6e22e"&gt;00&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Coupon coupon &lt;span style="color:#f92672"&gt;=&lt;/span&gt; CouponFactory.&lt;span style="color:#a6e22e"&gt;createValid&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;SAVE20&amp;#34;&lt;/span&gt;, 20);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// Act&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; order.&lt;span style="color:#a6e22e"&gt;applyCoupon&lt;/span&gt;(coupon);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// Assert&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; assertEquals(80.&lt;span style="color:#a6e22e"&gt;00&lt;/span&gt;, order.&lt;span style="color:#a6e22e"&gt;getTotal&lt;/span&gt;(), 0.&lt;span style="color:#a6e22e"&gt;01&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="4-одна-задача-на-тест"&gt;4. Одна задача на тест &lt;a href="#4-%d0%be%d0%b4%d0%bd%d0%b0-%d0%b7%d0%b0%d0%b4%d0%b0%d1%87%d0%b0-%d0%bd%d0%b0-%d1%82%d0%b5%d1%81%d1%82" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;h3 id="5-без-логики-в-тестах"&gt;5. Без логики в тестах &lt;a href="#5-%d0%b1%d0%b5%d0%b7-%d0%bb%d0%be%d0%b3%d0%b8%d0%ba%d0%b8-%d0%b2-%d1%82%d0%b5%d1%81%d1%82%d0%b0%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// ПЛОХО — логика в тесте&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;@Test&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;testUserRoles&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; (String role : List.&lt;span style="color:#a6e22e"&gt;of&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;admin&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;user&amp;#34;&lt;/span&gt;)) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (role.&lt;span style="color:#a6e22e"&gt;equals&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;admin&amp;#34;&lt;/span&gt;)) assertTrue(user.&lt;span style="color:#a6e22e"&gt;canDelete&lt;/span&gt;());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// ХОРОШО — отдельные тесты&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;@Test&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;admin_canDelete&lt;/span&gt;() { ... }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;@Test&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;regularUser_cannotDelete&lt;/span&gt;() { ... }
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="типичные-анти-паттерны"&gt;Типичные анти-паттерны &lt;a href="#%d1%82%d0%b8%d0%bf%d0%b8%d1%87%d0%bd%d1%8b%d0%b5-%d0%b0%d0%bd%d1%82%d0%b8-%d0%bf%d0%b0%d1%82%d1%82%d0%b5%d1%80%d0%bd%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="mystery-guest"&gt;Mystery Guest &lt;a href="#mystery-guest" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Тест зависит от невидимого внешнего состояния.&lt;/p&gt;</description></item><item><title>Скриншоты и видеозаписи</title><link>https://yrkan.com/ru/course/module-08-automation/screenshots-video-evidence/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/screenshots-video-evidence/</guid><description>&lt;h2 id="зачем-снимать-визуальные-доказательства"&gt;Зачем снимать визуальные доказательства? &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d1%81%d0%bd%d0%b8%d0%bc%d0%b0%d1%82%d1%8c-%d0%b2%d0%b8%d0%b7%d1%83%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d0%b4%d0%be%d0%ba%d0%b0%d0%b7%d0%b0%d1%82%d0%b5%d0%bb%d1%8c%d1%81%d1%82%d0%b2%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Когда тест падает, самый частый вопрос — «как выглядел экран в момент падения?» Стек-трейс говорит, какая проверка упала, но скриншот показывает реальное состояние приложения. Видеозапись идёт дальше — показывает всю последовательность событий до падения.&lt;/p&gt;
&lt;h2 id="снятие-скриншотов"&gt;Снятие скриншотов &lt;a href="#%d1%81%d0%bd%d1%8f%d1%82%d0%b8%d0%b5-%d1%81%d0%ba%d1%80%d0%b8%d0%bd%d1%88%d0%be%d1%82%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="playwright"&gt;Playwright &lt;a href="#playwright" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;export&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;default&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;defineConfig&lt;/span&gt;({
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;use&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;screenshot&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;only-on-failure&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;test&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;поток оформления&amp;#39;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;async&lt;/span&gt; ({ &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt; }) =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#66d9ef"&gt;goto&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;/cart&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;screenshot&lt;/span&gt;({ &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;screenshots/cart.png&amp;#39;&lt;/span&gt; });
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;click&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;#checkout&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;screenshot&lt;/span&gt;({ &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;screenshots/checkout.png&amp;#39;&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;fullPage&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt; });
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="cypress"&gt;Cypress &lt;a href="#cypress" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;module&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;exports&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;defineConfig&lt;/span&gt;({
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;screenshotOnRunFailure&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;screenshotsFolder&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;cypress/screenshots&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;cy&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;screenshot&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;страница-корзины&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="selenium"&gt;Selenium &lt;a href="#selenium" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;File screenshot &lt;span style="color:#f92672"&gt;=&lt;/span&gt; ((TakesScreenshot) driver).&lt;span style="color:#a6e22e"&gt;getScreenshotAs&lt;/span&gt;(OutputType.&lt;span style="color:#a6e22e"&gt;FILE&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;FileUtils.&lt;span style="color:#a6e22e"&gt;copyFile&lt;/span&gt;(screenshot, &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; File(&lt;span style="color:#e6db74"&gt;&amp;#34;screenshots/failure.png&amp;#34;&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="видеозапись"&gt;Видеозапись &lt;a href="#%d0%b2%d0%b8%d0%b4%d0%b5%d0%be%d0%b7%d0%b0%d0%bf%d0%b8%d1%81%d1%8c" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="playwright-1"&gt;Playwright &lt;a href="#playwright-1" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;export&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;default&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;defineConfig&lt;/span&gt;({
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;use&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;video&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;retain-on-failure&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="cypress-1"&gt;Cypress &lt;a href="#cypress-1" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;module&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;exports&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;defineConfig&lt;/span&gt;({
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;video&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;videoCompression&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;32&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="playwright-trace-viewer"&gt;Playwright Trace Viewer &lt;a href="#playwright-trace-viewer" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;use&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;trace&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;on-first-retry&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// npx playwright show-trace test-results/trace.zip
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="интеграция-cicd"&gt;Интеграция CI/CD &lt;a href="#%d0%b8%d0%bd%d1%82%d0%b5%d0%b3%d1%80%d0%b0%d1%86%d0%b8%d1%8f-cicd" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="артефакты-github-actions"&gt;Артефакты GitHub Actions &lt;a href="#%d0%b0%d1%80%d1%82%d0%b5%d1%84%d0%b0%d0%ba%d1%82%d1%8b-github-actions" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- &lt;span style="color:#f92672"&gt;name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;Запуск тестов Playwright&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;run&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;npx playwright test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;continue-on-error&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- &lt;span style="color:#f92672"&gt;name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;Загрузка артефактов&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;uses&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;actions/upload-artifact@v4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;if&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;always()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;with&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;name&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;доказательства-тестов&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;path&lt;/span&gt;: |&lt;span style="color:#e6db74"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; test-results/
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; playwright-report/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;retention-days&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;30&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="пошаговые-доказательства"&gt;Пошаговые доказательства &lt;a href="#%d0%bf%d0%be%d1%88%d0%b0%d0%b3%d0%be%d0%b2%d1%8b%d0%b5-%d0%b4%d0%be%d0%ba%d0%b0%d0%b7%d0%b0%d1%82%d0%b5%d0%bb%d1%8c%d1%81%d1%82%d0%b2%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;test&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;полный поток покупки&amp;#39;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;async&lt;/span&gt; ({ &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt; }) =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#66d9ef"&gt;goto&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;/products&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;screenshot&lt;/span&gt;({ &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;evidence/01-страница-товаров.png&amp;#39;&lt;/span&gt; });
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;click&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;[data-testid=&amp;#34;add-to-cart&amp;#34;]&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;screenshot&lt;/span&gt;({ &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;evidence/02-добавлено-в-корзину.png&amp;#39;&lt;/span&gt; });
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#66d9ef"&gt;goto&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;/cart&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;screenshot&lt;/span&gt;({ &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;evidence/03-корзина.png&amp;#39;&lt;/span&gt; });
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;click&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;#checkout&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;screenshot&lt;/span&gt;({ &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;evidence/04-форма-оплаты.png&amp;#39;&lt;/span&gt; });
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;click&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;#submit-payment&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;locator&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;.confirmation&amp;#39;&lt;/span&gt;)).&lt;span style="color:#a6e22e"&gt;toBeVisible&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;page&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;screenshot&lt;/span&gt;({ &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;evidence/05-подтверждение.png&amp;#39;&lt;/span&gt; });
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="лучшие-практики"&gt;Лучшие практики &lt;a href="#%d0%bb%d1%83%d1%87%d1%88%d0%b8%d0%b5-%d0%bf%d1%80%d0%b0%d0%ba%d1%82%d0%b8%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Всегда снимать при падении&lt;/strong&gt; — минимальное требование&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Снимать полную страницу&lt;/strong&gt; — частичные скриншоты теряют контекст&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Описательные имена файлов&lt;/strong&gt; — включать имя теста, шаг и время&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Политики хранения&lt;/strong&gt; — 30 дней типично&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Сжимать видео&lt;/strong&gt; — баланс между качеством и размером&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Использовать Playwright traces&lt;/strong&gt; — дают гораздо более богатые данные отладки&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="упражнения"&gt;Упражнения &lt;a href="#%d1%83%d0%bf%d1%80%d0%b0%d0%b6%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="упражнение-1-стратегия-скриншотов"&gt;Упражнение 1: Стратегия скриншотов &lt;a href="#%d1%83%d0%bf%d1%80%d0%b0%d0%b6%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-1-%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d1%8f-%d1%81%d0%ba%d1%80%d0%b8%d0%bd%d1%88%d0%be%d1%82%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Настройте автоматические скриншоты при падении и на ключевых шагах. Запустите тесты, проверьте доказательства.&lt;/p&gt;</description></item><item><title>Фабрики тестовых данных и фикстуры</title><link>https://yrkan.com/ru/course/module-08-automation/test-data-factories/</link><pubDate>Tue, 17 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-08-automation/test-data-factories/</guid><description>&lt;h2 id="проблема-тестовых-данных"&gt;Проблема тестовых данных &lt;a href="#%d0%bf%d1%80%d0%be%d0%b1%d0%bb%d0%b5%d0%bc%d0%b0-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2%d1%8b%d1%85-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;С ростом тестовых наборов управление тестовыми данными становится одной из главных проблем поддержки. Представьте 500 тестов, каждый требующий объект User. Если модель User получает новое обязательное поле — нужно обновить все 500 тестов.&lt;/p&gt;
&lt;p&gt;Захардкоженные данные создают три проблемы: &lt;strong&gt;дублирование&lt;/strong&gt;, &lt;strong&gt;хрупкость&lt;/strong&gt; и &lt;strong&gt;непрозрачность&lt;/strong&gt; (тесты засорены данными, не относящимися к проверяемому).&lt;/p&gt;
&lt;h2 id="фабрики-тестовых-данных"&gt;Фабрики тестовых данных &lt;a href="#%d1%84%d0%b0%d0%b1%d1%80%d0%b8%d0%ba%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2%d1%8b%d1%85-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Фабрика — централизованный модуль, создающий тестовые объекты с разумными значениями по умолчанию.&lt;/p&gt;
&lt;h3 id="паттерн-factory"&gt;Паттерн Factory &lt;a href="#%d0%bf%d0%b0%d1%82%d1%82%d0%b5%d1%80%d0%bd-factory" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;UserFactory&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;int&lt;/span&gt; counter &lt;span style="color:#f92672"&gt;=&lt;/span&gt; 0;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; User &lt;span style="color:#a6e22e"&gt;createDefault&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; counter&lt;span style="color:#f92672"&gt;++&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; User.&lt;span style="color:#a6e22e"&gt;builder&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .&lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;Test User &amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; counter)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .&lt;span style="color:#a6e22e"&gt;email&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;user&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;+&lt;/span&gt; counter &lt;span style="color:#f92672"&gt;+&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;@test.com&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .&lt;span style="color:#a6e22e"&gt;role&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;user&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .&lt;span style="color:#a6e22e"&gt;active&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .&lt;span style="color:#a6e22e"&gt;build&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; User &lt;span style="color:#a6e22e"&gt;createAdmin&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; createDefault().&lt;span style="color:#a6e22e"&gt;toBuilder&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .&lt;span style="color:#a6e22e"&gt;role&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;admin&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .&lt;span style="color:#a6e22e"&gt;permissions&lt;/span&gt;(List.&lt;span style="color:#a6e22e"&gt;of&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;read&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;write&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;delete&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;manage_users&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .&lt;span style="color:#a6e22e"&gt;build&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;@Test&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;void&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;adminCanDeleteUsers&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; User admin &lt;span style="color:#f92672"&gt;=&lt;/span&gt; UserFactory.&lt;span style="color:#a6e22e"&gt;createAdmin&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; User target &lt;span style="color:#f92672"&gt;=&lt;/span&gt; UserFactory.&lt;span style="color:#a6e22e"&gt;createDefault&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; assertTrue(userService.&lt;span style="color:#a6e22e"&gt;canDelete&lt;/span&gt;(admin, target));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="паттерн-builder"&gt;Паттерн Builder &lt;a href="#%d0%bf%d0%b0%d1%82%d1%82%d0%b5%d1%80%d0%bd-builder" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;UserBuilder&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; String name &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;Default User&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; String email &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;default@test.com&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; String role &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;user&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;private&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;boolean&lt;/span&gt; active &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;static&lt;/span&gt; UserBuilder &lt;span style="color:#a6e22e"&gt;aUser&lt;/span&gt;() { &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; UserBuilder(); }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; UserBuilder &lt;span style="color:#a6e22e"&gt;withName&lt;/span&gt;(String name) { &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;name&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; name; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; UserBuilder &lt;span style="color:#a6e22e"&gt;withRole&lt;/span&gt;(String role) { &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;role&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; role; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; UserBuilder &lt;span style="color:#a6e22e"&gt;inactive&lt;/span&gt;() { &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;active&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;false&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;this&lt;/span&gt;; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;public&lt;/span&gt; User &lt;span style="color:#a6e22e"&gt;build&lt;/span&gt;() { &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; User(name, email, role, active); }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;User admin &lt;span style="color:#f92672"&gt;=&lt;/span&gt; UserBuilder.&lt;span style="color:#a6e22e"&gt;aUser&lt;/span&gt;().&lt;span style="color:#a6e22e"&gt;withName&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;Alice&amp;#34;&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;withRole&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;admin&amp;#34;&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;build&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="пример-на-python-factory-boy"&gt;Пример на Python (Factory Boy) &lt;a href="#%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80-%d0%bd%d0%b0-python-factory-boy" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;import&lt;/span&gt; factory
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;from&lt;/span&gt; models &lt;span style="color:#f92672"&gt;import&lt;/span&gt; User
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;UserFactory&lt;/span&gt;(factory&lt;span style="color:#f92672"&gt;.&lt;/span&gt;Factory):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;Meta&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; model &lt;span style="color:#f92672"&gt;=&lt;/span&gt; User
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; name &lt;span style="color:#f92672"&gt;=&lt;/span&gt; factory&lt;span style="color:#f92672"&gt;.&lt;/span&gt;Faker(&lt;span style="color:#e6db74"&gt;&amp;#39;name&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; email &lt;span style="color:#f92672"&gt;=&lt;/span&gt; factory&lt;span style="color:#f92672"&gt;.&lt;/span&gt;LazyAttribute(&lt;span style="color:#66d9ef"&gt;lambda&lt;/span&gt; obj: &lt;span style="color:#e6db74"&gt;f&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#e6db74"&gt;{&lt;/span&gt;obj&lt;span style="color:#f92672"&gt;.&lt;/span&gt;name&lt;span style="color:#f92672"&gt;.&lt;/span&gt;lower()&lt;span style="color:#f92672"&gt;.&lt;/span&gt;replace(&lt;span style="color:#e6db74"&gt;&amp;#39; &amp;#39;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#39;.&amp;#39;&lt;/span&gt;)&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;@test.com&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; role &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;user&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; active &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;AdminFactory&lt;/span&gt;(UserFactory):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; role &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;admin&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; permissions &lt;span style="color:#f92672"&gt;=&lt;/span&gt; [&lt;span style="color:#e6db74"&gt;&amp;#34;read&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;write&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;delete&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;manage_users&amp;#34;&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;user &lt;span style="color:#f92672"&gt;=&lt;/span&gt; UserFactory()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;admin &lt;span style="color:#f92672"&gt;=&lt;/span&gt; AdminFactory()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="тестовые-фикстуры"&gt;Тестовые фикстуры &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2%d1%8b%d0%b5-%d1%84%d0%b8%d0%ba%d1%81%d1%82%d1%83%d1%80%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Фикстуры управляют жизненным циклом теста — настраивают предусловия и выполняют очистку.&lt;/p&gt;</description></item><item><title>Playwright v1.58.2: Обновление Браузеров и Важные Исправления</title><link>https://yrkan.com/ru/tools-updates/playwright-v1-58-whats-new/</link><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/tools-updates/playwright-v1-58-whats-new/</guid><description>&lt;h1 id="playwright-v1582-обновление-браузеров-и-важные-исправления"&gt;Playwright v1.58.2: Обновление Браузеров и Важные Исправления &lt;a href="#playwright-v1582-%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80%d0%be%d0%b2-%d0%b8-%d0%b2%d0%b0%d0%b6%d0%bd%d1%8b%d0%b5-%d0%b8%d1%81%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="ключевые-изменения"&gt;Ключевые Изменения &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Playwright v1.58.2, выпущенный 06.02.2026, является важным точечным релизом, сфокусированным на стабильности и совместимости за счет существенных обновлений и исправлений ошибок. Эта версия обеспечивает лучшее соответствие последним браузерным средам, что критически важно для точного веб-тестирования.&lt;/p&gt;
&lt;h3 id="обновления-версий-браузеров"&gt;Обновления Версий Браузеров &lt;a href="#%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-%d0%b2%d0%b5%d1%80%d1%81%d0%b8%d0%b9-%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Это обновление приводит встроенные браузеры к их последним стабильным выпускам, гарантируя, что ваши тесты выполняются с учетом текущего поведения и стандартов браузеров:&lt;/p&gt;</description></item><item><title>A/B-тестирование мобильных приложений</title><link>https://yrkan.com/ru/course/module-07-mobile/mobile-ab-testing/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/mobile-ab-testing/</guid><description>&lt;h2 id="обзор-ab-тестирование-мобильных-приложений"&gt;Обзор A/B-тестирование мобильных приложений &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-ab-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bc%d0%be%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d1%8b%d1%85-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A/B-тестирование мобильных приложений — критический аспект мобильного качества, требующий понимания платформо-специфичного поведения, инструментов и ожиданий пользователей.&lt;/p&gt;
&lt;h2 id="почему-ab-тестирование-мобильных-приложений-важно"&gt;Почему A/B-тестирование мобильных приложений важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-ab-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bc%d0%be%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d1%8b%d1%85-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильные приложения работают в условиях, которые десктопные приложения никогда не встречают. A/B-тестирование мобильных приложений решает уникальные задачи, возникающие из мобильного оборудования, ПО и паттернов использования.&lt;/p&gt;
&lt;h2 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="различия-платформ"&gt;Различия платформ &lt;a href="#%d1%80%d0%b0%d0%b7%d0%bb%d0%b8%d1%87%d0%b8%d1%8f-%d0%bf%d0%bb%d0%b0%d1%82%d1%84%d0%be%d1%80%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;A/B-тестирование мобильных приложений различается между iOS и Android из-за фундаментальных архитектурных различий:&lt;/p&gt;</description></item><item><title>Deep Links и Universal Links</title><link>https://yrkan.com/ru/course/module-07-mobile/deep-links-universal-links/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/deep-links-universal-links/</guid><description>&lt;h2 id="обзор-deep-links-и-universal-links"&gt;Обзор Deep Links и Universal Links &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-deep-links-%d0%b8-universal-links" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Deep Links и Universal Links — критический аспект мобильного качества, требующий понимания платформо-специфичного поведения, инструментов и ожиданий пользователей.&lt;/p&gt;
&lt;h2 id="почему-deep-links-и-universal-links-важно"&gt;Почему Deep Links и Universal Links важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-deep-links-%d0%b8-universal-links-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильные приложения работают в условиях, которые десктопные приложения никогда не встречают. Deep Links и Universal Links решает уникальные задачи, возникающие из мобильного оборудования, ПО и паттернов использования.&lt;/p&gt;
&lt;h2 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="различия-платформ"&gt;Различия платформ &lt;a href="#%d1%80%d0%b0%d0%b7%d0%bb%d0%b8%d1%87%d0%b8%d1%8f-%d0%bf%d0%bb%d0%b0%d1%82%d1%84%d0%be%d1%80%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Deep Links и Universal Links различается между iOS и Android из-за фундаментальных архитектурных различий:&lt;/p&gt;</description></item><item><title>Аналитика крашей: Crashlytics и Sentry</title><link>https://yrkan.com/ru/course/module-07-mobile/crash-analytics/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/crash-analytics/</guid><description>&lt;h2 id="обзор-аналитика-крашей-crashlytics-и-sentry"&gt;Обзор Аналитика крашей: Crashlytics и Sentry &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d0%b0%d0%bd%d0%b0%d0%bb%d0%b8%d1%82%d0%b8%d0%ba%d0%b0-%d0%ba%d1%80%d0%b0%d1%88%d0%b5%d0%b9-crashlytics-%d0%b8-sentry" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Аналитика крашей: Crashlytics и Sentry — критический аспект мобильного качества, требующий понимания платформо-специфичного поведения, инструментов и ожиданий пользователей.&lt;/p&gt;
&lt;h2 id="почему-аналитика-крашей-crashlytics-и-sentry-важно"&gt;Почему Аналитика крашей: Crashlytics и Sentry важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%b0%d0%bd%d0%b0%d0%bb%d0%b8%d1%82%d0%b8%d0%ba%d0%b0-%d0%ba%d1%80%d0%b0%d1%88%d0%b5%d0%b9-crashlytics-%d0%b8-sentry-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильные приложения работают в условиях, которые десктопные приложения никогда не встречают. Аналитика крашей: Crashlytics и Sentry решает уникальные задачи, возникающие из мобильного оборудования, ПО и паттернов использования.&lt;/p&gt;
&lt;h2 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="различия-платформ"&gt;Различия платформ &lt;a href="#%d1%80%d0%b0%d0%b7%d0%bb%d0%b8%d1%87%d0%b8%d1%8f-%d0%bf%d0%bb%d0%b0%d1%82%d1%84%d0%be%d1%80%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Аналитика крашей: Crashlytics и Sentry различается между iOS и Android из-за фундаментальных архитектурных различий:&lt;/p&gt;</description></item><item><title>Дистрибуция приложений: TestFlight и Firebase</title><link>https://yrkan.com/ru/course/module-07-mobile/app-distribution-testflight-firebase/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/app-distribution-testflight-firebase/</guid><description>&lt;h2 id="обзор-дистрибуция-приложений-testflight-и-firebase"&gt;Обзор Дистрибуция приложений: TestFlight и Firebase &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d0%b4%d0%b8%d1%81%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%86%d0%b8%d1%8f-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9-testflight-%d0%b8-firebase" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Дистрибуция приложений: TestFlight и Firebase — критический аспект мобильного качества, требующий понимания платформо-специфичного поведения, инструментов и ожиданий пользователей.&lt;/p&gt;
&lt;h2 id="почему-дистрибуция-приложений-testflight-и-firebase-важно"&gt;Почему Дистрибуция приложений: TestFlight и Firebase важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%b4%d0%b8%d1%81%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%86%d0%b8%d1%8f-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9-testflight-%d0%b8-firebase-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильные приложения работают в условиях, которые десктопные приложения никогда не встречают. Дистрибуция приложений: TestFlight и Firebase решает уникальные задачи, возникающие из мобильного оборудования, ПО и паттернов использования.&lt;/p&gt;
&lt;h2 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="различия-платформ"&gt;Различия платформ &lt;a href="#%d1%80%d0%b0%d0%b7%d0%bb%d0%b8%d1%87%d0%b8%d1%8f-%d0%bf%d0%bb%d0%b0%d1%82%d1%84%d0%be%d1%80%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Дистрибуция приложений: TestFlight и Firebase различается между iOS и Android из-за фундаментальных архитектурных различий:&lt;/p&gt;</description></item><item><title>Настройка лаборатории устройств</title><link>https://yrkan.com/ru/course/module-07-mobile/device-lab-setup/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/device-lab-setup/</guid><description>&lt;h2 id="зачем-нужна-лаборатория-устройств"&gt;Зачем нужна лаборатория устройств &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%bd%d1%83%d0%b6%d0%bd%d0%b0-%d0%bb%d0%b0%d0%b1%d0%be%d1%80%d0%b0%d1%82%d0%be%d1%80%d0%b8%d1%8f-%d1%83%d1%81%d1%82%d1%80%d0%be%d0%b9%d1%81%d1%82%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование на симуляторах и эмуляторах обнаруживает много багов, но не может воспроизвести полный мобильный опыт. Физические устройства ведут себя иначе в критических областях: точность GPS, качество камеры, связь по Bluetooth, биометрическая аутентификация, push-уведомления, потребление батареи и реальные сетевые условия.&lt;/p&gt;
&lt;p&gt;Лаборатория устройств — физическая, облачная или гибридная — необходима для серьёзного мобильного тестирования.&lt;/p&gt;
&lt;h2 id="настройка-физической-лаборатории"&gt;Настройка физической лаборатории &lt;a href="#%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d1%84%d0%b8%d0%b7%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%b9-%d0%bb%d0%b0%d0%b1%d0%be%d1%80%d0%b0%d1%82%d0%be%d1%80%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="минимально-жизнеспособная-лаборатория"&gt;Минимально жизнеспособная лаборатория &lt;a href="#%d0%bc%d0%b8%d0%bd%d0%b8%d0%bc%d0%b0%d0%bb%d1%8c%d0%bd%d0%be-%d0%b6%d0%b8%d0%b7%d0%bd%d0%b5%d1%81%d0%bf%d0%be%d1%81%d0%be%d0%b1%d0%bd%d0%b0%d1%8f-%d0%bb%d0%b0%d0%b1%d0%be%d1%80%d0%b0%d1%82%d0%be%d1%80%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Для небольшой команды, начинающей мобильное тестирование:&lt;/p&gt;</description></item><item><title>Нативные, гибридные и кроссплатформенные приложения</title><link>https://yrkan.com/ru/course/module-07-mobile/native-hybrid-cross-platform/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/native-hybrid-cross-platform/</guid><description>&lt;h2 id="понимание-архитектур-мобильных-приложений"&gt;Понимание архитектур мобильных приложений &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b0%d1%80%d1%85%d0%b8%d1%82%d0%b5%d0%ba%d1%82%d1%83%d1%80-%d0%bc%d0%be%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d1%8b%d1%85-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Прежде чем эффективно тестировать мобильное приложение, нужно понять, как оно было создано. Архитектура напрямую определяет, какие инструменты вы используете, какие типы багов ожидать и на чём сфокусировать усилия тестирования.&lt;/p&gt;
&lt;p&gt;Существует три основных подхода к созданию мобильных приложений, каждый со своими последствиями для тестирования.&lt;/p&gt;
&lt;h2 id="нативные-приложения"&gt;Нативные приложения &lt;a href="#%d0%bd%d0%b0%d1%82%d0%b8%d0%b2%d0%bd%d1%8b%d0%b5-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Нативные приложения создаются специально для одной платформы с использованием официального языка и SDK.&lt;/p&gt;
&lt;h3 id="характеристики"&gt;Характеристики &lt;a href="#%d1%85%d0%b0%d1%80%d0%b0%d0%ba%d1%82%d0%b5%d1%80%d0%b8%d1%81%d1%82%d0%b8%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Платформа&lt;/th&gt;
 &lt;th&gt;Язык&lt;/th&gt;
 &lt;th&gt;IDE&lt;/th&gt;
 &lt;th&gt;UI-фреймворк&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;iOS&lt;/td&gt;
 &lt;td&gt;Swift или Objective-C&lt;/td&gt;
 &lt;td&gt;Xcode&lt;/td&gt;
 &lt;td&gt;UIKit или SwiftUI&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Android&lt;/td&gt;
 &lt;td&gt;Kotlin или Java&lt;/td&gt;
 &lt;td&gt;Android Studio&lt;/td&gt;
 &lt;td&gt;Jetpack Compose или XML Views&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Примеры:&lt;/strong&gt; Apple Maps, Google Maps, большинство банковских приложений, Instagram (в основном нативный).&lt;/p&gt;</description></item><item><title>Особенности тестирования Android</title><link>https://yrkan.com/ru/course/module-07-mobile/android-testing-specifics/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/android-testing-specifics/</guid><description>&lt;h2 id="основы-тестирования-android"&gt;Основы тестирования Android &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d1%8b-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-android" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Открытая экосистема Android создаёт как возможности, так и вызовы для тестировщиков. Свобода, позволяющая тысячам производителей кастомизировать Android, создаёт проблему фрагментации, определяющую QA на Android.&lt;/p&gt;
&lt;h2 id="жизненный-цикл-activity"&gt;Жизненный цикл Activity &lt;a href="#%d0%b6%d0%b8%d0%b7%d0%bd%d0%b5%d0%bd%d0%bd%d1%8b%d0%b9-%d1%86%d0%b8%d0%ba%d0%bb-activity" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Жизненный цикл Activity — важнейший концепт для тестировщиков Android. Activities (экраны) проходят через специфические переходы состояний, часто вызывающие баги.&lt;/p&gt;
&lt;h3 id="состояния-activity"&gt;Состояния Activity &lt;a href="#%d1%81%d0%be%d1%81%d1%82%d0%be%d1%8f%d0%bd%d0%b8%d1%8f-activity" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Created → Started → Resumed → Paused → Stopped → Destroyed
&lt;/code&gt;&lt;/pre&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Callback&lt;/th&gt;
 &lt;th&gt;Когда вызывается&lt;/th&gt;
 &lt;th&gt;Фокус тестирования&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;onCreate&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Activity создан впервые&lt;/td&gt;
 &lt;td&gt;Инициализация, загрузка данных&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;onStart&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Activity становится видимым&lt;/td&gt;
 &lt;td&gt;Настройка UI&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;onResume&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Activity получает фокус&lt;/td&gt;
 &lt;td&gt;Обновление данных&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;onPause&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Другой activity выходит на передний план&lt;/td&gt;
 &lt;td&gt;Сохранение временных данных&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;onStop&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Activity больше не видим&lt;/td&gt;
 &lt;td&gt;Освобождение тяжёлых ресурсов&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;onDestroy&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Activity уничтожается&lt;/td&gt;
 &lt;td&gt;Очистка&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="изменения-конфигурации"&gt;Изменения конфигурации &lt;a href="#%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f-%d0%ba%d0%be%d0%bd%d1%84%d0%b8%d0%b3%d1%83%d1%80%d0%b0%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;При изменении конфигурации устройства Android уничтожает и пересоздаёт Activity:&lt;/p&gt;</description></item><item><title>Особенности тестирования iOS</title><link>https://yrkan.com/ru/course/module-07-mobile/ios-testing-specifics/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/ios-testing-specifics/</guid><description>&lt;h2 id="основы-тестирования-ios"&gt;Основы тестирования iOS &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d1%8b-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-ios" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование iOS требует понимания строго контролируемой экосистемы Apple. В отличие от Android, где производители могут модифицировать ОС, каждое устройство iOS работает на немодифицированной операционной системе Apple.&lt;/p&gt;
&lt;h2 id="жизненный-цикл-ios-приложений"&gt;Жизненный цикл iOS-приложений &lt;a href="#%d0%b6%d0%b8%d0%b7%d0%bd%d0%b5%d0%bd%d0%bd%d1%8b%d0%b9-%d1%86%d0%b8%d0%ba%d0%bb-ios-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Понимание жизненного цикла критично для мобильных тестировщиков, потому что многие баги возникают при переходах между состояниями.&lt;/p&gt;
&lt;h3 id="состояния-приложения"&gt;Состояния приложения &lt;a href="#%d1%81%d0%be%d1%81%d1%82%d0%be%d1%8f%d0%bd%d0%b8%d1%8f-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Не запущено → Неактивно → Активно → Фоновое → Приостановлено → Завершено
&lt;/code&gt;&lt;/pre&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Состояние&lt;/th&gt;
 &lt;th&gt;Описание&lt;/th&gt;
 &lt;th&gt;Фокус тестирования&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Не запущено&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Приложение не запускалось или было завершено&lt;/td&gt;
 &lt;td&gt;Производительность холодного старта&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Неактивно&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;На переднем плане, но не получает события&lt;/td&gt;
 &lt;td&gt;Обработка прерываний&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Активно&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;На переднем плане, получает события&lt;/td&gt;
 &lt;td&gt;Обычная функциональность&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Фоновое&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Выполняет код, но не видимо&lt;/td&gt;
 &lt;td&gt;Завершение фоновых задач&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Приостановлено&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;В памяти, но код не выполняется&lt;/td&gt;
 &lt;td&gt;Восстановление состояния&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Завершено&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Удалено из памяти&lt;/td&gt;
 &lt;td&gt;Сохранение данных&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="критические-сценарии-тестирования"&gt;Критические сценарии тестирования &lt;a href="#%d0%ba%d1%80%d0%b8%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d0%b5-%d1%81%d1%86%d0%b5%d0%bd%d0%b0%d1%80%d0%b8%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Холодный vs тёплый старт:&lt;/strong&gt; Замерьте запуск из завершённого состояния (холодный) против приостановленного (тёплый). Пользователи замечают, если холодный старт занимает более 2 секунд.&lt;/p&gt;</description></item><item><title>Оценка по модулю 7</title><link>https://yrkan.com/ru/course/module-07-mobile/module-7-assessment/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/module-7-assessment/</guid><description>&lt;h2 id="обзор-оценки"&gt;Обзор оценки &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Поздравляем с завершением Модуля 7: Мобильное тестирование. Эта оценка проверяет понимание всех тем из уроков 7.1 — 7.24.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Часть&lt;/th&gt;
 &lt;th&gt;Формат&lt;/th&gt;
 &lt;th&gt;Вопросы&lt;/th&gt;
 &lt;th&gt;Время&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Часть 1&lt;/td&gt;
 &lt;td&gt;Тест с выбором ответа&lt;/td&gt;
 &lt;td&gt;10 вопросов&lt;/td&gt;
 &lt;td&gt;10 минут&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Часть 2&lt;/td&gt;
 &lt;td&gt;Вопросы по сценариям&lt;/td&gt;
 &lt;td&gt;3 сценария&lt;/td&gt;
 &lt;td&gt;15 минут&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Часть 3&lt;/td&gt;
 &lt;td&gt;Практическое упражнение&lt;/td&gt;
 &lt;td&gt;1 упражнение&lt;/td&gt;
 &lt;td&gt;20 минут&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="как-использовать-эту-оценку"&gt;Как использовать эту оценку &lt;a href="#%d0%ba%d0%b0%d0%ba-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d1%8c-%d1%8d%d1%82%d1%83-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d1%83" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Часть 1: 10 баллов (1 балл за правильный ответ)&lt;/li&gt;
&lt;li&gt;Часть 2: 15 баллов (5 баллов за сценарий)&lt;/li&gt;
&lt;li&gt;Часть 3: 15 баллов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Всего: 40 баллов&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Проходной балл: 28/40 (70%)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="покрытые-темы"&gt;Покрытые темы &lt;a href="#%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d1%82%d1%8b%d0%b5-%d1%82%d0%b5%d0%bc%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Основы платформ&lt;/strong&gt; — iOS vs Android, нативные/гибридные/кроссплатформенные&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Лаборатория устройств&lt;/strong&gt; — Физические устройства, облачные farms, стратегия выбора&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Специфика платформ&lt;/strong&gt; — Жизненный цикл iOS/Android, различия производителей&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Тестирование UI/UX&lt;/strong&gt; — Зоны касания, жесты, адаптивные макеты&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Связь&lt;/strong&gt; — Сетевые условия, офлайн-режим, синхронизация&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Push-уведомления&lt;/strong&gt; — Доставка, отображение, deep linking, разрешения&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deep links&lt;/strong&gt; — Universal links, app links&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Производительность&lt;/strong&gt; — Батарея, память, хранилище, профилирование&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Безопасность&lt;/strong&gt; — Хранение данных, сетевая безопасность, биометрия&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Аналитика крашей&lt;/strong&gt; — Crashlytics, Sentry&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Монетизация&lt;/strong&gt; — Внутренние покупки, подписки&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Расширенные платформы&lt;/strong&gt; — CarPlay, Android Auto, носимые устройства&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Качество&lt;/strong&gt; — A/B-тестирование, дистрибуция, доступность, локализация&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="часть-1-тест-с-выбором-ответа"&gt;Часть 1: Тест с выбором ответа &lt;a href="#%d1%87%d0%b0%d1%81%d1%82%d1%8c-1-%d1%82%d0%b5%d1%81%d1%82-%d1%81-%d0%b2%d1%8b%d0%b1%d0%be%d1%80%d0%be%d0%bc-%d0%be%d1%82%d0%b2%d0%b5%d1%82%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Вопросы теста находятся в frontmatter этого урока.&lt;/p&gt;</description></item><item><title>Профилирование производительности мобильных приложений</title><link>https://yrkan.com/ru/course/module-07-mobile/mobile-performance-profiling/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/mobile-performance-profiling/</guid><description>&lt;h2 id="обзор-профилирование-производительности-мобильных-приложений"&gt;Обзор Профилирование производительности мобильных приложений &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d0%bf%d1%80%d0%be%d1%84%d0%b8%d0%bb%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b8%d0%b7%d0%b2%d0%be%d0%b4%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%bc%d0%be%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d1%8b%d1%85-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Профилирование производительности мобильных приложений — критический аспект мобильного качества, требующий понимания платформо-специфичного поведения, инструментов и ожиданий пользователей.&lt;/p&gt;
&lt;h2 id="почему-профилирование-производительности-мобильных-приложений-важно"&gt;Почему Профилирование производительности мобильных приложений важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%bf%d1%80%d0%be%d1%84%d0%b8%d0%bb%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b8%d0%b7%d0%b2%d0%be%d0%b4%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%bc%d0%be%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d1%8b%d1%85-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильные приложения работают в условиях, которые десктопные приложения никогда не встречают. Профилирование производительности мобильных приложений решает уникальные задачи, возникающие из мобильного оборудования, ПО и паттернов использования.&lt;/p&gt;
&lt;h2 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="различия-платформ"&gt;Различия платформ &lt;a href="#%d1%80%d0%b0%d0%b7%d0%bb%d0%b8%d1%87%d0%b8%d1%8f-%d0%bf%d0%bb%d0%b0%d1%82%d1%84%d0%be%d1%80%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Профилирование производительности мобильных приложений различается между iOS и Android из-за фундаментальных архитектурных различий:&lt;/p&gt;</description></item><item><title>Тестирование CarPlay и Android Auto</title><link>https://yrkan.com/ru/course/module-07-mobile/carplay-android-auto/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/carplay-android-auto/</guid><description>&lt;h2 id="обзор-тестирование-carplay-и-android-auto"&gt;Обзор Тестирование CarPlay и Android Auto &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-carplay-%d0%b8-android-auto" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование CarPlay и Android Auto — критический аспект мобильного качества, требующий понимания платформо-специфичного поведения, инструментов и ожиданий пользователей.&lt;/p&gt;
&lt;h2 id="почему-тестирование-carplay-и-android-auto-важно"&gt;Почему Тестирование CarPlay и Android Auto важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-carplay-%d0%b8-android-auto-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильные приложения работают в условиях, которые десктопные приложения никогда не встречают. Тестирование CarPlay и Android Auto решает уникальные задачи, возникающие из мобильного оборудования, ПО и паттернов использования.&lt;/p&gt;
&lt;h2 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="различия-платформ"&gt;Различия платформ &lt;a href="#%d1%80%d0%b0%d0%b7%d0%bb%d0%b8%d1%87%d0%b8%d1%8f-%d0%bf%d0%bb%d0%b0%d1%82%d1%84%d0%be%d1%80%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Тестирование CarPlay и Android Auto различается между iOS и Android из-за фундаментальных архитектурных различий:&lt;/p&gt;</description></item><item><title>Тестирование iOS и Android</title><link>https://yrkan.com/ru/course/module-07-mobile/ios-vs-android-testing/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/ios-vs-android-testing/</guid><description>&lt;h2 id="введение-в-тестирование-мобильных-платформ"&gt;Введение в тестирование мобильных платформ &lt;a href="#%d0%b2%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bc%d0%be%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d1%8b%d1%85-%d0%bf%d0%bb%d0%b0%d1%82%d1%84%d0%be%d1%80%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильное тестирование фундаментально отличается от веб-тестирования. В отличие от браузеров, которые используют общие движки рендеринга и веб-стандарты, iOS и Android — это полностью отдельные экосистемы с разными языками программирования, инструментами разработки, гайдлайнами дизайна и механизмами дистрибуции.&lt;/p&gt;
&lt;p&gt;Как QA-инженер, понимание этих различий не опционально — оно напрямую влияет на вашу стратегию тестирования, выбор инструментов и типы багов, которые вы найдёте.&lt;/p&gt;
&lt;p&gt;Этот урок сравнивает две основные мобильные платформы с точки зрения тестировщика, покрывая практические различия, влияющие на вашу ежедневную работу.&lt;/p&gt;</description></item><item><title>Тестирование push-уведомлений</title><link>https://yrkan.com/ru/course/module-07-mobile/push-notification-testing/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/push-notification-testing/</guid><description>&lt;h2 id="обзор-тестирование-push-уведомлений"&gt;Обзор Тестирование push-уведомлений &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-push-%d1%83%d0%b2%d0%b5%d0%b4%d0%be%d0%bc%d0%bb%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование push-уведомлений — критический аспект мобильного качества, требующий понимания платформо-специфичного поведения, инструментов и ожиданий пользователей.&lt;/p&gt;
&lt;h2 id="почему-тестирование-push-уведомлений-важно"&gt;Почему Тестирование push-уведомлений важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-push-%d1%83%d0%b2%d0%b5%d0%b4%d0%be%d0%bc%d0%bb%d0%b5%d0%bd%d0%b8%d0%b9-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильные приложения работают в условиях, которые десктопные приложения никогда не встречают. Тестирование push-уведомлений решает уникальные задачи, возникающие из мобильного оборудования, ПО и паттернов использования.&lt;/p&gt;
&lt;h2 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="различия-платформ"&gt;Различия платформ &lt;a href="#%d1%80%d0%b0%d0%b7%d0%bb%d0%b8%d1%87%d0%b8%d1%8f-%d0%bf%d0%bb%d0%b0%d1%82%d1%84%d0%be%d1%80%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Тестирование push-уведомлений различается между iOS и Android из-за фундаментальных архитектурных различий:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Аспект&lt;/th&gt;
 &lt;th&gt;iOS&lt;/th&gt;
 &lt;th&gt;Android&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Реализация&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Контролируется Apple, консистентная&lt;/td&gt;
 &lt;td&gt;Варьируется по производителям&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Инструменты&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Xcode, Instruments&lt;/td&gt;
 &lt;td&gt;Android Studio, ADB&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Типичные проблемы&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Строгие гайдлайны, модель разрешений&lt;/td&gt;
 &lt;td&gt;Фрагментация, кастомизация&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="подход-к-тестированию"&gt;Подход к тестированию &lt;a href="#%d0%bf%d0%be%d0%b4%d1%85%d0%be%d0%b4-%d0%ba-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8e" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Систематический подход включает:&lt;/p&gt;</description></item><item><title>Тестирование UI/UX мобильных приложений</title><link>https://yrkan.com/ru/course/module-07-mobile/mobile-ui-ux-testing/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/mobile-ui-ux-testing/</guid><description>&lt;h2 id="основы-тестирования-мобильного-uiux"&gt;Основы тестирования мобильного UI/UX &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d1%8b-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d0%bc%d0%be%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d0%be%d0%b3%d0%be-uiux" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование мобильного UI/UX выходит далеко за рамки проверки отображения элементов на экране. Мобильные устройства вводят уникальные паттерны взаимодействия — сенсорные жесты, различные размеры экранов, использование одной рукой, видимость на улице и контексты с частыми прерываниями.&lt;/p&gt;
&lt;h2 id="тестирование-зон-касания-touch-targets"&gt;Тестирование зон касания (Touch Targets) &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b7%d0%be%d0%bd-%d0%ba%d0%b0%d1%81%d0%b0%d0%bd%d0%b8%d1%8f-touch-targets" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Зоны касания — это области интерактивных элементов, доступные для нажатия. В отличие от курсора мыши с пиксельной точностью, палец — неточное устройство ввода.&lt;/p&gt;
&lt;h3 id="рекомендации-по-минимальному-размеру"&gt;Рекомендации по минимальному размеру &lt;a href="#%d1%80%d0%b5%d0%ba%d0%be%d0%bc%d0%b5%d0%bd%d0%b4%d0%b0%d1%86%d0%b8%d0%b8-%d0%bf%d0%be-%d0%bc%d0%b8%d0%bd%d0%b8%d0%bc%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%bc%d1%83-%d1%80%d0%b0%d0%b7%d0%bc%d0%b5%d1%80%d1%83" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Платформа&lt;/th&gt;
 &lt;th&gt;Минимальный размер&lt;/th&gt;
 &lt;th&gt;Рекомендуемый&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Apple (HIG)&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;44x44 точки&lt;/td&gt;
 &lt;td&gt;44x44 точки или больше&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Google (Material)&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;48x48 dp&lt;/td&gt;
 &lt;td&gt;48x48 dp или больше&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;WCAG 2.5.5&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;44x44 CSS пикселей&lt;/td&gt;
 &lt;td&gt;Для соответствия AAA&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="типичные-проблемы-зон-касания"&gt;Типичные проблемы зон касания &lt;a href="#%d1%82%d0%b8%d0%bf%d0%b8%d1%87%d0%bd%d1%8b%d0%b5-%d0%bf%d1%80%d0%be%d0%b1%d0%bb%d0%b5%d0%bc%d1%8b-%d0%b7%d0%be%d0%bd-%d0%ba%d0%b0%d1%81%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Слишком маленькие:&lt;/strong&gt; Ссылки в тексте, кнопки закрытия модальных окон, чекбоксы&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Слишком близко:&lt;/strong&gt; Кнопки действий в списках, элементы тулбара&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Невидимый padding:&lt;/strong&gt; Кнопка выглядит большой, но нажимается только текст&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Перекрывающиеся цели:&lt;/strong&gt; Два элемента с пересекающимися зонами нажатия&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="анализ-thumb-zone"&gt;Анализ Thumb Zone &lt;a href="#%d0%b0%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7-thumb-zone" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Большинство пользователей держат телефон одной рукой. Карты «thumb zone» показывают, какие области экрана легко, сложно или невозможно достать.&lt;/p&gt;</description></item><item><title>Тестирование батареи и производительности</title><link>https://yrkan.com/ru/course/module-07-mobile/battery-performance-testing/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/battery-performance-testing/</guid><description>&lt;h2 id="обзор-тестирование-батареи-и-производительности"&gt;Обзор Тестирование батареи и производительности &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b1%d0%b0%d1%82%d0%b0%d1%80%d0%b5%d0%b8-%d0%b8-%d0%bf%d1%80%d0%be%d0%b8%d0%b7%d0%b2%d0%be%d0%b4%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование батареи и производительности — критический аспект мобильного качества, требующий понимания платформо-специфичного поведения, инструментов и ожиданий пользователей.&lt;/p&gt;
&lt;h2 id="почему-тестирование-батареи-и-производительности-важно"&gt;Почему Тестирование батареи и производительности важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b1%d0%b0%d1%82%d0%b0%d1%80%d0%b5%d0%b8-%d0%b8-%d0%bf%d1%80%d0%be%d0%b8%d0%b7%d0%b2%d0%be%d0%b4%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильные приложения работают в условиях, которые десктопные приложения никогда не встречают. Тестирование батареи и производительности решает уникальные задачи, возникающие из мобильного оборудования, ПО и паттернов использования.&lt;/p&gt;
&lt;h2 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="различия-платформ"&gt;Различия платформ &lt;a href="#%d1%80%d0%b0%d0%b7%d0%bb%d0%b8%d1%87%d0%b8%d1%8f-%d0%bf%d0%bb%d0%b0%d1%82%d1%84%d0%be%d1%80%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Тестирование батареи и производительности различается между iOS и Android из-за фундаментальных архитектурных различий:&lt;/p&gt;</description></item><item><title>Тестирование безопасности мобильных приложений</title><link>https://yrkan.com/ru/course/module-07-mobile/mobile-security-testing/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/mobile-security-testing/</guid><description>&lt;h2 id="обзор-тестирование-безопасности-мобильных-приложений"&gt;Обзор Тестирование безопасности мобильных приложений &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%bc%d0%be%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d1%8b%d1%85-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование безопасности мобильных приложений — критический аспект мобильного качества, требующий понимания платформо-специфичного поведения, инструментов и ожиданий пользователей.&lt;/p&gt;
&lt;h2 id="почему-тестирование-безопасности-мобильных-приложений-важно"&gt;Почему Тестирование безопасности мобильных приложений важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%bc%d0%be%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d1%8b%d1%85-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильные приложения работают в условиях, которые десктопные приложения никогда не встречают. Тестирование безопасности мобильных приложений решает уникальные задачи, возникающие из мобильного оборудования, ПО и паттернов использования.&lt;/p&gt;
&lt;h2 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="различия-платформ"&gt;Различия платформ &lt;a href="#%d1%80%d0%b0%d0%b7%d0%bb%d0%b8%d1%87%d0%b8%d1%8f-%d0%bf%d0%bb%d0%b0%d1%82%d1%84%d0%be%d1%80%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Тестирование безопасности мобильных приложений различается между iOS и Android из-за фундаментальных архитектурных различий:&lt;/p&gt;</description></item><item><title>Тестирование биометрической аутентификации</title><link>https://yrkan.com/ru/course/module-07-mobile/biometric-authentication-testing/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/biometric-authentication-testing/</guid><description>&lt;h2 id="обзор-тестирование-биометрической-аутентификации"&gt;Обзор Тестирование биометрической аутентификации &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b1%d0%b8%d0%be%d0%bc%d0%b5%d1%82%d1%80%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%b9-%d0%b0%d1%83%d1%82%d0%b5%d0%bd%d1%82%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование биометрической аутентификации — критический аспект мобильного качества, требующий понимания платформо-специфичного поведения, инструментов и ожиданий пользователей.&lt;/p&gt;
&lt;h2 id="почему-тестирование-биометрической-аутентификации-важно"&gt;Почему Тестирование биометрической аутентификации важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b1%d0%b8%d0%be%d0%bc%d0%b5%d1%82%d1%80%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%b9-%d0%b0%d1%83%d1%82%d0%b5%d0%bd%d1%82%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d0%b8-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильные приложения работают в условиях, которые десктопные приложения никогда не встречают. Тестирование биометрической аутентификации решает уникальные задачи, возникающие из мобильного оборудования, ПО и паттернов использования.&lt;/p&gt;
&lt;h2 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="различия-платформ"&gt;Различия платформ &lt;a href="#%d1%80%d0%b0%d0%b7%d0%bb%d0%b8%d1%87%d0%b8%d1%8f-%d0%bf%d0%bb%d0%b0%d1%82%d1%84%d0%be%d1%80%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Тестирование биометрической аутентификации различается между iOS и Android из-за фундаментальных архитектурных различий:&lt;/p&gt;</description></item><item><title>Тестирование внутренних покупок</title><link>https://yrkan.com/ru/course/module-07-mobile/in-app-purchase-testing/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/in-app-purchase-testing/</guid><description>&lt;h2 id="обзор-тестирование-внутренних-покупок"&gt;Обзор Тестирование внутренних покупок &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2%d0%bd%d1%83%d1%82%d1%80%d0%b5%d0%bd%d0%bd%d0%b8%d1%85-%d0%bf%d0%be%d0%ba%d1%83%d0%bf%d0%be%d0%ba" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование внутренних покупок — критический аспект мобильного качества, требующий понимания платформо-специфичного поведения, инструментов и ожиданий пользователей.&lt;/p&gt;
&lt;h2 id="почему-тестирование-внутренних-покупок-важно"&gt;Почему Тестирование внутренних покупок важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2%d0%bd%d1%83%d1%82%d1%80%d0%b5%d0%bd%d0%bd%d0%b8%d1%85-%d0%bf%d0%be%d0%ba%d1%83%d0%bf%d0%be%d0%ba-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильные приложения работают в условиях, которые десктопные приложения никогда не встречают. Тестирование внутренних покупок решает уникальные задачи, возникающие из мобильного оборудования, ПО и паттернов использования.&lt;/p&gt;
&lt;h2 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="различия-платформ"&gt;Различия платформ &lt;a href="#%d1%80%d0%b0%d0%b7%d0%bb%d0%b8%d1%87%d0%b8%d1%8f-%d0%bf%d0%bb%d0%b0%d1%82%d1%84%d0%be%d1%80%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Тестирование внутренних покупок различается между iOS и Android из-за фундаментальных архитектурных различий:&lt;/p&gt;</description></item><item><title>Тестирование доступности мобильных приложений</title><link>https://yrkan.com/ru/course/module-07-mobile/mobile-accessibility-testing/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/mobile-accessibility-testing/</guid><description>&lt;h2 id="обзор-тестирование-доступности-мобильных-приложений"&gt;Обзор Тестирование доступности мобильных приложений &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b4%d0%be%d1%81%d1%82%d1%83%d0%bf%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%bc%d0%be%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d1%8b%d1%85-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование доступности мобильных приложений — критический аспект мобильного качества, требующий понимания платформо-специфичного поведения, инструментов и ожиданий пользователей.&lt;/p&gt;
&lt;h2 id="почему-тестирование-доступности-мобильных-приложений-важно"&gt;Почему Тестирование доступности мобильных приложений важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b4%d0%be%d1%81%d1%82%d1%83%d0%bf%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%bc%d0%be%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d1%8b%d1%85-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильные приложения работают в условиях, которые десктопные приложения никогда не встречают. Тестирование доступности мобильных приложений решает уникальные задачи, возникающие из мобильного оборудования, ПО и паттернов использования.&lt;/p&gt;
&lt;h2 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="различия-платформ"&gt;Различия платформ &lt;a href="#%d1%80%d0%b0%d0%b7%d0%bb%d0%b8%d1%87%d0%b8%d1%8f-%d0%bf%d0%bb%d0%b0%d1%82%d1%84%d0%be%d1%80%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Тестирование доступности мобильных приложений различается между iOS и Android из-за фундаментальных архитектурных различий:&lt;/p&gt;</description></item><item><title>Тестирование жестов и касаний</title><link>https://yrkan.com/ru/course/module-07-mobile/gesture-testing/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/gesture-testing/</guid><description>&lt;h2 id="понимание-мобильных-жестов"&gt;Понимание мобильных жестов &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bc%d0%be%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d1%8b%d1%85-%d0%b6%d0%b5%d1%81%d1%82%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильные жесты — основной способ взаимодействия пользователей с сенсорными устройствами. В отличие от кликов на десктопе, жесты включают непрерывное движение, переменное давление, несколько пальцев и пространственный контекст.&lt;/p&gt;
&lt;h2 id="типы-жестов-и-аспекты-тестирования"&gt;Типы жестов и аспекты тестирования &lt;a href="#%d1%82%d0%b8%d0%bf%d1%8b-%d0%b6%d0%b5%d1%81%d1%82%d0%be%d0%b2-%d0%b8-%d0%b0%d1%81%d0%bf%d0%b5%d0%ba%d1%82%d1%8b-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="жесты-касания-tap"&gt;Жесты касания (Tap) &lt;a href="#%d0%b6%d0%b5%d1%81%d1%82%d1%8b-%d0%ba%d0%b0%d1%81%d0%b0%d0%bd%d0%b8%d1%8f-tap" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Жест&lt;/th&gt;
 &lt;th&gt;Описание&lt;/th&gt;
 &lt;th&gt;Фокус тестирования&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Single tap&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Быстрое касание и отпускание&lt;/td&gt;
 &lt;td&gt;Отзывчивость, точность попадания&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Double tap&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Два быстрых касания&lt;/td&gt;
 &lt;td&gt;Чувствительность таймингов&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Long press&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Касание и удержание&lt;/td&gt;
 &lt;td&gt;Порог длительности, контекстное меню&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="жесты-свайпа"&gt;Жесты свайпа &lt;a href="#%d0%b6%d0%b5%d1%81%d1%82%d1%8b-%d1%81%d0%b2%d0%b0%d0%b9%d0%bf%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Жест&lt;/th&gt;
 &lt;th&gt;Применение&lt;/th&gt;
 &lt;th&gt;Фокус тестирования&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Горизонтальный свайп&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Навигация по страницам, удаление&lt;/td&gt;
 &lt;td&gt;Определение направления, порог расстояния&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Вертикальный свайп&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Прокрутка, pull-to-refresh&lt;/td&gt;
 &lt;td&gt;Производительность прокрутки&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Edge swipe&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Системная навигация (назад)&lt;/td&gt;
 &lt;td&gt;Конфликт с жестами приложения&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="мультитач-жесты"&gt;Мультитач-жесты &lt;a href="#%d0%bc%d1%83%d0%bb%d1%8c%d1%82%d0%b8%d1%82%d0%b0%d1%87-%d0%b6%d0%b5%d1%81%d1%82%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Жест&lt;/th&gt;
 &lt;th&gt;Применение&lt;/th&gt;
 &lt;th&gt;Фокус тестирования&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Pinch&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Увеличение/уменьшение&lt;/td&gt;
 &lt;td&gt;Пределы масштаба, производительность&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Rotate&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Поворот изображения&lt;/td&gt;
 &lt;td&gt;Точность определения угла&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Свайп двумя пальцами&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Навигация по картам&lt;/td&gt;
 &lt;td&gt;Взаимодействие с жестами одного пальца&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="тестирование-свайп-действий"&gt;Тестирование свайп-действий &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81%d0%b2%d0%b0%d0%b9%d0%bf-%d0%b4%d0%b5%d0%b9%d1%81%d1%82%d0%b2%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Свайп-действия (swipe-to-delete, swipe-to-archive) распространены, но часто содержат баги.&lt;/p&gt;</description></item><item><title>Тестирование локализации мобильных приложений</title><link>https://yrkan.com/ru/course/module-07-mobile/mobile-localization-testing/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/mobile-localization-testing/</guid><description>&lt;h2 id="обзор-тестирование-локализации-мобильных-приложений"&gt;Обзор Тестирование локализации мобильных приложений &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bb%d0%be%d0%ba%d0%b0%d0%bb%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b8-%d0%bc%d0%be%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d1%8b%d1%85-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование локализации мобильных приложений — критический аспект мобильного качества, требующий понимания платформо-специфичного поведения, инструментов и ожиданий пользователей.&lt;/p&gt;
&lt;h2 id="почему-тестирование-локализации-мобильных-приложений-важно"&gt;Почему Тестирование локализации мобильных приложений важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bb%d0%be%d0%ba%d0%b0%d0%bb%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b8-%d0%bc%d0%be%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d1%8b%d1%85-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильные приложения работают в условиях, которые десктопные приложения никогда не встречают. Тестирование локализации мобильных приложений решает уникальные задачи, возникающие из мобильного оборудования, ПО и паттернов использования.&lt;/p&gt;
&lt;h2 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="различия-платформ"&gt;Различия платформ &lt;a href="#%d1%80%d0%b0%d0%b7%d0%bb%d0%b8%d1%87%d0%b8%d1%8f-%d0%bf%d0%bb%d0%b0%d1%82%d1%84%d0%be%d1%80%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Тестирование локализации мобильных приложений различается между iOS и Android из-за фундаментальных архитектурных различий:&lt;/p&gt;</description></item><item><title>Тестирование носимых устройств</title><link>https://yrkan.com/ru/course/module-07-mobile/wearable-testing/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/wearable-testing/</guid><description>&lt;h2 id="обзор-тестирование-носимых-устройств"&gt;Обзор Тестирование носимых устройств &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bd%d0%be%d1%81%d0%b8%d0%bc%d1%8b%d1%85-%d1%83%d1%81%d1%82%d1%80%d0%be%d0%b9%d1%81%d1%82%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование носимых устройств — критический аспект мобильного качества, требующий понимания платформо-специфичного поведения, инструментов и ожиданий пользователей.&lt;/p&gt;
&lt;h2 id="почему-тестирование-носимых-устройств-важно"&gt;Почему Тестирование носимых устройств важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bd%d0%be%d1%81%d0%b8%d0%bc%d1%8b%d1%85-%d1%83%d1%81%d1%82%d1%80%d0%be%d0%b9%d1%81%d1%82%d0%b2-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильные приложения работают в условиях, которые десктопные приложения никогда не встречают. Тестирование носимых устройств решает уникальные задачи, возникающие из мобильного оборудования, ПО и паттернов использования.&lt;/p&gt;
&lt;h2 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="различия-платформ"&gt;Различия платформ &lt;a href="#%d1%80%d0%b0%d0%b7%d0%bb%d0%b8%d1%87%d0%b8%d1%8f-%d0%bf%d0%bb%d0%b0%d1%82%d1%84%d0%be%d1%80%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Тестирование носимых устройств различается между iOS и Android из-за фундаментальных архитектурных различий:&lt;/p&gt;</description></item><item><title>Тестирование офлайн-режима и синхронизации</title><link>https://yrkan.com/ru/course/module-07-mobile/offline-mode-sync-testing/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/offline-mode-sync-testing/</guid><description>&lt;h2 id="понимание-офлайн-функциональности"&gt;Понимание офлайн-функциональности &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d0%be%d1%84%d0%bb%d0%b0%d0%b9%d0%bd-%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%be%d0%bd%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильные приложения должны работать без сети. Офлайн-режим — это не только показ кэшированных данных, но и синхронизация, разрешение конфликтов и бесшовный пользовательский опыт.&lt;/p&gt;
&lt;h2 id="типы-офлайн-поддержки"&gt;Типы офлайн-поддержки &lt;a href="#%d1%82%d0%b8%d0%bf%d1%8b-%d0%be%d1%84%d0%bb%d0%b0%d0%b9%d0%bd-%d0%bf%d0%be%d0%b4%d0%b4%d0%b5%d1%80%d0%b6%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Уровень&lt;/th&gt;
 &lt;th&gt;Описание&lt;/th&gt;
 &lt;th&gt;Пример&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Без офлайна&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Приложение бесполезно без сети&lt;/td&gt;
 &lt;td&gt;Стриминговые приложения&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Кэш чтения&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Ранее загруженные данные видны&lt;/td&gt;
 &lt;td&gt;Новостные приложения&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Очередь действий&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Действия в очереди, выполняются при восстановлении&lt;/td&gt;
 &lt;td&gt;Написание email&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Полный офлайн&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Полная функциональность, синхронизация позже&lt;/td&gt;
 &lt;td&gt;Заметки, карты&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="паттерны-синхронизации-данных"&gt;Паттерны синхронизации данных &lt;a href="#%d0%bf%d0%b0%d1%82%d1%82%d0%b5%d1%80%d0%bd%d1%8b-%d1%81%d0%b8%d0%bd%d1%85%d1%80%d0%be%d0%bd%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b8-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="last-write-wins"&gt;Last-Write-Wins &lt;a href="#last-write-wins" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Последнее изменение перезаписывает предыдущие. Просто, но может привести к потере данных.&lt;/p&gt;</description></item><item><title>Тестирование памяти и хранилища</title><link>https://yrkan.com/ru/course/module-07-mobile/memory-storage-testing/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/memory-storage-testing/</guid><description>&lt;h2 id="обзор-тестирование-памяти-и-хранилища"&gt;Обзор Тестирование памяти и хранилища &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d0%b0%d0%bc%d1%8f%d1%82%d0%b8-%d0%b8-%d1%85%d1%80%d0%b0%d0%bd%d0%b8%d0%bb%d0%b8%d1%89%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование памяти и хранилища — критический аспект мобильного качества, требующий понимания платформо-специфичного поведения, инструментов и ожиданий пользователей.&lt;/p&gt;
&lt;h2 id="почему-тестирование-памяти-и-хранилища-важно"&gt;Почему Тестирование памяти и хранилища важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d0%b0%d0%bc%d1%8f%d1%82%d0%b8-%d0%b8-%d1%85%d1%80%d0%b0%d0%bd%d0%b8%d0%bb%d0%b8%d1%89%d0%b0-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильные приложения работают в условиях, которые десктопные приложения никогда не встречают. Тестирование памяти и хранилища решает уникальные задачи, возникающие из мобильного оборудования, ПО и паттернов использования.&lt;/p&gt;
&lt;h2 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="различия-платформ"&gt;Различия платформ &lt;a href="#%d1%80%d0%b0%d0%b7%d0%bb%d0%b8%d1%87%d0%b8%d1%8f-%d0%bf%d0%bb%d0%b0%d1%82%d1%84%d0%be%d1%80%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Тестирование памяти и хранилища различается между iOS и Android из-за фундаментальных архитектурных различий:&lt;/p&gt;</description></item><item><title>Тестирование сетевых условий</title><link>https://yrkan.com/ru/course/module-07-mobile/network-conditions-testing/</link><pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-07-mobile/network-conditions-testing/</guid><description>&lt;h2 id="почему-тестирование-сети-важно-для-мобильных"&gt;Почему тестирование сети важно для мобильных &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81%d0%b5%d1%82%d0%b8-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%be%d0%b1%d0%b8%d0%bb%d1%8c%d0%bd%d1%8b%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мобильные пользователи сталкиваются с широким диапазоном сетевых условий. Пользователь может начать транзакцию на быстром WiFi, зайти в лифт (нет сигнала), выйти на парковку (слабый сотовый) и уехать (переключение вышек).&lt;/p&gt;
&lt;h2 id="категории-сетевых-условий"&gt;Категории сетевых условий &lt;a href="#%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be%d1%80%d0%b8%d0%b8-%d1%81%d0%b5%d1%82%d0%b5%d0%b2%d1%8b%d1%85-%d1%83%d1%81%d0%bb%d0%be%d0%b2%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Условие&lt;/th&gt;
 &lt;th&gt;Скорость&lt;/th&gt;
 &lt;th&gt;Задержка&lt;/th&gt;
 &lt;th&gt;Реальный сценарий&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Нет сети&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;0&lt;/td&gt;
 &lt;td&gt;N/A&lt;/td&gt;
 &lt;td&gt;Режим полёта, метро&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;2G (EDGE)&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;50-200 Kbps&lt;/td&gt;
 &lt;td&gt;300-1000мс&lt;/td&gt;
 &lt;td&gt;Сельская местность&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;3G&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;0.5-5 Mbps&lt;/td&gt;
 &lt;td&gt;100-500мс&lt;/td&gt;
 &lt;td&gt;Пригород&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;4G LTE&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;5-50 Mbps&lt;/td&gt;
 &lt;td&gt;30-100мс&lt;/td&gt;
 &lt;td&gt;Город&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;5G&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;50-1000+ Mbps&lt;/td&gt;
 &lt;td&gt;1-10мс&lt;/td&gt;
 &lt;td&gt;Отдельные городские районы&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Медленный WiFi&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;1-5 Mbps&lt;/td&gt;
 &lt;td&gt;10-50мс&lt;/td&gt;
 &lt;td&gt;Кафе, отели, аэропорты&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="инструменты-троттлинга-сети"&gt;Инструменты троттлинга сети &lt;a href="#%d0%b8%d0%bd%d1%81%d1%82%d1%80%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d1%8b-%d1%82%d1%80%d0%be%d1%82%d1%82%d0%bb%d0%b8%d0%bd%d0%b3%d0%b0-%d1%81%d0%b5%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="ios-network-link-conditioner"&gt;iOS Network Link Conditioner &lt;a href="#ios-network-link-conditioner" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Settings &amp;gt; Developer &amp;gt; Network Link Conditioner с предустановленными профилями.&lt;/p&gt;</description></item><item><title>cURL для тестирования API</title><link>https://yrkan.com/ru/course/module-06-api-backend/curl-for-api-testing/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/curl-for-api-testing/</guid><description>&lt;h2 id="зачем-изучать-curl"&gt;Зачем изучать cURL? &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%b8%d0%b7%d1%83%d1%87%d0%b0%d1%82%d1%8c-curl" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;cURL (Client URL) — инструмент командной строки для передачи данных по различным протоколам. Он предустановлен на macOS и большинстве дистрибутивов Linux, доступен для Windows. Каждый QA-инженер должен знать cURL, потому что:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Он универсален&lt;/strong&gt; — доступен на каждом сервере, контейнере и CI/CD-раннере&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Он скриптуемый&lt;/strong&gt; — легко интегрируется в shell-скрипты и пайплайны&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Это lingua franca&lt;/strong&gt; — документация API часто предоставляет примеры на cURL&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Не требует установки&lt;/strong&gt; — в отличие от Postman, он уже на вашей машине&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Он точен&lt;/strong&gt; — вы контролируете каждый аспект запроса&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="проверка-установки"&gt;Проверка установки &lt;a href="#%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d0%ba%d0%b0-%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl --version
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# curl 8.7.1 (x86_64-apple-darwin23.0) ...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="базовые-команды-curl"&gt;Базовые команды cURL &lt;a href="#%d0%b1%d0%b0%d0%b7%d0%be%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b-curl" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="get-запрос"&gt;GET-запрос &lt;a href="#get-%d0%b7%d0%b0%d0%bf%d1%80%d0%be%d1%81" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Простой GET&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl https://jsonplaceholder.typicode.com/posts/1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# GET с заголовками&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -H &lt;span style="color:#e6db74"&gt;&amp;#34;Accept: application/json&amp;#34;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -H &lt;span style="color:#e6db74"&gt;&amp;#34;Authorization: Bearer token123&amp;#34;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; https://api.example.com/users
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="post-запрос"&gt;POST-запрос &lt;a href="#post-%d0%b7%d0%b0%d0%bf%d1%80%d0%be%d1%81" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# POST с JSON-телом&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -X POST &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -H &lt;span style="color:#e6db74"&gt;&amp;#34;Content-Type: application/json&amp;#34;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -d &lt;span style="color:#e6db74"&gt;&amp;#39;{&amp;#34;title&amp;#34;: &amp;#34;Новый пост&amp;#34;, &amp;#34;body&amp;#34;: &amp;#34;Контент&amp;#34;, &amp;#34;userId&amp;#34;: 1}&amp;#39;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; https://jsonplaceholder.typicode.com/posts
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# POST с form data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -X POST &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -d &lt;span style="color:#e6db74"&gt;&amp;#34;username=admin&amp;amp;password=secret&amp;#34;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; https://api.example.com/login
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="put-и-patch"&gt;PUT и PATCH &lt;a href="#put-%d0%b8-patch" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# PUT — замена ресурса целиком&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -X PUT &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -H &lt;span style="color:#e6db74"&gt;&amp;#34;Content-Type: application/json&amp;#34;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -d &lt;span style="color:#e6db74"&gt;&amp;#39;{&amp;#34;title&amp;#34;: &amp;#34;Обновлено&amp;#34;, &amp;#34;body&amp;#34;: &amp;#34;Новый контент&amp;#34;, &amp;#34;userId&amp;#34;: 1}&amp;#39;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; https://jsonplaceholder.typicode.com/posts/1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# PATCH — частичное обновление&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -X PATCH &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -H &lt;span style="color:#e6db74"&gt;&amp;#34;Content-Type: application/json&amp;#34;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -d &lt;span style="color:#e6db74"&gt;&amp;#39;{&amp;#34;title&amp;#34;: &amp;#34;Только заголовок изменён&amp;#34;}&amp;#39;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; https://jsonplaceholder.typicode.com/posts/1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="delete"&gt;DELETE &lt;a href="#delete" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -X DELETE https://jsonplaceholder.typicode.com/posts/1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="основные-флаги-curl"&gt;Основные флаги cURL &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d1%84%d0%bb%d0%b0%d0%b3%d0%b8-curl" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Флаг&lt;/th&gt;
 &lt;th&gt;Полная форма&lt;/th&gt;
 &lt;th&gt;Назначение&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-X&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;--request&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;HTTP-метод (GET, POST, PUT, DELETE)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-H&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;--header&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Добавить заголовок запроса&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-d&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;--data&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Данные тела запроса&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-v&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;--verbose&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Показать полные детали запроса/ответа&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-s&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;--silent&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Скрыть индикатор прогресса&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-o&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;--output&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Сохранить ответ в файл&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-w&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;--write-out&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Пользовательский формат вывода&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-L&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;--location&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Следовать перенаправлениям&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-k&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;--insecure&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Пропустить проверку SSL&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-u&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;--user&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Basic auth (user:password)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-i&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;--include&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Показать заголовки ответа&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;-I&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;--head&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;HEAD-запрос (только заголовки)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="отладка-с-curl"&gt;Отладка с cURL &lt;a href="#%d0%be%d1%82%d0%bb%d0%b0%d0%b4%d0%ba%d0%b0-%d1%81-curl" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="подробный-вывод-verbose"&gt;Подробный вывод (verbose) &lt;a href="#%d0%bf%d0%be%d0%b4%d1%80%d0%be%d0%b1%d0%bd%d1%8b%d0%b9-%d0%b2%d1%8b%d0%b2%d0%be%d0%b4-verbose" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Флаг &lt;code&gt;-v&lt;/code&gt; — ваш лучший друг для отладки:&lt;/p&gt;</description></item><item><title>HTTP-методы, коды статуса и заголовки</title><link>https://yrkan.com/ru/course/module-06-api-backend/http-methods-status-headers/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/http-methods-status-headers/</guid><description>&lt;h2 id="http-методы"&gt;HTTP-методы &lt;a href="#http-%d0%bc%d0%b5%d1%82%d0%be%d0%b4%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;HTTP-методы (также называемые глаголами) определяют действие, выполняемое над ресурсом. Глубокое их понимание фундаментально для тестирования API, поскольку использование неправильного метода или тестирование неверного поведения — одна из самых распространённых ошибок.&lt;/p&gt;
&lt;h3 id="get--получение-данных"&gt;GET — Получение данных &lt;a href="#get--%d0%bf%d0%be%d0%bb%d1%83%d1%87%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;GET-запросы получают данные, не изменяя ничего на сервере. Они и &lt;strong&gt;безопасны&lt;/strong&gt; (без побочных эффектов), и &lt;strong&gt;идемпотентны&lt;/strong&gt; (одинаковый результат независимо от количества вызовов).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-http" data-lang="http"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;GET&lt;/span&gt; /api/users &lt;span style="color:#66d9ef"&gt;HTTP&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1.1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Host&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;api.example.com&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Accept&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;application/json&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Authorization&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;Bearer &amp;lt;token&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Чек-лист тестирования GET:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Возвращает 200 OK с данными для существующих ресурсов&lt;/li&gt;
&lt;li&gt;Возвращает 404 Not Found для несуществующих ресурсов&lt;/li&gt;
&lt;li&gt;Никогда не изменяет состояние сервера (проверить БД без изменений после GET)&lt;/li&gt;
&lt;li&gt;Поддерживает фильтрацию через query-параметры&lt;/li&gt;
&lt;li&gt;Возвращает корректную пагинацию для endpoint-ов списков&lt;/li&gt;
&lt;li&gt;Формат ответа соответствует заголовку Accept&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="post--создание-новых-ресурсов"&gt;POST — Создание новых ресурсов &lt;a href="#post--%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bd%d0%be%d0%b2%d1%8b%d1%85-%d1%80%d0%b5%d1%81%d1%83%d1%80%d1%81%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;POST отправляет данные на сервер для создания нового ресурса. Он ни безопасный, ни идемпотентный — многократный вызов может создать несколько ресурсов.&lt;/p&gt;</description></item><item><title>Postman: от новичка до профессионала</title><link>https://yrkan.com/ru/course/module-06-api-backend/postman-beginner-to-pro/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/postman-beginner-to-pro/</guid><description>&lt;h2 id="начало-работы-с-postman"&gt;Начало работы с Postman &lt;a href="#%d0%bd%d0%b0%d1%87%d0%b0%d0%bb%d0%be-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%8b-%d1%81-postman" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Postman — самый популярный инструмент для тестирования API, используемый более чем 30 миллионами разработчиков и тестировщиков по всему миру. Он предоставляет визуальный интерфейс для отправки HTTP-запросов, инспекции ответов и написания автоматизированных тестовых проверок — всё это без написания кода.&lt;/p&gt;
&lt;h3 id="установка"&gt;Установка &lt;a href="#%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Скачайте Postman с &lt;a href="https://www.postman.com/downloads/"&gt;postman.com/downloads&lt;/a&gt;. Он доступен для Windows, macOS и Linux. Хотя существует веб-версия, настольное приложение предлагает лучшую производительность и дополнительные функции, такие как локальные прокси и управление сертификатами.&lt;/p&gt;</description></item><item><title>Архитектура REST</title><link>https://yrkan.com/ru/course/module-06-api-backend/rest-architecture/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/rest-architecture/</guid><description>&lt;h2 id="что-такое-rest"&gt;Что такое REST? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-rest" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;REST (Representational State Transfer) — это архитектурный стиль для проектирования сетевых приложений, определённый Роем Филдингом в его докторской диссертации 2000 года. Это не протокол и не стандарт — это набор ограничений, которые при применении к веб-сервисам делают их масштабируемыми, простыми и надёжными.&lt;/p&gt;
&lt;p&gt;REST стал доминирующим подходом для веб-API, поскольку использует существующий протокол HTTP, что делает его простым в понимании и реализации. Когда говорят «REST API» или «RESTful API», имеют в виду веб-сервис, следующий архитектурным принципам REST.&lt;/p&gt;</description></item><item><title>Аутентификация API: ключи, OAuth, JWT</title><link>https://yrkan.com/ru/course/module-06-api-backend/api-authentication/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/api-authentication/</guid><description>&lt;h2 id="аутентификация-vs-авторизация"&gt;Аутентификация vs. авторизация &lt;a href="#%d0%b0%d1%83%d1%82%d0%b5%d0%bd%d1%82%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%8f-vs-%d0%b0%d0%b2%d1%82%d0%be%d1%80%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Прежде чем погружаться в механизмы, разберитесь с двумя концепциями:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Аутентификация (AuthN)&lt;/strong&gt; — «Кто вы?» Проверка личности клиента, делающего запрос.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Авторизация (AuthZ)&lt;/strong&gt; — «Что вы можете делать?» Определение ресурсов и действий, к которым аутентифицированный клиент имеет доступ.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Пользователь может быть аутентифицирован (вошёл в систему), но не авторизован (не имеет прав) для удаления чужого аккаунта. Тестирование обоих аспектов критически важно.&lt;/p&gt;
&lt;h2 id="аутентификация-по-api-key"&gt;Аутентификация по API Key &lt;a href="#%d0%b0%d1%83%d1%82%d0%b5%d0%bd%d1%82%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%8f-%d0%bf%d0%be-api-key" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Простейшая форма аутентификации API. Сервер выдаёт уникальный ключ, который клиент включает в каждый запрос.&lt;/p&gt;</description></item><item><title>Безопасность API: OWASP API Top 10</title><link>https://yrkan.com/ru/course/module-06-api-backend/api-security-owasp/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/api-security-owasp/</guid><description>&lt;h2 id="owasp-api-security-top-10"&gt;OWASP API Security Top 10 &lt;a href="#owasp-api-security-top-10" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Open Web Application Security Project (OWASP) поддерживает список наиболее критичных рисков безопасности API. Версия 2023 года отражает текущий ландшафт угроз для API. Как QA-инженеру, понимание этих уязвимостей поможет вам проектировать тест-кейсы, которые выявляют дефекты безопасности до попадания в production.&lt;/p&gt;
&lt;p&gt;API — основная поверхность атаки современных приложений. В отличие от веб-приложений, где браузер обеспечивает определённую безопасность, клиенты API могут отправлять любые запросы — что делает API особенно уязвимыми при слабой серверной валидации.&lt;/p&gt;</description></item><item><title>Валидация схем с OpenAPI</title><link>https://yrkan.com/ru/course/module-06-api-backend/schema-validation-openapi/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/schema-validation-openapi/</guid><description>&lt;h2 id="что-такое-openapi"&gt;Что такое OpenAPI? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-openapi" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Спецификация OpenAPI (ранее известная как Swagger) — стандартный формат для описания REST API. Она определяет каждый аспект API в машиночитаемом документе: endpoint-ы, HTTP-методы, параметры запросов, форматы ответов, аутентификацию и модели данных.&lt;/p&gt;
&lt;p&gt;OpenAPI-спецификация служит &lt;strong&gt;контрактом&lt;/strong&gt; между провайдерами и потребителями API. Как тестировщик, она является вашим источником истины о том, что должен делать API.&lt;/p&gt;
&lt;h3 id="openapi-vs-swagger"&gt;OpenAPI vs. Swagger &lt;a href="#openapi-vs-swagger" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Swagger&lt;/strong&gt; — оригинальное название, созданное SmartBear&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OpenAPI&lt;/strong&gt; — стандартное название после передачи спецификации Linux Foundation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Swagger UI&lt;/strong&gt; и &lt;strong&gt;Swagger Editor&lt;/strong&gt; — инструменты, работающие с OpenAPI-спецификациями&lt;/li&gt;
&lt;li&gt;Текущая версия: OpenAPI 3.1 (согласована с JSON Schema)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="чтение-спецификации-openapi"&gt;Чтение спецификации OpenAPI &lt;a href="#%d1%87%d1%82%d0%b5%d0%bd%d0%b8%d0%b5-%d1%81%d0%bf%d0%b5%d1%86%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d0%b8-openapi" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;OpenAPI-спецификации пишутся на YAML или JSON. Упрощённый пример:&lt;/p&gt;</description></item><item><title>Версионирование API</title><link>https://yrkan.com/ru/course/module-06-api-backend/api-versioning/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/api-versioning/</guid><description>&lt;h2 id="зачем-api-нужно-версионирование"&gt;Зачем API нужно версионирование &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-api-%d0%bd%d1%83%d0%b6%d0%bd%d0%be-%d0%b2%d0%b5%d1%80%d1%81%d0%b8%d0%be%d0%bd%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;API эволюционируют: добавляются функции, меняются модели данных, заменяются старые паттерны. Без версионирования любое изменение может сломать существующих клиентов. Версионирование позволяет несовместимым изменениям сосуществовать со старыми версиями.&lt;/p&gt;
&lt;h3 id="breaking-vs-non-breaking-изменения"&gt;Breaking vs. Non-Breaking изменения &lt;a href="#breaking-vs-non-breaking-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Non-breaking&lt;/strong&gt; (безопасны без новой версии):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Добавление опциональных полей в ответы&lt;/li&gt;
&lt;li&gt;Добавление новых endpoint-ов&lt;/li&gt;
&lt;li&gt;Добавление опциональных query-параметров&lt;/li&gt;
&lt;li&gt;Ослабление правил валидации&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Breaking&lt;/strong&gt; (требуют новой версии):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Удаление или переименование поля&lt;/li&gt;
&lt;li&gt;Изменение типа данных поля&lt;/li&gt;
&lt;li&gt;Превращение опционального поля в обязательное&lt;/li&gt;
&lt;li&gt;Изменение структуры URL&lt;/li&gt;
&lt;li&gt;Изменение механизмов аутентификации&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="стратегии-версионирования"&gt;Стратегии версионирования &lt;a href="#%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d0%b8-%d0%b2%d0%b5%d1%80%d1%81%d0%b8%d0%be%d0%bd%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="версионирование-через-url-path"&gt;Версионирование через URL Path &lt;a href="#%d0%b2%d0%b5%d1%80%d1%81%d0%b8%d0%be%d0%bd%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-url-path" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Самый распространённый подход:&lt;/p&gt;</description></item><item><title>Контрактное тестирование с Pact</title><link>https://yrkan.com/ru/course/module-06-api-backend/contract-testing-pact/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/contract-testing-pact/</guid><description>&lt;h2 id="зачем-контрактное-тестирование"&gt;Зачем контрактное тестирование? &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%ba%d0%be%d0%bd%d1%82%d1%80%d0%b0%d0%ba%d1%82%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;В микросервисах сервисы разрабатываются и развёртываются независимо. Без контрактного тестирования вы полагаетесь на интеграционные тесты (медленные и хрупкие), документацию (может быть устаревшей) или удачу.&lt;/p&gt;
&lt;p&gt;Контрактное тестирование проверяет, что сервисы могут корректно взаимодействовать, не требуя одновременной работы всех сервисов.&lt;/p&gt;
&lt;h2 id="как-работает-pact"&gt;Как работает Pact &lt;a href="#%d0%ba%d0%b0%d0%ba-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d0%b5%d1%82-pact" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Pact использует consumer-driven подход: потребитель определяет ожидания, Pact генерирует контракт, провайдер его верифицирует.&lt;/p&gt;
&lt;h2 id="написание-тестов-потребителя"&gt;Написание тестов потребителя &lt;a href="#%d0%bd%d0%b0%d0%bf%d0%b8%d1%81%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2-%d0%bf%d0%be%d1%82%d1%80%d0%b5%d0%b1%d0%b8%d1%82%d0%b5%d0%bb%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; { &lt;span style="color:#a6e22e"&gt;PactV3&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;MatchersV3&lt;/span&gt; } &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;require&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;@pact-foundation/pact&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; { &lt;span style="color:#a6e22e"&gt;like&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;string&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;integer&lt;/span&gt; } &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;MatchersV3&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;provider&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;PactV3&lt;/span&gt;({
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;consumer&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;OrderService&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;provider&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;UserService&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;describe&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;Контракт UserService&amp;#39;&lt;/span&gt;, () =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;test&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;получение пользователя по ID&amp;#39;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;async&lt;/span&gt; () =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;provider&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .&lt;span style="color:#a6e22e"&gt;given&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;пользователь с ID 123 существует&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .&lt;span style="color:#a6e22e"&gt;uponReceiving&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;запрос пользователя 123&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .&lt;span style="color:#a6e22e"&gt;withRequest&lt;/span&gt;({ &lt;span style="color:#a6e22e"&gt;method&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;GET&amp;#39;&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;path&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;/users/123&amp;#39;&lt;/span&gt; })
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .&lt;span style="color:#a6e22e"&gt;willRespondWith&lt;/span&gt;({
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;status&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;body&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;id&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;integer&lt;/span&gt;(&lt;span style="color:#ae81ff"&gt;123&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;string&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;Alice&amp;#39;&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;email&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;string&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;alice@example.com&amp;#39;&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; });
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;provider&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;executeTest&lt;/span&gt;(&lt;span style="color:#66d9ef"&gt;async&lt;/span&gt; (&lt;span style="color:#a6e22e"&gt;mockServer&lt;/span&gt;) =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;userClient&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;UserClient&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;mockServer&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;url&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;user&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;userClient&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;getUser&lt;/span&gt;(&lt;span style="color:#ae81ff"&gt;123&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;expect&lt;/span&gt;(&lt;span style="color:#a6e22e"&gt;user&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;id&lt;/span&gt;).&lt;span style="color:#a6e22e"&gt;toBe&lt;/span&gt;(&lt;span style="color:#ae81ff"&gt;123&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; });
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; });
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="написание-тестов-провайдера"&gt;Написание тестов провайдера &lt;a href="#%d0%bd%d0%b0%d0%bf%d0%b8%d1%81%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2-%d0%bf%d1%80%d0%be%d0%b2%d0%b0%d0%b9%d0%b4%d0%b5%d1%80%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; { &lt;span style="color:#a6e22e"&gt;Verifier&lt;/span&gt; } &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;require&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;@pact-foundation/pact&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;describe&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;Верификация провайдера UserService&amp;#39;&lt;/span&gt;, () =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;test&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#39;верифицирует все контракты&amp;#39;&lt;/span&gt;, &lt;span style="color:#66d9ef"&gt;async&lt;/span&gt; () =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;const&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;verifier&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;new&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;Verifier&lt;/span&gt;({
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;providerBaseUrl&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;http://localhost:3001&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;pactBrokerUrl&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;https://your-broker.pact.io&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;provider&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;UserService&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;stateHandlers&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;пользователь с ID 123 существует&amp;#39;&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;async&lt;/span&gt; () =&amp;gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;db&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;users&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;create&lt;/span&gt;({ &lt;span style="color:#a6e22e"&gt;id&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;123&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;name&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;Alice&amp;#39;&lt;/span&gt;, &lt;span style="color:#a6e22e"&gt;email&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;alice@example.com&amp;#39;&lt;/span&gt; });
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; },
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; });
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;await&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;verifier&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;verifyProvider&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; });
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;});
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="матчеры-pact"&gt;Матчеры Pact &lt;a href="#%d0%bc%d0%b0%d1%82%d1%87%d0%b5%d1%80%d1%8b-pact" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Матчеры делают контракты гибкими: &lt;code&gt;like()&lt;/code&gt; для типа, &lt;code&gt;string()&lt;/code&gt; для строк, &lt;code&gt;integer()&lt;/code&gt; для целых, &lt;code&gt;eachLike()&lt;/code&gt; для массивов, &lt;code&gt;regex()&lt;/code&gt; для паттернов.&lt;/p&gt;</description></item><item><title>Мокирование API с WireMock</title><link>https://yrkan.com/ru/course/module-06-api-backend/api-mocking-wiremock/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/api-mocking-wiremock/</guid><description>&lt;h2 id="зачем-мокировать-api"&gt;Зачем мокировать API? &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%bc%d0%be%d0%ba%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c-api" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мокирование API создаёт имитации реальных API, возвращающие предопределённые ответы. Это необходимо в современной разработке:&lt;/p&gt;
&lt;h3 id="типичные-сценарии-для-мокирования"&gt;Типичные сценарии для мокирования &lt;a href="#%d1%82%d0%b8%d0%bf%d0%b8%d1%87%d0%bd%d1%8b%d0%b5-%d1%81%d1%86%d0%b5%d0%bd%d0%b0%d1%80%d0%b8%d0%b8-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%be%d0%ba%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Недоступность стороннего API&lt;/strong&gt; — песочница платёжного провайдера упала, но нужно тестировать оплату&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API в разработке&lt;/strong&gt; — бэкенд-команда ещё не закончила endpoint&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Снижение затрат&lt;/strong&gt; — вызов платных API (Google Maps, OpenAI) тысячи раз при тестировании дорог&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Детерминированное тестирование&lt;/strong&gt; — реальные API могут возвращать разные данные; моки — стабильные&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Имитация граничных случаев&lt;/strong&gt; — сложно вызвать 500 от реального API; моки имитируют любой ответ&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Тестирование производительности&lt;/strong&gt; — имитация медленных ответов, таймаутов, сетевых ошибок&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Офлайн-разработка&lt;/strong&gt; — разработчики могут работать без интернета&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="stubs-vs-mocks-vs-fakes"&gt;Stubs vs. Mocks vs. Fakes &lt;a href="#stubs-vs-mocks-vs-fakes" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Термин&lt;/th&gt;
 &lt;th&gt;Определение&lt;/th&gt;
 &lt;th&gt;Пример&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Stub&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Возвращает предопределённые ответы&lt;/td&gt;
 &lt;td&gt;Возвращает &lt;code&gt;{id: 1, name: &amp;quot;Alice&amp;quot;}&lt;/code&gt; на любой GET /users/1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Mock&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Stub + проверяет ожидания&lt;/td&gt;
 &lt;td&gt;То же, но проверяет, что запрос был сделан ровно один раз&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Fake&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Упрощённая рабочая реализация&lt;/td&gt;
 &lt;td&gt;In-memory БД вместо реальной PostgreSQL&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="введение-в-wiremock"&gt;Введение в WireMock &lt;a href="#%d0%b2%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-wiremock" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;WireMock — самый популярный инструмент мокирования API в экосистеме Java, но работает с любым языком через HTTP API или standalone-сервер.&lt;/p&gt;</description></item><item><title>Обработка ошибок API</title><link>https://yrkan.com/ru/course/module-06-api-backend/api-error-handling/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/api-error-handling/</guid><description>&lt;h2 id="почему-важно-тестировать-обработку-ошибок"&gt;Почему важно тестировать обработку ошибок &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c-%d0%be%d0%b1%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d1%83-%d0%be%d1%88%d0%b8%d0%b1%d0%be%d0%ba" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Когда API работает идеально, тестирование просто. Настоящий вызов — и где прячется большинство багов — в том, как API обрабатывает ситуации, когда что-то идёт не так. Тестирование обработки ошибок проверяет, что API падает корректно, предоставляет полезную информацию и не раскрывает уязвимости.&lt;/p&gt;
&lt;p&gt;В продакшне в компаниях вроде Google качество обработки ошибок напрямую влияет на скорость отладки. Чёткое сообщение «Поле &amp;rsquo;email&amp;rsquo; должно содержать валидный email» экономит часы по сравнению с общим «Bad Request».&lt;/p&gt;</description></item><item><title>Основы тестирования API</title><link>https://yrkan.com/ru/course/module-06-api-backend/api-testing-fundamentals/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/api-testing-fundamentals/</guid><description>&lt;h2 id="что-такое-api"&gt;Что такое API? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-api" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;API (Application Programming Interface) — это контракт между двумя программными системами. Он определяет, как одна система может запрашивать данные или действия у другой и в каком формате придёт ответ. Представьте себе официанта в ресторане: вы (клиент) делаете заказ, официант (API) несёт его на кухню (сервер) и приносит вам еду (ответ).&lt;/p&gt;
&lt;p&gt;В современной разработке программного обеспечения API повсюду. Когда вы проверяете погоду на телефоне, приложение отправляет API-запрос к метеосервису. Когда вы входите через Google на стороннем сайте, API OAuth обрабатывают аутентификацию. Когда банковское приложение показывает ваш баланс, оно вызывает API бэкенда банка.&lt;/p&gt;</description></item><item><title>Оценка по модулю 6</title><link>https://yrkan.com/ru/course/module-06-api-backend/module-6-assessment/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/module-6-assessment/</guid><description>&lt;h2 id="обзор-оценки"&gt;Обзор оценки &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Поздравляем с завершением Модуля 6: Тестирование API и бэкенда. Эта оценка охватывает все темы из уроков 6.1–6.29.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Часть&lt;/th&gt;
 &lt;th&gt;Формат&lt;/th&gt;
 &lt;th&gt;Вопросы&lt;/th&gt;
 &lt;th&gt;Время&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Часть 1&lt;/td&gt;
 &lt;td&gt;Тест с вариантами ответов&lt;/td&gt;
 &lt;td&gt;10 вопросов&lt;/td&gt;
 &lt;td&gt;10 минут&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Часть 2&lt;/td&gt;
 &lt;td&gt;Вопросы по сценариям&lt;/td&gt;
 &lt;td&gt;3 сценария&lt;/td&gt;
 &lt;td&gt;20 минут&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Часть 3&lt;/td&gt;
 &lt;td&gt;Практическое задание&lt;/td&gt;
 &lt;td&gt;1 задание&lt;/td&gt;
 &lt;td&gt;30 минут&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Оценивание:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Часть 1: 10 баллов&lt;/li&gt;
&lt;li&gt;Часть 2: 15 баллов&lt;/li&gt;
&lt;li&gt;Часть 3: 15 баллов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Всего: 40 баллов&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Проходной балл: 28/40 (70%)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="темы"&gt;Темы &lt;a href="#%d1%82%d0%b5%d0%bc%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Тестирование производительности API&lt;/li&gt;
&lt;li&gt;Безопасность API (OWASP Top 10)&lt;/li&gt;
&lt;li&gt;Тестирование микросервисов&lt;/li&gt;
&lt;li&gt;Service Mesh&lt;/li&gt;
&lt;li&gt;Очереди сообщений (Kafka, RabbitMQ)&lt;/li&gt;
&lt;li&gt;Event-Driven архитектура&lt;/li&gt;
&lt;li&gt;Тестирование SQL-баз данных&lt;/li&gt;
&lt;li&gt;Тестирование NoSQL&lt;/li&gt;
&lt;li&gt;Тестирование ETL&lt;/li&gt;
&lt;li&gt;Миграция данных&lt;/li&gt;
&lt;li&gt;Вебхуки&lt;/li&gt;
&lt;li&gt;Интеграции со сторонними сервисами&lt;/li&gt;
&lt;li&gt;Контрактное тестирование&lt;/li&gt;
&lt;li&gt;Документация API&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="часть-1-тест"&gt;Часть 1: Тест &lt;a href="#%d1%87%d0%b0%d1%81%d1%82%d1%8c-1-%d1%82%d0%b5%d1%81%d1%82" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Вопросы теста находятся в frontmatter этого урока. Пройдите тест перед Частями 2 и 3.&lt;/p&gt;</description></item><item><title>Очереди сообщений: Kafka и RabbitMQ</title><link>https://yrkan.com/ru/course/module-06-api-backend/message-queues-kafka-rabbitmq/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/message-queues-kafka-rabbitmq/</guid><description>&lt;h2 id="очереди-сообщений-в-современной-архитектуре"&gt;Очереди сообщений в современной архитектуре &lt;a href="#%d0%be%d1%87%d0%b5%d1%80%d0%b5%d0%b4%d0%b8-%d1%81%d0%be%d0%be%d0%b1%d1%89%d0%b5%d0%bd%d0%b8%d0%b9-%d0%b2-%d1%81%d0%be%d0%b2%d1%80%d0%b5%d0%bc%d0%b5%d0%bd%d0%bd%d0%be%d0%b9-%d0%b0%d1%80%d1%85%d0%b8%d1%82%d0%b5%d0%ba%d1%82%d1%83%d1%80%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Микросервисы общаются асинхронно через очереди сообщений и платформы event streaming. Вместо прямого вызова Сервиса B Сервисом A (синхронный HTTP), Сервис A публикует сообщение в очередь, а Сервис B потребляет его, когда готов. Это разделяет сервисы и повышает устойчивость.&lt;/p&gt;
&lt;p&gt;Две доминирующие технологии служат этой цели:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RabbitMQ&lt;/strong&gt; — Традиционный message broker. Сообщения маршрутизируются через exchange-и в очереди. После подтверждения (ACK) потребителем сообщение удаляется из очереди. Лучше для распределения задач и паттернов request/reply.&lt;/p&gt;</description></item><item><title>Стратегия тестирования микросервисов</title><link>https://yrkan.com/ru/course/module-06-api-backend/microservices-testing-strategy/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/microservices-testing-strategy/</guid><description>&lt;h2 id="сложности-тестирования-микросервисов"&gt;Сложности тестирования микросервисов &lt;a href="#%d1%81%d0%bb%d0%be%d0%b6%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d0%bc%d0%b8%d0%ba%d1%80%d0%be%d1%81%d0%b5%d1%80%d0%b2%d0%b8%d1%81%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Архитектуры микросервисов разбивают монолитное приложение на десятки или сотни независимо развёртываемых сервисов. Каждый сервис владеет своими данными, общается по сети и может быть написан на другом языке. Это даёт гибкость развёртывания, но драматически увеличивает сложность тестирования.&lt;/p&gt;
&lt;p&gt;В монолите вы тестируете одно приложение. В микросервисах вы тестируете множество сервисов и взаимодействия между ними. Баг может не существовать ни в одном отдельном сервисе — он может проявиться только когда Сервис A отправляет конкретное сообщение Сервису B, который вызывает Сервис C.&lt;/p&gt;</description></item><item><title>Тестирование CRUD-операций</title><link>https://yrkan.com/ru/course/module-06-api-backend/crud-operations-testing/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/crud-operations-testing/</guid><description>&lt;h2 id="что-такое-crud"&gt;Что такое CRUD &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-crud" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;CRUD означает Create, Read, Update, Delete — четыре базовые операции для постоянного хранения данных. Практически каждый API endpoint соответствует одной из этих операций:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;CRUD&lt;/th&gt;
 &lt;th&gt;HTTP-метод&lt;/th&gt;
 &lt;th&gt;Пример&lt;/th&gt;
 &lt;th&gt;Типичный статус&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Create&lt;/td&gt;
 &lt;td&gt;POST&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;POST /users&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;201 Created&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Read&lt;/td&gt;
 &lt;td&gt;GET&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;GET /users/42&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;200 OK&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Update&lt;/td&gt;
 &lt;td&gt;PUT / PATCH&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;PUT /users/42&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;200 OK&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Delete&lt;/td&gt;
 &lt;td&gt;DELETE&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;DELETE /users/42&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;204 No Content&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Систематическое тестирование CRUD-операций гарантирует, что API корректно обрабатывает весь жизненный цикл ресурса — от создания до удаления.&lt;/p&gt;</description></item><item><title>Тестирование ETL</title><link>https://yrkan.com/ru/course/module-06-api-backend/etl-testing/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/etl-testing/</guid><description>&lt;h2 id="что-такое-тестирование-etl"&gt;Что такое тестирование ETL? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-etl" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;ETL (Extract, Transform, Load) — процесс перемещения данных из систем-источников в целевые системы, обычно хранилища данных или аналитические базы. Тестирование ETL проверяет корректность, полноту и производительность этого процесса.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Системы-источники → Extract → Transform → Load → Целевая система
(базы данных, (извлечь (очистить, (вставить (хранилище данных,
 API, файлы) данные) конвертировать, в цель) аналитическая БД)
 агрегировать)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Баги ETL дорогостоящи, так как повреждают аналитические данные. Если отчёт показывает неверные цифры выручки из-за неправильной конвертации валют в pipeline, бизнес-решения на этих данных ошибочны.&lt;/p&gt;</description></item><item><title>Тестирование GraphQL</title><link>https://yrkan.com/ru/course/module-06-api-backend/graphql-testing/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/graphql-testing/</guid><description>&lt;h2 id="что-такое-graphql"&gt;Что такое GraphQL? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-graphql" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;GraphQL — язык запросов для API, разработанный Facebook (Meta) в 2012 году. В отличие от REST, где сервер определяет, какие данные возвращает каждый endpoint, GraphQL позволяет клиенту указать, какие именно поля ему нужны.&lt;/p&gt;
&lt;h3 id="graphql-vs-rest"&gt;GraphQL vs. REST &lt;a href="#graphql-vs-rest" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Характеристика&lt;/th&gt;
 &lt;th&gt;REST&lt;/th&gt;
 &lt;th&gt;GraphQL&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Endpoint-ы&lt;/td&gt;
 &lt;td&gt;Несколько (/users, /posts)&lt;/td&gt;
 &lt;td&gt;Один (/graphql)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Получение данных&lt;/td&gt;
 &lt;td&gt;Сервер определяет структуру&lt;/td&gt;
 &lt;td&gt;Клиент указывает поля&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Over-fetching&lt;/td&gt;
 &lt;td&gt;Часто&lt;/td&gt;
 &lt;td&gt;Исключён&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Under-fetching&lt;/td&gt;
 &lt;td&gt;Требует нескольких запросов&lt;/td&gt;
 &lt;td&gt;Решено вложенными запросами&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Версионирование&lt;/td&gt;
 &lt;td&gt;URL/заголовки&lt;/td&gt;
 &lt;td&gt;Эволюция схемы&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Кеширование&lt;/td&gt;
 &lt;td&gt;Встроенное HTTP-кеширование&lt;/td&gt;
 &lt;td&gt;Сложнее&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="основные-концепции"&gt;Основные концепции &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Queries&lt;/strong&gt; — чтение данных (аналог GET):&lt;/p&gt;</description></item><item><title>Тестирование gRPC</title><link>https://yrkan.com/ru/course/module-06-api-backend/grpc-testing/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/grpc-testing/</guid><description>&lt;h2 id="что-такое-grpc"&gt;Что такое gRPC? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-grpc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;gRPC (Google Remote Procedure Call) — высокопроизводительный RPC-фреймворк от Google. Использует HTTP/2 для транспорта, Protocol Buffers для сериализации и предоставляет двунаправленный стриминг, контроль потока и встроенную аутентификацию.&lt;/p&gt;
&lt;h3 id="grpc-vs-rest"&gt;gRPC vs. REST &lt;a href="#grpc-vs-rest" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Характеристика&lt;/th&gt;
 &lt;th&gt;REST&lt;/th&gt;
 &lt;th&gt;gRPC&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Протокол&lt;/td&gt;
 &lt;td&gt;HTTP/1.1 или HTTP/2&lt;/td&gt;
 &lt;td&gt;Только HTTP/2&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Формат&lt;/td&gt;
 &lt;td&gt;JSON (текст)&lt;/td&gt;
 &lt;td&gt;Protobuf (бинарный)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Контракт&lt;/td&gt;
 &lt;td&gt;Опциональный (OpenAPI)&lt;/td&gt;
 &lt;td&gt;Обязательный (.proto)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Стриминг&lt;/td&gt;
 &lt;td&gt;Ограниченный (WebSocket)&lt;/td&gt;
 &lt;td&gt;Встроенный (4 паттерна)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Генерация кода&lt;/td&gt;
 &lt;td&gt;Опциональная&lt;/td&gt;
 &lt;td&gt;Встроенная&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Производительность&lt;/td&gt;
 &lt;td&gt;Хорошая&lt;/td&gt;
 &lt;td&gt;Отличная (в 2-10 раз быстрее)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Применение&lt;/td&gt;
 &lt;td&gt;Публичные API, веб&lt;/td&gt;
 &lt;td&gt;Микросервисы, мобильные&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="protocol-buffers"&gt;Protocol Buffers &lt;a href="#protocol-buffers" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;.proto&lt;/code&gt; файлы определяют контракт API:&lt;/p&gt;</description></item><item><title>Тестирование NoSQL: MongoDB, Redis, DynamoDB</title><link>https://yrkan.com/ru/course/module-06-api-backend/nosql-testing/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/nosql-testing/</guid><description>&lt;h2 id="nosql-базы-в-современных-стеках"&gt;NoSQL-базы в современных стеках &lt;a href="#nosql-%d0%b1%d0%b0%d0%b7%d1%8b-%d0%b2-%d1%81%d0%be%d0%b2%d1%80%d0%b5%d0%bc%d0%b5%d0%bd%d0%bd%d1%8b%d1%85-%d1%81%d1%82%d0%b5%d0%ba%d0%b0%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;NoSQL-базы обменивают жёсткую схему и ACID-гарантии SQL на гибкость, масштабируемость и производительность в конкретных случаях. Как QA-инженеру вам нужны разные подходы к тестированию для каждого типа.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;th&gt;Примеры&lt;/th&gt;
 &lt;th&gt;Случай использования&lt;/th&gt;
 &lt;th&gt;Фокус тестирования&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Документное&lt;/td&gt;
 &lt;td&gt;MongoDB, CouchDB&lt;/td&gt;
 &lt;td&gt;Гибкие схемы, вложенные данные&lt;/td&gt;
 &lt;td&gt;Согласованность схемы, индексация&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Key-Value&lt;/td&gt;
 &lt;td&gt;Redis, Memcached&lt;/td&gt;
 &lt;td&gt;Кеширование, сессии, счётчики&lt;/td&gt;
 &lt;td&gt;TTL, вытеснение, типы данных&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Wide-Column&lt;/td&gt;
 &lt;td&gt;DynamoDB, Cassandra&lt;/td&gt;
 &lt;td&gt;Высокая масштабируемость, time-series&lt;/td&gt;
 &lt;td&gt;Стратегия партиционирования, согласованность&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Графовое&lt;/td&gt;
 &lt;td&gt;Neo4j, Neptune&lt;/td&gt;
 &lt;td&gt;Связи, сети&lt;/td&gt;
 &lt;td&gt;Корректность обходов&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="тестирование-mongodb"&gt;Тестирование MongoDB &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-mongodb" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;MongoDB хранит данные как JSON-подобные документы (BSON). Коллекции по умолчанию не применяют схему, что означает — ваше приложение и тесты должны валидировать структуру данных.&lt;/p&gt;</description></item><item><title>Тестирование Service Mesh</title><link>https://yrkan.com/ru/course/module-06-api-backend/service-mesh-testing/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/service-mesh-testing/</guid><description>&lt;h2 id="что-такое-service-mesh"&gt;Что такое Service Mesh? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-service-mesh" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Service mesh — это инфраструктурный слой, управляющий коммуникацией между микросервисами. Вместо того чтобы каждый сервис реализовывал собственную логику ретраев, circuit breaker-ы и шифрование, эти задачи решает proxy (sidecar), работающий рядом с каждым сервисом.&lt;/p&gt;
&lt;p&gt;Наиболее распространённые реализации service mesh:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Service Mesh&lt;/th&gt;
 &lt;th&gt;Proxy&lt;/th&gt;
 &lt;th&gt;Ключевые особенности&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Istio&lt;/td&gt;
 &lt;td&gt;Envoy&lt;/td&gt;
 &lt;td&gt;Полнофункциональный, широко распространён, сложный&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Linkerd&lt;/td&gt;
 &lt;td&gt;linkerd2-proxy&lt;/td&gt;
 &lt;td&gt;Лёгкий, на Rust, проще&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Consul Connect&lt;/td&gt;
 &lt;td&gt;Envoy&lt;/td&gt;
 &lt;td&gt;Интеграция с экосистемой HashiCorp&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="как-это-работает"&gt;Как это работает &lt;a href="#%d0%ba%d0%b0%d0%ba-%d1%8d%d1%82%d0%be-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d0%b5%d1%82" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;┌──────────────────┐ ┌──────────────────┐
│ Сервис A │ │ Сервис B │
│ ┌──────────────┐│ │┌──────────────┐ │
│ │ Код прилож. ││ ││ Код прилож. │ │
│ └──────┬───────┘│ │└──────▲───────┘ │
│ │ │ │ │ │
│ ┌──────▼───────┐│ │┌──────┴───────┐ │
│ │ Sidecar │├────▶││ Sidecar │ │
│ │ Proxy ││ ││ Proxy │ │
│ └──────────────┘│ │└──────────────┘ │
└──────────────────┘ └──────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Весь трафик между сервисами проходит через sidecar proxy. Control plane меша конфигурирует эти proxy правилами маршрутизации, политиками безопасности и настройками наблюдаемости.&lt;/p&gt;</description></item><item><title>Тестирование SOAP и XML</title><link>https://yrkan.com/ru/course/module-06-api-backend/soap-xml-testing/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/soap-xml-testing/</guid><description>&lt;h2 id="что-такое-soap"&gt;Что такое SOAP? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-soap" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;SOAP (Simple Object Access Protocol) — протокол обмена сообщениями для передачи структурированных данных. Использует XML для форматирования сообщений и обычно работает поверх HTTP, хотя может использовать другие протоколы (SMTP и др.).&lt;/p&gt;
&lt;p&gt;SOAP доминировал до появления REST. Хотя новые API используют REST или GraphQL, SOAP остаётся критически важным в enterprise-среде.&lt;/p&gt;
&lt;h3 id="где-soap-по-прежнему-используется"&gt;Где SOAP по-прежнему используется &lt;a href="#%d0%b3%d0%b4%d0%b5-soap-%d0%bf%d0%be-%d0%bf%d1%80%d0%b5%d0%b6%d0%bd%d0%b5%d0%bc%d1%83-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d1%83%d0%b5%d1%82%d1%81%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Банки и финансы&lt;/strong&gt; — обработка платежей, межбанковская связь&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Здравоохранение&lt;/strong&gt; — интеграции HL7/FHIR, страховые претензии&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Госсектор&lt;/strong&gt; — подача налоговых деклараций, регуляторная отчётность&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enterprise&lt;/strong&gt; — SAP, Salesforce SOAP API, legacy CRM/ERP&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Телекоммуникации&lt;/strong&gt; — провижининг, биллинг&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="soap-vs-rest"&gt;SOAP vs. REST &lt;a href="#soap-vs-rest" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Характеристика&lt;/th&gt;
 &lt;th&gt;SOAP&lt;/th&gt;
 &lt;th&gt;REST&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Формат&lt;/td&gt;
 &lt;td&gt;Только XML&lt;/td&gt;
 &lt;td&gt;JSON, XML, другие&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Контракт&lt;/td&gt;
 &lt;td&gt;Обязательный (WSDL)&lt;/td&gt;
 &lt;td&gt;Опциональный (OpenAPI)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Безопасность&lt;/td&gt;
 &lt;td&gt;WS-Security (встроенная)&lt;/td&gt;
 &lt;td&gt;HTTPS + пользовательская&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Обработка ошибок&lt;/td&gt;
 &lt;td&gt;SOAP Faults&lt;/td&gt;
 &lt;td&gt;HTTP-коды статуса&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Кривая обучения&lt;/td&gt;
 &lt;td&gt;Высокая&lt;/td&gt;
 &lt;td&gt;Низкая&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="структура-soap-сообщения"&gt;Структура SOAP-сообщения &lt;a href="#%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%b0-soap-%d1%81%d0%be%d0%be%d0%b1%d1%89%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;soap:Envelope&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;xmlns:soap=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;http://schemas.xmlsoap.org/soap/envelope/&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;xmlns:usr=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;http://example.com/users&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;soap:Header&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;usr:AuthToken&amp;gt;&lt;/span&gt;token123&lt;span style="color:#f92672"&gt;&amp;lt;/usr:AuthToken&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;/soap:Header&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;soap:Body&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;usr:GetUser&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;usr:userId&amp;gt;&lt;/span&gt;42&lt;span style="color:#f92672"&gt;&amp;lt;/usr:userId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;/usr:GetUser&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;/soap:Body&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;/soap:Envelope&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="soap-faults-ответы-об-ошибках"&gt;SOAP Faults (ответы об ошибках) &lt;a href="#soap-faults-%d0%be%d1%82%d0%b2%d0%b5%d1%82%d1%8b-%d0%be%d0%b1-%d0%be%d1%88%d0%b8%d0%b1%d0%ba%d0%b0%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;soap:Fault&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;faultcode&amp;gt;&lt;/span&gt;soap:Client&lt;span style="color:#f92672"&gt;&amp;lt;/faultcode&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;faultstring&amp;gt;&lt;/span&gt;Пользователь не найден&lt;span style="color:#f92672"&gt;&amp;lt;/faultstring&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;detail&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;errorCode&amp;gt;&lt;/span&gt;USER_404&lt;span style="color:#f92672"&gt;&amp;lt;/errorCode&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;lt;/detail&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;&amp;lt;/soap:Fault&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="wsdl--контракт"&gt;WSDL — контракт &lt;a href="#wsdl--%d0%ba%d0%be%d0%bd%d1%82%d1%80%d0%b0%d0%ba%d1%82" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;WSDL определяет всё о SOAP-сервисе: типы, сообщения, операции, привязки и endpoint-ы.&lt;/p&gt;</description></item><item><title>Тестирование SQL-баз данных</title><link>https://yrkan.com/ru/course/module-06-api-backend/sql-database-testing/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/sql-database-testing/</guid><description>&lt;h2 id="зачем-тестировать-базы-данных-напрямую"&gt;Зачем тестировать базы данных напрямую? &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c-%d0%b1%d0%b0%d0%b7%d1%8b-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85-%d0%bd%d0%b0%d0%bf%d1%80%d1%8f%d0%bc%d1%83%d1%8e" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;API-тесты проверяют, что возвращает API, но не проверяют, что реально хранится в базе данных. API может вернуть успешный ответ, тогда как записанные данные некорректны, неполны или нарушают ограничения.&lt;/p&gt;
&lt;p&gt;Тестирование баз данных выявляет проблемы, которые пропускают API-тесты:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Данные записаны в неправильную таблицу или колонку&lt;/li&gt;
&lt;li&gt;Отсутствующее или некорректное применение ограничений&lt;/li&gt;
&lt;li&gt;Побочные эффекты триггеров, не отражённые в ответах API&lt;/li&gt;
&lt;li&gt;Проблемы производительности индексов на реальных объёмах данных&lt;/li&gt;
&lt;li&gt;Нарушения изоляции транзакций, вызывающие повреждение данных&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="основы-sql-для-тестировщиков"&gt;Основы SQL для тестировщиков &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d1%8b-sql-%d0%b4%d0%bb%d1%8f-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d1%89%d0%b8%d0%ba%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="проверка-данных-после-api-вызовов"&gt;Проверка данных после API-вызовов &lt;a href="#%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d0%ba%d0%b0-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85-%d0%bf%d0%be%d1%81%d0%bb%d0%b5-api-%d0%b2%d1%8b%d0%b7%d0%be%d0%b2%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;После вызова endpoint API запросите базу данных для подтверждения операции:&lt;/p&gt;</description></item><item><title>Тестирование вебхуков</title><link>https://yrkan.com/ru/course/module-06-api-backend/webhook-testing/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/webhook-testing/</guid><description>&lt;h2 id="как-работают-вебхуки"&gt;Как работают вебхуки &lt;a href="#%d0%ba%d0%b0%d0%ba-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d1%8e%d1%82-%d0%b2%d0%b5%d0%b1%d1%85%d1%83%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Вебхуки — это HTTP-коллбэки. Когда событие происходит в системе провайдера, он отправляет HTTP POST на зарегистрированный вами URL.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;1. Вы регистрируете: &amp;#34;Отправляйте события на https://myapp.com/webhooks/stripe&amp;#34;
2. Событие в Stripe: payment_intent.succeeded
3. Stripe отправляет POST на https://myapp.com/webhooks/stripe
4. Ваш сервер обрабатывает событие и возвращает 200 OK
5. Stripe отмечает webhook как доставленный
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="что-тестировать"&gt;Что тестировать &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-валидация-payload"&gt;1. Валидация payload &lt;a href="#1-%d0%b2%d0%b0%d0%bb%d0%b8%d0%b4%d0%b0%d1%86%d0%b8%d1%8f-payload" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Проверьте, что приёмник корректно разбирает payload вебхука.&lt;/p&gt;
&lt;h3 id="2-верификация-подписи"&gt;2. Верификация подписи &lt;a href="#2-%d0%b2%d0%b5%d1%80%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%8f-%d0%bf%d0%be%d0%b4%d0%bf%d0%b8%d1%81%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Проверьте, что приёмник отклоняет неподписанные или подделанные payload.&lt;/p&gt;</description></item><item><title>Тестирование документации API</title><link>https://yrkan.com/ru/course/module-06-api-backend/api-documentation-testing/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/api-documentation-testing/</guid><description>&lt;h2 id="зачем-тестировать-документацию-api"&gt;Зачем тестировать документацию API? &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c-%d0%b4%d0%be%d0%ba%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d0%b0%d1%86%d0%b8%d1%8e-api" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Документация API — это контракт с потребителями. Когда документация говорит, что &lt;code&gt;GET /users&lt;/code&gt; возвращает JSON с &lt;code&gt;name&lt;/code&gt; и &lt;code&gt;email&lt;/code&gt;, потребители строят интеграции на этом обещании. Если API возвращает &lt;code&gt;username&lt;/code&gt; вместо &lt;code&gt;name&lt;/code&gt;, все интеграции ломаются.&lt;/p&gt;
&lt;h2 id="типы-тестов-документации"&gt;Типы тестов документации &lt;a href="#%d1%82%d0%b8%d0%bf%d1%8b-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2-%d0%b4%d0%be%d0%ba%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d0%b0%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-валидность-спецификации"&gt;1. Валидность спецификации &lt;a href="#1-%d0%b2%d0%b0%d0%bb%d0%b8%d0%b4%d0%bd%d0%be%d1%81%d1%82%d1%8c-%d1%81%d0%bf%d0%b5%d1%86%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Проверьте, что OpenAPI/Swagger спецификация валидна:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;npx @redocly/cli lint openapi.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-полнота-документации"&gt;2. Полнота документации &lt;a href="#2-%d0%bf%d0%be%d0%bb%d0%bd%d0%be%d1%82%d0%b0-%d0%b4%d0%be%d0%ba%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d0%b0%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Проверьте, что каждый endpoint документирован с описаниями, параметрами, ответами, примерами и требованиями аутентификации.&lt;/p&gt;</description></item><item><title>Тестирование интеграции со сторонними сервисами</title><link>https://yrkan.com/ru/course/module-06-api-backend/third-party-integration-testing/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/third-party-integration-testing/</guid><description>&lt;h2 id="сложности-интеграций-с-третьими-сторонами"&gt;Сложности интеграций с третьими сторонами &lt;a href="#%d1%81%d0%bb%d0%be%d0%b6%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%b8%d0%bd%d1%82%d0%b5%d0%b3%d1%80%d0%b0%d1%86%d0%b8%d0%b9-%d1%81-%d1%82%d1%80%d0%b5%d1%82%d1%8c%d0%b8%d0%bc%d0%b8-%d1%81%d1%82%d0%be%d1%80%d0%be%d0%bd%d0%b0%d0%bc%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Современные приложения зависят от внешних сервисов: платёжные системы, провайдеры email, облачные сервисы, аутентификация и многое другое. Тестирование этих интеграций сложно, потому что вы не контролируете внешний сервис.&lt;/p&gt;
&lt;h2 id="sandbox-и-тестовые-окружения"&gt;Sandbox и тестовые окружения &lt;a href="#sandbox-%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2%d1%8b%d0%b5-%d0%be%d0%ba%d1%80%d1%83%d0%b6%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Большинство крупных API-провайдеров предлагают sandbox или тестовые окружения. Используйте тестовые ключи для избежания реальных транзакций.&lt;/p&gt;
&lt;h2 id="стратегии-тестирования"&gt;Стратегии тестирования &lt;a href="#%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="стратегия-1-sandbox-тестирование"&gt;Стратегия 1: Sandbox-тестирование &lt;a href="#%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d1%8f-1-sandbox-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Используйте sandbox провайдера для реалистичного интеграционного тестирования.&lt;/p&gt;
&lt;h3 id="стратегия-2-mock-сервер"&gt;Стратегия 2: Mock-сервер &lt;a href="#%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d1%8f-2-mock-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Замените внешнюю API локальным mock-ом с предопределёнными ответами.&lt;/p&gt;</description></item><item><title>Тестирование миграции данных</title><link>https://yrkan.com/ru/course/module-06-api-backend/data-migration-testing/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/data-migration-testing/</guid><description>&lt;h2 id="почему-тестирование-миграции-данных-важно"&gt;Почему тестирование миграции данных важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bc%d0%b8%d0%b3%d1%80%d0%b0%d1%86%d0%b8%d0%b8-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Миграция данных перемещает данные из одной системы в другую — часто из legacy-базы в современную платформу. Это высокорисковые операции, потому что:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Потеря данных может быть катастрофической и иногда необратимой.&lt;/li&gt;
&lt;li&gt;Различия схем требуют сложных трансформаций.&lt;/li&gt;
&lt;li&gt;Простой при миграции напрямую влияет на бизнес-операции.&lt;/li&gt;
&lt;li&gt;Мигрированные данные могут вести себя иначе в новой системе.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="типы-миграции"&gt;Типы миграции &lt;a href="#%d1%82%d0%b8%d0%bf%d1%8b-%d0%bc%d0%b8%d0%b3%d1%80%d0%b0%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;th&gt;Описание&lt;/th&gt;
 &lt;th&gt;Уровень риска&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Big bang&lt;/td&gt;
 &lt;td&gt;Все данные мигрируются за раз в окне обслуживания&lt;/td&gt;
 &lt;td&gt;Высокий&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Trickle&lt;/td&gt;
 &lt;td&gt;Данные мигрируются постепенно&lt;/td&gt;
 &lt;td&gt;Средний&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Параллельная работа&lt;/td&gt;
 &lt;td&gt;Обе системы работают одновременно с синхронизацией&lt;/td&gt;
 &lt;td&gt;Низкий, но дорогой&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Blue-green&lt;/td&gt;
 &lt;td&gt;Новая система полностью подготовлена, затем переключение&lt;/td&gt;
 &lt;td&gt;Средний&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="процесс-тестирования-миграции"&gt;Процесс тестирования миграции &lt;a href="#%d0%bf%d1%80%d0%be%d1%86%d0%b5%d1%81%d1%81-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d0%bc%d0%b8%d0%b3%d1%80%d0%b0%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="фаза-1-предмиграционный-анализ"&gt;Фаза 1: Предмиграционный анализ &lt;a href="#%d1%84%d0%b0%d0%b7%d0%b0-1-%d0%bf%d1%80%d0%b5%d0%b4%d0%bc%d0%b8%d0%b3%d1%80%d0%b0%d1%86%d0%b8%d0%be%d0%bd%d0%bd%d1%8b%d0%b9-%d0%b0%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Перед написанием тестов проанализируйте миграцию и создайте документ маппинга.&lt;/p&gt;</description></item><item><title>Тестирование ограничения запросов</title><link>https://yrkan.com/ru/course/module-06-api-backend/rate-limiting-testing/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/rate-limiting-testing/</guid><description>&lt;h2 id="что-такое-rate-limiting"&gt;Что такое Rate Limiting? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-rate-limiting" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Rate limiting контролирует, сколько запросов клиент может сделать к API за определённое временное окно. Он защищает серверы от злоупотреблений, обеспечивает справедливое использование и предотвращает DDoS-атаки. Как тестировщик, вам нужно проверить, что rate limit-ы корректно реализованы и что API ясно сообщает о лимитах.&lt;/p&gt;
&lt;h3 id="почему-rate-limiting-важен"&gt;Почему Rate Limiting важен &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-rate-limiting-%d0%b2%d0%b0%d0%b6%d0%b5%d0%bd" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Без rate limiting один клиент может перегрузить сервер:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Баг в мобильном приложении, отправляющий запросы в бесконечном цикле&lt;/li&gt;
&lt;li&gt;Злоумышленник, пытающийся скачать все данные&lt;/li&gt;
&lt;li&gt;Неправильно настроенная интеграция с тысячами вызовов в секунду&lt;/li&gt;
&lt;li&gt;Brute-force атаки на endpoint-ы аутентификации&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="алгоритмы-rate-limiting"&gt;Алгоритмы Rate Limiting &lt;a href="#%d0%b0%d0%bb%d0%b3%d0%be%d1%80%d0%b8%d1%82%d0%bc%d1%8b-rate-limiting" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="фиксированное-окно-fixed-window"&gt;Фиксированное окно (Fixed Window) &lt;a href="#%d1%84%d0%b8%d0%ba%d1%81%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%bd%d0%be%d0%b5-%d0%be%d0%ba%d0%bd%d0%be-fixed-window" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Считает запросы в фиксированных временных интервалах. Прост в реализации, но допускает всплески на границах окон.&lt;/p&gt;</description></item><item><title>Тестирование производительности API</title><link>https://yrkan.com/ru/course/module-06-api-backend/api-performance-testing/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/api-performance-testing/</guid><description>&lt;h2 id="почему-тестирование-производительности-api-важно"&gt;Почему тестирование производительности API важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b8%d0%b7%d0%b2%d0%be%d0%b4%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8-api-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Каждое современное приложение зависит от API. Когда API замедляется, весь пользовательский опыт деградирует — страницы загружаются дольше, мобильные приложения зависают, а интеграции получают таймауты. Тестирование производительности API гарантирует, что ваши endpoint-ы справляются с ожидаемым и пиковым трафиком без деградации пользовательского опыта.&lt;/p&gt;
&lt;p&gt;В отличие от тестирования производительности UI, тестирование производительности API изолирует бэкенд. Вы исключаете рендеринг браузера, сетевую вариативность и фронтенд-код из уравнения. Это даёт точные измерения того, как сервер обрабатывает запросы.&lt;/p&gt;</description></item><item><title>Тестирование событийной архитектуры</title><link>https://yrkan.com/ru/course/module-06-api-backend/event-driven-architecture/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-06-api-backend/event-driven-architecture/</guid><description>&lt;h2 id="обзор-event-driven-архитектуры"&gt;Обзор Event-Driven архитектуры &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-event-driven-%d0%b0%d1%80%d1%85%d0%b8%d1%82%d0%b5%d0%ba%d1%82%d1%83%d1%80%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;В event-driven архитектуре (EDA) сервисы общаются, продюсируя и потребляя события, а не делая прямые API-вызовы. Когда что-то происходит в Сервисе A (пользователь оформляет заказ), он публикует событие. Другие сервисы реагируют на это событие независимо.&lt;/p&gt;
&lt;p&gt;Такой подход обеспечивает слабую связанность, высокую масштабируемость и устойчивость — но вносит сложности тестирования, отсутствующие в синхронных системах: eventual consistency, порядок событий, дублирование доставки и сложные режимы отказов.&lt;/p&gt;
&lt;h2 id="event-sourcing"&gt;Event Sourcing &lt;a href="#event-sourcing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Вместо хранения текущего состояния сущности, event sourcing хранит последовательность событий, приведших к этому состоянию.&lt;/p&gt;</description></item><item><title>Core Web Vitals</title><link>https://yrkan.com/ru/course/module-05-web-testing/core-web-vitals/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/core-web-vitals/</guid><description>&lt;h2 id="что-такое-core-web-vitals"&gt;Что Такое Core Web Vitals? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-core-web-vitals" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Core Web Vitals — это набор из трёх метрик производительности, определённых Google, которые измеряют реальный пользовательский опыт на веб-страницах. Они напрямую влияют на поисковые рейтинги и представляют собой то, что Google считает наиболее важными аспектами взаимодействия с страницей.&lt;/p&gt;
&lt;p&gt;Для QA-инженера понимание этих метрик важно, потому что:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Они влияют на SEO-рейтинги (видимость в поиске)&lt;/li&gt;
&lt;li&gt;Они коррелируют с вовлечённостью пользователей и конверсией&lt;/li&gt;
&lt;li&gt;Они предоставляют объективные, измеримые критерии для приёмочного тестирования производительности&lt;/li&gt;
&lt;li&gt;Они всё чаще включаются в бюджеты производительности и критерии релиза&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="три-core-web-vitals"&gt;Три Core Web Vitals &lt;a href="#%d1%82%d1%80%d0%b8-core-web-vitals" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="lcp--largest-contentful-paint"&gt;LCP — Largest Contentful Paint &lt;a href="#lcp--largest-contentful-paint" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Что измеряет:&lt;/strong&gt; Время от начала загрузки страницы до рендеринга самого большого элемента контента во viewport.&lt;/p&gt;</description></item><item><title>HTML, CSS и JavaScript для тестировщиков</title><link>https://yrkan.com/ru/course/module-05-web-testing/html-css-js-for-testers/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/html-css-js-for-testers/</guid><description>&lt;h2 id="зачем-тестировщикам-знания-о-frontend"&gt;Зачем тестировщикам знания о frontend &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d1%89%d0%b8%d0%ba%d0%b0%d0%bc-%d0%b7%d0%bd%d0%b0%d0%bd%d0%b8%d1%8f-%d0%be-frontend" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Вам не нужно становиться frontend-разработчиком. Но вам нужно говорить на этом языке достаточно хорошо, чтобы вести продуктивные разговоры с разработчиками, писать точные баг-репорты и понимать, что вы тестируете.&lt;/p&gt;
&lt;p&gt;Когда тестировщик говорит «кнопка не на своём месте», разработчику приходится гадать, что происходит. Когда тестировщик говорит «у кнопки submit стоит &lt;code&gt;margin-top: 0&lt;/code&gt; вместо &lt;code&gt;margin-top: 16px&lt;/code&gt;, из-за чего она перекрывает поле формы на экранах уже 768px», разработчик может исправить это за секунды.&lt;/p&gt;</description></item><item><title>SEO-тестирование для QA</title><link>https://yrkan.com/ru/course/module-05-web-testing/seo-testing-for-qa/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/seo-testing-for-qa/</guid><description>&lt;h2 id="почему-qa-инженерам-нужно-тестировать-seo"&gt;Почему QA-Инженерам Нужно Тестировать SEO &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-qa-%d0%b8%d0%bd%d0%b6%d0%b5%d0%bd%d0%b5%d1%80%d0%b0%d0%bc-%d0%bd%d1%83%d0%b6%d0%bd%d0%be-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c-seo" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;SEO (Search Engine Optimization) напрямую влияет на то, сколько пользователей находят сайт через поисковые системы. Один неправильно настроенный мета-тег, сломанный canonical URL или случайная директива &lt;code&gt;noindex&lt;/code&gt; может привести к исчезновению страниц из поисковой выдачи, потенциально стоя тысячи посетителей.&lt;/p&gt;
&lt;p&gt;QA-инженеры находятся в уникальной позиции для обнаружения SEO-проблем, поскольку уже тестируют HTML-вывод, проверяют поведение страниц и исследуют edge cases, которые разработчики могут упустить.&lt;/p&gt;
&lt;h2 id="основные-seo-элементы-для-тестирования"&gt;Основные SEO-Элементы для Тестирования &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-seo-%d1%8d%d0%bb%d0%b5%d0%bc%d0%b5%d0%bd%d1%82%d1%8b-%d0%b4%d0%bb%d1%8f-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="теги-title"&gt;Теги Title &lt;a href="#%d1%82%d0%b5%d0%b3%d0%b8-title" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Тег &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt; отображается в результатах поиска и вкладках браузера. Проверяйте:&lt;/p&gt;</description></item><item><title>Аудит с помощью Lighthouse</title><link>https://yrkan.com/ru/course/module-05-web-testing/lighthouse-auditing/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/lighthouse-auditing/</guid><description>&lt;h2 id="что-такое-lighthouse"&gt;Что Такое Lighthouse? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-lighthouse" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Lighthouse — это автоматизированный open-source инструмент, разработанный Google для аудита качества веб-страниц. Он выполняет серию проверок страницы и генерирует отчёт с оценками и практическими рекомендациями по пяти категориям: Performance, Accessibility, Best Practices, SEO и PWA.&lt;/p&gt;
&lt;p&gt;Для QA-инженеров Lighthouse служит комплексным gate качества, способным выявить проблемы от медленной загрузки страниц до отсутствующих атрибутов доступности и ошибок конфигурации SEO — всё из одного инструмента.&lt;/p&gt;
&lt;h2 id="пять-категорий-аудита"&gt;Пять Категорий Аудита &lt;a href="#%d0%bf%d1%8f%d1%82%d1%8c-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be%d1%80%d0%b8%d0%b9-%d0%b0%d1%83%d0%b4%d0%b8%d1%82%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="performance-0-100"&gt;Performance (0-100) &lt;a href="#performance-0-100" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Измеряет скорость загрузки и интерактивности страницы. Ключевые метрики:&lt;/p&gt;</description></item><item><title>Веб-архитектура для QA</title><link>https://yrkan.com/ru/course/module-05-web-testing/web-architecture-for-qa/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/web-architecture-for-qa/</guid><description>&lt;h2 id="почему-qa-инженерам-нужно-понимать-веб-архитектуру"&gt;Почему QA-инженерам нужно понимать веб-архитектуру &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-qa-%d0%b8%d0%bd%d0%b6%d0%b5%d0%bd%d0%b5%d1%80%d0%b0%d0%bc-%d0%bd%d1%83%d0%b6%d0%bd%d0%be-%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d1%82%d1%8c-%d0%b2%d0%b5%d0%b1-%d0%b0%d1%80%d1%85%d0%b8%d1%82%d0%b5%d0%ba%d1%82%d1%83%d1%80%d1%83" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Когда вы находите баг в веб-приложении, первый вопрос разработчика будет: «Это проблема frontend или backend?» Если вы не можете ответить на этот вопрос, ваш баг-репорт будет перебрасываться между командами, тратя время всех участников.&lt;/p&gt;
&lt;p&gt;Понимание веб-архитектуры превращает вас из тестировщика, который говорит «оно сломалось», в QA-инженера, который говорит «API возвращает статус 200, но тело ответа содержит пустой массив, когда у пользователя есть товары в корзине — похоже, это проблема получения данных на backend».&lt;/p&gt;</description></item><item><title>Кроссбраузерное тестирование</title><link>https://yrkan.com/ru/course/module-05-web-testing/cross-browser-testing/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/cross-browser-testing/</guid><description>&lt;h2 id="почему-кроссбраузерное-тестирование-важно"&gt;Почему кроссбраузерное тестирование важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%ba%d1%80%d0%be%d1%81%d1%81%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Веб-приложение, которое выглядит идеально в Chrome, может быть полностью сломано в Safari. JavaScript-функция, работающая в Firefox, может вызывать ошибку в старых версиях Edge. CSS-макет, прекрасно отрисовывающийся на десктопе, может развалиться в мобильных браузерах.&lt;/p&gt;
&lt;p&gt;Кроссбраузерное тестирование гарантирует, что ваше приложение работает корректно для всех пользователей, независимо от выбранного браузера или устройства. Пропустить его — значит тестировать только для части аудитории.&lt;/p&gt;
&lt;h2 id="движки-рендеринга-браузеров"&gt;Движки рендеринга браузеров &lt;a href="#%d0%b4%d0%b2%d0%b8%d0%b6%d0%ba%d0%b8-%d1%80%d0%b5%d0%bd%d0%b4%d0%b5%d1%80%d0%b8%d0%bd%d0%b3%d0%b0-%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Коренная причина кроссбраузерных проблем в том, что разные браузеры используют разные движки рендеринга:&lt;/p&gt;</description></item><item><title>Мастерство работы с DevTools</title><link>https://yrkan.com/ru/course/module-05-web-testing/browser-devtools-mastery/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/browser-devtools-mastery/</guid><description>&lt;h2 id="devtools-ваш-самый-мощный-инструмент-тестирования"&gt;DevTools: Ваш самый мощный инструмент тестирования &lt;a href="#devtools-%d0%b2%d0%b0%d1%88-%d1%81%d0%b0%d0%bc%d1%8b%d0%b9-%d0%bc%d0%be%d1%89%d0%bd%d1%8b%d0%b9-%d0%b8%d0%bd%d1%81%d1%82%d1%80%d1%83%d0%bc%d0%b5%d0%bd%d1%82-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DevTools браузера — самый ценный инструмент в арсенале веб-тестировщика. Он позволяет видеть всё, что происходит под поверхностью — сетевые запросы, ошибки JavaScript, изменения DOM, данные хранилищ, метрики производительности и многое другое.&lt;/p&gt;
&lt;p&gt;Каждый крупный браузер включает DevTools: Chrome DevTools (F12), Firefox Developer Tools, Safari Web Inspector и Edge DevTools. Этот урок фокусируется на Chrome DevTools, так как он используется наиболее широко, но концепции применимы ко всем браузерам.&lt;/p&gt;</description></item><item><title>Обработка ошибок и страницы ошибок</title><link>https://yrkan.com/ru/course/module-05-web-testing/error-handling-error-pages/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/error-handling-error-pages/</guid><description>&lt;h2 id="почему-тестирование-обработки-ошибок-важно"&gt;Почему Тестирование Обработки Ошибок Важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%be%d0%b1%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b8-%d0%be%d1%88%d0%b8%d0%b1%d0%be%d0%ba-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Пользователи неизбежно столкнутся с ошибками — удалённые страницы, невалидные формы, сетевые таймауты и серверные сбои. Как приложение обрабатывает ошибки, определяет доверие пользователей и устойчивость к атакам.&lt;/p&gt;
&lt;p&gt;Обработка ошибок — одна из наиболее часто упускаемых областей тестирования. Разработчики фокусируются на happy path, а ошибки тестируются в последнюю очередь.&lt;/p&gt;
&lt;h2 id="категории-http-кодов"&gt;Категории HTTP-Кодов &lt;a href="#%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be%d1%80%d0%b8%d0%b8-http-%d0%ba%d0%be%d0%b4%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Диапазон&lt;/th&gt;
 &lt;th&gt;Категория&lt;/th&gt;
 &lt;th&gt;Значение&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;2xx&lt;/td&gt;
 &lt;td&gt;Успех&lt;/td&gt;
 &lt;td&gt;Запрос выполнен&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3xx&lt;/td&gt;
 &lt;td&gt;Перенаправление&lt;/td&gt;
 &lt;td&gt;Клиент должен предпринять действие&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;4xx&lt;/td&gt;
 &lt;td&gt;Ошибка клиента&lt;/td&gt;
 &lt;td&gt;Запрос невалиден&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;5xx&lt;/td&gt;
 &lt;td&gt;Ошибка сервера&lt;/td&gt;
 &lt;td&gt;Сервер не смог выполнить валидный запрос&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="ключевые-коды-для-тестирования"&gt;Ключевые Коды для Тестирования &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%b4%d1%8b-%d0%b4%d0%bb%d1%8f-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Код&lt;/th&gt;
 &lt;th&gt;Значение&lt;/th&gt;
 &lt;th&gt;Когда тестировать&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;200&lt;/td&gt;
 &lt;td&gt;OK&lt;/td&gt;
 &lt;td&gt;Каждый успешный запрос&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;301&lt;/td&gt;
 &lt;td&gt;Перемещено навсегда&lt;/td&gt;
 &lt;td&gt;Миграции URL, HTTPS-редиректы&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;400&lt;/td&gt;
 &lt;td&gt;Плохой запрос&lt;/td&gt;
 &lt;td&gt;Невалидные данные&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;401&lt;/td&gt;
 &lt;td&gt;Не авторизован&lt;/td&gt;
 &lt;td&gt;Отсутствующая/невалидная аутентификация&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;403&lt;/td&gt;
 &lt;td&gt;Запрещено&lt;/td&gt;
 &lt;td&gt;Валидная auth, но недостаточно прав&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;404&lt;/td&gt;
 &lt;td&gt;Не найдено&lt;/td&gt;
 &lt;td&gt;Несуществующие URL&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;429&lt;/td&gt;
 &lt;td&gt;Слишком много запросов&lt;/td&gt;
 &lt;td&gt;Rate limiting&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;500&lt;/td&gt;
 &lt;td&gt;Внутренняя ошибка&lt;/td&gt;
 &lt;td&gt;Необработанные исключения&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;503&lt;/td&gt;
 &lt;td&gt;Сервис недоступен&lt;/td&gt;
 &lt;td&gt;Обслуживание, перегрузка&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="тестирование-кастомных-страниц-ошибок"&gt;Тестирование Кастомных Страниц Ошибок &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%ba%d0%b0%d1%81%d1%82%d0%be%d0%bc%d0%bd%d1%8b%d1%85-%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%b8%d1%86-%d0%be%d1%88%d0%b8%d0%b1%d0%be%d0%ba" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="страница-404"&gt;Страница 404 &lt;a href="#%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%b8%d1%86%d0%b0-404" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Несуществующий URL показывает кастомную 404 (не дефолтную серверную)&lt;/li&gt;
&lt;li&gt;Сохраняется брендинг сайта (шапка, подвал, стили)&lt;/li&gt;
&lt;li&gt;Навигация доступна&lt;/li&gt;
&lt;li&gt;Строка поиска присутствует&lt;/li&gt;
&lt;li&gt;Ссылки на популярные страницы&lt;/li&gt;
&lt;li&gt;Возвращается HTTP-код 404 (не 200)&lt;/li&gt;
&lt;li&gt;Работает на всех поддерживаемых языках&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="страница-500"&gt;Страница 500 &lt;a href="#%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%b8%d1%86%d0%b0-500" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Дружественное сообщение без технических деталей&lt;/li&gt;
&lt;li&gt;Нет stack traces, ошибок БД, путей к файлам&lt;/li&gt;
&lt;li&gt;Контактная информация или ссылка на поддержку&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="страница-403"&gt;Страница 403 &lt;a href="#%d1%81%d1%82%d1%80%d0%b0%d0%bd%d0%b8%d1%86%d0%b0-403" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Объясняет отказ в доступе без раскрытия причин&lt;/li&gt;
&lt;li&gt;Предлагает войти в систему&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="тестирование-ошибок-валидации-форм"&gt;Тестирование Ошибок Валидации Форм &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%be%d1%88%d0%b8%d0%b1%d0%be%d0%ba-%d0%b2%d0%b0%d0%bb%d0%b8%d0%b4%d0%b0%d1%86%d0%b8%d0%b8-%d1%84%d0%be%d1%80%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="клиентская-валидация"&gt;Клиентская Валидация &lt;a href="#%d0%ba%d0%bb%d0%b8%d0%b5%d0%bd%d1%82%d1%81%d0%ba%d0%b0%d1%8f-%d0%b2%d0%b0%d0%bb%d0%b8%d0%b4%d0%b0%d1%86%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Сценарий&lt;/th&gt;
 &lt;th&gt;Ожидаемое поведение&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Обязательное поле пустое&lt;/td&gt;
 &lt;td&gt;«Это поле обязательно» рядом с полем&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Невалидный формат email&lt;/td&gt;
 &lt;td&gt;«Введите корректный email»&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Слишком короткий пароль&lt;/td&gt;
 &lt;td&gt;«Пароль должен содержать минимум 8 символов»&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Пароли не совпадают&lt;/td&gt;
 &lt;td&gt;«Пароли не совпадают»&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="серверная-валидация"&gt;Серверная Валидация &lt;a href="#%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%bd%d0%b0%d1%8f-%d0%b2%d0%b0%d0%bb%d0%b8%d0%b4%d0%b0%d1%86%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Отключение JavaScript и отправка форм по-прежнему показывает ошибки&lt;/li&gt;
&lt;li&gt;Прямые API-запросы возвращают корректные сообщения&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="безопасность"&gt;Безопасность &lt;a href="#%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d0%be%d1%81%d1%82%d1%8c" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Что НЕ должны раскрывать ответы об ошибках: stack traces, SQL-ошибки, пути к файлам, версии сервера, внутренние IP.&lt;/p&gt;</description></item><item><title>Оценка по модулю 5</title><link>https://yrkan.com/ru/course/module-05-web-testing/module-5-assessment/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/module-5-assessment/</guid><description>&lt;h2 id="обзор-оценки"&gt;Обзор Оценки &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Поздравляем с завершением Модуля 5: Тестирование веб-приложений. Эта оценка проверяет понимание всех тем уроков 5.1-5.29.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Часть&lt;/th&gt;
 &lt;th&gt;Формат&lt;/th&gt;
 &lt;th&gt;Вопросы&lt;/th&gt;
 &lt;th&gt;Время&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Часть 1&lt;/td&gt;
 &lt;td&gt;Квиз с выбором ответа&lt;/td&gt;
 &lt;td&gt;10 вопросов&lt;/td&gt;
 &lt;td&gt;10 минут&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Часть 2&lt;/td&gt;
 &lt;td&gt;Сценарные вопросы&lt;/td&gt;
 &lt;td&gt;3 сценария&lt;/td&gt;
 &lt;td&gt;20 минут&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Часть 3&lt;/td&gt;
 &lt;td&gt;Практическое упражнение&lt;/td&gt;
 &lt;td&gt;1 упражнение&lt;/td&gt;
 &lt;td&gt;30 минут&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Оценка:&lt;/strong&gt; Часть 1: 10 баллов, Часть 2: 15 баллов, Часть 3: 15 баллов. &lt;strong&gt;Итого: 40 баллов. Проходной: 28/40 (70%)&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="часть-1-квиз"&gt;Часть 1: Квиз &lt;a href="#%d1%87%d0%b0%d1%81%d1%82%d1%8c-1-%d0%ba%d0%b2%d0%b8%d0%b7" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Вопросы квиза в frontmatter этого урока (10 вопросов). Пройдите квиз первым.&lt;/p&gt;</description></item><item><title>Поиск, пагинация и сортировка</title><link>https://yrkan.com/ru/course/module-05-web-testing/search-pagination-sorting/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/search-pagination-sorting/</guid><description>&lt;h2 id="тестирование-поиска"&gt;Тестирование поиска &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d0%be%d0%b8%d1%81%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Поиск — одна из наиболее используемых функций. Пользователи ожидают быструю работу, релевантные результаты и корректную обработку запросов.&lt;/p&gt;
&lt;h3 id="функциональные-тесты-поиска"&gt;Функциональные тесты поиска &lt;a href="#%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%be%d0%bd%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d1%8b-%d0%bf%d0%be%d0%b8%d1%81%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Тест-кейс&lt;/th&gt;
 &lt;th&gt;Ввод&lt;/th&gt;
 &lt;th&gt;Ожидаемое поведение&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Точное совпадение&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;iPhone 15 Pro&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;Товар в результатах&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Частичное совпадение&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;iPhone&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;Все товары iPhone&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Нет результатов&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;xyznonexistent123&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;Дружелюбное сообщение с предложениями&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Пустой поиск&lt;/td&gt;
 &lt;td&gt;(пустая строка)&lt;/td&gt;
 &lt;td&gt;Все результаты или запрос ввода&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Спецсимволы&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;lt;script&amp;gt;alert(1)&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Санитизировано, без XSS&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;SQL injection&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;' OR 1=1 --&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Безопасная обработка&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Очень длинный запрос&lt;/td&gt;
 &lt;td&gt;1000+ символов&lt;/td&gt;
 &lt;td&gt;Корректная обработка&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="релевантность-поиска"&gt;Релевантность поиска &lt;a href="#%d1%80%d0%b5%d0%bb%d0%b5%d0%b2%d0%b0%d0%bd%d1%82%d0%bd%d0%be%d1%81%d1%82%d1%8c-%d0%bf%d0%be%d0%b8%d1%81%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Результаты должны ранжироваться по релевантности:&lt;/p&gt;</description></item><item><title>Стратегия тестирования кэширования</title><link>https://yrkan.com/ru/course/module-05-web-testing/caching-testing-strategy/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/caching-testing-strategy/</guid><description>&lt;h2 id="почему-тестирование-кэширования-важно"&gt;Почему Тестирование Кэширования Важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%ba%d1%8d%d1%88%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Кэширование значительно улучшает производительность, сохраняя копии ресурсов. Однако некорректное кэширование приводит к тому, что пользователи видят устаревший контент или сталкиваются со сломанными страницами после деплоя.&lt;/p&gt;
&lt;h2 id="уровни-кэша"&gt;Уровни Кэша &lt;a href="#%d1%83%d1%80%d0%be%d0%b2%d0%bd%d0%b8-%d0%ba%d1%8d%d1%88%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Каждый уровень может независимо кэшировать и отдавать устаревший контент: Кэш Браузера → CDN Edge → Реверс-Прокси → Кэш Приложения → База Данных.&lt;/p&gt;
&lt;h2 id="ключевые-заголовки-кэша"&gt;Ключевые Заголовки Кэша &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%b7%d0%b0%d0%b3%d0%be%d0%bb%d0%be%d0%b2%d0%ba%d0%b8-%d0%ba%d1%8d%d1%88%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Заголовок&lt;/th&gt;
 &lt;th&gt;Назначение&lt;/th&gt;
 &lt;th&gt;Пример&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Cache-Control&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Основная директива&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;max-age=3600, public&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ETag&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Отпечаток содержимого&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;&amp;quot;abc123def456&amp;quot;&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Last-Modified&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Дата последнего изменения&lt;/td&gt;
 &lt;td&gt;Дата&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Vary&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Кэш различается по заголовку&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Vary: Accept-Language&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="директивы-cache-control"&gt;Директивы Cache-Control &lt;a href="#%d0%b4%d0%b8%d1%80%d0%b5%d0%ba%d1%82%d0%b8%d0%b2%d1%8b-cache-control" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Директива&lt;/th&gt;
 &lt;th&gt;Значение&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;public&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Может кэшироваться любым кэшем&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;private&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Только браузер пользователя&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;no-cache&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Обязательна ревалидация с сервером&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;no-store&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Не кэшировать вообще&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;max-age=N&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Валиден N секунд&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;immutable&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Контент никогда не изменится&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="что-тестировать"&gt;Что Тестировать &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="корректное-поведение-кэша"&gt;Корректное Поведение Кэша &lt;a href="#%d0%ba%d0%be%d1%80%d1%80%d0%b5%d0%ba%d1%82%d0%bd%d0%be%d0%b5-%d0%bf%d0%be%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba%d1%8d%d1%88%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Тип ресурса&lt;/th&gt;
 &lt;th&gt;Ожидаемое кэширование&lt;/th&gt;
 &lt;th&gt;Причина&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Статические ресурсы (JS, CSS)&lt;/td&gt;
 &lt;td&gt;Длинный кэш (1 год) с хэшем&lt;/td&gt;
 &lt;td&gt;Cache busting обрабатывает обновления&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;HTML-страницы&lt;/td&gt;
 &lt;td&gt;no-cache или короткий&lt;/td&gt;
 &lt;td&gt;Контент часто меняется&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;API (публичные)&lt;/td&gt;
 &lt;td&gt;Короткий кэш (минуты)&lt;/td&gt;
 &lt;td&gt;Баланс свежести и производительности&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;API (авторизованные)&lt;/td&gt;
 &lt;td&gt;private, no-store&lt;/td&gt;
 &lt;td&gt;Предотвращение утечки между пользователями&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Эндпоинты аутентификации&lt;/td&gt;
 &lt;td&gt;no-store&lt;/td&gt;
 &lt;td&gt;Чувствительные данные&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="инвалидация-после-деплоя"&gt;Инвалидация После Деплоя &lt;a href="#%d0%b8%d0%bd%d0%b2%d0%b0%d0%bb%d0%b8%d0%b4%d0%b0%d1%86%d0%b8%d1%8f-%d0%bf%d0%be%d1%81%d0%bb%d0%b5-%d0%b4%d0%b5%d0%bf%d0%bb%d0%be%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Задеплойте изменения CSS/JS&lt;/li&gt;
&lt;li&gt;Проверьте, что пользователи получают новую версию&lt;/li&gt;
&lt;li&gt;Проверьте, что старая кэшированная версия не ломает новый HTML&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="кэш-и-аутентификация"&gt;Кэш и Аутентификация &lt;a href="#%d0%ba%d1%8d%d1%88-%d0%b8-%d0%b0%d1%83%d1%82%d0%b5%d0%bd%d1%82%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Данные Пользователя A никогда не должны отдаваться из кэша Пользователю B&lt;/li&gt;
&lt;li&gt;Выход из системы должен инвалидировать кэш специфичного контента&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Vary: Cookie&lt;/code&gt; или &lt;code&gt;private&lt;/code&gt; для авторизованных ответов&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="упражнение-аудит-кэширования"&gt;Упражнение: Аудит Кэширования &lt;a href="#%d1%83%d0%bf%d1%80%d0%b0%d0%b6%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b0%d1%83%d0%b4%d0%b8%d1%82-%d0%ba%d1%8d%d1%88%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="шаг-1-инспекция-заголовков"&gt;Шаг 1: Инспекция Заголовков &lt;a href="#%d1%88%d0%b0%d0%b3-1-%d0%b8%d0%bd%d1%81%d0%bf%d0%b5%d0%ba%d1%86%d0%b8%d1%8f-%d0%b7%d0%b0%d0%b3%d0%be%d0%bb%d0%be%d0%b2%d0%ba%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;DevTools &amp;gt; Network. Загрузите страницу и проверьте заголовки:&lt;/p&gt;</description></item><item><title>Тестирование CDN и геодистрибуции</title><link>https://yrkan.com/ru/course/module-05-web-testing/cdn-geo-distribution/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/cdn-geo-distribution/</guid><description>&lt;h2 id="как-работают-cdn"&gt;Как Работают CDN &lt;a href="#%d0%ba%d0%b0%d0%ba-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d1%8e%d1%82-cdn" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;CDN — распределённая сеть серверов, кэширующая и доставляющая контент из точек, близких к пользователям. Популярные провайдеры: Cloudflare, AWS CloudFront, Fastly, Akamai.&lt;/p&gt;
&lt;h3 id="поток-запроса-cdn"&gt;Поток Запроса CDN &lt;a href="#%d0%bf%d0%be%d1%82%d0%be%d0%ba-%d0%b7%d0%b0%d0%bf%d1%80%d0%be%d1%81%d0%b0-cdn" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Пользователь запрашивает &lt;code&gt;https://example.com/image.jpg&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;DNS разрешает на ближайший edge-сервер CDN&lt;/li&gt;
&lt;li&gt;Edge проверяет наличие кэшированной копии&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HIT:&lt;/strong&gt; Отдаёт напрямую с edge (быстро)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MISS:&lt;/strong&gt; Запрашивает с origin, кэширует, отдаёт&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="что-тестировать"&gt;Что Тестировать &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="поведение-кэша-cdn"&gt;Поведение Кэша CDN &lt;a href="#%d0%bf%d0%be%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba%d1%8d%d1%88%d0%b0-cdn" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Проверка статуса кэша CDN&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -I https://example.com/style.css
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Ищите: CF-Cache-Status, X-Cache, Age&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="мультирегиональная-задержка"&gt;Мультирегиональная Задержка &lt;a href="#%d0%bc%d1%83%d0%bb%d1%8c%d1%82%d0%b8%d1%80%d0%b5%d0%b3%d0%b8%d0%be%d0%bd%d0%b0%d0%bb%d1%8c%d0%bd%d0%b0%d1%8f-%d0%b7%d0%b0%d0%b4%d0%b5%d1%80%d0%b6%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Используйте WebPageTest для тестирования из нескольких точек мира.&lt;/p&gt;</description></item><item><title>Тестирование CMS</title><link>https://yrkan.com/ru/course/module-05-web-testing/cms-testing/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/cms-testing/</guid><description>&lt;h2 id="понимание-темы-тестирование-cms"&gt;Понимание темы: Тестирование CMS &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d0%bc%d1%8b-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-cms" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование CMS — критически важная область тестирования веб-приложений, которую должен освоить каждый QA-инженер.&lt;/p&gt;
&lt;h3 id="почему-это-важно"&gt;Почему это важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%8d%d1%82%d0%be-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Проблемы здесь подрывают доверие пользователей. Ваша задача — найти их первым.&lt;/p&gt;
&lt;h3 id="основные-области-тестирования"&gt;Основные области тестирования &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Функциональная корректность:&lt;/strong&gt; Работает ли по спецификации? Тестируйте каждое требование. Обращайте внимание на граничные случаи.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Обработка ошибок:&lt;/strong&gt; Что при сбоях? Невалидный ввод, сбои сети, таймауты, параллельный доступ.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Производительность:&lt;/strong&gt; Приемлемо ли работает? Время отклика, поведение под нагрузкой.&lt;/p&gt;</description></item><item><title>Тестирование email и уведомлений</title><link>https://yrkan.com/ru/course/module-05-web-testing/email-notification-testing/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/email-notification-testing/</guid><description>&lt;h2 id="почему-тестирование-email-и-уведомлений-важно"&gt;Почему Тестирование Email и Уведомлений Важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-email-%d0%b8-%d1%83%d0%b2%d0%b5%d0%b4%d0%be%d0%bc%d0%bb%d0%b5%d0%bd%d0%b8%d0%b9-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Электронные письма и уведомления — критические каналы коммуникации между приложением и пользователями. Сломанное письмо восстановления пароля означает, что пользователи не могут восстановить аккаунт. Отсутствующее подтверждение заказа подрывает доверие.&lt;/p&gt;
&lt;p&gt;Несмотря на важность, тестирование email и уведомлений часто упускается, поскольку эти функции включают внешние системы и труднее автоматизируются.&lt;/p&gt;
&lt;h2 id="типы-писем-для-тестирования"&gt;Типы Писем для Тестирования &lt;a href="#%d1%82%d0%b8%d0%bf%d1%8b-%d0%bf%d0%b8%d1%81%d0%b5%d0%bc-%d0%b4%d0%bb%d1%8f-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="транзакционные-письма"&gt;Транзакционные Письма &lt;a href="#%d1%82%d1%80%d0%b0%d0%bd%d0%b7%d0%b0%d0%ba%d1%86%d0%b8%d0%be%d0%bd%d0%bd%d1%8b%d0%b5-%d0%bf%d0%b8%d1%81%d1%8c%d0%bc%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Активируются действиями пользователя — наивысший приоритет:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Тип письма&lt;/th&gt;
 &lt;th&gt;Критические проверки&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Подтверждение регистрации&lt;/td&gt;
 &lt;td&gt;Ссылка работает, корректные данные&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Восстановление пароля&lt;/td&gt;
 &lt;td&gt;Токен истекает, одноразовый, своевременная доставка&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Подтверждение заказа&lt;/td&gt;
 &lt;td&gt;Корректные товары, цены, номер заказа&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Квитанция об оплате&lt;/td&gt;
 &lt;td&gt;Точные суммы, налоги, способ оплаты&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Изменения аккаунта&lt;/td&gt;
 &lt;td&gt;Корректное уведомление о изменениях&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Двухфакторная аутентификация&lt;/td&gt;
 &lt;td&gt;Код валиден, истекает корректно&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="маркетинговые-письма"&gt;Маркетинговые Письма &lt;a href="#%d0%bc%d0%b0%d1%80%d0%ba%d0%b5%d1%82%d0%b8%d0%bd%d0%b3%d0%be%d0%b2%d1%8b%d0%b5-%d0%bf%d0%b8%d1%81%d1%8c%d0%bc%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Токены персонализации корректно подставляются&lt;/li&gt;
&lt;li&gt;Ссылка отписки работает и заметна&lt;/li&gt;
&lt;li&gt;Соответствие CAN-SPAM/GDPR&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="системные-уведомления"&gt;Системные Уведомления &lt;a href="#%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d0%bd%d1%8b%d0%b5-%d1%83%d0%b2%d0%b5%d0%b4%d0%be%d0%bc%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Автоматические оповещения: уведомления об ошибках, отчёты по расписанию, пороговые алерты.&lt;/p&gt;</description></item><item><title>Тестирование PWA</title><link>https://yrkan.com/ru/course/module-05-web-testing/pwa-testing/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/pwa-testing/</guid><description>&lt;h2 id="понимание-темы-тестирование-pwa"&gt;Понимание темы: Тестирование PWA &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d0%bc%d1%8b-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-pwa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование PWA — критически важная область тестирования веб-приложений, которую должен освоить каждый QA-инженер.&lt;/p&gt;
&lt;h3 id="почему-это-важно"&gt;Почему это важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%8d%d1%82%d0%be-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Проблемы здесь подрывают доверие пользователей. Ваша задача — найти их первым.&lt;/p&gt;
&lt;h3 id="основные-области-тестирования"&gt;Основные области тестирования &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Функциональная корректность:&lt;/strong&gt; Работает ли по спецификации? Тестируйте каждое требование. Обращайте внимание на граничные случаи.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Обработка ошибок:&lt;/strong&gt; Что при сбоях? Невалидный ввод, сбои сети, таймауты, параллельный доступ.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Производительность:&lt;/strong&gt; Приемлемо ли работает? Время отклика, поведение под нагрузкой.&lt;/p&gt;</description></item><item><title>Тестирование SPA-приложений</title><link>https://yrkan.com/ru/course/module-05-web-testing/spa-testing/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/spa-testing/</guid><description>&lt;h2 id="понимание-темы-тестирование-spa-приложений"&gt;Понимание темы: Тестирование SPA-приложений &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d0%bc%d1%8b-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-spa-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование SPA-приложений — критически важная область тестирования веб-приложений, которую должен освоить каждый QA-инженер.&lt;/p&gt;
&lt;h3 id="почему-это-важно"&gt;Почему это важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%8d%d1%82%d0%be-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Проблемы здесь подрывают доверие пользователей. Ваша задача — найти их первым.&lt;/p&gt;
&lt;h3 id="основные-области-тестирования"&gt;Основные области тестирования &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Функциональная корректность:&lt;/strong&gt; Работает ли по спецификации? Тестируйте каждое требование. Обращайте внимание на граничные случаи.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Обработка ошибок:&lt;/strong&gt; Что при сбоях? Невалидный ввод, сбои сети, таймауты, параллельный доступ.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Производительность:&lt;/strong&gt; Приемлемо ли работает? Время отклика, поведение под нагрузкой.&lt;/p&gt;</description></item><item><title>Тестирование WebSocket и real-time</title><link>https://yrkan.com/ru/course/module-05-web-testing/websocket-realtime-testing/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/websocket-realtime-testing/</guid><description>&lt;h2 id="почему-тестирование-real-time-важно"&gt;Почему Тестирование Real-Time Важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-real-time-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Современные веб-приложения всё чаще полагаются на функциональность реального времени. Чат-приложения, live-дашборды, биржевые тикеры, инструменты совместного редактирования, системы уведомлений и многопользовательские игры — все они зависят от постоянных соединений между клиентом и сервером. Тестирование этих функций требует понимания базовых протоколов и уникальных задач, которые они ставят.&lt;/p&gt;
&lt;p&gt;В отличие от традиционных HTTP-циклов запрос-ответ, real-time коммуникация является двунаправленной и непрерывной. Это фундаментальное отличие означает, что ваш подход к тестированию должен адаптироваться соответственно.&lt;/p&gt;</description></item><item><title>Тестирование адаптивного дизайна</title><link>https://yrkan.com/ru/course/module-05-web-testing/responsive-design-testing/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/responsive-design-testing/</guid><description>&lt;h2 id="что-такое-адаптивный-дизайн"&gt;Что такое адаптивный дизайн &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%b0%d0%b4%d0%b0%d0%bf%d1%82%d0%b8%d0%b2%d0%bd%d1%8b%d0%b9-%d0%b4%d0%b8%d0%b7%d0%b0%d0%b9%d0%bd" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Адаптивный дизайн означает, что веб-приложение подстраивает свой макет и контент для корректной работы на любом размере экрана — от мобильного телефона с экраном 320px до ультраширокого монитора 2560px. Вместо создания отдельных мобильной и десктопной версий, единая кодовая база адаптируется с помощью CSS media queries.&lt;/p&gt;
&lt;p&gt;Для QA-инженеров адаптивное тестирование — это проверка того, что эта адаптация работает корректно при каждом размере, а не только на тех, которые имел в виду дизайнер.&lt;/p&gt;</description></item><item><title>Тестирование аутентификации и сессий</title><link>https://yrkan.com/ru/course/module-05-web-testing/authentication-session-testing/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/authentication-session-testing/</guid><description>&lt;h2 id="аутентификация-парадная-дверь-вашего-приложения"&gt;Аутентификация: парадная дверь вашего приложения &lt;a href="#%d0%b0%d1%83%d1%82%d0%b5%d0%bd%d1%82%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%8f-%d0%bf%d0%b0%d1%80%d0%b0%d0%b4%d0%bd%d0%b0%d1%8f-%d0%b4%d0%b2%d0%b5%d1%80%d1%8c-%d0%b2%d0%b0%d1%88%d0%b5%d0%b3%d0%be-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Аутентификация — это то, как приложение проверяет личность пользователя. Это наиболее критичная для безопасности функция — все остальные меры безопасности зависят от корректной работы аутентификации. Баг в аутентификации может раскрыть данные всех пользователей.&lt;/p&gt;
&lt;p&gt;Этот урок охватывает тестирование потоков аутентификации (вход, регистрация, восстановление пароля) и управление сессиями (как приложение отслеживает вашу личность после входа).&lt;/p&gt;
&lt;h2 id="тестирование-потока-входа"&gt;Тестирование потока входа &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d0%be%d1%82%d0%be%d0%ba%d0%b0-%d0%b2%d1%85%d0%be%d0%b4%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="позитивный-сценарий"&gt;Позитивный сценарий &lt;a href="#%d0%bf%d0%be%d0%b7%d0%b8%d1%82%d0%b8%d0%b2%d0%bd%d1%8b%d0%b9-%d1%81%d1%86%d0%b5%d0%bd%d0%b0%d1%80%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Начните с очевидного: валидные учётные данные должны работать.&lt;/p&gt;</description></item><item><title>Тестирование биллинга и подписок</title><link>https://yrkan.com/ru/course/module-05-web-testing/billing-subscription-testing/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/billing-subscription-testing/</guid><description>&lt;h2 id="почему-тестирование-биллинга-критически-важно"&gt;Почему Тестирование Биллинга Критически Важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b1%d0%b8%d0%bb%d0%bb%d0%b8%d0%bd%d0%b3%d0%b0-%d0%ba%d1%80%d0%b8%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Баги биллинга имеют прямое финансовое влияние. Некорректный расчёт proration, который перевзимает $5 с пользователей, умноженный на 10,000 подписчиков — это $50,000 потенциальных возвратов плюс ущерб доверию и риск оттока.&lt;/p&gt;
&lt;p&gt;Подписной биллинг — одна из самых сложных областей тестирования, так как включает логику, зависящую от времени, интеграцию с платёжными провайдерами, расчёты налогов и множество переходов состояний.&lt;/p&gt;
&lt;h2 id="жизненный-цикл-подписки"&gt;Жизненный Цикл Подписки &lt;a href="#%d0%b6%d0%b8%d0%b7%d0%bd%d0%b5%d0%bd%d0%bd%d1%8b%d0%b9-%d1%86%d0%b8%d0%ba%d0%bb-%d0%bf%d0%be%d0%b4%d0%bf%d0%b8%d1%81%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="state"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;stateDiagram-v2
 [*] --&gt; Trial: Регистрация
 Trial --&gt; Active: Конвертация/Оплата
 Trial --&gt; Expired: Trial истёк без оплаты
 Active --&gt; PastDue: Платёж не прошёл
 PastDue --&gt; Active: Платёж восстановлен
 PastDue --&gt; Cancelled: Исчерпаны попытки
 Active --&gt; Cancelled: Пользователь отменяет
 Cancelled --&gt; Active: Повторная подписка
 Active --&gt; Active: Upgrade/Downgrade
 Active --&gt; Active: Продление
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;p&gt;Каждый переход — это тестовый сценарий.&lt;/p&gt;</description></item><item><title>Тестирование веб-безопасности на практике</title><link>https://yrkan.com/ru/course/module-05-web-testing/web-security-testing-practice/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/web-security-testing-practice/</guid><description>&lt;h2 id="тестирование-безопасности-для-qa-инженеров"&gt;Тестирование Безопасности для QA-Инженеров &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%b4%d0%bb%d1%8f-qa-%d0%b8%d0%bd%d0%b6%d0%b5%d0%bd%d0%b5%d1%80%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование безопасности — не только для пентестеров. QA-инженеры ежедневно работают с функциями, связанными с безопасностью: формы логина, поля ввода, API-эндпоинты и загрузки файлов. Понимание типичных уязвимостей делает вас более эффективным тестировщиком.&lt;/p&gt;
&lt;h2 id="owasp-top-10"&gt;OWASP Top 10 &lt;a href="#owasp-top-10" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Риск&lt;/th&gt;
 &lt;th&gt;Подход QA&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Инъекции (SQL, XSS)&lt;/td&gt;
 &lt;td&gt;Проверка полей со спецсимволами&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Сломанная аутентификация&lt;/td&gt;
 &lt;td&gt;Тщательное тестирование auth-потоков&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Утечка данных&lt;/td&gt;
 &lt;td&gt;Проверка HTTPS, заголовков, хранилища&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Нарушенный контроль доступа&lt;/td&gt;
 &lt;td&gt;Тестирование ролевого доступа&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Неправильная конфигурация&lt;/td&gt;
 &lt;td&gt;Проверка страниц ошибок, заголовков&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;XSS&lt;/td&gt;
 &lt;td&gt;Тестирование всех пользовательских вводов&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;CSRF&lt;/td&gt;
 &lt;td&gt;Проверка CSRF-токенов&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="тестирование-xss"&gt;Тестирование XSS &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-xss" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="базовые-пейлоады"&gt;Базовые Пейлоады &lt;a href="#%d0%b1%d0%b0%d0%b7%d0%be%d0%b2%d1%8b%d0%b5-%d0%bf%d0%b5%d0%b9%d0%bb%d0%be%d0%b0%d0%b4%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Тестируйте в каждом поле ввода, поиске, URL-параметре и профиле:&lt;/p&gt;</description></item><item><title>Тестирование доступности веба</title><link>https://yrkan.com/ru/course/module-05-web-testing/web-accessibility-testing/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/web-accessibility-testing/</guid><description>&lt;h2 id="почему-тестирование-доступности-важно"&gt;Почему Тестирование Доступности Важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b4%d0%be%d1%81%d1%82%d1%83%d0%bf%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Веб-доступность (часто сокращается как a11y) обеспечивает возможность людям с ограниченными возможностями воспринимать, понимать, навигировать и взаимодействовать с сайтами. Это включает людей незрячих или со слабым зрением, глухих или слабослышащих, с моторными нарушениями, когнитивными ограничениями или временными нарушениями.&lt;/p&gt;
&lt;p&gt;Доступность не является опциональной для QA:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Законодательное требование&lt;/strong&gt; — ADA (США), EAA (ЕС), AODA (Канада) обязывают обеспечивать веб-доступность&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Бизнес-влияние&lt;/strong&gt; — 15-20% мирового населения имеют ту или иную форму инвалидности&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SEO-польза&lt;/strong&gt; — Многие практики доступности улучшают поисковую оптимизацию&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Индикатор качества&lt;/strong&gt; — Доступные сайты, как правило, лучше структурированы&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="обзор-wcag-22"&gt;Обзор WCAG 2.2 &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-wcag-22" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;WCAG организован вокруг четырёх принципов (POUR):&lt;/p&gt;</description></item><item><title>Тестирование загрузки файлов</title><link>https://yrkan.com/ru/course/module-05-web-testing/file-upload-testing/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/file-upload-testing/</guid><description>&lt;h2 id="загрузка-файлов-функция-высокого-риска"&gt;Загрузка файлов: функция высокого риска &lt;a href="#%d0%b7%d0%b0%d0%b3%d1%80%d1%83%d0%b7%d0%ba%d0%b0-%d1%84%d0%b0%d0%b9%d0%bb%d0%be%d0%b2-%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d1%8f-%d0%b2%d1%8b%d1%81%d0%be%d0%ba%d0%be%d0%b3%d0%be-%d1%80%d0%b8%d1%81%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Функциональность загрузки файлов — одна из наиболее чувствительных к безопасности в веб-приложениях. Каждый загруженный файл потенциально вредоносен — это может быть скрипт, замаскированный под изображение, zip-бомба или файл с именем, нацеленным на эксплуатацию файловой системы.&lt;/p&gt;
&lt;h2 id="валидация-типов-файлов"&gt;Валидация типов файлов &lt;a href="#%d0%b2%d0%b0%d0%bb%d0%b8%d0%b4%d0%b0%d1%86%d0%b8%d1%8f-%d1%82%d0%b8%d0%bf%d0%be%d0%b2-%d1%84%d0%b0%d0%b9%d0%bb%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="клиентская-валидация"&gt;Клиентская валидация &lt;a href="#%d0%ba%d0%bb%d0%b8%d0%b5%d0%bd%d1%82%d1%81%d0%ba%d0%b0%d1%8f-%d0%b2%d0%b0%d0%bb%d0%b8%d0%b4%d0%b0%d1%86%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Атрибут &lt;code&gt;accept&lt;/code&gt; на input ограничивает выбор файлов:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-html" data-lang="html"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#f92672"&gt;input&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;type&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;file&amp;#34;&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;accept&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;.jpg,.jpeg,.png,.gif&amp;#34;&lt;/span&gt; /&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Тестирование клиентской валидации:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Выбрать файл валидного типа — должен быть принят&lt;/li&gt;
&lt;li&gt;Попробовать выбрать невалидный тип — должен быть отклонён&lt;/li&gt;
&lt;li&gt;Обойти атрибут accept (переименовать .exe в .jpg) — сервер должен перехватить&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="серверная-валидация"&gt;Серверная валидация &lt;a href="#%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%bd%d0%b0%d1%8f-%d0%b2%d0%b0%d0%bb%d0%b8%d0%b4%d0%b0%d1%86%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Сервер должен проверять реальное содержимое файла, а не только расширение:&lt;/p&gt;</description></item><item><title>Тестирование корзины интернет-магазина</title><link>https://yrkan.com/ru/course/module-05-web-testing/ecommerce-cart-testing/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/ecommerce-cart-testing/</guid><description>&lt;h2 id="понимание-темы-тестирование-корзины-интернет-магазина"&gt;Понимание темы: Тестирование корзины интернет-магазина &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d0%bc%d1%8b-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%ba%d0%be%d1%80%d0%b7%d0%b8%d0%bd%d1%8b-%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%bd%d0%b5%d1%82-%d0%bc%d0%b0%d0%b3%d0%b0%d0%b7%d0%b8%d0%bd%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование корзины интернет-магазина — критически важная область тестирования веб-приложений, которую должен освоить каждый QA-инженер.&lt;/p&gt;
&lt;h3 id="почему-это-важно"&gt;Почему это важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%8d%d1%82%d0%be-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Проблемы здесь подрывают доверие пользователей. Ваша задача — найти их первым.&lt;/p&gt;
&lt;h3 id="основные-области-тестирования"&gt;Основные области тестирования &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Функциональная корректность:&lt;/strong&gt; Работает ли по спецификации? Тестируйте каждое требование. Обращайте внимание на граничные случаи.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Обработка ошибок:&lt;/strong&gt; Что при сбоях? Невалидный ввод, сбои сети, таймауты, параллельный доступ.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Производительность:&lt;/strong&gt; Приемлемо ли работает? Время отклика, поведение под нагрузкой.&lt;/p&gt;</description></item><item><title>Тестирование мультитенантности и SaaS</title><link>https://yrkan.com/ru/course/module-05-web-testing/multi-tenancy-saas-testing/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/multi-tenancy-saas-testing/</guid><description>&lt;h2 id="что-такое-мультитенантность"&gt;Что Такое Мультитенантность? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%bc%d1%83%d0%bb%d1%8c%d1%82%d0%b8%d1%82%d0%b5%d0%bd%d0%b0%d0%bd%d1%82%d0%bd%d0%be%d1%81%d1%82%d1%8c" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Мультитенантность — это архитектура, при которой один экземпляр ПО обслуживает множество клиентов (тенантов). Данные каждого тенанта изолированы, но они разделяют код приложения, инфраструктуру и часто одну базу данных.&lt;/p&gt;
&lt;p&gt;Большинство современных SaaS-продуктов — Slack, Jira, Salesforce, Shopify — мультитенантны. Как QA-инженеру, работающему с SaaS, понимание тестирования мультитенантности необходимо: утечки данных между тенантами могут привести к судебным искам и регуляторным штрафам.&lt;/p&gt;
&lt;h2 id="паттерны-мультитенантной-архитектуры"&gt;Паттерны Мультитенантной Архитектуры &lt;a href="#%d0%bf%d0%b0%d1%82%d1%82%d0%b5%d1%80%d0%bd%d1%8b-%d0%bc%d1%83%d0%bb%d1%8c%d1%82%d0%b8%d1%82%d0%b5%d0%bd%d0%b0%d0%bd%d1%82%d0%bd%d0%be%d0%b9-%d0%b0%d1%80%d1%85%d0%b8%d1%82%d0%b5%d0%ba%d1%82%d1%83%d1%80%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Паттерн&lt;/th&gt;
 &lt;th&gt;Описание&lt;/th&gt;
 &lt;th&gt;Сложность тестирования&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Общая БД, общая схема&lt;/td&gt;
 &lt;td&gt;Все тенанты в одной БД с колонкой tenant_id&lt;/td&gt;
 &lt;td&gt;Наивысший риск&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Общая БД, отдельные схемы&lt;/td&gt;
 &lt;td&gt;Одна БД, каждый тенант со своей схемой&lt;/td&gt;
 &lt;td&gt;Средний риск&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Отдельные БД&lt;/td&gt;
 &lt;td&gt;Каждый тенант со своей БД&lt;/td&gt;
 &lt;td&gt;Низший риск&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Гибридный&lt;/td&gt;
 &lt;td&gt;Комбинация в зависимости от уровня&lt;/td&gt;
 &lt;td&gt;Сложно&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="критические-области-тестирования"&gt;Критические Области Тестирования &lt;a href="#%d0%ba%d1%80%d0%b8%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d0%b5-%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="изоляция-данных"&gt;Изоляция Данных &lt;a href="#%d0%b8%d0%b7%d0%be%d0%bb%d1%8f%d1%86%d0%b8%d1%8f-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Самая важная категория тестирования. Каждая операция с данными должна быть ограничена текущим тенантом.&lt;/p&gt;</description></item><item><title>Тестирование оптимизации веб-производительности</title><link>https://yrkan.com/ru/course/module-05-web-testing/web-performance-optimization/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/web-performance-optimization/</guid><description>&lt;h2 id="влияние-производительности-на-бизнес"&gt;Влияние Производительности на Бизнес &lt;a href="#%d0%b2%d0%bb%d0%b8%d1%8f%d0%bd%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b8%d0%b7%d0%b2%d0%be%d0%b4%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%bd%d0%b0-%d0%b1%d0%b8%d0%b7%d0%bd%d0%b5%d1%81" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Производительность напрямую влияет на доход и вовлечённость. Медленные страницы увеличивают показатель отказов и снижают конверсию. QA играет критическую роль, устанавливая бюджеты, отслеживая регрессии и проверяя работу техник оптимизации.&lt;/p&gt;
&lt;h2 id="техники-оптимизации-для-тестирования"&gt;Техники Оптимизации для Тестирования &lt;a href="#%d1%82%d0%b5%d1%85%d0%bd%d0%b8%d0%ba%d0%b8-%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b8-%d0%b4%d0%bb%d1%8f-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="оптимизация-изображений"&gt;Оптимизация Изображений &lt;a href="#%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d0%b8%d0%b7%d0%be%d0%b1%d1%80%d0%b0%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Техника&lt;/th&gt;
 &lt;th&gt;Что тестировать&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Современные форматы (WebP, AVIF)&lt;/td&gt;
 &lt;td&gt;Изображения в современном формате с fallback&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Responsive (srcset)&lt;/td&gt;
 &lt;td&gt;Корректный размер для viewport&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Lazy loading&lt;/td&gt;
 &lt;td&gt;Изображения ниже fold загружаются при скролле&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Сжатие&lt;/td&gt;
 &lt;td&gt;Без видимой потери качества&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Размеры&lt;/td&gt;
 &lt;td&gt;Атрибуты width/height (предотвращает CLS)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="оптимизация-javascript"&gt;Оптимизация JavaScript &lt;a href="#%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-javascript" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Техника&lt;/th&gt;
 &lt;th&gt;Что тестировать&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Code splitting&lt;/td&gt;
 &lt;td&gt;Только код текущей страницы загружается&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Tree shaking&lt;/td&gt;
 &lt;td&gt;Неиспользуемый код удалён из продакшена&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Минификация&lt;/td&gt;
 &lt;td&gt;JS-файлы минифицированы&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Defer/async&lt;/td&gt;
 &lt;td&gt;Некритичные скрипты не блокируют рендеринг&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="performance-budgets"&gt;Performance Budgets &lt;a href="#performance-budgets" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Метрика&lt;/th&gt;
 &lt;th&gt;Пример бюджета&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Общий вес&lt;/td&gt;
 &lt;td&gt;&amp;lt;500КБ&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;JavaScript&lt;/td&gt;
 &lt;td&gt;&amp;lt;150КБ&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;CSS&lt;/td&gt;
 &lt;td&gt;&amp;lt;50КБ&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Изображения&lt;/td&gt;
 &lt;td&gt;&amp;lt;200КБ на страницу&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;LCP&lt;/td&gt;
 &lt;td&gt;&amp;lt;2.5с&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;TBT&lt;/td&gt;
 &lt;td&gt;&amp;lt;200мс&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="waterfall-анализ"&gt;Waterfall-Анализ &lt;a href="#waterfall-%d0%b0%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Waterfall-график в DevTools показывает последовательность загрузки. Ищите: длинный TTFB, ресурсы блокирующие рендеринг, большие ресурсы, цепочки зависимостей и сторонние скрипты.&lt;/p&gt;</description></item><item><title>Тестирование платёжных шлюзов</title><link>https://yrkan.com/ru/course/module-05-web-testing/payment-gateway-testing/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/payment-gateway-testing/</guid><description>&lt;h2 id="понимание-темы-тестирование-платёжных-шлюзов"&gt;Понимание темы: Тестирование платёжных шлюзов &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d0%bc%d1%8b-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d0%bb%d0%b0%d1%82%d1%91%d0%b6%d0%bd%d1%8b%d1%85-%d1%88%d0%bb%d1%8e%d0%b7%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование платёжных шлюзов — критически важная область тестирования веб-приложений, которую должен освоить каждый QA-инженер.&lt;/p&gt;
&lt;h3 id="почему-это-важно"&gt;Почему это важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%8d%d1%82%d0%be-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Проблемы здесь подрывают доверие пользователей. Ваша задача — найти их первым.&lt;/p&gt;
&lt;h3 id="основные-области-тестирования"&gt;Основные области тестирования &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Функциональная корректность:&lt;/strong&gt; Работает ли по спецификации? Тестируйте каждое требование. Обращайте внимание на граничные случаи.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Обработка ошибок:&lt;/strong&gt; Что при сбоях? Невалидный ввод, сбои сети, таймауты, параллельный доступ.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Производительность:&lt;/strong&gt; Приемлемо ли работает? Время отклика, поведение под нагрузкой.&lt;/p&gt;</description></item><item><title>Тестирование соответствия GDPR</title><link>https://yrkan.com/ru/course/module-05-web-testing/gdpr-compliance-testing/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/gdpr-compliance-testing/</guid><description>&lt;h2 id="gdpr-и-qa-тестирование"&gt;GDPR и QA-Тестирование &lt;a href="#gdpr-%d0%b8-qa-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Общий регламент защиты данных (GDPR) — регламент ЕС, регулирующий сбор, обработку, хранение и удаление персональных данных. Хотя GDPR — закон ЕС, он применяется к любой организации, обрабатывающей данные резидентов ЕС.&lt;/p&gt;
&lt;p&gt;Для QA-инженеров GDPR создаёт конкретные тестируемые требования, сфокусированные на правах пользователей, управлении согласием и проверке жизненного цикла данных.&lt;/p&gt;
&lt;h2 id="ключевые-права-gdpr-для-тестирования"&gt;Ключевые Права GDPR для Тестирования &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%bf%d1%80%d0%b0%d0%b2%d0%b0-gdpr-%d0%b4%d0%bb%d1%8f-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="право-на-информацию"&gt;Право на Информацию &lt;a href="#%d0%bf%d1%80%d0%b0%d0%b2%d0%be-%d0%bd%d0%b0-%d0%b8%d0%bd%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%86%d0%b8%d1%8e" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Политика конфиденциальности доступна с каждой страницы&lt;/li&gt;
&lt;li&gt;Баннер согласия на cookies появляется при первом визите&lt;/li&gt;
&lt;li&gt;Понятный язык объясняет, какие данные собираются и зачем&lt;/li&gt;
&lt;li&gt;Передача данных третьим лицам раскрыта&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="право-на-доступ-dsar"&gt;Право на Доступ (DSAR) &lt;a href="#%d0%bf%d1%80%d0%b0%d0%b2%d0%be-%d0%bd%d0%b0-%d0%b4%d0%be%d1%81%d1%82%d1%83%d0%bf-dsar" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Пользователь может отправить запрос на доступ к данным&lt;/li&gt;
&lt;li&gt;Ответ включает все персональные данные в течение 30 дней&lt;/li&gt;
&lt;li&gt;Данные в машиночитаемом формате (JSON, CSV)&lt;/li&gt;
&lt;li&gt;Личность запрашивающего верифицирована перед выдачей&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="право-на-исправление"&gt;Право на Исправление &lt;a href="#%d0%bf%d1%80%d0%b0%d0%b2%d0%be-%d0%bd%d0%b0-%d0%b8%d1%81%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Пользователи могут редактировать информацию профиля&lt;/li&gt;
&lt;li&gt;Изменения распространяются на все системы&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="право-на-удаление"&gt;Право на Удаление &lt;a href="#%d0%bf%d1%80%d0%b0%d0%b2%d0%be-%d0%bd%d0%b0-%d1%83%d0%b4%d0%b0%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Механизм запроса удаления существует&lt;/li&gt;
&lt;li&gt;Все персональные данные удалены из основного хранилища&lt;/li&gt;
&lt;li&gt;Данные удалены из систем третьих сторон&lt;/li&gt;
&lt;li&gt;Анонимизированные данные могут быть сохранены&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="право-на-переносимость-данных"&gt;Право на Переносимость Данных &lt;a href="#%d0%bf%d1%80%d0%b0%d0%b2%d0%be-%d0%bd%d0%b0-%d0%bf%d0%b5%d1%80%d0%b5%d0%bd%d0%be%d1%81%d0%b8%d0%bc%d0%be%d1%81%d1%82%d1%8c-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Экспорт доступен в JSON, CSV или аналогичном формате&lt;/li&gt;
&lt;li&gt;Включает все персональные данные&lt;/li&gt;
&lt;li&gt;Не включает данные других пользователей&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="тестирование-согласия-на-cookies"&gt;Тестирование Согласия на Cookies &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81%d0%be%d0%b3%d0%bb%d0%b0%d1%81%d0%b8%d1%8f-%d0%bd%d0%b0-cookies" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Требование&lt;/th&gt;
 &lt;th&gt;Проверка&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Нет отслеживания до согласия&lt;/td&gt;
 &lt;td&gt;Нет cookies до взаимодействия с баннером&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Гранулярный выбор&lt;/td&gt;
 &lt;td&gt;Принятие/отклонение по категориям&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Равная заметность&lt;/td&gt;
 &lt;td&gt;«Отклонить всё» так же заметно, как «Принять всё»&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Без предвыбранных чекбоксов&lt;/td&gt;
 &lt;td&gt;Неосновные категории отмечены по умолчанию&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Отзываемое согласие&lt;/td&gt;
 &lt;td&gt;Можно изменить настройки позже&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Сайт работает без согласия&lt;/td&gt;
 &lt;td&gt;Только essential cookies&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="проверка-согласия-на-cookies"&gt;Проверка Согласия на Cookies &lt;a href="#%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d1%80%d0%ba%d0%b0-%d1%81%d0%be%d0%b3%d0%bb%d0%b0%d1%81%d0%b8%d1%8f-%d0%bd%d0%b0-cookies" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Откройте сайт в чистом инкогнито-окне&lt;/li&gt;
&lt;li&gt;До взаимодействия с баннером проверьте cookies: DevTools &amp;gt; Application &amp;gt; Cookies&lt;/li&gt;
&lt;li&gt;Должны быть только essential cookies&lt;/li&gt;
&lt;li&gt;Нажмите «Отклонить всё» — проверьте отсутствие tracking cookies&lt;/li&gt;
&lt;li&gt;Очистите cookies и перезагрузите&lt;/li&gt;
&lt;li&gt;Нажмите «Принять всё» — проверьте наличие cookies аналитики/маркетинга&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="упражнение-аудит-соответствия-gdpr"&gt;Упражнение: Аудит Соответствия GDPR &lt;a href="#%d1%83%d0%bf%d1%80%d0%b0%d0%b6%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b0%d1%83%d0%b4%d0%b8%d1%82-%d1%81%d0%be%d0%be%d1%82%d0%b2%d0%b5%d1%82%d1%81%d1%82%d0%b2%d0%b8%d1%8f-gdpr" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Проведите аудит соответствия GDPR веб-приложения.&lt;/p&gt;</description></item><item><title>Тестирование форм</title><link>https://yrkan.com/ru/course/module-05-web-testing/form-testing/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/form-testing/</guid><description>&lt;h2 id="формы--место-обитания-багов"&gt;Формы — место обитания багов &lt;a href="#%d1%84%d0%be%d1%80%d0%bc%d1%8b--%d0%bc%d0%b5%d1%81%d1%82%d0%be-%d0%be%d0%b1%d0%b8%d1%82%d0%b0%d0%bd%d0%b8%d1%8f-%d0%b1%d0%b0%d0%b3%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Формы — основной способ взаимодействия пользователей с веб-приложениями: авторизация, регистрация, поиск, оформление заказа, обновление профиля, контактные формы. Они же — место обитания большинства багов. Каждое поле формы — точка входа для невалидных данных, неожиданных символов и граничных случаев.&lt;/p&gt;
&lt;p&gt;Опытный тестировщик форм не просто вводит валидные данные и нажимает «Отправить». Он думает о каждом возможном вводе, который пользователь — или злоумышленник — может предоставить.&lt;/p&gt;
&lt;h2 id="анатомия-веб-формы"&gt;Анатомия веб-формы &lt;a href="#%d0%b0%d0%bd%d0%b0%d1%82%d0%be%d0%bc%d0%b8%d1%8f-%d0%b2%d0%b5%d0%b1-%d1%84%d0%be%d1%80%d0%bc%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Типичная форма включает:&lt;/p&gt;</description></item><item><title>Управление cookies и сессиями</title><link>https://yrkan.com/ru/course/module-05-web-testing/cookie-session-management/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-05-web-testing/cookie-session-management/</guid><description>&lt;h2 id="понимание-cookies"&gt;Понимание cookies &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-cookies" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Cookies — небольшие текстовые файлы, сохраняемые браузером от имени веб-сайта. Это основной механизм поддержания состояния в stateless-протоколе HTTP.&lt;/p&gt;
&lt;h3 id="атрибуты-cookies"&gt;Атрибуты cookies &lt;a href="#%d0%b0%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82%d1%8b-cookies" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Атрибут&lt;/th&gt;
 &lt;th&gt;Назначение&lt;/th&gt;
 &lt;th&gt;Влияние на безопасность&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Name=Value&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Хранимые данные&lt;/td&gt;
 &lt;td&gt;Не должны содержать чувствительные данные в открытом виде&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Domain&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Какой домен может обращаться&lt;/td&gt;
 &lt;td&gt;Cookie для &lt;code&gt;.example.com&lt;/code&gt; доступна &lt;code&gt;sub.example.com&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Path&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Какой URL-путь может обращаться&lt;/td&gt;
 &lt;td&gt;Cookie &lt;code&gt;/admin&lt;/code&gt; не отправляется для &lt;code&gt;/public&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Expires/Max-Age&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Когда истекает&lt;/td&gt;
 &lt;td&gt;Сессионные cookies истекают при закрытии браузера&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Secure&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Только по HTTPS&lt;/td&gt;
 &lt;td&gt;Предотвращает передачу без шифрования&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;HttpOnly&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Недоступна JavaScript&lt;/td&gt;
 &lt;td&gt;Защищает от кражи через XSS&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;SameSite&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Управляет кросс-сайтовой отправкой&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Strict&lt;/code&gt;, &lt;code&gt;Lax&lt;/code&gt; или &lt;code&gt;None&lt;/code&gt; — предотвращает CSRF&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="тестирование-атрибутов-cookies"&gt;Тестирование атрибутов cookies &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b0%d1%82%d1%80%d0%b8%d0%b1%d1%83%d1%82%d0%be%d0%b2-cookies" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Откройте DevTools &amp;gt; Application &amp;gt; Cookies и проверьте каждую cookie:&lt;/p&gt;</description></item><item><title>Jira для QA</title><link>https://yrkan.com/ru/course/module-04-documentation/jira-for-qa/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/jira-for-qa/</guid><description>&lt;h2 id="почему-jira--стандарт-индустрии"&gt;Почему Jira — стандарт индустрии &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-jira--%d1%81%d1%82%d0%b0%d0%bd%d0%b4%d0%b0%d1%80%d1%82-%d0%b8%d0%bd%d0%b4%d1%83%d1%81%d1%82%d1%80%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Jira от Atlassian доминирует на рынке issue tracking с долей более 75% в разработке ПО. Как QA-специалист, вы встретите Jira практически в каждой компании.&lt;/p&gt;
&lt;h2 id="jira-для-отслеживания-багов"&gt;Jira для отслеживания багов &lt;a href="#jira-%d0%b4%d0%bb%d1%8f-%d0%be%d1%82%d1%81%d0%bb%d0%b5%d0%b6%d0%b8%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d0%b1%d0%b0%d0%b3%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="создание-баг-репорта-в-jira"&gt;Создание баг-репорта в Jira &lt;a href="#%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b1%d0%b0%d0%b3-%d1%80%d0%b5%d0%bf%d0%be%d1%80%d1%82%d0%b0-%d0%b2-jira" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Назначение&lt;/th&gt;
 &lt;th&gt;Пример&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Summary&lt;/td&gt;
 &lt;td&gt;Заголовок бага&lt;/td&gt;
 &lt;td&gt;«Login падает с HTTP 500 при email с &amp;lsquo;+&amp;rsquo;»&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Issue Type&lt;/td&gt;
 &lt;td&gt;Bug&lt;/td&gt;
 &lt;td&gt;Bug&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Priority&lt;/td&gt;
 &lt;td&gt;Бизнес-срочность&lt;/td&gt;
 &lt;td&gt;High&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Severity&lt;/td&gt;
 &lt;td&gt;Кастомное поле — техническое влияние&lt;/td&gt;
 &lt;td&gt;Critical&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Components&lt;/td&gt;
 &lt;td&gt;Затронутый модуль&lt;/td&gt;
 &lt;td&gt;Authentication&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Environment&lt;/td&gt;
 &lt;td&gt;Браузер, ОС, версия&lt;/td&gt;
 &lt;td&gt;Chrome 120, macOS 14.2&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Description&lt;/td&gt;
 &lt;td&gt;Полный баг-репорт&lt;/td&gt;
 &lt;td&gt;Шаги, ожидаемый/фактический, доказательства&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="кастомные-поля-для-qa"&gt;Кастомные поля для QA &lt;a href="#%d0%ba%d0%b0%d1%81%d1%82%d0%be%d0%bc%d0%bd%d1%8b%d0%b5-%d0%bf%d0%be%d0%bb%d1%8f-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Severity&lt;/strong&gt; (выпадающий список: Critical/Major/Minor/Trivial)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Found In Environment&lt;/strong&gt; (выпадающий список: Dev/QA/Staging/Production)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Root Cause&lt;/strong&gt; (выпадающий список: Code/Config/Data/Environment/Third Party)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Test Case ID&lt;/strong&gt; (текст: ссылка на связанный тест-кейс)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="jql-для-тестировщиков"&gt;JQL для тестировщиков &lt;a href="#jql-%d0%b4%d0%bb%d1%8f-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d1%89%d0%b8%d0%ba%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="основные-jql-запросы"&gt;Основные JQL-запросы &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-jql-%d0%b7%d0%b0%d0%bf%d1%80%d0%be%d1%81%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Все открытые баги, назначенные на меня:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Linear, Bugzilla и другие альтернативы</title><link>https://yrkan.com/ru/course/module-04-documentation/linear-bugzilla-alternatives/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/linear-bugzilla-alternatives/</guid><description>&lt;h2 id="за-пределами-jira"&gt;За пределами Jira &lt;a href="#%d0%b7%d0%b0-%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d0%b0%d0%bc%d0%b8-jira" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Хотя Jira доминирует на рынке, она не всегда лучший выбор. Некоторые команды находят её медленной, перенастроенной или дорогой. Знание альтернатив помогает адаптироваться.&lt;/p&gt;
&lt;h2 id="linear"&gt;Linear &lt;a href="#linear" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Лучше всего для:&lt;/strong&gt; Быстрорастущих стартапов, команд, ценящих скорость и простоту.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ключевые функции:&lt;/strong&gt; Keyboard-first навигация, автоматические циклы, интеграция GitHub/GitLab, очередь triage, вид roadmap.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Перспектива QA:&lt;/strong&gt; Быстрое создание баг-репортов, хорошие labels и фильтры, ограниченная кастомизация vs Jira, нет нативного плагина test management.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Цена:&lt;/strong&gt; Бесплатно для маленьких команд, $8/пользователь/месяц стандарт.&lt;/p&gt;</description></item><item><title>Баг-репорты, которые любят разработчики</title><link>https://yrkan.com/ru/course/module-04-documentation/bug-reports-developers-love/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/bug-reports-developers-love/</guid><description>&lt;h2 id="почему-качество-баг-репортов-важно"&gt;Почему качество баг-репортов важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%ba%d0%b0%d1%87%d0%b5%d1%81%d1%82%d0%b2%d0%be-%d0%b1%d0%b0%d0%b3-%d1%80%d0%b5%d0%bf%d0%be%d1%80%d1%82%d0%be%d0%b2-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Баг-репорт — это инструмент коммуникации между QA и разработкой. Хорошо написанный баг-репорт исправляется быстро. Плохо написанный игнорируется, возвращается на уточнение или депритизируется, потому что никто не может воспроизвести.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Влияние плохих баг-репортов:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Разработчик тратит 30 минут на воспроизведение размытого бага = потерянное время&lt;/li&gt;
&lt;li&gt;Баг возвращается в QA за дополнительной информацией = задержка 1-2 дня&lt;/li&gt;
&lt;li&gt;Баг закрывается как «Cannot Reproduce» = дефект уходит в production&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Влияние хороших баг-репортов:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Документ тест-стратегии</title><link>https://yrkan.com/ru/course/module-04-documentation/test-strategy-document/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/test-strategy-document/</guid><description>&lt;h2 id="что-такое-тест-стратегия"&gt;Что такое тест-стратегия? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82-%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тест-стратегия — это документ высокого уровня, определяющий общий подход к тестированию проекта или организации. Она отвечает на фундаментальные вопросы: Что мы будем тестировать? Как будем тестировать? Какие инструменты и окружения нам нужны? Каковы наши критерии качества?&lt;/p&gt;
&lt;p&gt;В отличие от тест-плана, который специфичен для конкретного релиза или спринта, тест-стратегия задаёт общий фреймворк, направляющий всю деятельность по тестированию. Думайте о ней как о конституции вашего QA-процесса — она устанавливает принципы, а тест-планы работают с деталями.&lt;/p&gt;</description></item><item><title>Документация тестирования в Agile</title><link>https://yrkan.com/ru/course/module-04-documentation/agile-test-documentation/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/agile-test-documentation/</guid><description>&lt;h2 id="парадокс-документации-в-agile"&gt;Парадокс документации в Agile &lt;a href="#%d0%bf%d0%b0%d1%80%d0%b0%d0%b4%d0%be%d0%ba%d1%81-%d0%b4%d0%be%d0%ba%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d0%b0%d1%86%d0%b8%d0%b8-%d0%b2-agile" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Agile Manifesto ценит «работающее ПО выше исчерпывающей документации». Но это НЕ означает «без документации». Это означает — пишите документацию, которая служит цели.&lt;/p&gt;
&lt;h2 id="принцип-just-enough"&gt;Принцип &amp;ldquo;Just Enough&amp;rdquo; &lt;a href="#%d0%bf%d1%80%d0%b8%d0%bd%d1%86%d0%b8%d0%bf-just-enough" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Для каждого документа спросите: Кто будет читать? Какое решение он обеспечивает? Что случится, если его пропустить?&lt;/p&gt;
&lt;h2 id="agile-артефакты-тестирования"&gt;Agile-артефакты тестирования &lt;a href="#agile-%d0%b0%d1%80%d1%82%d0%b5%d1%84%d0%b0%d0%ba%d1%82%d1%8b-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="acceptance-criteria-как-спецификации-тестов"&gt;Acceptance Criteria как спецификации тестов &lt;a href="#acceptance-criteria-%d0%ba%d0%b0%d0%ba-%d1%81%d0%bf%d0%b5%d1%86%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Хорошо написанные acceptance criteria — ваша основная спецификация тестирования. Каждый критерий становится тестовым сценарием.&lt;/p&gt;</description></item><item><title>Жизненный цикл бага</title><link>https://yrkan.com/ru/course/module-04-documentation/bug-life-cycle/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/bug-life-cycle/</guid><description>&lt;h2 id="жизненный-цикл-бага"&gt;Жизненный цикл бага &lt;a href="#%d0%b6%d0%b8%d0%b7%d0%bd%d0%b5%d0%bd%d0%bd%d1%8b%d0%b9-%d1%86%d0%b8%d0%ba%d0%bb-%d0%b1%d0%b0%d0%b3%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Каждый баг проходит жизненный цикл от обнаружения до решения. Понимание этого цикла помогает эффективно отслеживать баги и гарантировать, что ничего не будет упущено.&lt;/p&gt;
&lt;h2 id="стандартные-статусы"&gt;Стандартные статусы &lt;a href="#%d1%81%d1%82%d0%b0%d0%bd%d0%b4%d0%b0%d1%80%d1%82%d0%bd%d1%8b%d0%b5-%d1%81%d1%82%d0%b0%d1%82%d1%83%d1%81%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="new"&gt;New &lt;a href="#new" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Баг зарегистрирован QA. Ещё не рассмотрен и не назначен.&lt;/p&gt;
&lt;h3 id="open-assigned"&gt;Open (Assigned) &lt;a href="#open-assigned" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Баг рассмотрен, принят как валидный и назначен на разработчика.&lt;/p&gt;
&lt;h3 id="in-progress"&gt;In Progress &lt;a href="#in-progress" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Разработчик активно работает над исправлением.&lt;/p&gt;
&lt;h3 id="fixed-ready-for-qa"&gt;Fixed (Ready for QA) &lt;a href="#fixed-ready-for-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Разработчик реализовал исправление и развернул его в тестовом окружении.&lt;/p&gt;</description></item><item><title>Итоговые отчёты о тестировании</title><link>https://yrkan.com/ru/course/module-04-documentation/test-summary-reports/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/test-summary-reports/</guid><description>&lt;h2 id="итоговый-vs-отчёт-о-выполнении"&gt;Итоговый vs Отчёт о выполнении &lt;a href="#%d0%b8%d1%82%d0%be%d0%b3%d0%be%d0%b2%d1%8b%d0%b9-vs-%d0%be%d1%82%d1%87%d1%91%d1%82-%d0%be-%d0%b2%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d0%b5%d0%bd%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Отчёт о выполнении:&lt;/strong&gt; Снимок конкретного тест-рана.
&lt;strong&gt;Итоговый отчёт:&lt;/strong&gt; Комплексный документ по всей фазе тестирования.&lt;/p&gt;
&lt;h2 id="структура-отчёта"&gt;Структура отчёта &lt;a href="#%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%b0-%d0%be%d1%82%d1%87%d1%91%d1%82%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-резюме-для-руководства"&gt;1. Резюме для руководства &lt;a href="#1-%d1%80%d0%b5%d0%b7%d1%8e%d0%bc%d0%b5-%d0%b4%d0%bb%d1%8f-%d1%80%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Один абзац: готов ли продукт? Наибольший риск? Рекомендация?&lt;/p&gt;
&lt;h3 id="2-область-и-цели"&gt;2. Область и цели &lt;a href="#2-%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d1%8c-%d0%b8-%d1%86%d0%b5%d0%bb%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Что планировалось, что протестировано, отклонения от плана.&lt;/p&gt;
&lt;h3 id="3-сводка-результатов"&gt;3. Сводка результатов &lt;a href="#3-%d1%81%d0%b2%d0%be%d0%b4%d0%ba%d0%b0-%d1%80%d0%b5%d0%b7%d1%83%d0%bb%d1%8c%d1%82%d0%b0%d1%82%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Агрегированные результаты по всем циклам.&lt;/p&gt;
&lt;h3 id="4-анализ-дефектов"&gt;4. Анализ дефектов &lt;a href="#4-%d0%b0%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7-%d0%b4%d0%b5%d1%84%d0%b5%d0%ba%d1%82%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;По серьёзности, тренд обнаружения, основные категории, анализ корневых причин.&lt;/p&gt;</description></item><item><title>Маппинг требований к тестам</title><link>https://yrkan.com/ru/course/module-04-documentation/requirements-to-test-mapping/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/requirements-to-test-mapping/</guid><description>&lt;h2 id="зачем-нужна-прослеживаемость"&gt;Зачем нужна прослеживаемость &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%bd%d1%83%d0%b6%d0%bd%d0%b0-%d0%bf%d1%80%d0%be%d1%81%d0%bb%d0%b5%d0%b6%d0%b8%d0%b2%d0%b0%d0%b5%d0%bc%d0%be%d1%81%d1%82%d1%8c" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Прослеживаемость требований отвечает на три вопроса:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Каждое ли требование протестировано? (Forward)&lt;/li&gt;
&lt;li&gt;Каждый ли тест имеет цель? (Backward)&lt;/li&gt;
&lt;li&gt;Если требование изменится, какие тесты обновить? (Анализ влияния)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="матрица-прослеживаемости"&gt;Матрица прослеживаемости &lt;a href="#%d0%bc%d0%b0%d1%82%d1%80%d0%b8%d1%86%d0%b0-%d0%bf%d1%80%d0%be%d1%81%d0%bb%d0%b5%d0%b6%d0%b8%d0%b2%d0%b0%d0%b5%d0%bc%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="базовая-структура"&gt;Базовая структура &lt;a href="#%d0%b1%d0%b0%d0%b7%d0%be%d0%b2%d0%b0%d1%8f-%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Req ID&lt;/th&gt;
 &lt;th&gt;Требование&lt;/th&gt;
 &lt;th&gt;Тест-кейсы&lt;/th&gt;
 &lt;th&gt;Покрытие&lt;/th&gt;
 &lt;th&gt;Статус&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;REQ-001&lt;/td&gt;
 &lt;td&gt;Регистрация по email&lt;/td&gt;
 &lt;td&gt;TC-001, TC-002&lt;/td&gt;
 &lt;td&gt;Полное&lt;/td&gt;
 &lt;td&gt;Пройдено&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;REQ-002&lt;/td&gt;
 &lt;td&gt;Сложность пароля&lt;/td&gt;
 &lt;td&gt;TC-010, TC-011&lt;/td&gt;
 &lt;td&gt;Полное&lt;/td&gt;
 &lt;td&gt;1 провал&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;REQ-003&lt;/td&gt;
 &lt;td&gt;Двухфакторная авторизация&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Нет&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Не тестировано&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="двунаправленная-прослеживаемость"&gt;Двунаправленная прослеживаемость &lt;a href="#%d0%b4%d0%b2%d1%83%d0%bd%d0%b0%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%bd%d0%b0%d1%8f-%d0%bf%d1%80%d0%be%d1%81%d0%bb%d0%b5%d0%b6%d0%b8%d0%b2%d0%b0%d0%b5%d0%bc%d0%be%d1%81%d1%82%d1%8c" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Forward (Требование → Тест):&lt;/strong&gt; Каждое требование имеет хотя бы один тест.
&lt;strong&gt;Backward (Тест → Требование):&lt;/strong&gt; Каждый тест связан с требованием.&lt;/p&gt;</description></item><item><title>Написание эффективных тест-кейсов</title><link>https://yrkan.com/ru/course/module-04-documentation/writing-effective-test-cases/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/writing-effective-test-cases/</guid><description>&lt;h2 id="почему-качество-тест-кейсов-важно"&gt;Почему качество тест-кейсов важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%ba%d0%b0%d1%87%d0%b5%d1%81%d1%82%d0%b2%d0%be-%d1%82%d0%b5%d1%81%d1%82-%d0%ba%d0%b5%d0%b9%d1%81%d0%be%d0%b2-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тест-кейс хорош ровно настолько, насколько его может выполнить другой человек. Если коллега не может следовать вашему тест-кейсу и получить тот же результат, тест-кейс провалил свою задачу — независимо от того, прошло ПО проверку или нет.&lt;/p&gt;
&lt;p&gt;Плохие тест-кейсы приводят к:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Непоследовательным результатам&lt;/strong&gt; — разные тестировщики по-разному интерпретируют шаги&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Потере времени&lt;/strong&gt; — тестировщики разбираются в смысле кейса вместо тестирования&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ложной уверенности&lt;/strong&gt; — размытые ожидаемые результаты позволяют ошибочно помечать тесты как «пройденные»&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Бремени поддержки&lt;/strong&gt; — неясные кейсы сложнее обновлять при изменении требований&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="анатомия-тест-кейса"&gt;Анатомия тест-кейса &lt;a href="#%d0%b0%d0%bd%d0%b0%d1%82%d0%be%d0%bc%d0%b8%d1%8f-%d1%82%d0%b5%d1%81%d1%82-%d0%ba%d0%b5%d0%b9%d1%81%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Каждый тест-кейс должен содержать следующие элементы:&lt;/p&gt;</description></item><item><title>Отчёты о выполнении тестов</title><link>https://yrkan.com/ru/course/module-04-documentation/test-execution-reports/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/test-execution-reports/</guid><description>&lt;h2 id="что-такое-отчёт-о-выполнении-тестов"&gt;Что такое отчёт о выполнении тестов &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%be%d1%82%d1%87%d1%91%d1%82-%d0%be-%d0%b2%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d0%b5%d0%bd%d0%b8%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Отчёт о выполнении тестов суммирует результаты запуска тест-кейсов для конкретного билда или релиза. Он отвечает на ключевой вопрос: «Каково качество этого билда?»&lt;/p&gt;
&lt;h2 id="компоненты-отчёта"&gt;Компоненты отчёта &lt;a href="#%d0%ba%d0%be%d0%bc%d0%bf%d0%be%d0%bd%d0%b5%d0%bd%d1%82%d1%8b-%d0%be%d1%82%d1%87%d1%91%d1%82%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="сводка-выполнения"&gt;Сводка выполнения &lt;a href="#%d1%81%d0%b2%d0%be%d0%b4%d0%ba%d0%b0-%d0%b2%d1%8b%d0%bf%d0%be%d0%bb%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Метрика&lt;/th&gt;
 &lt;th&gt;Значение&lt;/th&gt;
 &lt;th&gt;Цель&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Всего тест-кейсов&lt;/td&gt;
 &lt;td&gt;450&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Выполнено&lt;/td&gt;
 &lt;td&gt;420 (93%)&lt;/td&gt;
 &lt;td&gt;100%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Пройдено&lt;/td&gt;
 &lt;td&gt;385 (92%)&lt;/td&gt;
 &lt;td&gt;&amp;gt; 95%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Провалено&lt;/td&gt;
 &lt;td&gt;25 (6%)&lt;/td&gt;
 &lt;td&gt;&amp;lt; 5%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Заблокировано&lt;/td&gt;
 &lt;td&gt;10 (2%)&lt;/td&gt;
 &lt;td&gt;0%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Не выполнено&lt;/td&gt;
 &lt;td&gt;30 (7%)&lt;/td&gt;
 &lt;td&gt;0%&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="ключевые-метрики"&gt;Ключевые метрики &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%bc%d0%b5%d1%82%d1%80%d0%b8%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Pass Rate:&lt;/strong&gt; &lt;code&gt;(Пройденные / Выполненные) x 100&lt;/code&gt; — Пример: 385/420 = 91.7%&lt;/p&gt;</description></item><item><title>Отчёты о покрытии</title><link>https://yrkan.com/ru/course/module-04-documentation/coverage-reports/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/coverage-reports/</guid><description>&lt;h2 id="типы-покрытия"&gt;Типы покрытия &lt;a href="#%d1%82%d0%b8%d0%bf%d1%8b-%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="покрытие-кода-code-coverage"&gt;Покрытие кода (Code Coverage) &lt;a href="#%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d0%b5-%d0%ba%d0%be%d0%b4%d0%b0-code-coverage" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Измеряет, какие строки, ветви и функции исходного кода выполняются автоматизированными тестами.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Метрики:&lt;/strong&gt; Line coverage, branch coverage, function coverage, statement coverage.&lt;/p&gt;
&lt;h3 id="покрытие-требований-requirements-coverage"&gt;Покрытие требований (Requirements Coverage) &lt;a href="#%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d0%b5-%d1%82%d1%80%d0%b5%d0%b1%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b9-requirements-coverage" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Измеряет, какие бизнес-требования имеют соответствующие тест-кейсы.&lt;/p&gt;
&lt;h2 id="инструменты-покрытия-кода"&gt;Инструменты покрытия кода &lt;a href="#%d0%b8%d0%bd%d1%81%d1%82%d1%80%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d1%8b-%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d1%8f-%d0%ba%d0%be%d0%b4%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Инструмент&lt;/th&gt;
 &lt;th&gt;Языки&lt;/th&gt;
 &lt;th&gt;Интеграция&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Istanbul/nyc&lt;/td&gt;
 &lt;td&gt;JavaScript/TypeScript&lt;/td&gt;
 &lt;td&gt;Jest, Mocha, Vitest&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;JaCoCo&lt;/td&gt;
 &lt;td&gt;Java&lt;/td&gt;
 &lt;td&gt;Maven, Gradle&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;coverage.py&lt;/td&gt;
 &lt;td&gt;Python&lt;/td&gt;
 &lt;td&gt;pytest&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;SonarQube&lt;/td&gt;
 &lt;td&gt;Мультиязычный&lt;/td&gt;
 &lt;td&gt;CI/CD дашборды&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="чтение-отчётов-о-покрытии"&gt;Чтение отчётов о покрытии &lt;a href="#%d1%87%d1%82%d0%b5%d0%bd%d0%b8%d0%b5-%d0%be%d1%82%d1%87%d1%91%d1%82%d0%be%d0%b2-%d0%be-%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Файл | % Stmts | % Branch | % Funcs | % Lines |
------------------------|---------|----------|---------|---------|
src/auth/login.js | 95.2 | 88.0 | 100.0 | 95.0 |
src/payment/checkout.js | 45.0 | 30.0 | 50.0 | 44.2 |
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;login.js&lt;/code&gt; на 95% — хорошо покрыт&lt;/li&gt;
&lt;li&gt;&lt;code&gt;checkout.js&lt;/code&gt; на 45% — критически недопокрыт для модуля платежей&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="установка-целей"&gt;Установка целей &lt;a href="#%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d1%86%d0%b5%d0%bb%d0%b5%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Область кода&lt;/th&gt;
 &lt;th&gt;Цель&lt;/th&gt;
 &lt;th&gt;Обоснование&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Платежи/финансы&lt;/td&gt;
 &lt;td&gt;90%+&lt;/td&gt;
 &lt;td&gt;Высокий бизнес-риск&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Аутентификация/безопасность&lt;/td&gt;
 &lt;td&gt;90%+&lt;/td&gt;
 &lt;td&gt;Критично для безопасности&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Основная бизнес-логика&lt;/td&gt;
 &lt;td&gt;80%+&lt;/td&gt;
 &lt;td&gt;Основная функциональность&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Утилиты&lt;/td&gt;
 &lt;td&gt;70%+&lt;/td&gt;
 &lt;td&gt;Общий код&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="ловушка-покрытия"&gt;Ловушка покрытия &lt;a href="#%d0%bb%d0%be%d0%b2%d1%83%d1%88%d0%ba%d0%b0-%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Не гонитесь за 100% вслепую. Проблемы: бессмысленные тесты, тестирование тривиального кода, игнорирование других видов тестирования.&lt;/p&gt;</description></item><item><title>Оценка по модулю 4</title><link>https://yrkan.com/ru/course/module-04-documentation/module-4-assessment/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/module-4-assessment/</guid><description>&lt;h2 id="обзор-оценки"&gt;Обзор оценки &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Поздравляем с достижением последнего урока Модуля 4. Эта оценка проверяет понимание всех тем тестовой документации.&lt;/p&gt;
&lt;h3 id="система-оценки"&gt;Система оценки &lt;a href="#%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d0%b0-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Часть 1 (Quiz):&lt;/strong&gt; 10 вопросов x 3 балла = 30 баллов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Часть 2 (Сценарии):&lt;/strong&gt; 5 сценариев x 6 баллов = 30 баллов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Часть 3 (Упражнение):&lt;/strong&gt; 40 баллов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Итого:&lt;/strong&gt; 100 баллов. &lt;strong&gt;Проходной балл:&lt;/strong&gt; 70&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="покрываемые-темы"&gt;Покрываемые темы &lt;a href="#%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d0%b2%d0%b0%d0%b5%d0%bc%d1%8b%d0%b5-%d1%82%d0%b5%d0%bc%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Область&lt;/th&gt;
 &lt;th&gt;Уроки&lt;/th&gt;
 &lt;th&gt;Ключевые концепции&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Стратегия и планирование&lt;/td&gt;
 &lt;td&gt;4.1-4.2&lt;/td&gt;
 &lt;td&gt;Тест-стратегия, IEEE 829&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Проектирование тест-кейсов&lt;/td&gt;
 &lt;td&gt;4.3-4.5&lt;/td&gt;
 &lt;td&gt;Написание, позитивные/негативные/граничные, тестовые данные&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Управление дефектами&lt;/td&gt;
 &lt;td&gt;4.6-4.10&lt;/td&gt;
 &lt;td&gt;Баг-репорты, серьёзность/приоритет, жизненный цикл, Jira&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Отчётность&lt;/td&gt;
 &lt;td&gt;4.11-4.13&lt;/td&gt;
 &lt;td&gt;Выполнение, покрытие, примечания к релизу&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Процесс&lt;/td&gt;
 &lt;td&gt;4.14-4.16&lt;/td&gt;
 &lt;td&gt;Triage, чек-листы vs кейсы, agile-документация&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Продвинутые&lt;/td&gt;
 &lt;td&gt;4.17-4.19&lt;/td&gt;
 &lt;td&gt;Итоговые отчёты, RTM, шаблоны и стандарты&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="часть-2-сценарные-вопросы"&gt;Часть 2: Сценарные вопросы &lt;a href="#%d1%87%d0%b0%d1%81%d1%82%d1%8c-2-%d1%81%d1%86%d0%b5%d0%bd%d0%b0%d1%80%d0%bd%d1%8b%d0%b5-%d0%b2%d0%be%d0%bf%d1%80%d0%be%d1%81%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Сценарий 1:&lt;/strong&gt; Вы приходите в компанию единственным QA. Документации тестирования нет. B2B SaaS с 50 корпоративными клиентами. Какие документы создаёте первыми?&lt;/p&gt;</description></item><item><title>Позитивные, негативные и граничные тест-кейсы</title><link>https://yrkan.com/ru/course/module-04-documentation/positive-negative-boundary-cases/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/positive-negative-boundary-cases/</guid><description>&lt;h2 id="три-категории"&gt;Три категории &lt;a href="#%d1%82%d1%80%d0%b8-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be%d1%80%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Каждая функция нуждается в тест-кейсах трёх категорий: позитивные тесты, подтверждающие работу happy path, негативные тесты, проверяющие обработку ошибок, и граничные тесты, проверяющие крайние значения. Пропуск любой категории оставляет опасные пробелы.&lt;/p&gt;
&lt;h2 id="позитивные-тест-кейсы"&gt;Позитивные тест-кейсы &lt;a href="#%d0%bf%d0%be%d0%b7%d0%b8%d1%82%d0%b8%d0%b2%d0%bd%d1%8b%d0%b5-%d1%82%d0%b5%d1%81%d1%82-%d0%ba%d0%b5%d0%b9%d1%81%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Позитивные тест-кейсы проверяют, что система работает корректно с &lt;strong&gt;валидным вводом при ожидаемых условиях&lt;/strong&gt;. Они представляют пути, по которым пойдёт большинство пользователей.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Характеристики:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Используют валидные, ожидаемые значения ввода&lt;/li&gt;
&lt;li&gt;Следуют предусмотренному рабочему процессу&lt;/li&gt;
&lt;li&gt;Проверяют успешные результаты&lt;/li&gt;
&lt;li&gt;Отвечают: «Работает ли функция как задумано?»&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Пример — Форма входа:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Примечания к релизу для QA</title><link>https://yrkan.com/ru/course/module-04-documentation/release-notes-for-qa/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/release-notes-for-qa/</guid><description>&lt;h2 id="роль-qa-в-примечаниях-к-релизу"&gt;Роль QA в примечаниях к релизу &lt;a href="#%d1%80%d0%be%d0%bb%d1%8c-qa-%d0%b2-%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%87%d0%b0%d0%bd%d0%b8%d1%8f%d1%85-%d0%ba-%d1%80%d0%b5%d0%bb%d0%b8%d0%b7%d1%83" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Примечания к релизу — не только задача разработки. QA предоставляет перспективу качества: что было протестировано, какие баги исправлены и верифицированы, какие известные проблемы остались и какие обходные пути существуют.&lt;/p&gt;
&lt;h2 id="разделы-примечаний"&gt;Разделы примечаний &lt;a href="#%d1%80%d0%b0%d0%b7%d0%b4%d0%b5%d0%bb%d1%8b-%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%87%d0%b0%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="новые-функции-и-изменения"&gt;Новые функции и изменения &lt;a href="#%d0%bd%d0%be%d0%b2%d1%8b%d0%b5-%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8-%d0%b8-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;QA верифицирует работу новых функций как описано.&lt;/p&gt;
&lt;h3 id="исправления-багов"&gt;Исправления багов &lt;a href="#%d0%b8%d1%81%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-%d0%b1%d0%b0%d0%b3%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Список исправленных багов. QA верифицирует каждое исправление.&lt;/p&gt;
&lt;h3 id="известные-проблемы-known-issues"&gt;Известные проблемы (Known Issues) &lt;a href="#%d0%b8%d0%b7%d0%b2%d0%b5%d1%81%d1%82%d0%bd%d1%8b%d0%b5-%d0%bf%d1%80%d0%be%d0%b1%d0%bb%d0%b5%d0%bc%d1%8b-known-issues" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Баги, намеренно выпускаемые с документированными обходными путями.&lt;/p&gt;</description></item><item><title>Серьёзность и приоритет</title><link>https://yrkan.com/ru/course/module-04-documentation/severity-vs-priority/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/severity-vs-priority/</guid><description>&lt;h2 id="ключевое-различие"&gt;Ключевое различие &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d0%be%d0%b5-%d1%80%d0%b0%d0%b7%d0%bb%d0%b8%d1%87%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Серьёзность и приоритет — два наиболее путаемых понятия в управлении багами. Путаница приводит к неправильному распределению ресурсов — критические баги игнорируются, а косметические получают срочное внимание.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Серьёзность (Severity)&lt;/strong&gt; = Насколько серьёзно влияние на систему? (Техническая оценка)
&lt;strong&gt;Приоритет (Priority)&lt;/strong&gt; = Как скоро нужно исправить? (Бизнес-решение)&lt;/p&gt;
&lt;p&gt;Они связаны, но независимы. Баг может иметь высокую серьёзность и низкий приоритет, или наоборот.&lt;/p&gt;
&lt;h2 id="уровни-серьёзности"&gt;Уровни серьёзности &lt;a href="#%d1%83%d1%80%d0%be%d0%b2%d0%bd%d0%b8-%d1%81%d0%b5%d1%80%d1%8c%d1%91%d0%b7%d0%bd%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Серьёзность — &lt;strong&gt;объективная техническая оценка&lt;/strong&gt; влияния бага на систему.&lt;/p&gt;</description></item><item><title>Совещания по сортировке дефектов</title><link>https://yrkan.com/ru/course/module-04-documentation/defect-triage-meetings/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/defect-triage-meetings/</guid><description>&lt;h2 id="что-такое-defect-triage"&gt;Что такое Defect Triage? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-defect-triage" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Defect triage — процесс рассмотрения зарегистрированных багов, оценки влияния, назначения приоритетов и принятия решений о действиях. Термин из медицины — сортировка пациентов по срочности.&lt;/p&gt;
&lt;h2 id="структура-совещания"&gt;Структура совещания &lt;a href="#%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%b0-%d1%81%d0%be%d0%b2%d0%b5%d1%89%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="частота"&gt;Частота &lt;a href="#%d1%87%d0%b0%d1%81%d1%82%d0%be%d1%82%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Активное тестирование:&lt;/strong&gt; Ежедневно, 15 минут&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Обычный спринт:&lt;/strong&gt; 2-3 раза в неделю, 20 минут&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Режим поддержки:&lt;/strong&gt; Еженедельно, 30 минут&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="участники"&gt;Участники &lt;a href="#%d1%83%d1%87%d0%b0%d1%81%d1%82%d0%bd%d0%b8%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Роль&lt;/th&gt;
 &lt;th&gt;Ответственность&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Фасилитатор (QA Lead)&lt;/td&gt;
 &lt;td&gt;Ведение совещания, контроль времени, документирование&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Репортер (QA Engineers)&lt;/td&gt;
 &lt;td&gt;Представление деталей бага&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Технический оценщик (Dev Lead)&lt;/td&gt;
 &lt;td&gt;Оценка сложности и рисков&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Бизнес-приоритизатор (PO)&lt;/td&gt;
 &lt;td&gt;Установка приоритета по бизнес-влиянию&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="повестка"&gt;Повестка &lt;a href="#%d0%bf%d0%be%d0%b2%d0%b5%d1%81%d1%82%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Обзор новых багов (10 мин)&lt;/li&gt;
&lt;li&gt;Назначение приоритетов (5 мин)&lt;/li&gt;
&lt;li&gt;Распределение разработчикам (5 мин)&lt;/li&gt;
&lt;li&gt;Обзор застоявшихся багов (5 мин)&lt;/li&gt;
&lt;li&gt;Быстрые метрики (2 мин)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="фреймворк-принятия-решений"&gt;Фреймворк принятия решений &lt;a href="#%d1%84%d1%80%d0%b5%d0%b9%d0%bc%d0%b2%d0%be%d1%80%d0%ba-%d0%bf%d1%80%d0%b8%d0%bd%d1%8f%d1%82%d0%b8%d1%8f-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Решение&lt;/th&gt;
 &lt;th&gt;Критерий&lt;/th&gt;
 &lt;th&gt;Действие&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Fix Now&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Критический/Высокий, блокирует релиз&lt;/td&gt;
 &lt;td&gt;Назначить, текущий спринт&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Fix Next&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Важный, не блокирует&lt;/td&gt;
 &lt;td&gt;Бэклог следующего спринта&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Defer&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Валидный, низкое влияние&lt;/td&gt;
 &lt;td&gt;Будущий релиз&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Won&amp;rsquo;t Fix&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;By design или стоимость &amp;gt; пользы&lt;/td&gt;
 &lt;td&gt;Закрыть с обоснованием&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Need Info&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Не воспроизводится или неясно&lt;/td&gt;
 &lt;td&gt;Вернуть репортеру&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="упражнение-проведите-triage-багов"&gt;Упражнение: Проведите triage багов &lt;a href="#%d1%83%d0%bf%d1%80%d0%b0%d0%b6%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b2%d0%b5%d0%b4%d0%b8%d1%82%d0%b5-triage-%d0%b1%d0%b0%d0%b3%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Отсортируйте 6 багов при дедлайне релиза через 5 дней:&lt;/p&gt;</description></item><item><title>Тест-план: формат IEEE 829</title><link>https://yrkan.com/ru/course/module-04-documentation/test-plan-ieee-829/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/test-plan-ieee-829/</guid><description>&lt;h2 id="введение-в-ieee-829"&gt;Введение в IEEE 829 &lt;a href="#%d0%b2%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-ieee-829" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;IEEE 829, формально известный как «Standard for Software and System Test Documentation», предоставляет стандартизированный формат для документации тестирования. Впервые опубликованный в 1998 году и обновлённый в 2008, он определяет шаблоны для тест-планов, тест-дизайнов, тест-кейсов, тест-процедур и тест-отчётов.&lt;/p&gt;
&lt;p&gt;Хотя многие команды сегодня используют agile-подходы с лёгкой документацией, IEEE 829 остаётся эталонным стандартом для понимания, что должен содержать полный тест-план. Даже если вы никогда не напишете полный документ IEEE 829, знание его структуры делает вас лучше в создании тест-планов любого формата.&lt;/p&gt;</description></item><item><title>Управление тестовыми данными</title><link>https://yrkan.com/ru/course/module-04-documentation/test-data-management/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/test-data-management/</guid><description>&lt;h2 id="проблема-тестовых-данных"&gt;Проблема тестовых данных &lt;a href="#%d0%bf%d1%80%d0%be%d0%b1%d0%bb%d0%b5%d0%bc%d0%b0-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2%d1%8b%d1%85-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Каждый тест нуждается в данных — учётные записи, товары, транзакции, конфигурации. Откуда берутся эти данные, как ими управляют и как их очищают — определяет, будет ли ваше тестирование надёжным или полным непредсказуемых результатов.&lt;/p&gt;
&lt;p&gt;Типичные проблемы:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Конфликты общих данных&lt;/strong&gt; — два тестировщика используют один аккаунт одновременно&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Устаревшие данные&lt;/strong&gt; — тестовые данные не соответствуют текущей схеме после миграций&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Нарушения конфиденциальности&lt;/strong&gt; — реальные данные клиентов в непродуктивных окружениях&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Загрязнение окружения&lt;/strong&gt; — остатки данных от предыдущих запусков&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Захардкоженные значения&lt;/strong&gt; — тест-кейсы ломаются при удалении конкретных записей&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="источники-тестовых-данных"&gt;Источники тестовых данных &lt;a href="#%d0%b8%d1%81%d1%82%d0%be%d1%87%d0%bd%d0%b8%d0%ba%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2%d1%8b%d1%85-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-синтетические-данные-сгенерированные"&gt;1. Синтетические данные (сгенерированные) &lt;a href="#1-%d1%81%d0%b8%d0%bd%d1%82%d0%b5%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d0%b5-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d0%b5-%d1%81%d0%b3%d0%b5%d0%bd%d0%b5%d1%80%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%bd%d1%8b%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Создание искусственных данных, имитирующих паттерны production без реальной информации.&lt;/p&gt;</description></item><item><title>Чек-листы и тест-кейсы</title><link>https://yrkan.com/ru/course/module-04-documentation/checklists-vs-test-cases/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/checklists-vs-test-cases/</guid><description>&lt;h2 id="два-подхода"&gt;Два подхода &lt;a href="#%d0%b4%d0%b2%d0%b0-%d0%bf%d0%be%d0%b4%d1%85%d0%be%d0%b4%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Детальные тест-кейсы:&lt;/strong&gt; Пошаговые инструкции с предусловиями, точными вводными данными и конкретными ожидаемыми результатами.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Чек-листы:&lt;/strong&gt; Пункты высокого уровня для проверки без предписания точных шагов. Тестировщик сам решает, как проверить каждый пункт.&lt;/p&gt;
&lt;h2 id="когда-использовать"&gt;Когда использовать &lt;a href="#%d0%ba%d0%be%d0%b3%d0%b4%d0%b0-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d1%8c" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="детальные-тест-кейсы"&gt;Детальные тест-кейсы: &lt;a href="#%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d1%82%d0%b5%d1%81%d1%82-%d0%ba%d0%b5%d0%b9%d1%81%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Регуляторное соответствие, новые/джуниор тестировщики, критические функции, автоматизированное тестирование, аудиты&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="чек-листы"&gt;Чек-листы: &lt;a href="#%d1%87%d0%b5%d0%ba-%d0%bb%d0%b8%d1%81%d1%82%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Опытные тестировщики, исследовательское тестирование, smoke-тестирование, регрессия стабильных функций, agile-спринты&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="гибридный-подход"&gt;Гибридный подход &lt;a href="#%d0%b3%d0%b8%d0%b1%d1%80%d0%b8%d0%b4%d0%bd%d1%8b%d0%b9-%d0%bf%d0%be%d0%b4%d1%85%d0%be%d0%b4" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Риск функции&lt;/th&gt;
 &lt;th&gt;Документация&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Критический (платежи)&lt;/td&gt;
 &lt;td&gt;Детальные тест-кейсы + автоматизация&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Высокий (авторизация, данные)&lt;/td&gt;
 &lt;td&gt;Тест-кейсы для основных путей, чек-листы для edge cases&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Средний (поиск, UI)&lt;/td&gt;
 &lt;td&gt;Чек-листы с ключевыми сценариями&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Низкий (страница «О нас»)&lt;/td&gt;
 &lt;td&gt;Только smoke-чек-лист&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="упражнение-создайте-оба-формата"&gt;Упражнение: Создайте оба формата &lt;a href="#%d1%83%d0%bf%d1%80%d0%b0%d0%b6%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%b9%d1%82%d0%b5-%d0%be%d0%b1%d0%b0-%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%82%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Для функции регистрации (username, email, пароль, загрузка фото профиля) создайте чек-лист из 15-20 пунктов и 3 детальных тест-кейса для критических сценариев.&lt;/p&gt;</description></item><item><title>Шаблоны и стандарты документации</title><link>https://yrkan.com/ru/course/module-04-documentation/documentation-templates-standards/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-04-documentation/documentation-templates-standards/</guid><description>&lt;h2 id="зачем-нужны-стандарты"&gt;Зачем нужны стандарты &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%bd%d1%83%d0%b6%d0%bd%d1%8b-%d1%81%d1%82%d0%b0%d0%bd%d0%b4%d0%b0%d1%80%d1%82%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Без стандартов: пять тестировщиков пишут баг-репорты в пяти форматах, критическая информация теряется, время уходит на уточнения при ревью.&lt;/p&gt;
&lt;h2 id="создание-шаблонов"&gt;Создание шаблонов &lt;a href="#%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5-%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="принципы-проектирования"&gt;Принципы проектирования &lt;a href="#%d0%bf%d1%80%d0%b8%d0%bd%d1%86%d0%b8%d0%bf%d1%8b-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Включайте подсказки, а не только заголовки&lt;/li&gt;
&lt;li&gt;Отмечайте обязательные vs опциональные разделы&lt;/li&gt;
&lt;li&gt;Приводите примеры&lt;/li&gt;
&lt;li&gt;Сохраняйте минимализм&lt;/li&gt;
&lt;li&gt;Версионируйте шаблоны в wiki или репозитории&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="основные-шаблоны"&gt;Основные шаблоны &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d1%88%d0%b0%d0%b1%d0%bb%d0%be%d0%bd%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Баг-репорт:&lt;/strong&gt; Заголовок (формула), окружение, серьёзность, шаги, ожидаемый/фактический, доказательства&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Тест-кейс:&lt;/strong&gt; ID, заголовок (Проверить, что&amp;hellip;), предусловия, шаги с результатами, тестовые данные&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Итоговый отчёт:&lt;/strong&gt; Резюме, область, результаты, дефекты, покрытие, риски, go/no-go&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="что-стандартизировать"&gt;Что стандартизировать &lt;a href="#%d1%87%d1%82%d0%be-%d1%81%d1%82%d0%b0%d0%bd%d0%b4%d0%b0%d1%80%d1%82%d0%b8%d0%b7%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Область&lt;/th&gt;
 &lt;th&gt;Стандарт&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Заголовки багов&lt;/td&gt;
 &lt;td&gt;Формула: &lt;code&gt;[Компонент] Действие падает с [Ошибкой] при [Условии]&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Шкала серьёзности&lt;/td&gt;
 &lt;td&gt;4 уровня с определениями&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Именование тест-кейсов&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;TC-[МОДУЛЬ]-[NNN]&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Скриншоты&lt;/td&gt;
 &lt;td&gt;Аннотированные с выделениями и стрелками&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Тестовые данные&lt;/td&gt;
 &lt;td&gt;Никогда реальные PII, использовать Faker&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="что-не-стандартизировать"&gt;Что НЕ стандартизировать &lt;a href="#%d1%87%d1%82%d0%be-%d0%bd%d0%b5-%d1%81%d1%82%d0%b0%d0%bd%d0%b4%d0%b0%d1%80%d1%82%d0%b8%d0%b7%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Стиль написания, уровень детализации для опытных тестировщиков, количество слов.&lt;/p&gt;</description></item><item><title>Анализ граничных значений</title><link>https://yrkan.com/ru/course/module-03-test-design/boundary-value-analysis/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/boundary-value-analysis/</guid><description>&lt;h2 id="что-такое-анализ-граничных-значений"&gt;Что такое анализ граничных значений? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%b0%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7-%d0%b3%d1%80%d0%b0%d0%bd%d0%b8%d1%87%d0%bd%d1%8b%d1%85-%d0%b7%d0%bd%d0%b0%d1%87%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Анализ граничных значений (Boundary Value Analysis, BVA) — это техника тест-дизайна чёрного ящика, которая фокусируется на тестировании значений на краях классов эквивалентности. Если эквивалентное разбиение говорит, &lt;em&gt;какие&lt;/em&gt; группы тестировать, то BVA говорит, &lt;em&gt;где&lt;/em&gt; внутри этих групп дефекты прячутся с наибольшей вероятностью.&lt;/p&gt;
&lt;h3 id="почему-границы-важны"&gt;Почему границы важны &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%b3%d1%80%d0%b0%d0%bd%d0%b8%d1%86%d1%8b-%d0%b2%d0%b0%d0%b6%d0%bd%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Исследования последовательно показывают, что непропорционально большое количество дефектов ПО возникает на граничных значениях. Причина проста: разработчики пишут условия вроде &lt;code&gt;if (age &amp;gt;= 18)&lt;/code&gt; или &lt;code&gt;if (quantity &amp;lt;= 100)&lt;/code&gt;, и ошибки на единицу (&lt;code&gt;&amp;gt;&lt;/code&gt; вместо &lt;code&gt;&amp;gt;=&lt;/code&gt;, &lt;code&gt;&amp;lt;&lt;/code&gt; вместо &lt;code&gt;&amp;lt;=&lt;/code&gt;) — одни из самых распространённых ошибок в коде.&lt;/p&gt;</description></item><item><title>Выбор правильной техники</title><link>https://yrkan.com/ru/course/module-03-test-design/choosing-the-right-technique/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/choosing-the-right-technique/</guid><description>&lt;h2 id="проблема-выбора-техники"&gt;Проблема выбора техники &lt;a href="#%d0%bf%d1%80%d0%be%d0%b1%d0%bb%d0%b5%d0%bc%d0%b0-%d0%b2%d1%8b%d0%b1%d0%be%d1%80%d0%b0-%d1%82%d0%b5%d1%85%d0%bd%d0%b8%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Вы изучили более 20 техник тест-дизайна. Задача теперь не «какие техники существуют?», а «какую использовать сейчас?»&lt;/p&gt;
&lt;p&gt;Неверный выбор тратит усилия впустую. EP на протоколе с состояниями пропустит баги переходов. State transition testing на движке расчётов пропустит граничные дефекты.&lt;/p&gt;
&lt;h2 id="фреймворк-принятия-решений"&gt;Фреймворк принятия решений &lt;a href="#%d1%84%d1%80%d0%b5%d0%b9%d0%bc%d0%b2%d0%be%d1%80%d0%ba-%d0%bf%d1%80%d0%b8%d0%bd%d1%8f%d1%82%d0%b8%d1%8f-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="шаг-1-какой-тип-фичи-вы-тестируете"&gt;Шаг 1: Какой тип фичи вы тестируете? &lt;a href="#%d1%88%d0%b0%d0%b3-1-%d0%ba%d0%b0%d0%ba%d0%be%d0%b9-%d1%82%d0%b8%d0%bf-%d1%84%d0%b8%d1%87%d0%b8-%d0%b2%d1%8b-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d1%83%d0%b5%d1%82%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Тип фичи&lt;/th&gt;
 &lt;th&gt;Лучшие техники&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Валидация ввода (формы)&lt;/td&gt;
 &lt;td&gt;EP + BVA&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Бизнес-правила с условиями&lt;/td&gt;
 &lt;td&gt;Таблицы решений&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Рабочие процессы, протоколы, сессии&lt;/td&gt;
 &lt;td&gt;Тестирование переходов состояний&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Конфигурация/совместимость&lt;/td&gt;
 &lt;td&gt;Попарное тестирование&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Расчёты, формулы&lt;/td&gt;
 &lt;td&gt;Доменный анализ + BVA&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;API с множеством параметров&lt;/td&gt;
 &lt;td&gt;Комбинаторное тестирование&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Критические алгоритмы&lt;/td&gt;
 &lt;td&gt;MC/DC + покрытие путей&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Сложные пользовательские сценарии&lt;/td&gt;
 &lt;td&gt;Use case testing + state transitions&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="шаг-2-какая-информация-доступна"&gt;Шаг 2: Какая информация доступна? &lt;a href="#%d1%88%d0%b0%d0%b3-2-%d0%ba%d0%b0%d0%ba%d0%b0%d1%8f-%d0%b8%d0%bd%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%86%d0%b8%d1%8f-%d0%b4%d0%be%d1%81%d1%82%d1%83%d0%bf%d0%bd%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Доступная информация&lt;/th&gt;
 &lt;th&gt;Применимые техники&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Только требования/спецификации&lt;/td&gt;
 &lt;td&gt;Black-box: EP, BVA, таблицы решений, переходы состояний&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Доступен исходный код&lt;/td&gt;
 &lt;td&gt;White-box: покрытие операторов/решений, путей, MC/DC&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Без документации&lt;/td&gt;
 &lt;td&gt;На основе опыта: предугадывание ошибок, исследовательское тестирование&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Существует формальная модель&lt;/td&gt;
 &lt;td&gt;Тестирование на основе моделей&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="шаг-3-каков-уровень-риска"&gt;Шаг 3: Каков уровень риска? &lt;a href="#%d1%88%d0%b0%d0%b3-3-%d0%ba%d0%b0%d0%ba%d0%be%d0%b2-%d1%83%d1%80%d0%be%d0%b2%d0%b5%d0%bd%d1%8c-%d1%80%d0%b8%d1%81%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Уровень риска&lt;/th&gt;
 &lt;th&gt;Рекомендуемый подход&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Safety-critical&lt;/td&gt;
 &lt;td&gt;MC/DC + доменный анализ + мутационное тестирование&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Финансовый/регуляторный&lt;/td&gt;
 &lt;td&gt;Таблицы решений + BVA + комбинаторное&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Ключевая бизнес-логика&lt;/td&gt;
 &lt;td&gt;EP + BVA + переходы состояний + покрытие путей&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Стандартные фичи&lt;/td&gt;
 &lt;td&gt;EP + BVA + предугадывание ошибок&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Низкий риск/косметика&lt;/td&gt;
 &lt;td&gt;Предугадывание ошибок + чек-листы&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="сопоставление-техник-по-категориям"&gt;Сопоставление техник по категориям &lt;a href="#%d1%81%d0%be%d0%bf%d0%be%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d1%82%d0%b5%d1%85%d0%bd%d0%b8%d0%ba-%d0%bf%d0%be-%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be%d1%80%d0%b8%d1%8f%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="тестирование-ввода-данных"&gt;Тестирование ввода данных &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2%d0%b2%d0%be%d0%b4%d0%b0-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Начать с EP&lt;/strong&gt; — определить классы&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Применить BVA&lt;/strong&gt; — границы классов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Добавить доменный анализ&lt;/strong&gt; — если входы взаимодействуют&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Использовать предугадывание ошибок&lt;/strong&gt; — типичные ошибки ввода&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="тестирование-бизнес-логики"&gt;Тестирование бизнес-логики &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b1%d0%b8%d0%b7%d0%bd%d0%b5%d1%81-%d0%bb%d0%be%d0%b3%d0%b8%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Начать с таблиц решений&lt;/strong&gt; — все комбинации условий&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Добавить переходы состояний&lt;/strong&gt; — если поведение зависит от предыдущего состояния&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Применить cause-effect graphing&lt;/strong&gt; — при сложных зависимостях&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Использовать комбинаторное&lt;/strong&gt; — при множестве параметров&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="структурное-тестирование-white-box"&gt;Структурное тестирование (White-Box) &lt;a href="#%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-white-box" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Покрытие операторов&lt;/strong&gt; — базовый минимум&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Покрытие решений&lt;/strong&gt; — обе ветви&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MC/DC&lt;/strong&gt; — для safety-critical&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Покрытие путей&lt;/strong&gt; — критические алгоритмы&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Мутационное тестирование&lt;/strong&gt; — валидация эффективности тестов&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="примеры-из-практики"&gt;Примеры из практики &lt;a href="#%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80%d1%8b-%d0%b8%d0%b7-%d0%bf%d1%80%d0%b0%d0%ba%d1%82%d0%b8%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="пример-1-форма-входа"&gt;Пример 1: Форма входа &lt;a href="#%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80-1-%d1%84%d0%be%d1%80%d0%bc%d0%b0-%d0%b2%d1%85%d0%be%d0%b4%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Поле логина: &lt;strong&gt;EP&lt;/strong&gt; + &lt;strong&gt;BVA&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Поле пароля: &lt;strong&gt;EP&lt;/strong&gt; + &lt;strong&gt;BVA&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Кнопка входа: &lt;strong&gt;Переходы состояний&lt;/strong&gt; (блокировка после 3 неудач)&lt;/li&gt;
&lt;li&gt;Общее: &lt;strong&gt;Предугадывание ошибок&lt;/strong&gt; (SQL injection, XSS, пустые поля)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="пример-2-калькулятор-страховки"&gt;Пример 2: Калькулятор страховки &lt;a href="#%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80-2-%d0%ba%d0%b0%d0%bb%d1%8c%d0%ba%d1%83%d0%bb%d1%8f%d1%82%d0%be%d1%80-%d1%81%d1%82%d1%80%d0%b0%d1%85%d0%be%d0%b2%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Расчёт премии: &lt;strong&gt;Таблицы решений&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Диапазоны ввода: &lt;strong&gt;BVA&lt;/strong&gt; + &lt;strong&gt;Доменный анализ&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Комбинации скидок: &lt;strong&gt;Попарное тестирование&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="пример-3-оформление-заказа"&gt;Пример 3: Оформление заказа &lt;a href="#%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80-3-%d0%be%d1%84%d0%be%d1%80%d0%bc%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b7%d0%b0%d0%ba%d0%b0%d0%b7%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Состояния корзины: &lt;strong&gt;Переходы состояний&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Способы оплаты: &lt;strong&gt;Попарное тестирование&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Правила доставки: &lt;strong&gt;Таблицы решений&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;End-to-end поток: &lt;strong&gt;Use case testing&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="упражнение-выбор-техник"&gt;Упражнение: Выбор техник &lt;a href="#%d1%83%d0%bf%d1%80%d0%b0%d0%b6%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2%d1%8b%d0%b1%d0%be%d1%80-%d1%82%d0%b5%d1%85%d0%bd%d0%b8%d0%ba" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="задача-1"&gt;Задача 1 &lt;a href="#%d0%b7%d0%b0%d0%b4%d0%b0%d1%87%d0%b0-1" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Для каждой фичи выберите основную и дополнительную техники:&lt;/p&gt;</description></item><item><title>Доменный анализ</title><link>https://yrkan.com/ru/course/module-03-test-design/domain-analysis/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/domain-analysis/</guid><description>&lt;h2 id="за-пределами-одномерных-границ"&gt;За пределами одномерных границ &lt;a href="#%d0%b7%d0%b0-%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d0%b0%d0%bc%d0%b8-%d0%be%d0%b4%d0%bd%d0%be%d0%bc%d0%b5%d1%80%d0%bd%d1%8b%d1%85-%d0%b3%d1%80%d0%b0%d0%bd%d0%b8%d1%86" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Анализ граничных значений (Урок 3.2) тестирует одну переменную за раз. Но реальное ПО имеет входные пространства, определяемые отношениями между несколькими переменными. Рассмотрим систему одобрения кредитов:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Одобрено, если: &lt;code&gt;income &amp;gt;= 30000 AND debt_ratio &amp;lt; 0.4 AND credit_score &amp;gt;= 650&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Это создаёт трёхмерный входной домен. Граница — не точка, а поверхность в 3D-пространстве. Тестирование каждой переменной независимо (как делает BVA) пропускает дефекты на пересечении границ.&lt;/p&gt;
&lt;p&gt;Доменный анализ, формализованный Бейзером и позднее Биндером, расширяет BVA для систематической работы с многомерными входными пространствами.&lt;/p&gt;</description></item><item><title>Комбинирование нескольких техник</title><link>https://yrkan.com/ru/course/module-03-test-design/combining-multiple-techniques/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/combining-multiple-techniques/</guid><description>&lt;h2 id="зачем-комбинировать-техники"&gt;Зачем комбинировать техники? &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%ba%d0%be%d0%bc%d0%b1%d0%b8%d0%bd%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c-%d1%82%d0%b5%d1%85%d0%bd%d0%b8%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;У каждой техники есть слепые зоны. EP пропускает граничные дефекты. BVA пропускает зависимые от состояния баги. State transition testing пропускает ошибки расчётов. Ни одна техника не обеспечивает полного покрытия.&lt;/p&gt;
&lt;p&gt;При стратегическом комбинировании сильные стороны одной техники компенсируют слабости другой.&lt;/p&gt;
&lt;h2 id="трёхслойная-модель"&gt;Трёхслойная модель &lt;a href="#%d1%82%d1%80%d1%91%d1%85%d1%81%d0%bb%d0%be%d0%b9%d0%bd%d0%b0%d1%8f-%d0%bc%d0%be%d0%b4%d0%b5%d0%bb%d1%8c" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="слой-1-на-основе-спецификации-black-box"&gt;Слой 1: На основе спецификации (Black-Box) &lt;a href="#%d1%81%d0%bb%d0%be%d0%b9-1-%d0%bd%d0%b0-%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%b5-%d1%81%d0%bf%d0%b5%d1%86%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d0%b8-black-box" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Формируют основу. Проверяют соответствие системы требованиям.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;EP, BVA, таблицы решений, переходы состояний&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="слой-2-на-основе-структуры-white-box"&gt;Слой 2: На основе структуры (White-Box) &lt;a href="#%d1%81%d0%bb%d0%be%d0%b9-2-%d0%bd%d0%b0-%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%b5-%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d1%8b-white-box" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Заполняют пробелы Слоя 1, анализируя непокрытые пути кода.&lt;/p&gt;</description></item><item><title>Метод дерева классификации</title><link>https://yrkan.com/ru/course/module-03-test-design/classification-tree-method/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/classification-tree-method/</guid><description>&lt;h2 id="что-такое-метод-дерева-классификации"&gt;Что такое метод дерева классификации? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%bc%d0%b5%d1%82%d0%be%d0%b4-%d0%b4%d0%b5%d1%80%d0%b5%d0%b2%d0%b0-%d0%ba%d0%bb%d0%b0%d1%81%d1%81%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Метод дерева классификации (Classification Tree Method, CTM) — визуальная техника тест-дизайна, предоставляющая структурированный способ декомпозиции входного домена объекта тестирования в &lt;strong&gt;дерево классификаций и классов&lt;/strong&gt;, а затем генерацию тест-кейсов путём выбора комбинаций из дерева.&lt;/p&gt;
&lt;h3 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Объект тестирования:&lt;/strong&gt; Корневой узел — система, функция или фича, которую тестируют&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Классификация:&lt;/strong&gt; Релевантный для тестирования аспект или измерение (категория параметра)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Класс:&lt;/strong&gt; Конкретное значение или раздел внутри классификации&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Таблица комбинаций:&lt;/strong&gt; Матрица под деревом, показывающая какие классы комбинируются в тест-кейсы&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="структура-дерева-классификации"&gt;Структура дерева классификации &lt;a href="#%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%b0-%d0%b4%d0%b5%d1%80%d0%b5%d0%b2%d0%b0-%d0%ba%d0%bb%d0%b0%d1%81%d1%81%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph TD
 A[Объект теста: Онлайн-оплата] --&gt; B[Способ оплаты]
 A --&gt; C[Сумма]
 A --&gt; D[Валюта]
 B --&gt; B1[Кредитная карта]
 B --&gt; B2[PayPal]
 B --&gt; B3[Банковский перевод]
 C --&gt; C1["Малая (&lt;$50)"]
 C --&gt; C2["Средняя ($50-$500)"]
 C --&gt; C3["Большая (&gt;$500)"]
 D --&gt; D1[USD]
 D --&gt; D2[EUR]
 D --&gt; D3[GBP]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;p&gt;Дерево разбивает «Онлайн-оплату» на три классификации (Способ оплаты, Сумма, Валюта), каждая со своими классами.&lt;/p&gt;</description></item><item><title>Мутационное тестирование</title><link>https://yrkan.com/ru/course/module-03-test-design/mutation-testing/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/mutation-testing/</guid><description>&lt;h2 id="тестирование-ваших-тестов"&gt;Тестирование ваших тестов &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2%d0%b0%d1%88%d0%b8%d1%85-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Метрики покрытия кода показывают, какой код выполняют ваши тесты, но не показывают, обнаружат ли тесты реальные баги в этом коде. Тест, который выполняет строку, но не проверяет результат, достигает покрытия без реальной пользы.&lt;/p&gt;
&lt;p&gt;Мутационное тестирование переворачивает перспективу: вместо измерения того, сколько кода покрывают тесты, оно измеряет, насколько хорошо тесты обнаруживают дефекты. Для этого оно намеренно вносит баги (мутации) в исходный код и проверяет, ловит ли их тестовый набор.&lt;/p&gt;</description></item><item><title>Оценка по модулю 3</title><link>https://yrkan.com/ru/course/module-03-test-design/module-3-assessment/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/module-3-assessment/</guid><description>&lt;h2 id="обзор-оценки-модуля-3"&gt;Обзор оценки Модуля 3 &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b8-%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d1%8f-3" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Поздравляем с достижением последнего урока Модуля 3. Эта комплексная оценка проверяет понимание всех техник тест-дизайна, изученных в 25 уроках модуля.&lt;/p&gt;
&lt;p&gt;Оценка состоит из трёх частей:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Вопросы на знание&lt;/strong&gt; — 10 вопросов квиза в frontmatter&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Сценарные вопросы&lt;/strong&gt; — применение техник к реальным ситуациям&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Практическое упражнение&lt;/strong&gt; — проектирование полного тестового набора&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="шкала-оценок"&gt;Шкала оценок &lt;a href="#%d1%88%d0%ba%d0%b0%d0%bb%d0%b0-%d0%be%d1%86%d0%b5%d0%bd%d0%be%d0%ba" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Часть 1 (Квиз):&lt;/strong&gt; 10 вопросов, 3 балла каждый = 30 баллов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Часть 2 (Сценарии):&lt;/strong&gt; 5 сценариев, 6 баллов каждый = 30 баллов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Часть 3 (Упражнение):&lt;/strong&gt; 40 баллов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Итого:&lt;/strong&gt; 100 баллов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Проходной балл:&lt;/strong&gt; 70&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="темы"&gt;Темы &lt;a href="#%d1%82%d0%b5%d0%bc%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Область&lt;/th&gt;
 &lt;th&gt;Уроки&lt;/th&gt;
 &lt;th&gt;Ключевые концепции&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;На основе спецификации&lt;/td&gt;
 &lt;td&gt;3.1-3.9&lt;/td&gt;
 &lt;td&gt;EP, BVA, таблицы решений, переходы состояний, попарное&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;На основе опыта&lt;/td&gt;
 &lt;td&gt;3.10-3.12&lt;/td&gt;
 &lt;td&gt;Ортогональные массивы, предугадывание ошибок, чек-листы&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;На основе структуры&lt;/td&gt;
 &lt;td&gt;3.13-3.18&lt;/td&gt;
 &lt;td&gt;Coverage, MC/DC, пути, мутации, потоки данных и управления&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Продвинутые&lt;/td&gt;
 &lt;td&gt;3.19-3.21&lt;/td&gt;
 &lt;td&gt;Доменный анализ, комбинаторные стратегии, MBT&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Стратегия&lt;/td&gt;
 &lt;td&gt;3.22-3.24&lt;/td&gt;
 &lt;td&gt;Выбор, комбинирование, практическое применение&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="часть-2-сценарные-вопросы"&gt;Часть 2: Сценарные вопросы &lt;a href="#%d1%87%d0%b0%d1%81%d1%82%d1%8c-2-%d1%81%d1%86%d0%b5%d0%bd%d0%b0%d1%80%d0%bd%d1%8b%d0%b5-%d0%b2%d0%be%d0%bf%d1%80%d0%be%d1%81%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Сценарий 1:&lt;/strong&gt; Банковское приложение рассчитывает проценты по типу счёта (обычный, премиум, VIP), шкале баланса ($0-10K, $10K-50K, $50K+) и возрасту счёта (&amp;lt;1 года, 1-5, &amp;gt;5). Какие техники?&lt;/p&gt;</description></item><item><title>Покрытие операторов и решений</title><link>https://yrkan.com/ru/course/module-03-test-design/statement-decision-coverage/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/statement-decision-coverage/</guid><description>&lt;h2 id="что-такое-покрытие-операторов-и-решений"&gt;Что такое покрытие операторов и решений? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d0%b5-%d0%be%d0%bf%d0%b5%d1%80%d0%b0%d1%82%d0%be%d1%80%d0%be%d0%b2-%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Покрытие операторов и решений — техники тест-дизайна &lt;strong&gt;белого ящика&lt;/strong&gt; (структурные), измеряющие, насколько тщательно тест-кейсы выполняют исходный код. В отличие от техник чёрного ящика, фокусирующихся на требованиях, эти техники фокусируются на &lt;strong&gt;структуре кода&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="почему-важно-покрытие-кода"&gt;Почему важно покрытие кода &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be-%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d0%b5-%d0%ba%d0%be%d0%b4%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Код, который никогда не выполняется при тестировании — код, который никогда не проверен. Метрики покрытия говорят:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Какие строки кода ваши тесты реально выполняют&lt;/li&gt;
&lt;li&gt;Какие ветви точек решений остаются непротестированными&lt;/li&gt;
&lt;li&gt;Где добавить тесты для лучшего структурного покрытия&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="покрытие-операторов-statement-coverage"&gt;Покрытие операторов (Statement Coverage) &lt;a href="#%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d0%b5-%d0%be%d0%bf%d0%b5%d1%80%d0%b0%d1%82%d0%be%d1%80%d0%be%d0%b2-statement-coverage" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Определение:&lt;/strong&gt; Процент исполняемых операторов, выполненных тестовым набором.&lt;/p&gt;</description></item><item><title>Покрытие путей</title><link>https://yrkan.com/ru/course/module-03-test-design/path-coverage/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/path-coverage/</guid><description>&lt;h2 id="что-такое-покрытие-путей"&gt;Что такое покрытие путей? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d0%b5-%d0%bf%d1%83%d1%82%d0%b5%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Покрытие путей требует, чтобы каждый уникальный путь выполнения через программу или функцию был выполнен хотя бы раз. Путь — это полная последовательность операторов от входа до выхода.&lt;/p&gt;
&lt;p&gt;Рассмотрим функцию с двумя последовательными операторами &lt;code&gt;if&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;def&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;process_order&lt;/span&gt;(amount, is_member):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; discount &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; amount &lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;100&lt;/span&gt;: &lt;span style="color:#75715e"&gt;# Решение 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; discount &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; is_member: &lt;span style="color:#75715e"&gt;# Решение 2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; discount &lt;span style="color:#f92672"&gt;+=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; amount &lt;span style="color:#f92672"&gt;-&lt;/span&gt; discount
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Покрытие операторов&lt;/strong&gt; требует тестов, выполняющих каждую строку — 2 теста могут быть достаточны.&lt;/p&gt;</description></item><item><title>Покрытие условий и MC/DC</title><link>https://yrkan.com/ru/course/module-03-test-design/condition-mcdc-coverage/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/condition-mcdc-coverage/</guid><description>&lt;h2 id="за-пределами-покрытия-решений"&gt;За пределами покрытия решений &lt;a href="#%d0%b7%d0%b0-%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d0%b0%d0%bc%d0%b8-%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d1%8f-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;В предыдущем уроке вы узнали о покрытии операторов и решений. Покрытие решений гарантирует выполнение каждой ветви, но не показывает, действительно ли тестируются отдельные условия внутри составного решения. Рассмотрим код:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; sensor_active &lt;span style="color:#f92672"&gt;and&lt;/span&gt; temperature &lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; threshold &lt;span style="color:#f92672"&gt;and&lt;/span&gt; &lt;span style="color:#f92672"&gt;not&lt;/span&gt; emergency_override:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; activate_cooling_system()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Покрытие решений требует только два тест-кейса — один, где всё выражение &lt;code&gt;True&lt;/code&gt;, и один, где &lt;code&gt;False&lt;/code&gt;. Но какое условие вызвало результат &lt;code&gt;False&lt;/code&gt;? Покрытие решений этим не интересуется. Для системы охлаждения на атомной станции это различие критично.&lt;/p&gt;</description></item><item><title>Попарное тестирование с PICT</title><link>https://yrkan.com/ru/course/module-03-test-design/pairwise-testing-pict/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/pairwise-testing-pict/</guid><description>&lt;h2 id="что-такое-попарное-тестирование"&gt;Что такое попарное тестирование? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%bf%d0%be%d0%bf%d0%b0%d1%80%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Попарное тестирование (pairwise testing, также all-pairs testing) — техника комбинаторного тест-дизайна, основанная на ключевом наблюдении: &lt;strong&gt;большинство дефектов вызвано взаимодействием двух параметров&lt;/strong&gt;, а не трёх или более одновременно.&lt;/p&gt;
&lt;p&gt;Вместо тестирования каждой возможной комбинации (число которых растёт экспоненциально), попарное тестирование гарантирует, что каждая пара значений параметров встретится хотя бы в одном тест-кейсе.&lt;/p&gt;
&lt;h3 id="проблема-комбинаторного-взрыва"&gt;Проблема комбинаторного взрыва &lt;a href="#%d0%bf%d1%80%d0%be%d0%b1%d0%bb%d0%b5%d0%bc%d0%b0-%d0%ba%d0%be%d0%bc%d0%b1%d0%b8%d0%bd%d0%b0%d1%82%d0%be%d1%80%d0%bd%d0%be%d0%b3%d0%be-%d0%b2%d0%b7%d1%80%d1%8b%d0%b2%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Рассмотрим тестирование веб-приложения на:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ОС:&lt;/strong&gt; Windows, macOS, Linux (3)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Браузер:&lt;/strong&gt; Chrome, Firefox, Safari, Edge (4)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Язык:&lt;/strong&gt; EN, ES, RU (3)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Экран:&lt;/strong&gt; Desktop, Tablet, Mobile (3)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Исчерпывающее тестирование: 3 x 4 x 3 x 3 = &lt;strong&gt;108 комбинаций&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Практикум по проектированию тестов</title><link>https://yrkan.com/ru/course/module-03-test-design/real-world-test-design-workshop/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/real-world-test-design-workshop/</guid><description>&lt;h2 id="введение-в-практикум"&gt;Введение в практикум &lt;a href="#%d0%b2%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-%d0%bf%d1%80%d0%b0%d0%ba%d1%82%d0%b8%d0%ba%d1%83%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Этот урок — практический воркшоп. Вы примените всё изученное в Модуле 3 для проектирования тестовых наборов реалистичных фич. Каждое упражнение моделирует реальный сценарий:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Анализ требований фичи&lt;/li&gt;
&lt;li&gt;Выбор подходящих техник&lt;/li&gt;
&lt;li&gt;Систематический вывод тест-кейсов&lt;/li&gt;
&lt;li&gt;Документирование обоснования и покрытия&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="упражнение-1-движок-ценообразования-такси"&gt;Упражнение 1: Движок ценообразования такси &lt;a href="#%d1%83%d0%bf%d1%80%d0%b0%d0%b6%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-1-%d0%b4%d0%b2%d0%b8%d0%b6%d0%be%d0%ba-%d1%86%d0%b5%d0%bd%d0%be%d0%be%d0%b1%d1%80%d0%b0%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d1%82%d0%b0%d0%ba%d1%81%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Описание:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Приложение для вызова такси рассчитывает тарифы:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Базовый тариф:&lt;/strong&gt; $2.50
&lt;strong&gt;За милю:&lt;/strong&gt; $1.75 (стандарт), $2.50 (премиум), $3.25 (люкс)
&lt;strong&gt;За минуту:&lt;/strong&gt; $0.35 (стандарт), $0.50 (премиум), $0.65 (люкс)
&lt;strong&gt;Минимальный тариф:&lt;/strong&gt; $7.00 (стандарт), $12.00 (премиум), $18.00 (люкс)&lt;/p&gt;</description></item><item><title>Предугадывание ошибок</title><link>https://yrkan.com/ru/course/module-03-test-design/error-guessing/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/error-guessing/</guid><description>&lt;h2 id="что-такое-предугадывание-ошибок"&gt;Что такое предугадывание ошибок? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%bf%d1%80%d0%b5%d0%b4%d1%83%d0%b3%d0%b0%d0%b4%d1%8b%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%be%d1%88%d0%b8%d0%b1%d0%be%d0%ba" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Предугадывание ошибок (Error Guessing) — техника тест-дизайна на основе опыта, при которой тестировщики используют знание &lt;strong&gt;типичных ошибок, характерных дефектов и прошлых отказов&lt;/strong&gt; для предвидения того, где программа с наибольшей вероятностью сломается.&lt;/p&gt;
&lt;h3 id="почему-предугадывание-работает"&gt;Почему предугадывание работает &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%bf%d1%80%d0%b5%d0%b4%d1%83%d0%b3%d0%b0%d0%b4%d1%8b%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d0%b5%d1%82" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Опытные тестировщики развивают интуицию о местах концентрации дефектов. Это приходит из:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Лет нахождения похожих багов в разных проектах&lt;/li&gt;
&lt;li&gt;Знания типичных ошибок программирования&lt;/li&gt;
&lt;li&gt;Понимания поведения пользователей, ломающего софт&lt;/li&gt;
&lt;li&gt;Осведомлённости о точках интеграции, которые часто отказывают&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="подход-с-таксономией-дефектов"&gt;Подход с таксономией дефектов &lt;a href="#%d0%bf%d0%be%d0%b4%d1%85%d0%be%d0%b4-%d1%81-%d1%82%d0%b0%d0%ba%d1%81%d0%be%d0%bd%d0%be%d0%bc%d0%b8%d0%b5%d0%b9-%d0%b4%d0%b5%d1%84%d0%b5%d0%ba%d1%82%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Чтобы сделать предугадывание систематическим, создайте &lt;strong&gt;таксономию дефектов&lt;/strong&gt;:&lt;/p&gt;</description></item><item><title>Причинно-следственные графы</title><link>https://yrkan.com/ru/course/module-03-test-design/cause-effect-graphing/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/cause-effect-graphing/</guid><description>&lt;h2 id="что-такое-причинно-следственные-графы"&gt;Что такое причинно-следственные графы? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%bf%d1%80%d0%b8%d1%87%d0%b8%d0%bd%d0%bd%d0%be-%d1%81%d0%bb%d0%b5%d0%b4%d1%81%d1%82%d0%b2%d0%b5%d0%bd%d0%bd%d1%8b%d0%b5-%d0%b3%d1%80%d0%b0%d1%84%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Причинно-следственные графы (Cause-Effect Graphing) — это систематическая техника, которая переводит спецификации на естественном языке в &lt;strong&gt;граф булевой логики&lt;/strong&gt;, который затем преобразуется в таблицу решений. Она связывает неоднозначные требования с точными тест-кейсами.&lt;/p&gt;
&lt;h3 id="зачем-использовать-причинно-следственные-графы"&gt;Зачем использовать причинно-следственные графы? &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d1%8c-%d0%bf%d1%80%d0%b8%d1%87%d0%b8%d0%bd%d0%bd%d0%be-%d1%81%d0%bb%d0%b5%d0%b4%d1%81%d1%82%d0%b2%d0%b5%d0%bd%d0%bd%d1%8b%d0%b5-%d0%b3%d1%80%d0%b0%d1%84%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Таблицы решений мощны, но имеют слабость: при большом числе условий получается 2^N правил, большинство из которых могут быть невозможными или избыточными. Причинно-следственные графы решают эту проблему, моделируя &lt;strong&gt;логические связи&lt;/strong&gt; и &lt;strong&gt;ограничения&lt;/strong&gt; между входами, генерируя только осмысленные комбинации.&lt;/p&gt;</description></item><item><title>Стратегии комбинаторного тестирования</title><link>https://yrkan.com/ru/course/module-03-test-design/combinatorial-testing-strategies/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/combinatorial-testing-strategies/</guid><description>&lt;h2 id="комбинаторный-взрыв"&gt;Комбинаторный взрыв &lt;a href="#%d0%ba%d0%be%d0%bc%d0%b1%d0%b8%d0%bd%d0%b0%d1%82%d0%be%d1%80%d0%bd%d1%8b%d0%b9-%d0%b2%d0%b7%d1%80%d1%8b%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Когда система имеет несколько параметров, каждый с несколькими значениями, общее число комбинаций растёт экспоненциально. Веб-форма с 5 полями по 4 значения каждое даёт 4^5 = 1 024 комбинации.&lt;/p&gt;
&lt;p&gt;Тестирование всех комбинаций редко осуществимо. Но тестирование слишком малого числа рискует пропустить дефекты взаимодействия. Стратегии комбинаторного тестирования обеспечивают систематические подходы, балансирующие тщательность и практичность.&lt;/p&gt;
&lt;h2 id="спектр-стратегий-покрытия"&gt;Спектр стратегий покрытия &lt;a href="#%d1%81%d0%bf%d0%b5%d0%ba%d1%82%d1%80-%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d0%b9-%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-покрытие-each-choice"&gt;1. Покрытие Each-Choice &lt;a href="#1-%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d0%b5-each-choice" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Каждое значение каждого параметра появляется хотя бы в одном тест-кейсе. Минимум тестов, но не тестирует взаимодействия.&lt;/p&gt;</description></item><item><title>Тестирование на основе моделей</title><link>https://yrkan.com/ru/course/module-03-test-design/model-based-testing/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/model-based-testing/</guid><description>&lt;h2 id="что-такое-тестирование-на-основе-моделей"&gt;Что такое тестирование на основе моделей? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bd%d0%b0-%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%b5-%d0%bc%d0%be%d0%b4%d0%b5%d0%bb%d0%b5%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование на основе моделей (MBT) — подход, при котором вы создаёте формальную модель ожидаемого поведения системы, а затем используете инструменты для автоматической генерации тест-кейсов из этой модели. Вместо ручного написания сотен тестов вы строите одну модель и позволяете алгоритмам выводить тесты.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Рабочий процесс MBT:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Анализ требований&lt;/strong&gt; — понимание поведения системы&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Построение модели&lt;/strong&gt; — представление поведения в формальной модели&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Генерация тестов&lt;/strong&gt; — использование инструментов MBT&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Выполнение тестов&lt;/strong&gt; — запуск на тестируемой системе&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Оценка результатов&lt;/strong&gt; — модель служит оракулом&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Поддержка модели&lt;/strong&gt; — обновление при изменении требований&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="зачем-mbt"&gt;Зачем MBT? &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-mbt" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Проблемы ручного проектирования:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Тестирование ортогональными массивами</title><link>https://yrkan.com/ru/course/module-03-test-design/orthogonal-array-testing/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/orthogonal-array-testing/</guid><description>&lt;h2 id="что-такое-тестирование-ортогональными-массивами"&gt;Что такое тестирование ортогональными массивами? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%be%d1%80%d1%82%d0%be%d0%b3%d0%be%d0%bd%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%bc%d0%b8-%d0%bc%d0%b0%d1%81%d1%81%d0%b8%d0%b2%d0%b0%d0%bc%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование ортогональными массивами (Orthogonal Array Testing, OAT) использует математические структуры — &lt;strong&gt;ортогональные массивы&lt;/strong&gt; — для генерации тестовых наборов. Эти массивы гарантируют, что каждая пара значений параметров появляется одинаковое число раз во всех тест-кейсах, обеспечивая &lt;strong&gt;сбалансированное, равномерное покрытие&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="истоки-метод-тагути"&gt;Истоки: Метод Тагути &lt;a href="#%d0%b8%d1%81%d1%82%d0%be%d0%ba%d0%b8-%d0%bc%d0%b5%d1%82%d0%be%d0%b4-%d1%82%d0%b0%d0%b3%d1%83%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;OAT произошёл из &lt;strong&gt;метода Тагути&lt;/strong&gt; в инженерии качества производства. Доктор Генити Тагути разработал ортогональные массивы для эффективного тестирования влияния множества факторов на качество продукта. Тестирование ПО заимствовало эту технику для комбинаторного тест-дизайна.&lt;/p&gt;</description></item><item><title>Тестирование переходов состояний</title><link>https://yrkan.com/ru/course/module-03-test-design/state-transition-testing/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/state-transition-testing/</guid><description>&lt;h2 id="что-такое-тестирование-переходов-состояний"&gt;Что такое тестирование переходов состояний? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d0%b5%d1%80%d0%b5%d1%85%d0%be%d0%b4%d0%be%d0%b2-%d1%81%d0%be%d1%81%d1%82%d0%be%d1%8f%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование переходов состояний моделирует систему как &lt;strong&gt;конечный автомат&lt;/strong&gt; (finite state machine) — систему, которая может находиться в одном из ограниченного числа состояний и переходить между ними в ответ на события. Эта техника идеальна для тестирования workflow, процессов и любых систем с различными режимами работы.&lt;/p&gt;
&lt;h3 id="ключевые-концепции"&gt;Ключевые концепции &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Состояние:&lt;/strong&gt; Условие, в котором находится система (напр., «Сессия закрыта», «Активно», «Заблокировано»)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Переход:&lt;/strong&gt; Перемещение из одного состояния в другое&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Событие:&lt;/strong&gt; Что-то, вызывающее переход (напр., «ввод правильного пароля»)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Условие-страж (guard):&lt;/strong&gt; Условие, которое должно быть истинным для совершения перехода&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Действие:&lt;/strong&gt; Что-то, происходящее во время перехода (напр., «отправить уведомление»)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="диаграмма-переходов-состояний"&gt;Диаграмма переходов состояний &lt;a href="#%d0%b4%d0%b8%d0%b0%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b0-%d0%bf%d0%b5%d1%80%d0%b5%d1%85%d0%be%d0%b4%d0%be%d0%b2-%d1%81%d0%be%d1%81%d1%82%d0%be%d1%8f%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="state"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;stateDiagram-v2
 [*] --&gt; СессияЗакрыта
 СессияЗакрыта --&gt; СессияОткрыта: Валидные данные
 СессияОткрыта --&gt; СессияЗакрыта: Выход
 СессияОткрыта --&gt; Заблокировано: 30 мин неактивности
 Заблокировано --&gt; СессияОткрыта: Валидные данные
 Заблокировано --&gt; СессияЗакрыта: Выход
 СессияЗакрыта --&gt; СессияЗакрыта: Неверные данные [попытки &lt; 3]
 СессияЗакрыта --&gt; Приостановлено: Неверные данные [попытки = 3]
 Приостановлено --&gt; СессияЗакрыта: Админ разблокирует
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;p&gt;Эта диаграмма показывает систему аутентификации с 4 состояниями и 7 переходами.&lt;/p&gt;</description></item><item><title>Тестирование по сценариям использования</title><link>https://yrkan.com/ru/course/module-03-test-design/use-case-testing/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/use-case-testing/</guid><description>&lt;h2 id="что-такое-тестирование-по-use-case"&gt;Что такое тестирование по use case? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d0%be-use-case" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование по use case выводит тест-кейсы из &lt;strong&gt;документов use case&lt;/strong&gt; — структурированных описаний того, как акторы взаимодействуют с системой для достижения целей. Каждый use case содержит основной сценарий успеха и альтернативные потоки, предоставляя естественные тестовые сценарии.&lt;/p&gt;
&lt;h3 id="анатомия-use-case"&gt;Анатомия use case &lt;a href="#%d0%b0%d0%bd%d0%b0%d1%82%d0%be%d0%bc%d0%b8%d1%8f-use-case" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Элемент&lt;/th&gt;
 &lt;th&gt;Описание&lt;/th&gt;
 &lt;th&gt;Пример&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Название&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Краткий описательный заголовок&lt;/td&gt;
 &lt;td&gt;«Оформить заказ»&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Актор&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Кто инициирует взаимодействие&lt;/td&gt;
 &lt;td&gt;Клиент, Администратор&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Предусловие&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Что должно быть истинным перед началом&lt;/td&gt;
 &lt;td&gt;Пользователь авторизован, корзина не пуста&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Основной поток&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Пошаговый happy path&lt;/td&gt;
 &lt;td&gt;1. Выбрать доставку&amp;hellip; 2. Ввести оплату&amp;hellip;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Альтернативные потоки&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Отклонения от основного потока&lt;/td&gt;
 &lt;td&gt;2a. Оплата отклонена → показать ошибку&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Постусловие&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Что истинно после успеха&lt;/td&gt;
 &lt;td&gt;Заказ создан, email отправлен&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="пример-use-case-оформить-заказ"&gt;Пример: Use Case «Оформить заказ» &lt;a href="#%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80-use-case-%d0%be%d1%84%d0%be%d1%80%d0%bc%d0%b8%d1%82%d1%8c-%d0%b7%d0%b0%d0%ba%d0%b0%d0%b7" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Актор:&lt;/strong&gt; Зарегистрированный клиент
&lt;strong&gt;Предусловие:&lt;/strong&gt; Клиент авторизован, корзина содержит 1+ товаров&lt;/p&gt;</description></item><item><title>Тестирование по чек-листам</title><link>https://yrkan.com/ru/course/module-03-test-design/checklist-based-testing/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/checklist-based-testing/</guid><description>&lt;h2 id="что-такое-тестирование-по-чек-листам"&gt;Что такое тестирование по чек-листам? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d0%be-%d1%87%d0%b5%d0%ba-%d0%bb%d0%b8%d1%81%d1%82%d0%b0%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование по чек-листам использует &lt;strong&gt;списки высокого уровня проверяемых пунктов&lt;/strong&gt; вместо детальных пошаговых тест-кейсов. Каждый пункт напоминает тестировщику &lt;em&gt;что&lt;/em&gt; проверить, не предписывая &lt;em&gt;как&lt;/em&gt;, давая опытным тестировщикам гибкость и гарантируя покрытие важного.&lt;/p&gt;
&lt;h3 id="чек-листы-vs-детальные-тест-кейсы"&gt;Чек-листы vs. Детальные тест-кейсы &lt;a href="#%d1%87%d0%b5%d0%ba-%d0%bb%d0%b8%d1%81%d1%82%d1%8b-vs-%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d1%82%d0%b5%d1%81%d1%82-%d0%ba%d0%b5%d0%b9%d1%81%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Аспект&lt;/th&gt;
 &lt;th&gt;Чек-лист&lt;/th&gt;
 &lt;th&gt;Детальный тест-кейс&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Формат&lt;/td&gt;
 &lt;td&gt;Короткие пункты&lt;/td&gt;
 &lt;td&gt;Пошагово с ожидаемыми результатами&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Время создания&lt;/td&gt;
 &lt;td&gt;Минуты&lt;/td&gt;
 &lt;td&gt;Часы&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Гибкость&lt;/td&gt;
 &lt;td&gt;Высокая — тестировщик решает как тестировать&lt;/td&gt;
 &lt;td&gt;Низкая — точные шаги предписаны&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Воспроизводимость&lt;/td&gt;
 &lt;td&gt;Ниже — зависит от квалификации&lt;/td&gt;
 &lt;td&gt;Выше — любой может следовать&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Поддержка&lt;/td&gt;
 &lt;td&gt;Легко обновлять&lt;/td&gt;
 &lt;td&gt;Затратно поддерживать&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Лучше для&lt;/td&gt;
 &lt;td&gt;Опытных тестировщиков, меняющихся фич&lt;/td&gt;
 &lt;td&gt;Критических потоков, регуляторного compliance&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="когда-использовать-чек-листы"&gt;Когда использовать чек-листы &lt;a href="#%d0%ba%d0%be%d0%b3%d0%b4%d0%b0-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d1%8c-%d1%87%d0%b5%d0%ba-%d0%bb%d0%b8%d1%81%d1%82%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Хороший выбор:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Тестирование пользовательских историй</title><link>https://yrkan.com/ru/course/module-03-test-design/user-story-testing/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/user-story-testing/</guid><description>&lt;h2 id="что-такое-тестирование-пользовательских-историй"&gt;Что такое тестирование пользовательских историй? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d0%b5%d0%bb%d1%8c%d1%81%d0%ba%d0%b8%d1%85-%d0%b8%d1%81%d1%82%d0%be%d1%80%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;В Agile-разработке требования фиксируются как &lt;strong&gt;пользовательские истории&lt;/strong&gt; (user stories) — краткие описания функциональности с точки зрения пользователя. Тестирование user story выводит тест-кейсы из этих историй и их &lt;strong&gt;критериев приёмки&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="формат-пользовательской-истории"&gt;Формат пользовательской истории &lt;a href="#%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%82-%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d0%b5%d0%bb%d1%8c%d1%81%d0%ba%d0%be%d0%b9-%d0%b8%d1%81%d1%82%d0%be%d1%80%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Как [роль],
Я хочу [действие],
Чтобы [выгода].
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Пример:&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Как зарегистрированный клиент,
Я хочу фильтровать товары по ценовому диапазону,
Чтобы быстро находить товары в рамках моего бюджета.
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="3c-пользовательских-историй"&gt;3C пользовательских историй &lt;a href="#3c-%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d0%b5%d0%bb%d1%8c%d1%81%d0%ba%d0%b8%d1%85-%d0%b8%d1%81%d1%82%d0%be%d1%80%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;C&lt;/th&gt;
 &lt;th&gt;Значение&lt;/th&gt;
 &lt;th&gt;Влияние на тестирование&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Card&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Написанная история&lt;/td&gt;
 &lt;td&gt;Определяет область тестирования&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Conversation&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Обсуждение со стейкхолдерами&lt;/td&gt;
 &lt;td&gt;Выявляет скрытые требования и граничные случаи&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Confirmation&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Критерии приёмки&lt;/td&gt;
 &lt;td&gt;Прямой источник тест-кейсов&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="критерии-приёмки-в-формате-givenwhenthen"&gt;Критерии приёмки в формате Given/When/Then &lt;a href="#%d0%ba%d1%80%d0%b8%d1%82%d0%b5%d1%80%d0%b8%d0%b8-%d0%bf%d1%80%d0%b8%d1%91%d0%bc%d0%ba%d0%b8-%d0%b2-%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%82%d0%b5-givenwhenthen" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gherkin" data-lang="gherkin"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;Given &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я на странице списка товаров
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;And &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;есть товары с ценами от $&lt;/span&gt;&lt;span style="color:#e6db74"&gt;5&lt;/span&gt;&lt;span style="color:#a6e22e"&gt; до $&lt;/span&gt;&lt;span style="color:#e6db74"&gt;500&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;When &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я устанавливаю фильтр цены $&lt;/span&gt;&lt;span style="color:#e6db74"&gt;20&lt;/span&gt;&lt;span style="color:#a6e22e"&gt; - $&lt;/span&gt;&lt;span style="color:#e6db74"&gt;100&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;Then &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;я должен видеть только товары с ценой от $&lt;/span&gt;&lt;span style="color:#e6db74"&gt;20&lt;/span&gt;&lt;span style="color:#a6e22e"&gt; до $&lt;/span&gt;&lt;span style="color:#e6db74"&gt;100&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;And &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;количество товаров должно обновиться
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt; &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;And &lt;/span&gt;&lt;span style="color:#a6e22e"&gt;URL должен включать параметры фильтра
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Given&lt;/strong&gt; = Предусловие (подготовка теста)
&lt;strong&gt;When&lt;/strong&gt; = Действие (шаг теста)
&lt;strong&gt;Then&lt;/strong&gt; = Ожидаемый результат (проверка теста)&lt;/p&gt;</description></item><item><title>Тестирование потока управления</title><link>https://yrkan.com/ru/course/module-03-test-design/control-flow-testing/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/control-flow-testing/</guid><description>&lt;h2 id="от-кода-к-графам"&gt;От кода к графам &lt;a href="#%d0%be%d1%82-%d0%ba%d0%be%d0%b4%d0%b0-%d0%ba-%d0%b3%d1%80%d0%b0%d1%84%d0%b0%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование потока управления использует структуру кода — ветвления, циклы и последовательности — как основу для проектирования тестов. Главный инструмент — &lt;strong&gt;граф потока управления&lt;/strong&gt; (CFG), который визуально представляет все возможные пути выполнения.&lt;/p&gt;
&lt;p&gt;В отличие от техник чёрного ящика, игнорирующих реализацию, тестирование потока управления — техника белого ящика, требующая доступа к исходному коду.&lt;/p&gt;
&lt;h2 id="построение-графа-потока-управления"&gt;Построение графа потока управления &lt;a href="#%d0%bf%d0%be%d1%81%d1%82%d1%80%d0%be%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b3%d1%80%d0%b0%d1%84%d0%b0-%d0%bf%d0%be%d1%82%d0%be%d0%ba%d0%b0-%d1%83%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="базовые-элементы"&gt;Базовые элементы &lt;a href="#%d0%b1%d0%b0%d0%b7%d0%be%d0%b2%d1%8b%d0%b5-%d1%8d%d0%bb%d0%b5%d0%bc%d0%b5%d0%bd%d1%82%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Каждый CFG состоит из:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Начальный узел:&lt;/strong&gt; Точка входа функции&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Конечный узел:&lt;/strong&gt; Точка(и) выхода&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Узлы обработки:&lt;/strong&gt; Последовательные операторы&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Узлы решений:&lt;/strong&gt; Точки ветвления — if, switch, тернарный оператор&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Узлы соединения:&lt;/strong&gt; Где ветви сливаются&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Рёбра:&lt;/strong&gt; Направленные стрелки, показывающие поток&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="последовательные-операторы"&gt;Последовательные операторы &lt;a href="#%d0%bf%d0%be%d1%81%d0%bb%d0%b5%d0%b4%d0%be%d0%b2%d0%b0%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d0%be%d0%bf%d0%b5%d1%80%d0%b0%d1%82%d0%be%d1%80%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;a &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;b &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;c &lt;span style="color:#f92672"&gt;=&lt;/span&gt; a &lt;span style="color:#f92672"&gt;+&lt;/span&gt; b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Это один узел — ветвления нет.&lt;/p&gt;</description></item><item><title>Тестирование потоков данных</title><link>https://yrkan.com/ru/course/module-03-test-design/data-flow-testing/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/data-flow-testing/</guid><description>&lt;h2 id="что-такое-тестирование-потоков-данных"&gt;Что такое тестирование потоков данных? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d0%be%d1%82%d0%be%d0%ba%d0%be%d0%b2-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование потоков данных фокусируется на жизненном цикле переменных: где они определяются (получают значение), где используются (читаются) и где уничтожаются (выходят из области видимости или переопределяются). Отслеживая эти события вдоль путей выполнения, тестирование потоков данных выявляет дефекты, которые другие техники пропускают.&lt;/p&gt;
&lt;p&gt;Если тестирование потока управления спрашивает «какие пути проходит код?», то тестирование потоков данных спрашивает «что происходит с данными вдоль этих путей?»&lt;/p&gt;
&lt;h2 id="состояния-переменных-define-use-kill"&gt;Состояния переменных: Define, Use, Kill &lt;a href="#%d1%81%d0%be%d1%81%d1%82%d0%be%d1%8f%d0%bd%d0%b8%d1%8f-%d0%bf%d0%b5%d1%80%d0%b5%d0%bc%d0%b5%d0%bd%d0%bd%d1%8b%d1%85-define-use-kill" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Define (d):&lt;/strong&gt; Переменная получает значение.&lt;/p&gt;</description></item><item><title>Тестирование таблицами решений</title><link>https://yrkan.com/ru/course/module-03-test-design/decision-table-testing/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/decision-table-testing/</guid><description>&lt;h2 id="что-такое-тестирование-таблицами-решений"&gt;Что такое тестирование таблицами решений? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%82%d0%b0%d0%b1%d0%bb%d0%b8%d1%86%d0%b0%d0%bc%d0%b8-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование таблицами решений (Decision Table Testing) — техника чёрного ящика для проверки систем, где результат зависит от &lt;strong&gt;комбинаций условий&lt;/strong&gt;. Когда бизнес-правила включают несколько входных данных, взаимодействующих для определения результата, таблица решений гарантирует тестирование каждой значимой комбинации.&lt;/p&gt;
&lt;h3 id="когда-использовать-таблицы-решений"&gt;Когда использовать таблицы решений &lt;a href="#%d0%ba%d0%be%d0%b3%d0%b4%d0%b0-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d1%8c-%d1%82%d0%b0%d0%b1%d0%bb%d0%b8%d1%86%d1%8b-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Используйте эту технику когда:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Несколько условий комбинируются для определения результата&lt;/li&gt;
&lt;li&gt;Бизнес-правила содержат сложную логику if/then/else&lt;/li&gt;
&lt;li&gt;Спецификация говорит «если A и B, то X; если A и не B, то Y»&lt;/li&gt;
&lt;li&gt;Необходимо убедиться, что каждая комбинация обрабатывается правильно&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="анатомия-таблицы-решений"&gt;Анатомия таблицы решений &lt;a href="#%d0%b0%d0%bd%d0%b0%d1%82%d0%be%d0%bc%d0%b8%d1%8f-%d1%82%d0%b0%d0%b1%d0%bb%d0%b8%d1%86%d1%8b-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Таблица решений имеет четыре квадранта:&lt;/p&gt;</description></item><item><title>Эквивалентное разбиение</title><link>https://yrkan.com/ru/course/module-03-test-design/equivalence-partitioning/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-03-test-design/equivalence-partitioning/</guid><description>&lt;h2 id="что-такое-эквивалентное-разбиение"&gt;Что такое эквивалентное разбиение? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%8d%d0%ba%d0%b2%d0%b8%d0%b2%d0%b0%d0%bb%d0%b5%d0%bd%d1%82%d0%bd%d0%be%d0%b5-%d1%80%d0%b0%d0%b7%d0%b1%d0%b8%d0%b5%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Эквивалентное разбиение (Equivalence Partitioning, EP) — одна из самых фундаментальных техник тест-дизайна чёрного ящика. Основная идея проста, но мощна: вместо тестирования каждого возможного входного значения вы делите область входных данных на &lt;strong&gt;классы эквивалентности&lt;/strong&gt; — группы значений, которые система должна обрабатывать одинаково.&lt;/p&gt;
&lt;p&gt;Если система корректно обрабатывает одно значение из класса, она должна корректно обрабатывать все значения в этом классе. Это допущение позволяет сократить тысячи потенциальных тест-кейсов до управляемого количества.&lt;/p&gt;</description></item><item><title>Ad Hoc и Monkey-тестирование</title><link>https://yrkan.com/ru/course/module-02-levels-types/ad-hoc-monkey-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/ad-hoc-monkey-testing/</guid><description>&lt;h2 id="что-такое-ad-hoc-тестирование"&gt;Что такое Ad Hoc тестирование? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-ad-hoc-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Ad hoc тестирование — незапланированное, неформальное тестирование, движимое интуицией, опытом и знанием приложения. Нет заранее написанных тест-кейсов, формальной документации и структурированного подхода.&lt;/p&gt;
&lt;p&gt;Термин «ad hoc» буквально означает «для этого случая» — тесты придумываются на месте для текущей ситуации.&lt;/p&gt;
&lt;h3 id="когда-ad-hoc-тестирование-приносит-пользу"&gt;Когда Ad Hoc тестирование приносит пользу &lt;a href="#%d0%ba%d0%be%d0%b3%d0%b4%d0%b0-ad-hoc-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d1%80%d0%b8%d0%bd%d0%be%d1%81%d0%b8%d1%82-%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d1%83" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Быстрые проверки.&lt;/strong&gt; Разработчик заканчивает фикс и просит QA «быстро глянуть.»&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Заполнение пробелов.&lt;/strong&gt; После выполнения всех скриптовых тест-кейсов вы тратите 15 минут на области, не покрытые формальными тестами.&lt;/p&gt;</description></item><item><title>OWASP Top 10 для тестировщиков</title><link>https://yrkan.com/ru/course/module-02-levels-types/owasp-top-10-testers/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/owasp-top-10-testers/</guid><description>&lt;h2 id="owasp-top-10"&gt;OWASP Top 10 &lt;a href="#owasp-top-10" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Open Web Application Security Project (OWASP) публикует Top 10 — регулярно обновляемый список наиболее критичных рисков безопасности веб-приложений. Редакция 2021 года — текущий стандарт, на который ссылаются регуляторы безопасности по всему миру.&lt;/p&gt;
&lt;p&gt;Как QA-инженеру, знание OWASP Top 10 позволяет систематически тестировать самые распространённые и опасные уязвимости.&lt;/p&gt;
&lt;h2 id="a012021--broken-access-control-нарушение-контроля-доступа"&gt;A01:2021 — Broken Access Control (Нарушение контроля доступа) &lt;a href="#a012021--broken-access-control-%d0%bd%d0%b0%d1%80%d1%83%d1%88%d0%b5%d0%bd%d0%b8%d0%b5-%d0%ba%d0%be%d0%bd%d1%82%d1%80%d0%be%d0%bb%d1%8f-%d0%b4%d0%be%d1%81%d1%82%d1%83%d0%bf%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Что это:&lt;/strong&gt; Пользователи действуют за пределами разрешений — просматривают чужие данные, изменяют записи, повышают привилегии до админа.&lt;/p&gt;</description></item><item><title>Альфа- и бета-тестирование</title><link>https://yrkan.com/ru/course/module-02-levels-types/alpha-beta-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/alpha-beta-testing/</guid><description>&lt;h2 id="альфа-тестирование-в-деталях"&gt;Альфа-тестирование в деталях &lt;a href="#%d0%b0%d0%bb%d1%8c%d1%84%d0%b0-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8f%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Альфа-тестирование — первая фаза валидации реальными пользователями, проводимая внутри организации до попадания ПО к внешним пользователям. Это генеральная репетиция — выступление реальное, но аудитория ограничена инсайдерами.&lt;/p&gt;
&lt;h3 id="кто-участвует"&gt;Кто участвует &lt;a href="#%d0%ba%d1%82%d0%be-%d1%83%d1%87%d0%b0%d1%81%d1%82%d0%b2%d1%83%d0%b5%d1%82" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Сотрудники других отделов&lt;/strong&gt; (маркетинг, продажи, поддержка)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Внутренние QA-команды&lt;/strong&gt;, не участвовавшие в проекте&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Стейкхолдеры и руководители&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Внутренние доменные эксперты&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="среда-альфа-тестирования"&gt;Среда альфа-тестирования &lt;a href="#%d1%81%d1%80%d0%b5%d0%b4%d0%b0-%d0%b0%d0%bb%d1%8c%d1%84%d0%b0-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Staging-серверы&lt;/strong&gt;, зеркалирующие продакшен&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Тестовые данные&lt;/strong&gt; для реалистичных сценариев&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Инструменты мониторинга&lt;/strong&gt; для отслеживания сбоев&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Прямой доступ к команде разработки&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="что-находит-альфа-тестирование"&gt;Что находит альфа-тестирование &lt;a href="#%d1%87%d1%82%d0%be-%d0%bd%d0%b0%d1%85%d0%be%d0%b4%d0%b8%d1%82-%d0%b0%d0%bb%d1%8c%d1%84%d0%b0-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Проблемы рабочих процессов:&lt;/strong&gt; Шаги, понятные разработчикам, но сбивающие пользователей&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Недостающие функции:&lt;/strong&gt; Ожидаемое, но не специфицированное&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Проблемы UI/UX:&lt;/strong&gt; Запутанная навигация, неясные подписи&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Баги среды:&lt;/strong&gt; Проблемы вне машины разработчика&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Узкие места производительности:&lt;/strong&gt; Не замеченные при разработке&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="бета-тестирование-в-деталях"&gt;Бета-тестирование в деталях &lt;a href="#%d0%b1%d0%b5%d1%82%d0%b0-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8f%d1%85" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Бета-тестирование предоставляет ПО реальным внешним пользователям в их собственных средах. Вы теряете контроль над оборудованием, сетью, паттернами использования и поведением.&lt;/p&gt;</description></item><item><title>Динамическое тестирование</title><link>https://yrkan.com/ru/course/module-02-levels-types/dynamic-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/dynamic-testing/</guid><description>&lt;h2 id="что-такое-динамическое-тестирование"&gt;Что такое динамическое тестирование? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%b4%d0%b8%d0%bd%d0%b0%d0%bc%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Динамическое тестирование — процесс оценки ПО путём его выполнения. Вы подаёте входные данные работающей системе, она их обрабатывает, а вы наблюдаете, совпадают ли фактические результаты и поведение с ожидаемыми.&lt;/p&gt;
&lt;p&gt;Каждый раз, когда вы нажимаете кнопку в приложении и проверяете, сделало ли оно то, что нужно — вы выполняете динамическое тестирование. Каждый раз, когда фреймворк автоматизации запускает браузер, заполняет форму и проверяет результат — это динамическое тестирование.&lt;/p&gt;</description></item><item><title>Дымовое тестирование (Smoke Testing)</title><link>https://yrkan.com/ru/course/module-02-levels-types/smoke-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/smoke-testing/</guid><description>&lt;h2 id="что-такое-smoke-тестирование"&gt;Что такое smoke-тестирование? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-smoke-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Smoke-тестирование (дымовое тестирование), также известное как Build Verification Testing (BVT) — быстрый и широкий тест наиболее критической функциональности для определения, достаточно ли стабильна новая сборка для дальнейшего тестирования. Название пришло из тестирования оборудования — при включении новой платы сначала проверяют, не идёт ли дым. Если идёт, нет смысла тестировать что-либо ещё.&lt;/p&gt;
&lt;p&gt;В ПО smoke-тестирование отвечает на один вопрос: &lt;strong&gt;«Эта сборка принципиально сломана, или можно переходить к более глубокому тестированию?»&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Интеграционное тестирование</title><link>https://yrkan.com/ru/course/module-02-levels-types/integration-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/integration-testing/</guid><description>&lt;h2 id="что-такое-интеграционное-тестирование"&gt;Что такое интеграционное тестирование? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%b8%d0%bd%d1%82%d0%b5%d0%b3%d1%80%d0%b0%d1%86%d0%b8%d0%be%d0%bd%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Интеграционное тестирование проверяет, что отдельные программные компоненты работают корректно при объединении. В то время как модульные тесты доказывают, что каждая функция работает изолированно, интеграционные тесты доказывают, что эти функции работают вместе — что данные корректно передаются через границы модулей, что API-контракты соблюдаются и что объединённые компоненты дают ожидаемое поведение.&lt;/p&gt;
&lt;p&gt;Рассмотрим систему электронной коммерции, где Сервис заказов вызывает Сервис инвентаризации для проверки наличия, затем вызывает Сервис оплаты для списания средств с клиента. Каждый сервис может индивидуально пройти все свои модульные тесты. Но что происходит, когда Сервис заказов отправляет запрос в Сервис инвентаризации? Совпадает ли формат данных? Возвращает ли Сервис инвентаризации ответ, который ожидает Сервис заказов? Работает ли обработка ошибок, когда Сервис оплаты недоступен?&lt;/p&gt;</description></item><item><title>Исследовательское тестирование</title><link>https://yrkan.com/ru/course/module-02-levels-types/exploratory-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/exploratory-testing/</guid><description>&lt;h2 id="что-такое-исследовательское-тестирование"&gt;Что такое исследовательское тестирование? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%b8%d1%81%d1%81%d0%bb%d0%b5%d0%b4%d0%be%d0%b2%d0%b0%d1%82%d0%b5%d0%bb%d1%8c%d1%81%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Исследовательское тестирование (exploratory testing) — подход, при котором тестировщик одновременно изучает систему, проектирует тесты и выполняет их — всё в едином непрерывном когнитивном процессе. Подход был формализован Джеймсом Бахом и Кемом Кейнером:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;«Одновременное обучение, проектирование тестов и их выполнение.»&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;В отличие от скриптового тестирования, где сначала пишутся все тест-кейсы, а затем выполняются пошагово, исследовательское тестирование адаптируется в реальном времени. То, что вы обнаружили в одном тесте, влияет на то, что вы будете тестировать дальше.&lt;/p&gt;</description></item><item><title>Комплексная оценка по Модулю 2</title><link>https://yrkan.com/ru/course/module-02-levels-types/module-2-assessment/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/module-2-assessment/</guid><description>&lt;h2 id="обзор-оценки-по-модулю-2"&gt;Обзор оценки по Модулю 2 &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b8-%d0%bf%d0%be-%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d1%8e-2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Поздравляем с достижением последнего урока Модуля 2. Эта комплексная оценка проверяет ваше понимание всех тем, рассмотренных в 35 уроках модуля.&lt;/p&gt;
&lt;p&gt;Оценка состоит из трёх частей:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Вопросы на знания&lt;/strong&gt; — 10 вопросов quiz в метаданных (ответьте на них до чтения)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Вопросы по сценариям&lt;/strong&gt; — Классификация и применение концепций к реальным ситуациям&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Практическое упражнение&lt;/strong&gt; — Создание стратегии тестирования для нового проекта&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="система-оценки"&gt;Система оценки &lt;a href="#%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d0%b0-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Часть 1 (Quiz):&lt;/strong&gt; 10 вопросов × 3 балла = 30 баллов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Часть 2 (Сценарии):&lt;/strong&gt; 5 сценариев × 6 баллов = 30 баллов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Часть 3 (Упражнение):&lt;/strong&gt; 40 баллов&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Итого:&lt;/strong&gt; 100 баллов. &lt;strong&gt;Проходной балл:&lt;/strong&gt; 70&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="покрываемые-темы"&gt;Покрываемые темы &lt;a href="#%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d0%b2%d0%b0%d0%b5%d0%bc%d1%8b%d0%b5-%d1%82%d0%b5%d0%bc%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Область&lt;/th&gt;
 &lt;th&gt;Уроки&lt;/th&gt;
 &lt;th&gt;Ключевые концепции&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Уровни тестирования&lt;/td&gt;
 &lt;td&gt;2.1-2.6&lt;/td&gt;
 &lt;td&gt;Модульное, интеграционное, системное, E2E, UAT, пирамида&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Функциональные типы&lt;/td&gt;
 &lt;td&gt;2.7-2.10&lt;/td&gt;
 &lt;td&gt;Smoke, sanity, регрессионное, ретестирование&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Нефункциональное&lt;/td&gt;
 &lt;td&gt;2.11-2.25&lt;/td&gt;
 &lt;td&gt;Производительность, безопасность, юзабилити, доступность, совместимость, надёжность&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Методы тестирования&lt;/td&gt;
 &lt;td&gt;2.26-2.28&lt;/td&gt;
 &lt;td&gt;Белый ящик, чёрный ящик, серый ящик&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Статическое vs. Динамическое&lt;/td&gt;
 &lt;td&gt;2.29-2.31&lt;/td&gt;
 &lt;td&gt;Ревью, инспекции, статический анализ&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Исследовательские подходы&lt;/td&gt;
 &lt;td&gt;2.32-2.34&lt;/td&gt;
 &lt;td&gt;Исследовательское, ad hoc, monkey-тестирование, SBTM&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="часть-2-вопросы-по-сценариям"&gt;Часть 2: Вопросы по сценариям &lt;a href="#%d1%87%d0%b0%d1%81%d1%82%d1%8c-2-%d0%b2%d0%be%d0%bf%d1%80%d0%be%d1%81%d1%8b-%d0%bf%d0%be-%d1%81%d1%86%d0%b5%d0%bd%d0%b0%d1%80%d0%b8%d1%8f%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Сценарий 1:&lt;/strong&gt; Ваша команда только что задеплоила хотфикс безопасности в продакшн, изменяющий поток аутентификации. У вас 30 минут до закрытия окна деплоя.&lt;/p&gt;</description></item><item><title>Модульное тестирование (Unit Testing)</title><link>https://yrkan.com/ru/course/module-02-levels-types/unit-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/unit-testing/</guid><description>&lt;h2 id="что-такое-модульное-тестирование"&gt;Что такое модульное тестирование? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Модульное тестирование (unit testing) — это практика тестирования наименьших тестируемых частей программного приложения — отдельных функций, методов или классов — в полной изоляции от остальной системы. Когда вы тестируете функцию модульным тестом, вы вызываете её с определенными входными данными и проверяете, что она выдает ожидаемый результат — без обращений к базе данных, сетевых запросов, доступа к файловой системе и зависимости от других компонентов.&lt;/p&gt;
&lt;p&gt;Рассмотрим функцию расчета стоимости доставки:&lt;/p&gt;</description></item><item><title>Нагрузочное тестирование с Gatling</title><link>https://yrkan.com/ru/course/module-02-levels-types/load-testing-gatling/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/load-testing-gatling/</guid><description>&lt;h2 id="что-такое-gatling"&gt;Что такое Gatling? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-gatling" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Gatling — это высокопроизводительный open-source инструмент нагрузочного тестирования, предназначенный для непрерывной интеграции и рабочих процессов, ориентированных на разработчиков. Построенный на Scala с асинхронной неблокирующей архитектурой (Akka + Netty), Gatling может симулировать тысячи конкурентных пользователей со значительно меньшим потреблением памяти, чем инструменты на основе потоков, такие как JMeter.&lt;/p&gt;
&lt;p&gt;Gatling создаёт детальные интерактивные HTML-отчёты «из коробки» — часто считающиеся лучшими отчётами о производительности в индустрии. Эти отчёты включают распределение времён ответа, перцентили, количество запросов во времени и анализ ошибок.&lt;/p&gt;</description></item><item><title>Нагрузочное тестирование с JMeter</title><link>https://yrkan.com/ru/course/module-02-levels-types/load-testing-jmeter/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/load-testing-jmeter/</guid><description>&lt;h2 id="что-такое-apache-jmeter"&gt;Что такое Apache JMeter? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-apache-jmeter" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Apache JMeter — это open-source приложение на Java, предназначенное для нагрузочного тестирования и измерения производительности веб-приложений. Изначально созданный для тестирования веб-приложений, JMeter расширился и теперь поддерживает множество протоколов, включая HTTP, HTTPS, SOAP, REST, FTP, JDBC, LDAP, JMS и SMTP.&lt;/p&gt;
&lt;p&gt;JMeter — один из наиболее широко используемых инструментов тестирования производительности в индустрии. Его популярность объясняется бесплатностью, расширяемостью через плагины и большим сообществом. Если вы работаете в QA, вы почти наверняка столкнётесь с JMeter в какой-то момент карьеры.&lt;/p&gt;</description></item><item><title>Нагрузочное тестирование с k6</title><link>https://yrkan.com/ru/course/module-02-levels-types/load-testing-k6/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/load-testing-k6/</guid><description>&lt;h2 id="что-такое-k6"&gt;Что такое k6? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-k6" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;k6 — это современный open-source инструмент нагрузочного тестирования, созданный Grafana Labs. В отличие от GUI-подхода JMeter, k6 использует скрипты на JavaScript, которые вы пишете в редакторе кода и запускаете из командной строки. Это делает его естественным выбором для разработчиков и инженеров автоматизации, предпочитающих код конфигурации.&lt;/p&gt;
&lt;p&gt;k6 написан на Go, что обеспечивает отличные характеристики производительности. Одна машина с k6 может симулировать тысячи виртуальных пользователей с низким потреблением ресурсов по сравнению с JMeter. Инструмент естественно интегрируется в CI/CD пайплайны, что делает его идеальным для shift-left подхода к тестированию производительности.&lt;/p&gt;</description></item><item><title>Нагрузочное тестирование с Locust</title><link>https://yrkan.com/ru/course/module-02-levels-types/load-testing-locust/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/load-testing-locust/</guid><description>&lt;h2 id="что-такое-locust"&gt;Что такое Locust? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-locust" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Locust — это open-source инструмент нагрузочного тестирования, написанный на Python. Его ключевая особенность — тесты пишутся как обычный Python-код, где поведение пользователей определяется как Python-классы. Если вы или ваша команда владеете Python, Locust предлагает самый низкий порог входа среди всех инструментов нагрузочного тестирования.&lt;/p&gt;
&lt;p&gt;Locust использует событийно-ориентированную архитектуру (на базе gevent) вместо потоков, что позволяет одному процессу симулировать тысячи конкурентных пользователей. Инструмент включает встроенный веб-интерфейс для мониторинга тестов в реальном времени и поддерживает распределённое тестирование на нескольких машинах.&lt;/p&gt;</description></item><item><title>Обзор тестирования производительности</title><link>https://yrkan.com/ru/course/module-02-levels-types/performance-testing-overview/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/performance-testing-overview/</guid><description>&lt;h2 id="почему-тестирование-производительности-важно"&gt;Почему тестирование производительности важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d0%b8%d0%b7%d0%b2%d0%be%d0%b4%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Функциональная корректность недостаточна. Приложение, работающее для одного пользователя, но падающее при 100 одновременных — провальный продукт.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Реальные последствия:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Amazon: каждые 100мс задержки стоили 1% продаж&lt;/li&gt;
&lt;li&gt;Google: задержка 0.5 секунды в поиске — минус 20% трафика&lt;/li&gt;
&lt;li&gt;1 секунда задержки загрузки снижает конверсии на 7%&lt;/li&gt;
&lt;li&gt;40% пользователей уходят с сайта, загружающегося дольше 3 секунд&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="типы-тестирования-производительности"&gt;Типы тестирования производительности &lt;a href="#%d1%82%d0%b8%d0%bf%d1%8b-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d0%bf%d1%80%d0%be%d0%b8%d0%b7%d0%b2%d0%be%d0%b4%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="нагрузочное-тестирование-load-testing"&gt;Нагрузочное тестирование (Load Testing) &lt;a href="#%d0%bd%d0%b0%d0%b3%d1%80%d1%83%d0%b7%d0%be%d1%87%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-load-testing" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Проверяет приемлемую работу при &lt;strong&gt;ожидаемой нормальной нагрузке&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Обзор уровней тестирования</title><link>https://yrkan.com/ru/course/module-02-levels-types/testing-levels-overview/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/testing-levels-overview/</guid><description>&lt;h2 id="что-такое-уровни-тестирования"&gt;Что такое уровни тестирования? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%83%d1%80%d0%be%d0%b2%d0%bd%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Уровни тестирования представляют собой структурированную прогрессию верификационных активностей, каждая из которых направлена на разный масштаб программной системы. Подумайте о сборке автомобиля: вы не стали бы тестировать весь автомобиль, не убедившись сначала, что отдельные болты держат, что компоненты двигателя работают вместе и что каждая подсистема (тормоза, электрика, топливо) функционирует правильно.&lt;/p&gt;
&lt;p&gt;Тестирование ПО следует той же логике. Вы начинаете с малого и двигаетесь наружу:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Модульное тестирование (Unit Testing)&lt;/strong&gt; — Тестирование отдельных функций, методов или классов в изоляции&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Интеграционное тестирование&lt;/strong&gt; — Тестирование взаимодействия компонентов друг с другом&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Системное тестирование&lt;/strong&gt; — Тестирование полного, интегрированного приложения&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Сквозное тестирование (E2E)&lt;/strong&gt; — Тестирование полных пользовательских сценариев через все системы&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Приемочное тестирование (UAT)&lt;/strong&gt; — Бизнес-пользователи проверяют, что система соответствует их потребностям&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Каждый уровень обнаруживает разные типы дефектов. Модульный тест может поймать ошибку вычисления в функции скидки. Интеграционный тест может обнаружить несоответствие формата данных между сервисом заказов и сервисом оплаты. Системный тест может выявить сломанный рабочий процесс при совместном развертывании этих сервисов. E2E тест может обнаружить, что письмо подтверждения никогда не приходит. UAT может показать, что логика скидки технически верна, но не соответствует тому, что бизнес на самом деле хотел.&lt;/p&gt;</description></item><item><title>Основы тестирования безопасности</title><link>https://yrkan.com/ru/course/module-02-levels-types/security-testing-fundamentals/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/security-testing-fundamentals/</guid><description>&lt;h2 id="почему-тестирование-безопасности-важно-для-qa"&gt;Почему тестирование безопасности важно для QA &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be-%d0%b4%d0%bb%d1%8f-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Утечки безопасности обходятся компаниям в среднем в $4,45 млн за инцидент. Помимо финансовых потерь, они разрушают доверие клиентов, вызывают регуляторные штрафы и могут завершить карьеры.&lt;/p&gt;
&lt;p&gt;Как QA-инженер, тестирование безопасности — ваша ответственность. Вам не нужно быть сертифицированным этичным хакером, но необходимо понимать принципы безопасности достаточно, чтобы выявлять типичные уязвимости до продакшна.&lt;/p&gt;
&lt;h2 id="триада-cia"&gt;Триада CIA &lt;a href="#%d1%82%d1%80%d0%b8%d0%b0%d0%b4%d0%b0-cia" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Триада CIA — основа информационной безопасности. Каждое требование безопасности соотносится с одним из трёх свойств.&lt;/p&gt;</description></item><item><title>Основы тестирования на проникновение</title><link>https://yrkan.com/ru/course/module-02-levels-types/penetration-testing-basics/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/penetration-testing-basics/</guid><description>&lt;h2 id="что-такое-тестирование-на-проникновение"&gt;Что такое тестирование на проникновение? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bd%d0%b0-%d0%bf%d1%80%d0%be%d0%bd%d0%b8%d0%ba%d0%bd%d0%be%d0%b2%d0%b5%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование на проникновение (пентест) — это имитация кибератаки для оценки безопасности системы. В отличие от сканирования уязвимостей, которое использует автоматические инструменты, пентест вовлекает человека-тестировщика, активно пытающегося эксплуатировать уязвимости.&lt;/p&gt;
&lt;p&gt;Аналогия: сканер уязвимостей — как инспектор, отмечающий слабый замок на окне. Пентестер пробует открыть окно и залезть внутрь, документируя, к чему получил доступ.&lt;/p&gt;
&lt;h2 id="пентест-vs-сканирование-уязвимостей"&gt;Пентест vs Сканирование уязвимостей &lt;a href="#%d0%bf%d0%b5%d0%bd%d1%82%d0%b5%d1%81%d1%82-vs-%d1%81%d0%ba%d0%b0%d0%bd%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%83%d1%8f%d0%b7%d0%b2%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b5%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Аспект&lt;/th&gt;
 &lt;th&gt;Сканирование уязвимостей&lt;/th&gt;
 &lt;th&gt;Тестирование на проникновение&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Подход&lt;/td&gt;
 &lt;td&gt;Автоматический скан&lt;/td&gt;
 &lt;td&gt;Ручное тестирование&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Глубина&lt;/td&gt;
 &lt;td&gt;Выявляет потенциальные проблемы&lt;/td&gt;
 &lt;td&gt;Доказывает эксплуатируемость&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Частота&lt;/td&gt;
 &lt;td&gt;Непрерывно (CI/CD)&lt;/td&gt;
 &lt;td&gt;Периодически (ежеквартально)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Бизнес-логика&lt;/td&gt;
 &lt;td&gt;Не может тестировать&lt;/td&gt;
 &lt;td&gt;Может тестировать&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Цепочечные атаки&lt;/td&gt;
 &lt;td&gt;Не обнаруживает&lt;/td&gt;
 &lt;td&gt;Находит отлично&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Стоимость&lt;/td&gt;
 &lt;td&gt;Низкая&lt;/td&gt;
 &lt;td&gt;Средняя-высокая&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Оба необходимы.&lt;/strong&gt; Сканирование быстро находит известные проблемы. Пентест обнаруживает сложные цепочечные уязвимости и дефекты бизнес-логики.&lt;/p&gt;</description></item><item><title>Приёмочное тестирование (UAT)</title><link>https://yrkan.com/ru/course/module-02-levels-types/user-acceptance-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/user-acceptance-testing/</guid><description>&lt;h2 id="что-такое-приёмочное-тестирование"&gt;Что такое приёмочное тестирование? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%bf%d1%80%d0%b8%d1%91%d0%bc%d0%be%d1%87%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Приёмочное тестирование (UAT — User Acceptance Testing) — последний уровень тестирования перед выпуском ПО в продакшен. Оно отвечает на принципиально иной вопрос, чем все остальные уровни. В то время как модульные, интеграционные, системные и E2E тесты спрашивают «ПО работает правильно?», UAT спрашивает &lt;strong&gt;«ПО делает то, что бизнесу действительно нужно?»&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Это различие критично. Система может пройти все технические тесты — каждая функция работает, каждый API отвечает корректно — и всё равно провалить UAT, потому что не решает проблему, которую бизнес хотел решить.&lt;/p&gt;</description></item><item><title>Регрессионное тестирование</title><link>https://yrkan.com/ru/course/module-02-levels-types/regression-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/regression-testing/</guid><description>&lt;h2 id="что-такое-регрессионное-тестирование"&gt;Что такое регрессионное тестирование? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%80%d0%b5%d0%b3%d1%80%d0%b5%d1%81%d1%81%d0%b8%d0%be%d0%bd%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Регрессионное тестирование проверяет, что ранее работающая функциональность не сломана последними изменениями. При каждом изменении кода — новых функций, исправлений, обновлений конфигурации — есть риск непреднамеренных побочных эффектов. Регрессионное тестирование их обнаруживает.&lt;/p&gt;
&lt;p&gt;Термин «регрессия» означает откат назад. Программная регрессия — когда функция, работавшая в версии 1.0, перестаёт работать в 1.1.&lt;/p&gt;
&lt;p&gt;Пример: Корзина покупок. Версия 1.0 корректно обрабатывает товары, количества и суммы. В 1.1 добавляют промокоды. Теперь итого считается неправильно — скидка применяется дважды. Функция промокодов работает, но оригинальный расчёт регрессировал. Регрессионное тестирование поймало бы это.&lt;/p&gt;</description></item><item><title>Санитарное тестирование (Sanity Testing)</title><link>https://yrkan.com/ru/course/module-02-levels-types/sanity-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/sanity-testing/</guid><description>&lt;h2 id="что-такое-sanity-тестирование"&gt;Что такое sanity-тестирование? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-sanity-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Sanity-тестирование (тестирование «на вменяемость») — узкая, сфокусированная проверка после конкретного изменения — обычно исправления бага или незначительного обновления — чтобы убедиться, что изменение работает корректно и не сломало очевидным образом связанную функциональность. В отличие от smoke, который широко проверяет стабильность всей сборки, sanity фокусируется на конкретной области.&lt;/p&gt;
&lt;p&gt;Разница: &lt;strong&gt;Smoke-тестирование&lt;/strong&gt; — врач проверяет жизненные показатели (пульс, давление, температура) для общей оценки здоровья. &lt;strong&gt;Sanity-тестирование&lt;/strong&gt; — врач проверяет, работает ли конкретное лекарство, прописанное вчера.&lt;/p&gt;</description></item><item><title>Системное тестирование</title><link>https://yrkan.com/ru/course/module-02-levels-types/system-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/system-testing/</guid><description>&lt;h2 id="что-такое-системное-тестирование"&gt;Что такое системное тестирование? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Системное тестирование — это процесс тестирования полного, интегрированного программного приложения для проверки соответствия заданным требованиям. В отличие от модульного тестирования (фокус на отдельных функциях) и интеграционного (фокус на взаимодействии компонентов), системное тестирование оценивает всё приложение целиком — так, как с ним взаимодействовал бы пользователь или внешняя система.&lt;/p&gt;
&lt;p&gt;На этом уровне вы рассматриваете систему как &lt;strong&gt;чёрный ящик&lt;/strong&gt;. Вас не интересует внутренняя структура кода, схемы базы данных или способы соединения модулей. Вас интересуют входы и выходы: при данном действии система выдаёт ожидаемый результат?&lt;/p&gt;</description></item><item><title>Сквозное тестирование (End-to-End)</title><link>https://yrkan.com/ru/course/module-02-levels-types/end-to-end-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/end-to-end-testing/</guid><description>&lt;h2 id="что-такое-сквозное-тестирование"&gt;Что такое сквозное тестирование? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%81%d0%ba%d0%b2%d0%be%d0%b7%d0%bd%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Сквозное (end-to-end, E2E) тестирование проверяет, что полный бизнес-процесс работает корректно от начала до конца, как его испытал бы реальный пользователь. В отличие от системного тестирования, которое фокусируется на одном приложении, E2E тестирование охватывает весь технологический стек — фронтенд, бэкенд, базы данных, сторонние сервисы, системы рассылок и любые другие компоненты пользовательского пути.&lt;/p&gt;
&lt;p&gt;Когда клиент заказывает товар в интернет-магазине, путь включает:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Просмотр каталога (фронтенд + сервис каталога)&lt;/li&gt;
&lt;li&gt;Добавление товаров в корзину (фронтенд + сервис корзины + хранилище сессий)&lt;/li&gt;
&lt;li&gt;Ввод данных доставки (фронтенд + API валидации адресов)&lt;/li&gt;
&lt;li&gt;Обработка оплаты (фронтенд + сервис оплаты + Stripe/PayPal)&lt;/li&gt;
&lt;li&gt;Получение подтверждения (сервис заказов + email-сервис + SMS-провайдер)&lt;/li&gt;
&lt;li&gt;Отслеживание доставки (сервис заказов + API перевозчика)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;E2E тест симулировал бы весь этот путь, проверяя работу каждого шага и корректность передачи данных между системами.&lt;/p&gt;</description></item><item><title>Статический анализ с SonarQube</title><link>https://yrkan.com/ru/course/module-02-levels-types/static-analysis-sonarqube/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/static-analysis-sonarqube/</guid><description>&lt;h2 id="что-такое-статический-анализ"&gt;Что такое статический анализ? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%81%d1%82%d0%b0%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d0%b9-%d0%b0%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Статический анализ — это автоматизированная проверка исходного кода без его выполнения. Инструменты сканируют код, выявляя паттерны, указывающие на баги, уязвимости безопасности, нарушения стиля и проблемы сложности.&lt;/p&gt;
&lt;p&gt;Если ручные ревью (из Урока 2.29) опираются на человеческое суждение, инструменты статического анализа применяют тысячи правил единообразно к каждой строке кода за секунды. Они не устают, не пропускают известные паттерны и работают одинаково каждый раз.&lt;/p&gt;
&lt;p&gt;Думайте о статическом анализе как о проверке орфографии для кода. Проверка орфографии не скажет, хорош ли аргумент вашего эссе (для этого нужен человек), но она мгновенно находит опечатки и грамматические ошибки.&lt;/p&gt;</description></item><item><title>Статическое тестирование: ревью и обзоры</title><link>https://yrkan.com/ru/course/module-02-levels-types/static-testing-reviews/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/static-testing-reviews/</guid><description>&lt;h2 id="что-такое-статическое-тестирование"&gt;Что такое статическое тестирование? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%81%d1%82%d0%b0%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Статическое тестирование проверяет рабочие продукты — требования, проектную документацию, код, тест-планы — без запуска программного обеспечения. Вы изучаете сам артефакт, ища дефекты, несогласованности и возможности для улучшения.&lt;/p&gt;
&lt;p&gt;Динамическое тестирование запускает ПО и проверяет его поведение. Статическое тестирование читает ПО (или его документацию) и проверяет корректность.&lt;/p&gt;
&lt;p&gt;Представьте это как вычитку рецепта перед приготовлением по сравнению с дегустацией блюда после. Оба подхода находят проблемы, но вычитка дешевле — вы обнаружите «добавить 10 стаканов соли вместо 1 чайной ложки» до того, как испортите продукты.&lt;/p&gt;</description></item><item><title>Стресс-тестирование, тестирование выносливости, пиковое и объёмное тестирование</title><link>https://yrkan.com/ru/course/module-02-levels-types/stress-endurance-spike-volume-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/stress-endurance-spike-volume-testing/</guid><description>&lt;h2 id="за-пределами-стандартного-нагрузочного-тестирования"&gt;За пределами стандартного нагрузочного тестирования &lt;a href="#%d0%b7%d0%b0-%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d0%b0%d0%bc%d0%b8-%d1%81%d1%82%d0%b0%d0%bd%d0%b4%d0%b0%d1%80%d1%82%d0%bd%d0%be%d0%b3%d0%be-%d0%bd%d0%b0%d0%b3%d1%80%d1%83%d0%b7%d0%be%d1%87%d0%bd%d0%be%d0%b3%d0%be-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;В предыдущих уроках вы научились использовать инструменты JMeter, k6, Gatling и Locust для создания нагрузочных тестов. Но выбор правильного &lt;strong&gt;типа&lt;/strong&gt; теста производительности не менее важен, чем выбор правильного инструмента. Разные типы тестов отвечают на разные вопросы о системе.&lt;/p&gt;
&lt;p&gt;Этот урок охватывает четыре специализированных типа тестирования производительности, выходящих за рамки стандартного нагрузочного тестирования. Каждый из них имеет свою цель, профиль нагрузки и набор выявляемых дефектов.&lt;/p&gt;</description></item><item><title>Тестирование белого ящика</title><link>https://yrkan.com/ru/course/module-02-levels-types/white-box-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/white-box-testing/</guid><description>&lt;h2 id="что-такое-тестирование-белого-ящика"&gt;Что такое тестирование белого ящика? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b1%d0%b5%d0%bb%d0%be%d0%b3%d0%be-%d1%8f%d1%89%d0%b8%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование белого ящика (white-box testing) — также называемое структурным тестированием, тестированием стеклянного или прозрачного ящика — это подход, при котором тесты разрабатываются на основе внутренней структуры программного обеспечения. Тестировщик имеет полный доступ к исходному коду, архитектуре и деталям реализации.&lt;/p&gt;
&lt;p&gt;Представьте, что вы осматриваете внутренности часов. Вместо того чтобы проверять, показывают ли стрелки правильное время (чёрный ящик), вы исследуете каждую шестерёнку, пружину и механизм, чтобы убедиться в их корректной работе.&lt;/p&gt;</description></item><item><title>Тестирование доступности (WCAG)</title><link>https://yrkan.com/ru/course/module-02-levels-types/accessibility-testing-wcag/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/accessibility-testing-wcag/</guid><description>&lt;h2 id="почему-тестирование-доступности-важно"&gt;Почему тестирование доступности важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b4%d0%be%d1%81%d1%82%d1%83%d0%bf%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование доступности гарантирует, что люди с инвалидностью могут использовать ваш продукт. Это включает пользователей с нарушениями зрения, слуха, двигательными нарушениями, когнитивными ограничениями или временными нарушениями (сломанная рука, яркий свет на экране).&lt;/p&gt;
&lt;p&gt;Примерно 15% мирового населения — более миллиарда людей — имеют ту или иную форму инвалидности. Помимо этического императива, доступность всё больше становится юридическим требованием. Законы ADA (США), Европейский акт доступности (EAA) и аналогичные по всему миру предписывают создание доступных цифровых продуктов.&lt;/p&gt;</description></item><item><title>Тестирование локализации и интернационализации</title><link>https://yrkan.com/ru/course/module-02-levels-types/localization-internationalization-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/localization-internationalization-testing/</guid><description>&lt;h2 id="что-такое-i18n-и-l10n"&gt;Что такое I18n и L10n? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-i18n-%d0%b8-l10n" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Интернационализация (I18n)&lt;/strong&gt; — инженерный процесс проектирования ПО для адаптации к разным языкам и регионам без изменения кода. «18» обозначает 18 букв между «I» и «n» в слове «internationalization».&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Локализация (L10n)&lt;/strong&gt; — процесс адаптации интернационализированного приложения для конкретной локали — перевод текста, настройка форматов дат/чисел, обработка культурных особенностей и соблюдение местных нормативов.&lt;/p&gt;
&lt;p&gt;Аналогия: I18n — это создание автомобиля со сменной приборной панелью (руль слева или справа, приборы показывают км или мили). L10n — конфигурация этого автомобиля для конкретной страны.&lt;/p&gt;</description></item><item><title>Тестирование надёжности и восстановления</title><link>https://yrkan.com/ru/course/module-02-levels-types/reliability-recovery-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/reliability-recovery-testing/</guid><description>&lt;h2 id="что-такое-тестирование-надёжности"&gt;Что такое тестирование надёжности? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bd%d0%b0%d0%b4%d1%91%d0%b6%d0%bd%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование надёжности (reliability testing) оценивает, выполняет ли система свою функцию стабильно в течение заданного периода при определённых условиях. Система не является по-настоящему надёжной только потому, что проходит функциональные тесты — она должна продолжать работать корректно с течением времени, при устойчивой нагрузке и в изменяющихся условиях.&lt;/p&gt;
&lt;p&gt;Рассмотрим приложение онлайн-банкинга. Оно может пройти все функциональные тесты за 30-минутную сессию. Но что произойдёт, когда тысячи пользователей будут взаимодействовать с ним непрерывно в течение 72 часов? Тестирование надёжности отвечает на этот вопрос.&lt;/p&gt;</description></item><item><title>Тестирование серого ящика</title><link>https://yrkan.com/ru/course/module-02-levels-types/grey-box-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/grey-box-testing/</guid><description>&lt;h2 id="что-такое-тестирование-серого-ящика"&gt;Что такое тестирование серого ящика? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81%d0%b5%d1%80%d0%be%d0%b3%d0%be-%d1%8f%d1%89%d0%b8%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование серого ящика (grey-box testing) находится между тестированием чёрного и белого ящика. Тестировщик обладает частичным знанием внутреннего устройства системы — достаточным для проектирования более умных тестов, чем при чистом black-box, но без полной видимости исходного кода, как при white-box.&lt;/p&gt;
&lt;p&gt;Grey-box тестировщик может знать:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Архитектуру системы (какие сервисы взаимодействуют между собой)&lt;/li&gt;
&lt;li&gt;Схему базы данных (структуру таблиц, связи)&lt;/li&gt;
&lt;li&gt;Контракты API (endpoints, форматы запросов/ответов)&lt;/li&gt;
&lt;li&gt;Поток данных между компонентами&lt;/li&gt;
&lt;li&gt;Технологический стек (фреймворк, СУБД, очередь сообщений)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Но обычно не имеет:&lt;/p&gt;</description></item><item><title>Тестирование совместимости</title><link>https://yrkan.com/ru/course/module-02-levels-types/compatibility-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/compatibility-testing/</guid><description>&lt;h2 id="что-такое-тестирование-совместимости"&gt;Что такое тестирование совместимости? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81%d0%be%d0%b2%d0%bc%d0%b5%d1%81%d1%82%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование совместимости проверяет, что приложение корректно работает в разных окружениях — браузерах, операционных системах, на разных устройствах, экранах и в разных сетевых условиях. Сайт, идеально работающий в Chrome/macOS, может ломаться в Safari/iOS или Firefox/Windows.&lt;/p&gt;
&lt;p&gt;В мире, где пользователи обращаются к приложениям из сотен комбинаций браузер/ОС/устройство, тестирование совместимости гарантирует единообразный опыт везде, где находятся ваши пользователи.&lt;/p&gt;
&lt;h2 id="измерения-тестирования-совместимости"&gt;Измерения тестирования совместимости &lt;a href="#%d0%b8%d0%b7%d0%bc%d0%b5%d1%80%d0%b5%d0%bd%d0%b8%d1%8f-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d1%81%d0%be%d0%b2%d0%bc%d0%b5%d1%81%d1%82%d0%b8%d0%bc%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="совместимость-браузеров"&gt;Совместимость браузеров &lt;a href="#%d1%81%d0%be%d0%b2%d0%bc%d0%b5%d1%81%d1%82%d0%b8%d0%bc%d0%be%d1%81%d1%82%d1%8c-%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Основные браузеры: Chrome (десктоп + мобильный), Safari (macOS + iOS), Firefox, Edge (на Chromium), Samsung Internet (Android).&lt;/p&gt;</description></item><item><title>Тестирование удобства использования (Usability Testing)</title><link>https://yrkan.com/ru/course/module-02-levels-types/usability-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/usability-testing/</guid><description>&lt;h2 id="что-такое-тестирование-юзабилити"&gt;Что такое тестирование юзабилити? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%8e%d0%b7%d0%b0%d0%b1%d0%b8%d0%bb%d0%b8%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование юзабилити оценивает, насколько легко и интуитивно понятно использовать продукт, наблюдая за реальными пользователями при выполнении задач. В отличие от функционального тестирования (которое спрашивает «работает ли это?»), тестирование юзабилити спрашивает «могут ли реальные люди разобраться, как это использовать?»&lt;/p&gt;
&lt;p&gt;Функция, идеально работающая с технической точки зрения, может быть катастрофой, если пользователи не могут её найти, не понимают или постоянно совершают ошибки. Тестирование юзабилити выявляет эти проблемы до выхода в продакшн.&lt;/p&gt;</description></item><item><title>Тестирование чёрного ящика</title><link>https://yrkan.com/ru/course/module-02-levels-types/black-box-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/black-box-testing/</guid><description>&lt;h2 id="что-такое-тестирование-чёрного-ящика"&gt;Что такое тестирование чёрного ящика? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d1%87%d1%91%d1%80%d0%bd%d0%be%d0%b3%d0%be-%d1%8f%d1%89%d0%b8%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование чёрного ящика (black-box testing) — также называемое поведенческим тестированием, тестированием на основе спецификации или функциональным тестированием — проектирует тесты исключительно на основе того, что программное обеспечение должно делать согласно требованиям и спецификациям. Тестировщик не знает внутренний код, архитектуру и детали реализации.&lt;/p&gt;
&lt;p&gt;Представьте это как использование торгового автомата. Вы вставляете деньги, нажимаете кнопку и ожидаете определённый товар. Вы не знаете и не заботитесь о внутреннем механизме — вы только проверяете, что правильный результат появляется для данного ввода.&lt;/p&gt;</description></item><item><title>Управление тестированием на основе сессий (SBTM)</title><link>https://yrkan.com/ru/course/module-02-levels-types/session-based-test-management/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/session-based-test-management/</guid><description>&lt;h2 id="что-такое-sbtm"&gt;Что такое SBTM? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-sbtm" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Session-Based Test Management (SBTM) был разработан Джонатаном и Джеймсом Бахами для решения фундаментальной проблемы: как управлять, измерять и отчитываться об исследовательском тестировании?&lt;/p&gt;
&lt;p&gt;Скриптовое тестирование легко управляемо — есть тест-кейсы, отслеживается их статус. Но исследовательское тестирование не имеет заранее написанных тест-кейсов. Без фреймворка управления оно невидимо для менеджеров и стейкхолдеров.&lt;/p&gt;
&lt;p&gt;SBTM решает это, разделяя исследовательское тестирование на &lt;strong&gt;сессии&lt;/strong&gt; — непрерывные блоки сфокусированного тестирования с определённым чартером, фиксированной длительностью и задокументированными результатами.&lt;/p&gt;</description></item><item><title>Функциональное vs нефункциональное тестирование</title><link>https://yrkan.com/ru/course/module-02-levels-types/functional-vs-nonfunctional-testing/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-02-levels-types/functional-vs-nonfunctional-testing/</guid><description>&lt;h2 id="фундаментальное-различие"&gt;Фундаментальное различие &lt;a href="#%d1%84%d1%83%d0%bd%d0%b4%d0%b0%d0%bc%d0%b5%d0%bd%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d1%80%d0%b0%d0%b7%d0%bb%d0%b8%d1%87%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Всё тестирование ПО делится на две категории:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Функциональное тестирование&lt;/strong&gt; проверяет &lt;strong&gt;ЧТО&lt;/strong&gt; делает система — функции, бизнес-правила, обработку данных. Форма входа принимает валидные учётные данные? Поиск возвращает правильные результаты? Скидка считается правильно?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Нефункциональное тестирование&lt;/strong&gt; проверяет &lt;strong&gt;КАК&lt;/strong&gt; система выполняет функции — скорость, безопасность, надёжность, удобство. Страница загружается за 2 секунды? Система выдержит 10,000 пользователей? Данные зашифрованы?&lt;/p&gt;
&lt;p&gt;Аналогия с автомобилем. Функциональное: Двигатель заводится? Тормоза останавливают? Нефункциональное: Как быстро разгон 0-100? Насколько тихо в салоне? Какой расход топлива?&lt;/p&gt;</description></item><item><title>Agile-тестирование: Kanban</title><link>https://yrkan.com/ru/course/module-01-fundamentals/agile-testing-kanban/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/agile-testing-kanban/</guid><description>&lt;h2 id="что-такое-kanban"&gt;Что такое Kanban? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-kanban" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Kanban — это agile-методология, основанная на визуализации работы, ограничении незавершённой работы и оптимизации потока. В отличие от Scrum, Kanban не использует time-boxed спринты. Вместо этого рабочие элементы непрерывно проходят через серию этапов от «К выполнению» до «Готово».&lt;/p&gt;
&lt;p&gt;Слово «Kanban» пришло из японского языка и означает «визуальный сигнал» или «карточка». Методология зародилась в производственной системе Toyota в 1940-х годах и была адаптирована для разработки программного обеспечения Дэвидом Андерсоном в 2000-х.&lt;/p&gt;</description></item><item><title>Agile-тестирование: Scrum</title><link>https://yrkan.com/ru/course/module-01-fundamentals/agile-testing-scrum/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/agile-testing-scrum/</guid><description>&lt;h2 id="фреймворк-scrum-взгляд-qa"&gt;Фреймворк Scrum: Взгляд QA &lt;a href="#%d1%84%d1%80%d0%b5%d0%b9%d0%bc%d0%b2%d0%be%d1%80%d0%ba-scrum-%d0%b2%d0%b7%d0%b3%d0%bb%d1%8f%d0%b4-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Scrum — наиболее распространённый agile-фреймворк, используемый примерно 66% agile-команд по всему миру. Как QA-инженер, вы почти наверняка будете работать в среде Scrum на каком-то этапе карьеры. Понимание того, как тестирование вписывается в Scrum, не является опциональным — это необходимость.&lt;/p&gt;
&lt;p&gt;Этот урок рассматривает Scrum с точки зрения тестировщика: не просто что такое фреймворк, а как вы активно участвуете в каждой церемонии и работе с артефактами.&lt;/p&gt;
&lt;h2 id="роли-scrum-и-qa"&gt;Роли Scrum и QA &lt;a href="#%d1%80%d0%be%d0%bb%d0%b8-scrum-%d0%b8-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Scrum определяет три роли. Понимание каждой помогает знать, с кем и когда сотрудничать.&lt;/p&gt;</description></item><item><title>DevOps и Непрерывное Тестирование</title><link>https://yrkan.com/ru/course/module-01-fundamentals/devops-continuous-testing/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/devops-continuous-testing/</guid><description>&lt;h2 id="что-такое-devops"&gt;Что такое DevOps? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-devops" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;DevOps — это набор практик, объединяющих разработку программного обеспечения (Dev) и ИТ-операции (Ops) для сокращения цикла разработки и непрерывной поставки качественного ПО. Он разрушает традиционные барьеры между командами, которые создают ПО, и командами, которые его развёртывают и поддерживают.&lt;/p&gt;
&lt;p&gt;Для QA-инженеров DevOps представляет фундаментальный сдвиг: тестирование больше не является фазой, которая происходит после разработки. Оно является неотъемлемой частью каждого этапа пайплайна доставки ПО.&lt;/p&gt;
&lt;h2 id="основные-принципы-devops"&gt;Основные Принципы DevOps &lt;a href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%bf%d1%80%d0%b8%d0%bd%d1%86%d0%b8%d0%bf%d1%8b-devops" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="continuous-integration-ci"&gt;Continuous Integration (CI) &lt;a href="#continuous-integration-ci" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Разработчики интегрируют изменения кода в общий репозиторий часто — в идеале несколько раз в день. Каждая интеграция запускает автоматическую сборку и прогон тестов.&lt;/p&gt;</description></item><item><title>QA vs QC vs Тестирование</title><link>https://yrkan.com/ru/course/module-01-fundamentals/qa-vs-qc-vs-testing/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/qa-vs-qc-vs-testing/</guid><description>&lt;h2 id="великая-путаница"&gt;Великая путаница &lt;a href="#%d0%b2%d0%b5%d0%bb%d0%b8%d0%ba%d0%b0%d1%8f-%d0%bf%d1%83%d1%82%d0%b0%d0%bd%d0%b8%d1%86%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;В индустрии ПО термины «QA», «QC» и «тестирование» используются взаимозаменяемо настолько часто, что большинство людей перестали замечать разницу. В вакансиях пишут «QA Engineer», имея в виду «тестировщик». Отделы называются «QA», хотя занимаются только «QC». А «тестирование» используется как обобщающий термин для всего, что связано с качеством.&lt;/p&gt;
&lt;p&gt;Эта путаница имеет значение. Понимание этих трёх концепций как отдельных, но взаимосвязанных дисциплин меняет то, как вы думаете о качестве — и в конечном счёте, как вы создаёте лучшее ПО.&lt;/p&gt;</description></item><item><title>SDLC: V-модель</title><link>https://yrkan.com/ru/course/module-01-fundamentals/sdlc-v-model/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/sdlc-v-model/</guid><description>&lt;h2 id="от-waterfall-к-v-модели"&gt;От Waterfall к V-модели &lt;a href="#%d0%be%d1%82-waterfall-%d0%ba-v-%d0%bc%d0%be%d0%b4%d0%b5%d0%bb%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;V-модель (модель верификации и валидации) появилась как улучшение Waterfall. Она решает главную слабость Waterfall — позднее тестирование — делая тестирование параллельной активностью разработки.&lt;/p&gt;
&lt;p&gt;Ключевая идея: &lt;strong&gt;для каждой активности разработки есть соответствующая активность тестирования.&lt;/strong&gt; Требования определяют приёмочное тестирование. Проектирование системы определяет системное тестирование. Детальное проектирование определяет интеграционное тестирование. Кодирование определяет модульное тестирование.&lt;/p&gt;
&lt;p&gt;Вместо прямой линии вниз (Waterfall) V-модель сгибает процесс в форму V, где левая сторона — активности разработки, а правая — соответствующие активности тестирования.&lt;/p&gt;</description></item><item><title>SDLC: итеративная и инкрементальная разработка</title><link>https://yrkan.com/ru/course/module-01-fundamentals/sdlc-iterative-incremental/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/sdlc-iterative-incremental/</guid><description>&lt;h2 id="за-пределами-прямой-линии"&gt;За пределами прямой линии &lt;a href="#%d0%b7%d0%b0-%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d0%b0%d0%bc%d0%b8-%d0%bf%d1%80%d1%8f%d0%bc%d0%be%d0%b9-%d0%bb%d0%b8%d0%bd%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Waterfall и V-модель разделяют фундаментальное допущение: можно определить всё заранее и выполнить за один проход. На практике это допущение не работает для большинства проектов. Требования меняются. Пользователи дают обратную связь, которая обесценивает допущения. Технологии развиваются. Конкуренты выпускают функции, меняющие приоритеты.&lt;/p&gt;
&lt;p&gt;Итеративная и инкрементальная модели разработки решают эту реальность, разбивая проект на меньшие циклы, каждый из которых производит работающее ПО, которое можно тестировать, демонстрировать и улучшать.&lt;/p&gt;</description></item><item><title>SDLC: модель Waterfall</title><link>https://yrkan.com/ru/course/module-01-fundamentals/sdlc-waterfall-model/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/sdlc-waterfall-model/</guid><description>&lt;h2 id="что-такое-sdlc"&gt;Что такое SDLC? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-sdlc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Жизненный цикл разработки ПО (SDLC) — это фреймворк, определяющий процесс планирования, создания, тестирования и развёртывания ПО. Разные модели SDLC описывают разные подходы к организации этих активностей.&lt;/p&gt;
&lt;p&gt;Понимание моделей SDLC необходимо тестировщикам, потому что &lt;strong&gt;ваш подход к тестированию определяется моделью разработки, которой следует ваша команда.&lt;/strong&gt; Тестирование в Waterfall-проекте принципиально отличается от тестирования в Agile-проекте.&lt;/p&gt;
&lt;p&gt;В этом уроке мы рассмотрим старейшую и наиболее структурированную модель SDLC: Waterfall.&lt;/p&gt;
&lt;h2 id="модель-waterfall"&gt;Модель Waterfall &lt;a href="#%d0%bc%d0%be%d0%b4%d0%b5%d0%bb%d1%8c-waterfall" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Модель Waterfall впервые описана Уинстоном Ройсом в 1970 году (хотя, по иронии, Ройс представил её как пример ущербного подхода). Несмотря на это, она стала доминирующей методологией на десятилетия.&lt;/p&gt;</description></item><item><title>Shift-Left Тестирование</title><link>https://yrkan.com/ru/course/module-01-fundamentals/shift-left-testing/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/shift-left-testing/</guid><description>&lt;h2 id="стоимость-позднего-обнаружения-багов"&gt;Стоимость Позднего Обнаружения Багов &lt;a href="#%d1%81%d1%82%d0%be%d0%b8%d0%bc%d0%be%d1%81%d1%82%d1%8c-%d0%bf%d0%be%d0%b7%d0%b4%d0%bd%d0%b5%d0%b3%d0%be-%d0%be%d0%b1%d0%bd%d0%b0%d1%80%d1%83%d0%b6%d0%b5%d0%bd%d0%b8%d1%8f-%d0%b1%d0%b0%d0%b3%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Каждый программный проект имеет фундаментальную истину: чем позже вы находите баг, тем дороже его исправить. Это не просто теория — десятилетия отраслевых данных это подтверждают.&lt;/p&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph LR
 subgraph Стоимость исправления бага
 R[Требования&lt;br/&gt;$1] --&gt; D[Дизайн&lt;br/&gt;$5]
 D --&gt; C[Кодирование&lt;br/&gt;$10]
 C --&gt; T[Тестирование&lt;br/&gt;$20]
 T --&gt; P[Продакшен&lt;br/&gt;$100+]
 end

 style R fill:#4CAF50,color:#fff
 style D fill:#8BC34A,color:#fff
 style C fill:#FFC107,color:#000
 style T fill:#FF9800,color:#fff
 style P fill:#F44336,color:#fff
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Почему стоимость умножается:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Shift-Right Тестирование: Тестирование в Продакшене</title><link>https://yrkan.com/ru/course/module-01-fundamentals/shift-right-testing/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/shift-right-testing/</guid><description>&lt;h2 id="зачем-тестировать-в-продакшене"&gt;Зачем Тестировать в Продакшене? &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d1%82%d1%8c-%d0%b2-%d0%bf%d1%80%d0%be%d0%b4%d0%b0%d0%ba%d1%88%d0%b5%d0%bd%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;В предыдущем уроке вы узнали о shift-left тестировании — начале активностей по качеству раньше. Shift-right тестирование — его дополнение: расширение активностей по качеству в продакшен-среду.&lt;/p&gt;
&lt;p&gt;Зачем? Потому что ни одно тестовое окружение не может идеально воспроизвести продакшен:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Реальные паттерны трафика&lt;/strong&gt; непредсказуемы и разнообразны&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Реальные данные&lt;/strong&gt; имеют граничные случаи, которые вы никогда не представляли&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Реальная инфраструктура&lt;/strong&gt; ведёт себя иначе под нагрузкой&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Реальные пользователи&lt;/strong&gt; взаимодействуют с вашим ПО неожиданными способами&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Shift-right тестирование признаёт, что некоторые дефекты можно найти только в продакшене — и предоставляет техники для их безопасного обнаружения.&lt;/p&gt;</description></item><item><title>Верификация vs Валидация</title><link>https://yrkan.com/ru/course/module-01-fundamentals/verification-vs-validation/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/verification-vs-validation/</guid><description>&lt;h2 id="два-вопроса-определяющих-качество"&gt;Два вопроса, определяющих качество &lt;a href="#%d0%b4%d0%b2%d0%b0-%d0%b2%d0%be%d0%bf%d1%80%d0%be%d1%81%d0%b0-%d0%be%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d1%8f%d1%8e%d1%89%d0%b8%d1%85-%d0%ba%d0%b0%d1%87%d0%b5%d1%81%d1%82%d0%b2%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;В тестировании ПО две фундаментальных вопроса формируют всё, что мы делаем:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Мы создаём продукт правильно?&lt;/strong&gt; (Верификация)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Мы создаём правильный продукт?&lt;/strong&gt; (Валидация)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Эти два вопроса — известные как Верификация и Валидация, или V&amp;amp;V — представляют две принципиально разные перспективы на качество. Понимание их различий необходимо каждому тестировщику, потому что их смешение приводит к созданию отполированного ПО, которое никому не нужно, или полезного ПО, полного дефектов.&lt;/p&gt;
&lt;h2 id="верификация-мы-создаём-продукт-правильно"&gt;Верификация: мы создаём продукт правильно? &lt;a href="#%d0%b2%d0%b5%d1%80%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%8f-%d0%bc%d1%8b-%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d1%91%d0%bc-%d0%bf%d1%80%d0%be%d0%b4%d1%83%d0%ba%d1%82-%d0%bf%d1%80%d0%b0%d0%b2%d0%b8%d0%bb%d1%8c%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Верификация — это процесс оценки того, соответствует ли продукт, компонент или система своим спецификациям, требованиям и проектной документации. Она проверяет соответствие определённым правилам и стандартам.&lt;/p&gt;</description></item><item><title>Жизненный Цикл Тестирования ПО (STLC)</title><link>https://yrkan.com/ru/course/module-01-fundamentals/software-testing-life-cycle/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/software-testing-life-cycle/</guid><description>&lt;h2 id="что-такое-stlc"&gt;Что такое STLC? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-stlc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Software Testing Life Cycle (STLC) — это систематический подход к тестированию, определяющий шаги и активности на каждой фазе. Как разработка следует SDLC, тестирование следует STLC.&lt;/p&gt;
&lt;p&gt;STLC гарантирует, что тестирование организовано, тщательно и прослеживаемо. Он превращает тестирование из хаотичной активности в структурированный процесс с чёткими входами, выходами и критериями качества.&lt;/p&gt;
&lt;h2 id="шесть-фаз-stlc"&gt;Шесть Фаз STLC &lt;a href="#%d1%88%d0%b5%d1%81%d1%82%d1%8c-%d1%84%d0%b0%d0%b7-stlc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph LR
 RA[1. Анализ&lt;br/&gt;Требований] --&gt; TP[2. Планирование&lt;br/&gt;Тестирования]
 TP --&gt; TCD[3. Проектирование&lt;br/&gt;Тест-кейсов]
 TCD --&gt; ES[4. Настройка&lt;br/&gt;Окружения]
 ES --&gt; TE[5. Выполнение&lt;br/&gt;Тестов]
 TE --&gt; TC[6. Закрытие&lt;br/&gt;Тестирования]

 style RA fill:#4CAF50,color:#fff
 style TP fill:#2196F3,color:#fff
 style TCD fill:#FF9800,color:#fff
 style ES fill:#9C27B0,color:#fff
 style TE fill:#F44336,color:#fff
 style TC fill:#795548,color:#fff
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h3 id="фаза-1-анализ-требований"&gt;Фаза 1: Анализ Требований &lt;a href="#%d1%84%d0%b0%d0%b7%d0%b0-1-%d0%b0%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7-%d1%82%d1%80%d0%b5%d0%b1%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Цель:&lt;/strong&gt; Понять, что нужно тестировать, и определить тестируемость.&lt;/p&gt;</description></item><item><title>Итоговая оценка Модуля 1</title><link>https://yrkan.com/ru/course/module-01-fundamentals/itogovaya-ocenka-modulya-1/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/itogovaya-ocenka-modulya-1/</guid><description>&lt;h2 id="обзор-оценки"&gt;Обзор оценки &lt;a href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Поздравляем с завершением Модуля 1: Основы тестирования ПО. Эта оценка проверяет понимание всех тем уроков 1.1-1.29.&lt;/p&gt;
&lt;p&gt;Оценка состоит из трёх частей:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Часть&lt;/th&gt;
 &lt;th&gt;Формат&lt;/th&gt;
 &lt;th&gt;Вопросы&lt;/th&gt;
 &lt;th&gt;Время&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Часть 1&lt;/td&gt;
 &lt;td&gt;Quiz с множественным выбором&lt;/td&gt;
 &lt;td&gt;10 вопросов&lt;/td&gt;
 &lt;td&gt;10 минут&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Часть 2&lt;/td&gt;
 &lt;td&gt;Вопросы по сценариям&lt;/td&gt;
 &lt;td&gt;3 сценария&lt;/td&gt;
 &lt;td&gt;15 минут&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Часть 3&lt;/td&gt;
 &lt;td&gt;Практическое упражнение&lt;/td&gt;
 &lt;td&gt;1 упражнение&lt;/td&gt;
 &lt;td&gt;20 минут&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="как-использовать-эту-оценку"&gt;Как использовать эту оценку &lt;a href="#%d0%ba%d0%b0%d0%ba-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d1%8c-%d1%8d%d1%82%d1%83-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d1%83" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Перед началом:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Просмотрите свои записи по Модулю 1&lt;/li&gt;
&lt;li&gt;Не используйте справочные материалы для quiz (Часть 1)&lt;/li&gt;
&lt;li&gt;Для Частей 2 и 3 можно обращаться к предыдущим урокам&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Шкала оценки:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Критерии входа и выхода</title><link>https://yrkan.com/ru/course/module-01-fundamentals/kriterii-vhoda-vyhoda/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/kriterii-vhoda-vyhoda/</guid><description>&lt;h2 id="зачем-тестированию-нужны-контрольные-точки"&gt;Зачем тестированию нужны контрольные точки &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8e-%d0%bd%d1%83%d0%b6%d0%bd%d1%8b-%d0%ba%d0%be%d0%bd%d1%82%d1%80%d0%be%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d1%82%d0%be%d1%87%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Представьте, что вы начинаете системное тестирование и обнаруживаете, что тестовое окружение не настроено или половина функций ещё разрабатывается. Вы потратите дни впустую, прежде чем сможете провести хоть какое-то осмысленное тестирование. А теперь представьте, что тестирование объявляется «завершённым» без чёткого определения того, что значит «завершённое» — у каждого стейкхолдера будет своё мнение.&lt;/p&gt;
&lt;p&gt;Критерии входа и выхода решают обе проблемы. Это &lt;strong&gt;контрольные точки&lt;/strong&gt; (gates), которые определяют, когда фаза тестирования начинается и когда она может завершиться.&lt;/p&gt;</description></item><item><title>Масштабирование Agile: SAFe для QA</title><link>https://yrkan.com/ru/course/module-01-fundamentals/scaled-agile-safe-qa/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/scaled-agile-safe-qa/</guid><description>&lt;h2 id="что-такое-safe"&gt;Что такое SAFe? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-safe" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Scaled Agile Framework (SAFe) — это набор паттернов для внедрения agile-практик в масштабе предприятия. В то время как Scrum хорошо работает для одной команды из 5-9 человек, SAFe координирует работу десятков или даже сотен команд, создающих единый продукт или решение.&lt;/p&gt;
&lt;p&gt;SAFe — наиболее распространённый фреймворк масштабирования, используемый примерно 53% организаций, практикующих масштабный agile. Как QA-инженер, вы можете столкнуться с SAFe в средних и крупных компаниях, особенно в регулируемых отраслях — финансы, здравоохранение, государственный сектор.&lt;/p&gt;</description></item><item><title>Матрица трассировки требований</title><link>https://yrkan.com/ru/course/module-01-fundamentals/matritsa-trassirovki-trebovanij/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/matritsa-trassirovki-trebovanij/</guid><description>&lt;h2 id="проблема-покрытия"&gt;Проблема покрытия &lt;a href="#%d0%bf%d1%80%d0%be%d0%b1%d0%bb%d0%b5%d0%bc%d0%b0-%d0%bf%d0%be%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;У вас 150 требований и 500 тест-кейсов. Как узнать, что каждое требование покрыто хотя бы одним тестом? Как узнать, что нет «осиротевших» тест-кейсов, тестирующих функции, которых больше не существует? Когда требование меняется, какие тест-кейсы нужно обновить?&lt;/p&gt;
&lt;p&gt;Без систематического способа связать требования с тестами на эти вопросы практически невозможно ответить. Матрица трассировки требований (RTM) и есть эта систематическая связь.&lt;/p&gt;
&lt;h2 id="что-такое-матрица-трассировки-требований"&gt;Что такое матрица трассировки требований? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%bc%d0%b0%d1%82%d1%80%d0%b8%d1%86%d0%b0-%d1%82%d1%80%d0%b0%d1%81%d1%81%d0%b8%d1%80%d0%be%d0%b2%d0%ba%d0%b8-%d1%82%d1%80%d0%b5%d0%b1%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;RTM — это документ, обычно таблица или электронная таблица, которая связывает &lt;strong&gt;требования&lt;/strong&gt; с &lt;strong&gt;тест-кейсами&lt;/strong&gt;, а часто и с &lt;strong&gt;результатами тестов&lt;/strong&gt; и &lt;strong&gt;дефектами&lt;/strong&gt;. Она создаёт прослеживаемую цепочку от бизнес-потребности до верификации.&lt;/p&gt;</description></item><item><title>Метрики тестирования и KPI</title><link>https://yrkan.com/ru/course/module-01-fundamentals/metriki-testirovaniya-kpi/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/metriki-testirovaniya-kpi/</guid><description>&lt;h2 id="почему-метрики-важны-в-qa"&gt;Почему метрики важны в QA &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%bc%d0%b5%d1%82%d1%80%d0%b8%d0%ba%d0%b8-%d0%b2%d0%b0%d0%b6%d0%bd%d1%8b-%d0%b2-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Без метрик качество — это просто мнение. Разработчик говорит «код надёжный», тестировщик говорит «мы нашли много багов», а менеджер спрашивает «можем ли мы релизить?» — и ни у кого нет данных для обоснования своей позиции.&lt;/p&gt;
&lt;p&gt;Метрики тестирования превращают субъективные мнения в объективные данные. Они помогают ответить на критические вопросы:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Находим ли мы достаточно багов до релиза?&lt;/li&gt;
&lt;li&gt;Становится ли наше тестирование эффективнее со временем?&lt;/li&gt;
&lt;li&gt;На чём нам следует сосредоточить усилия по тестированию?&lt;/li&gt;
&lt;li&gt;Готов ли продукт к выпуску?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Но у метрик есть и тёмная сторона. Неправильно выбранные метрики могут стимулировать неправильное поведение. Если измерять тестировщиков по «количеству найденных багов», они будут заводить тривиальные проблемы. Если измерять по «количеству выполненных тест-кейсов в день», они будут писать поверхностные тесты. Выбор правильных метрик так же важен, как их измерение.&lt;/p&gt;</description></item><item><title>Мышление тестировщика</title><link>https://yrkan.com/ru/course/module-01-fundamentals/testing-mindset/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/testing-mindset/</guid><description>&lt;h2 id="два-способа-мышления"&gt;Два способа мышления &lt;a href="#%d0%b4%d0%b2%d0%b0-%d1%81%d0%bf%d0%be%d1%81%d0%be%d0%b1%d0%b0-%d0%bc%d1%8b%d1%88%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Разработка ПО требует двух фундаментально различных режимов мышления. Разработчик спрашивает: «Как мне это реализовать?» Тестировщик спрашивает: «Как это может сломаться?»&lt;/p&gt;
&lt;p&gt;Ни один вопрос не важнее другого. Оба необходимы. Но они требуют разных ментальных моделей, разных допущений и разных инстинктов. Понимание мышления тестировщика — фундамент, на котором строятся все навыки тестирования.&lt;/p&gt;
&lt;h2 id="мышление-разработчика"&gt;Мышление разработчика &lt;a href="#%d0%bc%d1%8b%d1%88%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%87%d0%b8%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Разработчики — строители. Их основной режим мышления — конструктивный:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;«Как реализовать это требование?»&lt;/li&gt;
&lt;li&gt;«Какой самый эффективный алгоритм?»&lt;/li&gt;
&lt;li&gt;«Как обработать ожидаемые входные данные?»&lt;/li&gt;
&lt;li&gt;«Каково чистое, поддерживаемое решение?»&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Это мышление необходимо для создания ПО. Но у него есть слепое пятно: &lt;strong&gt;разработчики естественным образом думают о том, как вещи должны работать, а не о том, как они могут сломаться.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Ошибка, дефект и отказ</title><link>https://yrkan.com/ru/course/module-01-fundamentals/error-defect-failure/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/error-defect-failure/</guid><description>&lt;h2 id="почему-точность-важна"&gt;Почему точность важна &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%82%d0%be%d1%87%d0%bd%d0%be%d1%81%d1%82%d1%8c-%d0%b2%d0%b0%d0%b6%d0%bd%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;В повседневной речи люди используют «баг», «ошибка», «дефект» и «отказ» как синонимы. В профессиональном тестировании эти термины имеют конкретные, различные значения. Понимание разницы — не педантизм, оно определяет, исправите ли вы симптом или корневую причину.&lt;/p&gt;
&lt;p&gt;Когда клиент сообщает «приложение упало», он описывает &lt;strong&gt;отказ&lt;/strong&gt;. Когда разработчик находит NullPointerException на строке 42, он нашёл &lt;strong&gt;дефект&lt;/strong&gt;. Когда команда обнаруживает, что разработчик забыл обработать случай пустого результата из БД, они идентифицировали &lt;strong&gt;ошибку&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Планирование Тестирования: Стратегия vs План</title><link>https://yrkan.com/ru/course/module-01-fundamentals/test-planning-strategy-vs-plan/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/test-planning-strategy-vs-plan/</guid><description>&lt;h2 id="стратегия-vs-план-почему-различие-важно"&gt;Стратегия vs План: Почему Различие Важно &lt;a href="#%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d1%8f-vs-%d0%bf%d0%bb%d0%b0%d0%bd-%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%80%d0%b0%d0%b7%d0%bb%d0%b8%d1%87%d0%b8%d0%b5-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Одна из самых частых путаниц в QA — разница между тестовой стратегией и тест-планом. Многие команды используют термины взаимозаменяемо, но они служат разным целям.&lt;/p&gt;
&lt;h2 id="тестовая-стратегия"&gt;Тестовая Стратегия &lt;a href="#%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2%d0%b0%d1%8f-%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Тестовая стратегия&lt;/strong&gt; — документ организационного уровня, определяющий общий подход к тестированию для всех проектов и команд. Она долгосрочна, многоразова и редко меняется.&lt;/p&gt;
&lt;h3 id="что-содержит"&gt;Что Содержит &lt;a href="#%d1%87%d1%82%d0%be-%d1%81%d0%be%d0%b4%d0%b5%d1%80%d0%b6%d0%b8%d1%82" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Подход к тестированию:&lt;/strong&gt; Типы тестирования организации&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Уровни тестирования:&lt;/strong&gt; Unit, интеграционное, системное, приёмочное — какие обязательны&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Политика автоматизации:&lt;/strong&gt; Что автоматизировать, утверждённые инструменты, цели покрытия&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Стандарты инструментов:&lt;/strong&gt; Утверждённые инструменты управления, автоматизации, мониторинга&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Стратегия окружений:&lt;/strong&gt; Как разворачиваются и управляются тестовые окружения&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Процесс управления дефектами:&lt;/strong&gt; Классификация серьёзности, процесс triage, SLA&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Метрики и отчётность:&lt;/strong&gt; Что отслеживается, как генерируются отчёты&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Роли и обязанности:&lt;/strong&gt; Стандартные QA-роли и их scope&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Управление рисками:&lt;/strong&gt; Как выявляются и снижаются риски тестирования&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Требования compliance:&lt;/strong&gt; Отраслевые стандарты (HIPAA, PCI-DSS, SOX)&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="стратегия-по-размеру-компании"&gt;Стратегия по Размеру Компании &lt;a href="#%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d1%8f-%d0%bf%d0%be-%d1%80%d0%b0%d0%b7%d0%bc%d0%b5%d1%80%d1%83-%d0%ba%d0%be%d0%bc%d0%bf%d0%b0%d0%bd%d0%b8%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Стартап (5-20 человек):&lt;/strong&gt; Неформальная, 1-2 страницы. Фокус: что автоматизировать первым, минимальные стандарты качества.&lt;/p&gt;</description></item><item><title>Семь принципов тестирования (ISTQB)</title><link>https://yrkan.com/ru/course/module-01-fundamentals/seven-principles-of-testing/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/seven-principles-of-testing/</guid><description>&lt;h2 id="почему-принципы-важны"&gt;Почему принципы важны &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%bf%d1%80%d0%b8%d0%bd%d1%86%d0%b8%d0%bf%d1%8b-%d0%b2%d0%b0%d0%b6%d0%bd%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Прежде чем изучать конкретные техники, инструменты или методологии, каждый тестировщик должен усвоить семь фундаментальных принципов. Эти принципы, определённые ISTQB (International Software Testing Qualifications Board), представляют десятилетия коллективной мудрости о том, что тестирование может и чего не может.&lt;/p&gt;
&lt;p&gt;Это не абстрактные правила. Это практические руководства, предотвращающие дорогостоящие ошибки. Каждый опытный тестировщик усвоил эти принципы на собственном горьком опыте — нарушая их и страдая от последствий.&lt;/p&gt;
&lt;h2 id="принцип-1-тестирование-показывает-наличие-дефектов-а-не-их-отсутствие"&gt;Принцип 1: Тестирование показывает наличие дефектов, а не их отсутствие &lt;a href="#%d0%bf%d1%80%d0%b8%d0%bd%d1%86%d0%b8%d0%bf-1-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d0%be%d0%ba%d0%b0%d0%b7%d1%8b%d0%b2%d0%b0%d0%b5%d1%82-%d0%bd%d0%b0%d0%bb%d0%b8%d1%87%d0%b8%d0%b5-%d0%b4%d0%b5%d1%84%d0%b5%d0%ba%d1%82%d0%be%d0%b2-%d0%b0-%d0%bd%d0%b5-%d0%b8%d1%85-%d0%be%d1%82%d1%81%d1%83%d1%82%d1%81%d1%82%d0%b2%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Самый фундаментальный принцип и наиболее часто неправильно понимаемый.&lt;/p&gt;</description></item><item><title>Создание тестовой стратегии с нуля</title><link>https://yrkan.com/ru/course/module-01-fundamentals/sozdanie-testovoj-strategii-s-nulya/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/sozdanie-testovoj-strategii-s-nulya/</guid><description>&lt;h2 id="зачем-нужна-тестовая-стратегия"&gt;Зачем нужна тестовая стратегия &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%bd%d1%83%d0%b6%d0%bd%d0%b0-%d1%82%d0%b5%d1%81%d1%82%d0%be%d0%b2%d0%b0%d1%8f-%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Представьте: вы приходите в стартап как первый QA-инженер. CEO говорит: «У нас есть продукт, разработчики и баги. Наведи порядок.» С чего начать?&lt;/p&gt;
&lt;p&gt;Без стратегии тестирование становится реактивным — вы тестируете то, что перед глазами, пропускаете критичные области и не можете измерить эффективность. Тестовая стратегия — это ваша &lt;strong&gt;дорожная карта качества&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="стратегия-vs-тест-план"&gt;Стратегия vs тест-план &lt;a href="#%d1%81%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d1%8f-vs-%d1%82%d0%b5%d1%81%d1%82-%d0%bf%d0%bb%d0%b0%d0%bd" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Аспект&lt;/th&gt;
 &lt;th&gt;Тестовая стратегия&lt;/th&gt;
 &lt;th&gt;Тест-план&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Скоуп&lt;/td&gt;
 &lt;td&gt;Уровень организации или продукта&lt;/td&gt;
 &lt;td&gt;Уровень проекта, релиза, спринта&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Фокус&lt;/td&gt;
 &lt;td&gt;Общий подход и философия&lt;/td&gt;
 &lt;td&gt;Конкретные действия и график&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Срок жизни&lt;/td&gt;
 &lt;td&gt;Долгоживущий, обновляется периодически&lt;/td&gt;
 &lt;td&gt;Создаётся на проект/релиз&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Содержание&lt;/td&gt;
 &lt;td&gt;Типы тестирования, инструменты, окружения, подход к рискам&lt;/td&gt;
 &lt;td&gt;Что, когда, кем тестировать, критерии&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="процесс-из-8-шагов"&gt;Процесс из 8 шагов &lt;a href="#%d0%bf%d1%80%d0%be%d1%86%d0%b5%d1%81%d1%81-%d0%b8%d0%b7-8-%d1%88%d0%b0%d0%b3%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph TD
 A[1. Понять продукт] --&gt; B[2. Выявить риски]
 B --&gt; C[3. Определить скоуп]
 C --&gt; D[4. Выбрать подход]
 D --&gt; E[5. Выбрать инструменты]
 E --&gt; F[6. Спланировать ресурсы]
 F --&gt; G[7. Определить метрики]
 G --&gt; H[8. Ревью и утверждение]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h3 id="шаг-1-понять-продукт"&gt;Шаг 1: Понять продукт &lt;a href="#%d1%88%d0%b0%d0%b3-1-%d0%bf%d0%be%d0%bd%d1%8f%d1%82%d1%8c-%d0%bf%d1%80%d0%be%d0%b4%d1%83%d0%ba%d1%82" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Ответьте на вопросы: Что делает продукт? Кто пользователи? Какие платформы поддерживает? Какой технологический стек? Какие критические пути пользователя? Какая бизнес-модель? Что происходит при падении? Какие требования compliance? Как часто релизы?&lt;/p&gt;</description></item><item><title>Стандарты: IEEE 829</title><link>https://yrkan.com/ru/course/module-01-fundamentals/standarty-ieee-829/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/standarty-ieee-829/</guid><description>&lt;h2 id="зачем-нужны-стандарты-документации-тестирования"&gt;Зачем нужны стандарты документации тестирования? &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%bd%d1%83%d0%b6%d0%bd%d1%8b-%d1%81%d1%82%d0%b0%d0%bd%d0%b4%d0%b0%d1%80%d1%82%d1%8b-%d0%b4%d0%be%d0%ba%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d0%b0%d1%86%d0%b8%d0%b8-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;При смене работы вы сталкиваетесь с новыми тест-планами, новыми форматами отчётов, новыми способами организации тест-кейсов. Каждая организация будто заново изобретает документацию. IEEE 829 существует, чтобы решить эту проблему, предоставляя &lt;strong&gt;стандартизированный фреймворк&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="что-такое-ieee-829"&gt;Что такое IEEE 829? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-ieee-829" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;IEEE 829 (официально «IEEE Standard for Software and System Test Documentation») определяет набор документов, охватывающих весь процесс тестирования. Впервые опубликован в 1998 году, обновлён в 2008 — остаётся наиболее цитируемым стандартом документации тестирования.&lt;/p&gt;</description></item><item><title>Стандарты: ISO 29119</title><link>https://yrkan.com/ru/course/module-01-fundamentals/standarty-iso-29119/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/standarty-iso-29119/</guid><description>&lt;h2 id="эволюция-от-ieee-829-к-iso-29119"&gt;Эволюция от IEEE 829 к ISO 29119 &lt;a href="#%d1%8d%d0%b2%d0%be%d0%bb%d1%8e%d1%86%d0%b8%d1%8f-%d0%be%d1%82-ieee-829-%d0%ba-iso-29119" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;IEEE 829 дал нам стандартизированную документацию. Но документация — это лишь часть картины. А как насчёт самого процесса? Техник? Терминологии?&lt;/p&gt;
&lt;p&gt;ISO 29119 стремится быть &lt;strong&gt;всеобъемлющим стандартом&lt;/strong&gt; для тестирования ПО. Где IEEE 829 фокусировался узко на документации, ISO 29119 охватывает всю дисциплину.&lt;/p&gt;
&lt;h2 id="пять-частей"&gt;Пять частей &lt;a href="#%d0%bf%d1%8f%d1%82%d1%8c-%d1%87%d0%b0%d1%81%d1%82%d0%b5%d0%b9" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="часть-1-концепции-и-определения"&gt;Часть 1: Концепции и определения &lt;a href="#%d1%87%d0%b0%d1%81%d1%82%d1%8c-1-%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%86%d0%b8%d0%b8-%d0%b8-%d0%be%d0%bf%d1%80%d0%b5%d0%b4%d0%b5%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Устанавливает терминологию (300+ терминов) и концептуальный фреймворк. Обеспечивает общий язык для точной коммуникации между организациями.&lt;/p&gt;</description></item><item><title>Стоимость программных ошибок</title><link>https://yrkan.com/ru/course/module-01-fundamentals/cost-of-software-bugs/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/cost-of-software-bugs/</guid><description>&lt;h2 id="почему-стоимость-багов-имеет-значение"&gt;Почему стоимость багов имеет значение &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%81%d1%82%d0%be%d0%b8%d0%bc%d0%be%d1%81%d1%82%d1%8c-%d0%b1%d0%b0%d0%b3%d0%be%d0%b2-%d0%b8%d0%bc%d0%b5%d0%b5%d1%82-%d0%b7%d0%bd%d0%b0%d1%87%d0%b5%d0%bd%d0%b8%d0%b5" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;У каждого программного дефекта есть цена. Иногда это 30 минут, которые разработчик тратит на исправление опечатки. Иногда — $440 миллионов, потерянных за 45 минут, как произошло с Knight Capital Group.&lt;/p&gt;
&lt;p&gt;Понимание экономики программных дефектов — не просто академическое упражнение. Это самый мощный аргумент в пользу раннего тестирования, тщательного тестирования и инвестиций в обеспечение качества. Когда кто-то спрашивает «зачем нам тестировщики?» — этот урок даёт вам цифры для ответа.&lt;/p&gt;</description></item><item><title>Тестирование в регулируемых отраслях</title><link>https://yrkan.com/ru/course/module-01-fundamentals/testirovanie-v-reguliruemyh-otraslyah/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/testirovanie-v-reguliruemyh-otraslyah/</guid><description>&lt;h2 id="когда-программные-ошибки-могут-навредить-людям"&gt;Когда программные ошибки могут навредить людям &lt;a href="#%d0%ba%d0%be%d0%b3%d0%b4%d0%b0-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%bd%d1%8b%d0%b5-%d0%be%d1%88%d0%b8%d0%b1%d0%ba%d0%b8-%d0%bc%d0%be%d0%b3%d1%83%d1%82-%d0%bd%d0%b0%d0%b2%d1%80%d0%b5%d0%b4%d0%b8%d1%82%d1%8c-%d0%bb%d1%8e%d0%b4%d1%8f%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Большинство программных багов просто раздражают — сломанная кнопка, медленная страница, ошибка форматирования. Но в некоторых отраслях баги могут травмировать или убить людей, вызвать финансовое мошенничество или скомпрометировать национальную безопасность.&lt;/p&gt;
&lt;p&gt;В этих &lt;strong&gt;регулируемых отраслях&lt;/strong&gt; правительства и отраслевые органы предписывают конкретные стандарты. Тестирование здесь выходит далеко за рамки обычного QA — оно требует &lt;strong&gt;валидации&lt;/strong&gt;, &lt;strong&gt;формальной документации&lt;/strong&gt;, &lt;strong&gt;журналов аудита&lt;/strong&gt; и &lt;strong&gt;регуляторного одобрения&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="здравоохранение-и-медицинские-устройства"&gt;Здравоохранение и медицинские устройства &lt;a href="#%d0%b7%d0%b4%d1%80%d0%b0%d0%b2%d0%be%d0%be%d1%85%d1%80%d0%b0%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b8-%d0%bc%d0%b5%d0%b4%d0%b8%d1%86%d0%b8%d0%bd%d1%81%d0%ba%d0%b8%d0%b5-%d1%83%d1%81%d1%82%d1%80%d0%be%d0%b9%d1%81%d1%82%d0%b2%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="ключевые-стандарты"&gt;Ключевые стандарты &lt;a href="#%d0%ba%d0%bb%d1%8e%d1%87%d0%b5%d0%b2%d1%8b%d0%b5-%d1%81%d1%82%d0%b0%d0%bd%d0%b4%d0%b0%d1%80%d1%82%d1%8b" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Стандарт&lt;/th&gt;
 &lt;th&gt;Область&lt;/th&gt;
 &lt;th&gt;Орган&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;FDA 21 CFR Part 11&lt;/td&gt;
 &lt;td&gt;Электронные записи и подписи&lt;/td&gt;
 &lt;td&gt;FDA США&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;IEC 62304&lt;/td&gt;
 &lt;td&gt;Жизненный цикл ПО медицинских устройств&lt;/td&gt;
 &lt;td&gt;Международный&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;ISO 14971&lt;/td&gt;
 &lt;td&gt;Управление рисками для медицинских устройств&lt;/td&gt;
 &lt;td&gt;Международный&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;HIPAA&lt;/td&gt;
 &lt;td&gt;Конфиденциальность и безопасность медицинских данных&lt;/td&gt;
 &lt;td&gt;HHS США&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;EU MDR&lt;/td&gt;
 &lt;td&gt;Регулирование медицинских устройств&lt;/td&gt;
 &lt;td&gt;ЕС&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="требования-к-тестированию"&gt;Требования к тестированию &lt;a href="#%d1%82%d1%80%d0%b5%d0%b1%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d0%ba-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8e" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Валидация ПО (FDA):&lt;/strong&gt; FDA требует, чтобы ПО медицинских устройств было «валидировано» — то есть существовала документальная база, подтверждающая, что ПО стабильно выдаёт результаты, соответствующие заранее определённым спецификациям.&lt;/p&gt;</description></item><item><title>Тестирование на Основе Рисков</title><link>https://yrkan.com/ru/course/module-01-fundamentals/risk-based-testing/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/risk-based-testing/</guid><description>&lt;h2 id="зачем-тестирование-на-основе-рисков"&gt;Зачем Тестирование на Основе Рисков? &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bd%d0%b0-%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%b5-%d1%80%d0%b8%d1%81%d0%ba%d0%be%d0%b2" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Ни один проект не имеет неограниченных ресурсов. Невозможно тестировать всё одинаково. Тестирование на основе рисков отвечает на ключевой вопрос: &lt;strong&gt;На чём сосредоточить усилия?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ответ: на областях с наивысшим риском — где дефекты наиболее вероятны И где их последствия наиболее серьёзны.&lt;/p&gt;
&lt;h2 id="понимание-риска"&gt;Понимание Риска &lt;a href="#%d0%bf%d0%be%d0%bd%d0%b8%d0%bc%d0%b0%d0%bd%d0%b8%d0%b5-%d1%80%d0%b8%d1%81%d0%ba%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Риск = Вероятность × Влияние&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Вероятность:&lt;/strong&gt; Насколько вероятно существование дефекта в этой области?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Влияние:&lt;/strong&gt; Если дефект есть, насколько серьёзны последствия?&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="факторы-вероятности"&gt;Факторы Вероятности &lt;a href="#%d1%84%d0%b0%d0%ba%d1%82%d0%be%d1%80%d1%8b-%d0%b2%d0%b5%d1%80%d0%be%d1%8f%d1%82%d0%bd%d0%be%d1%81%d1%82%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Фактор&lt;/th&gt;
 &lt;th&gt;Повышает Вероятность&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Сложность кода&lt;/td&gt;
 &lt;td&gt;Сложные алгоритмы, много условий&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Новая технология&lt;/td&gt;
 &lt;td&gt;Первый опыт с фреймворком или API&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Опыт разработчика&lt;/td&gt;
 &lt;td&gt;Джуниор или новый член команды&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Частота изменений&lt;/td&gt;
 &lt;td&gt;Часто модифицируемый код&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Точки интеграции&lt;/td&gt;
 &lt;td&gt;Несколько взаимодействующих систем&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Жёсткие сроки&lt;/td&gt;
 &lt;td&gt;Код, написанный под давлением&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;История&lt;/td&gt;
 &lt;td&gt;Область с множеством прошлых дефектов&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="факторы-влияния"&gt;Факторы Влияния &lt;a href="#%d1%84%d0%b0%d0%ba%d1%82%d0%be%d1%80%d1%8b-%d0%b2%d0%bb%d0%b8%d1%8f%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Фактор&lt;/th&gt;
 &lt;th&gt;Повышает Влияние&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Финансовые транзакции&lt;/td&gt;
 &lt;td&gt;Потеря денег, неправильные списания&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Безопасность/приватность&lt;/td&gt;
 &lt;td&gt;Утечка данных, несанкционированный доступ&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Критичность безопасности&lt;/td&gt;
 &lt;td&gt;Физический вред пользователям&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Основной пользовательский поток&lt;/td&gt;
 &lt;td&gt;Вход, оформление заказа, ключевые функции&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Регуляторные требования&lt;/td&gt;
 &lt;td&gt;Нарушения compliance, штрафы&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Репутация бизнеса&lt;/td&gt;
 &lt;td&gt;Публичные сбои&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Целостность данных&lt;/td&gt;
 &lt;td&gt;Необратимая потеря или повреждение данных&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="продуктовые-vs-проектные-риски"&gt;Продуктовые vs Проектные Риски &lt;a href="#%d0%bf%d1%80%d0%be%d0%b4%d1%83%d0%ba%d1%82%d0%be%d0%b2%d1%8b%d0%b5-vs-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d0%bd%d1%8b%d0%b5-%d1%80%d0%b8%d1%81%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="продуктовые-риски"&gt;Продуктовые Риски &lt;a href="#%d0%bf%d1%80%d0%be%d0%b4%d1%83%d0%ba%d1%82%d0%be%d0%b2%d1%8b%d0%b5-%d1%80%d0%b8%d1%81%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Потенциальные проблемы качества ПО:&lt;/p&gt;</description></item><item><title>Техники Оценки Трудозатрат на Тестирование</title><link>https://yrkan.com/ru/course/module-01-fundamentals/test-estimation-techniques/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/test-estimation-techniques/</guid><description>&lt;h2 id="почему-оценка-важна"&gt;Почему Оценка Важна &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b0-%d0%b2%d0%b0%d0%b6%d0%bd%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Каждое планирование спринта включает вопрос: «Сколько времени займёт тестирование?» Ошибка имеет реальные последствия:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Недооценка:&lt;/strong&gt; Тестирование спешит, баги попадают в продакшен, команда выгорает&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Переоценка:&lt;/strong&gt; Бюджет тратится впустую, страдает доверие к команде&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="факторы-влияющие-на-оценки"&gt;Факторы, Влияющие на Оценки &lt;a href="#%d1%84%d0%b0%d0%ba%d1%82%d0%be%d1%80%d1%8b-%d0%b2%d0%bb%d0%b8%d1%8f%d1%8e%d1%89%d0%b8%d0%b5-%d0%bd%d0%b0-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Фактор&lt;/th&gt;
 &lt;th&gt;Влияние&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Сложность функционала&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Больше сложность = больше тест-кейсов и edge cases&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Опыт команды&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Новая команда или домен = дольше тестирование&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Качество требований&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Размытые требования = больше исследовательского тестирования&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Зрелость автоматизации&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Больше автоматизации = меньше ручного выполнения&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Стабильность окружения&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Нестабильные окружения = блокировки&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Зависимости&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Внешние сервисы = время ожидания&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Плотность дефектов&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Больше багов = больше перепроверок и регрессии&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="техники-оценки"&gt;Техники Оценки &lt;a href="#%d1%82%d0%b5%d1%85%d0%bd%d0%b8%d0%ba%d0%b8-%d0%be%d1%86%d0%b5%d0%bd%d0%ba%d0%b8" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="1-work-breakdown-structure-wbs"&gt;1. Work Breakdown Structure (WBS) &lt;a href="#1-work-breakdown-structure-wbs" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;WBS разбивает тестирование на мелкие, оцениваемые задачи.&lt;/p&gt;</description></item><item><title>Улучшение процесса тестирования: TMMi</title><link>https://yrkan.com/ru/course/module-01-fundamentals/uluchshenie-processa-testirovaniya-tmmi/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/uluchshenie-processa-testirovaniya-tmmi/</guid><description>&lt;h2 id="почему-улучшение-процесса-тестирования-важно"&gt;Почему улучшение процесса тестирования важно &lt;a href="#%d0%bf%d0%be%d1%87%d0%b5%d0%bc%d1%83-%d1%83%d0%bb%d1%83%d1%87%d1%88%d0%b5%d0%bd%d0%b8%d0%b5-%d0%bf%d1%80%d0%be%d1%86%d0%b5%d1%81%d1%81%d0%b0-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-%d0%b2%d0%b0%d0%b6%d0%bd%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Хороших тестировщиков недостаточно, если они работают в рамках сломанного процесса. Талантливый QA-инженер не может компенсировать отсутствие тест-планов, неопределённые критерии входа или культуру, где тестирование — последнее дело. Для стабильной поставки качественного ПО организациям нужен &lt;strong&gt;зрелый процесс тестирования&lt;/strong&gt; — определённый, измеряемый и постоянно совершенствуемый.&lt;/p&gt;
&lt;p&gt;Фреймворки улучшения процесса тестирования предоставляют дорожную карту для этого пути к зрелости. Наиболее признанные — TMMi и TPI Next. Этот урок охватывает TMMi; следующий — TPI Next.&lt;/p&gt;</description></item><item><title>Улучшение процесса тестирования: TPI Next</title><link>https://yrkan.com/ru/course/module-01-fundamentals/uluchshenie-processa-testirovaniya-tpi-next/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/uluchshenie-processa-testirovaniya-tpi-next/</guid><description>&lt;h2 id="от-tmmi-к-tpi-next"&gt;От TMMi к TPI Next &lt;a href="#%d0%be%d1%82-tmmi-%d0%ba-tpi-next" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;На предыдущем уроке вы узнали о TMMi — модели зрелости на основе уровней. TPI Next предлагает альтернативный подход. В то время как TMMi требует удовлетворения всех областей процесса на уровне перед продвижением, TPI Next позволяет улучшать &lt;strong&gt;отдельные ключевые области независимо&lt;/strong&gt;. Это делает его более гибким и часто более практичным.&lt;/p&gt;
&lt;h2 id="что-такое-tpi-next"&gt;Что такое TPI Next? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-tpi-next" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;TPI Next (Test Process Improvement Next) — фреймворк, разработанный компанией Sogeti для оценки и улучшения процессов тестирования ПО. Изначально созданный в 1990-х как TPI, он был обновлён до TPI Next для решения современных задач, включая Agile, DevOps и непрерывную поставку.&lt;/p&gt;</description></item><item><title>Что такое тестирование ПО?</title><link>https://yrkan.com/ru/course/module-01-fundamentals/what-is-software-testing/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-01-fundamentals/what-is-software-testing/</guid><description>&lt;h2 id="что-такое-тестирование-по"&gt;Что такое тестирование ПО? &lt;a href="#%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%bf%d0%be" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Тестирование программного обеспечения — это процесс оценки программного приложения с целью найти расхождения между ожидаемым и фактическим поведением. Но это определение из учебника лишь поверхностно описывает суть.&lt;/p&gt;
&lt;p&gt;На практике тестирование ПО — это систематическое исследование, проводимое для предоставления заинтересованным сторонам информации о качестве тестируемого продукта. Оно включает выполнение программы или системы с целью нахождения дефектов, проверки соответствия заданным требованиям и подтверждения того, что продукт удовлетворяет потребности пользователей.&lt;/p&gt;</description></item><item><title>Глоссарий ключевых терминов</title><link>https://yrkan.com/ru/course/module-00-orientation/glossary-of-key-terms/</link><pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-00-orientation/glossary-of-key-terms/</guid><description>&lt;h2 id="как-пользоваться-этим-глоссарием"&gt;Как пользоваться этим глоссарием &lt;a href="#%d0%ba%d0%b0%d0%ba-%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d1%8c%d1%81%d1%8f-%d1%8d%d1%82%d0%b8%d0%bc-%d0%b3%d0%bb%d0%be%d1%81%d1%81%d0%b0%d1%80%d0%b8%d0%b5%d0%bc" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Глоссарий содержит более 70 терминов, которые встретятся на протяжении всего курса. Каждая запись включает:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Термин&lt;/strong&gt; — название (с аббревиатурой, если применимо)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Определение&lt;/strong&gt; — краткое объяснение в 1-2 предложениях&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Модуль&lt;/strong&gt; — где термин разбирается подробно&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Сохраните эту страницу в закладки. Возвращайтесь к ней, когда встретите незнакомый термин.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="a"&gt;A &lt;a href="#a" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Acceptance Testing (приёмочное тестирование)&lt;/strong&gt; — Тестирование для определения, удовлетворяет ли система критериям приёмки; обычно выполняется заказчиком или конечным пользователем. &lt;em&gt;Модуль 2&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Для кого этот курс</title><link>https://yrkan.com/ru/course/module-00-orientation/who-this-course-is-for/</link><pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-00-orientation/who-this-course-is-for/</guid><description>&lt;h2 id="добро-пожаловать-на-курс-qa-engineering"&gt;Добро пожаловать на курс QA Engineering &lt;a href="#%d0%b4%d0%be%d0%b1%d1%80%d0%be-%d0%bf%d0%be%d0%b6%d0%b0%d0%bb%d0%be%d0%b2%d0%b0%d1%82%d1%8c-%d0%bd%d0%b0-%d0%ba%d1%83%d1%80%d1%81-qa-engineering" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Не важно, кто вы — абсолютный новичок, задумывающийся о карьере в тестировании, ручной тестировщик, стремящийся к автоматизации, или опытный QA инженер, нацеленный на позицию Lead или Manager — в этом курсе есть путь для вас.&lt;/p&gt;
&lt;p&gt;Курс создан Senior QA Lead с 7+ годами опыта в компаниях уровня Google (Waze) и AI-платформ. Каждый урок основан на реальном опыте тестирования продуктов, которыми пользуются более 150 миллионов человек.&lt;/p&gt;</description></item><item><title>Как получить максимум от курса</title><link>https://yrkan.com/ru/course/module-00-orientation/how-to-get-maximum-value/</link><pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-00-orientation/how-to-get-maximum-value/</guid><description>&lt;h2 id="учиться--это-навык"&gt;Учиться — это навык &lt;a href="#%d1%83%d1%87%d0%b8%d1%82%d1%8c%d1%81%d1%8f--%d1%8d%d1%82%d0%be-%d0%bd%d0%b0%d0%b2%d1%8b%d0%ba" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Прежде чем погружаться в концепции QA, давайте поговорим о том, &lt;em&gt;как&lt;/em&gt; учиться. Разница между тем, кто проходит онлайн-курс и реально запоминает материал, и тем, кто забывает всё через месяц, заключается в технике обучения, а не в интеллекте.&lt;/p&gt;
&lt;p&gt;Этот урок покрывает методы, подтверждённые исследованиями, которые сделают каждый час, проведённый за курсом, максимально полезным.&lt;/p&gt;
&lt;h2 id="как-устроен-курс"&gt;Как устроен курс &lt;a href="#%d0%ba%d0%b0%d0%ba-%d1%83%d1%81%d1%82%d1%80%d0%be%d0%b5%d0%bd-%d0%ba%d1%83%d1%80%d1%81" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Понимание структуры поможет вам спланировать подход:&lt;/p&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph TD
 A[Каждый урок] --&gt; B[Раздел теории]
 A --&gt; C[Вопросы квиза]
 A --&gt; D[Практические упражнения]
 B --&gt; E[Концепции, диаграммы, примеры]
 C --&gt; F[Самопроверка с объяснениями]
 D --&gt; G[Задания с решениями]
 D --&gt; H[Реальные сценарии]
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Каждый урок включает:&lt;/strong&gt; Теорию с объяснениями и диаграммами, квиз-вопросы для самопроверки и практические упражнения с решениями — всё на 100% бесплатно.&lt;/p&gt;</description></item><item><title>Карьерная карта QA-инженера</title><link>https://yrkan.com/ru/course/module-00-orientation/qa-career-roadmap/</link><pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-00-orientation/qa-career-roadmap/</guid><description>&lt;h2 id="карьерный-ландшафт-qa"&gt;Карьерный ландшафт QA &lt;a href="#%d0%ba%d0%b0%d1%80%d1%8c%d0%b5%d1%80%d0%bd%d1%8b%d0%b9-%d0%bb%d0%b0%d0%bd%d0%b4%d1%88%d0%b0%d1%84%d1%82-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Quality Assurance — одна из самых доступных точек входа в IT-индустрию и одна из самых гибких карьерных траекторий. От ручного тестирования до инженерии автоматизации, от руководства командой до VP of Quality — здесь есть путь для любых амбиций.&lt;/p&gt;
&lt;p&gt;Этот урок описывает карьерные пути, зарплаты и навыки, необходимые на каждом этапе, — чтобы вы могли поставить чёткие цели с первого дня.&lt;/p&gt;
&lt;h2 id="пути-карьерного-роста"&gt;Пути карьерного роста &lt;a href="#%d0%bf%d1%83%d1%82%d0%b8-%d0%ba%d0%b0%d1%80%d1%8c%d0%b5%d1%80%d0%bd%d0%be%d0%b3%d0%be-%d1%80%d0%be%d1%81%d1%82%d0%b0" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph TD
 A[Junior QA / Стажёр] --&gt; B[QA Engineer - Manual]
 B --&gt; C[QA Engineer - Automation]
 B --&gt; D[QA Analyst / BA гибрид]
 C --&gt; E[Senior QA Automation]
 C --&gt; F[SDET]
 E --&gt; G[QA Lead / Tech Lead]
 F --&gt; G
 D --&gt; H[QA Manager]
 G --&gt; H
 G --&gt; I[Principal QA Engineer]
 H --&gt; J[Director of QA]
 I --&gt; J
 J --&gt; K[VP of Quality / Engineering]

 style A fill:#e8f5e9
 style B fill:#e8f5e9
 style C fill:#fff3e0
 style E fill:#fff3e0
 style F fill:#fff3e0
 style G fill:#e3f2fd
 style H fill:#e3f2fd
 style I fill:#fce4ec
 style J fill:#fce4ec
 style K fill:#fce4ec
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;h3 id="уровень-1-junior-qa--стажёр-0-1-год"&gt;Уровень 1: Junior QA / Стажёр (0-1 год) &lt;a href="#%d1%83%d1%80%d0%be%d0%b2%d0%b5%d0%bd%d1%8c-1-junior-qa--%d1%81%d1%82%d0%b0%d0%b6%d1%91%d1%80-0-1-%d0%b3%d0%be%d0%b4" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Что вы делаете:&lt;/strong&gt; Выполняете тест-кейсы, заводите баг-репорты, изучаете продукт, участвуете в планировании тестирования под руководством наставника.&lt;/p&gt;</description></item><item><title>Настройка рабочего окружения</title><link>https://yrkan.com/ru/course/module-00-orientation/setting-up-environment/</link><pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate><guid>https://yrkan.com/ru/course/module-00-orientation/setting-up-environment/</guid><description>&lt;h2 id="зачем-нужна-настройка-окружения"&gt;Зачем нужна настройка окружения &lt;a href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%bd%d1%83%d0%b6%d0%bd%d0%b0-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d0%be%d0%ba%d1%80%d1%83%d0%b6%d0%b5%d0%bd%d0%b8%d1%8f" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Правильно настроенное окружение устраняет трение, когда вы начинаете практиковаться. Ничто не убивает мотивацию быстрее, чем час, потраченный на решение проблем с установкой, вместо изучения концепций QA.&lt;/p&gt;
&lt;p&gt;В этом уроке мы пройдём установку всего необходимого. Программирование не требуется — только скачивание, установка и проверка работоспособности инструментов.&lt;/p&gt;
&lt;h2 id="экосистема-инструментов-qa"&gt;Экосистема инструментов QA &lt;a href="#%d1%8d%d0%ba%d0%be%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d0%b0-%d0%b8%d0%bd%d1%81%d1%82%d1%80%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d0%be%d0%b2-qa" class="heading-anchor" aria-hidden="true"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Вот как инструменты, которые вы установите, связаны с разными типами тестирования:&lt;/p&gt;
&lt;figure class="mermaid-wrapper" data-diagram-type="graph"&gt;
 &lt;div class="mermaid-viewport"&gt;
 &lt;div class="mermaid"&gt;graph TB
 subgraph "Веб-тестирование"
 A[DevTools браузера] --&gt; B[Инспекция элементов]
 A --&gt; C[Мониторинг сети]
 A --&gt; D[Консоль и ошибки]
 end
 subgraph "API-тестирование"
 E[Postman] --&gt; F[Отправка запросов]
 E --&gt; G[Инспекция ответов]
 E --&gt; H[Коллекции тестов]
 end
 subgraph "Код и автоматизация"
 I[VS Code] --&gt; J[Написание тестовых скриптов]
 I --&gt; K[Расширения для тестирования]
 L[Node.js] --&gt; M[Запуск Playwright/Cypress]
 L --&gt; N[npm-пакеты]
 end
 subgraph "Совместная работа"
 O[Git] --&gt; P[Контроль версий]
 O --&gt; Q[Code review]
 O --&gt; R[CI/CD пайплайны]
 end
 &lt;/div&gt;
 &lt;/div&gt;
 &lt;div class="mermaid-toolbar"&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-in" aria-label="Zoom in" title="Zoom in"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="11" y1="8" x2="11" y2="14"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-zoom-out" aria-label="Zoom out" title="Zoom out"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;circle cx="11" cy="11" r="8"/&gt;&lt;line x1="21" y1="21" x2="16.65" y2="16.65"/&gt;&lt;line x1="8" y1="11" x2="14" y2="11"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-reset" aria-label="Reset zoom" title="Reset"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/&gt;&lt;path d="M3 3v5h5"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;button class="mermaid-btn mermaid-btn-fullscreen" aria-label="Fullscreen" title="Fullscreen"&gt;
 &lt;svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"&gt;&lt;path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"/&gt;&lt;/svg&gt;
 &lt;/button&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;p&gt;Вы не будете использовать все инструменты с первого дня. Модули 1-4 в основном требуют браузер и Postman. Инструменты автоматизации (VS Code, Node.js, Git) становятся необходимы начиная с Модуля 5.&lt;/p&gt;</description></item></channel></rss>