<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Тестировщик</title><generator>teletype.in</generator><description><![CDATA[Все о тестировании ПО.]]></description><image><url>https://img2.teletype.in/files/de/7f/de7f4a41-6f2d-43be-ba61-889f5c9c259d.jpeg</url><title>Тестировщик</title><link>https://teletype.in/@testirovshit</link></image><link>https://teletype.in/@testirovshit?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/testirovshit?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/testirovshit?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Sun, 05 Apr 2026 11:42:52 GMT</pubDate><lastBuildDate>Sun, 05 Apr 2026 11:42:52 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@testirovshit/kaeY_mgO9Sn</guid><link>https://teletype.in/@testirovshit/kaeY_mgO9Sn?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit</link><comments>https://teletype.in/@testirovshit/kaeY_mgO9Sn?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit#comments</comments><dc:creator>testirovshit</dc:creator><title>Как мы отказались от встреч по оценки багов с помощью телеграм бота и что из этого получилось</title><pubDate>Sat, 22 Jun 2024 09:33:16 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/90/ab/90abb45b-871b-4513-9a9f-f44f2e0e9239.png"></media:content><category>case</category><description><![CDATA[<img src="https://img4.teletype.in/files/31/92/3192ae88-602a-4f27-9212-ae3e608c3aaf.png"></img>Раньше наша команда собиралась с определенной периодичностью (обычно раз в 2 недели) и оценивала баги. Приходили менеджер, QA-лид и лид-разработки. Встреча занимала 0.5 - 1 ч. Не всегда успевали все оценить и хвост неоцененных тасок тянулся, и даже что-то терялось. Однажды нашего менеджера осенило оценивать баги через телеграм бота, чтобы (1) в моменте знать насколько критичный баг, (2) не тратить время на встречу и (3) оценивать в любой момент времени. В итоге, запилили логику по схеме:]]></description><content:encoded><![CDATA[
  <figure id="HceY" class="m_column">
    <img src="https://img4.teletype.in/files/31/92/3192ae88-602a-4f27-9212-ae3e608c3aaf.png" width="1024" />
    <figcaption>Так Алиса представляет оценку багов</figcaption>
  </figure>
  <p id="rGqR">Раньше наша команда собиралась с определенной периодичностью (обычно раз в 2 недели) и оценивала баги. Приходили менеджер, QA-лид и лид-разработки. Встреча занимала 0.5 - 1 ч. Не всегда успевали все оценить и хвост неоцененных тасок тянулся, и даже что-то терялось. Однажды нашего менеджера осенило оценивать баги через телеграм бота, чтобы (1) в моменте знать насколько критичный баг, (2) не тратить время на встречу и (3) оценивать в любой момент времени. В итоге, запилили логику по схеме:</p>
  <ol id="1J3B">
    <li id="oMej">Создаем багу в трекере</li>
    <li id="EKDH">Трекер вызывает тг-бота</li>
    <li id="AGWm">Тг-бот отправляет в чат нотификацию &quot;Проставить важность багу&quot; со ссылкой на баг и призывает 3-амиго (менеджер, разраб и тестер)</li>
    <li id="nCpq">3-амиго реплаят сообщение бота цифрами от 1 до 100, где 1 - блокер, 100 - когда-то однажды поправим.</li>
    <li id="cOYN">После того как оценку проставили все амиго бот находит среднее и проставляет багу важность. Кстати, есть опция - если хотя бы один оценщик поставил оценку и отправил реплай &quot;стоп&quot;, то бот берет имеющиеся оценки, находит среднее и проставляет багу важность.</li>
    <li id="udRj">В трекере ранее создали фильтр куда попадают таски отсортированные по важности.</li>
  </ol>
  <p id="IC0s"><strong>Что вышло</strong></p>
  <p id="9OCl">Из плюсов:</p>
  <ol id="C051">
    <li id="6Tz7">Мы избавились от неоцененных багов,</li>
    <li id="E77u">В канале обсуждаем почему такая оценка, влияние и т.п. Кстати, из-за обсуждений сокращалось кол-во оцененных багов во время встречи.</li>
    <li id="2Kqi">Сэкономили ~2 ч. в месяц :),</li>
    <li id="DoAk">Фичу начали использовать другие команды, а еще экономия времени (супер!)</li>
    <li id="OdQv">Кстати, кто-то из команд начал использовать тг-уведомления, как нотификацию о заведенных багов.</li>
  </ol>
  <p id="r1eT">Из минусов:</p>
  <ol id="zlSQ">
    <li id="Ioa4">Столкнулись с проблемой, что в потоке нотификаций теряются таски на оценку или кто-то из амиго не проставляет важность, а значит снова не оцененные таски :(</li>
    <li id="JkZN">Не подумали, что должна быть возможность переоценивать багу, пока не проставили оценку.</li>
  </ol>
  <p id="syHv"><strong>Что делаем дальше</strong></p>
  <ol id="Ddvd">
    <li id="pIQC">Чтобы не терять оценки сделаем фичу, которая будет каждый день в заданное время собирать тг-ссылки на неоценные баги и скидывать подборку в канал.</li>
    <li id="JxbH">По багам, которые оценили не все амиго тоже уведомляем, но в заданное время ежедневно брать имеющиеся оценки и проставлять.</li>
    <li id="5tBv">Дать возможность переоценивать баги, пока кто-нибудь не отправил стоп или не проставили все оценки.</li>
  </ol>
  <p id="u8qk">И как говорится &quot;на правах рекламы&quot; подписывайтесь на мой тг-канал <a href="https://t.me/testirovshit" target="_blank">&quot;Тестировщик&quot;</a>, делитесь <a href="https://t.me/testirovshit?boost" target="_blank">бустами</a> и оставляйте комментарии :)</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@testirovshit/lKJegwffWfO</guid><link>https://teletype.in/@testirovshit/lKJegwffWfO?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit</link><comments>https://teletype.in/@testirovshit/lKJegwffWfO?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit#comments</comments><dc:creator>testirovshit</dc:creator><title>Как читать логи в Logcat</title><pubDate>Fri, 29 Mar 2024 07:52:04 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/31/00/3100d07b-28f4-41bf-bdd4-b91508aa2895.png"></media:content><category>android studio</category><description><![CDATA[<img src="https://img2.teletype.in/files/98/2d/982db65e-6650-443f-9e58-68dc49808dde.png"></img>Logcat - инструмент для сбора логов с устройства / приложения. Логи можно разбить на категории по тегам, уровням и процессам. Также в интерфейсе Android Studio можно фильтровать логи, искать по вхождению или с помощью регулярных выражений. Подробности про Logcat можно прочитать в официальной документации.]]></description><content:encoded><![CDATA[
  <h2 id="XCeJ">Что такое Logcat</h2>
  <p id="WHhN">Logcat - инструмент для сбора логов с устройства / приложения. Логи можно разбить на категории по тегам, уровням и процессам. Также в интерфейсе Android Studio можно фильтровать логи, искать по вхождению или с помощью регулярных выражений. Подробности про Logcat можно прочитать <a href="https://developer.android.com/tools/logcat" target="_blank">в официальной документации</a>.</p>
  <h2 id="0wGj">Как найти Logcat</h2>
  <ol id="2qxX">
    <li id="ShQ5">В UI-интерфейсе в Android Studio: <code>View &gt; Tool Windows &gt; Logcat</code>  или <code>option+6</code>  (Mac).</li>
    <li id="1PEP">Через терминал: <code>Terminal &gt; adb shell logcat</code> . В этой доке рассказываем про UI-версию. Про CLI-версию <a href="https://developer.android.com/tools/logcat" target="_blank">можно прочитать тут</a>.</li>
  </ol>
  <h2 id="Ww7t">Уровни логов</h2>
  <p id="5jFG">Каждый лог имеет дату, время, процесс, ID потока, название пакета, приоритет и сообщение. Для удобства уровни логов выделяют цветом и лейблом. В таблице типы представлены от низшего к высшему типу.</p>
  <figure id="5TpG" class="m_column">
    <img src="https://img2.teletype.in/files/98/2d/982db65e-6650-443f-9e58-68dc49808dde.png" width="1572" />
  </figure>
  <h2 id="W8DS">Фильтры</h2>
  <h3 id="kjh8">Фильтрация логов по уровням</h3>
  <p id="EOKc">Для фильтрации логов по уровням необходимо в инпут фильтрации ввести пару <code>level:&lt;type&gt;</code>, где type - уровень логов. Нужно учитывать что включая лог низшего уровня увидим сообщения типа высшего уровня. Т.е. включить логи W, то в логах увидим и E, A. Если включить V, то будут отображаться логи всех уровней.</p>
  <figure id="VLj1" class="m_column">
    <img src="https://img3.teletype.in/files/23/54/23547ad5-2f74-48a5-b16c-116b22c3debc.jpeg" width="1280" />
  </figure>
  <h3 id="8EVv">Фильтрация логов по тегам</h3>
  <p id="Syzb">Тег - это параметр передаваемый в функцию <code>Log.&lt;log_level&gt;</code>, с помощью которого можно фильтровать события только с таким тегом. Чтобы искать по тегу, нужно в инпут фильтрации ввести <code>tag:&lt;entry_type&gt;</code>. Например, чтобы увидеть события андроида можно ввести <code>tag:android</code></p>
  <figure id="0XP2" class="m_column">
    <img src="https://img2.teletype.in/files/91/fc/91fcd205-85b7-4b30-9f26-c8e20a1d602e.png" width="2268" />
  </figure>
  <p id="J58N">При вводе <code>tag </code>можно увидеть предложенные варианты поиска, в том числе можно исключать теги конструкцией <code>-tag:&lt;entry_type&gt;</code></p>
  <h3 id="U4zL">Фильтрация логов по пакетам</h3>
  <p id="WdgL">Фильтрация по пакету (приложению) аналогична фильтрации по тегам. Нужно задать конструкцию <code>package:&lt;package_name&gt;</code>. Например, отфильтровать запрос по пакету<code>package:android.hardware.graphics.allocator@3.0-service</code></p>
  <figure id="PWrX" class="m_column">
    <img src="https://img1.teletype.in/files/03/6a/036a2bbc-f42f-4419-a7e3-198232dd65b9.png" width="2628" />
  </figure>
  <h3 id="2qFg">Комбинация фильтров и регулярные выражения</h3>
  <p id="xeZF">В инпуте фильтрации можно использовать регулярные выражения. Например, вот так <code>package:android | -package:system_process</code>можно отфильтровать события с пакетом android и отбросить события <code>system_process</code>.</p>
  <h2 id="SBlZ">Некоторые дополнительные возможности logcat в Android Studio</h2>
  <h3 id="hT3v">Экспорт и импорт логов</h3>
  <p id="Uupz">Для того чтобы, например, поделиться логами, можно их сохранить нажав на пиктограмму на скрине</p>
  <figure id="0ckQ" class="m_column">
    <img src="https://img4.teletype.in/files/78/c0/78c09f02-5e48-413c-abca-aada21e5195f.jpeg" width="1280" />
  </figure>
  <p id="ACUj">Чтобы прочитать экспортированный лог нужно кликнуть на пиктограмму:</p>
  <figure id="A2Xy" class="m_column">
    <img src="https://img1.teletype.in/files/41/b1/41b11dad-43ca-4d41-97b0-d0bc3a532bd0.jpeg" width="1280" />
  </figure>
  <h3 id="m0R8">Раздельный просмотр логов</h3>
  <p id="7OQH">Удобно разделять окна логов, например, в одном смотрим какие логи приходят с устройства, а на другом какие логи были импортированы. Для этого жмем на пиктограмму и выбираем способ разделения, а далее в выпадающем списке источник логов:</p>
  <figure id="xsHy" class="m_column">
    <img src="https://img1.teletype.in/files/c8/86/c886169e-049a-4ebc-bff1-d60e9c01eed7.jpeg" width="1280" />
  </figure>
  <h3 id="sciC">Перенос строк для удобства чтения</h3>
  <p id="KWYr">Для удобства чтения, чтобы не скроллить длинные строки, включаем Soft-wrap:</p>
  <figure id="06gn" class="m_column">
    <img src="https://img3.teletype.in/files/e8/e1/e8e17b7d-328e-4841-801b-8fda68f1eb45.jpeg" width="1280" />
  </figure>
  <h2 id="Adz5">Работа с логами через CLI logcat</h2>
  <p id="ebb5">Подробнее про возможности CLI logcat читайте в <a href="https://developer.android.com/tools/logcat" target="_blank">официальной документации</a>. Ниже представлены некоторые из них:</p>
  <ol id="95wf">
    <li id="Wzzx"><code>adb logcat</code>  - вывод логов в реальном времени в терминал</li>
    <li id="Dkx6"><code>adb logcat &gt;&gt; &lt;path/file.txt&gt;</code>  - сохранение логов в файл, где &lt;path/file.txt&gt; - путь и название файла с логами</li>
    <li id="dESb"><code>adb logcat &#x27;*:&lt;level&gt;&#x27;</code>  - вывод логов определенного уровня, где - V — Verbose, D — Debug, I — Info, W — Warn, E — Error, F — Fatal</li>
    <li id="ul1F"><code>adb logcat -c</code>  - очистка логов</li>
  </ol>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@testirovshit/DWJGsKhOqnp</guid><link>https://teletype.in/@testirovshit/DWJGsKhOqnp?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit</link><comments>https://teletype.in/@testirovshit/DWJGsKhOqnp?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit#comments</comments><dc:creator>testirovshit</dc:creator><title>ТОП-10 ошибок тестировщиков, что приводят к блокерам</title><pubDate>Thu, 07 Mar 2024 10:34:20 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/90/97/9097007f-b4c1-4cff-99e0-7e6d7d81618c.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/0e/56/0e560f80-6285-415b-b6bf-696c825a191f.png"></img>Ошибки допускают все, это нормально. Но их нужно разбирать и принимать решения по их недопущению. Это и называется учится на ошибках. А обеспечение качества - это учиться на чужих ошибках.]]></description><content:encoded><![CDATA[
  <p id="Az8o"><em>Ошибки допускают все, это нормально. Но их нужно разбирать и принимать решения по их недопущению. Это и называется учится на ошибках. А обеспечение качества - это учиться на чужих ошибках.</em></p>
  <p id="i5Px"><em>В этом посте узнаешь про распространённые ошибки, какие повстречал, как их увидеть, как с ними бороться и к чему приводит их допущение.</em></p>
  <h3 id="cjSU">1. Кто-нибудь заведёт</h3>
  <p id="jk4b"><strong>Что значит: </strong>заметить баг и не завести на него тикет или не убедиться, что он заведён. Чаще всего думают так: <em>«явный баг, кто-нибудь заведёт»</em> или <em>«100% на это есть тикет»</em>.</p>
  <p id="taKh"><strong>К чему приводят: </strong>баг незначительный, но так какявно виденбольшой аудитории, то это причина перенести релиз, завернуть сборку и прочие нехорошие последствия.</p>
  <p id="Q2wz"><strong>Как увидеть:</strong> это как раз баги лежащие на поверхности и чаще всего это баги графического интерфейса. Съехавшие кнопки, опечатки в тексте, битые ссылки - это все и есть баги «кто-нибудь заведёт».</p>
  <p id="t003"><strong>Как бороться: </strong>ключевая причина проблемы - лень. Все ленятся, и тестировщик не исключение.</p>
  <p id="7o1C">Чтобы не стать жертвой этой ошибки нужно:</p>
  <ul id="cwFP">
    <li id="saYi">Если лень искать баг, написать в чат команды. Так обозначишь проблему и возможно тебе скинут ссылку на заведённый баг. Возьмёшь обязательство перед коллегами, завести баг, и лень уже не победит.</li>
    <li id="NuMv">Давать четкие однозначно описывающие названия багам. Такие баги легко ищутся в багтрекерах. Если не нашел, значит нужно заводить.</li>
  </ul>
  <h3 id="3taj">2. N-багов в одном тикете</h3>
  <p id="zylJ"><strong>Что значит: </strong>несколько багов объединяют в один при условии схожести, общности шагов и прочим «справедливым условиям». Иногда даже менеджеры, лиды разработки просят завести один на все.</p>
  <p id="t2Oa"><strong>К чему приводит:</strong> чинят один, другие остаются. Тратится время на сборку, тест, возврат на починку и нормальное переоформление. Это приводит к сдвигу релиза, переработкам, ухудшению качества тестирования.</p>
  <p id="nrqM"><strong>Как увидеть: </strong>множество несоответствий в фактическом результате, например: <em>«фактический результат: съехала кнопка, текст не соответствует действию, возвращается 500-код по клику»</em>.</p>
  <p id="8QZ9"><strong>Как бороться:</strong></p>
  <ul id="zQi0">
    <li id="Xuur">Перечитывать фактический результат. Если несколько дефектов - разбить баг на несколько.</li>
    <li id="YiUC">Мелкие баги графического интерфейса или функциональные можно объединить в одном баге. Например, <em>«цвет кнопки серый и текст съехал»</em> или <em>«в json нет timestamp и date приходит пустой». </em>Но лучше так не делать<em>. </em>Особенно когда ты новичок или проект только начался (можешь не все понимать, лучше завести и закрыть после).</li>
    <li id="xrZl">Если просит менеджер или лид завести в один - заводи. Но обязательно прописывай каждую ошибку и выделяй, подсвечивай, обводи и т.п. Главное, чтобы невооруженным глазом было видно - в баге несколько проблем! Но the best практика - отстоять свою позицию и завести несколько багов.</li>
  </ul>
  <h3 id="672b">3. Артефакты в публичном доступе</h3>
  <p id="ASKp"><strong>Что значит: </strong>сохранять скриншоты, скринкасты с незарелизенным функционалом в открытом доступе, не ограничивать доступ к ТЗ в гугл-доках.</p>
  <p id="7kz9"><strong>К чему приводит: </strong>в СМИ появляется инсайдерская информация, убытки компании, сорванный проект, обида команды.</p>
  <p id="4JT5"><strong>Как увидеть: </strong>к сожалению такие вещи сложно отследить. Для этого существуют сисадмины, которые должны контролировать ПО и действия с помощью групповых политик в домене.</p>
  <p id="lyud"><strong>Как бороться:</strong></p>
  <ul id="SiSr">
    <li id="xoCY">В настройках любого ПО проверять не сливаются ли файлы в общий доступ</li>
    <li id="yh6A">Проставить в гугл-доках, любых других аналогах - доступ по умолчанию закрыт</li>
    <li id="HUQe">Не рассказывать, не делиться ссылками по секрету с друзьями, бывшими коллегами и т.п.</li>
  </ul>
  <h3 id="eLvG">4. Искусственное тестирование</h3>
  <p id="Q8cV"><strong>Что значит: </strong>тестировать на искусственных данных позабыв про использование реальных или похожих на реальные.</p>
  <p id="kuIJ">Также сюда входит очень тонкий момент - тестирование на проде. Нужно тестировать на проде, но очень аккуратно, и главное помнить, что нельзя ничего трогать глобального (только в рамках тестового пользователя) и без 100% уверенности, что это ничего не сломает.</p>
  <p id="UW73"><strong>К чему приводит:</strong> пользователь получает продукт, который не будет работать в реальных условиях, а значит бесполезен.</p>
  <p id="AK0N">Запуск проекта или релиз новой версии без тестирования на проде это очень редкий кейс, но если имеет место, то часто функционал не запускается (не те пути к базам, нет доступов у пользователей и т.п.)</p>
  <p id="2Suy"><strong>Как увидеть: </strong>чаще всего при тестировании функционала реальными данными или похожими на них появляется больше багов. Если у тебя подозрительно мало багов, то стоит подумать, а используешь ли правильные данные (реальные, похожие).</p>
  <p id="p8rk"><strong>Как бороться: </strong>при выборе техники тест-дизайна закладывать в кейсы реальные данные. Обязательно разработать или указать в существующем регламенте выкатки в прод, тестирование на проде.</p>
  <h3 id="9knR">5. Тестировать в проде</h3>
  <p id="GJvo"><strong>Что значит: </strong>значит проходить тестовые кейсы в продовом окружении и оставлять после себя артефакты, который могут увидеть пользователи. Например, тестируешь интернет-магазин и оставляешь после себя товары с названием &quot;Тестовое тесто&quot;.</p>
  <p id="MSnl">Но самое ужасное, если у тебя есть доступ к CRM, базам данных и т.п. и ты ненамеренно удалил что-то важное, например базу с пользователями.</p>
  <p id="fb8j"><strong>К чему приводит: </strong>в лучшем случае никто не увидет или увидит забавную карточку товара, а в худшем засветишь тестовые данные учеток или испортишь внешний вид сайта.</p>
  <p id="CtRo">Про тот случай, когда есть доступ к CRM и базам, не буду описывать последствия - они понятны.</p>
  <p id="WmSH"><strong>Как увидеть: </strong>обращай внимание на URL-сайта, какая используется база, какой серверный конфиг и прочие атрибуты окружения.</p>
  <p id="3u1S"><strong>Как бороться: </strong>есть много способов:</p>
  <ul id="pNF8">
    <li id="NL9R">создавать виртуальные машины с соответствующим окружением,</li>
    <li id="FsV6">создание профилей для продовой и тестовой среды,</li>
    <li id="juzD">давать права тестированию только на чтение в проде,</li>
    <li id="fWU7">разворачивать тестовую среду на отдельных URL, серверах и т.п.</li>
  </ul>
  <h3 id="ejnN">6. Боятся задать вопрос</h3>
  <p id="Awot"><strong>Что значит: </strong>не спросить побоявшись выглядить глупым.</p>
  <p id="bmKX"><strong>К чему приводит:</strong> функционал не протестирован полностью, пропущены критичные баги.</p>
  <p id="2dUu"><strong>Как увидеть:</strong> считаю что есть 2 основные причины</p>
  <ol id="1rKZ">
    <li id="3ET6">Коллеги считают что ты должен все знать</li>
    <li id="pwkh">Нет 100% уверенности в правильности понимания задачи</li>
  </ol>
  <p id="L49v"><strong>Как бороться:</strong></p>
  <ul id="AAbi">
    <li id="L9Ab">В случае с коллегами стоит запомнить<em> &quot;спрашивать - твоя работа, не важно , сколько раз, и не важно кажется ли тебе вопрос глупым&quot;.</em></li>
    <li id="VtrG">В случае с неуверенностью перечитай ТЗ, тикеты, переписки и задай вопрос коллегам если потребуется.</li>
  </ul>
  <h3 id="yWbO">7. Бояться задать вопрос еще раз</h3>
  <p id="gShw">Смотри пункт выше.</p>
  <h3 id="pXqK">8. Слепо верить ТЗ</h3>
  <p id="CQvE"><strong>Что значит: </strong>баги документации (логические несоответствия, противоречия, недоработки и т.п.).</p>
  <p id="UXli"><strong>К чему приводит: </strong>откладывается релиз, блокеры и криты в проде и т.п.</p>
  <p id="xWKW"><strong>Как увидеть и бороться: </strong>про то, как тестировать ТЗ поговорим в следующих постах, поэтому подписывайся и обсудим.</p>
  <h3 id="ifa8">9. Тестировать в перчатках</h3>
  <p id="sQym"><strong>Что значит:</strong> не оставлять комментариев, артефактов после закрытия тикетов.</p>
  <p id="8hT6"><strong>К чему приводит:</strong> когда будет разбор почему баг попал в прод, то будет тяжело понять, ты пропустил баг, или повлияло что-то другое. Но если ты не оставил комментария после проверки - ответственность на тебе.</p>
  <p id="Uou6"><strong>Как увидеть: </strong>после закрытия тикета или перевода в протестирован пробежаться по своим комментариям. Если их нет, то нужно оставить.</p>
  <p id="FoVf"><strong>Как бороться: </strong>если есть возможность в баг-трекинговой системе настроить запрос обязательного комментария при закрытии тикета.</p>
  <h3 id="HCej">10. Использовать только исследовательское тестирование</h3>
  <p id="vFH7"><strong>Что значит: </strong>не применять другие техники тестирования.</p>
  <p id="KPpH"><strong>К чему приводит: </strong>пропуск багов, которые быстро и просто находятся другими техниками, например, с помощью таблицы принятия решения.</p>
  <p id="nqje"><strong>Как увидеть: </strong>при тестировании изучаешь продукт, т.е. нет четких кейсов с ожидаемым результатом.</p>
  <p id="3pFk"><strong>Как бороться: </strong>использовать подходящие техники, о которых поговорим в других постах (подписывайся и не пропустишь).</p>
  <figure id="s8hD" class="m_original">
    <img src="https://img1.teletype.in/files/0e/56/0e560f80-6285-415b-b6bf-696c825a191f.png" width="621" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@testirovshit/twRVF1um4mX</guid><link>https://teletype.in/@testirovshit/twRVF1um4mX?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit</link><comments>https://teletype.in/@testirovshit/twRVF1um4mX?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit#comments</comments><dc:creator>testirovshit</dc:creator><title>Первые впечатления тестировщика после кодинга</title><pubDate>Wed, 21 Feb 2024 18:15:23 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/1b/79/1b7906dd-3591-420d-854d-de1c241f586d.png"></media:content><category>Кодинг</category><description><![CDATA[<img src="https://img4.teletype.in/files/f7/7c/f77c4200-872b-4b02-953a-364b40dd12d0.png"></img>Этот пост пытался написать не раз. Никак не мог решить как подойти, а потом подумал что не буду делать сложные подводки, а просто расскажу, как и почему погрузился в коммерческую разработку и чему научился.]]></description><content:encoded><![CDATA[
  <p id="teaO">Этот пост пытался написать не раз. Никак не мог решить как подойти, а потом подумал что не буду делать сложные подводки, а просто расскажу, как и почему погрузился в коммерческую разработку и чему научился.</p>
  <h2 id="HoPw">Почему начал?</h2>
  <p id="Mqg0">Считаю, что каждый тестировщик должен уметь на базовом уровне кодить. На эту тему есть разные мнения, но мне нравится идея, что <strong>ты можешь написать что-то, что облегчит твою работу.</strong> И давайте будем честными - это навык за который вам будут платить больше, ну и это просто интересно!</p>
  <p id="hhRo">На тему нужно ли уметь кодить тестировщику, и будут ли тестировщики неумеющие кодить в будущем, круто обсудили в подкасте <a href="https://music.yandex.ru/album/18910064/track/93696556" target="_blank">QAk-QAk и в продакшен.</a></p>
  <h2 id="JL6w">Как начал?</h2>
  <p id="fcM5">Мне повезло, у нас на проекте есть инфраструктура на python <em>(что тоже везение - низкий порог вхождения)</em> помогающая команде в работе. Например, есть куча ботов пингующий на разные события (завели баг, надо оценить баг, инвайты начать релиз и т.п.). Этот проект нужно было поддерживать после ухода одного замечательного коллеги <em>(Ваня, если читаешь это, то спасибо за онбординг ;). </em>Коллега ушел, а мы с проектом остались дальше делать жизнь приятней.</p>
  <p id="Kxeo">Начал с самых простых задач: </p>
  <ul id="xosC">
    <li id="r08F">поправить пару строк код, </li>
    <li id="5nQD">обновить записи в БД, </li>
    <li id="12NX">почитать логи и понять почему падаем.</li>
  </ul>
  <p id="SdhR">Этот <strong>период</strong> можно назвать <strong>знакомством </strong>с кодовой базой и<strong> осознанием, </strong>что<strong> ничего не знаешь!</strong> Тут <strong>важно</strong> <strong>иметь поддержку</strong>. Мне казалось, что я никакой ценности не приношу, но руководители всегда подсвечивали важность <em>(Таня, Дима &lt;3)</em> и что прогресс есть. Самую мощную поддержку оказывал автор инфраструктурного проекта <em>(Ерке, ты лучший!)</em>. Объяснял архитектуру, показывал как оптимизировать код, как деплоить и откатывать в случае фэйла <em>(да-да, один раз слегка положил прод), </em>по любому вопросу можно было пойти к нему и даже созвониться <em>(это очень круто, потому что он техлид и времени у него оооочень мало).</em></p>
  <p id="jV2d">Дальше задачи стали сложнее:</p>
  <ul id="Vcxf">
    <li id="0vxB">написать новую логику в старый функционал, </li>
    <li id="gNJ7">реализовать простые фичи</li>
  </ul>
  <p id="6Wz7">Этот <strong>этап</strong> можно назвать <strong>окрылением</strong>. Еще нахожусь на этой стадии и тут задачи интересней, а также приобретаешь новые навыки. Узнаешь как взаимодействовать со связанными сервисами на уровни API, получаешь доступы, больше погружаешься в работу сис. контроля версий, создаешь модели данных и т.п.</p>
  <p id="DmVW">Кстати, проект написан одним из наших разработчиков на Django и поддерживается нашими разработчиками также <em>(вы крутые, без вас я бы дольше контрибьютил). </em>Тот факт, что проект написан на популярном фреймворке  облегчает работу: легко гуглить проблемы и есть исчерпывающая официальная документация.</p>
  <h2 id="DA0Z">Чему научился?</h2>
  <p id="AuGx">Выше уже немного рассказал, но теперь по пунктам:</p>
  <ol id="MzrY">
    <li id="DGmO"><strong>Никогда не лезьте в продовую базу.  </strong>Как вы поняли я и тут успел чуть нафакапить. Перезаписал одну строчку код, а это могло лишить нужных уведомлений команду. Но к моему счастью сразу это заметил и ментор помог быстро решить.</li>
    <li id="pBro"><strong>Все факапят и начинают с простого топорного написания кода.</strong> Чтобы понимать, где нахожусь при выполнении кода или при дебаге, обкладывал чуть ли не каждый шаг простыми print(smth). Мне казалось, что такое стыдно показывать даже когда задаешь вопросы ментору по зуму, но он меня успокоил сказав, что даже самые топовые разрабы так начинают. А еще его спокойствие и поддержка в случае факапа придавало уверенности. Кстати, и команда относилась с пониманием, если что-то ломалось и правилось не так быстро, как хотелось бы.</li>
    <li id="ltsU"><strong>Никогда не давайте писать тесты разработчику. </strong>Это понял немного косвенно, потому что когда ты пишешь код, ты не думаешь &quot;а что если так&quot;, твой основной вектор &quot;как сделать чтобы так&quot;. Из этого можно сделать вывод, еще раз подтвердить майндсет тестировщиков, что тесты лучше писать тестировщикам <em>(оставив юнит-тесты разработке).</em></li>
    <li id="pk2F"><strong>У разработчиков много инструментов, которые пригодятся тестированию. </strong>Почаще общайтесь с разработкой и узнаете много разных плагинов для командной оболочки или IDE, какие утилиты использовать для написания скриптов или как мокать гео на iPhone.</li>
    <li id="uwzh"><strong>Начинаешь лучше понимать, когда автоматизация не нужна. </strong>Только начав писать код понимаешь, что часто автоматизация это не единственное решение, и часто, не самое верное. По другом смотришь на построение процессов, т.е. анализируешь и понимаешь, что дешевле, быстрее и правильней описать флоу, чем долго кодить и не решить проблему. Надеюсь смог передать мысль :)</li>
  </ol>
  <p id="ZIwE">Пока это все. Но я продолжаю кодить, а значит еще будут посты про влияние кодинга на жизнь тестировщика. Лайки, подписка, репосты приветствуются :)</p>
  <figure id="1Xdk" class="m_column">
    <img src="https://img4.teletype.in/files/f7/7c/f77c4200-872b-4b02-953a-364b40dd12d0.png" width="1024" />
    <figcaption>Картинки, как всегда, генерирует Алиса в нейробраузере Яндекс</figcaption>
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@testirovshit/K0Ss9ppX6r6</guid><link>https://teletype.in/@testirovshit/K0Ss9ppX6r6?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit</link><comments>https://teletype.in/@testirovshit/K0Ss9ppX6r6?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit#comments</comments><dc:creator>testirovshit</dc:creator><title>Топ-10 багов доступности 2023 года</title><pubDate>Wed, 31 Jan 2024 18:08:35 GMT</pubDate><description><![CDATA[<img src="https://img3.teletype.in/files/2f/69/2f69253c-26cf-4ed3-a28b-1260a95e52a6.png"></img>Есть такая компания TPGI занимающаяся вопросами доступности на всех уровнях разработки. У них множество инструментов для поиска проблем с доступностью в ПО, в том числе так называемый ARC monitoring для анализа веб-сайтов. С помощью этого и многих других приложений компания выделила 10 самых распространенных багов. Надеюсь знания о них уберегут ваши проекты и ваших пользователей от проблем.]]></description><content:encoded><![CDATA[
  <p id="JubD">Есть такая <a href="https://www.tpgi.com/about/" target="_blank">компания TPGI</a> занимающаяся вопросами доступности на всех уровнях разработки. У них множество инструментов для поиска проблем с доступностью в ПО, в том числе так называемый <a href="https://www.youtube.com/watch?v=2WU-ci7T_LI&t=3s" target="_blank">ARC monitoring </a>для анализа веб-сайтов<a href="https://www.youtube.com/watch?v=2WU-ci7T_LI&t=3s" target="_blank">.</a> С помощью этого и многих других приложений компания выделила 10 самых распространенных багов. Надеюсь знания о них уберегут ваши проекты и ваших пользователей от проблем.</p>
  <h2 id="rWis">1. Нет текста у ссылок</h2>
  <p id="S3DG">Как известно тег <code>&lt;a&gt;</code> задает ссылку на другую страницу или в качестве навигации в рамках одной страницы. Но иногда разработчики используют тег для других целей, и часто опускают текст ссылки. В результате скринридеры не дают понимания что будет если перейти по ссылке. Как понимаете это создает сложности для людей с проблемами зрения  Поэтому каждая ссылка должна четко давать понять что будет если по ней перейти.</p>
  <h2 id="fpQ1">2. Включение фокуса на лишних элементах</h2>
  <p id="sdD4">С помощью атрибута <code>tabindex </code>задается возможность устанавливать фокус на элементе, например, через tab. Причина почему разработчики могут ставить фокус на таких элементах, как картинки, мне не понятно. Но это усложняет навигацию людям с ограниченными способностями. </p>
  <p id="XIjG">Правила хорошего тона предполагают, что фокус нужен на таких элементах, как ссылки, кнопки, поля ввода и т.п. Кстати, установка фокуса на элементах, где этого не ожидаешь, бесит даже людей без проблем со здоровьем.</p>
  <h2 id="wc6k">3. Отсутствует атрибут alt ссылок</h2>
  <p id="XVz7">Этот пункт похож на первый. Но тут речь о кейсах, когда ссылка вешается на иконки, и при этом не снабжается пояснением что будет если по ней перейти. Поэтому важно оставлять так называемый альтернативный текст, чтобы скринридеры давали описание переходу.</p>
  <h2 id="z72k">4. Нет атрибута alt изображений</h2>
  <p id="tMmR">Очень похожий пункт на 3 проблему, но тут речь про alt-атрибут для картинок. Если картинки не снабжены альтернативным текстом, то скринридеры не дают никакой информации пользователю, а лишь лишний раз отнимают время и  нагружают его стандартными шаблонами озвучки. Кстати, назначение описания картинкам фундаментальная вещь для тестирования доступности. Но важно помнить главное - озвучивать картинки только тогда, когда это необходимо.</p>
  <h2 id="tXuo">5. Неправильная вложенность списков</h2>
  <p id="dLiV">Маркировка списков основной способ взаимодействия со структурой страницы через голосовой помощник. И когда списки имеют вложенность важно убедиться, что структура верная, чтобы избежать неверной навигации с помощью скринридеров.</p>
  <h2 id="BZ1Z">6. Дублирование label&#x27;ов</h2>
  <p id="X2tE">Эта проблема ставит людей с ограниченными возможностями в сложную ситуацию, т.е. нет понимания в какое поле нужно ввести значение, а в следствии при валидации пользователю придется перезаполнять форму или менять значения местами.</p>
  <h2 id="NWku">7. Положительные значения для tabindex</h2>
  <p id="JnTA">Как говорилось в пункте 2 использовать tabindex нужно аккуратно, а самое главное либо 0, либо -1. Почему так мне не совсем понятно, если знаете почему, то дайте знать в комментах. Т.е. задание положительных значений создают проблемы.</p>
  <h2 id="jw2h">8. Некорректный aria-describedby</h2>
  <p id="KuXR">Атрибут aria-describedby связывает несколько элементов, например, span и input. Т.е. в spane&#x27;е можно указать подсказу для input&#x27;а, а атрибут aria-describedby свяжет их, и при озвучке будет прочтение spana&#x27;а для заданно инпута. Пример:</p>
  <p id="GG2O"><code>&lt;label for=&quot;psw&quot;&gt;Пароль&lt;/label&gt;<br />&lt;input<br />  type=&quot;password&quot;<br />  name=&quot;password&quot;<br />  id=&quot;psw&quot;<br />  aria-describedby=&quot;hint&quot;<br />&gt;<br />&lt;span id=&quot;hint&quot;&gt;Пароль должен содержать не меньше 20 знаков&lt;/span&gt;</code></p>
  <p id="3lbD">Важно следить за тем, чтобы <code>aria-describedby</code> был правильно связан по ID с элементов для которого предназначен другой.</p>
  <h2 id="iaay">9. Нет подписей для кнопок</h2>
  <p id="1Otx">Как и у ссылки без текста из пункта 1, так и кнопки от этого страдают. Часто на кнопках вместо текста размещают иконки. Скринридеры не дают пользователю понимания для чего нужна кнопка. Чтобы избежать такой ситуации, давайте описательные атрибуты кнопкам.</p>
  <h2 id="kY1S">10. Некорректный aria-labelledby</h2>
  <p id="VYsk">Похожий атрибут, как в пункте 8, но его фишка в том, что он ссылается на другой элемент на стр. </p>
  <h2 id="z6IK">Полезные ссылки</h2>
  <ol id="e95G">
    <li id="4okV">Статья в оригинале <a href="https://www.tpgi.com/the-top-accessibility-errors-found-in-2023/" target="_blank">https://www.tpgi.com/the-top-accessibility-errors-found-in-2023/</a></li>
    <li id="Tp66">Доступность простым языком <a href="https://doka.guide/a11y/" target="_blank">https://doka.guide/a11y/</a></li>
  </ol>
  <figure id="KEh4" class="m_original">
    <img src="https://img1.teletype.in/files/cc/ed/cced2ab6-d56d-4ee9-b0b0-f37a87a3894b.png" width="500" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@testirovshit/nrPg5gkbqPN</guid><link>https://teletype.in/@testirovshit/nrPg5gkbqPN?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit</link><comments>https://teletype.in/@testirovshit/nrPg5gkbqPN?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit#comments</comments><dc:creator>testirovshit</dc:creator><title>Чек-лист тестирования &quot;Забыл пароль&quot;</title><pubDate>Sun, 14 Jan 2024 18:04:42 GMT</pubDate><category>checklist</category><description><![CDATA[<img src="https://img1.teletype.in/files/c8/0f/c80ffd75-2d78-4864-ab4d-e9460e269034.png"></img>Ранее рассказывал о базовых проверках формы авторизации и считаю важным отдельно составить чек-лист для маленькой, но очень значительной функции - восстановление пароля. Поехали!]]></description><content:encoded><![CDATA[
  <p id="SRlh">Ранее рассказывал о базовых проверках<a href="https://teletype.in/@testirovshit/KCasFWYO73G" target="_blank"> формы авторизации</a> и считаю важным отдельно составить чек-лист для маленькой, но очень значительной функции - восстановление пароля. Поехали!</p>
  <ol id="7akw">
    <li id="hZjg"><strong>Открытие страницы восстановления</strong> пароля по клику на ссылку &quot;Забыли пароль&quot;.</li>
    <li id="6VHg">На странице восстановления <strong>есть необходимый элементы</strong> для восстановления: поле ввода эл, почты/телефон/логин/etc, кнопка &quot;Отправить/Восстановить/etc&quot;. <strong>Отмечу</strong> отдельно, что <strong>телефон и почта должны проверяться по маске</strong>, т.е. почта не может быть без @ или телефон должен быть с кодом, определенной длины и т.п.</li>
    <li id="G7by"><strong>Кнопка &quot;Отправить/Восстановить&quot; доступна</strong> <strong>после ввода всех обязательных полей</strong>. Если не заблокирована при пустых полях, то нужно показывать ошибку &quot;Заполните поля&quot;, если нажали &quot;Отправить&quot; с пустыми полями.</li>
    <li id="NTiu"><strong>Кнопка &quot;Отправить&quot; недоступна для многократного нажатия.</strong> Если доступна, то не должны слать запросы на сервер на каждый клик.</li>
    <li id="JlQp"><strong>Проверка существования профиля</strong> для которого пытаемся восстановить пароль. Если <strong>профиля нет</strong>, то должны <strong>показать</strong> соответствующее <strong>сообщение</strong>. Опционально можно показать предложение создать профиль.</li>
    <li id="fTOn"><strong>Ограничение на количество попыток восстановить</strong>. Зависит от конкретных требования, но как минимум стоит хранить куку, в которой будет таймер через какое время можно повторить запрос.</li>
    <li id="5JNf"><strong>Получение</strong> <strong>на почту письмо с инструкцией восстановления. </strong>Также <strong>восстановление</strong> может быть <strong>по sms-коду</strong>. Убедиться, что <strong>нельзя восстановить неверным</strong> или<strong> устаревшим</strong> sms-кодом.</li>
    <li id="mz2p">Убедиться в том, что <strong>ссылка на восстановление пароля</strong> <strong>перестает действовать</strong> через заданный период времени.</li>
    <li id="N9Uz">Переход <strong>по</strong> <strong>ссылке из инструкции</strong> ведет на форму <strong>задания нового пароля</strong>. По правилам хорошего тона на странице должны быть поля: новый пароль, подтверждение нового пароля. Само собой кнопка &quot;Отправить/Сохранить/etc.&quot;.</li>
    <li id="6UHe"><strong>Новый пароль</strong> <strong>не должен соответствовать старому</strong>. Это необязательное правило, но это хорошая практика.</li>
    <li id="v4UJ"><strong>Показ сообщения об успешной смене пароля. </strong>Если <strong>новый пароль и подтверждение пароля не соответствуют сообщать</strong> об этом.</li>
    <li id="TGwV">Открытие формы восстановления,<strong> отправка ссылки на восстановления</strong> пароля <strong>не сбрасывает текущий.</strong></li>
    <li id="65qk"><strong>Нельзя войти по старому паролю.</strong></li>
    <li id="vewM"><strong>Можно войти по новому паролю.</strong></li>
  </ol>
  <h3 id="statyu_horosho_dopolnyat"><strong>Cтатью хорошо дополнят</strong></h3>
  <ul id="0TPH">
    <li id="nqUE"><a href="https://teletype.in/@testirovshit/WghY8gqIinz" target="_blank">Чек-лист: личные данные</a></li>
    <li id="L0Gn"><a href="https://teletype.in/@testirovshit/1zRxe3WtLIx" target="_blank">Чек-лист: оплата</a></li>
    <li id="Pmbp"><a href="https://teletype.in/@testirovshit/qrkN3eheim5" target="_blank">Чек-лист тестирования веб-сайта</a></li>
  </ul>
  <figure id="Eg8o" class="m_original">
    <img src="https://img1.teletype.in/files/c8/0f/c80ffd75-2d78-4864-ab4d-e9460e269034.png" width="750" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@testirovshit/qrkN3eheim5</guid><link>https://teletype.in/@testirovshit/qrkN3eheim5?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit</link><comments>https://teletype.in/@testirovshit/qrkN3eheim5?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit#comments</comments><dc:creator>testirovshit</dc:creator><title>Чек-лист тестирования веб-сайта</title><pubDate>Sun, 14 Jan 2024 18:02:05 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/92/85/9285e5e5-9dbf-429d-ab02-831d8e7be8a8.png"></media:content><category>checklist</category><description><![CDATA[<img src="https://img1.teletype.in/files/c9/b7/c9b7156d-6946-4b40-876c-3c65a5b071f5.png"></img>Веб-сайтов много, все они разные, для разных целей, созданы разными средствами и есть множество аспектов, которые требуется протестировать. Поэтому чек-лист содержит самые базовые проверки, которые может выполнить тестировщик на коленке.]]></description><content:encoded><![CDATA[
  <p id="wAzB">Веб-сайтов много, все они разные, для разных целей, созданы разными средствами и есть множество аспектов, которые требуется протестировать. Поэтому чек-лист содержит самые базовые проверки, которые может выполнить тестировщик на коленке.</p>
  <blockquote id="FTUg">Свои проверки, которые я мог упустить - оставляйте в комментариях</blockquote>
  <ul id="xDpa">
    <li id="oCt6"><strong>Валидация разметки. </strong>От корректности HTML-разметки зависит правильное отображение сайта, индексация в поисковых системах. Проверить можно тут: <a href="https://validator.w3.org/" target="_blank">https://validator.w3.org/</a></li>
    <li id="2eOe"><strong>Скорость загрузки. </strong>Важный показатель который можно померить разными способами, например, через <a href="https://pagespeed.web.dev/" target="_blank">https://pagespeed.web.dev</a> или DevTools &gt; <a href="https://developers.google.com/web/tools/lighthouse" target="_blank">LightHouse</a>.</li>
    <li id="joc0"><strong>Сканирование на наличие уязвимостей. </strong>В крупных компаниях этим занимается отдел безопасности <em>(слышал от знакомой, что у них этих ребят называют - Безосами). </em>Но проверить на базовом уровне: открытие сайта через https, не указан ли хост в блек-листах и т.п. можно с помощью онлайн утилит. <a href="https://geekflare.com/online-scan-website-security-vulnerabilities/" target="_blank">Вот 13 популярных</a>.</li>
    <li id="SJXx"><strong>Адаптивность сайта. </strong>Желательно посмотреть на реальных устройствах ПК, планшет, смартфон и т.п. Но можно воспользоваться <a href="https://www.browserstack.com/responsive" target="_blank">BrowserStack</a>.</li>
    <li id="aCWI"><strong>Соответствие UI гайдам. </strong>Задача тестировщика сравнить реализацию с гайдами, но все таки рекомендую почитать парочку постов по UI стандартам, чтобы обеспечить удобство и качество графического интервейса. Например, <a href="https://material.io/design/introduction" target="_blank">Material Design</a> или <a href="https://www.justinmind.com/ui-design/principles" target="_blank">UI design principles: guidelines</a>.</li>
    <li id="pcdN"><strong>Проверка на кроссбраузерность. </strong>Популярность браузеров можно посмотреть на <a href="https://gs.statcounter.com/browser-market-share/desktop/worldwide/#monthly-202101-202201" target="_blank">statcounter</a> для всех платформ.</li>
    <li id="A0zV"><strong>Функциональное тестирование. </strong>Если ты на этапе ознакомления с ТЗ, то почитай <a href="https://dzen.ru/media/qualityassurance/cheklist-testirovanie-tehnicheskogo-zadaniia-61411099b883945864676eaa" target="_blank">&quot;чек-лист тестирования ТЗ&quot;</a>.</li>
    <li id="jh3I"><strong>Интеграционное тестирование. </strong>Проверка API, подключение библиотек, метрик, отображение в <a href="https://dzen.ru/media/qualityassurance/osobennosti-mobilnogo-testirovaniia-613e38d77421b5519f16b6b8" target="_blank">гибридном мобильном приложении</a> и т.п.</li>
    <li id="OtSi"><strong>Проверка логов на наличие ошибок, предупреждений и информационны сообщений. </strong>Можно посмотреть в devTools, в логах сервера.</li>
    <li id="JFMi"><strong>Нагрузочное/стресс - тестирование. </strong>Обычном этим занимаются специально обученные тестировщики, но ты можешь подписаться на канал и скоро мы научимся это делать!</li>
  </ul>
  <h3 id="statyu_horosho_dopolnyat">Статью хорошо дополнят</h3>
  <ul id="c0F2">
    <li id="BsMS"><a href="https://teletype.in/@testirovshit/KCasFWYO73G" target="_blank">Чек-лист тестирования: форма авторизации</a></li>
    <li id="8o9V"><a href="https://teletype.in/@testirovshit/WghY8gqIinz" target="_blank">Чек-лист тестирования: личные данные</a></li>
    <li id="qfPY"><a href="https://teletype.in/@testirovshit/1zRxe3WtLIx" target="_blank">Чек-лист тестирования: оплата</a></li>
  </ul>
  <figure id="IpqC" class="m_column">
    <img src="https://img1.teletype.in/files/c9/b7/c9b7156d-6946-4b40-876c-3c65a5b071f5.png" width="1200" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@testirovshit/NxhmbIEq98h</guid><link>https://teletype.in/@testirovshit/NxhmbIEq98h?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit</link><comments>https://teletype.in/@testirovshit/NxhmbIEq98h?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit#comments</comments><dc:creator>testirovshit</dc:creator><title>Чек-лист тестирования landing page</title><pubDate>Sun, 14 Jan 2024 17:59:27 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/3e/44/3e449d4b-1b85-4417-a015-42f0e71fd871.png"></media:content><category>checklist</category><description><![CDATA[<img src="https://avatars.dzeninfra.ru/get-zen_doc/1648379/pub_62d57e9437b710787abda14d_62d57eb59b5a844188fd1e2b/scale_1200"></img>Лендинг (landing page, посадочная страница) - это веб-страница конвертирующая посетителей сайта в потенциальных покупателей. Проще говоря основная цель лендинга продавать услугу или товар.]]></description><content:encoded><![CDATA[
  <p id="qg6u"><strong>Лендинг </strong>(landing page, посадочная страница) - это веб-страница конвертирующая посетителей сайта в потенциальных покупателей. Проще говоря основная цель лендинга продавать услугу или товар.</p>
  <p id="EA8n">Примеры лендингов:</p>
  <ul id="WvWs">
    <li id="lRVO"><a href="https://yandex.ru/alice/station-gen2" target="_blank">https://yandex.ru/alice/station-gen2</a></li>
    <li id="UJtV"><a href="https://www.apple.com/macbook-pro-13/" target="_blank">https://www.apple.com/macbook-pro-13/</a></li>
  </ul>
  <h3 id="kak_rabotaet_lending">Как работает лендинг</h3>
  <ul id="vTcc">
    <li id="2k8r">Пользователь попадает на посадочную страницу через рекламу, прямую ссылку и т.п.</li>
    <li id="u8Ou">Пользователь жмет на кнопку &quot;Оставить заявку&quot;, &quot;Купить товар&quot; и т.п.</li>
    <li id="DJTh">Попадает на форму заполнения личных данных. Может включать в себя сбор информации по услуге или продукту, которые ищет пользователь. Например, пользователь делится информацией о квартире с клининговой компанией.</li>
    <li id="ub0X">Заполняет форму или отказывается и уходит. Отказ это сигнал, что нужно искать проблему отказа от услуги или товара.</li>
    <li id="208H">Сохранение данных от клиента.</li>
    <li id="v8Oy">Связь с клиентом.</li>
  </ul>
  <p id="9KG2">Чтобы быть честным, нужно сказать что есть лендинги, которые работают иначе. Таких страниц много. Например, Squeeze Page предназначены для сбора адресов эл. почты у пользователей, а после на эти адреса рассылаются рекламные письма. Или страница &quot;404 - страницы не найдена&quot; может также служить для сбора данных или пожеланий потенциального покупателя.</p>
  <p id="1EeT">Но в целом суть одна: говорим что <strong>мы можем дать посетителю то, чего он желает взамен на его персональные данные.</strong></p>
  <h3 id="chek_list_testirovaniya">Чек-лист тестирования</h3>
  <p id="Qsc5">Это общий чек-лист. Что-то может быть актуальным, а что-то можешь предложить, как фичреквест. Погнали:</p>
  <ol id="6wRB">
    <li id="o4u0"><strong>Техническое задание и визуальные гайды.</strong> В первую очередь идем по требованиям. Вот<a href="https://dzen.ru/media/qualityassurance/cheklist-testirovanie-tehnicheskogo-zadaniia-61411099b883945864676eaa" target="_blank"> чек-лист тестирования тех. задания</a>. Тут найдешь <a href="https://dzen.ru/media/qualityassurance/poleznye-rasshireniia-brauzera-dlia-testirovscika-611dae47d8fe357cd6057e68" target="_blank">полезные расширения для веб-тестирования</a>. А тут можно почитать про <a href="https://dzen.ru/media/qualityassurance/cheklist-testirovaniia-vebsaita-621e823e686984235529e415%5C" target="_blank">тестирование веб-сайтов в целом</a>.</li>
    <li id="8p1q"><strong>Кроссбраузерность.</strong> Проверяем, что страница отображается и функционирует как ожидается на всех популярных браузерах.</li>
    <li id="b4W4"><strong>Адаптивность.</strong> Проверяем, что лендинг отображается корректно на разных размерах экранов и на разных платформах: ПК, смартфон, планшет. Особенно отмечу проверку изменения ориентации на телефоне.</li>
    <li id="E0Bk"><strong>Якоря.</strong> Логические блоки должны отображаться по прямой ссылке. Например, URL#contacts ведет к блоку &quot;Контакты&quot;, а URL#specialists к блоку с мастерами сервиса.</li>
    <li id="fcSb"><strong>Поп-ап.</strong> Часто заявки собираются в сплывающих окнах. Нужно проверить, что они появляются, корректно отображаются на разных экранах, корректно отрабатывают нажатия. Часто бывает, что один и тот же поп-ап, вызванный из разных логических блоков, ведет себя по-разному (где-то не работает кнопка отправки заявки, где-то поп-ап появляется под картинками и т.п.)</li>
    <li id="6Au8"><strong>UTM-метка.</strong> Проверить, что в URL зашивается информация о пользователе. Например, твой сайт santehnik.org. Пользователь нашел сайт через выдачу яндекса. В настройках яндекс директа задали рекламную кампанию &quot;Новогодняя акция 2022&quot;, и тогда ссылка будет иметь вид: santehnik.org?utm_campaign=new_year_sale. В итоге после парсинга UTM-меток, можно узнать больше информации о своих потенциальных клиентах, в том числе о том что переход был по акции.</li>
    <li id="V9rm"><strong>Полям ввода задан атрибут autocomplete. </strong>Этот атрибут помогает браузерам правильно идентифицировать поле и помочь пользователю его быстро заполнить из сохраненных персональных данных. Например, если у поля autocomplete=&quot;email&quot;, то браузер предложит подставить в него сохраненную почту.</li>
    <li id="oGjz"><strong>Телефонные ссылки, почтовый агент, мессенджеры.</strong> Убедиться, что для телефона и почты использованы ссылки tel и mailto соответственно. Для мессенджеров указаны корректные аккаунты.</li>
    <li id="bWKc"><strong>Заказ услуги/товара или обратная связь. </strong>Тут нужно проверять 2 части: фронт и бэк. Если обобщить то, на фронте валидацию вводимых данных (пустые поля, формат телефона и почты и т.п.) и уведомление в духе &quot;Мы получили ваше обращение и свяжемся с вами через...&quot;, на бэке добавление заявки в базу данных (корректность отображения текста, не должно быть кракозябров, указание таймзоны клиента и т.д.), проброс в CRM и т.п.</li>
    <li id="dZCK"><strong>Куки. </strong>Проверить, что в куках запоминаем выбор языка или региона пользователя и т.п.</li>
    <li id="0r3G"><strong>Минификация. </strong>Важно сжать все что можно: картинки, css-стили, js-скрипты. Это нужно для того, чтобы лендинг загружался быстрее. Почитать можно, например, про минификацию css-стилей.</li>
    <li id="S8Ty"><strong>Ошибки в консоли.</strong> Параллельно с проверкой кликабельности, скроллинга или отправки данных на сервер, открой dev-tools (вкладка console) и смотри в консоль. Часто можно увидеть js-ошибки. Еще можно поглядывать на вкладку Networks, там найдешь проблемы с сетевыми запросами.</li>
    <li id="py3e"><strong>Смена языка, региона, шрифта, цветовой темы и т.п.</strong> Советую проверить с очисткой кэша при рефреше страницы. При обновлении настройки не должны слетать, потому что прописываются в куках.</li>
    <li id="nC6Q"><strong>Подключение скриптов, шрифтов, стилей и картинок.</strong> Проверить, что в html-разметке есть их подключение, что в сетевых запросах все ресурсы успешно загружены. И очень критично проверить, что подключены скрипты аналитики (яндекс метрика, гугл аналитика и т.д.).</li>
    <li id="LCmS"><strong>SEO-теги.</strong> Это в зоне ответственности seo-шников, но мы то ответственные ребята и хотя бы одним глазом глянем. Например, важно в html-разметке указать тег meta с атрибутом name=&quot;description&quot; являющейся аннотацией сайта, которая отображается в поисковой выдаче. <a href="https://habr.com/ru/company/click/blog/472610/" target="_blank">Почитай тут про сео-теги.</a></li>
    <li id="J0s6"><strong>Поиск битых ссылок.</strong> Также в зоне seo-шников, но проверить ссылки на лендинге прокликав их - несложно. Редко их бывает много.</li>
    <li id="PJV7"><strong>Проверка переходов. </strong>Если на сайте есть переходы на блоки, анимация и прочие бродилки, то нужно убедиться, что все они доступны и имеют ожидаемые переходы.</li>
    <li id="fD9V"><strong>Многократные нажатия на кнопку отправки.</strong> Очень важно проверить, что клики на кнопку &quot;Отправить заявку&quot; не посылает кучу запросов без завершения предыдущих. Самое лучшее решение блокировать кнопку после клика и до выполнения запроса.</li>
    <li id="Nyuj"><strong>Убедиться, что переключились на продовый сервер. </strong>Нередко бывает, что во время разработки и тестирования лендинг отсылает заявки на тестовый сервер, а после раскатки в прод забывают переключить сбор заявок на прод.</li>
    <li id="T5YE"><strong>Перфоманс тестирование. </strong>Чаще всего проводят для лендингов крупных сервисов, куда потенциально может заходить миллионы пользователей.</li>
  </ol>
  <h3 id="polezne_sslki">Полезные ссылки</h3>
  <ol id="61RJ">
    <li id="djyB"><a href="https://dzen.ru/media/qualityassurance/poleznye-vebservisy-dlia-testirovscika-61391522e2d77938764c4f40" target="_blank">Полезные веб-сервисы для тестировщика</a></li>
    <li id="nEAX"><a href="https://blog.hubspot.com/marketing/landing-page-types" target="_blank">The 13 Types of Landing Pages &amp; How to Pick One for a Campaign</a></li>
    <li id="DCQE"><a href="https://htmlacademy.ru/blog/articles/mailto" target="_blank">Как использовать ссылки телефона и почты</a></li>
    <li id="YR7Z"><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#values" target="_blank">HTML attribute: autocomplete</a></li>
    <li id="mI4J"><a href="https://timeweb.com/ru/community/articles/utm-metki-zachem-oni-nuzhny-i-kak-ih-nastroit" target="_blank">UTM-метки: зачем они нужны и как их настроить</a></li>
    <li id="bP2Q"><a href="https://habr.com/ru/company/click/blog/472610/" target="_blank">Какие HTML-элементы более востребованы: анализ 8 млн страниц с позиции SEO</a></li>
    <li id="PtGd"><a href="https://pagespeed.web.dev/" target="_blank">Узнать у google, как оптимизировать сайт</a></li>
    <li id="xxQE"><a href="https://search.google.com/test/mobile-friendly" target="_blank">Проверить оптимизирован ли сайт под отображение на разных устройствах</a></li>
  </ol>
  <figure id="Fcts" class="m_column">
    <img src="https://avatars.dzeninfra.ru/get-zen_doc/1648379/pub_62d57e9437b710787abda14d_62d57eb59b5a844188fd1e2b/scale_1200" width="1200" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@testirovshit/KCasFWYO73G</guid><link>https://teletype.in/@testirovshit/KCasFWYO73G?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit</link><comments>https://teletype.in/@testirovshit/KCasFWYO73G?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit#comments</comments><dc:creator>testirovshit</dc:creator><title>📋 Чек-лист тестирования: форма авторизации</title><pubDate>Sun, 14 Jan 2024 17:55:41 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/30/da/30da8601-e9f6-49e0-ad1d-7a8b19f80244.png"></media:content><category>checklist</category><description><![CDATA[<img src="https://avatars.dzeninfra.ru/get-zen_doc/1587012/pub_614b980f052ae92ecee5d8e9_614bb748c6da567d361d7ef4/scale_1200"></img>Форма авторизации одна самых распространенных функциональных частей многих проектов. Делюсь базовыми проверками, которые облегчат тебе жизнь (если что-то забыл, комментарии приветствуются).]]></description><content:encoded><![CDATA[
  <p id="leLw">Форма авторизации одна самых распространенных функциональных частей многих проектов. Делюсь базовыми проверками, которые облегчат тебе жизнь (<em>если что-то забыл, комментарии приветствуются</em>).</p>
  <figure id="TCsZ" class="m_column">
    <img src="https://avatars.dzeninfra.ru/get-zen_doc/1587012/pub_614b980f052ae92ecee5d8e9_614bb748c6da567d361d7ef4/scale_1200" width="1138" />
  </figure>
  <ol id="T1Yn">
    <li id="jMyG"><strong>Допустимые символы логина и пароля.</strong> Определяется требованиями ТЗ. Совет: учитывай язык пользователя, т.е. используемую кодировку.</li>
    <li id="nMyJ"><strong>Минимальная, максимальная длина логина/пароля.</strong></li>
    <li id="4muX"><strong>Регистрочувствительность. </strong>Также определяется ТЗ, но советую уточнить у менеджера проекта, если про это не сказано. Логин может быть не чувствителен, а вот пароль в 99% случаев чувствительный.</li>
    <li id="Fa9m"><strong>Обязательность ввода. </strong>Поля логин и пароль в 99% должны быть заполнены. Проверка сводится к тому, что пользователь должен увидеть уведомление о том, что поля обязательны к заполнению после клика &quot;Войти&quot; или после смены фокуса с поля пароль/логин.</li>
    <li id="aitt"><strong>Авторизация валидными данными. </strong>Проверяй разную комбинации: телефон/пароль, почта/пароль, телефон/sms-код <em>(конечно, если есть такие возможности функционала)</em>.</li>
    <li id="fWOc"><strong>Многократное нажатие на кнопку &quot;войти&quot;. </strong>Львиная доля форм просто блокирует кнопку до ответа сервера.</li>
    <li id="KX46"><strong>Авторизация НЕвалидными данными: </strong>пустые поля, одно из полей пустое, в одном из полей невалидные данные, оба поля с невалидными данными. Для кейсов с невалидными данными ошибка выводится только после клика &quot;Войти&quot;. Для генерации тестовых данных похожих на реальные советую использовать сервис <a href="https://mockaroo.com/" target="_blank">Mockaroo</a> <em>(больше полезных сервисов в посте &quot;Полезные веб-сервисы для тестировщика&quot;)</em></li>
    <li id="nwYh"><strong>Ввод пробела и невидимых символов. </strong>Часто срабатывает ошибка валидации, если в конце или в начале ввода email&#x27;a (часто используется, как логин) ввести пробел или перевод каретки &#x27;\n&#x27;.</li>
    <li id="tnkU"><strong>Демонстрация ошибки, при вводе некорректных данных. </strong>Показываем как после клика &quot;Войти&quot;, так и если, например, пользователь вводит невалидные данные, превышает количество символов и т.п.</li>
    <li id="TH2K"><strong>Корректные атрибуты HTML-тегов для логина/пароля. </strong>Самый главный атрибут &quot;required&quot; <em>(<a href="http://htmlbook.ru/html/input/required" target="_blank">подробнее на htmlbook.ru</a>)</em>.И конечно же у парольного поля должен быть атрибут type = &quot;password&quot; <em>(<a href="https://developer.mozilla.org/ru/docs/Web/HTML/Element/Input/password" target="_blank">подробнее на mdn</a>)</em>. Особенно актуально для веб-сайтов и гибридных приложений <em>(подробнее &quot;Особенности мобильного тестирования&quot;)</em>.</li>
    <li id="Ifc9"><strong>Сокрытие/показ вводимого пароля</strong>. По умолчанию скрыт (показываем точки), по нажатию на иконку глаза показываем. Если это форма создания учетки, то на форме будет еще поле &quot;подтверждение введенного пароля&quot;. Часто по клику на иконку глаза в одном поле, нет реакции в другом.</li>
    <li id="wHMS"><strong>Восстановление пароля всеми доступными способами </strong>(звонок, sms, код на email, пуш в приложение). Редкий кейс, но пару раз встречал, что можно перейти к форме восстановления пароля по старому проверочному коду из sms. Советую проверять это!</li>
    <li id="9aYY"><strong>Смена пароля, логина. </strong>Логин меняется редко и точно в настройках профиля. Пароль можно сменить, как минимум через форму восстановления доступа или через настройки профиля.</li>
    <li id="3ksc"><strong>Авторизация под старыми данными. </strong>Стоит проверить сразу после смены пароля или логин. Бывает так, что обновленные данные не доехали до всех баз или есть проблемы с кэширование и т.п.</li>
    <li id="YTRO"><strong>Двухфакторная аутентификация (2FA) и авторизация по соц. сетям. </strong>В 2FA тщательно стоит проверить восстановление доступа (по сгенерированным кодам, по резервной почте и т.п.).</li>
    <li id="xOBG"><strong>Безопасность пароля. </strong>Если нужно проверить качество принимаемых паролей, то советую использовать сервис<a href="https://password.kaspersky.com/ru/" target="_blank"> касперского</a>.</li>
    <li id="YS2I"><strong>Демонстарция подсказок при попытки создать невалидный пароль, логин. </strong>Часто бывает, что подсказки не скрываются после ввода корректных данных. Обращай внимание.</li>
    <li id="pJSJ"><strong>Бан через N-попыток входа или смены пароля. </strong>Можно отправлять уведомление на почту, телефон, что кто-то пытается войти. По-хорошему это делается даже при первой валидной авторизации. И еще стоит обратить внимание, что в уведомлении должно быть понятно описано, что делать, если входишь не ты. Плюс проверь, что ссылки в уведомлении не битые, иначе это будет провал!</li>
    <li id="hEPA"><strong>Вставка текста в поля. </strong>Есть разные мнения насчет вставки пароля. Ко считает нормальным, а кто-то нет. Смотри в ТЗ. Проверяй как хоткеи (ctrl+v), так и вызов контекстного меню мышкой.</li>
    <li id="Ws5l"><strong>UI полей и формы. </strong>Об этом будем говорить отдельно <em>(поэтому подписывайся на <a href="https://t.me/testirovshit" target="_blank">телеграм канал</a>)</em>.Но помни, у тебя есть графические макеты для сравнения, а если нет, то общепринятые гайды, например, для устройств Apple <a href="https://developer.apple.com/design/human-interface-guidelines/" target="_blank">&quot;Human Interface Guidelines&quot;</a>.</li>
    <li id="Yp2u"><strong>HTML, XSS, SQL - инъекции. </strong>Об этом можешь почитать на хабре:</li>
  </ol>
  <ul id="R6RP">
    <li id="f0Dp"><a href="https://habr.com/ru/company/alexhost/blog/530862/" target="_blank">Подробное руководство по HTML-инъекциям [хабр]</a></li>
    <li id="UcSF"><a href="https://habr.com/ru/post/511318/" target="_blank">Что такое XSS-уязвимость и как тестировщику не пропустить ее [хабр]</a></li>
    <li id="IbJU"><a href="https://habr.com/ru/company/ruvds/blog/553066/" target="_blank">Первое знакомство с SQL-инъекциями [хабр]</a></li>
  </ul>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@testirovshit/WghY8gqIinz</guid><link>https://teletype.in/@testirovshit/WghY8gqIinz?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit</link><comments>https://teletype.in/@testirovshit/WghY8gqIinz?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=testirovshit#comments</comments><dc:creator>testirovshit</dc:creator><title>📋Чек-лист: личные данные</title><pubDate>Mon, 08 Jan 2024 18:15:50 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/e1/1d/e11d26d9-b83e-4cdc-ab28-3292c0e6197d.png"></media:content><category>checklist</category><description><![CDATA[<img src="https://avatars.dzeninfra.ru/get-zen_doc/1062011/pub_6137cd5b4e045b4b8261e3ea_6137da8a1e6a976e74d3d69b/scale_1200"></img>Делюсь чек-листом проверки форм личных данных (форма регистрации в соц. сетях, оформление данных покупателя, отправка посылки т.п.). Также рассказываю о чем нужно позаботиться перед тестированием. Ранее делился чек-листом тестирования оплаты.]]></description><content:encoded><![CDATA[
  <p id="zrCl"><em>Делюсь чек-листом проверки форм личных данных (форма регистрации в соц. сетях, оформление данных покупателя, отправка посылки т.п.). Также рассказываю о чем нужно позаботиться перед тестированием. Ранее делился <a href="https://teletype.in/@testirovshit/1zRxe3WtLIx" target="_blank">чек-листом тестирования оплаты.</a></em></p>
  <p id="vGWV"><em>В чек-листе идет речь блокерные проверки и требования. Если есть что добавить, то пиши в комментариях, не пропустим баги вместе :)</em></p>
  <figure id="gXKA" class="m_column">
    <img src="https://avatars.dzeninfra.ru/get-zen_doc/1062011/pub_6137cd5b4e045b4b8261e3ea_6137da8a1e6a976e74d3d69b/scale_1200" width="1200" />
  </figure>
  <ul id="VFC3">
    <li id="9icv"><strong>Заведи тестовую почту. </strong>При тестировании форм с личными данными, в большинстве случаев, получаешь отбивку на почту с введенной информацией. Например, оформил покупку билета на самолет - получил отбивку на почту.<strong> Важно:</strong> <em>никогда не используй личную почту!</em></li>
    <li id="CIVo"><strong>Заполняй формы с помощью автоподстановки.</strong> Особенно актуально для тестировщиков веб-сайтов. Сохраняешь несколько профилей личных данных в браузер и подставляешь одним кликом. Экономия времени.</li>
    <li id="Cf00"><strong>Подготовь пул профилей. </strong>Чтобы не придумывать постоянно и учитывать разные форматы данных. Хранить можно от excel-таблицы до SQL-баз.</li>
    <li id="Zcta"><strong>Подготовь профили на разных языках (проверка кодировки). </strong>Например, проверить ввод на арабском языке (<em>ввод справа налево</em>), китайские иероглифы и т.п.</li>
    <li id="L4eJ"><strong>Ограничения по количеству символов и типу ввода. </strong>Ограничения задаются ТЗ, например, поле ввода &quot;Рост&quot; принимает только целое числовое значение. Также требования задаются нормативными документами, например, ГОСТом: длина номера и серии паспорта X символов и т.п.</li>
    <li id="XLln"><strong>Формат данных. </strong>Например, номер телефона может быть с префиксом +7, 8 или вообще без префикса. Сюда же относятся кейсы с ФИО (указание полностью, только фамилия и имя, фамилия и инициалы), с датой рождения (ММ.ДД.ГГГГ, MM-DD-YYYY и т.п.).</li>
    <li id="cCfa"><strong>Формат адресов. </strong>В 80% случаев формы с личными данными имеют поля ввода адреса. И тут много кейсов: адрес разбит на сущности (улица, дома, домофон и т.д.), только город или улица и т.п. Важно учесть, что в разных странах форматы могут отличаться значительно</li>
    <li id="wMW7"><strong>Корректность сохранения. </strong>В рамках одного профиля не должно быть 2 значений &quot;Пол&quot;, &quot;Дата рождения&quot;. Не должно быть дубликатов профилей и т.п.</li>
    <li id="JxFU"><strong>Данные введенные пользователем вручную приоритетней тех, что можно подставить из сохраненного профиля.</strong></li>
    <li id="lfgm"><strong>Личные данные должны храниться, передаваться безопасно. </strong>Передача строго по https-протоколу, профили должны быть заблокированны паролем, мастер-паролем и т.п.</li>
  </ul>
  <h3 id="podderji_vhod_novh_postov_laiikom_podp">Поддержи выход новых постов лайком, подпиской и комментарием 😉</h3>

]]></content:encoded></item></channel></rss>