<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Можно Подумать</title>
	<atom:link href="https://testitquickly.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://testitquickly.com</link>
	<description>про тестирование ПО и всё такое прочее</description>
	<lastBuildDate>Mon, 23 Feb 2026 05:33:01 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://testitquickly.com/wp-content/uploads/2021/09/favicon_lupan-150x150.jpg</url>
	<title>Можно Подумать</title>
	<link>https://testitquickly.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">202834616</site>	<item>
		<title>Хочешь ещё быстрее?</title>
		<link>https://testitquickly.com/2026/02/20/mesterul-manole-rastoarna-caldarea/</link>
					<comments>https://testitquickly.com/2026/02/20/mesterul-manole-rastoarna-caldarea/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Fri, 20 Feb 2026 12:08:10 +0000</pubDate>
				<category><![CDATA[Откровения]]></category>
		<category><![CDATA[Печали]]></category>
		<category><![CDATA[Программисты]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[Playwright]]></category>
		<category><![CDATA[Zdob si Zdub]]></category>
		<category><![CDATA[Маршак]]></category>
		<category><![CDATA[Паниковский]]></category>
		<category><![CDATA[Сизиф]]></category>
		<category><![CDATA[Эпштейн]]></category>
		<guid isPermaLink="false">https://testitquickly.com/?p=36764</guid>

					<description><![CDATA[Касательно командной разработки с интенсивным применением LLM — ну да, растёт скорость внедрения изменений. За всем уследить не получается, и мы натыкаемся на нелепые баги, которые можно было бы обнаружить за секунды, ещё до релиза деплоя. Наверное, уследили бы, если бы изменение было планомерным, предсказуемым и затрагивало только одно секундное дело. А оно затрагивает много… <span class="read-more"><a href="https://testitquickly.com/2026/02/20/mesterul-manole-rastoarna-caldarea/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p><span class="css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3">Касательно командной разработки с интенсивным применением LLM — ну да, растёт скорость внедрения изменений. За всем уследить не получается, и мы натыкаемся на нелепые баги, которые можно было бы обнаружить за секунды, ещё до <del>релиза</del> деплоя. Наверное, уследили бы, если бы изменение было планомерным, предсказуемым и затрагивало только одно секундное дело. А оно затрагивает много место сразу, в которые никто не заходил и ломаться было нечему… </span>Если бы всё всегда ломалось предсказуемо, то уж мы бы…</p>
<p><span class="css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3">QA процессы — можно внедрить, конечно, но </span></p>
<ul>
<li>в разработке ПО гарантирование качества не гарантирует ни качества, ни отсутствия багов. Долго объяснять, но это так, ПО не делается, как клоны на фабрике, это каждый раз уникальный артефакт со множеством особенностей, из которых некоторые наследуемые, а некоторые неожиданно новые.</li>
<li>тестирование <span class="css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3">стоит на фундаменте из требований, которые надо сперва наладить и запрягать перед каретой, а не после. Если мы деплоим 256 изменений за один раз по вторникам, то как именно трэкать эти самые требования? Где? Кем? Скорее всего, это ПО развивается не по требованиям, а по невнятным ожиданиям бизнеса. Нет требований — нет и гарантий соответствия им, потому что нечему соответствовать, тестирование живёт в режиме «сравнить наблюдаемое с ожидаемым». Нет ожиданий — не с чем сравнивать, остаётся только <em>исследование</em> в режиме «я не уверен, как оно должно работать…» А исследование ПО в QA этого ПО не конвертируется.</span></li>
</ul>
<p>Любопытно, что всё то, что мы сегодня переживаем, уже было — в начале девяностых, когда понадобилось ускорить поставку ПО, потому что бизнес же тестирует гипотезы и идёт вслепую, а не по продуманному и однозначному пути. И пришёл agile, и все ускорились, и в двухтысячных годах XX века я не видел в разработке живых тест-аналитиков и тест-дизайнеров, к тому времени их уже всех свезли на остров Литтл-Сент-Джеймс (в составе Американских Виргинских островов), где американский финансист Джеффри Эпштейн &amp; Co регулярно путали их с девицами красными.</p>
<p>И это случилось так быстро, что в двухтысячных уже всем казалось нормальным, что тестировщик сам придумывает тест-кейсы, сам их дизайнит и сам их выполняет. Ну, как дизайнит… он знает о том, что существует тест-дизайн, где надо какие-то таблицы придумывать, но на это всегда нет времени. Проще читать требования напрямую, на ходу придумывать проверки и сразу их выполнять. Придумывать тест-кейсы — где вы на это время найдёте?</p>
<p>А сегодня нам уже и требования негде взять, потому что ПО генерируется быстрее, чем кто-то соображает, зачем его нужно генерировать и что именно оно должно делать. И как именно… И какой бизнес будет стоять за нагенерированным ПО. Те же сайты не нужны сами по себе, они нужны бизнесу как витрина, как сборщик заказов…</p>
<p>А ещё в древности ПО поставляли на дисках, и обновлять его было крайне сложно, поэтому наши предки старались его как-то привести в готовое состояние ДО релиза. Но мы уже не они, мы перепрыгнули в парадигму «ПО работает на сервере, к которому мы постоянно имеем доступ, и если мы найдём ошибку — просто быстро её исправим», и это полностью true в отношении мелких ошибок. А если ошибка будет NOT мелкая, ну, откатим софт… наверное. <span style="color: #008000; --darkreader-inline-color: var(--darkreader-text-008000, #65eb65);" data-darkreader-inline-color=""><em>Стоимость исправления ошибки</em></span> упала, зачем вы требуете время на то, чтобы тестировать тщательно до релиза? Тестируйте после релиза, что вам мешает? Давайте сперва выпустим софт, чтобы продажи были, а потом вы будете его тестировать. Вот вам требования, не нойте.</p>
<p>А сегодня и требований «уже не стало, а скоро совсем не будет» © нашсеньор Паниковский. Мне уже предлагают воспринимать под видом требований абстрактные тексты, которые были сгенерированы по сгенерированному коду. Текст получается осмысленным на расстоянии одного предложения, а вместе эти предложения не склеиваются.</p>
<p style="padding-left: 40px;">Всё, как мы любим — без воды, без резолюции, без нервотрёпки, без коагуляции десереализационного инкремента, без хтонических завихрений, без un pahar de tocănică gustoasă la a voastră masa măiastră.</p>
<p style="padding-left: 40px;">Хочешь ещё?</p>
<p>Я понимаю коллегу, который тоже задолбан и был вынужден предложить хоть что-то под видом требований, он поднатужился и выдал — дякую, аж пiдскакую. А дальше со всей этой слезинкой ребёнка что делать?</p>
<p>В норме я могу, читая требования</p>
<ul>
<li>распознавать ситуации, которые наше ПО должно обработать,</li>
<li>распознавать ситуации, которые наше ПО не должно обрабатывать,</li>
<li>распознавать ситуации, которые наше ПО не должно обработать, но которые могут произойти</li>
<li>распознавать ситуации, про которые наши разработчики требований и ПО по какой-то причине не подумали</li>
<li>распознавать ожидания, которые подразумеваются, но не были явно объявлены — не все связи и требования очевидны, не обо всех детальках можно додуматься заранее</li>
</ul>
<p>То есть, мой процесс состоит из нескольких фаз: осознание, обдумывание, согласование, выполнение. Всё это требует какого-то времени. Что можно машинизировать и ускорить?</p>
<p><strong>Осознание</strong></p>
<p>Тест-кейсы пишут так же, как пишут код — руками на клавиатуре. Начинаешь медленно, затем ускоряешься, и постоянно к чему-то приходится возвращаться.</p>
<p>Можно их сгенерировать — вот вам и, кагбэ, ускорение. Но придётся разбираться в нагенерированном. То есть, произойдёт мощный спид ап на первой фазе, а затем…</p>
<p><strong>Обдумывание</strong></p>
<p>… всё равно мучительно медленный разбор — нужны часы.</p>
<p>Ок, я могу сам заниматься тест-дизайном, это, в принципе, знакомая и интересная аналитическая работа, которая направлена не на написание тест-кейсов, а на выявление очевидных и неочевидных связей и требований, и уже из того, что останется, появляются тест-кейсы. Но это требует времени.</p>
<p>А ещё тест-кейсы пишут или по требованиям, или по уже работающему приложению. Второй подход ублюдочен, но с него начинают все. Первый подход сложен, но он более разумен и эффективен. Anyway, и на то и на это нужны часы пропорционально количеству функциональностей ПО — чем их больше, тем больше времени нужно.</p>
<p><strong>Согласование</strong></p>
<p>Очень важный этап, который мы все дружно скипнем. Сколько раз уже скипали, неужели на этот раз что-то бомбанёт? Вроде не должно…</p>
<p><strong>Выполнение</strong></p>
<p>Вручную тестирование делается медленно — нужны часы.</p>
<p>Можно какие-то проверки делать через тот же Playwright, но не все же, и их так или иначе надо будет записать в виде кода. LLM тут может нас спидануть, но придётся или слепо доверять тому, что нагенерированно по объявлению, или настырно разбираться в каждом отдельно взятом кейсе. Нужны часы на подготовку тестов для автоматизации и, к сожалению, в будущем понадобится МНОГО часов на их постоянное переписывание, потому что автоматы будут устаревать и спотыкаться на ровном месте — просто потому, что так они устроены.</p>
<p>И надо, чтобы этим занимались отдельные пацаны, и для успеха им нужны уже кем-то продуманные тест-кейсы, чтобы не переключаться между разными уровнями абстракции. Впрочем…</p>
<p>А если после всего этого ВНЕЗАПНО выясняется, что требования уже где-то как-то непредсказуемо поменялись, то надо всю эту аналитическую работу выполнять заново. Это реалистично? В погоне «успеть вовремя» её будут выполнять частично, а значит, никаких гарантий не будет, ПО поедет в релиз от станции Тревожность до станции Бадабумц, потому что тестировщики опять пропустили какую-то досадную (местами лютую) мелочь.</p>
<p>Может быть, пришло время как раньше, порезать в ролях и принудить тестировщиков выполнять работу, которую раньше делали отдельные юниты? Да, тест-дизайн стал хуже, но остался же? Можно, например, заставить тестировщика самому придумывать требования — они ему нужнее всех. И да, это будут очень плохие требования, но они же будут, хоть какие-то?!</p>
<p style="padding-left: 40px;">Всё, как мы любим — без воды, в пустыне, под палящим солнцем…</p>
<p>Ок. Мы превратим тестировщиков в бизнес-аналитиков «<span class="css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3">с сильным навыком тестирования». И пусть эти аналитики сами гоняют LLM и сами «генерируют соответствующие артефакты», которые только им самим и нужны. </span>Пусть Джек идёт <a href="https://ru.wikipedia.org/wiki/%D0%94%D0%BE%D0%BC%2C_%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9_%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%BE%D0%B8%D0%BB_%D0%94%D0%B6%D0%B5%D0%BA">строить дом</a>, и пусть всё заверте…</p>
<p>Вот LLM, которая генерирует код проекта.</p>
<p>Вот LLM, которая генерирует код проекта, на основе которого генерируются требования к проекту.</p>
<p>Вот LLM, которая генерирует код проекта, на основе которого генерируются требования к проекту, на основе которых генерируются юнит-тесты для проверки проекта. Лей в прод.</p>
<p style="padding-left: 40px;">Тут будет большой бэмц, после которого программиста допрашивают через его же сфинктер, а как так получилось, что его красивые юнит-тесты работают, а ПО — с багами. Пропустим эти неприятные звуки и перейдем к следующему ходу.</p>
<p>Вот LLM, которая генерирует код проекта, на основе которого генерируются требования к проекту, на основе которых генерируются и юнит-тесты для проверки проекта, и тест-кейсы для проверки проекта сразу в Playwright, чтобы не возиться с ручным тестированием. Лей в прод.</p>
<p style="padding-left: 40px;">Тут пропустим ещё один большой бэмц, после которого всех сразу допрашивают (и не только через сфинктер; что вы так сосредоточились на этом сфинктере, вы больные, что ли?!), а как так получилось, что и юнит-тесты работают, и Playwright работает, а ПО — с багами. Почему вам не хватило <del>времени</del> мозгов проверить руками хотя бы основные happy path? Почему этих happy path так много, товарищи? Давайте заново.</p>
<p>Вот LLM, которая генерирует код проекта, на основе которого генерируются требования к проекту, на основе которых генерируются и юнит-тесты для проверки проекта, и тест-кейсы для проверки проекта сразу в Playwright, и тест-кейсы для ручного тестирования. Сжимай свой сосредоточенный сфинктер, раз уж ты ни на чем другом уже не можешь сосредоточиться, и лей в прод.</p>
<p>А что лить-то? Мы сразу втыкаемся в то, что ручное тестирование проекта требует времени два раза — и для подготовки (когда анализируют требования и придумывают тест-кейсы), и для выполнения. И это всё никак не ускоряется. Быстро льётся, если без тестирования. А вы же хотели тестирования? Хм…</p>
<p>И время идёт, пока мы читали эти <del>ужоснах</del> тест-кейсы для ручного тестировани, та клята LLM уже перегенерировала заново код проекта, на основе которого генерируются требования к проекту, на основе которых генерируются и юнит-тесты для проверки проекта, и тест-кейсы для проверки проекта сразу в Playwright, и новые тест-кейсы для ручного тестирования… и по цепочке всё обновила. Кхм, как говорится, блеать!…</p>
<p>Если генерирование ПО каждый раз создаёт ПО заново, с непредсказуемыми характеристиками и возможностями, которые надо перетестировывать заново, с нуля, с тем же уровнем недоверия, то в этой схеме не может произойти общее ускорение. В этой схеме есть моменты для локального ускорения, но в целом — нет. Это как таскать воду из колодца домой, и местами на этом пути находить сантиметрики, которые можно срезать, и весь путь туда-обратно как будто-бы сокращается и оптимизируется, да, но в целом как был километр, так и остался, и нужно принципиально другое решение, в котором вода в доме будет постоянно появляться, а таскать воду из колодца уже не придётся.</p>
<p>Почему мы вообще занимаемся этим трудом Сизифа, к которому аргонавты каждый день прилетают и клюют печень да «трахаютЪ мозгЪ», уж простите, не знаю как это произносится по-древнегречески!?</p>
<p>Если делать ПО, которое будет взаимодействовать <em>только</em> с другими ПО, то постоянное тестирование будет ненужным, оно перейдёт в режим одноразовой задачи, вы можете видеть положительный эффект этой условности в разделе API. А если делать ПО, которым будут пользоваться люди (местами бесконечно глупые, местами дъявольски умные), то и проверять его надо людьми, причём постоянно. Как это всё ускорить?</p>
<p>Да как всегда — начинаем презирать правила проезда перекрестков, уголовный кодекс и всякие ограничения здравого смысла. Надо делать всё быстро, а чинить только то, на что будут жаловаться (за что будут наказывать) — вот и вся философия, Спиноза.</p>
<p>Может быть, стоит убрать из этой схемы вообще всех, даром, и пусть LLM сами генерируют код и тесты, и впихивают это всё в CI/CD, и выполняют на проде, и пусть другие LLM этим всем пользуются и всё это покупают. Проекты же делают для прибыли, right? Pedal to the metal.</p>
<p>&nbsp;</p>
<p><iframe title="Zdob si Zdub - Tiganii si OZN-ul (Calitate audio superioara)" width="665" height="499" src="https://www.youtube.com/embed/0z1gYdZ3TIg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>Hop, hop, hop, hop, hop, hop, hoba!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2026/02/20/mesterul-manole-rastoarna-caldarea/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">36764</post-id>	</item>
		<item>
		<title>Перестать лайкать лайки</title>
		<link>https://testitquickly.com/2026/01/25/likeuri-timpite/</link>
					<comments>https://testitquickly.com/2026/01/25/likeuri-timpite/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Sun, 25 Jan 2026 07:59:42 +0000</pubDate>
				<category><![CDATA[Неприятно]]></category>
		<category><![CDATA[Поросенок v2.0]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Хайнлайн]]></category>
		<guid isPermaLink="false">https://testitquickly.com/?p=36713</guid>

					<description><![CDATA[Лет сто назад меня засосала опасная трясина затрясло от того, насколько я стал зависимым от Facebook. Прям-трям постоянно очень было нужно посмотреть на лайки, дизлайки (тогда ещё были) и комментарии. Стало скучно — FB. Стало тревожно — FB. Стало весело — FB, всем сообщить… Удалил FB с телефона. Ну, такоэ, он же через браузер доступен…… <span class="read-more"><a href="https://testitquickly.com/2026/01/25/likeuri-timpite/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Лет сто назад меня <del>засосала опасная трясина</del> затрясло от того, насколько я стал зависимым от Facebook. Прям-трям постоянно <em>очень</em> было нужно посмотреть на лайки, дизлайки (тогда ещё были) и комментарии. Стало скучно — FB. Стало тревожно — FB. Стало весело — FB, всем сообщить…</p>
<p><strong>Удалил FB с телефона</strong>. Ну, такоэ, он же через браузер доступен…</p>
<p>В Firefox на страницах FB через адблок <strong>спрятал все кнопки типа «лайк»</strong>. Вместо тыцанья лайков можно писать комментарии. Вскоре понял, что и комментарии особо не нужны, и всё стало восприниматься более отстраненно — прочитал и прочитал, нет нужды на всё реагировать.</p>
<p><span id="more-36713"></span></p>
<p><strong>Перевел все записи в режим «для друзей»</strong>. Со временем вообще перехотелось что-то туда писать — исчезли все факторы «социального одобрения», реально полегчало.</p>
<p><strong>Стал делать записи на FB в «заметках»</strong>, местами даже ценные (техника проезда серпантинов на машине, например), просто потому, что там сохранялась хронология записей. Сегодня все те «заметки» с FB исчезли — от спасибо, мрази…</p>
<p>Самой жуткой особенностью FB всегда была абсолютная невозможность смотреть записи в хронологическом порядке, даже в своём аккаунте. Хайнлайн про это всё целый рассказ написал <strong data-start="18" data-end="27">«<a href="https://1.librebook.me/they/vol1/1">Они</a>»</strong> (<em data-start="29" data-end="35">They</em>, 1939) — человек находится в дурке, и он уверен в том, что мир неправильный, что им управляют какие-то «кукловоды», а его уверяют в обратном. Но однажды шел сильный дождь, и человек (непонятно почему) отодвинул штору на окне, выходящем на тыльную сторону дома:</p>
<blockquote><p>Очень сильный дождь шел на фасадной стороне, а здесь, с этого окна, погода была прекрасной, солнечной и никакого дождя…</p></blockquote>
<p>И он пытался это всё объяснить Элис, своей жене, а она его уверяла в том, что ему просто показалось… А потом:</p>
<blockquote><p>Существо, которое он знал под именем Элис, не меняя своего облика вошло в комнату, где все они собрались.</p>
<p>[…]</p>
<p>— …И наша программа потерпела поражение из-за того, что Вы не обеспечили тогда дождь не только с фасада, но и с тыльной стороны его дома. Впредь работайте более тщательно над выбором средств.</p></blockquote>
<p>Порядок в рассуждениях приходит от последовательности. Если последовательность убрать, рассуждение начнёт перескакивать с десятое на триста восемьдесят седьмое (почему бы и нет?) и обратно на — на что? На десятое? Нет, ведь в этом окружении нет последовательности. Вместо «десятого» посмотри на «семь тысяч двадцать шестое». Why, кагбэ, not? Нелогично, но логично — просто неочевидно.</p>
<p>Я ж не просто перестал кликать по лайкам на FB, а затеял громадное исследование о том, как и почему какие-то записи появляются. И даже научная гипотеза была — мол, алгоритмы считывают, какой контент ты отмечаешь лайками, и формирует тебе ленту записей под твои реакции. Вероятно, полный отказ от лайков приведёт к тому, что лента придёт в логический порядок. И — ничего, бляха, не поменялось, неведома шняга в бэкграунде делает всё, что считает нужным, и единственный способ поменять её поведение — отказаться от её общества.</p>
<p><strong>Стал</strong> <del>ходить в спортзал</del> <strong>смотреть многочасовые записи аварий на Youtube</strong>. Отказаться от отвлечения невозможно, но просмотр этого контента хотя бы было полезным — чем больше аварий ты «видел», тем больше шансов их распознать задолго до происшествия (большинство происходят из-за неверных предположений, потому откровенная глупость, и только после чисто технические причины).</p>
<p>К чему это я всё… Понятно, что невозможно просто перестать отвлекаться на что-то. Не будет FB и Youtube — будешь упорно считать муравьёв в муравейнике. Сегодня я на Facebook я вообще перестал ходить, и видео с авариями смотрю редко, но накатило неприятное ощущение о том, что я всё равно много зависаю в бездне бессмысленного в других источниках. Как-то сразу пришло и решение о том, что надо перестать реагировать, надо замедлиться:</p>
<ul>
<li>Нигде и никак не трогать кнопку like. Их даже прятать не пришлось, они как-то очень просто игнорируются, вероятно, помог когдатошний опыт насильного скрытия лайков в браузере. А никто и не заметит, что я ничего не лайкаю, быгыг, так что…</li>
<li>Твиттер — включил режим «З<span class="css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3">ащитить посты», в нём все записи </span><span class="css-1jxf684 r-bcqeeo r-1ttztb7 r-qvutc0 r-poiln3">видны только уже существующим читателям. Комментировать под другими записями можно, но это увидит почти никто, исчезает социальное взаимодействие.</span></li>
<li>Threads — то же замое. Подзамочность ограничивает и мою возможность комментировать некоторые чужие постс, и это очень хорошо…</li>
<li>Сигналы о получении новых сообщений — подавить повсюду. Хорошо бы и дверной звонок отключить. На днях прекратил контракт про стационарный телефон, и ничего не поменялось.</li>
<li>В браузере есть расширение Enhancer for YouTube — убирает шортсы, убирает все «видео по данной теме», может убрать и комментарии. На экране осталось одно только видео, которое можно посмотреть и закрыть, ничего более. Когда в листе «Смотреть позже» собралось больше полутора тысяч видео — надо удалять, не может быть всё сразу важным и стоящим внимания. А я же ещё не разобрал каталог «Загрузки», там за много лет собралось 76 000 файлов, и не все они нужны, но какие-то важны, а какие-то просто дубли, и это всё тоже надо как-то (когда-то) рассортировать…</li>
<li>При просмотре чего-то — не запоминать и не делать вид, что всё понятно, а делать записи в бумажном блокноте, с ручкой в руке. Это помогает <del>замедлиться</del> сосредоточиться, потому что записываешь только самое важное, и пересказываешь. И смысл этого не в том, чтобы записать услышанное, а чтобы после услышанного записать своё рассуждение, а его же надо хоть как-то обдумать. Много видео таким образом не посмотришь, и это помогает замедлиться. А ещё процесс заполнения ручки дорогими чернилами медитативен, последователен, всепоглощающ, однозначен.</li>
<li>Выключать компьютеры, когда от них отходишь. Дело даже не в расходе электроэнергии, дело в принудительной смене фокуса. Надо ещё привыкнуть сразу гитары в кофры закатывать, а не перекладывать туда-сюда по комнате…</li>
<li>Смотреть старые черно-белые фильмы, в которых последовательно рассказывают какую-то историю, с прологом, монологом и эпилогом.</li>
<li>Ходить. Два кэмэ в одну сторону, и столько же обратно — без наушников, без аудиокниг, без цели.</li>
<li>И важно to embrace the boredom. Мышление в порядок можно привести только насильно и лучше делать это принудительно, но самостоятельно.</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2026/01/25/likeuri-timpite/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">36713</post-id>	</item>
		<item>
		<title>Postman в глаз, или в Bruno раз</title>
		<link>https://testitquickly.com/2024/11/23/api-first/</link>
					<comments>https://testitquickly.com/2024/11/23/api-first/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Sat, 23 Nov 2024 13:16:31 +0000</pubDate>
				<category><![CDATA[Видео]]></category>
		<category><![CDATA[Подкасты]]></category>
		<category><![CDATA[Соображения]]></category>
		<category><![CDATA[Bruno]]></category>
		<category><![CDATA[Postman]]></category>
		<category><![CDATA[Антон Дуенин]]></category>
		<guid isPermaLink="false">https://testitquickly.com/?p=6378</guid>

					<description><![CDATA[Увидел сегодня такое видео: «И я бы сказал, что куда бы вы ни пошли, вам стоит знать Postman…» © оригинал Нет. Не стоит «обязательно знать Postman» и вообще не надо к нему привязываться. Postman — всего лишь одна из лопат, которой надо копать. Обязательно надо понять, что такое API само по себе, как/почему оно работает.… <span class="read-more"><a href="https://testitquickly.com/2024/11/23/api-first/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Увидел сегодня такое видео:</p>
<div style="width: 665px;" class="wp-video"><video class="wp-video-shortcode" id="video-6378-1" width="665" height="353" preload="metadata" controls="controls"><source type="video/mp4" src="https://testitquickly.com/wp-content/uploads/2024/11/ГорящийАнтонПроPostman.mp4?_=1" /><a href="https://testitquickly.com/wp-content/uploads/2024/11/ГорящийАнтонПроPostman.mp4">https://testitquickly.com/wp-content/uploads/2024/11/ГорящийАнтонПроPostman.mp4</a></video></div>
<p>«<em>И я бы сказал, что куда бы вы ни пошли, вам стоит знать Postman…</em>» © <a href="https://youtu.be/iX0UXTOhgLk?si=cxN9uvGWWgjhPBpy&amp;t=574">оригинал</a></p>
<p>Нет.</p>
<p>Не стоит «обязательно знать Postman» и вообще не надо к нему привязываться. Postman — всего лишь одна из лопат, которой надо копать.</p>
<p>Обязательно надо понять, что такое API само по себе, как/почему оно работает. А каким именно инструментом его можно удобнее и проще использовать — это уже второй этаж.</p>
<p>У нас в конторе на днях произошёл резкий и однозначный переход на Bruno, потому что подписка на корпоративное окружение в Postman уже начало стоить каких-то заметных денег. Если бы мы все были жёстко присевшими на Postman, держали бы там разветвлённую сеть из запросов и покрыли бы их всех тестами на внутреннем фреймворке Postman, и массово запускали бы всё это при каждом релизе, то отказ от Postman был бы «ОЙ БЛЭТ!». А так — ну, не стало Postman, а файлы с коллекцией запросов остались, и дальше делаем то же самое, просто уже в Bruno.</p>
<p>Через какое-то время рынок снова поменяется, и у тех, кто только начинает, начнутся страдания о том, что же учить — или Postman, или Bruno, tertium non datur. И только на пенсии им станет очевидно, что учить надо вообще третье — принципы технологий обмена данными.</p>
<p>Относительно этого отдельно взятого видео (с отдельно взятым мнением его автора о том, что для джунов глобально важно, а что нет) — оно уже есть, обсуждать его незачем. Ну, видео и видео, сделал и молодец.</p>
<p>Вопрос к тем, кто тоже хочет делать подобные видео — может быть, не надо являть себя народу в режиме «я знаю, как надо правильно»?</p>
<p>Может быть, не надо потакать аудитории?</p>
<p>Может быть, надо спрашивать и предлагать порассуждать?</p>
<p>Postman или что угодно другое — это инструмент, который надо или не надо использовать исходя из контекста. Мы же хз, куда попадают айтишники — некоторые сразу в рай, некоторые — на проекты, где этот ваш API вообще никому никуда не сдался, где надо всего лишь целыми днями пихать в консоль sql-запросы и думать о том, куда же тут, бляха, развиваться?! А потом случится то, что и этот ваш Postman, и этот ваш Bruno станут никому не нужным археологическим шлаком, и…</p>
<p>Короче, не инструменты надо смотреть, а основы. В айти, кагбэ, копать — не перекопать, лопаты меняются, задачи остаются теми же.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2024/11/23/api-first/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://testitquickly.com/wp-content/uploads/2024/11/ГорящийАнтонПроPostman.mp4" length="8082141" type="video/mp4" />

		<post-id xmlns="com-wordpress:feed-additions:1">6378</post-id>	</item>
		<item>
		<title>Туду в консоли Debian</title>
		<link>https://testitquickly.com/2024/11/13/todo/</link>
					<comments>https://testitquickly.com/2024/11/13/todo/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Wed, 13 Nov 2024 18:09:14 +0000</pubDate>
				<category><![CDATA[To Do]]></category>
		<category><![CDATA[Автоматизация]]></category>
		<category><![CDATA[Инструменты]]></category>
		<category><![CDATA[Радости]]></category>
		<category><![CDATA[Читерство]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[Debian]]></category>
		<guid isPermaLink="false">https://testitquickly.com/?p=6349</guid>

					<description><![CDATA[Любая система «туду» хороша, если список дел постоянно перед глазами. Придумал простой способ добавить себе напоминалки о чём-то, что нужно сделать, глядя в консоль — прямо в консоль.]]></description>
										<content:encoded><![CDATA[<p>Любая система «туду» хороша, если список дел постоянно перед глазами.</p>
<p>Придумал <a href="https://testitquickly.com/bystro.linux/Common/HowTo/%D0%A1%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C/ToDo_%D0%B2_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8.html">простой способ</a> добавить себе напоминалки о чём-то, что нужно сделать, глядя в консоль — прямо в консоль.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2024/11/13/todo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6349</post-id>	</item>
		<item>
		<title>Переучёба будущего</title>
		<link>https://testitquickly.com/2024/09/09/sa-ne-rasslaghim/</link>
					<comments>https://testitquickly.com/2024/09/09/sa-ne-rasslaghim/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Mon, 09 Sep 2024 10:00:11 +0000</pubDate>
				<category><![CDATA[Видео]]></category>
		<category><![CDATA[Инструменты]]></category>
		<category><![CDATA[Обзоры]]></category>
		<category><![CDATA[псевдоинтеллект]]></category>
		<guid isPermaLink="false">https://testitquickly.com/?p=6311</guid>

					<description><![CDATA[Нашёлся любопытный коровьий сервис «для учебы» — unstuckstudy.com Он, как корова, может сожрать все ваши pdf, ppt и всякие видео с ютуба, пережевать их и переварить, выдать обратно сжатый набор информации о том, что внутри. Взял я первый же рэндомный доклад про тестирование на русском языке с ютюба, опрокинул его в этот сервис и получил… <span class="read-more"><a href="https://testitquickly.com/2024/09/09/sa-ne-rasslaghim/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Нашёлся любопытный коровьий сервис «для учебы» — <a href="https://unstuckstudy.com/">unstuckstudy.com</a></p>
<p>Он, как корова, может</p>
<ul>
<li>сожрать все ваши pdf, ppt и всякие видео с ютуба,</li>
<li>пережевать их и переварить,</li>
<li>выдать обратно сжатый набор информации о том, что внутри.</li>
</ul>
<p>Взял я первый же рэндомный доклад <a href="https://testitquickly.com/2017/06/20/stones/">про тестирование</a> на русском языке с ютюба, опрокинул его в этот сервис и получил в ответ компрехенсив эксчёрпт о содержимом видео — коротко, быстро, ясно, но только на английском языке.</p>
<div id="attachment_6317" style="width: 675px" class="wp-caption aligncenter"><a href="https://testitquickly.com/wp-content/uploads/2024/09/unstuckMe.jpg"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-6317" class="size-large wp-image-6317" src="https://testitquickly.com/wp-content/uploads/2024/09/unstuckMe-1024x589.jpg" alt="" width="665" height="383" srcset="https://testitquickly.com/wp-content/uploads/2024/09/unstuckMe-1024x589.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/09/unstuckMe-300x173.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/09/unstuckMe-768x442.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/09/unstuckMe-1536x884.jpg 1536w, https://testitquickly.com/wp-content/uploads/2024/09/unstuckMe-2048x1179.jpg 2048w, https://testitquickly.com/wp-content/uploads/2024/09/unstuckMe-660x380.jpg 660w" sizes="(max-width: 665px) 100vw, 665px" /></a><p id="caption-attachment-6317" class="wp-caption-text"><em>Вкратце такие дела</em></p></div>
<p>При закидывании материалов в эту инфо-мясорубку можно получить</p>
<ol>
<li>или study note</li>
<li>или summary (revision) note</li>
</ol>
<p>Итоговые тексты будут слегка отличаться.</p>
<div id="attachment_6313" style="width: 675px" class="wp-caption aligncenter"><a href="https://testitquickly.com/wp-content/uploads/2024/09/studyNotes.jpg"><img decoding="async" aria-describedby="caption-attachment-6313" class="size-large wp-image-6313" src="https://testitquickly.com/wp-content/uploads/2024/09/studyNotes-1024x741.jpg" alt="" width="665" height="481" srcset="https://testitquickly.com/wp-content/uploads/2024/09/studyNotes-1024x741.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/09/studyNotes-300x217.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/09/studyNotes-768x555.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/09/studyNotes-1536x1111.jpg 1536w, https://testitquickly.com/wp-content/uploads/2024/09/studyNotes-660x477.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/09/studyNotes.jpg 1803w" sizes="(max-width: 665px) 100vw, 665px" /></a><p id="caption-attachment-6313" class="wp-caption-text"><em>Это Study Notes</em></p></div>
<p>&nbsp;</p>
<div id="attachment_6312" style="width: 675px" class="wp-caption aligncenter"><a href="https://testitquickly.com/wp-content/uploads/2024/09/revisionNotes.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6312" class="size-large wp-image-6312" src="https://testitquickly.com/wp-content/uploads/2024/09/revisionNotes-1024x709.jpg" alt="" width="665" height="460" srcset="https://testitquickly.com/wp-content/uploads/2024/09/revisionNotes-1024x709.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/09/revisionNotes-300x208.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/09/revisionNotes-768x531.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/09/revisionNotes-1536x1063.jpg 1536w, https://testitquickly.com/wp-content/uploads/2024/09/revisionNotes-660x457.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/09/revisionNotes.jpg 1795w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a><p id="caption-attachment-6312" class="wp-caption-text"><em>Это Revision Notes</em></p></div>
<p>Любопытно то, что я знаю исходный текст и идеи, которые за ним стоят. Но из этой текстовой выжимки я вообще нифига не понял, что хотел сказать автор доклада, и пересказать смысл доклада по этой выжимке я бы не смог. Вроде всё выглядит цивильно и логично. Вроде полезные советы, изложенные кратко-понятно. Но о чём это в целом? Было пропущено что-то ключевое, что всё это соединяет.</p>
<p>Вангую, что через какое-то время во всех школах рефераты будут выглядеть вот так — вроде все слова на месте, а в целом ничего не понять.</p>
<p>Зато быстро.</p>
<p>Очень быстро.</p>
<p>Настолько быстро, что если бы стародавние времена уже был такой сервис, то сей докладчик мог бы сэкономить всем нам время своей говорильней — мог бы просто распечатать Study Notes, прочитать их вслух за семь минут, и доклад окончен!</p>
<p style="padding-left: 40px;">Вероятно, все конференции будущего будут проходить в таком ускоренном режиме.</p>
<p>Могут спросить, а зачем понадобился отдельный сервис для всего такого, если у нас есть доступ в исходный chat.openai.com, где есть все те же функциональные возможности… Я бы не стал про это спрашивать. Я предложил распарсить это же видео из 2017-го, и в чате включился саммари-галлюциноген:</p>
<blockquote><p>The video you&#8217;re referring to offers an analysis of the current military situation in Ukraine, focusing on the developments in early September 2024. It details the collapse of the Vuhledar direction and the fall of Novohrodivka…</p></blockquote>
<p>Ок, пусть для учёбы будет отдельный сервис. Походу, там под капотом много всякого сделано.</p>
<p>Также проверил сборку summary из видео, которое используется для настройки аудиооборудования. Там в начале произносят „Warning, this video contains flashes and moving images”, а потом выводят звук то в левом канале, то в правом.</p>
<p><iframe loading="lazy" title="#Stereo: Left and Right Stereo Sound Test" width="665" height="374" src="https://www.youtube.com/embed/6TWJaFD6R2s?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>Робот, конечно, постарался извлечь из этого хоть что-то…</p>
<blockquote>
<h2>Summary / Highlights</h2>
<ul>
<li><strong>Video Warning</strong>: The video contains flashes of moving images.</li>
<li><strong>Subscription Reminder</strong>: Viewers are encouraged to subscribe to the Master Study channel. (это название канала, на котором видео)</li>
</ul>
<h2>Key Points</h2>
<ul>
<li><strong>Content Warning</strong>: Important for viewers sensitive to flashing images.</li>
<li><strong>Engagement</strong>: Encourages audience interaction through subscriptions, <em>enhancing community building</em>.</li>
</ul>
<h2>Additional Notes</h2>
<ul>
<li>The video may include <em>educational</em> content related to study techniques or productivity tips, but specific details are not provided in the excerpts.</li>
</ul>
<h2>Revision Questions</h2>
<ul>
<li>What precautions should viewers take when watching videos with flashing images?</li>
<li>Why is subscribing to educational channels beneficial for students?</li>
</ul>
</blockquote>
<p>Ну да, ну да — без контекста это всё не имеет никакого смысла.</p>
<p>А вот по-настоящему сложные тексты эту машинерию доста файно подламывают, быгыг…</p>
<div id="attachment_6316" style="width: 675px" class="wp-caption aligncenter"><a href="https://testitquickly.com/wp-content/uploads/2024/09/handy-language.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6316" class="size-large wp-image-6316" src="https://testitquickly.com/wp-content/uploads/2024/09/handy-language-1024x709.jpg" alt="" width="665" height="460" srcset="https://testitquickly.com/wp-content/uploads/2024/09/handy-language-1024x709.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/09/handy-language-300x208.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/09/handy-language-768x532.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/09/handy-language-1536x1064.jpg 1536w, https://testitquickly.com/wp-content/uploads/2024/09/handy-language-2048x1419.jpg 2048w, https://testitquickly.com/wp-content/uploads/2024/09/handy-language-660x457.jpg 660w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a><p id="caption-attachment-6316" class="wp-caption-text"><em>Не сведет с ума ИИ закарпатский лэнгуаге</em></p></div>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2024/09/09/sa-ne-rasslaghim/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6311</post-id>	</item>
		<item>
		<title>Сложные диаграммы простым текстом</title>
		<link>https://testitquickly.com/2024/08/12/mermaid-uml-uzor-tsaranesc/</link>
					<comments>https://testitquickly.com/2024/08/12/mermaid-uml-uzor-tsaranesc/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Mon, 12 Aug 2024 05:32:06 +0000</pubDate>
				<category><![CDATA[Изображения]]></category>
		<category><![CDATA[Инструменты]]></category>
		<category><![CDATA[Радости]]></category>
		<category><![CDATA[Скриншоты]]></category>
		<category><![CDATA[Читерство]]></category>
		<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[Confluence]]></category>
		<category><![CDATA[draw.io]]></category>
		<category><![CDATA[Gary Parker]]></category>
		<category><![CDATA[LaTeX]]></category>
		<category><![CDATA[Lee Copeland]]></category>
		<category><![CDATA[LiveScript]]></category>
		<category><![CDATA[Mermaid]]></category>
		<category><![CDATA[Modelio]]></category>
		<category><![CDATA[Notion]]></category>
		<category><![CDATA[Zim]]></category>
		<category><![CDATA[Джерри Вайнберг]]></category>
		<guid isPermaLink="false">https://testitquickly.com/?p=6211</guid>

					<description><![CDATA[Иногда сложные идеи проще объяснять картинками: Они помогают что-то объяснять и окружающим, и самому себе — это отличная лопата для анализа требований, от которых начинается тест-дизайн, где надо всё учесть, ничего не упустить, из ничего выявить неправильное или неоднозначное. Анализ рулит! Рисовать их можно и на обоях, и в не очень удобном LibreOffice Draw, в… <span class="read-more"><a href="https://testitquickly.com/2024/08/12/mermaid-uml-uzor-tsaranesc/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Иногда сложные идеи проще объяснять картинками:</p>
<div id="attachment_6213" style="width: 675px" class="wp-caption aligncenter"><a href="https://testitquickly.com/wp-content/uploads/2024/07/mermaid001.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6213" class="size-large wp-image-6213" src="https://testitquickly.com/wp-content/uploads/2024/07/mermaid001-1024x403.jpg" alt="" width="665" height="262" srcset="https://testitquickly.com/wp-content/uploads/2024/07/mermaid001-1024x403.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/07/mermaid001-300x118.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/07/mermaid001-768x302.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/07/mermaid001-660x260.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/07/mermaid001.jpg 1340w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a><p id="caption-attachment-6213" class="wp-caption-text"><em>Полноценный японский «танка» на UML </em></p></div>
<p>Они помогают что-то объяснять и окружающим, и самому себе — это отличная лопата для анализа требований, от которых начинается тест-дизайн, где надо всё учесть, ничего не упустить, из ничего выявить неправильное или неоднозначное. Анализ рулит!</p>
<p>Рисовать их можно и на обоях, и в не очень удобном LibreOffice Draw, в MS Visio (не щупал уже сто лет), и в опенсорсном <a href="https://www.modelio.org/index.htm">Modelio</a>, и в браузерном <a href="https://app.diagrams.net/">draw.io</a>. Там надо тыкать курсором по иконкам и стрелочкам, перетаскивать их по экрану и соединять в логичном порядке, после чего сохранить в виде картинки, которую надо вставить в свою документацию. И хорошо, если это надо сделать только один раз и картинка маленькая. Как правило, что-то надо поменять, или полотно диаграммы становится очень большим, на несколько экранов во все стороны — и там всегда надо что-то менять. Снова надо сгенерировать картинку, снова надо её прикрепить к странице и вставить в нужное место.</p>
<p>Есть другое решение — диаграммы можно не рисовать, а прямо в режиме редактирования документа в Notion (или в Confluence, или в IDE умного разработчика) в plain text с разметкой Markdown расписывать узлы диаграммы и связи между ними, а обновленная диаграмма автоматически перерисовывается. LaTeX way!</p>
<p>Проект называется <a href="https://mermaid.js.org/intro/">Mermaid</a> (русалка), работает на JavaScript, подключается как <a href="https://www.mermaidchart.com/plugins">плагин</a> в Confluence или Notion, в средах разработки, и даже в Jupyter notebook. Потыкать в свободном режиме — <a href="https://mermaid.live">https://mermaid.live</a></p>
<p>Диаграмм в Mermaid множество: Class Diagram, Entity Relationship Diagram, User Journey, Gantt, Pie Chart, Quadrant Chart, Requirement Diagram, Gitgraph (Git) Diagram, C4 Diagram, Mindmaps, Timeline, Zenuml, Sankey, XYChart, Block Diagram. Cамые ходовые три:</p>
<ol>
<li><span class="HwtZe" lang="ru"><span class="jCAhz ChMk0b"><span class="ryNqvb">Блок-схема </span></span></span><span class="HwtZe" lang="ru"><span class="jCAhz ChMk0b"><span class="ryNqvb">(Flowcharts)</span></span></span></li>
<li>Диаграмма состояний (State diagram)</li>
<li>Диаграмма последовательности (Sequence diagram)</li>
</ol>
<h2>Mermaid в Notion</h2>
<p>В Notion (не наш выбор, но и там есть жизнь) блок с мермайдом вызывается командой, которую можно даже не дописывать:</p>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/07/mermaid002.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6214" src="https://testitquickly.com/wp-content/uploads/2024/07/mermaid002.jpg" alt="" width="722" height="323" srcset="https://testitquickly.com/wp-content/uploads/2024/07/mermaid002.jpg 722w, https://testitquickly.com/wp-content/uploads/2024/07/mermaid002-300x134.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/07/mermaid002-660x295.jpg 660w" sizes="auto, (max-width: 722px) 100vw, 722px" /></a></p>
<p>Получаем поле с представлением «Split» — сверху код, а внизу результат его правильной работы:</p>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid003.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6251" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid003-1024x727.jpg" alt="" width="665" height="472" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid003-1024x727.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid003-300x213.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid003-768x545.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid003-660x469.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid003.jpg 1341w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<p>Когда дело сделано, разумно переключить отображение содержимого блока на «Preview», чтобы не пугать прожект-манагера непонятными буковками.</p>
<h2>Блок-схема</h2>
<p>Она же Flowchart. <a href="https://mermaid.js.org/syntax/flowchart.html">Документация</a> по ней подробна и адекватна.</p>
<p>Блок-схема состоит из узлов (геометрических фигур) и ребер (стрелок/линий), и объявляется непременно с направлением развёртывания — сверху вниз (TD) или слева направо (LR):</p>
<p>Пример:</p>
<pre style="padding-left: 40px;">flowchart TD
S(Простая последовательность шагов)
--&gt; id1(Самурай всё понимает)
--&gt; E(Разговор исчерпан)</pre>
<p>S — Start.</p>
<p>E — End.</p>
<p>Между ними можно расположить сколько угодно узлов. Называть их можно буквами любого алфавита, который есть в кодировке UTF-8, от «id1, id2, id3» до «самурайУмничает».</p>
<p>Сплошные управляющие стрелки (рёбра) указываются так:</p>
<pre style="padding-left: 40px;">--&gt;</pre>
<p>Стрелка с прерывистой линией:</p>
<pre style="padding-left: 40px;">-.-&gt;</pre>
<p>Стрелку можно ставить перед узлом, а можно после. Мне удобнее воспринимать их в начале строки.</p>
<p>Стрелками можно связывать не только на каждый следующий узел, но и непоследовательно прыгать к любым другим узлам. Например, можно связать id3 с id1:</p>
<pre style="padding-left: 40px;">flowchart TD 
  S(Простая последовательность шагов) 
  --&gt; id1(Самурай всё понимает) 
  --&gt; id2(Невод закинут в море) 
  -.-&gt; id3(Дед, ну ты дурак? <span role="img" aria-label="©">©</span>) 
  --&gt; id1 
  --&gt; E(Разговор исчерпан)
</pre>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid004.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6253" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid004-1024x887.jpg" alt="" width="665" height="576" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid004-1024x887.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid004-300x260.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid004-768x665.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid004-660x572.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid004.jpg 1366w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<p>Ещё есть комментарии — через «два символа процента»:</p>
<pre style="padding-left: 40px;">%%{init: {"flowchart": {"htmlLabels": true}} }%%</pre>
<h3>Форматирование узлов на блок-схеме</h3>
<p>Их форма задаётся скобками.</p>
<pre style="padding-left: 40px;">flowchart TD 

S[\Простая последовательность шагов/]
 --&gt; id1{Самурай всё понимает}
 --&gt; id2[Невод закинут в море]
 -.-&gt; id3(Дед, ну ты дурак? <span role="img" aria-label="©">©</span>) 
-.-&gt; id2 
--&gt; E[/Разговор исчерпан\]
</pre>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid005.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6255" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid005-836x1024.jpg" alt="" width="665" height="815" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid005-836x1024.jpg 836w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid005-245x300.jpg 245w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid005-768x941.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid005-660x809.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid005.jpg 1177w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<h3>Комментарии на стрелках</h3>
<pre style="padding-left: 40px;">flowchart TD 

S[\Простая последовательность шагов/] 
--&gt; id1(Самурай всё понимает)
-.-&gt; |размахнувшись| id2(Невод закинут в море)
--&gt; E[/Разговор исчерпан\]</pre>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid010.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6263" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid010-1024x686.jpg" alt="" width="665" height="445" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid010-1024x686.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid010-300x201.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid010-768x514.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid010-660x442.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid010.jpg 1133w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<h3>Пометить узлы разными цветами</h3>
<p>Для этого надо объявить классы сущностей через ’classDef’, а там чистый CSS, поэтому названия или коды цветов надо взять из <a href="https://htmlcolorcodes.com/color-names/">htmlcolorcodes.com</a></p>
<pre style="padding-left: 40px;">flowchart TD

classDef decisionPoint color:black,stroke:DarkOrange,fill:Snow,stroke-width:1px,text-align:left;
classDef startPoint color:black,stroke:White,fill:#93e4e6,stroke-width:1px,text-align:left;
classDef endPoint color:gold,stroke:White,fill:black,stroke-width:1px,text-align:left;

S[\Простая последовательность шагов/]:::startPoint
--&gt; id1(Самурай всё понимает)
--&gt; id2[Невод закинут в море]:::decisionPoint
-.-&gt; id3(Дед, ну ты дурак? <span role="img" aria-label="©">©</span>)
--&gt; id2
--&gt; E[/Разговор исчерпан\]:::endPoint</pre>
<p>Затем применить классы к узлам через три двоеточия.</p>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid006.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6257" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid006-1024x921.jpg" alt="" width="665" height="598" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid006-1024x921.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid006-300x270.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid006-768x691.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid006-660x594.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid006.jpg 1413w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<p>Не надо излишне увлекаться раскрасками. Стартовый и эндовый узлы лучше пометить не цветом, а формой узла через наклоны обрамляющих слэшей:</p>
<pre>[\ старт /] и [/ финиш \]</pre>
<p>Цвета, если действительно надо применять, следует подобрать неяркие. Учесть, что кто-то будет смотреть это всё в darkMode.</p>
<h3>Поменять размер шрифта одного из узлов</h3>
<p>Через управляющие команды CSS:</p>
<pre style="padding-left: 40px;">classDef decisionPoint <strong>font-size:0.9em</strong>,color:black,stroke:DarkOrange,fill:Snow,stroke-width:1px,text-align:left;</pre>
<h3>Вписать в один узел несколько строк</h3>
<p>Просто переносим буквы/слова внутри узла на новую строку. В моем примере каждая новая (перенесенная) строка начинается с булита — это необязательно, просто выглядит как список на слайде. Кавычки вроде нужны, а на деле не обязательны.</p>
<pre style="padding-left: 40px;">flowchart TD 

classDef leftAlign font-size:0.9em,color:black,stroke:DarkOrange,fill:Snow,stroke-width:1px,text-align:left; 

S[\Простая последовательность шагов/]
 --&gt; id1(Самурай всё понимает)
 --&gt; listOfEvents("•  Некуда спешить
• Не о чём думать
• Начинается дождь"):::leftAlign
 --&gt; id2[Невод закинут в море]
E[/Разговор исчерпан\]
</pre>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid007.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6258" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid007.jpg" alt="" width="936" height="884" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid007.jpg 936w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid007-300x283.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid007-768x725.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid007-660x623.jpg 660w" sizes="auto, (max-width: 936px) 100vw, 936px" /></a></p>
<p>Тут под произвольным именем ’newLines’ было задано соединение нескольких узлов в один общий узел. А это значит, что можно заранее соединять узлы в отдельные ветки… тааакое можно наворотить!</p>
<h3>Разместить на одной диаграмме несколько самостоятельных ветвей</h3>
<p>…между которыми связующих звеньев вообще может не быть — это глупо, но возможно. Или можно задать связи между ними в нелинейном сочетании:</p>
<pre style="padding-left: 40px;">flowchart TD

classDef leftAlign font-size:0.9em,color:black,stroke:DarkOrange,fill:Snow,stroke-width:1px,text-align:left;

biblioteka["Понял в тишине библиотеки"]
apple["Яблоки на снегу"]
gameOver["Демоны спёрли дыхание"]
bookIsClosed["Книга недолго открыта"]
listOfEvents("• Некуда спешить
• Не о чём думать
• Начинается дождь"):::leftAlign

apple 
--&gt; biblioteka 
--&gt; listOfEvents

S[\Происходит жизнь/]
--&gt; id1(Самурай всё понимает)
--&gt; id2[Невод закинут в море]
--&gt; listOfEvents
--&gt; E[/Разговор исчерпан\]

id1
--&gt; gameOver
--&gt; bookIsClosed</pre>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid008.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6260" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid008-1024x613.jpg" alt="" width="665" height="398" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid008-1024x613.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid008-300x180.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid008-768x460.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid008-660x395.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid008.jpg 1404w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<p>Вполне можно свести узел «Книга недолго открыта» к финишу, прописав последней командой „&#8212;&gt; E”, но это необязательно, некоторые процессы вполне самостоятельно могут закончиться «ничем».</p>
<p><!-- notionvc: 17b4916e-9c3a-43e4-bf85-1938f6251121 --></p>
<h2>Диаграмма последовательности</h2>
<p>Она же <a href="https://mermaid.js.org/syntax/sequenceDiagram.html">Sequence diagram</a>.</p>
<p>Это предпочитают программисты — удобно показать, как процессы взаимодействуют друг с другом и в каком порядке.</p>
<pre style="padding-left: 40px;">sequenceDiagram

Jules-&gt;&gt;+Brett: What does Marsellus Wallace look like?
Brett--&gt;&gt;+Jules: …What?
Jules-&gt;&gt;+Brett: ENGLISH, MOTHERFUCKER! DO YOU SPEAK IT!?
Brett--&gt;&gt;+Jules: Yes!!
Jules-&gt;&gt;+Brett: DESCRIBE WHAT MARSELLUS WALLACE “LOOKS” LIKE!
Brett--&gt;&gt;+Jules: Wha-what I—?
Jules-&gt;&gt;+Brett: SAY "WHAT" AGAIN! I DOUBLE-DARE YOU, MOTHERFUCKER!! SAY "WHAT" ONE MORE GODDAMN TIME!
Brett--&gt;&gt;+Jules: H-H-He's black...
Jules-&gt;&gt;+Brett: Go on!
Brett--&gt;&gt;+Jules: ...He's bald...!
Jules-&gt;&gt;+Brett: Does he look like a bitch?!
Brett--&gt;&gt;+Jules: What? 
Note over Jules,Brett: shoots Brett in the shoulder
Jules-&gt;&gt;+Brett: DOES! HE! LOOK! LIKE! A BITCH?!?!
Brett--&gt;&gt;+Jules: NO!
Jules-&gt;&gt;+Brett: Then why'd you try to fuck him like a bitch, Brett?
Brett--&gt;&gt;+Jules: I didn't...!
Jules-&gt;&gt;+Brett: Yes, you did! YES, you DID, Brett! You tried to fuck him!</pre>
<div id="attachment_6261" style="width: 675px" class="wp-caption aligncenter"><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid009.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6261" class="wp-image-6261 size-large" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid009-899x1024.jpg" alt="" width="665" height="757" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid009-899x1024.jpg 899w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid009-263x300.jpg 263w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid009-768x875.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid009-1349x1536.jpg 1349w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid009-660x752.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid009.jpg 1360w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a><p id="caption-attachment-6261" class="wp-caption-text"><em>Pulp Fiction in action</em></p></div>
<p>Акторов может быть множество, переходы между ними тоже доступны в разных сочетаниях.</p>
<p>Разумно рисовать от одного актора только сплошные стрелки, а от другого только прерывистые.</p>
<p>Неразумно рисовать в таком стиле длинные диаграммы.</p>
<p>Также программисты используют рисование диаграмм через LiveScript с аналогичными возможностями:</p>
<pre>sequenceDiagram
  actor Customer
  participant Checkout
  participant DB

  Customer-&gt;&gt;+Checkout: Request checkout page
  Checkout-&gt;&gt;+DB: /api/settings

и так далее по той же схеме.</pre>
<p>&nbsp;</p>
<h2>Диаграмма состояний</h2>
<p>Она же <a href="https://mermaid.js.org/syntax/stateDiagram.html">State diagram</a> — диаграмма, которая описывает поведение систем. Ты видел её в книге Коупленда про тест-дизайн.</p>
<div id="attachment_6247" style="width: 310px" class="wp-caption aligncenter"><a href="https://testitquickly.com/wp-content/uploads/2024/08/copeland-order-diagram-.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6247" class="wp-image-6247 size-medium" src="https://testitquickly.com/wp-content/uploads/2024/08/copeland-order-diagram--300x258.jpg" alt="" width="300" height="258" srcset="https://testitquickly.com/wp-content/uploads/2024/08/copeland-order-diagram--300x258.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/copeland-order-diagram--768x661.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/copeland-order-diagram--660x568.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/copeland-order-diagram-.jpg 980w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-6247" class="wp-caption-text"><em>Всё чётко, да?</em></p></div>
<p>Эта диаграмма — учебная, кривая, неправильная:</p>
<p style="padding-left: 40px;">Note that the diagram is still incomplete. No arrows and bulls-eyes emerge from the Cancelled states. Perhaps we could reinstate a reservation from the Cancelled NonPay state. We could continue expanding the diagram to include seat selection, flight cancellation, and other significant events affecting the reservation but this is sufficient to illustrate the technique.</p>
<p style="padding-left: 40px;">© Lee Copeland</p>
<p>А она неправильная. Просто для экономии бумаги три перехода сведены к одному и тому же (Cancelled ByCust), а в норме это надо выводить в отдельные (тупиковые) ветви. Иногда даже из тупичка может произойти обратное действие, и если через всё пространство протягивать стрелки в одно и то же место, то через какое-то время диаграмма покрывается паутиной метаний от одного узла к другому… ох.</p>
<p>Её надо пересоставить в более адекватном порядке, но для разгона попробуем воссоздать как есть, сведём выход из нескольких узлов в один Cancelled ByCust:</p>
<pre style="padding-left: 40px;">stateDiagram-v2

[*] --&gt; Made : giveInfo/startPayTimer
Made --&gt; Cancelled_NonPay : PayTimer_expired
Made --&gt; CancelledByCust : cancel
Made --&gt; Paid : payMoney 
Paid --&gt; CancelledByCust : cancel/Refund
Ticketed --&gt; CancelledByCust : cancel/ReturnTicket/Refund
Paid --&gt; Ticketed : print/Ticket
Ticketed --&gt; Used : giveTicket
Used --&gt; [*]</pre>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid011.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6265" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid011-1024x824.jpg" alt="" width="665" height="535" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid011-1024x824.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid011-300x241.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid011-768x618.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid011-660x531.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid011.jpg 1379w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<p>Важно: названия узлов должны быть представлены одним словом. Пробел между ними принудительно создает новый узел. Решение — отдельно создать <del>переменную</del> узел с условным названием и содержимым в виде слов с пробелом. Например:</p>
<pre style="padding-left: 40px;">stateDiagram-v2

CancelledByCust: Cancelled by Customer
Cancelled_NonPay: Cancelled when payTimer expired

[*] --&gt; Made : giveInfo/startPayTimer 
Made --&gt; Cancelled_NonPay : PayTimer_expired 
Made --&gt; CancelledByCust : cancel 
Made --&gt; Paid : payMoney 
Paid --&gt; CancelledByCust : cancel/Refund 
Ticketed --&gt; CancelledByCust : cancel/ReturnTicket/Refund 
Paid --&gt; Ticketed : print/Ticket 
Ticketed --&gt; Used : giveTicket Used --&gt; [*]</pre>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid014.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6269" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid014-1024x600.jpg" alt="" width="665" height="390" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid014-1024x600.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid014-300x176.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid014-768x450.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid014-1536x900.jpg 1536w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid014-660x387.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid014.jpg 1786w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<p>Раз уж название каждого узла — это его уникальный идентификатор, придется все эти ответвления в «CancelledByCustomer» сделать уникальными через нумерацию. Заодно пометим цветом happyPath и отхождения от него:</p>
<pre style="padding-left: 40px;">stateDiagram-v2

classDef happyPath font-size:1em,color:black,stroke:DarkOrange,fill:palegreen,stroke-width:1px,text-align:left;
classDef negativeScenario font-size:1em,color:black,stroke:DarkOrange,fill:IndianRed,stroke-width:1px,text-align:left;

[*] --&gt; Made:::happyPath : giveInfo/startPayTimer
Made --&gt; Cancelled_NonPay:::negativeScenario : PayTimer_expired
Made --&gt; CancelledByCustomer_1:::negativeScenario : cancel
Made --&gt; Paid:::happyPath : payMoney 
Paid --&gt; CancelledByCustomer_2:::negativeScenario : cancel/Refund
Ticketed --&gt; CancelledByCustomer_3:::negativeScenario : cancel/ReturnTicket/Refund
Paid --&gt; Ticketed:::happyPath : print/Ticket
Ticketed --&gt; Used:::happyPath : giveTicket
Used --&gt; [*]</pre>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid012.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6267" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid012-1024x783.jpg" alt="" width="665" height="508" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid012-1024x783.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid012-300x229.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid012-768x587.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid012-660x504.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid012.jpg 1463w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<p>Можно задать направление этой диаграммы по-горизонтали, но это воспринимается неудобно:</p>
<p><code>direction LR</code></p>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid013.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-6268" src="https://testitquickly.com/wp-content/uploads/2024/08/mermaid013-1024x232.jpg" alt="" width="665" height="151" srcset="https://testitquickly.com/wp-content/uploads/2024/08/mermaid013-1024x232.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid013-300x68.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid013-768x174.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid013-1536x349.jpg 1536w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid013-660x150.jpg 660w, https://testitquickly.com/wp-content/uploads/2024/08/mermaid013.jpg 1806w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a></p>
<h3>Намутить тест-кейсы по этим путепроводам</h3>
<p>Дёрнем chatGPT с задачей перемножить все эти блямбы между собой.</p>
<p>Для stateDiagram псевдоинтеллект выдал такое:</p>
<ol>
<li><strong>TC1: Complete Payment and Print Ticket</strong>
<ul>
<li><strong>Initial State:</strong> [*]</li>
<li><strong>Action:</strong> giveInfo/startPayTimer</li>
<li><strong>Result:</strong> Made</li>
<li><strong>Action:</strong> payMoney</li>
<li><strong>Result:</strong> Paid</li>
<li><strong>Action:</strong> print/Ticket</li>
<li><strong>Result:</strong> Ticketed</li>
<li><strong>Action:</strong> giveTicket</li>
<li><strong>Result:</strong> Used</li>
<li><strong>Final State:</strong> [*]</li>
</ul>
</li>
<li><strong>TC2: Complete Payment and Use Ticket</strong>
<ul>
<li><strong>Initial State:</strong> [*]</li>
<li><strong>Action:</strong> giveInfo/startPayTimer</li>
<li><strong>Result:</strong> Made</li>
<li><strong>Action:</strong> payMoney</li>
<li><strong>Result:</strong> Paid</li>
<li><strong>Action:</strong> print/Ticket</li>
<li><strong>Result:</strong> Ticketed</li>
<li><strong>Action:</strong> giveTicket</li>
<li><strong>Result:</strong> Used</li>
<li><strong>Final State:</strong> [*]</li>
</ul>
</li>
</ol>
<p>И так далее.</p>
<p>Уберем детали:</p>
<p><strong>Happy Path Test Cases</strong></p>
<ol>
<li>TC1: Complete Payment and Print Ticket</li>
<li>TC2: Complete Payment and Use Ticket</li>
</ol>
<p><strong>Negative Scenario Test Cases</strong></p>
<ol>
<li>TC3: Payment Timer Expired</li>
<li>TC4: Cancelled by Customer Before Payment</li>
<li>TC5: Cancelled by Customer After Payment</li>
<li>TC6: Cancelled by Customer After Ticket Printed</li>
</ol>
<p>Кхм… Позитивные тесты — отдельно напечатать билет и отдельно его использовать — ну-ну. Тебе же говорили, что диаграмма неадекватная и требует пересмотра?</p>
<p>А отклонения от happyPath ПИ считало норм.</p>
<p>Хорошо бы ещё навостриться прописывать основу для диаграмм, из которой chatGPT мог бы генерировать код для самих диаграмм, и тогда можно ускориться ещё сильнее.</p>
<h2>Туториалы по Mermaid</h2>
<p>Их <a href="https://mermaid.js.org/ecosystem/tutorials.html">таки есть</a>, вот два самых наглядных:</p>
<p><iframe loading="lazy" title="How to Create Mermaid Diagrams in GitLab" width="665" height="499" src="https://www.youtube.com/embed/SQ9QmuTHuSI?start=481&#038;feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>и</p>
<p><iframe loading="lazy" title="Mermaid In Markdown, Diagrams As Code: Introduction, How-to, And Demo" width="665" height="374" src="https://www.youtube.com/embed/qGsQolMh9zE?start=204&#038;feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>Файл с примерами из второго видео — <a href="https://github.com/PetterTech/DemoStuff/blob/main/Mermaid/mermaid.md">mermaid.md</a></p>
<h2>ZIM</h2>
<p>Любопытно, что в вики-редакторе Zim тоже есть модуль «Вставка диаграмм» (ему нужен GraphViz), который работает по тому же принципу — пишем словами, видим диаграмму. Редактирование диаграммы включается даблкликом по ней.</p>
<h2>Вольное последумие</h2>
<p>Диаграммы как сапёрные лопатки, отлично помогают только там, где они уместны. Нельзя сводить представление всех сложных абстракций <em>только</em> к диаграммам. Надо уметь всё объяснять и рисунками, и текстом, и видео.</p>
<p>© Джеральд Вайнберг, книга «<em>Exploring Requirements — quality before design</em>» (1989), подглава «1.4 Making Sure That Everyone Can Read the Map»:</p>
<p style="padding-left: 40px;">Proponents of each notation claim that their maps are “intuitive” and ”easy to read”. These statements are true in the same sense that Chinese is intuitive — in Beijing. Virtually any notational system becomes intuitive after someone has spent a lot of time working with it.</p>
<p>Как только диаграмма объяснила одну идею, её надо немедленно оставить в покое и не усложнять — рисуй новые.</p>
<p>Генеративные сервисы надо держать под пристальным, недоверчивым присмотром, бо оно тебе нагенерирует, лишь бы ты был хоть немного счастлив. Если в череде шагов не будет чего-то очевидного, то GPT ничем не поможет, оно будет работать только с тем, что ему передал нерадивый тестировщик.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2024/08/12/mermaid-uml-uzor-tsaranesc/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6211</post-id>	</item>
		<item>
		<title>Генератор требований</title>
		<link>https://testitquickly.com/2024/07/30/vaca-rage-la-cer/</link>
					<comments>https://testitquickly.com/2024/07/30/vaca-rage-la-cer/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Tue, 30 Jul 2024 18:17:18 +0000</pubDate>
				<category><![CDATA[Соображения]]></category>
		<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[Jira]]></category>
		<category><![CDATA[qase.io]]></category>
		<category><![CDATA[testomat.io]]></category>
		<category><![CDATA[Xray]]></category>
		<category><![CDATA[Zephyr]]></category>
		<category><![CDATA[Виктор Цой]]></category>
		<category><![CDATA[Егор Летов]]></category>
		<category><![CDATA[псевдоинтеллект]]></category>
		<category><![CDATA[Сектор Газа]]></category>
		<guid isPermaLink="false">https://testitquickly.com/?p=6220</guid>

					<description><![CDATA[qase.io выкатили обновление встроенной возможности генерировать тест-кейсы через псевдоинтеллект — AI Test Case Generator. Оно постоянно доступно только для подписчиков уровня выше Business plan, но можно пощупать это в триальном режиме на 14 дней. Но есть беда. Чтобы тесты генерировать, нужна основа — требования. Без набора требований бедняге ПИ в qase.io не от чего отталкиваться. Мдэ.… <span class="read-more"><a href="https://testitquickly.com/2024/07/30/vaca-rage-la-cer/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>qase.io выкатили обновление встроенной возможности генерировать тест-кейсы через псевдоинтеллект — AI Test Case Generator. Оно постоянно доступно только для подписчиков уровня выше Business plan, но можно пощупать это в триальном режиме на 14 дней.</p>
<p>Но есть беда. Чтобы тесты генерировать, нужна основа — требования. Без набора требований бедняге ПИ в qase.io не от чего отталкиваться. Мдэ.</p>
<p>Если кто не знает, в qase.io подразумевается, что требования надо создавать и хранить <em>в самом</em> qase.io, там для этого есть отдельный раздел. И если им пользуются аналитики и их ручные тестировщики, то, вероятно, всё норм — требования живут вместе с тестами, видно их покрытие, видно, что откуда начинается и чем заканчивается, и сколько всего надо переписывать, если затеяли обновляться. Но если в проекте нет аналитиков? Требования же надо не просто записать, а ещё постоянно обновлять, добавлять, редактировать, комментировать. И когда весь движняк разработки полностью находится в Jira/Слак, то кто будет вообще возиться с требованиями на отдельном ресурсе? Всегда проще требования (если есть) запихнуть, кагбэ, в Jira…</p>
<p>Вообще, у qase.io есть интеграция в Jira, но с ней, кхм, сложно, постоянно чувствуется, что это два отдельных ресурса. Чем-то это всё напоминает древний Zephyr на дьявольском flash — есть взаимное линкование между тестами отсюда с задачами в Jira, но и только, в глаза это всё не бросается. Решение у древнего Zephyr в конце-концов нашлось естественное адекватное — древний Zephyr был взят и убит, вместо него появился плагин, встроенный в Jira, который и наследует у Jira интерфейс, и сущности типа тест-кейсы подтягивает под рабочую задачу (как и полагается), где они явно заметны… testomat.io тоже по этому пути пошел, Xray пошел… Кто вообще отныне пойдёт НЕ через встроенную интеграцию с Jira? Только смелый qase.io, что гордо реет между молний над ревущим гневно морем и кричит в рожок победы: «Генерируйте тест-кейсы, тестировщиков — поменьше, вам же лучше будет сразу!»</p>
<p>Вряд ли в qase.io что-то поменяется, проект живет уже давно и не с одной только Jira его надо соединять, и сделать это бесшовно сразу со всеми — нереально, и когда-то это был осознанный выбор архитектуры. Ну ок.</p>
<p>А вот что в глаза бросилось — <a href="https://help.qase.io/en/articles/9653096-ai-test-case-generator">предупреждение</a> о том, что</p>
<blockquote><p>using Qase&#8217;s AI Test Case Generator will not result in your data being used to train the language model. This Beta version uses the ChatGPT API Platform for test case generation. OpenAI explicitly states that &#171;We do not train on your business data&#187;.</p></blockquote>
<p>Да, да, разумеется, да! ChatGPT именно так и работает — всё читает, всё генерирует и сразу всё забывает, он же учится с вами взаимодействовать НЕ на взаимодействии с вами! Быгыгы.</p>
<p>С другой стороны, а какие есть варианты? В тест-кейсах всегда есть sensitive data, и если ты уже выбрал сторонний сервис для управления ими, то нехай уже это всё читает ChatGPT, крестик уже снят. Вот только ему нужны требования…</p>
<p>Им следовало бы сперва придумать бредогенератор требований к проекту… Господи ты боже твой, до чего же смелая и дурная мысль! 🙂</p>
<p><iframe loading="lazy" title="Хой, Горшок, Цой, Летов-Все идет по плану(AI cover)" width="665" height="374" src="https://www.youtube.com/embed/e6jijpGuLHI?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2024/07/30/vaca-rage-la-cer/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6220</post-id>	</item>
		<item>
		<title>Voodoo people, magic people</title>
		<link>https://testitquickly.com/2024/07/18/fiecare-dintre-noi/</link>
					<comments>https://testitquickly.com/2024/07/18/fiecare-dintre-noi/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Thu, 18 Jul 2024 03:34:15 +0000</pubDate>
				<category><![CDATA[Видео]]></category>
		<category><![CDATA[Не смешно]]></category>
		<category><![CDATA[Смешно]]></category>
		<guid isPermaLink="false">https://testitquickly.com/?p=6199</guid>

					<description><![CDATA[У меня открылась странная способность определять автора тест-кейса сразу при его открытии, ещё не вчитываясь в буквы. Пока не знаю, хорошо это или нет. Кто-то шпарит чётко-последовательно, каждый шаг — отдельная задача, которую надо выполнить, в Expected result или однозначный результат, или цепочка результатов. Кто-то в первом же шаге собирает свободный собирательный образ Онегина в письме… <span class="read-more"><a href="https://testitquickly.com/2024/07/18/fiecare-dintre-noi/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>У меня открылась странная способность определять автора тест-кейса сразу при его открытии, ещё не вчитываясь в буквы. Пока не знаю, хорошо это или нет.</p>
<p>Кто-то шпарит чётко-последовательно, каждый шаг — отдельная задача, которую надо выполнить, в Expected result или однозначный результат, или цепочка результатов.</p>
<p>Кто-то в первом же шаге собирает свободный собирательный образ Онегина в письме Татьяны турецкому султану в режиме «Найди и открой такой продукт от определенного продавца, в котором есть только один языковой вариант, а потом выгрузи и загрузи таблицу грейдов по товарам, в которой будет находиться уже найденный продукт. И тут же проверь его наличие через галочку проверки наличия товара в таблице грейдов». Expected result — Всё работает нормально.</p>
<p>Кто-то упоролся по базе данных, и после каждого действия на фронте требует перепроверить результаты в БД, при этом не приводя какой-то минимальный пример sql-запроса. Он постоянно в БД, ему все очевидно.</p>
<p>Кто-то маниакально добавляет в тесты уточнения о том, почему тут надо сделать так, в Expected result иногда ничего не пишет (результат очевиден же!), а иногда выдаёт нумерованный список того, что изменилось после сделанного шага, и вообще старается всё выполнить минимальным количеством шагов.</p>
<p style="padding-left: 40px;">Это я.</p>
<p>Кто-то вместо выполнения задач рассказывает, где что находится на странице в браузере, которую он видит (точнее, видел в тот момент, когда на проекте ещё крутился старый дизайн). Откроется модальное окно — закрыть его через кнопку (Х), снова открыть, закрыть его через кнопку Esc на клавиатуре, снова открыть модальное окно, повторить всё то же самое на мобиле, повторить всё то же самое на всех языковых версиях проекта, повторить всё то же самое во всех браузерах. Expected result — ОК. Переходим к тереблению следующего модального окна на пути товара в корзину…</p>
<p>Тест-кейсы — тот же код с метрикой «<em>WTF хотел сказать автор? Why? Why? Ah, that&#8217;s why…</em>»</p>
<p><iframe loading="lazy" title="Rammstein - Spring - [HQ] Official Video" width="665" height="499" src="https://www.youtube.com/embed/D-ih3UEYFUY?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2024/07/18/fiecare-dintre-noi/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6199</post-id>	</item>
		<item>
		<title>Реликтовое излучение</title>
		<link>https://testitquickly.com/2024/07/18/am-mers-la-paris-bou/</link>
					<comments>https://testitquickly.com/2024/07/18/am-mers-la-paris-bou/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Wed, 17 Jul 2024 23:31:07 +0000</pubDate>
				<category><![CDATA[Банальное]]></category>
		<category><![CDATA[Disaster Recovery Plan]]></category>
		<category><![CDATA[Fight for the Future]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[Астрология]]></category>
		<guid isPermaLink="false">https://testitquickly.com/?p=6187</guid>

					<description><![CDATA[Ближайшая галактика, которая находится на расстоянии ~2,5 миллиона световых лет от нас, кажется нам СЕГОДНЯ такой, какой она была 2,5 миллиона лет назад, когда свет от неё начал двигаться в нашу сторону. Сегодня у этой галактики может быть вообще иное свечение, или даже самой той галактики уже может не быть. Но мы видим доисторический свет… <span class="read-more"><a href="https://testitquickly.com/2024/07/18/am-mers-la-paris-bou/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Ближайшая галактика, которая находится на расстоянии ~2,5 миллиона световых лет от нас, кажется нам СЕГОДНЯ такой, какой она была 2,5 миллиона лет назад, когда свет от неё начал двигаться в нашу сторону. Сегодня у этой галактики может быть вообще иное свечение, или даже самой той галактики уже может не быть. Но мы видим доисторический свет от объектов на небе и соотносим с ним нынешнее положение дел  (привет астрологам).</p>
<p>В принципе можно «увидеть» в космосе и тот свет, который был испущен условные 13,8 миллиарда лет назад после Большого взрыва — реликт горячего периода появления сегодняшнего мира. Этот «свет от начала времён» так и называется: реликтовое излучение.</p>
<p style="padding-left:40px;">Реликт: организм, вещь или явление, сохранившиеся как пережиток от древних эпох, от лат. relictus — оставленный.</p>
<p>Как появились тестировщики начала девяностых? Не было самой профессии, не было курсов, зарплаты были никакие. Они что, просто… зародились? Может быть, те, кто несколько эпох назад начали заниматься тестированием, что-то такое знали и сделали ставку на правильную лошадку?</p>
<p>А что такого секретного знали про будущее те, кто в начале двухтысячных начали интенсивно работать с Java? Как они поняли, что на Java будет постоянный спрос, обеспеченное будущее, постоянное повышение зарплат?</p>
<p>Какие неизвестные предсказания о будущем были у тех, кто вгрызался в когда-то смешной и всех раздражающий JavaScript, без которого сегодня уже как-то смешно воспринимать веб?</p>
<p>А ничего они не знали. Технологии появляются и исчезают, ничего не предсказуемо и не определено (привет опытным разработчикам на Pascal, Delphi, Fortran). И так бывает, что какие-то маргинальные штуки из прошлого становятся сегодня ценными, и их адепты взлетают в спросе. Начинает казаться, что они что-то знали…</p>
<p>Всегда хочется угадать, чем надо заниматься сегодня, чтобы в будущем иметь ценность. Но в этой угадайке мы ориентируемся на то, что имеет ценность сегодня, а сегодняшняя ценность — это всего лишь реликтовое излучение из прошлого.</p>
<p>Какие-то вещи можно объяснить стечением обстоятельств, внешних факторов, вроде того, что JavaScript был предназначен для работы в браузерах, а мы всё ещё пользуемся браузерами, поэтому JS нужен. Если бы к нашему времени браузеры были заменены чем-то другим, то JS стал бы лёгким отзвуком прошедшей юности.</p>
<p>И вообще не факт, что сегодня надо упарываться по %<span style="color:#339966;">любой_язык</span>%. Даже если условно сегодня за ним настоящее, вообще не факт, что за ним будущее, просто потому, что в будущем может появиться другая инфраструктура, внутри которой будет эффективнее работать что-то другое. Упарываться надо по пониманию как программировать вообще, а не на определенном языке.</p>
<p style="padding-left:40px;">Надо уметь ездить на велосипеде вообще, а не только на определенной модели.</p>
<p>Ещё есть неприятный эффект коммодитизации, который неизбежен при развитии любых технологий — чем дольше что-то развивается, тем проще это использовать. И неизбежно появляется поколение, которое умеет технологией только пользоваться, и не умеет управлять — чинить, обновлять, улучшать. И это логично, ведь чем проще что-то использовать, тем меньше нужна информация о том, почему и как это работает. Да и всё со временем усложняется…</p>
<p style="padding-left:40px;">Смартфоны наши тому примером.</p>
<p>На короткой дистанции выигрывают те, кто игнорирует «как и почему» в пользу «здесь и сейчас».</p>
<p>В долгой гонке выигрывают те, кто зачем-то, из непонятного интереса, отстают, отходят от бегущих, начинают «копать к первоисточнику» и в какой-то момент понимают, как и почему всё устроено. И зачем. Вот им открываются чит-коды, обходные пути и возможность предсказывать перспективные направления. Остальные продолжают бежать.</p>
<p>Всегда хочется быть среди вторых, но бегать приходится среди первых, где перспектив нет, где технологиями только пользуются, не понимая, как они устроены. Привет профессиональным «<em>Ну, мы использовали какой-то набор команд SQL и вызовов API, а другие команды я не знаю, у нас на проекте они были ненужными</em>», среди которых то и дело обнаруживаешь себя…</p>
<div id="attachment_6190" style="width: 675px" class="wp-caption aligncenter"><a href="https://testitquickly.com/wp-content/uploads/2024/07/Screenshot_2024-04-13_00-16-14-scaled.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-6190" class="wp-image-6190 size-large" src="https://testitquickly.com/wp-content/uploads/2024/07/Screenshot_2024-04-13_00-16-14-1024x625.jpg" alt="Движение в будущее" width="665" height="406" srcset="https://testitquickly.com/wp-content/uploads/2024/07/Screenshot_2024-04-13_00-16-14-1024x625.jpg 1024w, https://testitquickly.com/wp-content/uploads/2024/07/Screenshot_2024-04-13_00-16-14-300x183.jpg 300w, https://testitquickly.com/wp-content/uploads/2024/07/Screenshot_2024-04-13_00-16-14-768x469.jpg 768w, https://testitquickly.com/wp-content/uploads/2024/07/Screenshot_2024-04-13_00-16-14-1536x938.jpg 1536w, https://testitquickly.com/wp-content/uploads/2024/07/Screenshot_2024-04-13_00-16-14-2048x1250.jpg 2048w, https://testitquickly.com/wp-content/uploads/2024/07/Screenshot_2024-04-13_00-16-14-660x403.jpg 660w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a><p id="caption-attachment-6190" class="wp-caption-text">Движение в будущее</p></div>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2024/07/18/am-mers-la-paris-bou/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6187</post-id>	</item>
		<item>
		<title>Финальный неформат тест-кейсов</title>
		<link>https://testitquickly.com/2023/09/22/temere-de-scrietura/</link>
					<comments>https://testitquickly.com/2023/09/22/temere-de-scrietura/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Fri, 22 Sep 2023 16:44:10 +0000</pubDate>
				<category><![CDATA[Изображения]]></category>
		<category><![CDATA[Откровения]]></category>
		<guid isPermaLink="false">https://testitquickly.com/2023/09/22/temere-de-scrietura/</guid>

					<description><![CDATA[Проблема с тест-кейсами в том, что они могут быть представлены множеством способов, и все способы правильные. А мы, как каторжники, всё ищем «наилучший способ написания тест-кейсов» и настаиваем на важности единообразия. Я уже много лет не испытываю сложностей с написанием тест-кейсов, мне сложно быстро понимать новый объёмный продукт. Очень мешают иллюзии вроде «а, это мне… <span class="read-more"><a href="https://testitquickly.com/2023/09/22/temere-de-scrietura/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[
<p>Проблема с тест-кейсами в том, что они могут быть представлены множеством способов, и все способы правильные. А мы, как каторжники, всё ищем «наилучший способ написания тест-кейсов» и настаиваем на важности единообразия.</p>



<p>Я уже много лет не испытываю сложностей с написанием тест-кейсов, мне сложно быстро понимать новый объёмный продукт. Очень мешают иллюзии вроде «а, это мне знакомо…», а потом «ну кажетаг-то, мне же казалось, что оно вот так, а оно вон оно как…»</p>



<p>Тест-кейсы выглядят по-разному не по чьей-то злой воле.</p>



<p>Когда тесты условно-краткие —&nbsp;их удобно быстро считывать и выполнять, но их невозможно выполнять, если не понимаешь ни контекст, ни «как это сделать».</p>



<p>Когда они условно-подробные — их тупо неудобно быстро выполнять, и большинство опытных тестировщиков просто перестают их читать (а там что-то может быть изменено, ойёпт), но их можно предсказуемо выполнять средне-медленно, потому что есть подробная инструкция, которую придётся переписывать во множестве мест, если что-то где-то ВНЕЗАПНО поменяется… Ой.</p>



<p>Логично предположить, что если мы будем придерживаться одного ХОРОШЕГО стандарта, то все сложности исчезнут. Однако логично и то, что «стандарты» всегда тяготеют к «пусть будет много нужной и полезной информации», а это всегда в итоге формат «условно-подробнейших тест-кейсов», которые постоянно хочется «переписать попроще», но времени нет.</p>



<p>Нет нужды упарываться по исчерпывающе хорошим тест-кейсам, важнее заморачиваться продумыванием ситуаций, которые должны происходить (первый уровень осознания требований) и которые могут происходить (второй уровень), когда ПО будет работать. Если я понимаю тему, то тестов я вам накатаю бесконечно много. Если я не понимаю тему, то смысл их катать?</p>



<p>Тест-кейс —&nbsp;инструкция по созданию тестовой ситуации.</p>



<p>Иногда ситуацию можно объяснить одним предложением, и результат её очевиден. Иногда надо предварительно объяснить предусловия и не факт, что всё будет понятно. Иногда достаточно просто упомянуть, что «а ещё в базе надо проверить, что наценка на товар правильно применилась и повсюду посчиталась». Иногда надо прямо указать, куда зайти и какой запрос использовать.</p>



<p>Не нужно искать один-единый формат тест-кейсов. На одном и том же проекте надо использовать разные форматы тестов в зависимости от условий и контекста возникающих задач.</p>



<p>Общий подход — пишем тесты в виде идей. Коротко.</p>



<p>Идею можно уточнять —&nbsp;добавить несколько нужных строк. Если выглядит достаточно понятным самому себе —&nbsp;всё норм.</p>



<p>Идею можно снабжать отсылкой к подробной инструкции для выполнению отдельных шагов. Инструкции можно записывать в общие места (Confluence, Notion, тыды).</p>



<p>Какие-то тесты навсегда останутся однострочниками. Какие-то будут монстрами. Думать надо о том, чтобы они были понятными, а не стараться заранее определять, что и как из них получится. </p>


<p style="padding-left: 40px;">Знать такое заранее было бы так же смело и странно, как точно знать завтрашний курс криптовалюты в Молдове и смело призывать всех вкладывать в передовую технологию будущего из прошлого ценную международную валюту с изображением Штефана чел Маре.</p>


<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="745" height="1024" src="https://testitquickly.com/wp-content/uploads/2023/09/84ad78e9da159c532ee3099293660e8f-745x1024.png" alt="" class="wp-image-6125" srcset="https://testitquickly.com/wp-content/uploads/2023/09/84ad78e9da159c532ee3099293660e8f-745x1024.png 745w, https://testitquickly.com/wp-content/uploads/2023/09/84ad78e9da159c532ee3099293660e8f-218x300.png 218w, https://testitquickly.com/wp-content/uploads/2023/09/84ad78e9da159c532ee3099293660e8f-768x1055.png 768w, https://testitquickly.com/wp-content/uploads/2023/09/84ad78e9da159c532ee3099293660e8f-660x907.png 660w, https://testitquickly.com/wp-content/uploads/2023/09/84ad78e9da159c532ee3099293660e8f.png 786w" sizes="auto, (max-width: 745px) 100vw, 745px" /><figcaption class="wp-element-caption">Каторжанин тест-кейсописатель</figcaption></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2023/09/22/temere-de-scrietura/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6126</post-id>	</item>
	</channel>
</rss>
