<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>@how_to_code_web3</title><author><name>@how_to_code_web3</name></author><id>https://teletype.in/atom/how_to_code_web3</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/how_to_code_web3?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@how_to_code_web3?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=how_to_code_web3"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/how_to_code_web3?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-05-28T18:18:08.743Z</updated><entry><id>how_to_code_web3:QA_course</id><link rel="alternate" type="text/html" href="https://teletype.in/@how_to_code_web3/QA_course?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=how_to_code_web3"></link><title>Обучение &quot;C нуля до Middle QA (зп 150-200к рублей) за 2 месяца&quot;</title><published>2025-07-24T20:31:07.252Z</published><updated>2025-07-24T20:31:07.252Z</updated><summary type="html">❗️26 июля, 18:00 - повышение цен</summary><content type="html">
  &lt;p id=&quot;H2vt&quot;&gt;❗️26 июля, 18:00 - повышение цен&lt;/p&gt;
  &lt;p id=&quot;UlVi&quot;&gt;❗️❗️❗️Если вы уже хотите оплатить, то вам &lt;strong&gt;&lt;a href=&quot;#rUSr&quot;&gt;сюда&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;msut&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;KibD&quot;&gt;&lt;strong&gt;Содержание:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;NyZj&quot;&gt;- &lt;a href=&quot;#HUM0&quot;&gt;Что такое QA-тестирование?&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;8t3Y&quot;&gt;- &lt;a href=&quot;#EyjQ&quot;&gt;Сколько платят QA-тестировщикам?&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;GRc3&quot;&gt;- &lt;a href=&quot;#ogl6&quot;&gt;Почему вообще платят QA-тестировщикам?&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;rz2P&quot;&gt;- &lt;strong&gt;🔥 &lt;a href=&quot;#H7Kp&quot;&gt;Зачем вам обучаться QA-тестированию?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;Axwl&quot;&gt;- &lt;a href=&quot;#d5YA&quot;&gt;Кто вас будет обучать. Кто мы?&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;pW6S&quot;&gt;- &lt;a href=&quot;#kgGg&quot;&gt;Обучение &amp;quot;C нуля до Middle QA (зп 150-200к рублей) за 2 месяца&amp;quot;. Что мы вам предлагаем?&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;D62C&quot;&gt;- &lt;a href=&quot;#Dv1L&quot;&gt;Кому подойдёт? &lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;kJSi&quot;&gt;- &lt;a href=&quot;#ktlz&quot;&gt;Формат&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;pray&quot;&gt;- &lt;a href=&quot;#caI0&quot;&gt;Длительность обучения&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;Cnwh&quot;&gt;- &lt;a href=&quot;#jpI2&quot;&gt;Кейсы наших учеников&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;jAof&quot;&gt;- &lt;a href=&quot;#rUSr&quot;&gt;Программа курса, &lt;strong&gt;цены и условия&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;vB0n&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;Z8v3&quot;&gt;Привет, мы запустили обучение по QA-тестированию, и внутри всего за 2 месяца мы обучаем людей становится Middle QA и &lt;strong&gt;устраиваться на работу с зарплатой в 150,000 - 200,000 рублей.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;xvmp&quot;&gt;А теперь подробнее...&lt;/p&gt;
  &lt;p id=&quot;IrlP&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;HUM0&quot;&gt;Что такое QA-тестирование?&lt;/h2&gt;
  &lt;p id=&quot;69Fs&quot;&gt;&lt;strong&gt;QA (Quality Assurance) Engineer&lt;/strong&gt; - это инженер по качеству программного обеспечения или проще - тестировщик. Его основная задача заключается в том, чтобы сайт или приложение работали так, как это было задумано.&lt;/p&gt;
  &lt;p id=&quot;U7IS&quot;&gt;&lt;strong&gt;Что делает тестировщик? &lt;/strong&gt;Если говорить коротко, то проверяет, что ожидаемый результат совпадает с фактическим. Например, он проверяет, что кнопка должна быть определенного цвета и должна находиться в определенном месте.&lt;/p&gt;
  &lt;p id=&quot;itns&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;EyjQ&quot;&gt;Сколько платят?&lt;/h2&gt;
  &lt;p id=&quot;AoZ8&quot;&gt;Разберём, сколько может зарабатывать ручной тестировщик в СНГ (на валютных удалёнках зарплаты, очевидно, будут гораздо выше)&lt;/p&gt;
  &lt;figure id=&quot;o0LQ&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/4b/c0/4bc08c72-0652-42b5-98b1-34483183d8ca.png&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;cbNl&quot;&gt;Junior QA: в среднем 71 000 ₽ (≈ 900 $)&lt;/p&gt;
  &lt;p id=&quot;aqxN&quot;&gt;Middle QA: в среднем 194 000 ₽ (≈ 2400 $)&lt;/p&gt;
  &lt;p id=&quot;MNFM&quot;&gt;Senior QA: в среднем 267 000 ₽ (≈ 3400 $)&lt;/p&gt;
  &lt;p id=&quot;LqcP&quot;&gt;Lead QA: в среднем 283 000 ₽ (≈ 3600 $)&lt;/p&gt;
  &lt;p id=&quot;mzvX&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;ogl6&quot;&gt;Почему вообще платят QA-тестировщикам?&lt;/h2&gt;
  &lt;p id=&quot;45WJ&quot;&gt;В 2012 году финансовая компания Knight Capital потеряла $440 миллионов за 45 минут - всё из-за того, что в продакшен попал старый тестовый код. Система начала автоматически скупать и продавать акции по ошибочным алгоритмам. Формально, ошибка была на стороне девопса: код устанавливался на сервера вручную, без CI/CD (автоматической системы доставки изменений), и один из серверов активировал устаревший блок. Но здесь мог вмешаться QA - его задача не только «тыкать кнопки», но и подсветить риски в процессе доставки кода. Если бы тестировщик вовремя задал вопрос: «А как у нас релизится код?», «А мы точно исключили устаревшие фичи?» - возможно, трагедии можно было бы избежать. &lt;a href=&quot;https://en.wikipedia.org/wiki/Knight_Capital_Group#2012_trading_disruption&quot; target=&quot;_blank&quot;&gt;Подробнее&lt;/a&gt;, кому интересно.&lt;/p&gt;
  &lt;p id=&quot;LjeQ&quot;&gt;Ну и более приближенные к нам примеры:&lt;/p&gt;
  &lt;p id=&quot;CYL7&quot;&gt;В 2023 году житель Волгограда покупал вещи из ЦУМа за 150 рублей вместо 150 000 рублей. Суд встал на его сторону, и ему не пришлось ничего возвращать. Подробнее &lt;a href=&quot;https://www.forbes.ru/biznes/493097-sud-vstal-na-storonu-volgogradca-kupivsego-vesi-v-cum-v-846-raz-desevle-iz-za-sboa&quot; target=&quot;_blank&quot;&gt;тык&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;e8pt&quot;&gt;В 2023 году был баг в WildBerries, который позволял бесплатно забирать вещи из пункта выдачи заказов. Тут уже суд встал на сторону WB. Подробнее &lt;a href=&quot;https://www.securitylab.ru/news/553189.php&quot; target=&quot;_blank&quot;&gt;тык&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;Hk0X&quot;&gt;В 2022 году в Тинькофф банке был баг, связанный с обменом валюты. Благодаря нему можно было кругами крутить rub &amp;lt;—&amp;gt; usd и получать профит. Один из клиентов заработал 68,8 тыс. евро. Банк попытался вернуть средства, но судебные решения были неоднозначными: некоторые клиенты выиграли дела, другие — проиграли. Подробнее &lt;a href=&quot;https://habr.com/ru/news/813051/&quot; target=&quot;_blank&quot;&gt;тык&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;igEG&quot;&gt;Именно данные вещи фиксятся тестировщиками и им готовы платить за это деньги.&lt;/p&gt;
  &lt;p id=&quot;zC2w&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;H7Kp&quot;&gt;Зачем вам обучаться QA-тестированию?&lt;/h2&gt;
  &lt;p id=&quot;fcXN&quot;&gt;Если честно, крипта всё меньше даёт возможностей для стабильного и прогнозируемого заработка.&lt;/p&gt;
  &lt;p id=&quot;SyvV&quot;&gt;Ещё пару лет назад можно было нормально зарабатывать. Сегодня же доходы упали в разы. Да, что-то ещё приносит, но это всё чаще превращается в лотерею. И если вы ловите себя на мысли: &lt;strong&gt;«Хочу стабильности, нормальной работы и понятных денег»&lt;/strong&gt;, — значит, пора смотреть в сторону QA.&lt;/p&gt;
  &lt;p id=&quot;EiSC&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;jcp4&quot;&gt;1. Причина первая - стабильность&lt;/h3&gt;
  &lt;p id=&quot;uwlk&quot;&gt;Можно бесконечно гадать, будет ли альтсезон, даст ли проект дроп, повторится ли хайп. Но даже если повезёт - денег это принесёт в десятки раз меньше, чем раньше. А хочется не чудес, а &lt;strong&gt;предсказуемого дохода&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;QA может обеспечить 150–200 тысяч рублей в месяц - на нормальной удалённой работе, где платят за ваш мозг, а не за везение.&lt;/p&gt;
  &lt;p id=&quot;hqyf&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;ifcx&quot;&gt;&lt;strong&gt;2. QA - вход в IT без знания кода&lt;/strong&gt;&lt;/h3&gt;
  &lt;p id=&quot;PWA7&quot;&gt;Если вы не кодите - это не проблема. В QA можно войти &lt;strong&gt;совсем без программирования&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Вам нужно уметь анализировать задачи, писать чек-листы, тестировать руками, общаться с командой. Всё - на уровне логики и внимательности, без технического ада.&lt;br /&gt;&lt;br /&gt;Да, если со временем захотите - можно освоить автоматизацию и стать AQA с более высокой зарплатой. Но на старте — &lt;strong&gt;код не нужен вообще&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;k2K5&quot;&gt;&lt;/p&gt;
  &lt;h4 id=&quot;RzNo&quot;&gt;3. Работа из дома - как в крипте, только с окладом&lt;/h4&gt;
  &lt;p id=&quot;yX0R&quot;&gt;QA - это полностью удалённая профессия. Можно работать из дома, из кофейни, с дачи, из любой страны. Разница c криптой тут только в одном: &lt;strong&gt;тут вы получаете фиксированный доход.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;bHis&quot;&gt;Работаете в IT-компании, в нормальной команде - и знаете, что 2 раза в месяц вас точно ждёт зарплата.&lt;/p&gt;
  &lt;p id=&quot;APxp&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;LBKn&quot;&gt;4. Карьерный рост&lt;/h3&gt;
  &lt;p id=&quot;Eyqf&quot;&gt;Начинаете с позиции Middle QA - и уже через пару месяцев можете:&lt;/p&gt;
  &lt;ul id=&quot;wl23&quot;&gt;
    &lt;li id=&quot;uOWl&quot;&gt;взять вторую работу и зарабатывать 300к;&lt;/li&gt;
    &lt;li id=&quot;tkFi&quot;&gt;прокачаться до Senior QA и выйти на тот же уровень;&lt;/li&gt;
    &lt;li id=&quot;lKZz&quot;&gt;освоить автоматизацию (AQA) и получать 400к;&lt;/li&gt;
    &lt;li id=&quot;EL5t&quot;&gt;выйти на международный рынок — и зарабатывать в валюте, до $7000–8000.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;3i4d&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;0LC7&quot;&gt;Дополнительно для вас мы прописали &amp;quot;карту&amp;quot; развития MIddle QA тестировщика:&lt;/p&gt;
  &lt;p id=&quot;CUsa&quot;&gt;&lt;strong&gt;I. Техническая ветка, СНГ рынок:&lt;/strong&gt;&lt;br /&gt;а) Senior QA&lt;br /&gt;б) Middle Fullstack (QA + AQA)&lt;br /&gt;в) Senior Fullstack (QA + AQA)&lt;br /&gt;г) Middle AQA&lt;br /&gt;д) Senior AQA&lt;/p&gt;
  &lt;p id=&quot;bDkx&quot;&gt;&lt;strong&gt;II. Техническая ветка, международный рынок &lt;/strong&gt;(там зарплата в $ или в € --&amp;gt; вилки гораздо выше):&lt;br /&gt;а) Senior QA&lt;br /&gt;б) Middle Fullstack (QA + AQA)&lt;br /&gt;в) Senior Fullstack (QA + AQA)&lt;br /&gt;г) Middle AQA&lt;br /&gt;д) Senior AQA&lt;br /&gt;е) Web3 QA или AQA &lt;/p&gt;
  &lt;p id=&quot;FTeW&quot;&gt;&lt;strong&gt;III. Управленческая ветка:&lt;/strong&gt;&lt;br /&gt;а) Team Lead QA&lt;br /&gt;б) Project Manager&lt;/p&gt;
  &lt;p id=&quot;nzyG&quot;&gt;&lt;strong&gt;IV. Переход в разработку:&lt;/strong&gt;&lt;br /&gt;а) Любой язык, который захочешь. Сейчас самые больше ЗП у бекендеров на GO&lt;/p&gt;
  &lt;p id=&quot;vVdH&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;BR9P&quot;&gt;5. Причина пятая - различные плюшки&lt;/h3&gt;
  &lt;p id=&quot;cKaY&quot;&gt;QA - это не только зарплата. Это и &lt;strong&gt;отсрочка от армии&lt;/strong&gt;, и &lt;strong&gt;льготная IT-ипотека&lt;/strong&gt; под 6%, и &lt;strong&gt;официальные отпуска и больничные&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;XldN&quot;&gt;Это то, чем вам никогда не даст крипта и &amp;quot;темки&amp;quot;.&lt;/p&gt;
  &lt;p id=&quot;PCfC&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;sN7T&quot;&gt;QA - это шанс уйти из хаоса крипты и получить чёткий, понятный, хорошо оплачиваемый навык.&lt;/p&gt;
  &lt;p id=&quot;q2OK&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;d5YA&quot;&gt;Кто вас будет обучать. Кто мы?&lt;/h2&gt;
  &lt;p id=&quot;ExbD&quot;&gt;Пишет данную статью - &lt;a href=&quot;http://t.me/cryppi&quot; target=&quot;_blank&quot;&gt;cryppi&lt;/a&gt;. автор канала How to Code.&lt;/p&gt;
  &lt;p id=&quot;Gyyc&quot;&gt;Думаю, вы меня знаете. Писал статьи, выносил коинлист, айдиошки, айсиошки, минты на многа-многа деняк, кручу ретро и пишу постики. &lt;/p&gt;
  &lt;p id=&quot;HZGW&quot;&gt;Но самая моя главная любовь - я люблю обучать. И это капец как нравится! Так получилось, что меня полюбили именно за обучалки (статьи, видосы, гайды, посты).&lt;/p&gt;
  &lt;p id=&quot;aLcG&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;OaQF&quot;&gt;Кофаундер канала - &lt;a href=&quot;https://t.me/semolina_code_python&quot; target=&quot;_blank&quot;&gt;Ahillary&lt;/a&gt; - back end разработчик и автоматизатор. Больше 7 лет в программировании и за это время успел поработать в нескольких коммерческих компаниях (как web2, так и web3). С тестированием сталкивался абсолютно в каждой компании и на каждом этапе работы (начиная с собеседования и заканчивая тестированием принтами написанием unit тестов). В последнее время сосредоточен на своих проектах и даже в них не может обойтись без тестирования.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;CdSb&quot;&gt;&lt;strong&gt;И самое главное звено - это &lt;a href=&quot;http://t.me/testoslav&quot; target=&quot;_blank&quot;&gt;Влад&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;RXS7&quot;&gt;Влад - наш партнёр, учитель и мотиватор многих, ваш будущий ментор и создатель курса. Короче говоря, топ челик.&lt;/p&gt;
  &lt;p id=&quot;QfXG&quot;&gt;Чуть-чуть регалий: ранее работал учителем программирования для детей (Python, C++, C#), год назад устроился ручным тестировщиком в каршеринговую компанию на зп в 2.600$ gross, сейчас решил сменить место работы и проходит собесы на сеньора - 4.300$+.&lt;/p&gt;
  &lt;p id=&quot;5fk4&quot;&gt;К тому же этот человек уже обучил многих людей разного уровня на позицию QA-тестировщика и помог им получить офферы на хорошую зарплату. Да, кейсы учеников мы конечно предоставим, но чуть позже.&lt;/p&gt;
  &lt;p id=&quot;v204&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;kgGg&quot;&gt;Что мы вам предлагаем?&lt;/h2&gt;
  &lt;ul id=&quot;06Ev&quot;&gt;
    &lt;li id=&quot;5V5C&quot;&gt;&lt;strong&gt;Авторское обучение.&lt;/strong&gt; Мы запарились над очень глубокой проработкой материала. Наше обучение подойдет всем - и тем кто шарит в IT и его основах, и для полных нулей тоже. Каждый найдёт для себя то, что ему нужно.&lt;/li&gt;
    &lt;li id=&quot;SUvW&quot;&gt;&lt;strong&gt;Гиперопытный эксперт. &lt;/strong&gt;Вы будете обучаться у Влада, который является действующим экспертом и работает в ведущей каршеринговой компании QA-инженером. К тому же этот человек уже обучил многих людей разного уровня на позицию QA-тестировщика. &lt;/li&gt;
    &lt;li id=&quot;S6M8&quot;&gt;&lt;strong&gt;Комьюнити, которое замотивировано в общении и взаимной помощи. &lt;/strong&gt;На обучении сформируется большое комьюнити прошаренных тестировщиков, с которыми вы сможете настроить win-win сотрудничество. &lt;/li&gt;
    &lt;li id=&quot;brmT&quot;&gt;&lt;strong&gt;Будет запущен так называемый &amp;quot;паровозик&amp;quot; собеседований,&lt;/strong&gt; где каждый будет закидывать видео записи своих собеседований, на основе которых вы сможете получать актуальные требования со стороны работодателей.&lt;/li&gt;
    &lt;li id=&quot;Jdpm&quot;&gt;&lt;strong&gt;Любой вопрос. &lt;/strong&gt;На вопрос абсолютно любого уровня вы получите развернутый ответ, и вас не осудят душные челы в паблик чатах.&lt;/li&gt;
    &lt;li id=&quot;VdFz&quot;&gt;&lt;strong&gt;🔥 Приватная тестовая площадка. &lt;/strong&gt;Чтобы ваша практика проходила как можно эффективнее, мы создали свою специальную тестовую площадку, где уместили всю нужную для поступления и работы практику&lt;/li&gt;
    &lt;li id=&quot;5buo&quot;&gt;&lt;strong&gt;🔥🔥Уникальная система прохождения собеседования. &lt;/strong&gt;Новички с других обучений идут на junior QA (зп 70к), где, огромная конкуренция, и вы вряд ли получите оффер. А мы же учим ребят сразу идти на позицию middle QA (зп 150-200к)&lt;/li&gt;
    &lt;li id=&quot;Swvv&quot;&gt;🔥🔥🔥&lt;strong&gt; Возможность обучить за 2 месяца на позицию Middle QA инженера и устроиться на зарплату в 150-200к рублей.&lt;/strong&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;Dv1L&quot;&gt;&lt;br /&gt;Кому подойдёт данное обучение?&lt;/h2&gt;
  &lt;ul id=&quot;MHJz&quot;&gt;
    &lt;li id=&quot;XNG8&quot;&gt;&lt;strong&gt;Вы должны будете уделять 2 часа в день на изучение QA-тестирования. &lt;/strong&gt;Мы всё сделаем со своей стороны. Предоставим отличный материал, который уже проверен множеством людей. Предоставим комьюнити, которое готово развиваться. Предоставим помощь и ответы на интересующие вопросы. И самое главное наш метод позволил устроиться многим людям на работу.&lt;/li&gt;
    &lt;li id=&quot;TQkl&quot;&gt;&lt;strong&gt;Вам нужен компьютер или ноутбук. &lt;/strong&gt;Без них ну уж никак :)&lt;/li&gt;
    &lt;li id=&quot;0rgm&quot;&gt;&lt;strong&gt;Вам НЕ НУЖНО уметь кодить.&lt;/strong&gt; Да, кодинг не нужен.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;ktlz&quot;&gt;&lt;br /&gt;Формат обучения&lt;/h2&gt;
  &lt;p id=&quot;I5rK&quot;&gt;- Вы попадаете в общий канал и чат, где будут собраны все ученики&lt;br /&gt;- Каждые неделю мы будем отправлять вам уроки в видеоформате, текстовые статьи&lt;br /&gt;- А так же вы всегда будете проходить практику на реальных заданиях тестировщиков.&lt;br /&gt;- Также будут стримы, где каждый из вас сможет задать любой вопрос Владу&lt;br /&gt;- Мы проведём вас по нашей программе, и по каждому пункту вам будет оказана помощь.&lt;/p&gt;
  &lt;p id=&quot;4Apz&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;caI0&quot;&gt;Длительность обучения&lt;/h2&gt;
  &lt;p id=&quot;beMx&quot;&gt;2 месяца. И уже после них мы будем с вами искать работу. &lt;/p&gt;
  &lt;p id=&quot;c0P1&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;jpI2&quot;&gt;Кейсы наших учеников&lt;/h2&gt;
  &lt;p id=&quot;2HUT&quot;&gt;Мы пообщались с некоторыми учениками Влада, которые проходили у него менторство. Задали им несколько вопросов про путь в QA: что было сложно, сколько ушло времени и какую ЗП они в итоге выбили. В общем, читайте.&lt;/p&gt;
  &lt;p id=&quot;qNuy&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;LO3g&quot;&gt;&lt;strong&gt;Первый - Вадим.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;uYL6&quot;&gt;Раньше он учился в МАИ и профессионально играл в CS. Потом ушёл в крипту: писал небольшие Python-скрипты под прокрут проектов. На старте обучения было тяжело - пытался зубрить теорию, пока не понял, что надо вникнуть, а потом повторять спокойно и осознанно. С полного нуля до устройства прошло 70 дней. &lt;/p&gt;
  &lt;p id=&quot;IXUT&quot;&gt;В итоге он получил оффер на 175 000₽ (до налогов) в компанию, связанную с мобильными устройствами.&lt;/p&gt;
  &lt;p id=&quot;FmuS&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;mIIi&quot;&gt;&lt;strong&gt;Второй - Илья.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;YIQl&quot;&gt;До QA он был менеджером по продажам, знал немного Python. Основная сложность для него - заставлять себя учиться каждый день. На обучение и поиск работы ушло 75 дней. Оффер получил на 28-й день после первого отклика.&lt;/p&gt;
  &lt;p id=&quot;5b4e&quot;&gt;В итоге: оффер на 200 000₽ в дочернюю компанию крупного банка.&lt;/p&gt;
  &lt;p id=&quot;jFU4&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;FVrj&quot;&gt;&lt;strong&gt;Третья - Даша.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;NsjY&quot;&gt;Раньше работала администратором в гостинице, почти не пользовалась компьютером — максимум делала презентации. Учёба шла через “не могу”: то училась усердно, то откладывала. В какой-то момент хотела всё бросить и вернуться к старой работе с зарплатой в 3 раза ниже. В итоге, после 3 месяцев «горок» (то училась, то нет), сделала последний рывок, усердно занималась еще месяц и получила...&lt;/p&gt;
  &lt;p id=&quot;FnjO&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;MoOs&quot;&gt;И что самое крутое, вы всем им можете отписать в личку задать любой вопрос:&lt;/p&gt;
  &lt;p id=&quot;HEiR&quot;&gt;&lt;a href=&quot;http://t.me/Davcost9n&quot; target=&quot;_blank&quot;&gt;@Davcost9n&lt;/a&gt; - Вадим&lt;/p&gt;
  &lt;p id=&quot;3OlP&quot;&gt;&lt;a href=&quot;http://t.me/fancy_kinguin&quot; target=&quot;_blank&quot;&gt;@fancy_kinguin&lt;/a&gt; - Илья&lt;/p&gt;
  &lt;p id=&quot;WWqp&quot;&gt;&lt;a href=&quot;http://t.me/dashqa_engineer&quot; target=&quot;_blank&quot;&gt;@dashqa_engineer&lt;/a&gt; - Даша&lt;/p&gt;
  &lt;p id=&quot;uxdw&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;rUSr&quot;&gt;Программа курса, цены и условия&lt;/h2&gt;
  &lt;p id=&quot;cpGw&quot;&gt;В общем, наше обучение будет состоять из 8 блоков. А тарифа будет - 2.&lt;/p&gt;
  &lt;p id=&quot;ncXd&quot;&gt;- В первом тарифе будет 6 блоков.&lt;/p&gt;
  &lt;p id=&quot;rQMn&quot;&gt;- А во втором тарифе - 8 блоков. (то есть все 6 что из первого тарифа, и 2 дополнительных)&lt;/p&gt;
  &lt;p id=&quot;IZOb&quot;&gt;Первый тариф называется - &amp;quot;QA базовый&amp;quot;, а второй тариф - &amp;quot;&lt;strong&gt;QA зарплатный&lt;/strong&gt;&amp;quot;&lt;/p&gt;
  &lt;figure id=&quot;GHJf&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/54/58/54584cbe-0499-42b7-b382-b5dc24b1f5cc.png&quot; width=&quot;1024&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ubwA&quot;&gt;&lt;strong&gt;Итак, что входит в блоки? &lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;OpeE&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;L4UT&quot;&gt;Блок №1. Чем занимаются тестировщики + теория тестирования&lt;/h3&gt;
  &lt;p id=&quot;3cAP&quot;&gt;Что будет внутри этого блока:&lt;br /&gt;- Рекомендации о том, как обучаться эффективно и почему кто-то получает работу, а кто-то нет&lt;br /&gt;- Различные практические задания, чтобы почувствовать себя тестировщиком и понять, что ничего сложного нет&lt;br /&gt;- Сама теория тестирования, разобранная на реальных примерах&lt;br /&gt;- Пример оформления конспекта в Notion, который далее будет удобно использовать как шпору на собесе или для подготовки к собесам&lt;/p&gt;
  &lt;p id=&quot;avKX&quot;&gt;И что самое крутое, что будет в конце каждого блока. &lt;strong&gt;Мы разберём - список вопросов, которые скорее всего спросят вас на собеседовании&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;xWcL&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;Cohq&quot;&gt;Блок №2. Тестовая документация + где она хранится&lt;/h3&gt;
  &lt;p id=&quot;OYBg&quot;&gt;Изучать тестовую документацию нужно, чтобы уметь формализовать проверку продукта и говорить на одном языке с командой. Без этих навыков невозможно чётко доносить, что проверено, что сломано и где искать проблему. Это основа системной работы тестировщика, без которой невозможно ни пройти собеседование, ни эффективно выполнять задачи.&lt;/p&gt;
  &lt;p id=&quot;H37H&quot;&gt;Продолжаем погружаться в задачи тестировщика. При нахождении бага нужно завести баг-репорт. Также существует другая тестовая документация:&lt;br /&gt;- Научимся пользоваться Jira (в ней ведут свои задачи почти все айти компании)&lt;br /&gt;- Научимся создавать баги в Jira&lt;br /&gt;- Научимся создавать чек-листы, тест-кейсы и тест-планы в TestIT&lt;br /&gt;- Будем тестировать требования к продукту&lt;/p&gt;
  &lt;p id=&quot;lDP4&quot;&gt;Ну и конечно, разберем список вопросов, которые скорее всего спросят вас на собеседовании&lt;/p&gt;
  &lt;p id=&quot;ZUu5&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;trRZ&quot;&gt;Блок №3. Тестирование бекенда&lt;/h3&gt;
  &lt;p id=&quot;AtSt&quot;&gt;Эти знания позволяют находить баги ещё до появления интерфейса, вручную тестировать серверную логику и понимать, что происходит при ошибках. Без этого невозможно эффективно работать с современными приложениями.&lt;/p&gt;
  &lt;p id=&quot;5nHS&quot;&gt;- Познакомимся с клиент-серверной архитектурой, со структурой HTTP-запроса и ответа, c Postman, REST, SOAP и WebSocket&lt;br /&gt;- С помощью Postman’a протестируем готовый бекенд + базу данных&lt;br /&gt;- Узнаем, что такое API и Swagger&lt;br /&gt;- Научимся читать документацию в Swagger&lt;br /&gt;- Будем практиковаться и делать &amp;quot;автотесты&amp;quot; в Postman&lt;/p&gt;
  &lt;p id=&quot;kZVG&quot;&gt;Ну и про вопросы для собеседований не забываем.&lt;/p&gt;
  &lt;p id=&quot;c9QR&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;cUa3&quot;&gt;&lt;strong&gt;Блок №4. Тестирование баз данных&lt;/strong&gt;&lt;/h3&gt;
  &lt;p id=&quot;mTT8&quot;&gt;Нужно, чтобы напрямую проверять корректность хранения и обработки данных без интерфейса. Это помогает находить баги, которых не видно на экране, и уверенно работать с любыми проектами, где есть SQL.&lt;/p&gt;
  &lt;p id=&quot;43WU&quot;&gt;- Изучим, что такое БД и СУБД&lt;br /&gt;- Научимся писать SQL запросы к Базам Данных (SELECT + WHERE; GROUP BY; JOIN)&lt;br /&gt;- Создадим и установим локальную базу данных&lt;br /&gt;- Разберем, как происходит тестирование БД&lt;br /&gt;- Научимся локально поднимать базу данных на своем компьютере и подключаться к ней через DBeaver&lt;/p&gt;
  &lt;p id=&quot;yabO&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;pc10&quot;&gt;Блок №5. Тестирование фронтенда + DevTools&lt;/h3&gt;
  &lt;p id=&quot;QH8S&quot;&gt;Фронтенд-тестирование помогает находить визуальные баги ещё до вмешательства разработчиков. Умение пользоваться DevTools позволяет проверять стили, как сайт общается с сервером, кэширование, адаптивность и быстрее находить причины проблем в интерфейсе.&lt;/p&gt;
  &lt;p id=&quot;v8L7&quot;&gt;- Изучим, что такое Figma, Pixel Perfect, HTML, CSS, кэш и куки.&lt;br /&gt;- Разберем, как тестировать фронтенд, куда смотреть, где чаще всего появляются баги&lt;br /&gt;- Разберем базовый минимум HTML + CSS, который требуется тестировщику&lt;br /&gt;- Научимся использовать основные вкладки в DevTools&lt;/p&gt;
  &lt;p id=&quot;NI5l&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;I94s&quot;&gt;Блок №6. Тестирование мобильных приложений&lt;/h3&gt;
  &lt;p id=&quot;xVZM&quot;&gt;Баги часто зависят от устройства, версии ОС и условий подключения. Понимание инструментов вроде Android Studio, Xcode и ADB позволяет проверять поведение приложения на реальных девайсах, ловить краши, тестировать push-уведомления и анализировать ошибки на уровне системы.&lt;/p&gt;
  &lt;p id=&quot;xgMF&quot;&gt;- Разберем, чем отличается тестирование веба от тестирования мобилок? Чем отличается IOS от Android&lt;br /&gt;- Разберем, что такое снниферы трафика Charles Proxy / Proxyman и как ими пользоваться&lt;br /&gt;- Разберем, зачем тестировщику нужны Android Studio, Xcode, ADB + LogCat.&lt;br /&gt;- Разберем примеры задач мобильного тестировщика&lt;br /&gt;- В этом блоке будет много практики и активная поддержка в чате!&lt;/p&gt;
  &lt;p id=&quot;PqGU&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;nsWd&quot;&gt;И так, вот мы разобрали все блоки, которые будут в тарифе &amp;quot;QA базовый&amp;quot;, внутри этого тарифа есть вся знания, которые требуются на рынке и вы сможете подаваться на работу, но &lt;strong&gt;💸 Тариф &amp;quot;QA зарплатный&amp;quot;&lt;/strong&gt; позволит получать вам оффер быстрее.&lt;/p&gt;
  &lt;p id=&quot;CaOc&quot;&gt;В нём будет та самая информация, которая позволит вам обойти конкурентов с помощью дополнительных знаний. А еще что самое главное - внутри этого тарифа мы научимся:&lt;br /&gt;- правильно проходить собеседования, &lt;br /&gt;- правильно создавать резюме, &lt;br /&gt;- придумывать легенду, &lt;br /&gt;- делиться друг с другом записями собеседований и куча другого, что позволит вам получить оффер на 150-200к рублей.&lt;/p&gt;
  &lt;p id=&quot;U4Az&quot;&gt;Итак, встречайте 2 дополнительных блока, которые входят в тариф &lt;strong&gt;💸 &amp;quot;QA зарплатный&amp;quot;:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;jT4K&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;IhTs&quot;&gt;🔥 Блок №7. Становимся лучше тестировщиков с реальным опытом&lt;/h3&gt;
  &lt;p id=&quot;MUIl&quot;&gt;В чем фишка этого блока - обычно эти знания не нужны для собеседований, но если HR узнает про них, это будет огромным плюсом, который выделит тебя среди других конкурентов.&lt;/p&gt;
  &lt;p id=&quot;PDJb&quot;&gt;- Разберем, что такое GIT, CI/CD&lt;br /&gt;- Теория о том, что такое Логи, зачем они нужны и как используются на практике&lt;br /&gt;- Кто такие брокеры сообщений (Kafka / RabbitMQ) + как развернуть брокер локально у себя на компьютере и как их тестировать&lt;br /&gt;- Поговорим про Docker и Kubernetes - на собесах редко спрашивают, но если знаете, что это = огромный плюс&lt;br /&gt;- Разберем основные команды командной строки Linux&lt;/p&gt;
  &lt;p id=&quot;aKKQ&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;rQ6z&quot;&gt;Как мы говорили раньше, после обучения обычно новички подаются на Junior QA с зарплатой в 70-80 тысяч рублей, где очень большая конкуренция. Мы же сделаем всё гораздо хитрее - &lt;strong&gt;мы будем подаваться сразу на Middle QA с зарплатой в 150-200 тысяч рублей. &lt;/strong&gt;И именно этому будет посвящён наш 8 блок.&lt;/p&gt;
  &lt;p id=&quot;VA0C&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;olaX&quot;&gt;&lt;strong&gt;🔥🔥🔥 Блок №8. Подготовка к собеседованиям&lt;/strong&gt;&lt;/h3&gt;
  &lt;p id=&quot;MqYA&quot;&gt;Самая важная часть обучения. 90% успеха заключено именно в ней. &lt;/p&gt;
  &lt;p id=&quot;VCof&quot;&gt;- Изучаем процессы в компаниях (что такое Scrum, дейлики, ретро, как выглядит команда)&lt;br /&gt;- Подготовливаем легенду с накрученным опытом, с которой мы будем ходить на собеседования и подаваться на Middle QA с зарплатой в 150-200к рублей.&lt;br /&gt;- Подготовка резюме&lt;br /&gt;- Просмотр чужих собеседований &lt;br /&gt;- После первого собеседования добавляем отдельный чатик и образуется “паровозик” собеседований. Как это работает? Один сходил на собес в “Магнит” и записал его на видео. Теперь в нашем коммьюнити есть список вопросов, которые там задают. Следующие, кто туда пройдет, будут лучше подготовлены и, скорее всего, получат оффер &lt;br /&gt;- Список вопросов и задачек, которые скорее всего спросят вас на собеседовании&lt;/p&gt;
  &lt;p id=&quot;rbfR&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;V1W1&quot;&gt;Итого:&lt;/p&gt;
  &lt;h3 id=&quot;bn98&quot;&gt;&lt;strong&gt;Тариф &amp;quot;QA базовый&amp;quot;&lt;/strong&gt;&lt;/h3&gt;
  &lt;p id=&quot;cc6E&quot;&gt;Блок №1. Чем занимаются тестировщики + теория тестирования&lt;br /&gt;Блок №2. Тестовая документация + где она хранится&lt;br /&gt;Блок №3. Тестирование бекенда&lt;br /&gt;Блок №4. Тестирование баз данных&lt;br /&gt;Блок №5. Тестирование фронтенда + DevTools&lt;br /&gt;Блок №6. Тестирование мобильных приложений&lt;/p&gt;
  &lt;p id=&quot;JDJY&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;C6Lc&quot;&gt;&lt;strong&gt;💸 Тариф &amp;quot;QA зарплатный&amp;quot;&lt;/strong&gt;&lt;/h3&gt;
  &lt;p id=&quot;ETK6&quot;&gt;Первые 6 блоков такие же как у первого тарифа:&lt;br /&gt;Блок №1. Чем занимаются тестировщики + теория тестирования&lt;br /&gt;Блок №2. Тестовая документация + где она хранится&lt;br /&gt;Блок №3. Тестирование бекенда&lt;br /&gt;Блок №4. Тестирование баз данных&lt;br /&gt;Блок №5. Тестирование фронтенда + DevTools&lt;br /&gt;Блок №6. Тестирование мобильных приложений&lt;/p&gt;
  &lt;p id=&quot;dgVr&quot;&gt;И в этом тарифе добавляются еще дополнительные 2 блока, которые позволят вам получить оффер на 150-200к рублей:&lt;/p&gt;
  &lt;p id=&quot;10v2&quot;&gt;&lt;strong&gt;🔥 Блок №7. Становимся лучше тестировщиков с реальным опытом&lt;br /&gt;🔥🔥🔥 Блок №8. Подготовка к собеседованиям&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;mMcV&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;MWxS&quot;&gt;Цена на обучение:&lt;/h3&gt;
  &lt;p id=&quot;7xsI&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;DedE&quot;&gt;- Тариф &amp;quot;QA базовый&amp;quot; - 400 USD или 31,999 рублей&lt;/p&gt;
  &lt;p id=&quot;9J0U&quot;&gt;&lt;strong&gt;- 💸 Тариф &amp;quot;QA зарплатный&amp;quot;&lt;/strong&gt; - 600 USD или 47,999 рублей&lt;/p&gt;
  &lt;p id=&quot;3sv9&quot;&gt;Для оплаты пишите в личку &amp;quot;обучQA&amp;quot; - &lt;a href=&quot;http://t.me/clor1n3&quot; target=&quot;_blank&quot;&gt;@clor1n3&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;ZZe6&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;Kf2R&quot;&gt;❗26 июля, 18:00, стоимость увеличится до 600 и 800 долларов соотвественно.&lt;/p&gt;
  &lt;p id=&quot;srJs&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;SRwC&quot;&gt;❗❗У вас будет ровно 14 дней с начала обучения на то, чтобы вернуть полностью деньги за обучение без объяснения каких-либо причин. Таким образом вы сможете безопасно удостовериться в качестве нашего обучения.&lt;/p&gt;
  &lt;p id=&quot;tDL9&quot;&gt;Все вопросы по обучению можете задавать в бота: &lt;a href=&quot;http://t.me/QAQAQAQAQAQAQAQAQABOT&quot; target=&quot;_blank&quot;&gt;@QAQAQAQAQAQAQAQAQABOT&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>how_to_code_web3:QA_Full_Roadmap</id><link rel="alternate" type="text/html" href="https://teletype.in/@how_to_code_web3/QA_Full_Roadmap?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=how_to_code_web3"></link><title>Полный roadmap с нуля до Middle Manual QA тестировщика (±2000$ з/п)</title><published>2025-06-12T20:41:55.952Z</published><updated>2025-06-16T07:52:32.299Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/48/67/48676164-f19e-477d-97c3-ad098da36e7f.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/46/3f/463fe97f-1bf1-437f-ab2a-f15c7950808c.jpeg&quot;&gt;Пора!</summary><content type="html">
  &lt;figure id=&quot;x9wA&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/46/3f/463fe97f-1bf1-437f-ab2a-f15c7950808c.jpeg&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;daLn&quot;&gt;&lt;strong&gt;Важный момент. &lt;/strong&gt;Данный роадмап был сделан на основе нашего краткого гайда по QA, который мы публиковали месяц назад, поэтому в начале часть текста может повторяться. Но это лишь малая часть. &lt;strong&gt;Нынешняя статья стала в 6 раза больше.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;XM4t&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;XFk9&quot;&gt;Приятного прочтения!&lt;/p&gt;
  &lt;p id=&quot;JLq2&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;NZ6s&quot;&gt;&lt;strong&gt;План:&lt;/strong&gt;&lt;/p&gt;
  &lt;ol id=&quot;H76H&quot;&gt;
    &lt;li id=&quot;MdAJ&quot;&gt;&lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#VIKf&quot; target=&quot;_blank&quot;&gt;Вступление&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;qE05&quot;&gt;&lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#x3Gg&quot; target=&quot;_blank&quot;&gt;Существует 2 основных вида QA&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;Dbrq&quot;&gt;&lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#PlL8&quot; target=&quot;_blank&quot;&gt;Нужно ли уметь кодить?&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;gqwE&quot;&gt;&lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#EyjQ&quot; target=&quot;_blank&quot;&gt;Сколько платят?&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;oEm4&quot;&gt;&lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#TyxL&quot; target=&quot;_blank&quot;&gt;За что столько платят?&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;mP1j&quot;&gt;&lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#e6ad&quot; target=&quot;_blank&quot;&gt;Примеры приложений, которые были плохо протестированы&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;EURo&quot;&gt;&lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#zZWs&quot; target=&quot;_blank&quot;&gt;Кто мы?&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;AIkz&quot;&gt;&lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#apCL&quot; target=&quot;_blank&quot;&gt;Виды Manual QA&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;qLIj&quot;&gt;&lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#c1zU&quot; target=&quot;_blank&quot;&gt;Топ 10 причин перескочить джуна&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;tbGe&quot;&gt;&lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#YWmK&quot; target=&quot;_blank&quot;&gt;Как перескочить джуна?&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;HPO6&quot;&gt;&lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#Bzeh&quot; target=&quot;_blank&quot;&gt;&amp;quot;Как учиться?&amp;quot; алгоритм&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;hP7c&quot;&gt;&lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#sLUk&quot; target=&quot;_blank&quot;&gt;Roadmap для Middle Manual QA:&lt;/a&gt;&lt;br /&gt;1. &lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#mREk&quot; target=&quot;_blank&quot;&gt;Теория тестирования&lt;/a&gt;&lt;br /&gt;2. &lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#a1YM&quot; target=&quot;_blank&quot;&gt;Как устроен процесс разработки в большинстве компаний&lt;/a&gt;&lt;br /&gt;3. &lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#TiDI&quot; target=&quot;_blank&quot;&gt;Тестовая документация&lt;/a&gt;&lt;br /&gt;4. &lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#5miA&quot; target=&quot;_blank&quot;&gt;Клиент-серверная архитектура + API&lt;/a&gt;&lt;br /&gt;5. &lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#r9UZ&quot; target=&quot;_blank&quot;&gt;Postman + Swagger&lt;/a&gt;&lt;br /&gt;6. &lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#Irmt&quot; target=&quot;_blank&quot;&gt;Базы данных + SQL&lt;/a&gt;&lt;br /&gt;7. &lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#PANv&quot; target=&quot;_blank&quot;&gt;DevTools + Figma&lt;/a&gt;&lt;br /&gt;8. &lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#LB4b&quot; target=&quot;_blank&quot;&gt;Окружения, GIT, CI/CD&lt;/a&gt;&lt;br /&gt;9. &lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#E0Gg&quot; target=&quot;_blank&quot;&gt;Сниффинг трафика (Charles Proxy / Proxyman)&lt;/a&gt;&lt;br /&gt;10. &lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#MyxZ&quot; target=&quot;_blank&quot;&gt;Логи (ELK Stack / Sentry / Grafana + Loki)&lt;/a&gt;&lt;br /&gt;11. &lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#3P1d&quot; target=&quot;_blank&quot;&gt;Брокеры сообщений (Kafka, RabbitMQ)&lt;/a&gt;&lt;br /&gt;12. &lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#hcTE&quot; target=&quot;_blank&quot;&gt;Docker&lt;/a&gt;&lt;br /&gt;13. &lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#ZtJg&quot; target=&quot;_blank&quot;&gt;Инструменты для моб. тестирования (Android Studio, XCode, ADB, Logcat)&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;Tx77&quot;&gt;&lt;a href=&quot;https://teletype.in/@how_to_code_web3/QA_Full_Roadmap#letq&quot; target=&quot;_blank&quot;&gt;Заключение&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;qFhG&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;VIKf&quot;&gt;Вступление&lt;/h2&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;WPPi&quot;&gt;Гайд был написан ребятами из @&lt;a href=&quot;https://t.me/how_to_code_web3&quot; target=&quot;_blank&quot;&gt;how_to_code_web3&lt;/a&gt;, подпишись на нас, там мы публикуем крутые штуки по QA.&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;DgSz&quot;&gt;IT - это не завод, где за тобой следят и требуют, чтобы ты 8 часов был на рабочем месте. В большинстве компаний, если правильно выстроить процессы, придется работать в среднем по 3-4ч в день&lt;/p&gt;
  &lt;p id=&quot;zZ4Y&quot;&gt;На этом плюшки не заканчиваются:&lt;/p&gt;
  &lt;ul id=&quot;iIr2&quot;&gt;
    &lt;li id=&quot;XMm4&quot;&gt;Удаленная работа&lt;/li&gt;
    &lt;li id=&quot;lmyp&quot;&gt;ЗП выше среднего&lt;/li&gt;
    &lt;li id=&quot;5pKq&quot;&gt;Отсрочки от армии&lt;/li&gt;
    &lt;li id=&quot;YGmh&quot;&gt;IT ипотека&lt;/li&gt;
    &lt;li id=&quot;yqYp&quot;&gt;Карьерный рост (о нем поговорим ниже)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;o3PH&quot;&gt;Тестирование - одна из тех областей в IT, в которую легче всего войти, но получать все плюшки от работы в айти-компании. В основном это из-за того, что не нужно уметь писать код. Также, большинство программ, которые используются в работе, можно быстро изучить.&lt;/p&gt;
  &lt;p id=&quot;69Fs&quot;&gt;&lt;strong&gt;QA (Quality Assurance) Engineer&lt;/strong&gt; - это инженер по качеству программного обеспечения или проще - тестировщик. Его основная задача заключается в том, &lt;s&gt;чтобы находить баги, которые нашкодил программист&lt;/s&gt; чтобы сайт или приложение работали так, как это было задумано.&lt;/p&gt;
  &lt;p id=&quot;U7IS&quot;&gt;&lt;strong&gt;Что делает тестировщик? &lt;/strong&gt;Если говорить коротко, то проверяет, что ожидаемый результат совпадает с фактическим. Например, он проверяет, что кнопка должна быть определенного цвета и должна находиться в определенном месте.&lt;/p&gt;
  &lt;p id=&quot;OJlP&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;x3Gg&quot;&gt;&lt;strong&gt;Существует 2 основных вида QA&lt;/strong&gt;&lt;/h2&gt;
  &lt;ol id=&quot;OZHg&quot;&gt;
    &lt;li id=&quot;Q4nU&quot;&gt;Manual QA (ручной тестировщик) - проверяет всё вручную, не используя код. Например, разработчик перекрасил логотип фирмы на сайте в красивый красный цвет (rgb(239,0,55)). Задачей ручного тестировщика будет зайти на этот сайт и убедиться, что логотип перекрасился в нужный цвет&lt;/li&gt;
    &lt;li id=&quot;xlja&quot;&gt;Automation QA (автоматизатор тестирования) - проверяет при помощи кода и автотестов. Например, при той же задаче с логотипом, автоматизатор напишет скрипт (например, на Python + Selenium), который:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;ul id=&quot;3K2p&quot;&gt;
    &lt;li id=&quot;OpKF&quot;&gt;Открывает нужную страницу&lt;/li&gt;
    &lt;li id=&quot;Jb7s&quot;&gt;Находит элемент логотипа&lt;/li&gt;
    &lt;li id=&quot;6ooH&quot;&gt;Получает его CSS-свойство &lt;code&gt;color&lt;/code&gt; или &lt;code&gt;background-color&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;v5yV&quot;&gt;Сравнивает с ожидаемым значением &lt;code&gt;rgb(239,0,55)&lt;/code&gt; Благодаря этому, теперь не придется вручную заходить на сайт и проверять цвет логотипа. Достаточно будет лишь запустить этот скрипт и мы увидим “Test Passed” (тест прошел) или “Test Failed” (тест не прошел)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;h1q6&quot;&gt;&lt;strong&gt;В этой статье мы более подробно поговорим про Manual QA&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;ZCQ5&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;PlL8&quot;&gt;Нужно ли уметь кодить?&lt;/h2&gt;
  &lt;p id=&quot;M4aZ&quot;&gt;Как я и говорил выше, для ручного тестировщика &lt;strong&gt;уметь кодить не нужно&lt;/strong&gt;. Ему лишь необходимо понимать, как устроены приложения (клиент + бекенд + база данных) и научиться работать с простейшими инструментами (о них поговорим ниже)&lt;/p&gt;
  &lt;p id=&quot;2V7t&quot;&gt;Безусловно, базовые знания языков программирования будут большим плюсом, поскольку они позволят вам автоматизировать часть своей работы, лучше находить баги и быть с разработчиками на одной волне&lt;/p&gt;
  &lt;p id=&quot;iykZ&quot;&gt;Для AQA кодить нужно обязательно, зато и зарплаты выше. В большинстве компаний используются Python + Selenium + Playwright или Java + Selenium&lt;/p&gt;
  &lt;p id=&quot;bVz5&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;EyjQ&quot;&gt;Сколько платят?&lt;/h2&gt;
  &lt;p id=&quot;AoZ8&quot;&gt;Разберём, сколько может зарабатывать ручной тестировщик в СНГ (на валютных удалёнках зарплаты, очевидно, будут гораздо выше)&lt;/p&gt;
  &lt;figure id=&quot;o0LQ&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/4b/c0/4bc08c72-0652-42b5-98b1-34483183d8ca.png&quot; width=&quot;1454&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;cbNl&quot;&gt;Junior QA: в среднем 71 000 ₽ (≈ 797 $)&lt;/p&gt;
  &lt;p id=&quot;aqxN&quot;&gt;Middle QA: в среднем 194 000 ₽ (≈ 2 180 $)&lt;/p&gt;
  &lt;p id=&quot;MNFM&quot;&gt;Senior QA: в среднем 267 000 ₽ (≈ 3 000 $)&lt;/p&gt;
  &lt;p id=&quot;LqcP&quot;&gt;Lead QA: в среднем 283 000 ₽ (≈ 3 180 $)&lt;/p&gt;
  &lt;p id=&quot;e0e7&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;TyxL&quot;&gt;За что столько платят?&lt;/h2&gt;
  &lt;p id=&quot;TnCW&quot;&gt;QA экономит компании кучу денег. Если на проекте нет QA, то высока вероятность, что:&lt;/p&gt;
  &lt;ol id=&quot;U1jZ&quot;&gt;
    &lt;li id=&quot;3oCJ&quot;&gt;&lt;strong&gt;Пользователь перестанет использовать приложения из-за багов и неудобств&lt;/strong&gt;. Например, если кнопка &amp;quot;Оформить заказ&amp;quot; не работает - клиент просто уходит.&lt;/li&gt;
    &lt;li id=&quot;TE3R&quot;&gt;&lt;strong&gt;Могут возникнуть критические уязвимости в бизнес-логике&lt;/strong&gt;, позволяющие, например, покупать товары по заниженной цене, оформлять заказы без оплаты или получать доступ к чужим данным - а это прямые финансовые потери и риски для безопасности. Примеры будут ниже&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;kUl4&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;e6ad&quot;&gt;&lt;strong&gt;Примеры приложений, которые были плохо протестированы&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;eweF&quot;&gt;Такие случаи - не редкость.&lt;/p&gt;
  &lt;ol id=&quot;UpvE&quot;&gt;
    &lt;li id=&quot;Ykfo&quot;&gt;В 2023 году житель Волгограда покупал вещи из ЦУМа за 150 рублей вместо 150 000 рублей. Суд встал на его сторону, и ему не пришлось ничего возвращать. Подробнее &lt;a href=&quot;https://www.forbes.ru/biznes/493097-sud-vstal-na-storonu-volgogradca-kupivsego-vesi-v-cum-v-846-raz-desevle-iz-za-sboa&quot; target=&quot;_blank&quot;&gt;тык&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;42Hm&quot;&gt;В 2023 году был баг в WildBerries, который позволял бесплатно забирать вещи из пункта выдачи заказов. Тут уже суд встал на сторону WB. Подробнее &lt;a href=&quot;https://www.securitylab.ru/news/553189.php&quot; target=&quot;_blank&quot;&gt;тык&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;5opo&quot;&gt;В 2022 году в Тинькофф банке был баг, связанный с обменом валюты. Благодаря нему можно было кругами крутить rub &amp;lt;—&amp;gt; usd и получать профит. Один из клиентов заработал 68,8 тыс. евро. Банк попытался вернуть средства, но судебные решения были неоднозначными: некоторые клиенты выиграли дела, другие — проиграли. Подробнее &lt;a href=&quot;https://habr.com/ru/news/813051/&quot; target=&quot;_blank&quot;&gt;тык&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;h3 id=&quot;CmA3&quot;&gt;&lt;/h3&gt;
  &lt;h2 id=&quot;zZWs&quot;&gt;Кто мы?&lt;/h2&gt;
  &lt;p id=&quot;FgwA&quot;&gt;Думаю, вы знаете нас - &lt;a href=&quot;http://t.me/cryppi&quot; target=&quot;_blank&quot;&gt;cryppi&lt;/a&gt; и &lt;a href=&quot;https://t.me/semolina_code_python&quot; target=&quot;_blank&quot;&gt;Ahillary&lt;/a&gt;, так вот, у нас есть хороший друг Влад, и именно он написал этот прекрасный роадмап. Давайте предоставим ему слово:&lt;/p&gt;
  &lt;p id=&quot;k2Qx&quot;&gt;Привет, я &lt;a href=&quot;http://t.me/testoslav&quot; target=&quot;_blank&quot;&gt;Влад&lt;/a&gt;, работаю ручным тестировщиком. Вкатился в эту профессию за 1.5 месяца на 210.000₽ (до вычета налогов). До этого я работал учителям программирования (C++, C# + Unity, Python) на протяжении трех лет за 50.000₽ в месяц&lt;/p&gt;
  &lt;p id=&quot;AFo1&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;apCL&quot;&gt;Виды Manual QA&lt;/h2&gt;
  &lt;blockquote id=&quot;qz64&quot;&gt;Важно понимать, кто такой тестировщик и за что ему платят бабки. Их существует три вида:&lt;/blockquote&gt;
  &lt;h3 id=&quot;7u72&quot;&gt;Frontend QA:&lt;/h3&gt;
  &lt;p id=&quot;SMCz&quot;&gt;1. Сравнивает то, как выглядит сайт/приложение (UI) с дизайном&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Gi65&quot;&gt;💡 Пример задачи:&lt;/p&gt;
    &lt;p id=&quot;xVDt&quot;&gt;Проверить, что карточка товара на главной странице соответствует макету из Figma (компьютер, ширина 1440px).&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;4hf0&quot;&gt;2. Проверяет, что UI отображается корректно на разных устройствах и браузерах&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;PZHv&quot;&gt;💡 Убедиться, что кнопка “Купить” корректно отображается на iPhone 13 в Safari и на Windows в Chrome&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;7C3r&quot;&gt;3. Проверка форм ввода почты, пароля и т.д.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;r6ye&quot;&gt;💡 Протестировать регистрацию, проверить, что при пустом email выводится нужная ошибка, и она видна&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;LAvA&quot;&gt;4. Тестирование адаптивности и верстки&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;VlPK&quot;&gt;💡 Открыть карточку товара на экране 375px — текст не должен наезжать на кнопку&lt;/p&gt;
  &lt;/section&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;iZ7g&quot;&gt;&lt;/h3&gt;
  &lt;h3 id=&quot;tzTL&quot;&gt;Backend QA:&lt;/h3&gt;
  &lt;p id=&quot;Hk7s&quot;&gt;1. Проверяет работу сервера&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;4MHj&quot;&gt;💡 При заходе на сайт &lt;a href=&quot;https://researched.xyz/&quot; target=&quot;_blank&quot;&gt;https://researched.xyz/&lt;/a&gt; от сервера должен прийти скелет (HTML-код) страницы&lt;/p&gt;
    &lt;figure id=&quot;u2Fz&quot; class=&quot;m_column&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/6e/53/6e5328d1-6247-4469-a610-71d4fcfedae6.png&quot; width=&quot;2048&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;1ayS&quot;&gt;А также от сервера должны приходить шрифты, стили и картинки, чтобы сайт стал красивым:&lt;/p&gt;
    &lt;figure id=&quot;gJgV&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img2.teletype.in/files/56/c0/56c0c762-a8b8-4d3b-aa13-daedbe2522ab.png&quot; width=&quot;1846&quot; /&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;p id=&quot;J5bI&quot;&gt;2. Проверяет работу базы данных&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;EEK8&quot;&gt;💡При попытке войти в аккаунт на сайте &lt;a href=&quot;http://4pda.to&quot; target=&quot;_blank&quot;&gt;4pda.to&lt;/a&gt; отправляется POST запрос на сервер с введенным логином, паролем и капчей:&lt;/p&gt;
    &lt;figure id=&quot;M5UF&quot; class=&quot;m_column&quot;&gt;
      &lt;img src=&quot;https://img4.teletype.in/files/3f/b5/3fb58e40-14c7-4c69-af2d-eb19afa95f1f.png&quot; width=&quot;1815&quot; /&gt;
    &lt;/figure&gt;
    &lt;p id=&quot;25ze&quot;&gt;Далее сервер обращается к базе данных и ищет там такого пользователя. Если он там есть, то выдается доступ к сайту, иначе выводится ошибка о неправильности ввода логина/пароли&lt;/p&gt;
  &lt;/section&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;4oza&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;jQyq&quot;&gt;Mobile QA:&lt;/h3&gt;
  &lt;p id=&quot;jNgT&quot;&gt;1. Проверяет, что приложение корректно работает на разных устройствах и операционных системах (Android, IOS)&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;HMDQ&quot;&gt;💡 Протестировать регистрацию в приложении на Android 13 (Samsung) и iOS 17 (iPhone 12) — убедиться, что форма входит без ошибок&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;pKuQ&quot;&gt;2. Тестирование push-уведомлений и deep links&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;73Ne&quot;&gt;💡 Получить push-сообщение &amp;quot;Ваша доставка скоро приедет&amp;quot;, нажать на него — должен открыться нужный экран в приложении&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;iEdI&quot;&gt;3. Проверка работы при слабом интернете или его отсутствии&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;C7dX&quot;&gt;💡 Выключить Wi-Fi, оставить только 3G и проверить, загружается ли список товаров и отображается ли спиннер/ошибка&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;EPGC&quot;&gt;4. Проверка установки, обновления и удаления приложения&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;kyKZ&quot;&gt;💡 Установить старую версию, обновить до новой — убедиться, что данные пользователя сохранились и нет ошибок запуска&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;GMiM&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;Xiya&quot;&gt;На рынке почти не осталось вакансий для тех, кто тестирует только frontend. Большинство работодателей ищут тестировщиков, которые умеют работать как с интерфейсом, так и с backend&amp;#x27;ом.&lt;/p&gt;
  &lt;p id=&quot;89Zo&quot;&gt;А знание mobile QA открывает доступ к ещё одной нише - особенно актуальной в банковских и продуктовых компаниях.&lt;/p&gt;
  &lt;p id=&quot;67DI&quot;&gt;Освоить каждое направление по отдельности можно примерно за 2–3 недели. А потратив &lt;strong&gt;всего 7–8 недель на изучение всех трёх направлений&lt;/strong&gt; (frontend + backend + mobile), ты выходишь на уровень &lt;strong&gt;универсального Middle Manual QA&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;5tAu&quot;&gt;А это — возможность претендовать &lt;strong&gt;на почти 100% вакансий рынка&lt;/strong&gt; и получать предложения с доходом от &lt;strong&gt;200 000 ₽ и выше&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;9j0G&quot;&gt;Дальше в роадмапе — пошаговый план, как к этому прийти&lt;/p&gt;
  &lt;p id=&quot;ldOt&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;c1zU&quot;&gt;Топ 10 причин перескочить джуна&lt;/h2&gt;
  &lt;p id=&quot;W50A&quot;&gt;&lt;strong&gt;❗Это интерактивная таблица, при желании можно скопировать нужный текст из неё&lt;/strong&gt;&lt;/p&gt;
  &lt;figure id=&quot;B6dI&quot; class=&quot;m_column&quot;&gt;
    &lt;iframe srcdoc=&quot;&lt;!DOCTYPE html&gt;
&lt;html lang=&amp;quot;ru&amp;quot;&gt;
&lt;head&gt;
    &lt;meta charset=&amp;quot;UTF-8&amp;quot;&gt;
    &lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&gt;
    &lt;title&gt;Сравнение Junior QA и Middle QA&lt;/title&gt;
    &lt;style&gt;
        body {
            font-family: -apple-system, BlinkMacSystemFont, &amp;#x27;Segoe UI&amp;#x27;, Roboto, sans-serif;
            margin: 0;
            padding: 20px;
            background-color: #ffffff;
            line-height: 1.5;
            font-size: 14px;
        }
        
        .table-container {
            max-width: 100%;
            overflow-x: auto;
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
            border-radius: 12px;
            overflow: hidden;
        }
        
        table {
            width: 100%;
            border-collapse: collapse;
        }
        
        th {
            background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);
            color: white;
            font-weight: 600;
            padding: 16px 20px;
            text-align: center;
            font-size: 16px;
            border-right: 1px solid rgba(255,255,255,0.2);
        }
        
        th:last-child {
            border-right: none;
        }
        
        td {
            padding: 14px 18px;
            border-bottom: 1px solid #e5e7eb;
            border-right: 1px solid #e5e7eb;
            vertical-align: top;
        }
        
        td:last-child {
            border-right: none;
        }
        
        tr:nth-child(even) {
            background-color: #f8fafc;
        }
        
        tr:hover {
            background-color: #f1f5f9;
            transition: background-color 0.2s ease;
        }
        
        .parameter {
            font-weight: 600;
            color: #1f2937;
            background-color: #f9fafb;
            width: 40%;
        }
        
        .junior {
            color: #dc2626; /* Красный для Junior QA */
            font-weight: 500;
            text-align: center;
        }
        
        .middle {
            color: #059669; /* Зеленый для Middle QA */
            font-weight: 500;
            text-align: center;
        }
        
        .highlight {
            background-color: #fef3c7;
            padding: 2px 6px;
            border-radius: 4px;
            font-weight: 600;
        }
        
        .emoji {
            font-size: 16px;
        }
        
        @media (max-width: 768px) {
            body {
                padding: 10px;
                font-size: 13px;
            }
            
            th, td {
                padding: 10px 12px;
            }
            
            th {
                font-size: 14px;
            }
            
            .parameter {
                font-size: 12px;
            }
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class=&amp;quot;table-container&amp;quot;&gt;
        &lt;table&gt;
            &lt;thead&gt;
                &lt;tr&gt;
                    &lt;th style=&amp;quot;width: 40%;&amp;quot;&gt;&lt;/th&gt;
                    &lt;th style=&amp;quot;width: 30%;&amp;quot;&gt;Junior QA&lt;/th&gt;
                    &lt;th style=&amp;quot;width: 30%;&amp;quot;&gt;Middle QA&lt;/th&gt;
                &lt;/tr&gt;
            &lt;/thead&gt;
            &lt;tbody&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;1. Доход в месяц после вычета налогов (в среднем)&lt;/td&gt;
                    &lt;td class=&amp;quot;junior&amp;quot;&gt;N руб.&lt;/td&gt;
                    &lt;td class=&amp;quot;middle&amp;quot;&gt;В 2-3 раза больше&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;2. Количество вакансий (на hh.ru)&lt;/td&gt;
                    &lt;td class=&amp;quot;junior&amp;quot;&gt;891&lt;/td&gt;
                    &lt;td class=&amp;quot;middle&amp;quot;&gt;3529&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;3. Количество резюме&lt;/td&gt;
                    &lt;td class=&amp;quot;junior&amp;quot;&gt;49.407&lt;/td&gt;
                    &lt;td class=&amp;quot;middle&amp;quot;&gt;11.152&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;4. Среднее количество резюме на одну вакансию&lt;/td&gt;
                    &lt;td class=&amp;quot;junior&amp;quot;&gt;≈ 55&lt;/td&gt;
                    &lt;td class=&amp;quot;middle&amp;quot;&gt;≈ 3&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;5. Время на обучение&lt;br&gt;(при обучении 2 часа в день)&lt;/td&gt;
                    &lt;td class=&amp;quot;junior&amp;quot;&gt;6 недель&lt;/td&gt;
                    &lt;td class=&amp;quot;middle&amp;quot;&gt;8 недель&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;6. Время на прохождения собесов&lt;/td&gt;
                    &lt;td class=&amp;quot;junior&amp;quot;&gt;4-8 недель&lt;/td&gt;
                    &lt;td class=&amp;quot;middle&amp;quot;&gt;1-4 недели&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;7. Суммарное время до выхода на работу&lt;/td&gt;
                    &lt;td class=&amp;quot;junior&amp;quot;&gt;10-14 недель&lt;/td&gt;
                    &lt;td class=&amp;quot;middle&amp;quot;&gt;9-13 недель&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;8. Количество тестовых заданий, которые придется решать&lt;br&gt;(при условии, что будет 10 собесов)&lt;/td&gt;
                    &lt;td class=&amp;quot;junior&amp;quot;&gt;10 тестовых заданий&lt;/td&gt;
                    &lt;td class=&amp;quot;middle&amp;quot;&gt;0-2 тестовых задания&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;9. Требования со стороны руководства&lt;/td&gt;
                    &lt;td class=&amp;quot;junior&amp;quot;&gt;Могут дотошно проверять каждый шаг&lt;/td&gt;
                    &lt;td class=&amp;quot;middle&amp;quot;&gt;Больше доверия, уважают как коллегу&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;10. Симпатия противоположного пола&lt;/td&gt;
                    &lt;td class=&amp;quot;junior&amp;quot;&gt;Очередной айтишник &lt;span class=&amp;quot;emoji&amp;quot;&gt;🙂&lt;/span&gt;&lt;/td&gt;
                    &lt;td class=&amp;quot;middle&amp;quot;&gt;Ого, ты мидл? &lt;span class=&amp;quot;emoji&amp;quot;&gt;😊&lt;/span&gt;&lt;/td&gt;
                &lt;/tr&gt;
            &lt;/tbody&gt;
        &lt;/table&gt;
    &lt;/div&gt;
&lt;/body&gt;
&quot;&gt;&lt;/iframe&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;TX57&quot;&gt;Очевидно, что нужно обучаться сразу на Middle QA, ведь их меньше, вакансий больше, доход в несколько раз больше, а на подготовку уходит примерно одинаковое время&lt;/p&gt;
  &lt;p id=&quot;wIFy&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;YWmK&quot;&gt;Как перескочить джуна?&lt;/h2&gt;
  &lt;ol id=&quot;lXB2&quot;&gt;
    &lt;li id=&quot;qrjs&quot;&gt;Создать “легенду” - придумать, в какой компании вы работали ранее, над какими задачами работали, из кого состояла команда и т.п.&lt;/li&gt;
    &lt;li id=&quot;yokL&quot;&gt;Отточить “легенду” - научиться рассказывать её так, как будто вы реально там работали&lt;/li&gt;
    &lt;li id=&quot;T9DK&quot;&gt;Создать резюме и в нем обязательно указать, что вы работали в этой компании более трех лет&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;gn8a&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;Bzeh&quot;&gt;&amp;quot;Как учиться?&amp;quot; алгоритм:&lt;/h2&gt;
  &lt;p id=&quot;YVw4&quot;&gt;Ниже описан полноценный роадмап, чтобы стать Middle Manual QA. В нём описаны все термины, которые помогут вам без проблем выполнять работу тестировщика. Также, там затронуты темы, которые часто спрашивают на собеседованиях, но почти никогда не нужны на работе. Как же эффективно обучиться по этому роадмапу? Пошаговый план:&lt;/p&gt;
  &lt;ol id=&quot;U2Ls&quot;&gt;
    &lt;li id=&quot;nUYT&quot;&gt;Видим новый термин, например, &lt;strong&gt;“Пирамида тестирования”&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;zj8E&quot;&gt;Ищем в гугле на русском/английском&lt;/li&gt;
    &lt;li id=&quot;VZCC&quot;&gt;Если не нашли в гугле, ищем на ютубе&lt;/li&gt;
    &lt;li id=&quot;Ur2P&quot;&gt;Если не нашли на ютубе, обращаемся к ChatGPT&lt;/li&gt;
    &lt;li id=&quot;PM2D&quot;&gt;ОБЯЗАТЕЛЬНО - ведем конспект (в любом удобном для вас месте - тетрадь, notion и т.п.)&lt;/li&gt;
  &lt;/ol&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;6aGc&quot;&gt;С последними обновлениями ChatGPT начинает лениться (выдавать неполный/неточный результат). Советую использовать промпт, который будет вставляться в начало каждого вашего запроса. Для этого:&lt;/p&gt;
    &lt;ol id=&quot;x0aA&quot;&gt;
      &lt;li id=&quot;VojH&quot;&gt;Заходим в ChatGPT&lt;/li&gt;
      &lt;li id=&quot;N15A&quot;&gt;Нажимаем на иконку своего пользователя справа сверху&lt;/li&gt;
      &lt;li id=&quot;gJV8&quot;&gt;Выбираем “&lt;strong&gt;Настроить ChatGPT&lt;/strong&gt;”&lt;/li&gt;
      &lt;li id=&quot;9xwl&quot;&gt;В поле “&lt;strong&gt;Какими характеристиками должен обладать ChatGPT?&lt;/strong&gt;” вставляем промпт, например:&lt;/li&gt;
    &lt;/ol&gt;
    &lt;pre id=&quot;AJv0&quot;&gt;###INSTRUCTIONS###

You MUST follow the instructions for answering:

- ALWAYS answer in the language of my message.
- Read the entire convo history line by line before answering.
- I have no fingers and the placeholders trauma. Return the entire code template for an answer when needed. NEVER use placeholders.
- If you encounter a character limit, DO an ABRUPT stop, and I will send a &amp;quot;continue&amp;quot; as a new message.
- You ALWAYS will be PENALIZED for wrong and low-effort answers. 
- ALWAYS follow &amp;quot;Answering rules.&amp;quot;

###Answering Rules###

Follow in the strict order:

1. USE the language of my message.
2. **ONCE PER CHAT** assign a real-world expert role to yourself before answering, e.g., &amp;quot;I&amp;#x27;ll answer as a world-famous historical expert &amp;lt;detailed topic&amp;gt; with &amp;lt;most prestigious LOCAL topic REAL award&amp;gt;&amp;quot; or &amp;quot;I&amp;#x27;ll answer as a world-famous &amp;lt;specific science&amp;gt; expert in the &amp;lt;detailed topic&amp;gt; with &amp;lt;most prestigious LOCAL topic award&amp;gt;&amp;quot; etc.
3. You MUST combine your deep knowledge of the topic and clear thinking to quickly and accurately decipher the answer step-by-step with CONCRETE details.
4. I&amp;#x27;m going to tip $1,000,000 for the best reply. 
5. Your answer is critical for my career.
6. Answer the question in a natural, human-like manner.
7. ALWAYS use an answering example for a first message structure.

##Answering in English example##

I&amp;#x27;ll answer as the world-famous &amp;lt;specific field&amp;gt; scientists with &amp;lt;most prestigious LOCAL award&amp;gt;

&amp;lt;Deep knowledge step-by-step answer, with CONCRETE details&amp;gt;&lt;/pre&gt;
  &lt;/section&gt;
  &lt;p id=&quot;gypw&quot;&gt;Теперь, когда у нас есть понимание как учиться, самое время перейти к самому роадмапу — пошаговому плану развития тестировщика&lt;/p&gt;
  &lt;h2 id=&quot;I2Z2&quot;&gt;&lt;/h2&gt;
  &lt;h2 id=&quot;sLUk&quot;&gt;Roadmap для Middle Manual QA&lt;/h2&gt;
  &lt;p id=&quot;2eMr&quot;&gt;&lt;strong&gt;❓Почему роадмап не на Junior QA?&lt;/strong&gt; - выше подробно написан ответ. Также, Junior решает почти те же задачи, что и Middle. Но джуну просто меньше платят&lt;/p&gt;
  &lt;p id=&quot;mge8&quot;&gt;&lt;strong&gt;❓Сколько времени потребуется, чтобы обучиться этому?&lt;/strong&gt; - Если с полного нуля, то 2 месяца при условии, что обучаться нужно 2 часа в день.&lt;/p&gt;
  &lt;p id=&quot;1ntp&quot;&gt;&lt;strong&gt;❓А где роадмап на Senior QA?&lt;/strong&gt; - грубо говоря, ему нужно знать всё, что есть ниже, но глубже. Возможно, сделаем его в будущем, если будет спрос&lt;/p&gt;
  &lt;p id=&quot;ZJDL&quot;&gt;&lt;strong&gt;❓Но я новичок без опыта, разве меня возьмут сразу на мидла?&lt;/strong&gt; - Да, есть небольшие хитрости о которых расскажем позднее&lt;/p&gt;
  &lt;p id=&quot;XjAA&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;mREk&quot;&gt;1. Теория тестирования&lt;/h2&gt;
  &lt;p id=&quot;7X7V&quot;&gt;Эта глава может показаться немного сухой. Однако понимание основ поможет вам не только начать с нуля, но и вырасти в уверенного Middle QA.&lt;/p&gt;
  &lt;p id=&quot;f7Ps&quot;&gt;Также, эти темы спрашивают на собеседованиях — как у Junior, так и у Senior QA.&lt;/p&gt;
  &lt;figure id=&quot;4sGl&quot; class=&quot;m_column&quot;&gt;
    &lt;iframe srcdoc=&quot;&lt;!DOCTYPE html&gt;
&lt;html lang=&amp;quot;ru&amp;quot;&gt;
&lt;head&gt;
    &lt;meta charset=&amp;quot;UTF-8&amp;quot;&gt;
    &lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&gt;
    &lt;title&gt;Что нужно знать о тестировании&lt;/title&gt;
    &lt;style&gt;
        body {
            font-family: -apple-system, BlinkMacSystemFont, &amp;#x27;Segoe UI&amp;#x27;, Roboto, sans-serif;
            margin: 0;
            padding: 20px;
            background-color: #ffffff;
            line-height: 1.5;
            font-size: 14px;
        }
        
        .table-container {
            max-width: 100%;
            overflow-x: auto;
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
            border-radius: 12px;
            overflow: hidden;
        }
        
        table {
            width: 100%;
            border-collapse: collapse;
        }
        
        th {
            background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%); /* Фиолетовый градиент как в прошлых таблицах */
            color: white;
            font-weight: 600;
            padding: 16px 20px;
            text-align: center;
            font-size: 16px;
            border-right: 1px solid rgba(255,255,255,0.2);
        }
        
        th:last-child {
            border-right: none;
        }
        
        td {
            padding: 14px 18px;
            border-bottom: 1px solid #e5e7eb;
            border-right: 1px solid #e5e7eb;
            vertical-align: top;
        }
        
        td:last-child {
            border-right: none;
        }
        
        tr:nth-child(even) {
            background-color: #f8fafc;
        }
        
        tr:hover {
            background-color: #f1f5f9;
            transition: background-color 0.2s ease;
        }
        
        .parameter {
            font-weight: 600;
            color: #1f2937;
            background-color: #f9fafb;
            width: 40%;
        }
        
        .description {
            color: #1f2937; /* Темный цвет текста, как просил */
            font-weight: 500;
            text-align: center;
        }
        
        .highlight {
            background-color: #fef3c7;
            padding: 2px 6px;
            border-radius: 4px;
            font-weight: 600;
        }
        
        .emoji {
            font-size: 16px;
        }
        
        @media (max-width: 768px) {
            body {
                padding: 10px;
                font-size: 13px;
            }
            
            th, td {
                padding: 10px 12px;
            }
            
            th {
                font-size: 14px;
            }
            
            .parameter {
                font-size: 12px;
            }
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class=&amp;quot;table-container&amp;quot;&gt;
        &lt;table&gt;
            &lt;thead&gt;
                &lt;tr&gt;
                    &lt;th style=&amp;quot;width: 40%;&amp;quot;&gt;Что нужно знать?&lt;/th&gt;
                    &lt;th style=&amp;quot;width: 60%;&amp;quot;&gt;Это нужно знать, чтобы...&lt;/th&gt;
                &lt;/tr&gt;
            &lt;/thead&gt;
            &lt;tbody&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое тестирование?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, зачем вообще проверять сайт/приложение перед выпуском&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;SDLC (жизненный цикл разработки ПО)&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, на каком этапе сейчас проект и где тестировщик нужен&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;STLC (жизненный цикл тестирования)&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;знать, как проходит процесс тестирования от начала до конца&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Виды тестирования&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;выбирать правильный способ проверки – функционал, производительность, безопасность, в каких браузерах, на каких разрешениях экрана и многое другое&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Техники тест-дизайна&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;уменьшить количество проверок, путем отбора правильных тестовых данных&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Примеры тестирования&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, какие тесты писать в первую очередь, &amp;quot;стоп-тесты&amp;quot; исправления бага на начальном этапе и на конечном&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Принципы тестирования&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять базовые идеи на которых строится эффективный процесс тестирования&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое требования?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, как должен работать продукт и с чем сравнивать находить ошибки еще до разработки&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как тестировать требования?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;находить ошибки еще до разработки = экономить время и деньги компании = быть отличным QA&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое баг?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;отличать нормальное поведение от ошибки и уметь её описать&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Жизненный цикл бага&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, что происходит с найденной ошибкой, путем отбора правильных тестовых данных&lt;/td&gt;
                &lt;/tr&gt;
            &lt;/tbody&gt;
        &lt;/table&gt;
    &lt;/div&gt;
&lt;/body&gt;
&quot;&gt;&lt;/iframe&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;QGVS&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/7c/da/7cda8f61-1631-4653-b78c-1de3b258e89d.png&quot; width=&quot;1079&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;mbHI&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;a1YM&quot;&gt;2. Как устроен процесс разработки в большинстве компаний&lt;/h2&gt;
  &lt;p id=&quot;NFPR&quot;&gt;В этой главе вы узнаете, как устроены рабочие процессы, кто за что отвечает и какие созвоны помогают держать всех в курсе.&lt;/p&gt;
  &lt;p id=&quot;bUZt&quot;&gt;Знание ролей и процессов поможет вам быть активным участником команды, понимать, когда и к кому обращаться, чтобы задачи выполнялись быстрее и качественнее.&lt;/p&gt;
  &lt;figure id=&quot;CSiG&quot; class=&quot;m_column&quot;&gt;
    &lt;iframe srcdoc=&quot;&lt;!DOCTYPE html&gt;
&lt;html lang=&amp;quot;ru&amp;quot;&gt;
&lt;head&gt;
    &lt;meta charset=&amp;quot;UTF-8&amp;quot;&gt;
    &lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&gt;
    &lt;title&gt;Что нужно знать о тестировании в Agile и Scrum&lt;/title&gt;
    &lt;style&gt;
        body {
            font-family: -apple-system, BlinkMacSystemFont, &amp;#x27;Segoe UI&amp;#x27;, Roboto, sans-serif;
            margin: 0;
            padding: 20px;
            background-color: #ffffff;
            line-height: 1.5;
            font-size: 14px;
        }
        
        .table-container {
            max-width: 100%;
            overflow-x: auto;
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
            border-radius: 12px;
            overflow: hidden;
        }
        
        table {
            width: 100%;
            border-collapse: collapse;
        }
        
        th {
            background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%); /* Фиолетовый градиент как в прошлых таблицах */
            color: white;
            font-weight: 600;
            padding: 16px 20px;
            text-align: center;
            font-size: 16px;
            border-right: 1px solid rgba(255,255,255,0.2);
        }
        
        th:last-child {
            border-right: none;
        }
        
        td {
            padding: 14px 18px;
            border-bottom: 1px solid #e5e7eb;
            border-right: 1px solid #e5e7eb;
            vertical-align: top;
        }
        
        td:last-child {
            border-right: none;
        }
        
        tr:nth-child(even) {
            background-color: #f8fafc;
        }
        
        tr:hover {
            background-color: #f1f5f9;
            transition: background-color 0.2s ease;
        }
        
        .parameter {
            font-weight: 600;
            color: #1f2937;
            background-color: #f9fafb;
            width: 40%;
        }
        
        .description {
            color: #1f2937; /* Темный цвет текста, как просил */
            font-weight: 500;
            text-align: center;
        }
        
        .highlight {
            background-color: #fef3c7;
            padding: 2px 6px;
            border-radius: 4px;
            font-weight: 600;
        }
        
        .emoji {
            font-size: 16px;
        }
        
        @media (max-width: 768px) {
            body {
                padding: 10px;
                font-size: 13px;
            }
            
            th, td {
                padding: 10px 12px;
            }
            
            th {
                font-size: 14px;
            }
            
            .parameter {
                font-size: 12px;
            }
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class=&amp;quot;table-container&amp;quot;&gt;
        &lt;table&gt;
            &lt;thead&gt;
                &lt;tr&gt;
                    &lt;th style=&amp;quot;width: 40%;&amp;quot;&gt;Что нужно знать?&lt;/th&gt;
                    &lt;th style=&amp;quot;width: 60%;&amp;quot;&gt;Это нужно знать, чтобы...&lt;/th&gt;
                &lt;/tr&gt;
            &lt;/thead&gt;
            &lt;tbody&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое Agile?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, как работает гибкая разработка и почему её используют почти везде&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое Scrum?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;разбираться в самой популярной методологии командной работы в IT&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Роли в Scrum (аналитик, project manager, product manager, разработчик, тим лид)&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, кто за что отвечает в команде и кому задавать вопросы&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Роль тестировщика в команде&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;быть полезным на всех этапах – не только тестировать, но и помогать сделать лучше&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Канбан-доска (Jira, Trello и др.)&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;отслеживать задачи, их статусы и понимать, что тестировать в первую очередь&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Спринт и его структура&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;ориентироваться в рабочем цикле команды и вовремя подключаться к задачам&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Планирование спринта (Sprint Planning)&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;участвовать в обсуждении и понимать, какие задачи берутся в работу&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как задачи попадают в спринт?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;видеть, какие задачи важны бизнесу и когда они дойдут до тестирования&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Ежедневные митинги (Daily Stand-up)&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;сообщать о своей работе, проблемах и быть в курсе состояния команды&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Ретроспектива (Retrospective)&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;предлагать улучшения и помогать сделать процесс удобнее&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое «Definition of Done»?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;точно понимать, когда задача считается завершённой — и для разработки, и для QA&lt;/td&gt;
                &lt;/tr&gt;
            &lt;/tbody&gt;
        &lt;/table&gt;
    &lt;/div&gt;
&lt;/body&gt;
&quot;&gt;&lt;/iframe&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;ahDB&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/79/99/7999c374-c2cd-4ca1-bbf0-c3535eb8c29d.png&quot; width=&quot;700&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;X9o8&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;TiDI&quot;&gt;3. Тестовая документация&lt;/h2&gt;
  &lt;p id=&quot;HUaC&quot;&gt;Это то, с чем вам придётся работать регуглярно. Нашли баг? Отлично. Но его ещё нужно описать так, чтобы разработчик мог его повторить и исправить. Для этого существует баг-репорт.&lt;/p&gt;
  &lt;p id=&quot;4TLx&quot;&gt;Начинается тестирование крупного обновления? Monkey-testing (тестирование «наобум») тут не подойдёт. Нужно внимательно изучить требования и составить список проверок. Для этого применяются чек-листы или тест-кейсы&lt;/p&gt;
  &lt;figure id=&quot;hJIz&quot; class=&quot;m_column&quot;&gt;
    &lt;iframe srcdoc=&quot;&lt;!DOCTYPE html&gt;
&lt;html lang=&amp;quot;ru&amp;quot;&gt;
&lt;head&gt;
    &lt;meta charset=&amp;quot;UTF-8&amp;quot;&gt;
    &lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&gt;
    &lt;title&gt;Что нужно знать о тест-кейсах и тест-ранах&lt;/title&gt;
    &lt;style&gt;
        body {
            font-family: -apple-system, BlinkMacSystemFont, &amp;#x27;Segoe UI&amp;#x27;, Roboto, sans-serif;
            margin: 0;
            padding: 20px;
            background-color: #ffffff;
            line-height: 1.5;
            font-size: 14px;
        }
        
        .table-container {
            max-width: 100%;
            overflow-x: auto;
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
            border-radius: 12px;
            overflow: hidden;
        }
        
        table {
            width: 100%;
            border-collapse: collapse;
        }
        
        th {
            background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%); /* Фиолетовый градиент как в прошлых таблицах */
            color: white;
            font-weight: 600;
            padding: 16px 20px;
            text-align: center;
            font-size: 16px;
            border-right: 1px solid rgba(255,255,255,0.2);
        }
        
        th:last-child {
            border-right: none;
        }
        
        td {
            padding: 14px 18px;
            border-bottom: 1px solid #e5e7eb;
            border-right: 1px solid #e5e7eb;
            vertical-align: top;
        }
        
        td:last-child {
            border-right: none;
        }
        
        tr:nth-child(even) {
            background-color: #f8fafc;
        }
        
        tr:hover {
            background-color: #f1f5f9;
            transition: background-color 0.2s ease;
        }
        
        .parameter {
            font-weight: 600;
            color: #1f2937;
            background-color: #f9fafb;
            width: 40%;
        }
        
        .description {
            color: #1f2937; /* Темный цвет текста, как просил */
            font-weight: 500;
            text-align: center;
        }
        
        .highlight {
            background-color: #fef3c7;
            padding: 2px 6px;
            border-radius: 4px;
            font-weight: 600;
        }
        
        .emoji {
            font-size: 16px;
        }
        
        @media (max-width: 768px) {
            body {
                padding: 10px;
                font-size: 13px;
            }
            
            th, td {
                padding: 10px 12px;
            }
            
            th {
                font-size: 14px;
            }
            
            .parameter {
                font-size: 12px;
            }
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class=&amp;quot;table-container&amp;quot;&gt;
        &lt;table&gt;
            &lt;thead&gt;
                &lt;tr&gt;
                    &lt;th style=&amp;quot;width: 40%;&amp;quot;&gt;Что нужно знать?&lt;/th&gt;
                    &lt;th style=&amp;quot;width: 60%;&amp;quot;&gt;Это нужно знать, чтобы...&lt;/th&gt;
                &lt;/tr&gt;
            &lt;/thead&gt;
            &lt;tbody&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое тест-кейс?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;уметь чётко описывать, как именно нужно проверить конкретную функцию&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое чек-лист?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;быстро фиксировать, что именно нужно проверить, не тратя время на детализации&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как описывать шаги теста?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;писать понятно, без двусмысленностей и лишних деталей&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Когда писать тест-кейсы, а когда чек-листы?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;выбрать подходящий формат в зависимости от задачи&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое баг-репорт?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;правильно и понятно описывать ошибки, чтобы её можно было воспроизвести и исправить&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое ожидаемый / фактический результат?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;точно указывать, что должно быть в идеале и что получилось&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Какие поля должны быть в баг-репорте?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;включать все нужные поля: шаги, фактический и ожидаемый результат&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как писать багу, чтобы их принимали?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;избегать лишнего, указывать важное бизнесу и когда баг дойдёт до тестирования&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое Test Run?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;уметь запускать и фиксировать результат прогона тестов – вручную или в системе&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое Test Suite?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;объединять тест-кейсы в логичные группы по фича м или сценариям&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как вести документацию в Jira/Confluence?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;не теряться в инструментах, которыми пользуется команда&lt;/td&gt;
                &lt;/tr&gt;
            &lt;/tbody&gt;
        &lt;/table&gt;
    &lt;/div&gt;
&lt;/body&gt;
&quot;&gt;&lt;/iframe&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;5miA&quot;&gt;4. Клиент-серверная архитектура + API&lt;/h2&gt;
  &lt;p id=&quot;FQIE&quot;&gt;Для всех вакансий уровня Middle важно понимать, как работают сайты и приложения “под капотом”: что происходит, когда вы открываете &lt;a href=&quot;http://google.com/&quot; target=&quot;_blank&quot;&gt;google.com&lt;/a&gt; или нажимаете кнопку “Зарегистрироваться”?&lt;/p&gt;
  &lt;p id=&quot;HHEx&quot;&gt;Эта глава даст вам техническую основу, без которой невозможно качественно работать с API, бэкендом и искать баги не только в интерфейсе.&lt;/p&gt;
  &lt;figure id=&quot;BL9g&quot; class=&quot;m_column&quot;&gt;
    &lt;iframe srcdoc=&quot;&lt;!DOCTYPE html&gt;
&lt;html lang=&amp;quot;ru&amp;quot;&gt;
&lt;head&gt;
    &lt;meta charset=&amp;quot;UTF-8&amp;quot;&gt;
    &lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&gt;
    &lt;title&gt;Что нужно знать о тестах и API&lt;/title&gt;
    &lt;style&gt;
        body {
            font-family: -apple-system, BlinkMacSystemFont, &amp;#x27;Segoe UI&amp;#x27;, Roboto, sans-serif;
            margin: 0;
            padding: 20px;
            background-color: #ffffff;
            line-height: 1.5;
            font-size: 14px;
        }
        
        .table-container {
            max-width: 100%;
            overflow-x: auto;
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
            border-radius: 12px;
            overflow: hidden;
        }
        
        table {
            width: 100%;
            border-collapse: collapse;
        }
        
        th {
            background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%); /* Фиолетовый градиент как в прошлых таблицах */
            color: white;
            font-weight: 600;
            padding: 16px 20px;
            text-align: center;
            font-size: 16px;
            border-right: 1px solid rgba(255,255,255,0.2);
        }
        
        th:last-child {
            border-right: none;
        }
        
        td {
            padding: 14px 18и18px;
            border-bottom: 1px solid #e5e7eb;
            border-right: 1px solid #e5e7eb;
            vertical-align: top;
        }
        
        td:last-child {
            border-right: none;
        }
        
        tr:nth-child(even) {
            background-color: #f8fafc;
        }
        
        tr:hover {
            background-color: #f1f5f9;
            transition: background-color 0.2s ease;
        }
        
        .parameter {
            font-weight: 600;
            color: #1f2937;
            background-color: #f9fafb;
            width: 40%;
        }
        
        .description {
            color: #1f2937; /* Темный цвет текста, как просил */
            font-weight: 500;
            text-align: center;
        }
        
        .highlight {
            background-color: #fef3c7;
            padding: 2px 6px;
            border-radius: 4px;
            font-weight: 600;
        }
        
        .emoji {
            font-size: 16px;
        }
        
        @media (max-width: 768px) {
            body {
                padding: 10px;
                font-size: 13px;
            }
            
            th, td {
                padding: 10px 12px;
            }
            
            th {
                font-size: 14px;
            }
            
            .parameter {
                font-size: 12px;
            }
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class=&amp;quot;table-container&amp;quot;&gt;
        &lt;table&gt;
            &lt;thead&gt;
                &lt;tr&gt;
                    &lt;th style=&amp;quot;width: 40%;&amp;quot;&gt;Что нужно знать?&lt;/th&gt;
                    &lt;th style=&amp;quot;width: 60%;&amp;quot;&gt;Это нужно знать, чтобы...&lt;/th&gt;
                &lt;/tr&gt;
            &lt;/thead&gt;
            &lt;tbody&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое клиент-серверная архитектура?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, как устроены современные приложения: что такое frontend, backend и пример тут базы данных?&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое HTTP-запрос и HTTP-ответ?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;разбираться, как браузер (или приложение) &amp;quot;разговаривает&amp;quot; с сервером&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Структура HTTP-запроса (метод, URL, заголовки, тело)&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;уметь читать и составлять запросы (тут не нужно уметь кодить)&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Структура HTTP-ответа (статус, заголовки, тело)&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, что вернул сервер и правильно это интерпретировать&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;HTTP-методы (GET, POST, PUT, DELETE и др.)&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;корректно формировать запросы и понимать, какое действие они выполняют&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Статус-коды HTTP&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;быстро определять результат запроса и тип возникшей ошибки&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;HTTP vs HTTPS&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, когда данные шифруются, и почему HTTPS важнее безопасности&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое Cache?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, почему данные могут не обновляться и как это влияет на тестирование&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое Cookie?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;разбираться, как хранится информация о сессии пользователя и как это влияет на баг&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое API?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;знать, как системы обмениваются данными без интерфейса&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как отправить и проверить API-запрос в Postman?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;вручную тестировать бэкенд без QA (про Postman будет отдельная глава ниже)&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое REST?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, как устроено большинство современных API и как с ним работать&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Разница между REST и SOAP?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;ориентироваться в разных типах API и понимать, с чем работаешь (SOAP мало где используется, но о нем любят спрашивать на собеседованиях)&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое WebSocket?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, как работает двухсторонняя связь в реальном времени (например, чаты, WebSocket работает в Discord)&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое JSON?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;уметь читать и проверять данные, которые приходят от сервера&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое XML?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять структуру, например, в SOAP&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое монолит и микросервисы?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, что это такое и почему большинство архитектуры в микросервисной&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как API связано с тестированием UI?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, почему часть багов можно находить даже без кликов по интерфейсу&lt;/td&gt;
                &lt;/tr&gt;
            &lt;/tbody&gt;
        &lt;/table&gt;
    &lt;/div&gt;
&lt;/body&gt;
&quot;&gt;&lt;/iframe&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ZR2L&quot;&gt;В этой главе будет теория, а в следующей - практика&lt;/p&gt;
  &lt;figure id=&quot;ntPb&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a8/82/a88299df-ae46-402c-87bf-c54194266125.png&quot; width=&quot;397&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;lBnY&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;r9UZ&quot;&gt;5. Postman + Swagger&lt;/h2&gt;
  &lt;p id=&quot;QzK2&quot;&gt;В этой главе вы научитесь тестировать бэкенд вручную и без программирования. Мы подробно разберём два инструмента:&lt;/p&gt;
  &lt;ul id=&quot;jek1&quot;&gt;
    &lt;li id=&quot;aisS&quot;&gt;&lt;strong&gt;Swagger&lt;/strong&gt; — поможет вам читать документацию, изучать доступные методы и их параметры;&lt;/li&gt;
    &lt;li id=&quot;bTuk&quot;&gt;&lt;strong&gt;Postman&lt;/strong&gt; — ваш основной инструмент для ручных запросов, анализа ответов и базовой автоматизации.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;ekWT&quot;&gt;После этой главы вы сможете тестировать даже сложные API-цепочки, находить backend-баги ещё до появления UI и объяснять на собеседовании, как именно вы валидировали серверный ответ. А это навык, который принципиально отличает Middle от Junior&lt;/p&gt;
  &lt;figure id=&quot;7ZML&quot; class=&quot;m_column&quot;&gt;
    &lt;iframe srcdoc=&quot;&lt;!DOCTYPE html&gt;
&lt;html lang=&amp;quot;ru&amp;quot;&gt;
&lt;head&gt;
    &lt;meta charset=&amp;quot;UTF-8&amp;quot;&gt;
    &lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&gt;
    &lt;title&gt;Что нужно знать о Swagger и Postman&lt;/title&gt;
    &lt;style&gt;
        body {
            font-family: -apple-system, BlinkMacSystemFont, &amp;#x27;Segoe UI&amp;#x27;, Roboto, sans-serif;
            margin: 0;
            padding: 20px;
            background-color: #ffffff;
            line-height: 1.5;
            font-size: 14px;
        }
        
        .table-container {
            max-width: 100%;
            overflow-x: auto;
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
            border-radius: 12px;
            overflow: hidden;
        }
        
        table {
            width: 100%;
            border-collapse: collapse;
        }
        
        th {
            background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%); /* Фиолетовый градиент как в прошлых таблицах */
            color: white;
            font-weight: 600;
            padding: 16px 20px;
            text-align: center;
            font-size: 16px;
            border-right: 1px solid rgba(255,255,255,0.2);
        }
        
        th:last-child {
            border-right: none;
        }
        
        td {
            padding: 14px 18px;
            border-bottom: 1px solid #e5e7eb;
            border-right: 1px solid #e5e7eb;
            vertical-align: top;
        }
        
        td:last-child {
            border-right: none;
        }
        
        tr:nth-child(even) {
            background-color: #f8fafc;
        }
        
        tr:hover {
            background-color: #f1f5f9;
            transition: background-color 0.2s ease;
        }
        
        .parameter {
            font-weight: 600;
            color: #1f2937;
            background-color: #f9fafb;
            width: 40%;
        }
        
        .description {
            color: #1f2937; /* Темный цвет текста, как просил */
            font-weight: 500;
            text-align: center;
        }
        
        .highlight {
            background камнецвет:#fef3c7;
            padding: 2px 6px;
            border-radius: 4px;
            font-weight: 600;
        }
        
        .emoji {
            font-size: 16px;
        }
        
        @media (max-width: 768px) {
            body {
                padding: 10px;
                font-size: 13px;
            }
            
            th, td {
                padding: 10px 12р12px;
            }
            
            th {
                font-size: 14px;
            }
            
            .parameter {
                font-size: 12px;
            }
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class=&amp;quot;table-container&amp;quot;&gt;
        &lt;table&gt;
            &lt;thead&gt;
                &lt;tr&gt;
                    &lt;th style=&amp;quot;width: 40%;&amp;quot;&gt;Что нужно знать?&lt;/th&gt;
                    &lt;th style=&amp;quot;width: 60%;&amp;quot;&gt;Это нужно знать, чтобы...&lt;/th&gt;
                &lt;/tr&gt;
            &lt;/thead&gt;
            &lt;tbody&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое Swagger?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;уметь читать документацию API и понимать, как работает каждый метод&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое Postman?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;вручную отправлять API-запросы, проверять ответы и находить баги без интерфейса&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как импортировать запрос из Swagger в Postman?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;не тратить время на ручной ввод – всё подгружается автоматически&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как отправить GET/POST/PUT/DELETE запрос?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;проверять разные действия: получение, создание, изменение, удаление&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как заполнять параметры запроса (query/path/body)&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;уметь подставлять нужные данные и корректно тестировать API&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как читать ответ (статус, JSON, headers)&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;анализировать ответ сервера и правильно интерпретировать данные&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое переменные в Postman?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;переиспользовать URL, токены и параметры, не меняя их вручную&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое окружения (environments)?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;быстро переключаться между тестовый и боевой средой без переименования каждого запроса&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое скрипты?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;вставлять готовые куски кода (проверка) в Postman без знания JavaScript&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как писать простые проверки в Postman?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;сразу видеть, прошёл тест или нет&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как использовать коллекции?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;группировать запросы, запускать их по одному или запускать их по одному&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое токен авторизации?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;работать с защищёнными API, которые требуют логин/пароль или ключа доступа&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как обновлять токен автоматически?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;не копировать его вручную каждый час – Postman умеет обновлять сам&lt;/td&gt;
                &lt;/tr&gt;
            &lt;/tbody&gt;
        &lt;/table&gt;
    &lt;/div&gt;
&lt;/body&gt;
&quot;&gt;&lt;/iframe&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;oD3Z&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;Irmt&quot;&gt;6. Базы данных + SQL&lt;/h2&gt;
  &lt;p id=&quot;aIq3&quot;&gt;Для уровня Middle это ключевой навык. Теперь процесс тестирования будет выглядеть следующим образом:&lt;/p&gt;
  &lt;ol id=&quot;3HOk&quot;&gt;
    &lt;li id=&quot;6CIp&quot;&gt;Нажали на кнопку “Зарегистрироваться”&lt;/li&gt;
    &lt;li id=&quot;pAux&quot;&gt;Проверили, какой запрос ушел на сервер&lt;/li&gt;
    &lt;li id=&quot;WufX&quot;&gt;Проверили, какой ответ пришел на сервер&lt;/li&gt;
    &lt;li id=&quot;RrmU&quot;&gt;Проверили, что в базу данных попал новый пользователь с корректной почтой и паролем&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;i5wE&quot;&gt;Кроме того, на почти всех собеседованиях дают задачку на знание SQL. Обычно, в них проверяют вашу способность подобрать правильный JOIN&lt;/p&gt;
  &lt;figure id=&quot;98oR&quot; class=&quot;m_column&quot;&gt;
    &lt;iframe srcdoc=&quot;&lt;!DOCTYPE html&gt;
&lt;html lang=&amp;quot;ru&amp;quot;&gt;
&lt;head&gt;
    &lt;meta charset=&amp;quot;UTF-8&amp;quot;&gt;
    &lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&gt;
    &lt;title&gt;Что нужно знать о базах данных и SQL&lt;/title&gt;
    &lt;style&gt;
        body {
            font-family: -apple-system, BlinkMacSystemFont, &amp;#x27;Segoe UI&amp;#x27;, Roboto, sans-serif;
            margin: 0;
            padding: 20px;
            background-color: #ffffff;
            line-height: 1.5;
            font-size: 14px;
        }
        
        .table-container {
            max-width: 100%;
            overflow-x: auto;
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
            border-radius: 12px;
            overflow: hidden;
        }
        
        table {
            width: 100%;
            border-collapse: collapse;
        }
        
        th {
            background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%); /* Фиолетовый градиент как в прошлых таблицах */
            color: white;
            font-weight: 600;
            padding: 16px 20px;
            text-align: center;
            font-size: 16px;
            border-right: 1px solid rgba(255,255,255,0.2);
        }
        
        th:last-child {
            border-right: none;
        }
        
        td {
            padding: 14px 18px;
            border-bottom: 1px solid #e5e7eb;
            border-right: 1px solid #e5e7eb;
            vertical-align: top;
        }
        
        td:last-child {
            border-right: none;
        }
        
        tr:nth-child(even) {
            background-color: #f8faf-8fafc;
        }
        
        tr:hover {
            background-color: #f1f5f9;
            transition: background-color 0.2s ease;
        }
        
        .parameter {
            font-weight: 600;
            color: #1f2937;
            background-color: #f9fafb;
            width: 40%;
        }
        
        .description {
            color: #1f2937; /* Темный цвет текста, как просил */
            font-weight: 500;
            text-align: center;
        }
        
        .highlight {
            background-color: #fef3c7;
            padding: 2px 6px;
            border-radius: 4px;
            font-weight: 600;
        }
        
        .emoji {
            font-size: 16px;
        }
        
        @media (max-width: 768px) {
            body {
                padding: 10px;
                font-size: 13px;
            }
            
            th, td {
                padding: 10px 12px;
            }
            
            th {
                font-size: 14px;
            }
            
            .parameter {
                font-size: 12px;
            }
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class=&amp;quot;table-container&amp;quot;&gt;
        &lt;table&gt;
            &lt;thead&gt;
                &lt;tr&gt;
                    &lt;th style=&amp;quot;width: 40%;&amp;quot;&gt;Что нужно знать?&lt;/th&gt;
                    &lt;th style=&amp;quot;width: 60%;&amp;quot;&gt;Это нужно знать, чтобы...&lt;/th&gt;
                &lt;/tr&gt;
            &lt;/thead&gt;
            &lt;tbody&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое база данных?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, как хранятся данные&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое клиент-серверная архитектура?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;разобраться, как устроены приложения: что такое frontend, backend и пример тут базы данных?&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое таблица, строка (row), столбец (column)?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;уметь читать и составлять запросы (тут не нужно уметь кодить)&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое первичный ключ (PRIMARY KEY)?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;определить уникальность записей и находить конкретные данные&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое внешний ключ (FOREIGN KEY)?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, как связаны таблицы между собой&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое SQL?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;уметь писать запросы для получения и проверки данных&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как сделать SELECT-запрос?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;извлекать данные из таблиц для проверки&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как использовать WHERE?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;фильтровать записи и проверять конкретные случаи&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как использовать AND / OR?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;составлять сложные условия выборки&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как использовать LIKE / IN / NOT IN?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;искать частичные совпадения или исключать значения&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как использовать ORDER BY и LIMIT?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;сортировать и ограничивать количество строк&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как использовать JOIN (INNER, LEFT, RIGHT)?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;объединять данные из нескольких таблиц для проверки&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как делать агрегатные запросы (COUNT, AVG, MAX, SUM)?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;подсчитывать, например, количество записей и средний рейтинг&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как использовать GROUP BY и HAVING?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;группировать данные и анализировать по категориям&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как использовать подзапросы (subqueries)?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;строить более гибкие и мощные SQL-запросы&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как вставлять данные (INSERT)?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;добавить тестовые базу нужными данными&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как обновлять данные (UPDATE)?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;редактировать записи при подготовке или после теста&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как удалять данные (DELETE)?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;чистить тестовую базу после тестов&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое NULL и как с ним работать?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;корректно проверять отсутствие значений&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как подключиться к базе данных?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;находить работу с SQL в любой утилите (например, DBeaver)&lt;/td&gt;
                &lt;/tr&gt;
            &lt;/tbody&gt;
        &lt;/table&gt;
    &lt;/div&gt;
&lt;/body&gt;
&quot;&gt;&lt;/iframe&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;5Rv3&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;PANv&quot;&gt;7. DevTools + Figma&lt;/h2&gt;
  &lt;p id=&quot;gN1I&quot;&gt;Умение пользоваться этими инструментами — обязательный навык для любого ручного &lt;strong&gt;тестировщика веб-приложений&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;4oUt&quot;&gt;&lt;strong&gt;DevTools&lt;/strong&gt; — это встроённые инструменты браузера, с помощью которых вы сможете:&lt;/p&gt;
  &lt;ul id=&quot;eIpK&quot;&gt;
    &lt;li id=&quot;5NYn&quot;&gt;анализировать HTML и CSS&lt;/li&gt;
    &lt;li id=&quot;LlSB&quot;&gt;проверять сетевые запросы и заголовки&lt;/li&gt;
    &lt;li id=&quot;tQ7O&quot;&gt;выявлять JavaScript-ошибки&lt;/li&gt;
    &lt;li id=&quot;ew0T&quot;&gt;тестировать на разных устройствах и при слабом интернете&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;HvtM&quot;&gt;&lt;strong&gt;Figma&lt;/strong&gt; — это источник правды о дизайне. Здесь лежит то, как должно выглядеть приложение. Сравнивая Figma и то, что видите в браузере, вы можете:&lt;/p&gt;
  &lt;ul id=&quot;WeT2&quot;&gt;
    &lt;li id=&quot;GRPZ&quot;&gt;находить визуальные баги&lt;/li&gt;
    &lt;li id=&quot;UjAJ&quot;&gt;проверять отступы, шрифты и размеры&lt;/li&gt;
    &lt;li id=&quot;WBc5&quot;&gt;убедиться, что реализованы все интерактивные элементы&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;S55B&quot; class=&quot;m_column&quot;&gt;
    &lt;iframe srcdoc=&quot;&lt;!DOCTYPE html&gt;
&lt;html lang=&amp;quot;ru&amp;quot;&gt;
&lt;head&gt;
  &lt;meta charset=&amp;quot;UTF-8&amp;quot; /&gt;
  &lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;/&gt;
  &lt;title&gt;Что нужно знать о DevTools&lt;/title&gt;
  &lt;style&gt;
    body {
      font-family: -apple-system, BlinkMacSystemFont, &amp;#x27;Segoe UI&amp;#x27;, Roboto, sans-serif;
      margin: 0;
      padding: 20px;
      background-color: #ffffff;
      line-height: 1.5;
      font-size: 14px;
    }
    .table-container {
      max-width: 100%;
      overflow-x: auto;
      box-shadow: 0 4px 12px rgba(0,0,0,0.1);
      border-radius: 12px;
      overflow: hidden;
    }
    table {
      width: 100%;
      border-collapse: collapse;
    }
    th {
      background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);
      color: white;
      font-weight: 600;
      padding: 16px 20px;
      text-align: center;
      font-size: 16px;
      border-right: 1px solid rgba(255,255,255,0.2);
    }
    th:last-child {
      border-right: none;
    }
    td {
      padding: 14px 18px;
      border-bottom: 1px solid #e5e7eb;
      border-right: 1px solid #e5e7eb;
      vertical-align: top;
    }
    td:last-child {
      border-right: none;
    }
    tr:nth-child(even) {
      background-color: #f8fafc;
    }
    tr:hover {
      background-color: #f1f5f9;
      transition: background-color 0.2s ease;
    }
    .parameter {
      font-weight: 600;
      color: #1f2937;
      background-color: #f9fafb;
      width: 40%;
    }
    .description {
      color: #1f2937;
      font-weight: 500;
      text-align: center;
    }
    @media (max-width: 768px) {
      body {
        padding: 10px;
        font-size: 13px;
      }
      th, td {
        padding: 10px 12px;
      }
      th {
        font-size: 14px;
      }
      .parameter {
        font-size: 12px;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div class=&amp;quot;table-container&amp;quot;&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 class=&amp;quot;parameter&amp;quot;&gt;Что такое DevTools?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;анализировать поведение и структуру веб-страницы в браузере&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как открыть DevTools? (F12 или ПКМ → &amp;quot;Inspect&amp;quot;)&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;начать проверку верстки, сетевых запросов и консоли&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое вкладка Elements?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;просматривать и проверять HTML-код страницы&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как находить и проверять элементы в Elements?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;убеждаться, что элемент отображается, имеет нужные классы и стили&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как временно менять текст/стили в Elements?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;проверять альтернативные состояния без помощи разработчика&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как работает вкладка Styles?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;проверять применённые CSS-правила и возможные переопределения&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как понять, почему элемент не виден / съехал?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;находить ошибки в верстке и выявлять баги в позиционировании&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое вкладка Console?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;отслеживать JavaScript-ошибки и предупреждения&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как использовать вкладку Network?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;проверять, отправляется ли запрос, правильно ли приходит ответ и сколько он весит&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что означают статусы в Network (200, 404, 500)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;понимать, успешно ли отработал запрос или произошла ошибка&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как смотреть заголовки и тело ответа в Network?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;анализировать данные, получаемые от сервера&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как использовать вкладку Application?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;проверять содержимое localStorage, sessionStorage и cookies&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как очищать кэш и куки?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;устранять нестабильности при тестировании авторизации и переходов&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как симулировать медленный интернет (throttling)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;проверять, как приложение работает на слабом соединении&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как эмулировать разные устройства (Device Toolbar)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;тестировать адаптивность интерфейса на мобильных и планшетах&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое Figma?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;проверять соответствие дизайна и реализованного интерфейса&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как сравнивать макет и страницу (pixel-perfect)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;выявлять визуальные баги и расхождения с дизайном&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как проверять расстояния между элементами?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;убеждаться, что соблюдены отступы и сетка интерфейса&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как понять, какие элементы интерактивные (кликабельные)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;проверять поведение UI, как задумывалось в дизайне&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как находить баги в UI по макету?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;формировать конкретные замечания по несоответствию цвета, текста, размеров и т.д.&lt;/td&gt;&lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/body&gt;
&quot;&gt;&lt;/iframe&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;MKu6&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;LB4b&quot;&gt;8. Окружения, GIT, CI/CD&lt;/h2&gt;
  &lt;p id=&quot;y1CT&quot;&gt;Прежде чем новая версия попадёт к пользователям, её сначала тестируют. Для этого используют специальные &lt;strong&gt;тестовые окружения&lt;/strong&gt; — отдельные копии системы, к которым нет доступа у обычных пользователей. Это позволяет находить и исправлять баги до ****релиза, поэтому финальные пользователи (почти) никогда их не видят.&lt;/p&gt;
  &lt;p id=&quot;lvfT&quot;&gt;&lt;strong&gt;GIT&lt;/strong&gt; — это система, где живёт весь код. Даже если вы не пишете код, GIT — ваш способ увидеть, что поменялось, кем, зачем, и где это можно протестировать&lt;/p&gt;
  &lt;p id=&quot;7rTk&quot;&gt;&lt;strong&gt;CI/CD&lt;/strong&gt; — это система, которая запускает тесты и выкладывает приложение. Если что-то пошло не так — именно здесь вы увидите, сломалась ли сборка, прилетели ли нужные изменения, и когда уже можно тестировать.&lt;/p&gt;
  &lt;p id=&quot;5OWH&quot;&gt;Знание этих вещей — это про то, &lt;strong&gt;чтобы понимать весь процесс — от кода до продакшена&lt;/strong&gt;&lt;/p&gt;
  &lt;figure id=&quot;Gyse&quot; class=&quot;m_column&quot;&gt;
    &lt;iframe srcdoc=&quot;&lt;!DOCTYPE html&gt;
&lt;html lang=&amp;quot;ru&amp;quot;&gt;
&lt;head&gt;
    &lt;meta charset=&amp;quot;UTF-8&amp;quot;&gt;
    &lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;&gt;
    &lt;title&gt;Что нужно знать о тестировании и CI/CD&lt;/title&gt;
    &lt;style&gt;
        body {
            font-family: -apple-system, BlinkMacSystemFont, &amp;#x27;Segoe UI&amp;#x27;, Roboto, sans-serif;
            margin: 0;
            padding: 20px;
            background-color: #ffffff;
            line-height: 1.5;
            font-size: 14px;
        }
        
        .table-container {
            max-width: 100%;
            overflow-x: auto;
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
            border-radius: 12px;
            overflow: hidden;
        }
        
        table {
            width: 100%;
            border-collapse: collapse;
        }
        
        th {
            background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%); /* Фиолетовый градиент как в прошлых таблицах */
            color: white;
            font-weight: 600;
            padding: 16px 20px;
            text-align: center;
            font-size: 16px;
            border-right: 1px solid rgba(255,255,255,0.2);
        }
        
        th:last-child {
            border-right: none;
        }
        
        td {
            padding: 14px 18px;
            border-bottom: 1px solid #е5е7eb;
            border-right: 1px solid #e5e7eb;
            vertical-align: top;
        }
        
        td:last-child {
            border-right: none;
        }
        
        tr:nth-child(even) {
            background-color: #f8fafc;
        }
        
        tr:hover {
            background-color: #f1f5f9;
            transition: background-color 0.2s ease;
        }
        
        .parameter {
            font-weight: 600;
            color: #1f2937;
            background-color: #f9fafb;
            width: 40%;
        }
        
        .description {
            color: #1f2937; /* Темный цвет текста, как просил */
            font-weight: 500;
            text-align: center;
        }
        
        .highlight {
            background-color: #fef3c7;
            padding: 2px 6px;
            border-radius: 4px;
            font-weight: 600;
        }
        
        .emoji {
            font-size: 16px;
        }
        
        @media (max-width: 768px) {
            body {
                padding: 10px;
                font-size: 13px;
            }
            
            th, td {
                padding: 10px 12px;
            }
            
            th {
                font-size: 14px;
            }
            
            .parameter {
                font-size: 12px;
            }
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;div class=&amp;quot;table-container&amp;quot;&gt;
        &lt;table&gt;
            &lt;thead&gt;
                &lt;tr&gt;
                    &lt;th style=&amp;quot;width: 40%;&amp;quot;&gt;Что нужно знать?&lt;/th&gt;
                    &lt;th style=&amp;quot;width: 60%;&amp;quot;&gt;Это нужно знать, чтобы...&lt;/th&gt;
                &lt;/tr&gt;
            &lt;/thead&gt;
            &lt;tbody&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое DevOps?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, как DevOps помогает ускорить тестирование&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое окружения (dev, test, stage, prod)?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, где и что тестируется, и отличать тестовые данные от боевых&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Чем отличаются тестовое и боевое окружение?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;не перепутать данные и не сломать что-то на боевом сервере&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое Git?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, как хранится и обновляется код системы&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;пparameter&amp;quot;&gt;Что такое ветка (branch)?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, где разрабатывается новая фича, и где её можно протестировать&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое main/master, develop, release-ветка?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, в каком состоянии код, и можно ли уже его тестировать&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое pull request (PR) и зачем он нужен?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;отслеживать, что конкретно поменялось в коде перед релизом&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как читать изменения в PR (diff)?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;видеть, что добавили/удалили/изменили, и на что обратить внимание при проверке&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как посмотреть коммит (git log / история)?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;видеть, кто и когда внёс изменения, и зачем&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое CI/CD?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, как код автоматически билдится, тестируется и выкатывается&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что происходит при push&amp;#x27;e кода в репозиторий?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;знать, когда запускаются автотесты и сборки&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое pipeline?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;понять, из каких шагов состоит выкладка и где может что-то сломаться&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как проверять статус pipeline?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;быстро понять, прошла ли сборка и можно ли тестировать&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое build и от чего он зависит?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;отслеживать, какие изменения могли повлиять на работоспособность&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как посмотреть артефакт сборки?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;получить нужный билд приложения или документацию&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Что делать, если билд не собрался?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;уметь объяснить, что пошло не так, и сообщить команде&lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td class=&amp;quot;parameter&amp;quot;&gt;Как быть, если баг не воспроизведён?&lt;/td&gt;
                    &lt;td class=&amp;quot;description&amp;quot;&gt;сравнить коммиты и окружения, найти расхождения&lt;/td&gt;
                &lt;/tr&gt;
            &lt;/tbody&gt;
        &lt;/table&gt;
    &lt;/div&gt;
&lt;/body&gt;
&quot;&gt;&lt;/iframe&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;er4r&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/22/fe/22feaad8-5c66-4042-a627-63edd06ab9e8.png&quot; width=&quot;1200&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;6hPf&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;E0Gg&quot;&gt;9. Сниффинг трафика (Charles Proxy / Proxyman)&lt;/h2&gt;
  &lt;p id=&quot;B2jd&quot;&gt;При тестировании веб-приложений вы можете отслеживать запросы и ответы через DevTools. Но как быть, если нужно увидеть, какие запросы отправляет &lt;strong&gt;мобильное устройство&lt;/strong&gt; или &lt;strong&gt;десктопное приложение&lt;/strong&gt;?&lt;/p&gt;
  &lt;p id=&quot;zdEI&quot;&gt;В этом помогут &lt;strong&gt;снифферы трафика&lt;/strong&gt; (их ещё называют &amp;quot;&lt;strong&gt;анализаторами трафика&lt;/strong&gt;&amp;quot;). Как это работает? Вы настраиваете мобильное устройство так, чтобы все запросы сначала шли на ваш компьютер, а уже потом — на сервер. И наоборот: все ответы сперва приходят на ваш компьютер, а затем передаются устройству.&lt;/p&gt;
  &lt;p id=&quot;xTn8&quot;&gt;Снифферы — это, по сути, &lt;strong&gt;DevTools для мобильных и десктопных приложений&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;yx3G&quot;&gt;Отличительная особенность снифферов — это &lt;strong&gt;возможность подменять ответы от сервера&lt;/strong&gt;. После прохождения этой главы вы сможете “просниффить” трафик мобильного приложения «Пятёрочка» и, например, сделать так, чтобы при поиске “молоко” приложение показывало совершенно другие товары&lt;/p&gt;
  &lt;figure id=&quot;Mb19&quot; class=&quot;m_column&quot;&gt;
    &lt;iframe srcdoc=&quot;&lt;!DOCTYPE html&gt;
&lt;html lang=&amp;quot;ru&amp;quot;&gt;
&lt;head&gt;
  &lt;meta charset=&amp;quot;UTF-8&amp;quot; /&gt;
  &lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;/&gt;
  &lt;title&gt;Что нужно знать о сниффинге и Charles&lt;/title&gt;
  &lt;style&gt;
    body {
      font-family: -apple-system, BlinkMacSystemFont, &amp;#x27;Segoe UI&amp;#x27;, Roboto, sans-serif;
      margin: 0;
      padding: 20px;
      background-color: #ffffff;
      font-size: 14px;
      line-height: 1.5;
    }
    .table-container {
      max-width: 100%;
      overflow-x: auto;
      box-shadow: 0 4px 12px rgba(0,0,0,0.1);
      border-radius: 12px;
      overflow: hidden;
    }
    table {
      width: 100%;
      border-collapse: collapse;
    }
    th {
      background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);
      color: white;
      font-weight: 600;
      padding: 16px 20px;
      text-align: center;
      font-size: 16px;
      border-right: 1px solid rgba(255,255,255,0.2);
    }
    th:last-child {
      border-right: none;
    }
    td {
      padding: 14px 18px;
      border-bottom: 1px solid #e5e7eb;
      border-right: 1px solid #e5e7eb;
      vertical-align: top;
    }
    td:last-child {
      border-right: none;
    }
    tr:nth-child(even) {
      background-color: #f8fafc;
    }
    tr:hover {
      background-color: #f1f5f9;
      transition: background-color 0.2s ease;
    }
    .parameter {
      font-weight: 600;
      color: #1f2937;
      background-color: #f9fafb;
      width: 40%;
    }
    .description {
      color: #1f2937;
      font-weight: 500;
      text-align: center;
    }
    @media (max-width: 768px) {
      body {
        padding: 10px;
        font-size: 13px;
      }
      th, td {
        padding: 10px 12px;
      }
      th {
        font-size: 14px;
      }
      .parameter {
        font-size: 12px;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div class=&amp;quot;table-container&amp;quot;&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 class=&amp;quot;parameter&amp;quot;&gt;Что такое сниффинг трафика?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;перехватывать запросы и ответы между клиентом и сервером&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Для чего QA используют Charles или Proxyman?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;смотреть, что реально уходит на сервер и что возвращается&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как установить Charles / Proxyman?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;начать работу на своей машине&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как настроить proxy на десктопе?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;перехватывать запросы от браузеров или приложений&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как настроить proxy на телефоне?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;тестировать мобильные приложения, видеть трафик в реальном времени&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое SSL-проксирование?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;расшифровывать HTTPS-запросы, чтобы видеть содержимое&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как установить сертификат на устройство (десктоп / мобильное)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;уметь видеть зашифрованный трафик&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как фильтровать трафик по хосту или пути?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;находить нужные запросы в общем потоке&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как сохранить / экспортировать трафик?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;прикладывать логи к баг-репортам&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как повторить (replay) запрос?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;проверить баг повторно, не заходя в интерфейс&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как изменить запрос перед отправкой (rewrite / breakpoints)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;подставить другие параметры и проверить поведение&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как увидеть тело запроса и ответа (body)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;валидировать правильность payload&amp;#x27;a и бизнес-логики&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как посмотреть заголовки (headers)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;отследить авторизацию, тип контента, куки и кэш&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как понять, на какой сервер уходит запрос?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;убедиться, что запрос не уходит на прод в тестовом приложении&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое breakpoints и зачем они нужны?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;перехватывать и редактировать запросы на лету&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как использовать map local / map remote (в Charles/Proxyman)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;подменять ответ сервера локальным файлом или другим URL&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как замедлить/ускорить ответы (Throttle/Simulate speed)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;тестировать поведение приложения при плохом интернете&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как проверить редиректы и коды статуса?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;понять, правильно ли обрабатываются навигация и ошибки&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как отследить авторизацию (например, токен в заголовке)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;убедиться, что пользователь правильно залогинен и запросы защищены&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как видеть запросы от мобильного приложения, если нет web-интерфейса?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;понимать, как работает backend-приложение «внутри»&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как находить баги, которых нет в UI?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;выявлять ошибки на уровне API даже при корректной работе интерфейса&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как убедиться, что данные корректно уходят и приходят?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;проверять соответствие бизнес-логике и документации&lt;/td&gt;&lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/body&gt;
&quot;&gt;&lt;/iframe&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;UmhA&quot;&gt;Поздравляю!&lt;/h2&gt;
  &lt;p id=&quot;BA2t&quot;&gt;Уже на этом этапе — вы обладаете всеми ключевыми навыками, которые требуются от &lt;strong&gt;Manual Middle QA:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;UkpL&quot;&gt;
    &lt;li id=&quot;9ZqY&quot;&gt;Вы умеете тестировать &lt;strong&gt;фронтенд, бэкенд и API&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;xFor&quot;&gt;Разбираетесь в &lt;strong&gt;базах данных&lt;/strong&gt;, логике работы &lt;strong&gt;CI/CD&lt;/strong&gt;, окружениях и в &lt;strong&gt;структуре проектов&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;j2L1&quot;&gt;Понимаете, как устроен &lt;strong&gt;трафик между клиентом и сервером&lt;/strong&gt;, и умеете его анализировать&lt;/li&gt;
    &lt;li id=&quot;n4s7&quot;&gt;Готовы к &lt;strong&gt;самостоятельной работе в команде&lt;/strong&gt; и уверенно чувствуете себя в процессах&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Jzer&quot;&gt;Этого &lt;strong&gt;уже достаточно&lt;/strong&gt;, чтобы:&lt;/p&gt;
  &lt;ul id=&quot;7Qa3&quot;&gt;
    &lt;li id=&quot;F6wu&quot;&gt;Проходить собеседования на &lt;strong&gt;Middle Manual QA&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;4G4N&quot;&gt;Работать в команде, где нет автотестов, но нужны грамотные ручные проверки&lt;/li&gt;
    &lt;li id=&quot;keDN&quot;&gt;Говорить на одном языке с разработчиками и DevOps&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;ABf0&quot;&gt;&lt;strong&gt;Что дальше?&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;x4TD&quot;&gt;Дальнейшие темы (логи, брокеры сообщений, Docker, XCode, Android Studio) — это ваше &lt;strong&gt;конкурентное преимущество&lt;/strong&gt;. Они:&lt;/p&gt;
  &lt;ul id=&quot;9wvK&quot;&gt;
    &lt;li id=&quot;ObX1&quot;&gt;Не обязательны на всех проектах&lt;/li&gt;
    &lt;li id=&quot;2iNK&quot;&gt;Но если вы их хоть немного знаете — &lt;strong&gt;вас заметят среди других кандидатов&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;uPuA&quot;&gt;И вы можете уверенно &lt;strong&gt;вписывать их в резюме&lt;/strong&gt;, чтобы пройти фильтр на более крутые вакансии&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;kxgD&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;MyxZ&quot;&gt;10. Логи (ELK Stack / Sentry / Grafana + Loki)&lt;/h2&gt;
  &lt;p id=&quot;HFEH&quot;&gt;&lt;strong&gt;Представьте ситуацию:&lt;/strong&gt; пользователь жалуется — «у меня крашится приложение». Скриншота нет, записи экрана тоже. Что делать? &lt;strong&gt;Ответ — открывать логи.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;1oo6&quot;&gt;Логи — это журнал, в который система записывает каждое действие пользователя. Они помогут выяснить:&lt;/p&gt;
  &lt;ul id=&quot;sCMi&quot;&gt;
    &lt;li id=&quot;rZmz&quot;&gt;что делал пользователь до ошибки&lt;/li&gt;
    &lt;li id=&quot;Tw0z&quot;&gt;на каком уровне произошёл сбой — фронтенд, бэкенд или сторонний сервис&lt;/li&gt;
    &lt;li id=&quot;cTGN&quot;&gt;какие параметры передавались и что вернул сервер&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;shTX&quot;&gt;&lt;strong&gt;Умение читать логи превращает вас в незаменимого тестировщика.&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;n26W&quot;&gt;Теперь вы не будете писать разработчику: &lt;em&gt;«у меня вылетает приложение»&lt;/em&gt;. Вместо этого — вы зайдёте в логи и найдёте причину, по которой это происходит.&lt;/p&gt;
  &lt;p id=&quot;OJIk&quot;&gt;&lt;strong&gt;Итог:&lt;/strong&gt; разработчик тратит меньше времени на исправление этого бага. А вы, тем самым, &lt;strong&gt;снижаете затраты компании&lt;/strong&gt; — ведь каждая минута работы разработчика, простаивающий пользователь или баг в проде стоят денег&lt;/p&gt;
  &lt;figure id=&quot;M2L1&quot; class=&quot;m_column&quot;&gt;
    &lt;iframe srcdoc=&quot;&lt;!DOCTYPE html&gt;
&lt;html lang=&amp;quot;ru&amp;quot;&gt;
&lt;head&gt;
  &lt;meta charset=&amp;quot;UTF-8&amp;quot; /&gt;
  &lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;/&gt;
  &lt;title&gt;Что нужно знать про логи и Sentry&lt;/title&gt;
  &lt;style&gt;
    body {
      font-family: -apple-system, BlinkMacSystemFont, &amp;#x27;Segoe UI&amp;#x27;, Roboto, sans-serif;
      margin: 0;
      padding: 20px;
      background-color: #ffffff;
      font-size: 14px;
      line-height: 1.5;
    }
    .table-container {
      max-width: 100%;
      overflow-x: auto;
      box-shadow: 0 4px 12px rgba(0,0,0,0.1);
      border-radius: 12px;
      overflow: hidden;
    }
    table {
      width: 100%;
      border-collapse: collapse;
    }
    th {
      background: linear-gradient(135deg, #3b82f6 0%, #6366f1 100%);
      color: white;
      font-weight: 600;
      padding: 16px 20px;
      text-align: center;
      font-size: 16px;
      border-right: 1px solid rgba(255,255,255,0.2);
    }
    th:last-child {
      border-right: none;
    }
    td {
      padding: 14px 18px;
      border-bottom: 1px solid #e5e7eb;
      border-right: 1px solid #e5e7eb;
      vertical-align: top;
    }
    td:last-child {
      border-right: none;
    }
    tr:nth-child(even) {
      background-color: #f8fafc;
    }
    tr:hover {
      background-color: #f1f5f9;
      transition: background-color 0.2s ease;
    }
    .parameter {
      font-weight: 600;
      color: #1f2937;
      background-color: #f9fafb;
      width: 40%;
    }
    .description {
      color: #1f2937;
      font-weight: 500;
      text-align: center;
    }
    @media (max-width: 768px) {
      body {
        padding: 10px;
        font-size: 13px;
      }
      th, td {
        padding: 10px 12px;
      }
      th {
        font-size: 14px;
      }
      .parameter {
        font-size: 12px;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div class=&amp;quot;table-container&amp;quot;&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 class=&amp;quot;parameter&amp;quot;&gt;Что такое логи и зачем они нужны?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;находить причины багов, которые не видны на интерфейсе&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Какие бывают уровни логов (info, warning, error, debug)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;понимать серьёзность проблемы и приоритет её устранения&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое ELK Stack? (Elasticsearch + Logstash + Kibana)&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;уметь искать и анализировать логи в системах, где используется связка ELK&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как заходить в Kibana и находить нужный индекс?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;быстро находить логи по нужной системе/сервису&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как искать логи по trace_id / request_id / user_id?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;отслеживать цепочку действий одного пользователя или запроса&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как пользоваться фильтрами в Kibana?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;сужать выборку логов и быстрее находить нужную информацию&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как читать структуру логов (JSON / ключ:значение)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;понимать, где нужные данные и в каком они формате&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как распознать ошибку по логам в ELK?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;определять, что именно пошло не так – фронт, бэкенд, база или сторонний сервис&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое Sentry и зачем он нужен?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;автоматически получать ошибки с фронта и видеть стек вызовов&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как смотреть ошибки в Sentry?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;быстро видеть баги, которые произошли у реальных пользователей&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое stack trace и как его читать?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;понимать, в каком файле и строке произошла ошибка&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как смотреть контекст ошибки в Sentry?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;видеть, какие параметры вызвали сбой&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как фильтровать ошибки в Sentry (по релизу, окружению)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;находить только нужные ошибки, например, на стейдже или в проде&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как оставлять комментарии и назначать баги из Sentry?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;удобно передавать баги разработчикам с полной инфой&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое Grafana и зачем она нужна QA?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;визуально следить за метриками и логами в реальном времени&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как смотреть логи в Grafana + Loki?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;находить нужные события в сервисах через фильтрацию и шаблоны запросов&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как лог помогает воспроизводить баг?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;видеть, в каком порядке шли события и какие данные участвовали&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что делать, если ошибки нет в логах?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;определять пробелы в логировании или баги, которые не отловлены&lt;/td&gt;&lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/body&gt;
&quot;&gt;&lt;/iframe&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;XK7v&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;3P1d&quot;&gt;11. Брокеры сообщений (Kafka, RabbitMQ)&lt;/h2&gt;
  &lt;p id=&quot;RfaG&quot;&gt;Сегодня большинство веб-приложений — это набор микросервисов, которые обмениваются данными между собой. Чтобы всё не развалилось при первых же нагрузках, используют &lt;strong&gt;брокеры сообщений&lt;/strong&gt; — Kafka или RabbitMQ.&lt;/p&gt;
  &lt;p id=&quot;zzi7&quot;&gt;Знание &lt;strong&gt;Kafka&lt;/strong&gt; и &lt;strong&gt;RabbitMQ&lt;/strong&gt;:&lt;/p&gt;
  &lt;ul id=&quot;Ycj5&quot;&gt;
    &lt;li id=&quot;Cj1g&quot;&gt;Часто упоминается в описании вакансий&lt;/li&gt;
    &lt;li id=&quot;Wtwk&quot;&gt;&lt;strong&gt;Даёт огромный плюс&lt;/strong&gt; на собеседовании, особенно если вы приведёте конкретный пример бага, пойманного через брокер&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;3CsG&quot; class=&quot;m_column&quot;&gt;
    &lt;iframe srcdoc=&quot;&lt;!DOCTYPE html&gt;
&lt;html lang=&amp;quot;ru&amp;quot;&gt;
&lt;head&gt;
  &lt;meta charset=&amp;quot;UTF-8&amp;quot; /&gt;
  &lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;/&gt;
  &lt;title&gt;Что нужно знать про брокеры сообщений&lt;/title&gt;
  &lt;style&gt;
    body {
      font-family: -apple-system, BlinkMacSystemFont, &amp;#x27;Segoe UI&amp;#x27;, Roboto, sans-serif;
      margin: 0;
      padding: 20px;
      background-color: #ffffff;
      font-size: 14px;
      line-height: 1.5;
    }
    .table-container {
      max-width: 100%;
      overflow-x: auto;
      box-shadow: 0 4px 12px rgba(0,0,0,0.1);
      border-radius: 12px;
      overflow: hidden;
    }
    table {
      width: 100%;
      border-collapse: collapse;
    }
    th {
      background: linear-gradient(135deg, #0ea5e9 0%, #6366f1 100%);
      color: white;
      font-weight: 600;
      padding: 16px 20px;
      text-align: center;
      font-size: 16px;
      border-right: 1px solid rgba(255,255,255,0.2);
    }
    th:last-child {
      border-right: none;
    }
    td {
      padding: 14px 18px;
      border-bottom: 1px solid #e5e7eb;
      border-right: 1px solid #e5e7eb;
      vertical-align: top;
    }
    td:last-child {
      border-right: none;
    }
    tr:nth-child(even) {
      background-color: #f8fafc;
    }
    tr:hover {
      background-color: #f1f5f9;
      transition: background-color 0.2s ease;
    }
    .parameter {
      font-weight: 600;
      color: #1f2937;
      background-color: #f9fafb;
      width: 40%;
    }
    .description {
      color: #1f2937;
      font-weight: 500;
      text-align: center;
    }
    @media (max-width: 768px) {
      body {
        padding: 10px;
        font-size: 13px;
      }
      th, td {
        padding: 10px 12px;
      }
      th {
        font-size: 14px;
      }
      .parameter {
        font-size: 12px;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div class=&amp;quot;table-container&amp;quot;&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 class=&amp;quot;parameter&amp;quot;&gt;Что такое брокер сообщений?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;понимать, как сервисы обмениваются данными в асинхронных системах&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;В чём разница между синхронным и асинхронным взаимодействием?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;понимать, почему не всегда можно сразу увидеть результат действия&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое очередь сообщений (queue)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;отслеживать, какие события произошли и в каком порядке&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое топик (topic) в Kafka?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;уметь проверять, какие события публикуются и кто их получает&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое producer и consumer?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;понимать, кто отправляет данные и кто их читает&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое partition в Kafka?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;понимать, как данные масштабируются и распределяются&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое offset и зачем он нужен?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;отслеживать, с какого места читался поток данных&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что значит “сообщение успешно доставлено”?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;убедиться, что данные дошли до нужного сервиса&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что значит “сообщение не обработано” или “застряло”?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;находить проблемы в интеграциях между микросервисами&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как найти сообщение в Kafka?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;проверять, отправилось ли событие, и какие данные в нём были&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как подключиться к Kafka через UI (например, KafkaUI)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;вручную просматривать события и проверять их структуру&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как проверять idempotency (идемпотентность)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;исключать ошибки при повторной отправке одинаковых событий&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как зайти в RabbitMQ UI и найти очередь?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;получать доступ к сообщениям для ручной валидации&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как посмотреть структуру сообщения в RabbitMQ?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;проверять правильность payload&amp;#x27;а (тела) и заголовков сообщений&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как отправить тестовое сообщение в очередь (если разрешено)&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;воспроизводить баг или валидировать поведение без интерфейса&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое routing key и exchange в RabbitMQ?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;понимать, как сообщение попадает в нужную очередь&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что делать, если сообщение потеряно?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;анализировать логи брокера и поведение системы при сбоях&lt;/td&gt;&lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/body&gt;
&quot;&gt;&lt;/iframe&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;CoBM&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/99/3c/993cdd15-7e34-4416-a142-d5942cd36c6f.png&quot; width=&quot;720&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;yVJg&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;hcTE&quot;&gt;12. Docker&lt;/h2&gt;
  &lt;p id=&quot;ZClO&quot;&gt;&lt;strong&gt;Docker&lt;/strong&gt; — подойдет больше Senior QA. Да и не во всех компаниях вам придется с ним работать, так как чаще с ними работают разработчики и DevOps&lt;/p&gt;
  &lt;p id=&quot;R2I7&quot;&gt;Он позволяет развернуть нужную часть системы &lt;strong&gt;прямо у себя на ноутбуке&lt;/strong&gt;: API, базу данных, Kafka, фронт — и начать тестировать, не дожидаясь никого.&lt;/p&gt;
  &lt;p id=&quot;4QA1&quot;&gt;Если вы будете понимать основы этого инструмента, то это &lt;strong&gt;будет плюсом на собеседовании&lt;/strong&gt;&lt;/p&gt;
  &lt;figure id=&quot;jWDa&quot; class=&quot;m_column&quot;&gt;
    &lt;iframe srcdoc=&quot;&lt;!DOCTYPE html&gt;
&lt;html lang=&amp;quot;ru&amp;quot;&gt;
&lt;head&gt;
  &lt;meta charset=&amp;quot;UTF-8&amp;quot; /&gt;
  &lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;/&gt;
  &lt;title&gt;Что нужно знать про Docker&lt;/title&gt;
  &lt;style&gt;
    body {
      font-family: -apple-system, BlinkMacSystemFont, &amp;#x27;Segoe UI&amp;#x27;, Roboto, sans-serif;
      margin: 0;
      padding: 20px;
      background-color: #ffffff;
      font-size: 14px;
      line-height: 1.5;
    }
    .table-container {
      max-width: 100%;
      overflow-x: auto;
      box-shadow: 0 4px 12px rgba(0,0,0,0.1);
      border-radius: 12px;
      overflow: hidden;
    }
    table {
      width: 100%;
      border-collapse: collapse;
    }
    th {
      background: linear-gradient(135deg, #3b82f6 0%, #6366f1 100%);
      color: white;
      font-weight: 600;
      padding: 16px 20px;
      text-align: center;
      font-size: 16px;
      border-right: 1px solid rgba(255,255,255,0.2);
    }
    th:last-child {
      border-right: none;
    }
    td {
      padding: 14px 18px;
      border-bottom: 1px solid #e5e7eb;
      border-right: 1px solid #e5e7eb;
      vertical-align: top;
    }
    td:last-child {
      border-right: none;
    }
    tr:nth-child(even) {
      background-color: #f8fafc;
    }
    tr:hover {
      background-color: #f1f5f9;
      transition: background-color 0.2s ease;
    }
    .parameter {
      font-weight: 600;
      color: #1f2937;
      background-color: #f9fafb;
      width: 40%;
    }
    .description {
      color: #1f2937;
      font-weight: 500;
      text-align: center;
    }
    @media (max-width: 768px) {
      body {
        padding: 10px;
        font-size: 13px;
      }
      th, td {
        padding: 10px 12px;
      }
      th {
        font-size: 14px;
      }
      .parameter {
        font-size: 12px;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div class=&amp;quot;table-container&amp;quot;&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 class=&amp;quot;parameter&amp;quot;&gt;Что такое Docker и зачем он нужен?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;запускать приложения в изолированной среде без зависимости от локальной машины&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое образ (image)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;понимать, из чего создаётся контейнер и как версионируется окружение&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое контейнер?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;запускать сервисы (например, API, БД) для локального тестирования&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Чем отличается образ от контейнера?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;уметь различать шаблон и запущенный процесс&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как установить Docker Desktop?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;начать пользоваться Docker на своей машине&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как запустить контейнер с нужным сервисом?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;разворачивать нужную часть системы локально (например, PostgreSQL, Kafka, API backend)&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое docker run и как им пользоваться?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;запускать сервисы вручную при необходимости&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое docker ps, docker stop, docker rm?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;управлять контейнерами — останавливать, удалять и проверять статус&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как открыть логи контейнера (docker logs &lt;id&gt;)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;смотреть, что происходит внутри — особенно важно при анализе багов&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое Dockerfile?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;понимать, как создаётся образ и какие зависимости в него входят&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое docker-compose?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;запускать сразу несколько сервисов одной командой (например, бекенд + БД + Kafka)&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как читать docker-compose.yml?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;понимать, какие сервисы запускаются, как они связаны и на каких портах&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как Docker используется на проектах?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;понимать, что часть систем тестируется и деплоится через Docker&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Зачем QA уметь работать с Docker?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;быть автономным: уметь развернуть нужный стенд и тестировать без помощи DevOps&lt;/td&gt;&lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/body&gt;
&quot;&gt;&lt;/iframe&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;4fSg&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c1/f0/c1f070c5-e5b2-4899-ad8d-dc47649ca486.png&quot; width=&quot;800&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;ZtJg&quot;&gt;13. Инструменты для моб. тестирования (Android Studio, XCode, ADB, Logcat)&lt;/h2&gt;
  &lt;p id=&quot;HwH4&quot;&gt;Пользователи используют сотни комбинаций устройств и операционных систем — разные модели iPhone, Android, прошивки, кастомные оболочки. Физически протестировать каждую — невозможно.&lt;/p&gt;
  &lt;p id=&quot;foS7&quot;&gt;На практике компания выдаёт 2–3 &lt;strong&gt;самые популярные модели&lt;/strong&gt;, чтобы тестировать основные сценарии.&lt;/p&gt;
  &lt;p id=&quot;wjVn&quot;&gt;А что делать с остальными? Помогут эмуляторы &lt;strong&gt;и&lt;/strong&gt; симуляторы, которые входят в &lt;strong&gt;Android&lt;/strong&gt; &lt;strong&gt;Studio&lt;/strong&gt; и &lt;strong&gt;Xcode&lt;/strong&gt;. С их помощью вы сможете:&lt;/p&gt;
  &lt;ul id=&quot;YzRp&quot;&gt;
    &lt;li id=&quot;vVm0&quot;&gt;протестировать поведение на разных версиях Android и iOS,&lt;/li&gt;
    &lt;li id=&quot;IAuJ&quot;&gt;запускать приложение без физического устройства,&lt;/li&gt;
    &lt;li id=&quot;pcr1&quot;&gt;делать скриншоты, видео, проверять push-уведомления и баги.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;p7WZ&quot;&gt;Кроме того, &lt;strong&gt;через Android Studio и Xcode можно просматривать все системные логи устройства&lt;/strong&gt;, следить за крашами и перехватывать ошибки, которые невозможно увидеть через интерфейс&lt;/p&gt;
  &lt;figure id=&quot;xS5v&quot; class=&quot;m_column&quot;&gt;
    &lt;iframe srcdoc=&quot;&lt;!DOCTYPE html&gt;
&lt;html lang=&amp;quot;ru&amp;quot;&gt;
&lt;head&gt;
  &lt;meta charset=&amp;quot;UTF-8&amp;quot; /&gt;
  &lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot;/&gt;
  &lt;title&gt;Что нужно знать про Android Studio, ADB и Xcode&lt;/title&gt;
  &lt;style&gt;
    body {
      font-family: -apple-system, BlinkMacSystemFont, &amp;#x27;Segoe UI&amp;#x27;, Roboto, sans-serif;
      margin: 0;
      padding: 20px;
      background-color: #ffffff;
      font-size: 14px;
      line-height: 1.5;
    }
    .table-container {
      max-width: 100%;
      overflow-x: auto;
      box-shadow: 0 4px 12px rgba(0,0,0,0.1);
      border-radius: 12px;
      overflow: hidden;
    }
    table {
      width: 100%;
      border-collapse: collapse;
    }
    th {
      background: linear-gradient(135deg, #3b82f6 0%, #6366f1 100%);
      color: white;
      font-weight: 600;
      padding: 16px 20px;
      text-align: center;
      font-size: 16px;
      border-right: 1px solid rgba(255,255,255,0.2);
    }
    th:last-child {
      border-right: none;
    }
    td {
      padding: 14px 18px;
      border-bottom: 1px solid #e5e7eb;
      border-right: 1px solid #e5e7eb;
      vertical-align: top;
    }
    td:last-child {
      border-right: none;
    }
    tr:nth-child(even) {
      background-color: #f8fafc;
    }
    tr:hover {
      background-color: #f1f5f9;
      transition: background-color 0.2s ease;
    }
    .parameter {
      font-weight: 600;
      color: #1f2937;
      background-color: #f9fafb;
      width: 40%;
    }
    .description {
      color: #1f2937;
      font-weight: 500;
      text-align: center;
    }
    @media (max-width: 768px) {
      body {
        padding: 10px;
        font-size: 13px;
      }
      th, td {
        padding: 10px 12px;
      }
      th {
        font-size: 14px;
      }
      .parameter {
        font-size: 12px;
      }
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div class=&amp;quot;table-container&amp;quot;&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 class=&amp;quot;parameter&amp;quot;&gt;Что такое Android Studio и зачем она нужна QA?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;запускать и анализировать Android-приложения локально, подключать эмуляторы и девайсы&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как установить Android Studio?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;начать работать с Android-приложением на своём компе&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как запустить эмулятор в Android Studio?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;тестировать без физического устройства&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как подключить реальное Android-устройство?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;тестировать реальные сценарии и проверять поведение на девайсе&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое ADB и как его установить?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;выполнять команды на Android-устройстве напрямую из консоли&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как подключить девайс через ADB (adb devices)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;убедиться, что устройство доступно для управления&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как установить APK на устройство (adb install)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;тестировать новую версию приложения вручную&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как снять логи (adb logcat)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;отследить ошибки, краши, баги на уровне системы&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как сделать скриншот или видео с устройства через ADB?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;документировать баги для баг-репортов&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как сбросить кэш/данные приложения через ADB?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;воспроизводить баги «с нуля», как при первом запуске&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как очистить логи (adb logcat -c)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;работать с «чистыми» логами для анализа текущего теста&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое Xcode и зачем он нужен QA?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;запускать, тестировать и анализировать iOS-приложения&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как установить Xcode и открыть iOS-проект?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;начать работать с iOS-сборкой&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как запустить симулятор в Xcode?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;тестировать на разных iPhone/iPad моделях без реального девайса&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как подключить физический iOS-девайс?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;находить баги, которых нет на симуляторе&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как установить .ipa файл на устройство?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;проверять новую сборку вручную&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как открыть консоль логов (Devices and Simulators → View Logs)?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;отлавливать краши, ошибки и сетевые сбои&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как выгрузить crash log с устройства?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;передавать его разработчику для анализа&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как делать скриншоты и видео на симуляторе или реальном устройстве?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;удобно документировать найденные дефекты&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Что такое UDID и зачем он нужен?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;регистрировать устройство для установки тестовых iOS-сборок&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как тестировать push-уведомления?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;убедиться, что они приходят, открываются и ведут на нужный экран&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td class=&amp;quot;parameter&amp;quot;&gt;Как QA участвует в сборке и установке приложений?&lt;/td&gt;&lt;td class=&amp;quot;description&amp;quot;&gt;помогает проверить установку, запуск, поведение в разных версиях&lt;/td&gt;&lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/body&gt;
&quot;&gt;&lt;/iframe&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;hNUm&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;letq&quot;&gt;Заключение&lt;/h2&gt;
  &lt;p id=&quot;hQ76&quot;&gt;Поздравляю - ты дочитал до конца. Пройдя весь путь, описанный в этом роадмапе, &lt;strong&gt;ЛЮБОЙ может стать уверенным Middle Manual QA, даже без знаний программирования&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;Z90Y&quot;&gt;Ты не просто выучишь теорию — ты научишься &lt;strong&gt;применять инструменты, разговаривать с разработкой на одном языке и находить баги, которые не заметит даже Senior&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;uWfR&quot;&gt;💡 Почему важно не откладывать: Рынок будет &lt;strong&gt;переполнен вакансиями на Middle QA-специалистов ещё лет 5&lt;/strong&gt;, особенно в сфере мобильной разработки, API и сложных интерфейсов. Сейчас — идеальный момент, чтобы зайти и за 2-3 месяца вырасти до уровня, за который платят гораздо выше среднего. А ещё не забываем про то, что работа удаленная, многие компании дают ДМС, отсрочки от армии и тому подобное&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h3 id=&quot;3Tu9&quot;&gt;&lt;/h3&gt;
  &lt;h2 id=&quot;pbc6&quot;&gt;Что дальше то?&lt;/h2&gt;
  &lt;p id=&quot;ocwZ&quot;&gt;Заходи в наш канал - &lt;a href=&quot;https://t.me/how_to_code_web3&quot; target=&quot;_blank&quot;&gt;https://t.me/how_to_code_web3&lt;/a&gt;, там мы уже подготовили кое-что, чтобы бы стал на путь становления QA-тестировщиком.&lt;/p&gt;

</content></entry><entry><id>how_to_code_web3:QA_guide</id><link rel="alternate" type="text/html" href="https://teletype.in/@how_to_code_web3/QA_guide?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=how_to_code_web3"></link><title>How to QA Testing или притча о том, как на 1,800$+ в месяц выйти</title><published>2025-05-07T12:18:48.549Z</published><updated>2025-05-09T10:46:21.893Z</updated><summary type="html">Как дела?</summary><content type="html">
  &lt;p id=&quot;IiKB&quot;&gt;Привет, дружочек-пирожочек. Думаю, не надо ничего объяснять насчёт ситуации на рынке крипты. Грубо говоря, &lt;strong&gt;не очень &lt;/strong&gt;дела идут у всех. Будет это временно, или это реально закат крипты - тут уж вопрос не к нам, а к дядям в пиджаках.&lt;/p&gt;
  &lt;p id=&quot;EJqR&quot;&gt;Мы не можем поменять ход событий крипты, мы лишь можем дать вам альтернативу. И альтернативу очень сильную. У особо шустрых получится лутать по 1800-2500$ в месяц. И мы говорим про QA-тестирование.&lt;/p&gt;
  &lt;p id=&quot;54Hh&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;eJUq&quot;&gt;&lt;strong&gt;План гайда:&lt;/strong&gt;&lt;/p&gt;
  &lt;ol id=&quot;hCQm&quot;&gt;
    &lt;li id=&quot;9gSL&quot;&gt;&lt;a href=&quot;#sZPE&quot;&gt;Зачем вообще идти в айти?&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;RnV9&quot;&gt;&lt;a href=&quot;#X1Iq&quot;&gt;Что такое QA простыми словами?&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;g0kA&quot;&gt;&lt;a href=&quot;#W7P2&quot;&gt;Что делает тестировщик?&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;lyCj&quot;&gt;&lt;a href=&quot;#Bn2C&quot;&gt;Существует 2 основных вида QA&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;6N2t&quot;&gt;&lt;a href=&quot;#Dr7Z&quot;&gt;Нужно ли уметь кодить?&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;TIcb&quot;&gt;&lt;a href=&quot;#Dr7Z&quot;&gt;Виды Manual QA&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;wkeb&quot;&gt;&lt;a href=&quot;#HGAw&quot;&gt;Сколько платят?&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;KEcb&quot;&gt;&lt;a href=&quot;#zAKd&quot;&gt;За что столько платят?&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;WA3N&quot;&gt;&lt;a href=&quot;#QmYM&quot;&gt;Примеры приложений, которые были плохо протестированы&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;7a9h&quot;&gt;&lt;a href=&quot;#MvOb&quot;&gt;Web2 QA vs Web3 QA&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;THsO&quot;&gt;&lt;a href=&quot;#4MjF&quot;&gt;Что должен знать тестировщик?&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;DfQ8&quot;&gt;&lt;a href=&quot;#b54j&quot;&gt;Как найти работу?&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;0yKU&quot;&gt;&lt;a href=&quot;#fOHX&quot;&gt;QA — не «темка на один раз»&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;urZS&quot;&gt;&lt;a href=&quot;#Tzgv&quot;&gt;Почему криптанам легче вкатываться в QA?&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;fNfl&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;sZPE&quot;&gt;Зачем вообще идти в айти?&lt;/h3&gt;
  &lt;p id=&quot;zv4e&quot;&gt;IT - это не завод, где за тобой следят и требуют, чтобы ты 8 часов был на рабочем месте. В большинстве компаний, если правильно выстроить процессы, придется работать в среднем по 3-4ч в день&lt;/p&gt;
  &lt;p id=&quot;FFrr&quot;&gt;На этом плюшки не заканчиваются:&lt;/p&gt;
  &lt;ul id=&quot;iIr2&quot;&gt;
    &lt;li id=&quot;Dr44&quot;&gt;Удаленная работа&lt;/li&gt;
    &lt;li id=&quot;ICud&quot;&gt;ЗП выше среднего&lt;/li&gt;
    &lt;li id=&quot;lCcg&quot;&gt;Отсрочки от армии&lt;/li&gt;
    &lt;li id=&quot;DKVx&quot;&gt;IT ипотека&lt;/li&gt;
    &lt;li id=&quot;RrNT&quot;&gt;Карьерный рост (о нем поговорим ниже)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;wu16&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;X1Iq&quot;&gt;Что такое QA простыми словами?&lt;/h3&gt;
  &lt;p id=&quot;seGw&quot;&gt;QA (Quality Assurance) Engineer - это инженер по качеству программного обеспечения или проще - тестировщик. Его основная задача заключается в том, &lt;s&gt;чтобы находить баги, которые нашкодил программист&lt;/s&gt; чтобы сайт или приложение работали так, как это было задумано.&lt;/p&gt;
  &lt;p id=&quot;iDPf&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;W7P2&quot;&gt;Что делает тестировщик?&lt;/h3&gt;
  &lt;p id=&quot;PElx&quot;&gt;Если говорить коротко, то проверяет, что ожидаемый результат совпадает с фактическим. Например, он проверяет, что кнопка должна быть определенного цвета и должна находиться в определенном месте.&lt;/p&gt;
  &lt;p id=&quot;qFhG&quot;&gt;Существует 2 основных вида QA:&lt;/p&gt;
  &lt;ol id=&quot;OZHg&quot;&gt;
    &lt;li id=&quot;OwKe&quot;&gt;Manual QA (ручной тестировщик) - проверяет всё вручную, не используя код. Например, разработчик перекрасил логотип фирмы на сайте в красивый красный цвет (rgb(239,0,55)). Задачей ручного тестировщика будет зайти на этот сайт и убедиться, что логотип перекрасился в нужный цвет&lt;/li&gt;
    &lt;li id=&quot;lEix&quot;&gt;Automation QA (автоматизатор тестирования) - проверяет при помощи кода и автотестов. Например, при той же задаче с логотипом, автоматизатор напишет скрипт (например, на Python + Selenium), который:&lt;/li&gt;
  &lt;/ol&gt;
  &lt;ul id=&quot;3K2p&quot;&gt;
    &lt;li id=&quot;nrRM&quot;&gt;Открывает нужную страницу&lt;/li&gt;
    &lt;li id=&quot;RFSk&quot;&gt;Находит элемент логотипа&lt;/li&gt;
    &lt;li id=&quot;sL0c&quot;&gt;Получает его CSS-свойство &lt;code&gt;color&lt;/code&gt; или &lt;code&gt;background-color&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;j3rc&quot;&gt;Сравнивает с ожидаемым значением &lt;code&gt;rgb(239,0,55)&lt;/code&gt; Благодаря этому, теперь не придется вручную заходить на сайт и проверять цвет логотипа. Достаточно будет лишь запустить этот скрипт и мы увидим “Test Passed” (тест прошел) или “Test Failed” (тест не прошел)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;aiid&quot;&gt;В этой статье мы более подробно поговорим про Manual QA&lt;/p&gt;
  &lt;p id=&quot;BgUi&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;Bn2C&quot;&gt;Нужно ли уметь кодить?&lt;/h3&gt;
  &lt;p id=&quot;46dk&quot;&gt;Как я и говорил выше, для ручного тестировщика &lt;strong&gt;уметь кодить не нужно&lt;/strong&gt;. Ему лишь необходимо понимать, как устроены приложения (клиент + бекенд + база данных) и научиться работать с простейшими инструментами (о них поговорим ниже)&lt;/p&gt;
  &lt;p id=&quot;sORm&quot;&gt;Безусловно, базовые знания языков программирования будут большим плюсом, поскольку они позволят вам автоматизировать часть своей работы, лучше находить баги и быть с разработчиками на одной волне&lt;/p&gt;
  &lt;p id=&quot;92WM&quot;&gt;Для AQA кодить нужно обязательно, зато и зарплаты выше. В большинстве компаний используются Python + Selenium + Playwright или Java + Selenium&lt;/p&gt;
  &lt;p id=&quot;gPGx&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;Dr7Z&quot;&gt;Виды Manual QA&lt;/h3&gt;
  &lt;p id=&quot;xKZ7&quot;&gt;Ручные тестировщики подразделяются на 3 вида:&lt;/p&gt;
  &lt;ol id=&quot;7Ket&quot;&gt;
    &lt;li id=&quot;cDWL&quot;&gt;Frontend QA - тестирует интерфейс сайтов. Ему скидывают дизайн и в основном он проверяет, что:&lt;br /&gt;- Элементы расположены на своих местах&lt;br /&gt;- Характеристики элементов (шрифт, размер, цвет и т.д.) совпадают с теми, что в дизайне&lt;br /&gt;- На мониторах разных размеров приложение выглядит корректно&lt;/li&gt;
    &lt;li id=&quot;47xC&quot;&gt;Backend QA - тестирует ту часть сайта, которую не видит обычный пользователь:&lt;br /&gt;- Различные взаимодействия с базой данных&lt;br /&gt;- Различные взаимодействия с бэкэндом (сервером) приложения. Например, что при создании пользователя сервер возвращает ответ 201 Created&lt;/li&gt;
    &lt;li id=&quot;o3Ty&quot;&gt;Mobile QA - тестирует мобильные приложения:&lt;br /&gt;- Проверяет, что Android-приложение работает корректно&lt;br /&gt;- Проверяет, что iOS-приложение работает корректно&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;AOnh&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;HGAw&quot;&gt;Сколько платят?&lt;/h3&gt;
  &lt;p id=&quot;aKy2&quot;&gt;Разберём, сколько может зарабатывать ручной тестировщик в СНГ (на валютных удалёнках зарплаты, очевидно, будут гораздо выше)&lt;/p&gt;
  &lt;figure id=&quot;ugUe&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/4b/c0/4bc08c72-0652-42b5-98b1-34483183d8ca.png&quot; width=&quot;1454&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;nPGL&quot;&gt;Junior QA: в среднем 71.000р&lt;/p&gt;
  &lt;p id=&quot;ZONP&quot;&gt;Middle QA: в среднем 194.000р&lt;/p&gt;
  &lt;p id=&quot;KQru&quot;&gt;Senior QA: в среднем 267.000р&lt;/p&gt;
  &lt;p id=&quot;GoKu&quot;&gt;Lead QA: в среднем 283.000р&lt;/p&gt;
  &lt;p id=&quot;iQfT&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;zAKd&quot;&gt;За что столько платят?&lt;/h3&gt;
  &lt;p id=&quot;FPS9&quot;&gt;QA экономит компании кучу денег. Если на проекте нет QA, то высока вероятность, что:&lt;/p&gt;
  &lt;ol id=&quot;U1jZ&quot;&gt;
    &lt;li id=&quot;RQ7P&quot;&gt;&lt;strong&gt;Пользователь перестанет использовать приложения из-за багов и неудобств&lt;/strong&gt;. Например, если кнопка &amp;quot;Оформить заказ&amp;quot; не работает - клиент просто уходит.&lt;/li&gt;
    &lt;li id=&quot;vheV&quot;&gt;&lt;strong&gt;Могут возникнуть критические уязвимости в бизнес-логике&lt;/strong&gt;, позволяющие, например, покупать товары по заниженной цене, оформлять заказы без оплаты или получать доступ к чужим данным - а это прямые финансовые потери и риски для безопасности. Примеры будут ниже&lt;/li&gt;
  &lt;/ol&gt;
  &lt;h3 id=&quot;knVY&quot;&gt;&lt;/h3&gt;
  &lt;h3 id=&quot;QmYM&quot;&gt;Примеры приложений, которые были плохо протестированы&lt;/h3&gt;
  &lt;p id=&quot;owwf&quot;&gt;Такие случаи - не редкость.&lt;/p&gt;
  &lt;ol id=&quot;UpvE&quot;&gt;
    &lt;li id=&quot;RMn5&quot;&gt;В 2023 году житель Волгограда покупал вещи из ЦУМа за 150 рублей вместо 150 000 рублей. Суд встал на его сторону, и ему не пришлось ничего возвращать. Подробнее &lt;a href=&quot;https://www.forbes.ru/biznes/493097-sud-vstal-na-storonu-volgogradca-kupivsego-vesi-v-cum-v-846-raz-desevle-iz-za-sboa&quot; target=&quot;_blank&quot;&gt;тык&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;STbZ&quot;&gt;В 2023 году был баг в WildBerries, который позволял бесплатно забирать вещи из пункта выдачи заказов. Тут уже суд встал на сторону WB. Подробнее &lt;a href=&quot;https://www.securitylab.ru/news/553189.php&quot; target=&quot;_blank&quot;&gt;тык&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;RQnV&quot;&gt;В 2022 году в Тинькофф банке был баг, связанный с обменом валюты. Благодаря нему можно было кругами крутить rub &amp;lt;—&amp;gt; usd и получать профит. Один из клиентов заработал 68,8 тыс. евро. Банк попытался вернуть средства, но судебные решения были неоднозначными: некоторые клиенты выиграли дела, другие — проиграли. Подробнее &lt;a href=&quot;https://habr.com/ru/news/813051/&quot; target=&quot;_blank&quot;&gt;тык&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;671w&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;MvOb&quot;&gt;Web2 QA vs Web3 QA:&lt;/h3&gt;
  &lt;p id=&quot;eh3i&quot;&gt;Из-за низкой конкуренции вам будут больше платить. Ведь очень мало тестировщиков, которые хотя бы примерно понимают, как работает крипта. Зарплату вы будете получать в USDT + бонусы в токенах проекта Но большинство таких компаний требуют знаний английского языка и количество вакансий напрямую зависит от ситуации на рынке крипты&lt;/p&gt;
  &lt;p id=&quot;RZ3p&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;4MjF&quot;&gt;Что должен знать тестировщик?&lt;/h3&gt;
  &lt;p id=&quot;blMy&quot;&gt;Ниже я перечислю, что должен знать &lt;strong&gt;Junior+&lt;/strong&gt; или &lt;strong&gt;Middle&lt;/strong&gt; тестировщик:&lt;/p&gt;
  &lt;ul id=&quot;TQUM&quot;&gt;
    &lt;li id=&quot;VWr3&quot;&gt;Теория тестирования&lt;/li&gt;
    &lt;ol id=&quot;KUw3&quot;&gt;
      &lt;li id=&quot;Txl6&quot;&gt;Как производится тестирование?&lt;/li&gt;
      &lt;li id=&quot;CIkL&quot;&gt;Виды тестирования?&lt;/li&gt;
      &lt;li id=&quot;aduC&quot;&gt;Принципы тестирования?&lt;/li&gt;
      &lt;li id=&quot;4Wpz&quot;&gt;Верификация / Валидация?&lt;/li&gt;
      &lt;li id=&quot;pTiy&quot;&gt;SDLC / STLC?&lt;/li&gt;
      &lt;li id=&quot;ezL9&quot;&gt;Методы тестирования?&lt;/li&gt;
      &lt;li id=&quot;OPm1&quot;&gt;Пирамида тестирования?&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;aa2Q&quot;&gt;&lt;/p&gt;
  &lt;ul id=&quot;VZZR&quot;&gt;
    &lt;li id=&quot;bswQ&quot;&gt;Тестовая документация Jira и TMS&lt;/li&gt;
    &lt;ol id=&quot;B7FG&quot;&gt;
      &lt;li id=&quot;hQur&quot;&gt;Как она выглядит + как пишется?&lt;/li&gt;
      &lt;li id=&quot;y71M&quot;&gt;Что такое TMS / TTS?&lt;/li&gt;
      &lt;li id=&quot;3YtV&quot;&gt;Где пишутся чек-листы и что это?&lt;/li&gt;
      &lt;li id=&quot;Znz7&quot;&gt;Где пишутся тест кейсы и что это?&lt;/li&gt;
      &lt;li id=&quot;Wxvn&quot;&gt;Практика написания тест кейсов по техникам тест дизайна&lt;/li&gt;
      &lt;li id=&quot;VG5u&quot;&gt;Что такое баг? Баг-репорт?&lt;/li&gt;
      &lt;li id=&quot;lpd0&quot;&gt;Где заводятся баги?&lt;/li&gt;
      &lt;li id=&quot;nKQ6&quot;&gt;Как правильно заводить баги?&lt;/li&gt;
      &lt;li id=&quot;ngHr&quot;&gt;Чем отличается баг от дефекта и ошибки?&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;l1Y0&quot;&gt;&lt;/p&gt;
  &lt;ul id=&quot;WdYT&quot;&gt;
    &lt;li id=&quot;roxI&quot;&gt;Клиент серверная архитектура&lt;/li&gt;
    &lt;ol id=&quot;Pjug&quot;&gt;
      &lt;li id=&quot;gJYw&quot;&gt;Из чего состоит Клиент-Серверная архитектура?&lt;/li&gt;
      &lt;li id=&quot;AR2P&quot;&gt;Что такое frontend/backend? Как они взаимодействуют между друг другом? Где там база данных?&lt;/li&gt;
      &lt;li id=&quot;b2nr&quot;&gt;Что такое SQL?&lt;/li&gt;
      &lt;li id=&quot;viIi&quot;&gt;Структура HTTP-запроса и HTTP-ответа&lt;/li&gt;
      &lt;li id=&quot;2mab&quot;&gt;Архитектурный стиль REST и формат JSON&lt;/li&gt;
      &lt;li id=&quot;u0SE&quot;&gt;Что такое API. Монолит и микросервисы?&lt;/li&gt;
      &lt;li id=&quot;Zf6R&quot;&gt;Cache, cookie, local storage, session storage&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;Rl4y&quot;&gt;&lt;/p&gt;
  &lt;ul id=&quot;NIq6&quot;&gt;
    &lt;li id=&quot;f50j&quot;&gt;Инструменты для тестирования фронтенда и бекенда&lt;/li&gt;
    &lt;ol id=&quot;MlHo&quot;&gt;
      &lt;li id=&quot;jmmx&quot;&gt;&lt;strong&gt;DevTools&lt;/strong&gt;. Основные вкладки - Elements, Console, Network, Application.&lt;/li&gt;
      &lt;li id=&quot;uC2F&quot;&gt;&lt;strong&gt;Figma&lt;/strong&gt; + &lt;strong&gt;Pixel Perfect&lt;/strong&gt;&lt;/li&gt;
      &lt;li id=&quot;Mnsn&quot;&gt;&lt;strong&gt;Swagger (Pet Store)&lt;/strong&gt; - там хранится документация к API. Как ею пользоваться?&lt;/li&gt;
      &lt;li id=&quot;GBME&quot;&gt;&lt;strong&gt;Postman&lt;/strong&gt; - как создавать запросы? Как их отправлять? Rак создавать коллекции?Какие методы бывают (GET POST и т.д.)&lt;/li&gt;
      &lt;li id=&quot;1qBU&quot;&gt;&lt;strong&gt;ELK&lt;/strong&gt; &lt;strong&gt;Kibana&lt;/strong&gt; (&lt;strong&gt;Grafana&lt;/strong&gt;)&lt;/li&gt;
      &lt;li id=&quot;ujRN&quot;&gt;&lt;strong&gt;Kafka / RabbitMQ&lt;/strong&gt;, если хочешь ЗП 200к+&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;ntu0&quot;&gt;&lt;/p&gt;
  &lt;ul id=&quot;7wHw&quot;&gt;
    &lt;li id=&quot;ptEv&quot;&gt;Инструменты для мобильного тестирования&lt;/li&gt;
    &lt;ol id=&quot;RhAe&quot;&gt;
      &lt;li id=&quot;iuCH&quot;&gt;&lt;strong&gt;Charles Proxy / Proxyman&lt;/strong&gt; - сниффинг (анализ) трафика, подмена запросов и ответов, throttling, breakpoints&lt;/li&gt;
      &lt;li id=&quot;yuuX&quot;&gt;&lt;strong&gt;Android Studio&lt;/strong&gt; - &lt;strong&gt;Logstash&lt;/strong&gt;, эмуляция нужного мобильного девайса&lt;/li&gt;
      &lt;li id=&quot;2Mta&quot;&gt;&lt;strong&gt;ADB&lt;/strong&gt;&lt;/li&gt;
      &lt;li id=&quot;tzcK&quot;&gt;&lt;strong&gt;XCode&lt;/strong&gt;&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;BmiW&quot;&gt;&lt;/p&gt;
  &lt;ul id=&quot;ki5G&quot;&gt;
    &lt;li id=&quot;5qpO&quot;&gt;Процессы в компании&lt;/li&gt;
    &lt;ol id=&quot;O0QI&quot;&gt;
      &lt;li id=&quot;HMpV&quot;&gt;Что такое Scrum?&lt;/li&gt;
      &lt;li id=&quot;uHt5&quot;&gt;Какие созвоны бывают?&lt;/li&gt;
      &lt;li id=&quot;eRED&quot;&gt;Как выглядит команда?&lt;/li&gt;
      &lt;li id=&quot;MbT2&quot;&gt;Как взаимодействуем с командой?&lt;/li&gt;
      &lt;li id=&quot;J1BU&quot;&gt;Как оцениваются задачи в скраме?&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;tSBZ&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;b54j&quot;&gt;Как найти работу?&lt;/h3&gt;
  &lt;p id=&quot;qrYL&quot;&gt;Создаем резюме и идем откликаться. В поиске нужно вбивать “QA Engineer” или “Тестировщик”&lt;/p&gt;
  &lt;p id=&quot;EE8U&quot;&gt;Вам необходимо создать такое резюме, которое будет обходить различные автофильтры (по возрасту, опыту, полу, ключевым словам)&lt;/p&gt;
  &lt;p id=&quot;wKyA&quot;&gt;Где откликаться?&lt;/p&gt;
  &lt;ol id=&quot;mclE&quot;&gt;
    &lt;li id=&quot;ZkkL&quot;&gt;&lt;a href=&quot;http://hh.ru&quot; target=&quot;_blank&quot;&gt;hh.ru&lt;/a&gt; - для поиска работы на web2&lt;/li&gt;
    &lt;li id=&quot;KSar&quot;&gt;&lt;a href=&quot;https://career.habr.com/&quot; target=&quot;_blank&quot;&gt;career.habr.com&lt;/a&gt;- для поиска работы на web2&lt;/li&gt;
    &lt;li id=&quot;dihH&quot;&gt;Также, можно искать вакансии в различных ТГ каналах и напрямую писать рекрутерам&lt;/li&gt;
    &lt;li id=&quot;TaKt&quot;&gt;&lt;a href=&quot;http://web3.career&quot; target=&quot;_blank&quot;&gt;web3.career&lt;/a&gt; - для поиска работы на web3&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;KQIs&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;fOHX&quot;&gt;❌ QA — не «темка на один раз»&lt;/h3&gt;
  &lt;p id=&quot;Sp6X&quot;&gt;Это стабильная профессия, которая позволяет строить карьеру на годы вперёд и жить на уровне &lt;strong&gt;выше среднего&lt;/strong&gt; — мало работаешь, много получаешь.&lt;/p&gt;
  &lt;p id=&quot;8uIH&quot;&gt;Например, вы можете:&lt;/p&gt;
  &lt;ol id=&quot;M7bt&quot;&gt;
    &lt;li id=&quot;Tdhq&quot;&gt;Из QA перейти в AQA&lt;/li&gt;
    &lt;li id=&quot;9OER&quot;&gt;Найти работу на валютной удалёнке (платят в полтора-два раза больше)&lt;/li&gt;
    &lt;li id=&quot;DbdH&quot;&gt;Из QA перейти в WEB3 QA&lt;/li&gt;
    &lt;li id=&quot;6lWz&quot;&gt;Из QA перейти в WEB3 AQA&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;EFcn&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;Tzgv&quot;&gt;Почему криптанам легче вкатываться в QA?&lt;/h3&gt;
  &lt;p id=&quot;85FQ&quot;&gt;Думаю, уж точно не мне обьяснять, что крипта - эта та ещё кладезь багов. То сайт ляжет во время сейла, то контракт дырявый окажется, то ошибка в коде критически повлияет на проект. В общем, криптан, как и QA-тестировщик всегда пытается найти какую-то дырку. QA в свою очередь пытается её залатать, а криптан же наоборот какой-то с неё профит заиметь. Как это было, допустим, с проектом Stars Arena, где можно было из-за ошибки продавать 0 акций (по сути ничего) и получать профит. &lt;a href=&quot;https://twitter.com/0xlilitch/status/1709885464209973549&quot; target=&quot;_blank&quot;&gt;Подробнее&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;По сути и криптана уже есть &lt;strong&gt;готовый майндсет по QA&lt;/strong&gt;, вот табличка для примера:&lt;/p&gt;
  &lt;figure id=&quot;gs0P&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/01/85/0185a7b6-0433-4121-bf15-3e6c22e31158.png&quot; width=&quot;1346&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;A1Lf&quot;&gt;А если ты захочешь уйти в Web3 QA, то твои знания крипты уж дадут невероятно сильный буст. А зарплаты там достигают 600,000р (±8,000$)&lt;/p&gt;
  &lt;p id=&quot;Gmpb&quot;&gt;В общем, крипта - тот ещё дикий запад. И это огромный плюс для QA.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
  &lt;h2 id=&quot;pbc6&quot;&gt;Что дальше то?&lt;/h2&gt;
  &lt;p id=&quot;ocwZ&quot;&gt;Заходи в наш канал - &lt;a href=&quot;https://t.me/how_to_code_web3&quot; target=&quot;_blank&quot;&gt;https://t.me/how_to_code_web3&lt;/a&gt;, в нём будут выходить полезные материалы по QA - что изучать, как собеситься и т.д.&lt;/p&gt;

</content></entry></feed>