<?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>Sat, 03 Oct 2026 15:12:09 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</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/10/03/cauta-ti-mentorul-singurel/</link>
					<comments>https://testitquickly.com/2026/10/03/cauta-ti-mentorul-singurel/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Fri, 02 Oct 2026 22:03:25 +0000</pubDate>
				<category><![CDATA[Видео]]></category>
		<category><![CDATA[Изображения]]></category>
		<category><![CDATA[Литература]]></category>
		<category><![CDATA[Переводы]]></category>
		<category><![CDATA[Рассуждения]]></category>
		<category><![CDATA[Соображения]]></category>
		<category><![CDATA[Фотографии]]></category>
		<category><![CDATA[George Murnu]]></category>
		<category><![CDATA[Александр Галич]]></category>
		<category><![CDATA[Гнедич]]></category>
		<category><![CDATA[Жуковский]]></category>
		<category><![CDATA[Илиада]]></category>
		<category><![CDATA[Ментор]]></category>
		<category><![CDATA[Одиссея]]></category>
		<category><![CDATA[Осип Мандельштам]]></category>
		<category><![CDATA[Спарта]]></category>
		<category><![CDATA[Стариковский]]></category>
		<guid isPermaLink="false">https://testitquickly.com/?p=37081</guid>

					<description><![CDATA[Жизнь продолжается. Мы умираем от невозможности принять всю ту бубуйню, що тут и там коїться, а новые тестировщики постоянно откуда-то рождаются и ходят по кругу с удивительно одинаковым вопросом: Где найти ментора? Ответов сразу несколько: 1) (правильный) Подходишь к живому тестировщику, устанавливаешь с ним социальную связь и спрашиваешь о работе — делаю то и это,… <span class="read-more"><a href="https://testitquickly.com/2026/10/03/cauta-ti-mentorul-singurel/">Читать далее: О менторах, о дружбанах, о древнегреках &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Жизнь продолжается. Мы умираем от невозможности принять всю ту бубуйню, що тут и там коїться, а новые тестировщики постоянно откуда-то рождаются и ходят по кругу с удивительно одинаковым вопросом:</p>
<h2>Где найти ментора?</h2>
<p>Ответов сразу несколько:</p>
<p>1) <em>(правильный)</em> Подходишь к живому тестировщику, устанавливаешь с ним социальную связь и спрашиваешь о работе — делаю то и это, должно получаться так, а не получается. Можешь помочь, подсказать, объяснить? Повторять в цикле с разными живыми тестировщиками.</p>
<p>2) <em>(социально-одобряемый)</em> Идёшь в Moldova QA Community, выпаливаешь самого адекватного, устанавливаешь с ним социальную связь и спрашиваешь о работе (см. выше).</p>
<p>3) <em>(псевдо-адекватный)</em> Идёшь в любое коммьюнити тестировщиков и спрашиваешь, где тут бесплатно раздают бесплатных менторов.</p>
<p>Коммьюнити с менторами у нас аж два:</p>
<ul>
<li><a href="https://t.me/+PyhNHuMlwcE3ZjQy">Moldova QA Community</a></li>
</ul>
<p>На первый взгляд это тихо-мирно существующий tg-канал, преисполненный патриархальной тишины всех провинциальных городов. Но внутри — движуха, беготня, надежды, вылазки на природу и подкоммьюнити, в котором периодически рассматриваются заявки на менторство для тестировщиков. Участие в нём добровольное, с кем посчитаю интересным поговорить — с тем и свяжусь, дальше посмотрим. Ну или не я, а кто-то ещё, чего вы ко мне привязались-то?!</p>
<ul>
<li><a href="https://www.facebook.com/TechWomenMoldova">TechWomen Moldova</a></li>
</ul>
<p>Глобальное коммьюнити про IT в Молдове. Это отдельная экосистема, в которой раз в год организовывают масштабную программу менторинга по разным направлениям, в том числе и для QA. Тоже абсолютно добровольное участие для всех сторон, но уже с вайбом большого проекта с семью директорами с восемью печатями — есть центральное управление, условия участия, сбор фидбэка с оценками, торжественно-парадная ритуальная церемония открытия и закрытия программы. В этом году я к этой программе подконнектился по линии QA на русском языке (на родном мне про тестирование говорить сложновато).</p>
<div id="attachment_37082" style="width: 675px" class="wp-caption aligncenter"><a href="https://testitquickly.com/wp-content/uploads/2026/10/TechWomenMoldova2026.jpg"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-37082" class="size-large wp-image-37082" src="https://testitquickly.com/wp-content/uploads/2026/10/TechWomenMoldova2026-684x1024.jpg" alt="Торжественно-парадная фото-пикча меня на фоне меня же с церемонии открытия программы менторинга 2026-го в TechWomenMoldova" width="665" height="996" srcset="https://testitquickly.com/wp-content/uploads/2026/10/TechWomenMoldova2026-684x1024.jpg 684w, https://testitquickly.com/wp-content/uploads/2026/10/TechWomenMoldova2026-200x300.jpg 200w, https://testitquickly.com/wp-content/uploads/2026/10/TechWomenMoldova2026-768x1151.jpg 768w, https://testitquickly.com/wp-content/uploads/2026/10/TechWomenMoldova2026-1025x1536.jpg 1025w, https://testitquickly.com/wp-content/uploads/2026/10/TechWomenMoldova2026-660x989.jpg 660w, https://testitquickly.com/wp-content/uploads/2026/10/TechWomenMoldova2026.jpg 1367w" sizes="(max-width: 665px) 100vw, 665px" /></a><p id="caption-attachment-37082" class="wp-caption-text">Торжественно-парадная фото-пикча автора на фоне автора же, подвисшего на карусельках на Ботанике, с церемонии открытия программы менторинга 2026-го в TechWomenMoldova</p></div>
<p>Программа “2026” уже завершилась, но всё ещё есть о чём подумать, например о том, что менторы будут существовать даже в нашем будущем, которое мне представляется как сплошной сериал Star Trek в бандитско-неустроенной вселенной Star Wars, где отважные старшип-капитаны и их грамотные намбер-уаны на протяжении всех серий преисполнены дипломатии и сочувствия ко всем живым <del>тестировщикам</del> существам. Короче, всем смотреть. Вон как красиво там раскрывается тема менторинга джунов (<em><a href="https://www.youtube.com/watch?v=zWTben_Rs3Y">Shut up Wesley!</a> ©</em>)!</p>
<p>Пока все ушли смотреть бесконечный сериал про бесконечное звёздное небо внутри нас и леденящую душу действительность вокруг нас, я начну неспешно, многосерийно говорить о том, что такое «ментор» и откуда это всё взялось.</p>
<p><strong>Важный дисклэймер</strong> в эти дурацкие времена: весь текст написан вручную с применением типографики, которую я разумею как правильную (в KDE она включается на раз-два и очень удобно используется), с длинными тире и французскими кавычками-ёлочками. Текста много, потому что я его писал не в один присест — в прекрасном десктопном вики-редакторе Zim (см. скриншот <a href="https://testitquickly.com/wp-content/uploads/2026/10/zim-original-text.png">оригинала</a>), по своему усмотрению усмиряя пухнущие и расползающиеся абзацы. А из-за того, что в наборе таки были орфо или даже стилевые ошибки, мне приходится по мере их выявления там и сям обновлять уже опубликованный текст. Понять и пrостить.</p>
<h2>Кто такой «ментор»</h2>
<p>Начнём ооочень издалека, чтобы прояснить лор* и бэкграунд** нашей темы.</p>
<p style="padding-left: 40px;">* Лор (от англ. lore) — история, устройство и внутренние правила вымышленного, как правило, игрового мира. Он объясняет персонажей и предисторию событий, в которые игрок начнёт погружаться, иногда поверхностно, иногда очень детально, от происхождения сторон до скрытых связей и событий, которые могут быть неочевидными, но важными.</p>
<p style="padding-left: 40px;">** Бэкграунд — background же!</p>
<p>Может показаться, что на страницах всемирной истории греки больше всего преуспели в насаждении своей национальной культуры окружающим их народам, в постоянной войне «все против всех» и в наименовании друг друга экзотичными именами. На самом деле эти вымершие парни прочно сидят в современной культуре всей Европы, и хорошо бы понимать их первоисточник.</p>
<h3>Про названия</h3>
<p>Не все знают, что называть греков греками некорректно. Они изначально не были единым народом, это был народный сборник племён и народов, разбросанный по островам, и все называли себя кто во что горазд — данайцы (иногда данаи), аригвяне, ионийцы, дорийцы, эолийцы, грайки, локры, ахейцы…</p>
<p>Некоторое время греки жили даже на территории современного Севастополя в городе с изысканным названием Херсонес Таврический (не путать с более современным украинским Херсоном), но местные их называли то херсонесцами, то херценосцами, и греки ушли оттуда ещё во времена поздней античности в IV–V веках нашей эры.</p>
<p>В русской литературе древнегреков издревле привыкли называть ахейцами. Например:</p>
<p style="padding-left: 40px;">…Куда плывете вы? Когда бы не Елена,<br />
Что Троя вам одна, ахейские мужи?</p>
<p>Или</p>
<p style="padding-left: 40px;">Смотрите —<br />
Лечу, словно в сказке,<br />
[…]<br />
И в край незапамятный тот,<br />
Где снова ахейские старцы<br />
Ладьи снаряжают в поход.</p>
<p style="padding-left: 40px;">Чужое и глупое горе<br />
Велит им на Трою грести.<br />
А мне — за Эгейское море,<br />
А мне еще дальше расти!</p>
<p>А ещё в древности в принципе не было единого греческого национального государства. Было слово Хелла́с (Ἑλλάς) — обозначение греческого мира вообще, которое со временем превратилось в Элла́с. Местные называли себя, соответственно, э́ллины (ударение смещено на «э» по правилам их языка) с уточнениями, мол, здравствуйте, я эллин-ахеец, кофе будете? А я эллин-данаец, здравствуйте-калимерствуйте, кофе мы ещё не изобрели, поэтому налейте мне вина! А, точно, и овечьей брынзы возьмите… Овечьей, из овечьего молока, иногда с добавлением козьего, то есть, фета? Да, фета… А виноград будет? А по наглой морде? А священная ксени́я? Ах, да…</p>
<p style="padding-left: 40px;">Не морщимся, чуть позже этот псевдодиалог станет чуть более, чем полностью понятным.</p>
<p>Позже они переназвали свою страну Элла́да согласно уточнённым нормам своего осовремененного языка. Слова «грек» и «Греция» они и сегодня не признают и употребляют только в общении с глупыми иностранцами, деньгиприносящими.</p>
<h3>«Илиада»</h3>
<p>Можно подумать, что это искаженное «Эллада», но нет.</p>
<p>Много веков назад на побережье Эгейского моря на полуострове Троада (сегодня он называется Бига и принадлежит Турции) некий Ил, сын некоего Троса, основал новый город. Город он назвал имени самого себя, конечно же — И́лион (в оригинале Ἴλιον, звучит ближе к Ийон), а местность назвал по имени своего незабываемого папы Троса — Тро́я.</p>
<p>Столицу полуострова Троада древние греки называли то как полагается, Илион, то упрощённо Троя, потому что на Троаде же, и в те времена города иногда были одновременно и государствами, и когда один говорил «Троя», миллионы понимали, что имеется ввиду город-государство Илион с полуострова Троада.</p>
<p style="padding-left: 40px;">Например, мы сегодня подразумеваем, что спартанцы жили в государстве с названием Спарта. На самом деле они жили в местности Лакония, на территории которой забубенили своё государство Лакедемон, и на территории этого государства они понастроили городов, главным из которых был город-государство Спарта. То есть, все спартанцы — лакедемоняне, но далеко не все лакедемоняне, жители Лаконии — спартанцы, так-то.</p>
<p style="padding-left: 40px;">Ну и да, термин «лаконичность» — манера говорит немногословно — происходит от манеры древних жителей Лаконии говорить кратко и по делу.</p>
<p>И как-то случилась в этом тройском царстве-NOT-государстве занятная история. Летним <a href="https://www.youtube.com/watch?v=_uEnXsU6jq4">тёплым вечерком</a> XII-го века до н. э. некий Парис, сын Приама, тогдашнего царя Трои, припёрся в гости к Менелаю, царю Спарты. Да-да-да, та самая THIS IS SPARTAAAA!</p>
<p>Менелаич принял царевича Трои радушно, по-человечески, или как говорили греки, «cu un paharel de jin și mămăliguță proaspătă», но тут юный мистер Пэрис Приамович увидел менелаеву жену с редким именем Елена… Увидел да не развидел, потому что там было на что посмотреть, в наше время она считалась бы победительницей конкурса «мисс <del>tech</del> Вселенная», всем встать, тётя-бомбуэ! Ну и захотел он Елене, эээ, подарить всего себя.</p>
<p>Елена, конечно, пошла в отказ, мол, женатая же я, не надо мне таких подарочков, но богиня Афродита мимо пробегала и насильно влюбила Елену в Париса. Елена разумом всё понимает, но внутренней Афродите не перечит и решительно прихватив заметную часть сокровища мужа (воровство в большом масштабе, да) а также двух молчаливых рабынь, чтобы сундуки тащили, сваливает с Парисом в Трою. Дома остались разгром, её девятилетняя дочь Гермиона и сын Никострат (с неопределенным количество лет; возможно, он даже ещё и не родился к тому моменту). Ну не таскать же детей за море в компании «нового папы»…</p>
<p>Менелай за утренним <del>кофе</del> виноградном зелье узнаёт об этом круизе, офигевает, и как истинный жерарбатлеровский спартанец хочет кое-что кое-кому кое-как отрубить. Дважды. И деньги верните, волки позорные! Но волки позорные уже резво плывут в Трою к батьке Приаму, который начинает грызть ногти на ногах, думая о последствиях, о которых не подумал его шкет и озорник Парис.</p>
<p>Менелай таки сгонял в Трою с досудебным заявлением, но там ему показали МПХ и на дверь. Не стерпел Менелай, не стерпел, кинул клич среди вооруженной братвы и как всё заверте…</p>
<p>Древние греки, которых мы не должны называть греками, на раз-два собираются очень <a href="https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3_%D0%BA%D0%BE%D1%80%D0%B0%D0%B1%D0%BB%D0%B5%D0%B9">большой армадой</a>, прут толпой в Трою, устраивают там осаду и десять лет ежедневно, как на работу, ходят к ее воротам, мол, открывайте! А троянцы им в ответ — неееееет… Туда-сюда по локации шастают олимпийские боги, которые в те времена постоянно тусили среди землян и местами творили чудеса, чаще — мерзости.</p>
<p>Надо понимать, что древние греки воспринимали мироздание не так, как современные <del>древние</del> греки. В их мире постоянно присутствуют множественные древнегреческие боги, которые так-то жили на неприступной горе Олимп или в бесконечных морских пучинах, но постоянно являлись в мир и сильно влияли на всё, что в мире происходило.</p>
<p>Боги эти были не только бессмертными и мудрыми, но и очень стервозными мудаками, потому что были они беспредельно всемогущи и развращены бесконечной властью. Они могли принять облик любого, буквально любого древнего грека и действовать от его имени. Или могли одарить человека чем-то вроде мудрости или богатства. Или превратить в лягушку.</p>
<p style="padding-left: 40px;">Например, один славный древнегрек Актео́н увидел, как плещется в проточной воде <a href="https://ru.wikipedia.org/wiki/%D0%90%D1%80%D1%82%D0%B5%D0%BC%D0%B8%D0%B4%D0%B0">Артемида</a>, вечно юная богиня Луны, охоты и женского целомудрия, по совместительству покровительница всего живого на Земле, дающая счастье в браке и помощь при родах, а также сестра Аполлона, который был олицетворением Солнца. Артемида обозлилась на глазастого Актеона и нет, не выцарапала ему глаза, а превратила его в оленя. И кто же знал, что у Актеона есть аж <a href="https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%B1%D0%B0%D0%BA%D0%B8_%D0%90%D0%BA%D1%82%D0%B5%D0%BE%D0%BD%D0%B0">92 собаки</a>, которые не унюхали своего хозяина за «оленьими» глазами, обгавкали его разными обидными древнегреческими словами и разорвали его на 92 клочка. Не становитесь оленями, мужики!</p>
<p style="padding-left: 40px;">А ещё боги могли кого угодно просто взять и оплодотворить, отчего бедные греки то и дело рожали полубогов, которые наследовали от своих разнузданных предков только часть божественных возможностей (ну, типа как герои комиксов Marvel), но и от этого им тоже знатно срывало башню и они начинали жить да озорничать в меру своих ополовиненных боговских возможностей.</p>
<p>Наконец, отсидевшие десять лет под стенами Илиона греки поговорили с богами, протрезвели, трезво оценили тактическо-стратегическую обстановку, прекратили неэффективную драчку у неприступных ворот и сделали эффектный ход в Трою деревянным конём. На боку коня, чтобы троянцы не заподозрили в троянском коне пресловутого троянского коня, было написано: «<em>Этот дар приносят Афине Воительнице уходящие данайцы*</em>», а то, что внутри спрятались хитрые греческие воины — не написали. Троянцы написанное на <del>заборе</del> коне прочитали, прочитанному нотариально поверили, заткнули рты возражавшим, затащили эту деревянную ерунду в город, качественно набухались по случаю победы и всё разверте…</p>
<p style="padding-left: 40px;">* Помним, что данайцы — одно из греческих племён, которых, как мы знаем, нельзя называть греками. Но древние римляне называли всех греков обобщающе «данайцы», отсюда и стихотворное «<a href="https://ru.wikipedia.org/wiki/%D0%91%D0%BE%D0%B9%D1%82%D0%B5%D1%81%D1%8C_%D0%B4%D0%B0%D0%BD%D0%B0%D0%B9%D1%86%D0%B5%D0%B2,_%D0%B4%D0%B0%D1%80%D1%8B_%D0%BF%D1%80%D0%B8%D0%BD%D0%BE%D1%81%D1%8F%D1%89%D0%B8%D1%85">Timeo Danaos</a> et dona ferentes».</p>
<p>Они же не знали, что в коне сидели хитрые древние греки (Менелай, Одиссей, Диомед и др). Они ночью выползли из коня с мечами наголо ну и end of story, всем секир-башка. Усталые, но довольные греки вернулись домой с богатой добычей, а усталые и недовольные жители Трои медленно умирали на развалинах империи от злости на свою же глупость. Руины Трои хорошенько поросли травой забвения и были обнаружены только в конце 1860-х годов настырным археологом Генрихом Шлиманом (тот ещё шлемазл!).</p>
<p>А ведь всё могло бы быть иначе. Греческие ахейцы могли бы и не рваться в Трою, мол, Менелаич, ну сбежала твоя жинка — та найди себе новую, ты же царь Спарты, ёпта. Да и нужна тебе новая жена? Было бы у нас столько рабынь, сколько у тебя, мы, может, и не женились бы…</p>
<p>Или могли бы поехать, но лососнуть крепкого троянского тунца и вернуться домой ни с чем. End of story, пренебречь, все танцуем задорный танец здорового рукомашества и дрыгоножества</p>
<p><iframe title="Zorba The Greek Dance - The Greek Orchestra Emmetron Music   HD" width="665" height="374" src="https://www.youtube.com/embed/kG12C1oX5Eo?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>Со временем все герои всей истории последовательно умерли: кто-то от старости, кто-то случайно, того же Ахиллеса застрелили (стрелами), Парис был выпилен <em>очень</em> ядовитой древнегреческой стрелой в ходе рутинных военных действий при осаде города-государства, а Елена Прекрасная — кхм…</p>
<p style="padding-left: 40px;">А Елена Прекрасная после смерти Париса быстро переоформила документы и стала женой другого царевича, парисового брата Деифоба. А когда Троя пала, Менелай внутрь города зашёл, этого Деифоба нашёл и зарезал, после чего мрачно поехал домой с «любимой» женой. В пути их помотало так круто, что домой они доплыли только через восемь лет, после чего Менелай чинно пожил да и помер, раздав свою душу многочисленным олимпийским богам.</p>
<p style="padding-left: 40px;">Тут же всё ещё прекрасная, но уже вдова Елена была выпнута из дворца и вообще из Спарты своим же сыном Никостратом «за неподобающее поведение лица, облечённого высшей административной властью» (ах вы хочете беспоследственно воровать мужнины драгоценности и ездить по заграничным троянским курортам!?; так что ехайте вы, мамаша, куды завгодно).</p>
<p style="padding-left: 40px;">Ну и бедная вдова послала сообщение на ближайший остров Родос к своей подруге-королевне Поликсо, мол, давай я приеду, посидим-поболтаем, как две равные царствующие вдовушки, я о Трое расскажу, фотки фресок покажу.</p>
<p style="padding-left: 40px;">SMS на весь экран: «<em>Приезжай )))))!!!11!!!11!…</em>»</p>
<p style="padding-left: 40px;">Елена приехала, но не учла, что подруга-Поликсо стала вдовой потому, что муж ейный (Тлеполем) был убит под стенами той самой Трои, и безутешная вдова НЕ забыла, из-за кого вся эта илионско-троянская история началась. Пока прекрасная гостья принимала душ после долгой дороги, хозяйка Родоса велела своим служанкам достать «нашу прекрасную гостью» из ванной и as is, с голой Жэ, повесить на любом дереве. Было исполнено.</p>
<p style="padding-left: 40px;">Странно, что не утопили, ведь логистически это было намного проще сделать. Но не нам судить о милых женских капризах в деле исламизации эпических персонажей всемирной истории.</p>
<p>Война закончилась, все переключились на другие войны (в те времена мирных лет было крайне мало) и позабыли про всю эту Трою, но 2825 лет назад, уже в VIII-м веке до нашей эры, через 400 лет после всей этой истории, в Элладе возник слепой поэт Гомер, который сделал по данной теме исторический реферат в стихах — без рифм, зато особым устаревшим дактило-хореическим размером, который называют гекзаметром. И назвал он эту эпическую историю «Илиада» — по первозданному названию упомянутого города-государства.</p>
<p>По факту оказалось, что Гомер создал первую в истории мировой литературы и культуры трагедию, так-то. Да ещё на документальном материале. До него многие так делали, да не очень удачно. После него многие пытались повторить его подвиг, но увы, не осилили, и вся эта культура трагических возвышенных песнопений, гм, канула в Лету.</p>
<p>А мы, мировая культура (или надо говорить мы, мировые культуристы?) получили из всей этой гомеровской истории меметично-известные имена героев: <em>Ахиллес</em> (благородный дон, поражённый в пятку), <em>Одиссей</em> (благородный дон, который долго не хотел возвращаться домой, а когда вернулся — убил всех гостей в своём дворце), <em>Аякс</em> (их, как закарпатских деревень, сразу двое — Великий и Малый), <em>Гекто-о-о-о-ор, Лаокоон</em> (под видом <a href="https://ru.wikipedia.org/wiki/%D0%9B%D0%B0%D0%BE%D0%BA%D0%BE%D0%BE%D0%BD_%D0%B8_%D0%B5%D0%B3%D0%BE_%D1%81%D1%8B%D0%BD%D0%BE%D0%B2%D1%8C%D1%8F">статуи голого мужика</a> с сыновьями и змеёй; походу, его запечатлели в процессе яростного развода) и прорицательница <em>Кассандра</em> (к слову, сестра Париса), которая проницательно предвидела, что данайский конь — это бэмц, но не предвидела, что ей грозит за это прорицание. Памятники ей не ставили, но один нерукотворный сам Высоцкий ей своими руками <a href="https://www.youtube.com/watch?v=2yoNofFYkk4">сотворил</a>.</p>
<p>Ок, бро, это прохладная история, а причём здесь ментор? Пока что ни при чём, разве что есть любопытное совпадение — In Real Life в IV веке до н. э. одного из правителей той самой Трои звали Ментор! То есть, Ментор — это просто имя человеческое, вроде Владислав или Ярослав или Славослав… Во как!</p>
<h3>«Одиссея»</h3>
<p>Гомера все так хвалили за «Илиаду», что он забыл остановиться и выкатил в прод вторую стиховорную поэму на ту же тему — «Одиссе́я».</p>
<p>Помним, что среди участников троянского сражения и сидельцев внутри троянского коня был такой товарищ Одиссей — тоже очень благородный дон, итакиец, царь острова-государства <a href="https://ru.wikipedia.org/wiki/%D0%98%D1%82%D0%B0%D0%BA%D0%B0">Итака</a> (всё ещё открыт для посещения).</p>
<p style="padding-left: 40px;">В поздней латинской интерпретации Одиссея упёрто называют Улисс (Ulysses).</p>
<p>Как-то Одиссей припёрся к Алкиною, царю феаков, мореплавателей со сказочно быстроходными кораблями. Мужики быстро соорудили большой стол, за которым Одиссей громко рассказывал о своих приключениях после возвращения с троянской войны. А Гомер словно рядом сидел и всё слепо записал…</p>
<p>А дело было так. После одоления/поражения Трои все разъехались по домам. Но, например, Одиссей подзадержался в пути аж на десять лет — там то одно, то другое… Одиссея все эти десять лет на Итаке ждут его верная жена Пенело́па, верный сын Теле́мах, верный пёс А́ргус и неверные соседи, которые хотят зохавать себе всю Итаку и жену и собаку, раз уж хозяина нет дома. Они толпой тусят в доме Одиссея, их всех бесплатно кормят жители Итаки, и двенадцать рабынь Одиссея уже стали их любовницами, кагбэ, успех пришёл к пацанам.</p>
<p>Но тут на сцену выскакивает взрослеющий сын Одиссея Теле́мах.</p>
<p style="padding-left: 40px;">В оригинале говорят Тэле́макхос, там «xэ» надо произносить манерно, как в «LaTeX». И ударение, как видим, на «е». Но я чаще слышал ударение на «а». Ну, мы Кема Кейнера называем Сэмом Канером и ничо, живы все.</p>
<p style="padding-left: 40px;">Как-то получилось, что чем ближе к нам, тем чаще Тэле́маха начали называть Телема́х, и ничего с этим уже не поделать.</p>
<p>Телемах очень рад, что его не назвали сдуру Телевизором, но не рад, что своего героического папку он не видел аж со своего младенчества, а уже пошел двадцатый год (десять лет он провёл на войне, и уже десять лет как должен был вернуться, но он хз где, ой-вэй). Телефонов нет, новостей нет, дом оккупирован беспардонными гостями, и пацан решает поездить по районам и поспрашивать новостей про батю, мало ли.</p>
<p>В те времена дети не боялись шариться до поздней ночи по округе, потому что каждый древнегреческий пацан знал названия минимум 300 звезд на небе и носил с собой острый ножик, из-за чего считалось, что юный древнегрек в принципе не может заблудиться. Но выходить за пределы своего района было опасно — у всех есть ножи, и всем нужны рабы… Мы же помним, что в Древней Греции не только придумали демократию, но и постоянно поддерживали рабовладельческий строй.</p>
<p style="padding-left: 40px;">Собственно, Одиссей тоже был рабовладельцем и ничо, и норм.</p>
<p>А в этом строю будь ты хоть Телемах, хоть сам Максимус Ундецимус Меридианус Прайм, командующий северными армиями, генерал испанских легионов, верный слуга истинного Императора, отец убитого сына, муж убитой жены, сосед убитого соседа, нетленный автор постов и комментариев, но если тебя ВНЕЗАПНО стукают по башке каменюкой, связывают и на ближайшем рынке продают в рабство, то увы тебе и всем твоим титулам… А ещё в их мире не было паспортов, полиции и конституционных прав (потому что и самой конституации не было). А ещё в их мире постоянно шастают олимпийские боги, отчего ЛЮБОЙ человек на твоём на жизненном пути мог оказаться богом…</p>
<p>В современности это всё воспринимается иначе. Сегодня нам сложно представить ситуацию, когда ты вышел за хлебом, а оказался в плену злых толстомордых товарищей в военной униформе без опознавательных знаков (что немыслимо для вояк, кои очень любят носить на себе надписи и эмблемы), которые грубо пихают тебя в автобус, держат в подземелье в качестве раба и требуют вместо них поехать на войну и поумирать там во славу чего-то непонятного… Мы были бы в ахействе от таких раскладов, а древним ахейцам такое как раз было нормой.</p>
<p>Некоторые наши современники, пересмотревшись фильмографии режиссёра Нолана, уже знают о том, что в Древней Греции существовал ранее упомянутый ксени́я (ξενία) — закон/обычай гостеприимства, который придумал Зевс:</p>
<ul>
<li>хозяин обязан принять путника, накормить и предоставить ему ночлег;</li>
<li>гостя нельзя оскорблять или причинять ему вред;</li>
<li>гость обязан уважать хозяина и не злоупотреблять его гостеприимством;</li>
<li>между сторонами устанавливались долговременные взаимные обязательства.</li>
</ul>
<p>В случае проделок Париса с Еленой нарушение ксении особенно вопиюще: эти двое не просто грубо обошлись с Менелаем, а нарушили священный порядок гостеприимства, который установил сам Зевс. Так-то.</p>
<p style="padding-left: 40px;">И да, от этого обычая происходят женское имя Ксе́ния (др.-греч. ξενία «гостеприимство»). Сегодня не каждая Ксю знает, что носит имя, которое придумал Зевс, разве что ударение сместилось…</p>
<p>И кажется нашим современникам в прохладных кинозалах, что в те прекрасно-пасторальные времена эта законодательная ксени́я пронизывала всю тогдашнюю доисторическую цивилизацию — незнакомого путника прими, накорми, кров дай, вина дай, бабу дай (рабыни же!), и только на третий день уже спрашивай его имя, откуда пришел и куда идёт, ибо в каждом страннике может скрываться бог! Некоторые наши современники даже истово веруют в то, что это, мол, была не просто вежливость, это была <em>инфраструктура</em> мира без гостиниц, посольств и банковских карточек; а сам Нолан называет этот принцип «клеем, который держал всё общество». А ещё эту мудрую практику мироустройства использовали древние римляне, древние евреи, древние шумеры, древние молдаване и прочие древние древляне.</p>
<p>Ну да, ну да… Священное гостеприимство от людей, у которых есть рабы, и которым всегда нужны новые рабы.</p>
<p style="padding-left: 40px;">И лёг спать усталый условный Максимус Ундецимус Меридианус Прайм, командующий северными армиями, генерал испанских легионов, ублаженный ласковыми рабынями и хмельными винами, и проснулся связанным и с комком (чужих) носков во рту по пути к ближайшей агоре на продажу… Ну и что? Ну и всё. Надо было успеть первым зарезать гостеприимных хозяев. End of story.</p>
<p>В общем, даже несмотря на все эти ваши ксении, шастать по дорогам общего пользования в те времена боялись и дети, и взрослые. Сопроводить юного царевича в этом ненужном, но важном путешествии не побоялся некий Ментор, пожилой друг и советник Одиссея, которому Одиссей когда-то буквально нотариально поручил присматривать за подрастающим Телемахом во время своего слегка, гм, затянувшегося отсутствия.</p>
<p style="padding-left: 40px;">Не на усмотрение своей жены оставлять ребенка, да? Вам рассказать, какое отношение к женщинам доминировало среди постоянно машущих мечами рабовладельцев?</p>
<p>Ааааааа, скажем мы, так вот почему ментор называется ментором! Он сопровождает юного Телемаха в путешествии и даёт ему мудрые советы…</p>
<p style="text-align: center;"><span style="color: #ff0000;" data-darkreader-inline-color="">Нет.</span></p>
<p>Смотрим дальше. Тут Телемахус и Ментор тыкают друг друга палкой по пальцам ног и мужественно терпят все невзгоды будущего путешествия.</p>
<div id="attachment_37083" style="width: 426px" class="wp-caption aligncenter"><a href="https://testitquickly.com/wp-content/uploads/2026/10/Telemachus_and_Mentor.jpg"><img decoding="async" aria-describedby="caption-attachment-37083" class="size-full wp-image-37083" src="https://testitquickly.com/wp-content/uploads/2026/10/Telemachus_and_Mentor.jpg" alt="" width="416" height="500" srcset="https://testitquickly.com/wp-content/uploads/2026/10/Telemachus_and_Mentor.jpg 416w, https://testitquickly.com/wp-content/uploads/2026/10/Telemachus_and_Mentor-250x300.jpg 250w" sizes="(max-width: 416px) 100vw, 416px" /></a><p id="caption-attachment-37083" class="wp-caption-text">Посмотрели?</p></div>
<p>В какой-то момент во время этого путешествия облик Ментора незаметно принимает <a href="https://ru.wikipedia.org/wiki/%D0%90%D1%84%D0%B8%D0%BD%D0%B0">Афина</a> — богиня мудрости, знаний, искусств и ремёсел, наук и мастерства, ума, сноровки, изобретательности, военной стратегии и тактики, которая заводит с ничего не подозревающим Телемахом прелюбопытные разговоры, в ходе которых мы понимаем, что пацан был вообще не дурак, мог сперва подумать/поразмыслить, и только после действовать.</p>
<p>Прямая цитата:</p>
<p style="padding-left: 40px;">«Но, – отвечал рассудительный<br />
сын Одиссеев, —<br />
Как подойти мне?<br />
Какое скажу я приветствие, Ментор?<br />
Мало ещё в разговорах разумных<br />
с людьми я искусен;<br />
Также не знаю, прилично ли младшим<br />
расспрашивать старших?»</p>
<p style="padding-left: 40px;">Дочь светлоокая Зевса Афина ему отвечала:<br />
«Многое сам, Телемах, ты своим<br />
угадаешь рассудком;<br />
Многое демон откроет<br />
тебе благосклонный…»</p>
<p>Ааааааа, снова скажем мы, так вот почему ментор называется ментором! Это сама богиня мудрости сопровождает юного Телемаха в путешествии и даёт ему мудрые советы…</p>
<p>Это очень логичный вывод, но снова</p>
<p style="text-align: center;"><span style="color: #ff0000;" data-darkreader-inline-color="">Нет!</span></p>
<p style="text-align: left;">Смотрим ещё дальше.</p>
<p>Ментор в этой истории Гомера мудростью не блистал. Афина блистала, а Ментор — ну, просто взрослый, знатный человек, друг Одиссея и доверенное лицо, которому Одиссей поручает присматривать за домом (не справился) и Телемахом (почти справился). Никак не учитель, наставник или там, просветленный мудрец, просто сопровождал, ксению показывал. Да и не было ему нужды заниматься менторированием, для этого использовались другие люди и понятия — например, были люди с названием παιδαγωγός (paidagōgós). Как правило, педагогами называли рабов, которые должны были довести юного господина до школы и обратно, чтобы не прогуливал, ну и заодно посоветовать что-нибудь здравое, если будет необходимость, например, как приложить подорожник, если ушибся или что нельзя сосать сосульки. Ну или можно, но чтобы никто не видел.</p>
<p>А ещё у эллинов было слово διδάσκαλος (didáskalos) — буквально «Учитель», но надо учесть, что к нам это слово пришло из уже поздних библейских текстов, в которых так называли, например, самого Джызус Крайста. То есть, это не профессия, а призвание человека, который олицетворяет какую-то доктрину и «ведёт за собой» слушателей своих, аки пастырь овец.</p>
<p style="padding-left: 40px;">В Румынии это древнее слово превратилось в <span class="def"><i>dascăl</i></span> и поныне обозначает сразу два явления: и устаревшее «учитель» и устойчивое «дьяк», который в церкви тянет «мнооооогая лееееета». Зачастую эти два понятия используются вместе и обозначают одного человека, потому что в церковно-приходских школах детей грамоте учили те же духовные (или придуховненные) лица, которые читали вслух религиозную пропаганду.</p>
<p>Поэтому факт — менторов, которых мы сегодня подразумеваем, в «Одиссее» и во всей последующей греческой культуре не было. Было просто имя «Ментор».</p>
<p>А как, например, называла самого Ментора его мама? У любого ребенка есть уменьшительное имя, вероятно, Мент? И если бы Гомер назвал Ментора Ментом, то youtube &gt; «Как найти мента по Java»…</p>
<p>Тут вдвойне любопытно — у Гомера таки упоминается мент! Даже два! Первый гомеровский Мент (греч. Μέντης, Méntēs) упоминается в «Илиаде» ― царь каких-то киконов. Второй <a href="https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%BD%D1%82_(%D1%86%D0%B0%D1%80%D1%8C_%D1%82%D0%B0%D1%84%D0%B8%D0%B9%D1%86%D0%B5%D0%B2)">Мент</a> упоминается в «Одиссее» — царь мифического народа тафийцев.</p>
<p style="padding-left: 40px;">Имя второго почему-то приобрело в древнегреческом народе уничижительное значение и стало обозначать зловещего посланника… Вероятно, бил подчиненных резиновыми дубинками по почкам.</p>
<p>Вообще, в «Одиссее» Афина вольготно буйствует, по ходу дела принимая как облик Ментора, так и облик Мента. Ух… Смена масок в древнегреческом театре была нормой же.</p>
<p>Ещё скажем пару слов про образ Телемаха. Его образ — это такой себе эпик про взросление. Изначально это незначительный персонаж, рос без отца, в школу не ходил, в доме бардак, в голове кавардак, характер ненордический, не женат. Однако после упомянутого путешествия он вернулся домой слегка позврослевшим. И когда его отец таки является и говорит «Я твой father, Люк!», Телемах на пару с папой начинает недрогнувшей рукой методично убивать тех самых гостей, которые жрали, разлагались и домогались занять вакантное место царя Итаки. То есть, Телемах ДО путешествия — просто юноша. Телемах ПОСЛЕ путешествия — это взрослый тип с мачете. Machete kills.</p>
<p>А когда всё развертелось и устаканилось, Телемах вывел во двор тех самых двенадцать рабынь, которых принудили ублажать бывших гостей, неудавшихся пенелопских женихов, и всех их повесил. Он ведь тоже был рабовладельцем, и мог делать со своим имуществом буквально всё, что захочет.</p>
<h2>«Приключения Телемака»</h2>
<p>Итак, у нас уже несколько дядей с именем ментор:</p>
<ul>
<li>один из IRL правителей той самой Трои в IV веке до н. э.</li>
<li>персонаж Ментор из Одиссеи</li>
</ul>
<p>и ни один из них не олицетворяет связку «ментор — наставник». Противоречие…</p>
<p>Не все знают о том, что прохладные былины Гомера были топом во время их появления, но затем медленно исчезли из общественного поля зрения. Причин тому множество — чтобы их читать, надо было, соппсно, уметь читать… а это умели не все. Древний Рим, конечно, перенял много из эллинской культуры, но и там надо было сперва уметь читать, и желательно на эпическом древнегреческом. А гомеровский язык — это не совсем древнегреческий язык. Он не рассказывал, а пел поэтические песни, поэтому он использовал искусственный поэтический язык, в котором есть множество ОООООчень древних форм, которые дико необходимы для эпического стихосложения, но так же дико устарели и стали непонятными. Как выразился один из исследователей, «<em>Эпическое повествование поэмы напоминает сон — событийный, красочный, жуткий, эротический, захватывающий и трогательный одновременно. Ни одна другая книга не подарит читателю такого сна</em>». Язык — оружие, це однозначно.</p>
<p style="padding-left: 40px;">Например, эпичный героизм какого-нибудь героя выражался через эпичные эпитеты — шлемоблещущий.</p>
<p>Записывать эти песни было особо некому, до нас дошли тексты, набранные алфавитом, который в принципе не существовал во времена былинные. Поэтому читать эти тексты со временем было всё сложнее и всё/тем более некому. Да и кому нужны древние поэмы, когда на дворе происходит распад Римской империи, варвары вандалят, начинается насильная джызускрайстизация оставшегося населения, кругом чума, СПИД, насморк, Возрождение, Византия и прочие непотребства…</p>
<p>А переводить все эти гекзаметры на певучую латынь — та ещё задача. И когда развалились древние римляне, читать это всё даже на латыни стало интересно немногим. Ну, серьезно, предположим, что на дворе условно 1699-й год, просвещенный 17-й век перетекает в 18-й, в Европе всё ещё пытаются оклематься от последствий безумной религиозной тридцатилетней войны и вообще не очень здравая обстановка. Идёт какой-нибудь молодой человек в библиотеку и просит что-нибудь интересного… Какова вероятность, что ему предложат почитать гомеровские тексты, которым уже 2500 лет!?</p>
<p>Но случилось непредсказуемое. В этом самом 1699-м году во Франции некий Франсуа Фенелон подхватывает древние тексты и выпускает приквел — якобы расширенные «Приключения Телемака» (Les Aventures de Télémaque).</p>
<p style="padding-left: 40px;">Имя уже известного нам Телемаха на французский манер однозначно произносится как Телема́к, и можно предположить, что с тех времён исчезает Тэле́мах и появляется Телема́х, он же Телема́к.</p>
<p>Бить по рукам Фенелону некому, он берёт уже изрядно подзабытых за две тысячи лет древнегреческих персонажей и клепает по данному сюжету собственную историю путешествия юного древнегрека по мифическо-исторической Древнегреции, и в книге Фенелона Ментор становится уже не просто туда-сюда ходящим персонажем, а тем самым образцом «мудрого наставника», который направляет и обучает молодого человека.</p>
<p>У Фенелона история начинается сразу с того, что Телемак и Ментор почему-то выброшены бурей на остров бессмертной богини Калипсо — там, где ранее уже провёл много лет Одиссей. Богиня предлагает кораблекрушельным гостям переодеться в сухое, после чего она расскажет им про Одиссея… ну и всё такое. Телемак восхищается предложенным одеянием — тонкая ткань, одно снега белизны, другое багряного цвета с богатым золотым шитьем… И тут начинаются первые же слова Ментора, сказанные строгим голосом:</p>
<blockquote><p>– Такие ли мысли, Телемак, должны занимать сердце сына Улиссова? Поддержать славу родителя, победить судьбу, тебя преследующую – вот что должно быть предметом твоих мыслей! Юноша, любящий, как женщина, драгоценное убранство, недостоин мудрости и славы. Слава есть достояние сердца, которое умеет страдать, отвергая забавы. Страшись, чтобы она не ввергнула тебя в новые бедствия. Страшись обворожительных ее прелестей более, нежели камней под водой. Кораблекрушение, самая смерть не столь опасны, как удовольствия, подмывающие в нас добродетель. Не верь хитрым вымыслам. Юность высокомерна, возлагает всю надежду на свою крепость, слабая трость мечтает быть всемогущей и, никогда не пребывая на страже у сердца, легкомысленно отдает его всякому. Не внимай сладким и льстивым словам коварной Калипсо. Они будут вкрадываться в тебя, как змея под цветами. Трепещи тайного яда, не верь себе и ничего не начинай без совета твоего верного друга.</p></blockquote>
<p>Мог бы просто врезать палкой по спине, чем такие речи заводить. И тэ дэ, и дальше много всякого, чего у Гомера не было в принципе. Отсебятина, короче. Фенелоновщина.</p>
<p>Но эта отсебятина Фенелона внезапно становится сверховерпопулярной, и уже начиная с 18-го века нашей эры имя Ментор во всех европейских странах стало нарицательным для наставника — абстрактного пожилого, умудрённого человека, который передаёт молодёжи свой опыт.</p>
<p style="padding-left: 40px;">А ведь Гомер мог бы назвать упомянутого персонажа иначе, например, Автандил. И сегодня мы искали бы в youtube видео «Как найти себе автандила».</p>
<p>Кагбэ, понятие ментора взято из Гомера, но пришло не от Гомера. Зато теперь мы скажем ааааааа, так вот почему ментор называется ментором! Из-за Фенелона!?</p>
<p style="text-align: center;"><span style="color: #ff0000;" data-darkreader-inline-color="">Да!</span></p>
<p>И будем правы.</p>
<div id="attachment_37086" style="width: 675px" class="wp-caption aligncenter"><a href="https://testitquickly.com/wp-content/uploads/2026/10/TechWomenMoldova2026-close.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-37086" class="size-large wp-image-37086" src="https://testitquickly.com/wp-content/uploads/2026/10/TechWomenMoldova2026-close-1024x563.jpg" alt="" width="665" height="366" srcset="https://testitquickly.com/wp-content/uploads/2026/10/TechWomenMoldova2026-close-1024x563.jpg 1024w, https://testitquickly.com/wp-content/uploads/2026/10/TechWomenMoldova2026-close-300x165.jpg 300w, https://testitquickly.com/wp-content/uploads/2026/10/TechWomenMoldova2026-close-768x422.jpg 768w, https://testitquickly.com/wp-content/uploads/2026/10/TechWomenMoldova2026-close-660x363.jpg 660w, https://testitquickly.com/wp-content/uploads/2026/10/TechWomenMoldova2026-close.jpg 1197w" sizes="auto, (max-width: 665px) 100vw, 665px" /></a><p id="caption-attachment-37086" class="wp-caption-text">Церемония закрытия TechWomen Moldova Mentor program 2026. Я, олицетворение идей Фенелона, справа.</p></div>
<h2>Припасть к оригиналу</h2>
<p>Если после этого захочется прочитать Илиаду и Одиссею, то будет сложновато. На английский язык это всё было переведено около семидесяти раз, на русском же увы, придётся взять переводы Викентия Вересаева (начаты в 1937, опубликованы в 1949 и 1953), который перевёл оба текста в одной манере, и если к ней привыкнуть, то можно прочитать всё последовательно. Есть ещё по-отдельности перевод «Илиады» Гнедича (1829) и «Одиссеи» Жуковского (1849), но там прям надо напрячься, чтобы бесшовно перейти от одного текста к другому.</p>
<p>В современности рассматриваем перевод «Одиссеи» Стариковского, но там надо понимать, что он отошёл от строгого русского гекзаметра, созданного Гнедичем и Жуковским. С одной стороны это очень хорошо, с другой — это дико плохо, потому что непривычно.</p>
<p>Перевод Василия Жуковского (1849)</p>
<p style="padding-left: 40px;">Муза, скажи мне о том многоопытном муже, который,<br />
Странствуя долго со дня, как святой Илио́н им разрушен,<br />
Многих людей города посетил и обычаи видел,<br />
Много и сердцем скорбел на морях, о спасенье заботясь<br />
Жизни своей и возврате в отчизну сопу́тников; тщетны<br />
Были, однако, заботы, не спас он сопутников: сами<br />
Гибель они на себя навлекли святотатством, безумцы,<br />
Съевши быков Гелио́са, над нами ходящего бога; —<br />
День возврата у них он похитил. Скажи же об этом<br />
Что-нибудь нам, о Зевесова дочь, благосклонная Муза.</p>
<p>Перевод Викентия Вересаева (1952)</p>
<p style="padding-left: 40px;">Муза, скажи мне о том многоопытном муже, который<br />
Долго скитался с тех пор, как разрушил священную Трою,<br />
Многих людей города посетил и обычаи видел,<br />
Много духом страдал на морях, о спасеньи заботясь<br />
Жизни своей и возврате в отчизну товарищей верных.<br />
Все же при этом не спас он товарищей, как ни старался.<br />
Собственным сами себя святотатством они погубили:<br />
Съели, безумцы, коров Гелиоса Гиперионида.<br />
Дня возвращенья домой навсегда их за это лишил он.<br />
Муза! Об этом и нам расскажи, начав с чего хочешь.</p>
<p>Перевод Григория Стариковского (2026)</p>
<p style="padding-left: 40px;">Муза, скажи мне об изворотливом муже:<br />
он долго скитался, разграбив священную Трою,<br />
видел многие города, изведал нравы<br />
людские и многие беды вытерпел нá море,<br />
жизнь сохраняя свою и возвращение спутников;<br />
спутников все же не смог спасти, хоть и тщился:<br />
по собственной блажи погибли, глупые, съели<br />
коров из стада Гелиоса Гипериона (он отнял<br />
день возвращенья) — об этом нам тоже, богиня,<br />
Зевсова дочь, поведай — начни, где хочешь.</p>
<p>Я ещё воткнулся в перевод на румынский язык, а тут дело было многоступенчатым: 1) Theodorus Gaza в 1811-м перевел древний текст на условно более современный койне — это диалект, который возник в конце IV века до н. э., после завоеваний Александра Македонского, и стал общеупотребительным греческим языком эллинистического мира; новозаветный библейский греческий в основном написано на койне, 2) George Murnu перевёл всё с газовского койне на околосовременный румынский (1912 и 1924). И это не так, чтобы прям оригинал, тот же Жуковский сделал перевод с подробного немецкого подстрочника, и ничо, терпим. Слог мощен и тоже гекзаметричен:</p>
<p style="padding-left: 40px;">Cântă, zeiță, mânia ce-aprinse pe-Ahil Peleianul,<br />
Patima crudă ce-Aheilor mii de amaruri aduse;<br />
Suflete multe viteze trimise pe lumea cealaltă,<br />
Trupul făcându-le hrană la câni și la feluri de păsări…</p>
<p>Клянусь зевсовским зевсом, чем прыгать по всем этим переводам, проще уже ближе к пенсии выучить древний ахейско-эллинистический язык и гекзаметрить себе потихоньку, припадая к одному из первоисточников нашей постоянно гибнущей культуры…</p>
<p>На сегодня всё.</p>
<p>Дальше в этой серии — определение менторства через форму социальных связей. Поймём, почему менторов надо искать так же, как ищут друзей, и почему для (взрослых) современных людей это всё так невыносимо сложно, что они ходят в поисках менторов с деньгами наперевес, но никуда не доходят, потому что хотят не того, чего им могут дать.</p>
<p>В будущем рассмотрим следующие идеи:</p>
<ol>
<li>менторство переполнено мифами и подразумеваниями, которые порождают лютые ложные ожидания, и это плохо,</li>
<li>не надо спрашивать «где найти ментора…» Надо спрашивать о том, что будет ПОСЛЕ того, как он найдётся,</li>
<li>надо однозначно понимать что такое «ментор» (а также «менторинг», «менторат» и «менторирование»), чтобы не ожидать невозможного,</li>
<li>надо понимать, чем отличается ментор от учителя и не путать эти роли,</li>
<li>не надо называть учеников стрёмным словом «менти».</li>
</ol>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2026/10/03/cauta-ti-mentorul-singurel/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">37081</post-id>	</item>
		<item>
		<title>Покажите мне Playwright «с нуля»</title>
		<link>https://testitquickly.com/2026/09/05/playwright-de-la-zero/</link>
					<comments>https://testitquickly.com/2026/09/05/playwright-de-la-zero/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Sat, 05 Sep 2026 02:06:57 +0000</pubDate>
				<category><![CDATA[Видео]]></category>
		<category><![CDATA[Изображения]]></category>
		<category><![CDATA[Не смешно]]></category>
		<category><![CDATA[Откровения]]></category>
		<category><![CDATA[Постановка мозгов]]></category>
		<category><![CDATA[Соображения]]></category>
		<category><![CDATA[Playwright]]></category>
		<category><![CDATA[братья Стругацкие]]></category>
		<category><![CDATA[Матвей Гершкович]]></category>
		<category><![CDATA[Шелдон Купер]]></category>
		<guid isPermaLink="false">https://testitquickly.com/?p=37062</guid>

					<description><![CDATA[Представим, что кто-то кому-то рассказывает историю о том, как он пытался нанять себе ментором одного тестировщика из Кишинёва, а тот оказался совершенно неадекватным неадекватом… …и я решил, что я буду изучать Playwright. Почему я буду изучать именно Playwright, а не автоматизацию тестирования ПО вообще — ну так в вакансиях пишут, что надо уметь в этот… <span class="read-more"><a href="https://testitquickly.com/2026/09/05/playwright-de-la-zero/">Читать далее: Покажите мне Playwright «с нуля» &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Представим, что кто-то кому-то рассказывает историю о том, как он пытался нанять себе ментором одного тестировщика из Кишинёва, а тот оказался совершенно неадекватным неадекватом…</p>
<hr />
<p>…и я решил, что я буду изучать Playwright. Почему я буду изучать именно Playwright, а не автоматизацию тестирования ПО вообще — ну так в вакансиях пишут, что надо уметь в этот ваш Плайвригхт.</p>
<p style="padding-left: 40px;">Так-то я хз, как оно правильно читается, ха-ха-ха, но инглиш иззэ кэпитэл оф грэт бритэн, это я досконально знаю ещё со школы. Советское образование всегда было лучшим в мире!</p>
<p>А что приличному человеку нужно для успешной учебы?! Ментор нужен, конечно же. Пусть все, как дураки, бегают на общие курсы, а я возьму себе индивидуального ментора, он мне обстоятельно всё объяснит, и это будет моим конкурентным преимуществом. Мы будем с ним раз в неделю созваниваться (два раза, ладно) и он будет советовать мне, что учить, а что нет смысла учить, какие именно страницы в каких именно книгах читать, и будет спрашивать, как у меня идут дела, и я как разовьюсь! Ого! Да-да-да!</p>
<p>Ну и вот я вам пишу, драгэ романтикэ товарэшул молдовенескул тестировщик, а давайте вы будете мне ментором по Playwright. И по API. И по REST, чтобы три раза не вставать. Давайте раз (два раза?!) в неделю созваниваться, вы будете мне обстоятельно всё объяснять… это в ваших же интересах! Доведите меня до трудоустройства, и я сразу же вам заплачу за обучение с первой же зарплаты. Я знаю, что у начинающего зарплата будет небольшой, 1500 или 1700… ладно, 1200 долларов, я не жадный (для начала). И я сразу вам заплачу 200 евро, не обижу. Вам там, в Молдавии, много не надо, я смотрел видео либерально-уважаемой Натановны Эйдельман и знаю всё про вас и вашу страну.</p>
<p>Он, конечно, попытался накрутить себе цену и сбить меня с пути истинного. Начал спрашивать, а зачем вам вообще эта автоматизация, может быть, вы сперва научитесь (хотя бы!) тестировать. Или программировать, хотя бы, на том же JS. На что только не пойдут эти молдаване ради лишних 200 долларов…</p>
<p>Но позвольте <del>милостивый государь</del>, говорю я ему, я же знаю, что тестировать — слишком легко, а программировать — слишком нелегко. А я нашел хитрый способ пройти невредимым посередине — неведомая автоматизация манит меня и ждёт, когда я её открою для себя… Давайте же, ну!</p>
<p>А он говорит — то, чего вы хотите, звучит логично, но на деле нелогично. Вы только умеете переустанавливать винду при любой проблеме и мечтаете купить мак, якобы там ничего переустанавливать не надо… Но вы даже в настройки системы никогда не заходили! Как вы будете скрипты в Playwright писать, если вы локатор в html не найдете, даже если вам на него укажут пальцем указательным?! Почему бы вам не изучить html для начала? И на Linux посмотрите, там тоже основы несложные…</p>
<p>Каюсь, зря я ему про всё это рассказал, что умею только переустанавливать винду и мечтаю купить в Шымкенте дорогой мак занедорого, и что ничего не знаю про html. Слишком я откровенный, что поделать, страдаю человеколюбием. Мы, хабаровские, всегда от этого страдаем.</p>
<p>Вообще я слегка уставший, но изо всех сил стараюсь оставаться вежливым, ведь с молдаванами надо разговаривать как с животными — ласково, без резких движений, а то испугается и шмыгнёт в кусты… Ну я ему и говорю, мол, а зачем мне эти твои глупые html и мануальное тестирование?! Ты такой странный, такие дурацкие предложения предлагаешь… Да ты меня НЕ СЛЫШИШЬ! У мануального тестирования нет будущего, у программирования нет будущего, в будущем будут одни только клауды, я знаю… Мне нужно научиться плайрайт, или как его там! Ментор мне нужен, мееееентоооор!</p>
<p>Он уже занервничал, начал говорить про отвлеченное, мол, а вот вы про клауды говорите — какие именно? Вы про Cloud computing или про семейство ой-ай моделей Claude? А я ж не знаю, о чем он лопочет… Всякие будут, веско говорю. Оно сегодня так развивается, что ай-ой, завтра вообще будет ой-вэй. И пока все вы будете ой-ой, я буду спокойно автоматизировать. Месяц-другой. А потом переключусь на что-то поинтереснее…</p>
<p>А он всё не угомонится, он меня уже с фланга обходит — а хотите, мы просто поговорим о том, как IT устроено? У меня день свободен, я машине под лобовое стекло полиуретановый герметик загнал, спешить некуда. Могу вам рассказать, с чего всё начинается и где там нужен Плэйрайт, а дальше вы сами решите, с чего вам начать…</p>
<p>Мммм, нет, я уже всё понял, не хочет этот полиуретан поработать индивидуальным ментором. Не хотят люди деньги зарабатывать, не хотят… Ну и не надо. Я совсем уже почти договорился с одним бывшим программистом из дома напротив, так он мне устроит краткосрочные курсы по Playwright. Десят тыщ тенге за одно занятие, ну и что? Это недорого. Занятия утром и вечером, а в обед я буду заниматься дома бесплатно, я всегда имею возможность заниматься дома бесплатно и доставать свежие версии Playwright и другие полезные скрипты. В конце концов, если мне покажется недостаточно, так я всегда смогу прикупать нужное в даркнете. Пусть всякие дураки берут учебные курсы задорого. Вот я вижу, вы всегда берете учебные курсы задорого. А я могу брать их же с рутрекера, слитые, бесплатные, у меня там есть аккаунт, и они даже слитые будут лучше, чем ваши онлайн и задорого. Ваши курсы битые, а у меня будут целые, хорошие, проверенные временем курсы! Вы человек ещё молодой, вы ещё не понимаете, что главное в жизни — это устроиться с хорошими образовательными курсами… Ведь мир заполонили дурные, своекорыстные люди! Да господи же боже ж мой, ну нигде же нет от них спасения! Куда ни сунься — везде ведь они! Везде блат, по знакомству можно достать всё, а без знакомства человек ничто — особенно, если он не сумел как следует устроиться по образовательному аспекту…</p>
<p>На том и разошлись.</p>
<hr />
<p>Весь последний абзац — мой вольный парафраз из Стругацких, «Рукопись ОЗ», раздел 23-25, спич Матвея Матвеевича утром на кухне. Соррянчики, не удержался, очень уж было похоже.</p>
<h2>А кто виноват?</h2>
<p>Я, конечно же.</p>
<p>Человек проделал сложную работу и, как говорит тащ. военврач Курпатов, «оказался в конструкции» в которой он нашел изящное решение своей проблемы. Ему не нужно ни тестировать, ни программировать, он уже решил, что ему просто нужно освоить Playwright. Он всё продумал, он ВСЕХ перехитрил, он сумел выехать, он молодец, осталось только найти кого-то, кто ему покажет, что где нажимать и чтобы светлое будущее наконец-то настало.</p>
<p>А тут я со своим ненужным мнением, пытаюсь ему объяснить что-то, что превышает его уровень понимания темы (<em>винду переустановить</em>…) на невозможном для него уровне объяснения. Мог бы я поменьше рассказывать про абстрактно-игристое?! Вы же не поэт, к чему вам смотреть, как ветер колотит воду по чреву пепельно-сизых финских волн!?</p>
<p>Но я исхожу из того, что нельзя отказывать голодному в еде, а интересующемуся в объяснении. И если я могу что-то объяснить, то давай объясню, тебе потом проще будет понимать, как всё устроено и принимать взвешенные решения.</p>
<p>Я, конечно же, сказал, что если вы вообще ничего не знаете о том, как делают ПО, Playwright сам по себе не имеет смысла, что там надо будет смотреть в код html и писать команды, мол, значение этого элемента сохранить в переменную и сравнить с ожидаемым результатом. Например:</p>
<pre>let totalPrice = document.querySelector('#totalPrice').textContent;
let expectedResult = 100;

if (Number(totalPrice) === expectedResult) {
console.log("Total price: PASS");
}</pre>
<p>Вам тут всё понятно? В переменную <em>totalPrice</em> cохранить значение из элемента <em>#totalPrice</em> в виде plain text. Перевести этот plain text в число. Сравнить число из переменной <em>totalPrice</em> со значением из переменной <em>expectedResult</em>. Всё понятно человеку, который не имеет понятия, что такое html, переменные и прочие абстрактные абстракции? Оказалось, что нет. И что это всё, очевидно, лишнее. Зачем это всё?</p>
<p>Почему же я просто не сказал ему «Нет»? Человек понял только то, что его пытаются разубедить, ему показалось, что над ним издеваются. Человек хочет просто научиться Playwright. Он же не спрашивал, как оно всё устроено. Может быть, надо было просто показать ему Playwright?</p>
<h2>Это проще показать или объяснить?</h2>
<p>В основе всего тестирования ПО лежит простой принцип — залезь в настройки, поменяй их и посмотри, что получится. В древние времена тестировщиками становились люди, которые в принципе ВСЕГДА ковырялись в настройках своих компьютеров, потому что вот так в те времена всё было устроено. Сегодня всё иначе, интерфейсы и железо стали стабильно-предсказуемыми, и уже поколения людей никогда не заходили в настройки системы, и не намереваются туда заходить, ведь там всё такое сложно-непонятное, а вдруг я что-то сломаю, ненене, не буду это открывать вообще. И в настройки отдельных программ они тоже не заходят, потому что если программа не делает то, что надо, уже проще установить другую программу.</p>
<p style="padding-left: 40px;">Впервые я увидел это году в 2017-ом, наверное. Коллега установил какой-то софт для записи экрана, и тот софт нарисовал ему на экране квадрат — область, содержимое которой попадет в видеозапись. А коллега хотел записать сразу весь экран, а не квадрат. Он это ПО сразу удалил и пошёл искать аналоги.</p>
<p style="padding-left: 40px;">Я это ПО у себя установил, увидел упомянутый квадрат, ухватил его за край курсором мыши и понял, что область видеозаписи можно спокойно растянуть, передвинуть, и вообще можно нажатием одной клавиши переключиться в режим записи всего экрана — я просто посмотрел в настройки софта… И написал коллеге, мол, it works, this gizmo is adjustable! Переключись в другой режим, нажми такую-то клавишу.</p>
<p style="padding-left: 40px;">Коллега ответил, что нененене, этот софт неадекватный, он скоро найдёт другой.</p>
<p style="padding-left: 40px;">Ну ок.</p>
<p>Сам по себе Playwright — это фреймворк для написания кода, через который можно будет вызывать из небытия браузер и в этом браузере эмулировать действия пользователя, тыкать кнопки, пролистывать страницы, кликать по ссылкам и проверять наличие каких-то элементов или содержимое этих элементов. И тут надо бы объяснить, что такое фреймворк…</p>
<p>А чтобы взаимодействовать с элементами в коде html надо хотя бы немного разобраться с этим самым html. Начнём с того, что это не язык программирования, это язык логической разметки текста (Hypertext Markup Language). Там дальше есть неэпически запутанные моменты и нюансы, но в основе — нет ничего сложного, смотрите….</p>
<p>Чтобы разобраться с html, надо написать свой код, своими руками, полностью в отдельном файле, и открыть это всё в браузере и посмотреть, что получилось. Сделал три страницы, вывел текст, вывел изображения, соединил эти три страницы через линки — увидел и понял, как оно работает.</p>
<p>Заодно посмотришь, по нраву ли тебе айтишная работа — колотить код и смотреть, как он вроде бы складывается в нужное, а вот тут не получается, а вроде бы всё правильно написал, а что-то не так, а что именно не так, а почему оно, бляха, не работает… ааааа, вот почему оно, бляха, не работает, а я сделаю вот так, и оно, бляха, заработало, но не совсем так, как мне хотелось… И вот так целый день.</p>
<p>&nbsp;</p>
<div id="attachment_37063" style="width: 484px" class="wp-caption aligncenter"><a href="https://testitquickly.com/wp-content/uploads/2026/09/do-something.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-37063" class="size-full wp-image-37063" src="https://testitquickly.com/wp-content/uploads/2026/09/do-something.jpg" alt="C'mon, do-something…" width="474" height="266" srcset="https://testitquickly.com/wp-content/uploads/2026/09/do-something.jpg 474w, https://testitquickly.com/wp-content/uploads/2026/09/do-something-300x168.jpg 300w" sizes="auto, (max-width: 474px) 100vw, 474px" /></a><p id="caption-attachment-37063" class="wp-caption-text">C&#8217;mon, do-something…</p></div>
<p>А потом приходят какие-то дементоры и говорят, что это мы отменяем, требования поменялись, тут будет фича вообще без требований, а тут мы еще не знаем, а вот это надо срочно переделать, а вот это не трогать. И теперь оно всё никак не заработает, потому что тут убрали, там добавили, и в целом вроде всё просто, но…</p>
<p style="padding-left: 40px;">И вот так целый день.</p>
<p>А когда понял, как устроены элементы в html — можно смотреть и понимать, как их делают программисты. Что есть параметры. Что есть классы. Что оформление элемента вынесено в общие файлы, потому что так устроен CSS (Cascading Style Sheets), а идею, силу и особенности CSS надо объяснять отдельно. Потом надо объяснить, что ты можешь открывать исходный код любого сайта и смотреть, как он устроен, и понимать, как с этим всем можно работать.</p>
<p>Пришло время идентифицировать элементы в коде, и это можно делать разными способами… которые во фреймворке Playwright реализованы так и эдак, и к ним можно обращаться или так, или эдак…</p>
<p>Одновременно с изучением html есть возможность хотя бы поверхностно потрогать <del>траву ладонями</del> основные принципы тестирования ПО. Playwright нам нужен не сам по себе, а для выполнения тестирования ПО в браузере руками робота, условно говоря. А чтобы тестировать, надо не тыркать элементы в html по-отдельности, а надо продумывать (распознавать логикой) сценарии, по которым будущие пользователи будут пользоваться нашим приложением.</p>
<p>О, самое время рассказать о том, как наши html-страницы становятся частью приложения, которое работает на сервере… И в чем разница между сайтом и сервером.</p>
<p style="padding-left: 40px;">Наверное, в том же 2017-м один из наших джунов, который уже год тестировал проект, спросил, а где именно находится наше приложение? Одни говорят, что оно на сайте, другие — что оно на сервере.</p>
<p style="padding-left: 40px;">Ну, ок. Объяснил.</p>
<p>Playwright умеет автоматически запускать и контролировать сервер, на котором находится тестируемое приложение. И оно может быть на удаленном сервере, а может работать на локалхосте. Пришло время объяснить понятие localhost…</p>
<p>Если понял за 127.0.0.1 и 192.168…, то вернемся к Playwright. Это фреймворк, который позволяет через код программно управлять браузером. Его придумали программисты, и это не единственный фреймворк подобного рода. И чтобы им управлять, вместе с изучением html и тестирования надо посмотреть в основы JavaScript (стал основным языком работы с элементами в браузере) или Python (многие считают его норм для начинающих и таки почему бы и нет). Кажется, что для этого надо сперва научиться программировать, но это только кажется. Чтобы программировать, надо не код писать, а думать как программист. Можно научиться писать код и не научиться программированию.</p>
<p style="padding-left: 40px;">Кажется нелогичным, но это логично.</p>
<p style="padding-left: 40px;">Я знаю английский язык, но от этого я не стал англичанином.</p>
<p style="padding-left: 40px;">Можно научиться играть на пианино и не быть музыкантом, для этого нужен природно-обострённый слух и надо освоить математическую грамоту музыкального мышления.</p>
<p>Вместе с основами html спокойно учим основы программирования на примере JS или Python. Само по себе это знание не сделает нас программистами. Да и вряд ли мы продвинемся дальше основ. Кто-то да, кто-то нет, заранее неизвестно, что и у кого будет получаться. Расчехляем простую рабоче-крестьянскую логику, смотрим на чужой код и разбираемся, как там все устроено. Сперва на простых примерах, затем на всё более сложных.</p>
<p>Вгрызаемся дальше. В командной работе надо будет пользоваться тем языком, которым уже пользуются другие однокомандники. Да, в одиночку можно писать скрипты для Playwright на JavaScript или на TypeSсript или на Python или на ассемблере. Но если в рабочей группе все пишут на Go — ты тоже должен писать скрипты на Go, это не обсуждается. Надо понимать основные принципы языков программирования, а не привязываться к синтаксису.</p>
<p>Далее оказывается, что для работы с общей кодовой базой надо разобраться в том, где она лежит, как её взять и как в неё добавлять свою работу — разбираемся с git (заодно глянем и на svn, не помешает понимать эту тему в принципе, а не в частностях). А для этого надо разобраться с тем, что такое файлы, где они лежат, как с ними работает твоя операционная система, а это вряд ли будет Windows. Давай объясню, как работает Linux…</p>
<p>А как работает обмен данными между серверами? Рассказать про API? Показать, что это само по себе, откуда взялось и как его трогать? Нет, я не буду ограничиваться только «я покажу тебе Postman» — надо понимать, что такое API вообще, а не отдельный софт, через который можно взаимодействовать с API.</p>
<p>И чего мы привязались к API? А реляционные базы данных кого уже давно ждут? Объяснить, почему они называются реляционными?</p>
<div id="attachment_5007" style="width: 730px" class="wp-caption aligncenter"><a href="https://testitquickly.com/wp-content/uploads/2012/01/don-t-be-a-pussy.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5007" class="size-full wp-image-5007" src="https://testitquickly.com/wp-content/uploads/2012/01/don-t-be-a-pussy.jpg" alt="" width="720" height="621" srcset="https://testitquickly.com/wp-content/uploads/2012/01/don-t-be-a-pussy.jpg 720w, https://testitquickly.com/wp-content/uploads/2012/01/don-t-be-a-pussy-300x259.jpg 300w" sizes="auto, (max-width: 720px) 100vw, 720px" /></a><p id="caption-attachment-5007" class="wp-caption-text">C&#8217;mon, just do something…</p></div>
<p>&nbsp;</p>
<p>Я понимаю, что эта штука делает в принципе.</p>
<p>Я понимаю, как это устроено в принципе.</p>
<p>Я понимаю, как найти локатор на странице в принципе.</p>
<p>Я понимаю, как обезопаситься от того, что этот локатор в будущем может поменять свое местоположение или переименоваться или стать видимым только после выполнения какого-то действия на странице — в принципе.</p>
<p>И вот теперь мы берём Playwright и спокойно его используем, и всё будет работать. C&#8217;mon, это уже не так уж и сложно! Заморочено, конечно, и много всякого, но в основе своей не сложно. Просто это «длинное» знание, которое приходит медленно, после изучения, привыкания и понимания простых принципов. Это не то, что можно показать на экране и сказать «Вот эту кнопку нажимай, а эту не надо трогать».</p>
<p>А если я скажу вам сразу «Нет»? Ну, вам же легче будет?</p>
<p>Привет каждому, кто приходил ко мне с запросом «<em>Научите меня тестировать…</em>», а я в ответ говорил «<em>Ок. Сделайте сайт, три страницы, давайте посмотрим, как получится и зайдёт ли оно вам…</em>» — может быть, вы уже самостоятельно попытались и поняли, что само по себе тестирование не очень сложное занятие, но сперва надо освоить некоторые очень неочевидные основы. Надо будет лезть в настройки системы и отдельных программ, смело что-то перещелкивать и понимать, что после этого поменяется, и отвечать за результат. И в какой-то момент обязательно надо будет понять разницу между сайтом и сервером.</p>
<p>Тестирование само по себе — абстрактная тема, которую рукам не пощупать. Всё IT работает на абстракциях. Учиться IT — изучить абстрактные темы, для которых в быту нет и не может быть объяснений или примеров, их надо придумывать. Но можно научиться взаимодействовать с абстракциями, можно наполнять их смыслом, придавать им смыслы, перехватывать изменение смыслов… Можно понимать, что перед тобой условные переменные, и что данные в этих переменных бывают разных типов. Нужно тестировщику это знание или нет? Или оно подразумевается, потому что это база нашей профессии?!</p>
<p>Так что да, иногда надо сразу говорить «Нет», а не пытаться объяснить, что три тысячи лет назад один древнегрек возвращался домой с рынка (по-ихнему агора) и посмотрел на звёзды…</p>
<blockquote><p>Our whole universe was in a hot dense state,<br />
Then nearly fourteen billion years ago expansion started. Wait&#8230;</p></blockquote>
<p><iframe loading="lazy" title="Шелдон учит Пенни физике" width="665" height="374" src="https://www.youtube.com/embed/_uEnXsU6jq4?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/2026/09/05/playwright-de-la-zero/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">37062</post-id>	</item>
		<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 loading="lazy" 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/">Читать далее: Postman в глаз, или в Bruno раз &#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/podcast/testitquickly.com_015.mp3" length="2303417" type="audio/mpeg" />

		<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 loading="lazy" 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="auto, (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 loading="lazy" 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="auto, (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/">Читать далее: Voodoo people, magic people &#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>
	</channel>
</rss>
