<?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>Скриншоты &#8212; Можно Подумать</title>
	<atom:link href="https://testitquickly.com/category/%D1%81%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%D1%8B/feed/" rel="self" type="application/rss+xml" />
	<link>https://testitquickly.com</link>
	<description>про тестирование ПО и всё такое прочее</description>
	<lastBuildDate>Fri, 24 Jan 2025 10:26:45 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://testitquickly.com/wp-content/uploads/2021/09/favicon_lupan-150x150.jpg</url>
	<title>Скриншоты &#8212; Можно Подумать</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/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 fetchpriority="high" 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="(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 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="(max-width: 722px) 100vw, 722px" /></a></p>
<p>Получаем поле с представлением «Split» — сверху код, а внизу результат его правильной работы:</p>
<p><a href="https://testitquickly.com/wp-content/uploads/2024/08/mermaid003.jpg"><img 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="(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/2021/09/27/practica-dubioasa/</link>
					<comments>https://testitquickly.com/2021/09/27/practica-dubioasa/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Mon, 27 Sep 2021 11:55:20 +0000</pubDate>
				<category><![CDATA[Книги]]></category>
		<category><![CDATA[Неприятно]]></category>
		<category><![CDATA[Откровения]]></category>
		<category><![CDATA[Скриншоты]]></category>
		<category><![CDATA[Astound Commerce]]></category>
		<category><![CDATA[Артур Коробейников]]></category>
		<category><![CDATA[Винница]]></category>
		<category><![CDATA[Кракен]]></category>
		<guid isPermaLink="false">https://testitquickly.com/?p=4670</guid>

					<description><![CDATA[Рассаживаемся поудобнее, тут дедуганзадвигает &#8216;an old grandpa story&#8217; В бытность мою главным спiвпрацювальником по підготувальні тестувальників Astound Commerce, в 2018-ом году, произошёл удивительный казус, без которого наша насыщенная и пресная айтишная жизнь была бы совершенно пресной. Шёл стотысячный день отбора кандидатов на очередной наш буткэмп в Виннице. Кандидаты сменяли друг друга, превращаясь в одно лицо,… <span class="read-more"><a href="https://testitquickly.com/2021/09/27/practica-dubioasa/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p style="text-align: right;"><em>Рассаживаемся поудобнее, тут дедуган<br /></em><em>задвигает &#8216;an old grandpa story&#8217;</em></p>
<p>В бытность мою главным спiвпрацювальником по підготувальні тестувальників Astound Commerce, в 2018-ом году, произошёл удивительный казус, без которого наша насыщенная и пресная айтишная жизнь была бы совершенно пресной.</p>
<p>Шёл стотысячный день отбора кандидатов на очередной наш буткэмп в Виннице. Кандидаты сменяли друг друга, превращаясь в одно лицо, чек-листы по ним заполнялись, близился неизбежный день финального финала. Я всё это терпеливо терпел, и вот я разговариваю с очередной кандидаткой.</p>
<p style="padding-left: 40px;">Кандидатушкой?</p>
<p style="padding-left: 40px;">Кандидаторкой?</p>
<p>В общем, «Что вы читали про тестирование ПО?» </p>
<p>Девушка говорит, что про тестирование читала книгу Лупана. Который, как я знаю, книг не писал.</p>
<p>— Вы… уверены?</p>
<p>— Да-да-да!</p>
<p>Уверенность однозначна. Она читала книгу Лупана. Упомянутый Лупан сидит перед ней неестественно ровно и смотрит на неё… неестественно внимательно.</p>
<p style="padding-left: 40px;">Вот так смотрел: <span style="color: #ff0000;">0_о</span></p>
<p>Забегая вперёд…</p>
<p><span id="more-4670"></span></p>
<p>Впрочем, не будем забегать вперёд. Забежим назад.</p>
<p>В начале 2014-го года я нащупал и почти что полностью протестировал надёжный способ надёжно и предсказуемо тренировать тестировщиков для компании «Astound Commerce». Инициатива начала превращаться в проект, в многоэтапное действие, в котором задействованы и пиары, и эйчары, и маркетологи, и все их начальники вместе. И это было хорошо.</p>
<p>Но наши бессмертные менеджеры сознают, что я человек, а значит, простой смертный. И поскольку всё моё я ношу с собой (в голове), этот проект может в любой момент загнуться на полпути. Например, посетит меня белая горячка, или гордыня, или румынское гражданство, или радикулит какой-нибудь… что я, буду читать студентам лекции, лежа на столе?</p>
<p style="padding-left: 40px;">Ну… да.</p>
<p>В общем, начальство попросило меня одолеть эту смертную слабость и сделать «методичку» о том, как тренировать тестировщиков (и тестировщицов, шоб было красиво), чтобы в случае моего выбывания из гонки кто-то другой смог заглянуть в этот документ и продолжить тренировать начинающих с тем же предсказуемым результатом.</p>
<p>Ну и я, конечно, начал орать и сучить ножками 48-го размера. Бо как зафиксировать на бумаге всё то варево в моей голове, из которого только изредка капали здравые идеи и взрывались всёпроясняющие инсайты?!</p>
<p style="padding-left: 40px;">Никак.</p>
<p>Я всячески пинал эту неотпинываемую задачу, и через полгода страдательных мучений «методичку» эту я начальству таки презентовал (можно умирать, чоуж), но мне было совершенно ясно-понятно, что у меня она не получилась.</p>
<p>Получилось что-то иное. Основой документа стала расплывчатая последовательность тем, которые надо изложить — кагбэ план лекций, последовательность которых <strong>никогда</strong> нет резона выдерживать, сверху наложились мои соображения относительно феноменов и терминов нашего дорогого тестирования, а в конец я подшил наглядные примеры для ряда объяснений. Местами я смог удержаться от подробных объяснений, местами нет, но это уже было несущественно. Это было что-то, но как руководство по методе преподавания это было вообще не то.</p>
<p>Назвал я этот файл с небольшой претензией на (тут сами подберите какое-нибудь слово, бо я хз):</p>
<p style="text-align: center;">«<strong>Практика тестирования программного обеспечения</strong>.</p>
<p>Курс лекций для тренера интересующихся тестированием ПО»</p>
<p>Приятно было сознавать, что если я всё-таки умру из компании (что и случилось в 2019-ом), кто-то другой найдёт в моём файле всё для того, чтобы go-go-go дальше.</p>
<p>А неприятно было сознавать то, что этот файл НЕЛЬЗЯ отдавать джунам.</p>
<p>Презентации бывают двух типов:</p>
<ol>
<li>те, которые можно читать самостоятельно,</li>
<li>и те, которые сами по себе не имеют смысла, они только оттеняют и иллюстрируют речь докладчика.</li>
</ol>
<p>У меня получился документ второго типа. Он помогал мне (тренеру) вспомнить, о чём надо не забыть сказать на очередной лекции, и местами подкидывал иллюстративный материал — где картинки, где текст, где просто намёк.</p>
<p style="padding-left: 40px;">Я эти намёки считывал и заранее знал, где я что-то просто озвучу, а где буду дополнительно объяснять, почему всё сказанное — вроде бы правильно, а на самом деле нет, и вот что ещё надо знать. И, соппсно, прямо или косвенно с пользой использовал на занятиях.</p>
<p>Поэтому выдавать этот файл кому-то для самостоятельного чтения можно, если читатель в тестировании взрослый и не принимает всё на веру. А ни в чём не сомневающимся джунам выдавать его негуманно, бо невозможно предсказать, что станет понятно после прочтения, а что нет. И если станет понятно, то — как именно?! К этому файлу прилагается живой докладчик, и конец фильма.</p>
<p>Поэтому в самом начале было указано, что</p>
<blockquote>
<p>Данный текст не предназначен для самостоятельного обучения тестированию программного обеспечения. Он подготовлен для тренеров, которые будут учить тестированию программного обеспечения сотрудников компании Astound, и предлагается только в качестве плана лекций (или их тематического содержания).</p>
</blockquote>
<p>И это именно <em>текст</em>, а не книга. Книги собираются по другому принципу и нужны для решения иных задач. А это всего лишь текст, рабочий документ, файл, сугубо служебный, нужный для решения отдельной рабочей задачи.</p>
<p>Я раздал его нескольким моим коллегам с объяснением контекста и важности держать это документ взаперти, и на этом ещё раз конец фильма, больше ничего не должно случиться.</p>
<p>Вернёмся в 2018-й, в Винницу. Я открыл на весь экран pdf, развернул ноут к заявительнице.</p>
<p>— Эта книга?</p>
<p>— Да, она!!!</p>
<div id="attachment_4674" style="width: 510px" class="wp-caption aligncenter"><a href="https://testitquickly.com/wp-content/uploads/2021/09/d0a2d0b8d182d0bbd0b5d0bfd0b5d0b9d0b4d0b6d09fd180d0b0d0bad182d0b8d0bad0b0d0a2d0b5d181d182d0b8d180d0bed0b2d0b0d0bdd0b8d18f2014.gif"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-4674" class="size-large wp-image-4674" src="https://testitquickly.com/wp-content/uploads/2021/09/d0a2d0b8d182d0bbd0b5d0bfd0b5d0b9d0b4d0b6d09fd180d0b0d0bad182d0b8d0bad0b0d0a2d0b5d181d182d0b8d180d0bed0b2d0b0d0bdd0b8d18f2014.gif?w=500" alt="Титлепейдж Практика Тестирования 2014" width="500" height="303" /></a><p id="caption-attachment-4674" class="wp-caption-text">Титлепейдж «Практика Тестирования» 2014</p></div>
<p>Неееее можеееет быыыыть!</p>
<p>Забегая вперёд…</p>
<p>Впрочем, не будем забегать вперёд. Забежим вбок.</p>
<p>Может быть, я слишком сильно перегибаю уже перегнутую палку, и не всё так стрёмно?</p>
<p>Вероятно да, но вот вам другая история о том, как в том же 2014-ом (или 2015-ом?!) я встретил в Киеве первую в моей жизни девушку, которая прочитала свою первую в жизни книгу про тестирование так внимательно, что распечатанные горизонтально листы бумаги были чуть менее, чем полностью исчирканы маркерами и карандашами — такое редко встретишь, имеем респект.</p>
<p>Она была очень неглупая, просто очень сильно запуталась от прочитанного. Тестирование в её восприятии представлялось сложнейшим, полным противоречий занятием.</p>
<p>Давайте сперва посмотрим, что это за книга так внимательно прочитана… ааах, да-да-да, знаю — Артур Коробейник «Краткие основы тестирования программного обеспечения», Киев 2012. Ой-вэй…</p>
<p style="padding-left: 40px;">Это полноценная книга, у ней зарегистрирован номер ISBN (Международный стандартный книжный номер, для книги то же самое, что vin-номер для автомобиля), все дела. Её содержимое вызвало резкие отзывы при публикации в сети. Я был тогда крайне сдержан в оценке, другие не сдерживались, и я их понимаю.</p>
<p style="padding-left: 40px;">Если очень надо понять, о чём, всё-таки, речь: <a href="https://vk.com/wall-35156109_10741">https://vk.com/wall-35156109_10741</a> Ваши страхи и ваши риски.</p>
<p style="padding-left: 40px;">Позже сам Артур, который уже уехал в Эстонию (это где-то далеко от греха), <a href="https://software-testing.ru/forum/index.php?/topic/23761-artur-korobeinik-kratkie-osnovi-testirovanija/?p=115534">сообщил</a> о том, что «<em>Издание вышло всего в 100 экземплярах, все их которых купил я и раздал по местам работы и учебы с некоторыми корректировками. Надеюсь, много вреда оно не причинило</em>» </p>
<p>Ага. Вот передо мной человек, который/ая от пострадал от прочтения текста, который был для него не предназначен.</p>
<p>С чего начать?</p>
<p>Что объяснить?</p>
<p>Как предложить забыть всё и начать заново?</p>
<p>Мы поговорили, но был фэйл. Вероятно, мы потеряли адекватного тестировщика и ей пришлось пойти учить фронтэнд девелопмент, увы. А по прошествии лет я ещё и забыл, как её зовут. Дабл фэйл.</p>
<p style="padding-left: 40px;">Ещё раз — не все тексты надо оформлять в виде книг и раздавать кому попало. Это может быть очень вредно. Гуманность uber alles же!</p>
<p>Ну а тем временем мы всё ещё в 2018-ом году, в Виннице, на экране белеет моя одинокая «Практика тестирования программного обеспечения», кандидат(ка) заполошно твердит «Да-да-да, это она!», и у меня назревает лютая батхертная попоболь, бо если она это читала, значит, мой файл «для тренеров» вышел из-под контроля… и может кому-то навредить.</p>
<p>И вот теперь, когда забегать уже некуда, сразу переходим к финалу.</p>
<p>Расследование показало, что нет, файл в надёжных руках. Просто сто лет назад на одном из буткэмпов гражданин Лупан выдал своим студентам папку с разными книгами про тестирование, но не учёл, что кто-то всю эту файлоту соберёт в отдельный каталог с названием «<em>Книги про тестирование от Лупана</em>» и начнëт втихаря распространять среди аппликантов на следующие буткэмпы. Ну вы знаете этот милый региональный <del>винницкий</del> протекционизм, помноженный на природное народное стремление хакнуть любую систему распределения любых нераспределенных благ.</p>
<p style="padding-left: 40px;">А перевзволновавшаяся конкурсантка на самом деле читала книгу сэра Романа Савина, и отреагировала «лупаном» из-за названия каталога и своей общей излишней взволнованности.</p>
<p>Слава молдавскому Аллаху, это уже конец этой истории, почтенный посетитель рынка, собиратель историй. Победила восторжествовала.</p>
<p>Но это не конец всей истории!</p>
<p>На днях коллега из Киева сообщил, что его джуны притащили ему тот самый мой файл, обозвали это всё книгой и</p>
<blockquote>
<p>&#8230;считают одной из лучших книг по тестированию на русском языке. Жаль, что джунов она больше запутывает, чем разъясняет, хотя это и описано в заглавии.</p>
</blockquote>
<p>Ой бляяяяя… Кракен хэз бин релизд.</p>
<p>В открытом доступе этот файл я не нагуглил, но если его упоминает взрослый тестировщик, значит, файл пошёл по рукам и есть вероятность того, что кто-то его использует себе во вред.</p>
<p style="padding-left: 40px;">Запретить его читать? Никак.</p>
<p style="padding-left: 40px;">Переделать его и таки опубликовать? Нет смысла. Файл был сделан для решения определённой задачи для в контексте, который давно изменился по чьему-то заказу, и я его с тех пор и не использовал, соппсно.</p>
<p>Но содержит он, в принципе, только общие сведения о домене знаний, которые не могут быть частной собственностью одной компании или человека. Его секретным ингредиентом был (и остаётся) личностный подход тренера, а содержимое файла — лишь подспорье в работе с учениками.</p>
<p>Тестирование программного обеспечения само по себе — ремесло. Нет никаких сакральных знаний, которые стоит только их узнать, как сразу всё начнёт получаться. Оно построено на основе стандартного Computer Science, который полагается освоить всем (в том числе и программистам), а для этого нужно изучить общие [для всех] правила, традиции, исторический контекст. Приёмы и технику надо тренировать, книги — покупать и читать, соображения — проверять, эксперименты — проводить, опыт — копить, день за днём, год за годом. Терпение, упорство и прилежание. Потом уже, вероятно, станут важны способности, талант и личность. А всё то, на что стараются делать упор все начинающие (быстрая обучаемость, хитрость, неадекватное рвение), поначалу как раз мешает. Сложные, комплексные вещи всё так же требуют долгого, сложного, комплексного изучения.</p>
<p style="padding-left: 40px;">Это как игра на пианино, там надо просто научиться вовремя нажимать нужные клавиши, вот и вся музыка. Основы одни для всех, знания всем доступны. Ноты не принадлежат никому в отдельности.</p>
<p style="padding-left: 40px;">А музыка получается у каждого по-разному.</p>
<p>То есть, вредный он-то вредный, но не разрушительный же?!</p>
<p>Ок, файл «<strong>Практика тестирования программного обеспечения</strong>» принародно объявляется несостоятельным и ненужным. Я им не управляю и не смогу донести ответственность за вероятные последствия его использования. Читать его не возбраняется но и не рекомендуется. Вместо него, если английский позволяет, рекомендую глянуть мой же «<a href="http://bit.ly/2qBuhMO">Software Testing Glossary</a>».</p>
<p style="padding-left: 40px;">Он тоже когда-то начинался как служебная записка, которая должна помочь быстро и точно объяснить тот или иной термин из тестирования заказчикам проектов (глоссарий ISTQB для этой цели ВНЕЗАПНО совершенно не подходит), но в корпоративных документах нельзя свободно выражаться и использовать слова <em>stupid</em> или <em>whiskey</em>, поэтому его содержимое было, как следует корпоративным нормам, выглажено и деперсонифицировано, а мой изначальный текст ушёл жить самостоятельно.</p>
<p>А я, пожалуй, возьму из этой «Практики» какие-то идеи и примеры да смешаю их с толкованиями терминов из этого «Glossary». Может получиться… короче, посмотрим, что получится, бо это такое дело, иногда получается, а иногда нет.</p>
<p>Ещё раз: файл «<strong>Практика тестирования программного обеспечения. </strong>Курс лекций для тренера интересующихся тестированием ПО» — это фу, это бяка, это данунах.</p>
<p>Вас пердупердили.</p>
<p></p>
<p><strong>Мелкий PS про технику этого дела</strong></p>
<p></p>
<p></p>
<p>Файл был полностью набран/оформлен в LibreOffice. В то время я ещё не освоил LaTeX на полную, а то я бы, конечно…</p>
<p></p>
<p></p>
<p>Но оказалось, что нативный LibreOffice — сила, особенно если добавить к нему <a href="https://extensions.libreoffice.org/en/extensions/show/alternative-dialog-find-replace-for-writer">плагины</a> (нативно либофис в автозамене слабее мсворда, когда надо цепануть концы строк, бо он работает сугубо построчно). Набор текста в режиме разметки first, а оформление опосля — на, всё на хоткеях. Разные типы содержимого (краткое, расширенное, полное) — на. Встраиваемые значения в поля — на. Контроль содержимого в навигаторе — на, и удобнее, чем в MS Word. Свои стили — на на всю катушку. Учёт изображений и таблиц — на. Список литературы в отдельной БД с подсосом значений из неё в файл — на. Обновление ссылок на внутренние сущности — на.</p>
<p></p>]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2021/09/27/practica-dubioasa/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4670</post-id>	</item>
		<item>
		<title>Выделить вкладку страницы в фокусе в Firefox</title>
		<link>https://testitquickly.com/2020/12/03/pune-style-la-firefox/</link>
					<comments>https://testitquickly.com/2020/12/03/pune-style-la-firefox/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Wed, 02 Dec 2020 23:00:12 +0000</pubDate>
				<category><![CDATA[Озарения]]></category>
		<category><![CDATA[Скриншоты]]></category>
		<category><![CDATA[Фишки]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[userChrome.css]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=4559</guid>

					<description><![CDATA[Когда вкладок много, и непонятно, которая из них открыта прямо сейчас, то можно взять быка за CSS. Раньше-то мы щупали за вымя расширения Firefox, коих было больше, чем нужно, и если у вас раньше hdd не завывал при запуске FF с шестьюдесятью расширениями на борту, то у вас не было детства. Но после перехода FF… <span class="read-more"><a href="https://testitquickly.com/2020/12/03/pune-style-la-firefox/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[Когда вкладок много, и непонятно, которая из них открыта прямо сейчас, то можно взять быка за CSS.

Раньше-то мы щупали за вымя расширения Firefox, коих было больше, чем нужно, и если у вас раньше hdd не завывал при запуске FF с шестьюдесятью расширениями на борту, то у вас не было детства. Но после перехода FF на новый движ, движ с расширениями завял, бо их же переписывать надо. А старый CSS остаётся в строю, ака берданка (она уже не в строю).

<span id="more-4559"></span>

Всего-то надо:
<ul>
 	<li>Открыть в Firefox страницу “<em>about:config”</em></li>
 	<li>Найти параметр <em>toolkit.legacyUserProfileCustomizations.stylesheets</em></li>
 	<li>Одним даблкликом сделать его = <strong>TRUE</strong></li>
 	<li>Открыть страницу “<em>about:profiles</em>”</li>
 	<li>Узнать там КОРНЕВОЙ каталог своего профиля Firefox.
<ul>
 	<li>Кроме корневого есть и локальный каталог, который находится в профиле юзера. Игнорируем локальный каталог.</li>
 	<li>Скорее всего, будет представлено несколько профилей браузера. Надо найти только тот, у которого в разделе «Профиль по умолчанию» отмечено «<strong>да</strong>», остальные игнорим.</li>
 	<li>Название профиля будет нечеловеческим, вроде <em>“04l0hhhm.default-1234551996427”</em> или “<em>p191htyk.default-release</em>”. Это нормально.</li>
</ul>
</li>
 	<li>Открыть — повторюсь — КОРНЕВОЙ каталог своего профиля — и закрыть Firefox.</li>
 	<li>Создать в корневом каталоге своего профиля новый каталог — “<em>chrome”</em></li>
 	<li>Создать в новом каталоге “<em>chrome”</em> новый файл “<em>userChrome.css”</em></li>
 	<li>Записать в файл “<em>userChrome.css”</em> код для управления стилем вкладки в фокусе.</li>
</ul>
Например, такой:

<!-- /wp:post-content -->

<!-- wp:code -->
<pre class="wp-block-code"><code>/* Active Tab text color */
.tabbrowser-tab[selected="true"] {
    font-weight: bold !important;
    font-size: 15px !important;
    color: #d9c3c5 !important;
    }
/* Active Tab background color */
.tab-background[selected="true"] {
    background-color: #4753bd !important;
    background-image: none !important;
    } </code></pre>
<!-- /wp:code -->

<!-- wp:list -->
<ul>
 	<li>Запустить Firefox.</li>
</ul>
<!-- /wp:list -->

<!-- wp:image {"id":4563,"sizeSlug":"large","linkDestination":"media"} -->
<figure class="wp-block-image size-large"><a href="https://testitquickly.com/wp-content/uploads/2020/12/firefoxtabsstyled.png"><img decoding="async" class="wp-image-4563" src="https://testitquickly.com/wp-content/uploads/2020/12/firefoxtabsstyled.png?w=899" alt="" /></a></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->

Если кажется глазовырвно, то надо открывать какой-нибудь GIMP или Paint и выбирать rgb-код более подходящих цветов. Рекомендуется использовать пастельные тона, а не black/white, мы же не на тропе войны.

<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<h2><strong>А давайте ещё фокусы!</strong></h2>
А давайте. Заставим Firefox <span style="color: #ff6600;" data-darkreader-inline-color="">отображать вкладки в несколько рядов</span>.

В тот самый файл “<em>userChrome.css”</em> надо добавить инструкции для отображения вкладок в несколько строк (взяты <a href="https://github.com/MrOtherGuy/firefox-csshacks/blob/master/chrome/multi-row_tabs.css">отсюда</a>):

<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>/* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/multi-row_tabs.css made available under Mozilla Public License v. 2.0
See the above repository for updates as well as full license text. */

/* Makes tabs to appear on multiple lines */
/* Tab reordering will not work and can't be made to work */
/* You can use multi-row_tabs_window_control_patch.css to move window controls to nav-bar*/

/* You might want to move tabs-new-tab-button outside tabs toolbar for smoother behavior */

/* Change the --multirow-n-rows to change maximum number of rows before the rows will start to scroll  */

:root{
    --multirow-n-rows: 2;
    --multirow-tab-min-width: 80px;
    --multirow-tab-dynamic-width: 1; /* Change to 0 for fixed-width tabs using the above width. */
}

/* Scrollbar can't be clicked but the rows can be scrolled with mouse wheel */
/* Uncomment the next line if you want to be able to use the scrollbar with mouse clicks */

/* #tabbrowser-arrowscrollbox{ -moz-window-dragging: no-drag } */

/* Uncommenting the above makes you unable to drag the window from empty space in the tab strip but normal draggable spaces will continue to work */

#tabbrowser-tabs{
  min-height: unset !important;
  padding-inline-start: 0px !important
}

@-moz-document url(chrome://browser/content/browser.xhtml){
  #scrollbutton-up~spacer,
  #scrollbutton-up,
  #scrollbutton-down{ display: var(--scrollbutton-display-model,initial) }

  scrollbox[part][orient="horizontal"]{
    display: flex;
    flex-wrap: wrap;
    overflow-y: auto;
    max-height: calc((var(--tab-min-height) + 2 * var(--tab-block-margin,0px)) * var(--multirow-n-rows));
    scrollbar-color: currentColor transparent;
    scrollbar-width: thin;
    scrollbar-gutter: stable;
    scroll-snap-type: y mandatory;
  }
}

.scrollbox-clip[orient="horizontal"],
#tabbrowser-arrowscrollbox{
  overflow: -moz-hidden-unscrollable;
  display: inline;
  --scrollbutton-display-model: none;
}

.tabbrowser-tab{ scroll-snap-align: start; }

#tabbrowser-tabs .tabbrowser-tab[pinned]{
  position: static !important;
  margin-inline-start: 0px !important;
}

.tabbrowser-tab[fadein]:not([pinned]){
  min-width: var(--multirow-tab-min-width) !important;
  flex-grow: var(--multirow-tab-dynamic-width) !important;
  /*
  Uncomment to enable full-width tabs, also makes tab dragging a tiny bit more sensible
  Don't set to none or you'll see errors in console when closing tabs
  */
  /*max-width: 100vw !important;*/
}

.tabbrowser-tab &gt; stack{ width: 100%; height: 100% }

/* remove bottom margin so it doesn't throw off row height computation */
#tabs-newtab-button{ margin-bottom: 0 !important; }

#tabbrowser-tabs[hasadjacentnewtabbutton][overflow="true"] &gt; #tabbrowser-arrowscrollbox &gt; #tabbrowser-arrowscrollbox-periphery &gt; #tabs-newtab-button {
  display: flex !important;
  align-items: center; /* Fx &lt;112 compatibility */
}

#alltabs-button,
:root:not([customizing]) #TabsToolbar #new-tab-button,
#tabbrowser-arrowscrollbox &gt; spacer,
.tabbrowser-tab::after{ display: none !important }</code></pre>
<!-- /wp:code -->

Условно всё в порядке. Если нужно отображать вкладки в три и больше рядов — изменить циферку у параметра “multirow-n-rows”. Ширина вкладок если не устраивает — изменить “multirow-tab-min-width”.

Придётся привыкнуть к тому, что перетаскивание вкладок покажется хаотичным — если двигаешь вкладку со второго или третьего ряда, она резво метнётся в первый ряд.

И ещё какое-то время будет странно не видеть вкладку на том месте, где она была — их прокрутка не даётся даром. К этому тоже привыкаешь.

Посматривать весь список вкладок сразу поможет расширение “Tree Style Tab”.]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2020/12/03/pune-style-la-firefox/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4559</post-id>	</item>
		<item>
		<title>Сохранить несохраняемое видео от дяди Боба Мартина</title>
		<link>https://testitquickly.com/2020/09/23/scoatem-clipusoarele-din-net/</link>
					<comments>https://testitquickly.com/2020/09/23/scoatem-clipusoarele-din-net/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Wed, 23 Sep 2020 19:14:23 +0000</pubDate>
				<category><![CDATA[Видео]]></category>
		<category><![CDATA[Инструменты]]></category>
		<category><![CDATA[Скриншоты]]></category>
		<category><![CDATA[Читерство]]></category>
		<category><![CDATA[Юзероиммитатор]]></category>
		<category><![CDATA[Calc]]></category>
		<category><![CDATA[kate]]></category>
		<category><![CDATA[Robert Martin]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=4521</guid>

					<description><![CDATA[Дядя Анкл Боб Мартин уже давно записывает местами хилэриоус, местами вообщенотхилэриоус видео про всякие премудрости относительно программирования и продаёт на cleancoders.com доступ к ним за сравнительно немного мировых нефтяных запасов: 14$ за просмотр видео (стриминг) 20$ за возможность скачать видео) Анадысь я сбегал на один его открытый стрим про историю и будущее языков программирования и… <span class="read-more"><a href="https://testitquickly.com/2020/09/23/scoatem-clipusoarele-din-net/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Дядя Анкл Боб Мартин уже давно записывает местами хилэриоус, местами вообщенотхилэриоус видео про всякие премудрости относительно программирования и продаёт на <a href="https://cleancoders.com">cleancoders.com</a> доступ к ним за сравнительно немного мировых нефтяных запасов:</p>
<ul>
<li>14$ за просмотр видео (стриминг)</li>
<li>20$ за возможность скачать видео)</li>
</ul>
<p>Анадысь я сбегал на один его открытый <a href="https://www.youtube.com/watch?v=ya1xDCCMh7g">стрим про историю и будущее языков программирования</a> и получил за это такое письмо</p>
<p style="padding-left: 40px;">Thanks for attending Uncle Bob&#8217;s webinar, The Future of Programming Languages! Use the following code to redeem a free streaming episode of your choice from cleancoders.com…</p>
<p>Я выбрал видео самым близким мне названием «Test Design»</p>
<p style="padding-left: 40px;">Clean Code: Advanced TDD, Episode 21</p>
<p>
56 minutes • 1.00GB • Aug 2013</p>
<p>
https://cleancoders.com/episode/clean-code-episode-21</p>
<p>Редим-код как раз на 14$, поэтому я положил в корзину «стрим» и купил видео на просмотр бесплатно, на условиях продавца, легально и законно.</p>
<p>
<a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob007_1.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4530" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob007_1.png?w=300" alt="" width="300" height="187" /></a></p>
<p>
Но я хочу это видео скачать бесплатно без регистрации и смс. Что делать?</p>
<p>
<span id="more-4521"></span></p>
<h3><span style="color: #008000;"><strong>Найти источник видео</strong></span></h3>
<p style="padding-left: 40px;">Ввиду того, что меня никто не просил всё это делать, и вообще это всё мамкино кулхацкерство для обучения неофитов, все уникальные символосочетания в ссылках и на скриншотах заменены/замазаны.</p>
<p style="padding-left: 40px;">И вообще все ссылки резко сокращены, бо всё равно это условности.</p>
<p><strong>Firefox</strong>: F12 &gt; Сеть &gt; Медиа (это фильтр, собственно). Тыкнуть по какому-нибудь источнику в списке полученных ответов и выбрать для него режим просмотра Headers (Заголовки).</p>
<p>
<a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob001.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4531" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob001.png?w=300" alt="" width="300" height="166" /></a></p>
<p>
<strong>Chrome:</strong> F12 &gt; Сеть &gt; XHR (или фильтруем по All, разница несущественная). Тыкнуть по какому-нибудь источнику и выбрать для него режим просмотра Headers (Заголовки).</p>
<p>
<a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob003.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4532" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob003.png?w=300" alt="" width="300" height="165" /></a></p>
<p>
В общем, что хром, что по лбу — видим повторяющиеся URL типа https://videos-cloudflare.jwpsrv.com/content/conversions/abcdef123456/videos/NVGldаRq-2327О335.mp4-67.ts — отсюда далее представляем их в виде</p>
<pre>https://videos/NVGldаRq-2327О335.mp4-1.ts
https://videos/NVGldаRq-2327О335.mp4-2.ts
https://videos/NVGldаRq-2327О335.mp4-3.ts
…</pre>
<p>Следовательно, видео приходит в браузер кусками/частями в виде ts-файлов, которые принадлежат какому-то большому файлу с названием «NVGIdаRq-2327О335.mp4» и пронумерованы логично и последовательно.</p>
<p>
Прокрутил я это видео дяди АнклБоба в конец и посмотрел в логе номер последней прилетевшей части — «848.ts» — всего-то файлов скачать. Оукей, «Челленджер» акксепдет.</p>
<p style="padding-left: 40px;">Хотя, мы уже знаем имя файла (NVGldaRq-23270335.mp4). Так поскорее же</p>
<pre style="padding-left: 40px;">wget https://videos/NVGldаRq-2327О335.mp4</pre>
<p style="padding-left: 40px;">Однако в ответ приходит</p>
<pre style="padding-left: 40px;">403 Forbidden
2020-09-27 23:59:22 ОШИБКА 403: Forbidden.</pre>
<p style="padding-left: 40px;">Нда? Ну, тогда надо</p>
<h3><span style="color: #008000;"><strong>Упорядочить добычу</strong></span></h3>
<p>Чтобы получить ВСЕ ссылки на ВСЕ эти файлы, их надо инкрементально размножить. Для этого можно выучить, наконец, Python, или можно зайти в Excel. Ладно, у меня</p>
<p>
<strong>LibreOffice Calc</strong></p>
<p>
И в первую колонку положим общий шаблон</p>
<pre>https://videos/NVGldаRq-2327О335.mp4-
https://videos/NVGldаRq-2327О335.mp4-
https://videos/NVGldаRq-2327О335.mp4-</pre>
<p>А во вторую — инкремент</p>
<pre>1.ts
2.ts
3.ts</pre>
<p>Достаточно трёх строк. Ухватили край третьей ячейки курсором и потянули вниз, пока не мелькнёт строка «848». Автоподстава безупречна.</p>
<p>
<a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob004.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4534" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob004.png?w=300" alt="" width="300" height="257" /></a></p>
<p>
Выделить обе колонки, Ctrl+C.</p>
<p>
<strong>Kate</strong></p>
<p>
Ctrl+V. Получили вот это:</p>
<pre>https://videos/NVGldаRq-2327О335.mp4- 1.ts
https://videos/NVGldаRq-2327О335.mp4- 2.ts
https://videos/NVGldаRq-2327О335.mp4- 3.ts
…</pre>
<p><strong>Kate.Замена #1</strong> (Ctrl+R)</p>
<p>
Убираем символы табуляции после «.mp4»</p>
<pre>[.mp4-\t]
[.mp4-]
Режим: Управляющие последовательности
«Заменить все».</pre>
<p><a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob010.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4525" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob010.png?w=300" alt="" width="300" height="46" /></a></p>
<p>
Результат:</p>
<pre>https://videos/NVGldаRq-2327О335.mp4-1.ts
https://videos/NVGldаRq-2327О335.mp4-2.ts
https://videos/NVGldаRq-2327О335.mp4-3.ts
…</pre>
<p><strong>Kate.Замена #2</strong></p>
<p>
Убираем перенос строк</p>
<pre>[.ts\n]
[.ts ]
Режим: Управляющие последовательности
«Заменить все».</pre>
<p>Результат: одна длинная строка, уходящая в правую даль.</p>
<pre>https://videos/NVGldаRq-2327О335.mp4-1.ts https://videos/NVGldаRq-2327О335.mp4-2.ts https://videos/NVGldаRq-2327О335.mp4-3.ts</pre>
<p>Перед этой строкой дописываем настройки wget (Расшифровка: эй, wget, а поскачивай мне файлы из строки поочерёдно, и если будет отказ соединения, повторяй подключение через каждые 60 секунд):</p>
<pre>wget -c -t 60 https://videos/NVGldаRq-2327О335.mp4-1.ts https://videos/NVGldаRq-2327О335.mp4-2.ts https://videos/NVGldаRq-2327О335.mp4-3.ts…</pre>
<p>Ctrl+A, Ctrl+C.</p>
<p>
<strong>В консоль</strong></p>
<p>
Сделать новый каталог и зайти в него.</p>
<pre>mkdir UncleBobVideo &amp;&amp; cd UncleBobVideo</pre>
<p>Вставить награбленное добро с wget в голове (Ctrl+V) и запустить (Enter).</p>
<p>Смотрим на мельтешение строк.</p>
<p>
<a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob002.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4535" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob002.png?w=300" alt="" width="300" height="152" /></a></p>
<p>
Если всё ок — уходим играть «<em>Белоруссия ждёт переименования в Беларусь</em>» на ксилофоне, бо это надолго.</p>
<p>Итог скачивания файлов в Dolphin выглядит норм. Но там сортировка приближённая к естественной (в настройках Sorting mode = Natural).</p>
<p>
<a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob005.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4526" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob005.png?w=300" alt="" width="300" height="207" /></a></p>
<p>
В действительности всё отсортировано так, как это всегда было в DOS…</p>
<p>
<a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob006.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4528" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob006.png?w=191" alt="" width="191" height="300" /></a></p>
<p>
И если запихнуть все эти файлы в один плейлист в видеоплеере, то воспроизводиться всё будет именно так, как должно по машинной логике:</p>
<pre>1.ts
10.ts
100.ts
101.ts
…</pre>
<p>Что можно сделать:</p>
<ol>
<li>или выстроить файлы в плейлисте вручную,</li>
<li>или — old school — переименовать файлы по следующему шаблону:</p>
<p>
001.ts</p>
<p>
002.ts</p>
<p>
…</p>
<p>
009.ts</p>
<p>
010.ts</p>
<p>
011.ts</p>
<p>
и так далее.</li>
</ol>
<p>Возможно, отредактировать плейлист будет проще. Это же обычный текстовый файл с расширением m3u, а его содержимое — хэх, копипаст из того самого Excel идеально подойдёт (мы же его не удалили?) с удалением символов табуляции.</p>
<p style="padding-left: 40px;">Ну или в консоли</p>
<pre style="padding-left: 40px;">ls &gt; playlist.m3u</pre>
<p style="padding-left: 40px;">Чтобы получить более внятный список файлов, можно использовать ls так:</p>
<pre style="padding-left: 40px;">ls --group-directories-first -p -1 &gt; playlist.m3u</pre>
<p style="padding-left: 40px;">Затем открыть файл playlist.m3u в Kate и вперёд, переставлять блоки текста местами. Или же копипаст из экселя, чо мудрить-то…</p>
<p>Теперь можно открыть этот плейлист в видеоплеере и если он будет адекватным, то можно будет смотреть череду коротких видеофайликов как один большой (50 минут).</p>
<p>А если раз в сутки будут разрывы между файлами — можно собрать все разрозненные файлы в один большой видеофайл, мне для этого очень норм <em>OpenShot</em>.</p>
<p>Или можно поискать какое-то сложное колдунство в консоли, бо буквально всё то, что я сделал в Calc и Kate, можно сделать в консоли, бо это же работа со строками в plain/text файлах.</p>
<p style="padding-left: 40px;">И даже сборку множества видеофайлов в один можно сделать в консоли…</p>
<p>Итоговое соображение: всё то, что попадает в сеть, может быть скачано и использовано. Смиряемся с этим.</p>
<h3><span style="color: #008000;"><strong>Сохранить полноразмерное фото из инстаграма</strong></span></h3>
<p>А теперь бесплатный лайфхак для любителей бесплатных лайфхаков. Можно сохранить полноразмерное фото из инстаграм, если воспользоваться тем же методом просмотра загружаемого контента. Иногда там файлы размером в три-пять тысяч пикселей, поэтому лечение стоит свеч.</p>
<ol>
<li>Запустить в браузере «уголок веб-мастера» по [F12].</li>
<li>Открыть страницу с фотографией (иначе ничего не загрузится же), например, это <a href="https://www.instagram.com/p/CFXlAIpgU1w/">https://www.instagram.com/p/CFXlAIpgU1w/</a></li>
</ol>
<p><strong>Firefox</strong>: F12 &gt; Сеть &gt; Изображения</p>
<p>
<a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob008.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4536" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob008.png?w=300" alt="" width="300" height="162" /></a></p>
<p style="padding-left: 40px;">Отсортировать по колонке «Размер» так, чтобы самые объёмные файлы были первыми.</p>
<p style="padding-left: 40px;">Тыкнуть по первому источнику и выбрать режим просмотра Ответ.</p>
<p style="padding-left: 80px;">Если картинка неподходящая — тыкаем следующий источник. Долго тыкать не придётся.</p>
<p style="padding-left: 40px;">Затем даблклик по подходящему источнику — откроется новая вкладка с искомой картинкой в полном размере первоисточника.</p>
<p><strong>Chrome</strong>: F12 &gt; Network &gt; Img</p>
<p>
<a href="https://testitquickly.com/wp-content/uploads/2020/09/unclebob009.png"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-4537" src="https://testitquickly.com/wp-content/uploads/2020/09/unclebob009.png?w=300" alt="" width="300" height="165" /></a></p>
<p style="padding-left: 40px;">Тыкнуть по какому-нибудь источнику и выбрать режим просмотра Preview.</p>
<p style="padding-left: 40px;">Общая сортировка по размеру принятых файлов и последовательное тыканье по ним — ня.</p>
<p>Ставьте лайки на свои колокольчики и подписывайтесь на дядибобин канал.</p>
<p>Мне же остаётся последний лайфхак: сделать это всё в консоли, на bash и в Python. Задача достижима (руками), следовательно, можно всё сделать не выходя из консольки.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2020/09/23/scoatem-clipusoarele-din-net/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4521</post-id>	</item>
		<item>
		<title>Про спички, удовлетворение и переосмысление</title>
		<link>https://testitquickly.com/2020/06/24/sa-aveti-doua-zile-frumoase-in-continuare/</link>
					<comments>https://testitquickly.com/2020/06/24/sa-aveti-doua-zile-frumoase-in-continuare/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Wed, 24 Jun 2020 01:21:29 +0000</pubDate>
				<category><![CDATA[Изображения]]></category>
		<category><![CDATA[Скриншоты]]></category>
		<category><![CDATA[Соображения]]></category>
		<category><![CDATA[Nirvana]]></category>
		<category><![CDATA[Эдвард де Боно]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=4444</guid>

					<description><![CDATA[Мой природный способ «врубания» в тему происходит через осмысление — это такая познавательная процедура, которая подразумевает постижение действительности более с помощью мышления, нежели эксперимента. И хотя одно другому не противоречит, это уточение важно. Я же не столько думаю, сколько обдумываю и додумываю. Это очень медленный процесс с неочевидным результатом. Иногда полезно. Иногда впустую. Некоторые делают… <span class="read-more"><a href="https://testitquickly.com/2020/06/24/sa-aveti-doua-zile-frumoase-in-continuare/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Мой природный способ «врубания» в тему происходит через осмысление — это такая познавательная процедура, которая подразумевает постижение действительности более с помощью мышления, нежели эксперимента. И хотя одно другому не противоречит, это уточение важно.</p>
<p>Я же не столько думаю, сколько обдумываю и додумываю. Это очень медленный процесс с неочевидным результатом.</p>
<p>Иногда полезно.</p>
<p>Иногда впустую.</p>
<p>Некоторые делают это эффективно (книги Эдварда де Боно могут помочь), бо мышление — навык, который нужно тренировать.</p>
<p>Некоторые делают это быстро и безо всяких книг, бо природа.</p>
<p>Некоторые вообще не понимают, о чём речь.</p>
<p style="padding-left: 40px;">Да?!</p>
<p>Блог появился как способ осмысления темы тестирования ПО. Каждая статья — как обобщение какой-то идеи. Или явления. Или что там ещё есть…</p>
<p><span id="more-4444"></span></p>
<p>Поначалу я, как и полагается джуну, постоянно производил открытия. Ну, вроде, надо же, если чайник постоит на огне, то он станет горячим. Хм… А если огонь убрать… хм… как интересно… как больно… как интересно…</p>
<p>Можно сперва объяснить ребёнку про существование в природе интенсивного процесса окисления, который сопровождается излучением в видимом диапазоне и выделением тепловой энергии и представляет собой совокупность раскалённых газов, которые выделяются в результате химической реакции.</p>
<p>А можно дать ребенку поиграть со спичками.</p>
<p style="padding-left: 40px;">Что правильнее?</p>
<p style="padding-left: 40px;">Что эффективнее?</p>
<p style="padding-left: 40px;">Что дешевле?</p>
<p style="padding-left: 40px;">Что разумнее?</p>
<p>Обстоятельства сложились так, что в моё время были только спички и возможность свободно поджигать занавески на проекте. Кто выжил, тот умеет как надо поджигать и не давать разгораться. И умеет вовремя тушить. И идёт читать про термодинамику, а там уже история, а там процессы, а там ГОСТ и есть о чём подумать.</p>
<p>В наше время от джуна заранее ожидают возможность рассчитать объём раскалённых газов и время, за которое сгорит дотла одна комната, на 14/88 заполненная каким-нибудь горючим материалом. Надо начинать с истории, процессов, ГОСТ-ов и учебников. Сперва получи кандидатскую по горению занавесок, потом подумаем, можно ли доверить тебе написание тест-кейсов.</p>
<p style="text-align: center;"><span style="color: #008000;"><em>Начал бы я сегодня осмысление тестирования ПО с ведения блога?</em></span></p>
<p>Это занятие стало для меня системным где-то с 2006-го, когда уже появились первые проплешины на шкуре и понимание того, что иногда и вода горит, хотя мы знаем, что вода не горит.</p>
<p style="padding-left: 40px;">Если в качестве окислителя будет не кислород, то и вода будет гореть. Например, в атмосфере фтора вода горит бледно-фиолетовым пламенем, при этом вода является топливом, а в результате горения выделяется кислород.</p>
<p style="padding-left: 40px;">То есть, не всё делится на строго agile отдельно и waterfall отдельно. Это вообще не противоположности… да, долго объяснять.</p>
<p style="padding-left: 40px;">Скипнем.</p>
<p>В принципе, осмысление и ведение тематических дневников не нуждается в публичности, но почему бы и нет… Я всё ждал, что найдётся кто-то, кому всё это тоже интересно. Никто не появлялся, но меня уже пёрло открытиями, которые уже давно кем-то открыты. Это становится понятно, если есть доступ к <a href="http://testitquickly.com/2019/03/16/vekituri-rablagite/">старым книгам</a>…</p>
<p style="padding-left: 40px;">…бле, и это надо долго объяснять.</p>
<p style="padding-left: 40px;">Скипнем.</p>
<p>В августе 2008-го я появился в Киеве, и там уже было с кем обо всём этом поговорить, было с кем соревноваться. И меня пёрло.</p>
<p>Был даже план тем, по которым хочется высказаться, и график их публикаций.</p>
<p>Всё это закончилось в 2011-ом.</p>
<p><div id="attachment_4448" style="width: 510px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-4448" class="size-large wp-image-4448" src="https://testitquickly.com/wp-content/uploads/2020/06/d0a1d182d0b0d182d0b8d181d182d0b8d0bad0b0-d0bfd183d0b1d0bbd0b8d0bad0b0d186d0b8d0b9-d0b2-d0b1d0bbd0bed0b3d0b5.png?w=500" alt="" width="500" height="302" /><p id="caption-attachment-4448" class="wp-caption-text">Статистика публикаций</p></div></p>
<p>У меня появилась аудитория, и это хорошо.</p>
<p>Но аудитория приходила за объяснениями, однако не ради объяснений.</p>
<p style="padding-left: 40px;">Сложно?!</p>
<p style="padding-left: 40px;">Ок, объясняю.</p>
<p>Кагбэ, правильное, грамотное осмысление любой темы приносит упорядочивание и объяснение сложных абстракций.</p>
<p>Со стороны кажется, что у меня тут объясняют простыми словами сложные слова. Это, кагбэ, тангенциально, и даже ортогонально моему основному занятию, поэтому чего дёргаться?!</p>
<p style="padding-left: 40px;">«Here we are now, entertain us» © sCurt şi Cobain</p>
<p>Но мне уже хочется говорить про более сложные абстракции, про тест-дизайн, а не толковать основы, да ещё и детально. А ко мне постоянно заходят новички, которые очень интересуются не столько тестированием, сколько „а получится ли у меня стать тестировщиком?”</p>
<p style="padding-left: 40px;">А кто знает?</p>
<p>Я не должен каждый раз волноваться, что кто-то не сумеет в гугл и надо заранее объяснять, что такое тангенциальность и ортогональность.</p>
<p>Я не должен готовить <em>каждого</em> интересующегося быстрым и безболезненным входом в профессию к быстрому и безболезненному входу в профессию.</p>
<p style="padding-left: 40px;">Нет единого решения, не всем дано, и даже за деньги не факт, что получится.</p>
<p>На эти годы как раз пришёлся рост штурмующих IT через тестирование, ведь оно «вроде легче». И мы быстро приехали: я уже хочу сказать, что тестирование нифига не «легче», даже если снаружи так кажется, и что <a href="http://testitquickly.com/2017/10/23/simplitudinea-complexitatii/">внутри оно очень сложное</a>, бо оно происходит из того самого Computer science, объёмом которого пугают взрослых и детей, и что надо читать старые книги… вот это вот всё. А моя аудитория хочет узнать про то, что тестирование «легче», а не… вот это вот всё.</p>
<p>Запал иссяк. Я выкинул график, удалил все черновики и перешёл в режим «писать только тогда, когда уже невозможно терпеть» (ставьте ударение как угодно, бо правильно и так, и эдак).</p>
<p>Сделанного за предыдущее время хватило приходящей аудитории на несколько лет. Заходов в блог было всё больше, пик посещений пришёлся аж на 2015-й и движуха затухла только к 2018-ому.</p>
<p><div id="attachment_4446" style="width: 510px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-4446" class="wp-image-4446 size-large" title="Статистика посещений и просмотров" src="https://testitquickly.com/wp-content/uploads/2020/06/d0a1d182d0b0d182d0b8d181d182d0b8d0bad0b0-d0bfd0bed181d0b5d189d0b5d0bdd0b8d0b9.jpg?w=500" alt="Статистика посещений и просмотров" width="500" height="503" /><p id="caption-attachment-4446" class="wp-caption-text">Статистика посещений и просмотров</p></div></p>
<p>Кто бы мог подумать (не я), что когда публика [наконец-то] приходит — её надо ублажать. Надо подыскивать интересные [только] для неё темы, надо выдерживать график публикаций. Надо танцевать вприсядку, даже если незачем и не хочется.</p>
<p style="padding-left: 40px;">И знаете что…</p>
<p>За это время я ещё и стал постоянным тренером тестировщиков, и для осмысления блог уже был нужен всё реже. Он превратился в средство для ссылания.</p>
<p style="padding-left: 40px;">По каким-то темам приходится повторяться, и бывает удобно просто написать что-то один раз и ссылаться на уже сказанное.</p>
<p style="padding-left: 40px;">Но это не та функциональность, ради которой всё затевалось.</p>
<p>Также где-то с 2010-го я начал активно вылезать на конференции. Доклады и записи в блоге — кагбэ, одно и то же по сути, но это разные форматы. Хорошо бы их совмещать, дополняя в статье сказанное на докладе… но это энергозатратно. Когда ни за доклады, ни за статьи не платят, более чем достаточно отдокладиться и закрыть тему.</p>
<p>И в 2015-ом моя спина таки крякнула. Не ваше дело, но когда надо заново учиться ходить, все эти ваши блоги становятся бесконечным нулём.</p>
<p>Что осталось <strong>в итоге</strong>?</p>
<p>Количество публикаций упало до их естественного минимума.</p>
<p>Мои тексты усложнились вслед за моими интересами и изменёнными уровнями понимания тестирования ПО, и какие-то вещи надо предварительно долго объяснять, это всё усложняет и утомляет. Из анекдота, который нуждается в долгом предварительном объяснении, весь юмор выхолащивается. Проще ничего не писать или ограничиться твитом.</p>
<p>Аудитория [наконец-то] скукожилась.</p>
<p>Я уже старая консервная банка, мне незачем развлекать ашиклеков. Мне надо спуститься в сеть тёмных <span class="st">туннелей</span>, и я не знаю, что там находится и как я оттуда выйду.</p>
<p>У меня в активе исторический контекст и много текстов, которые бывает не стыдно перечитывать.</p>
<p>В целом я доволен.</p>
<p>Давно уже надо было записывать всё то, что мне кажется важным, в смирный и упорядоченный блог, а не в заполошный фэйсбук.</p>
<p>Давно уже надо было перестать думать о том, что кому-то что-то может не понравиться, поэтому вот это лучше переформулировать… а это вообще не надо упоминать.</p>
<p style="padding-left: 40px;">Например, какая-то фря может настаивать на том, что мне надо всегда писать «ибо», а не «бо», бо ей неудобно воспринимать такой стиль.</p>
<p style="padding-left: 40px;">Дык вот…</p>
<p>Давно уже надо было вернуться к осмыслению того, что мне интересно осмыслять, не дёргаясь и не стараясь «всё объяснить» заранее или детальнее необходимого.</p>
<p>Итого, блог «только про тестирование» закончился.</p>
<p style="padding-left: 40px;">Со временем придумается и новое название. Сейчас оно несущественно.</p>
<p>Далее я буду публиковать тут всё то, что мне интересно и полезно здесь и сейчас, от каких-то необязательных рассуждений до инструкций по автоматизации (ранее это всё уходило в siderulezzz.wordpress.com, но инструмент обновился и когда-то полезный мне блог требует кардинального переосмысления, и ресурс переименовался в <a href="https://afftomat.wordpress.com/">afftomat.wordpress.com</a>) или решений по вёрстке в LaTeX, или настройке обновления времения в Debian через systemd, или схеме нарезания японской катаной херсонского арбуза. Очевидно, что всё это интересно только мне, а не большому количеству <del>благодарных</del> читателей.</p>
<p>Всем спасибо, давайте расходиться.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2020/06/24/sa-aveti-doua-zile-frumoase-in-continuare/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4444</post-id>	</item>
		<item>
		<title>Тест-кейсы для гуглопереводчика Google</title>
		<link>https://testitquickly.com/2019/08/05/buonaparole/</link>
					<comments>https://testitquickly.com/2019/08/05/buonaparole/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Mon, 05 Aug 2019 10:43:58 +0000</pubDate>
				<category><![CDATA[Постановка мозгов]]></category>
		<category><![CDATA[Скриншоты]]></category>
		<category><![CDATA[Тренировка]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[МК-61]]></category>
		<category><![CDATA[Наполеон Бонапарт]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=4242</guid>

					<description><![CDATA[На форуме неравнодушных к равнодушию кто-то смелый попросил(а) оценить тест-кейсы первого отжима для гуглопереводчика Google с английского языка на русский. Вот что было предложено: Шаги:  Зайти на сайт https://translate.go&#8230;e&#38;sl=auto&#38;tl=en Нажать на кнопку в левой стороне &#171;АНГЛИЙСКИЙ&#187; Нажать на кнопку в правой стороне &#171;РУССКИЙ&#187; Ввести слово на английском языке. Ожидаемый результат Окно с допустимыми языками открывается при… <span class="read-more"><a href="https://testitquickly.com/2019/08/05/buonaparole/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>На форуме неравнодушных к равнодушию кто-то смелый <a href="http://software-testing.ru/forum/index.php?/topic/38333-otcenite-test-kejsy-nachinaiuschego-testera/">попросил</a>(а) оценить тест-кейсы первого отжима для гуглопереводчика Google с английского языка на русский.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-4249" src="https://testitquickly.com/wp-content/uploads/2019/08/translategoogle.png?w=500" alt="" width="500" height="322" /></p>
<p>
Вот что было предложено:</p>
<p style="padding-left: 40px;"><strong>Шаги: </strong></p>
<ol>
<li style="list-style-type: none;">
<ol>
<li>Зайти на сайт <a class="bbc_url" title="Ссылка" href="https://translate.google.com/?hl=ru#view=home&amp;op=translate&amp;sl=auto&amp;tl=en" rel="nofollow external">https://translate.go&#8230;e&amp;sl=auto&amp;tl=en</a></li>
<li>Нажать на кнопку в левой стороне &#171;АНГЛИЙСКИЙ&#187;</li>
<li>Нажать на кнопку в правой стороне &#171;РУССКИЙ&#187;</li>
<li>Ввести слово на английском языке.</li>
</ol>
</li>
</ol>
<p style="padding-left: 40px;"><strong>Ожидаемый результат</strong></p>
<ol>
<li style="list-style-type: none;">
<ol>
<li>Окно с допустимыми языками открывается при нажатии.</li>
<li>Можно выбрать желаемый язык.</li>
<li>Перевод выполняется автоматически при вводе слова.</li>
</ol>
</li>
</ol>
<p><span id="more-4242"></span></p>
<p style="padding-left: 40px;"><strong>Позитивные тест-кейсы</strong></p>
<p style="padding-left: 80px;"><strong>Условия: </strong></p>
<p>
1) Все буквы в слове строчные.</p>
<p>
2) Все буквы в слове заглавные.</p>
<p>
3) Буквы в слове и строчные, и заглавные.</p>
<p>
4) Слово содержит небуквенный знак.</p>
<p>
5) Текст без пробелов.</p>
<p style="padding-left: 80px;"><strong>Пример:</strong></p>
<p>
1) hello, hi, bye</p>
<p>
2) QUEEN, KING, WE</p>
<p>
3) ForeVeR</p>
<p>
4) j`unior, impa%ct, cl-ass</p>
<p>
5) hellohowareyou</p>
<p style="padding-left: 40px;"><strong>Негативные тест-кейсы </strong></p>
<p style="padding-left: 80px;"><strong>Условия:</strong></p>
<p>
1) Цифры и другие небуквенные знаки.</p>
<p>
2) Многократное дублирование буквы в слове.</p>
<p style="padding-left: 80px;"><strong>Пример: </strong></p>
<p>
1) ###, 12, @</p>
<p>
2) helllp</p>
<p>Приговор: предлагаемые тест-кейсы — имитация тестирования. Автор всего лишь словами перерассказал «слепому» о том, как он курсором по экрану тыкал.</p>
<p>Это, кагбэ, норм для начинающего, но и только. Плохо то, что для многих это остаётся нормой. Оставшимся немногим очевидно пахнет родной шинелью Гоголя, из которой вышла вся переводная литература о тестировании ПО…</p>
<p><div id="attachment_4247" style="width: 510px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-4247" class="wp-image-4247 size-large" src="https://testitquickly.com/wp-content/uploads/2019/08/d0bdd0b0d0bfd0bed0bbd0b5d0bed0bd.jpg?w=500" alt="" width="500" height="413" /><p id="caption-attachment-4247" class="wp-caption-text">Надо подумать…</p></div></p>
<p>Таки да, это надо обдумать.</p>
<p>И надо думать по-другому.</p>
<h3><span style="color: #008000;"><strong>Про вопросы</strong></span></h3>
<p>Вот три вопроса, на которые тестировщику НАДО получить ответ ДО начала тыканья курсором по экрану:</p>
<ol>
<li>Что это?</li>
<li>Зачем это нужно?</li>
<li>Как оно делает то, что нужно?</li>
</ol>
<p>Как вы это сделаете — неважно.</p>
<p style="padding-left: 40px;">Если не сделаете — не беда, будете плестись в хвосте постоянно удаляющегося поезда прогресса с высокими зарплатами.</p>
<p><span style="color: #008000;"><strong>Что это?</strong></span></p>
<p>
Никого рядом нет, кто мог бы за минуту объяснить, что это за шняга. Подразумевается, что я всё знаю или узнаю в процессе.</p>
<p>
Ок, гуглопереводчик мне уже знаком, я знаю, что он помогает переводить</p>
<ul>
<li>слова,</li>
<li>предложения,</li>
<li>абзацы текста.</li>
</ul>
<p>Среди них бывают отдельные слова и словосочетания (Break a leg &#8212; «Сломать ногу» &#8212; это идиома, которая иронично желает исполнителю «удачи». Доброжелатели обычно говорят «сломай ногу» актерам и музыкантам, прежде чем они выходят на сцену для выступления. Происхождение фразы остается неясным). Как гуглопереводчик переведёт эту идиому? «<em>Сломать ногу</em>». Аллё, так и должно быть?</p>
<p><span style="color: #008000;"><strong>Зачем это нужно?</strong></span></p>
<p>
Ну, английский можешь ты познать, но знать его всего не обязан. Хорошо, если робот тебе поможет. Гуглопереводчик = робот-переводчик. Нехай буде.</p>
<p><span style="color: #008000;"><strong>Как оно делает то, что нужно?</strong></span></p>
<p>
Нужна справка.</p>
<p>Я очень опытный гуглер, я юзал этот гуглопереводчик еще задолго до появления Google, но весь мой опыт — наживной.</p>
<p>
Есть большая вероятность того, что я умею пользоваться гуглопереводчиком с искажениями. Вероятно также, что там есть какие-то штуки, о которых я просто не знаю. Тестировать только на основе личного опыта — невероятного масштаба тупость. Тестировать только на основе «щупаю то, что вижу» — тупость ещё большего масштаба, нежели предыдущая.</p>
<p>
Поэтому мне нужна справка, чтобы ТОЧНО ЗНАТЬ, что там внутри и что оно ВООБЩЕ может делать.</p>
<p>Мне надо знать, а не догадываться.</p>
<p>Программистов рядом нет, но в левом верхнем углу страницы есть меню «гамбургер» &gt; [О Переводчике Google]. Открылась англоязычная страница <a class="bbc_url" title="Ссылка" href="https://translate.google.com/intl/en/about/" rel="nofollow external">https://translate.google.com/intl/en/about/</a></p>
<p>Так и должно быть?</p>
<p>Я хочу переключить справку на русский язык. Как это сделать?</p>
<p style="padding-left: 40px;">(через две минуты размышлений, пролистываний и тыканья курсором по странице) Да ёпвашугугломать, как переключить справку-то!? Что, так и должно быть?</p>
<p>Ок, я опытный, я могу изменить URL — <a class="bbc_url" title="Ссылка" href="https://translate.google.com/intl/ru/about/" rel="nofollow external">https://translate.google.com/intl/ru/about/</a> А кнопками это можно сделать?</p>
<p>(через ещё несколько раз ёпвашугугломатерей) Ага, если прокрутить страницу полностью вниз, вижу выпадающее меню выбора языков. Ок, есть russky! Скроллим верх.</p>
<p>«<em>Теперь Google Переводчик доступен в любом приложении</em>». Какие приложения подразумеваются? В любом? В ЛЮБОМ? У меня на андроиде их не меншье 20. ТОЧНО В ЛЮБОМ? Так и должно быть?</p>
<p>Смотрим поясняющее видео. Там говорят, что иконка гуглопереводчика висит поверх всего, «<em>Это функция &#171;Быстрый перевод&#187;, она доступна в последней версии гуглопереводчика</em>». А у меня какая версия? Как это узнать?</p>
<p>Там же показывают, что надо тыкнуть по сообщению, которое надо перевести, потом по иконке скопировать, и взлетит «<em>Быстрый перевод</em>». Ок, есть первый тест-кейс.</p>
<p>Скроллим справочную страницу дальше. «<em>Общение без границ</em>». Ыыы, это чем-то напоминает Шелдона Купера в китайском ресторане с требованием «<a class="bbc_url" title="Ссылка" href="https://www.youtube.com/watch?v=T-jEx9yzdwg" rel="nofollow external">Покажите мне ваши сопли!</a>» Это просто рекламная пропаганда. Отложим.</p>
<p>Скроллим дальше. Раздел «<em>Всегда под рукой</em>» говорит о том, что гуглопереводчик есть:</p>
<ol>
<li>в телефоне</li>
<li>офлайн</li>
<li>на компьютере</li>
</ol>
<p>Ок, это три разных окружения и они тащут за собой множество тест-кейсов для проверки, соппсно, одного и того же набора функций. Есть смысл на этих окружениях сосредотачиваться? (есть, конечно, но это очевидно трудозатратно, поэтому надо согласовать эти усилия с начальством/заказчиком)</p>
<p>
«<em>Несколько способов ввода</em>».</p>
<ul>
<li>говорить в микрофон</li>
<li>запихнуть в программу фотографию с текстом</li>
<li>нарисовать текст стилусом</li>
<li>набирать текст</li>
</ul>
<p>Ок, это четыре разных окружения и они тащут за собой множество тест-кейсов для проверки. Плюс будем комбинировать эти способы ввода с упомянутыми ранее разными окружениями. В телефоне четыре способов ввода, в режиме «офлайн» сколько их будет доступно? На компьютере рисовать… не помню такого, но можно подключить перьевой планшет. Сколько в итоге получается проверок? Есть смысл их всех учесть, записать, согласовать требуемые усилия с начальством/заказчиком? Конечно, есть!</p>
<p>Остановимся.</p>
<p>Сколько тестов можно сгенерировать, всего лишь изучая контекст и поверхностные справочные материалы, не касаясь интерфейса гуглопереводчика?</p>
<p style="padding-left: 40px;">Кто во время обдумывания только обдумывал, а не записывал — тот дура(к).</p>
<p style="padding-left: 40px;">Записывать надо, хоть вкратце, хоть на лбу тим-лида, но надо записывать всё то, о чём думаешь, иначе ваш паровоз аналитики будет вечно стоять на постаменте вашей никчемности в профессии.</p>
<p>Важно понимать, что гуглопереводчик — собака известная. Если бы мне предложили тестировать что-то неизвестное (расчёт тангенса и котангенса между Бетельгейзе и гейзером Строккур), то попытки под видом тест-кейсов описывать взаимодействие с приложением были бы, мягко говоря, центральным экспонатом музея беспомощности.</p>
<p>Наглядный пример: клавиатура моего программируемого калькулятора МК-61.</p>
<p><div id="attachment_4251" style="width: 466px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-4251" class="size-large wp-image-4251" src="https://testitquickly.com/wp-content/uploads/2019/08/mk61.jpg?w=456" alt="" width="456" height="1024" /><p id="caption-attachment-4251" class="wp-caption-text">Красава ж ты моя!</p></div></p>
<p>Он, конечно же, может выполнить операцию 2+3, но на его клавиатуре НЕТ клавиши [=], поэтому привычные последовательные нажатия клавиш [2] [+] [3] [=] к нему неприменимы.Он делает это как-то иначе.</p>
<p>Можно ли самостоятельно догадаться о том, как он работает?</p>
<p>Нет.</p>
<p>Нужно посмотреть в справку.</p>
<p>Нужно спросить о том, как он работает.</p>
<p>Как вы это сделаете — неважно. Не беритесь за гуж, не спросивши.</p>
<h3><strong><span style="color: #008000;">Про позитивные/негативные тесты</span></p>
<p>
</strong></h3>
<p>А всем видно, что ВСЕ предложенные автором «негативные тест-кейсы» являются позитивными?</p>
<p>В основе тестирования находится сравнение ожидаемого результата с наблюдаемым.</p>
<p>Позитивные тест-кейсы всегда характеризуются тем, что у вас есть ожидаемый результат. Вы их выполняете, и вы наблюдаете ожидаемый результат.</p>
<p>Если наблюдаемый результат будет неожидаемым, то вы скажете, что нашли баг, хотя логично было бы сказать, что всё в порядке, просто вы выполнили негативный кейс и всё поломалось.</p>
<p>Ну, ввели мы в гуглопереводчик всяку шнягу по вашему предложению — <em>123!&#187;№%*()</em>. И что? Сайт рухнул? К вам прибежал админ гуглопереводчика и лично надавал по шее? Нет, всё в норме. Более того, у вас есть ожидаемый результат, следовательно, вы выполняете позитивные тест-кейсы. А называете их негативными.</p>
<p>Как настырный тестировщик вы придумаете/обнаружите сценарий, в ходе которого будет сделано НЕ ТО, что гуглопереводчик должен делать, или то, но НЕ ТАК, как это было предусмотрено.</p>
<p>Например, вставим в гуглопереводчик в режиме «Рус / Eng» транслитерированный текст:</p>
<p style="padding-left: 40px;">Transliteratsiya shiroko ispolzuetsya vmesto kirillitsyi pri rabote na nerusifitsirovannyih sistemah dlya vvoda nazvaniy faylov, papok, a takzhe dlya perevoda nazvaniy ili imen iz odnogo yazyika na drugoy.</p>
<p>Что произойдёт? Это русский текст, или английский?</p>
<p>
Вставим тот же текст, но переведем гуглопереводчик в режим «Eng / Рус». Что произойдёт?</p>
<p>Иногда вы будете знать точно, что должно происходить. Это тестирование.</p>
<p>Иногда вы будете знать точно только то, что НЕ ДОЛЖНО происходить. Это тоже тестирование.</p>
<p>Иногда не будете знать результат никак, никакой, даже приблизительно. Это уже не тестирование, это исследование.</p>
<p>Нет ожидаемого результата, мы узнаём его в ходе взаимодействия с приложением, мы учимся, мы исследуем, мы делаем выводы, мы решаем, каким должен быть ожидаемый результат (это надо спрашивать у живых людей, надеяться на подробность мануалов — глупо).</p>
<p>Поэтому не привязывайтесь к вводу «неправильных значений». Рассматривайте «позитив» и «негатив» в русле сценариев, которые должны выполняться. Все сценарии, в ходе которых мы проверяем, что гуглопереводчик делает именно то, что должен (то, что в его справке написано, а не то, что вы воображаете), можно назвать позитивными. Назовём их скопом happy path. Додумаетесь/обнаружите сценарий, который отклоняется от happy path — вот это и будут негативные тест-кейсы.</p>
<p>То, что тест-кейсы обслуживают сценарии — вы уже знаете.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2019/08/05/buonaparole/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4242</post-id>	</item>
		<item>
		<title>Савин, Фолкнер и Нгуен…</title>
		<link>https://testitquickly.com/2019/07/16/numele-skimonosit/</link>
					<comments>https://testitquickly.com/2019/07/16/numele-skimonosit/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Tue, 16 Jul 2019 08:00:50 +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[Андрей Макаревич]]></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">http://testitquickly.com/?p=4231</guid>

					<description><![CDATA[Темные подворотни киевского Подола. Опиумная кальянная мадам Козятиной. Тускло моргает надпись “We know English! Visa accepted! 24h!” Откуда-то глухо доносится «Fuck the police comin&#8217; straight from the underground…» На кушетке, присосавшись к кальянной трубке, возлежит Менеджер проектов без галстука. В недрах стоящего рядом мягкого кресла утонул пофигистичный к мирскому его коллега, бухгалтер. Легкая задымленность и… <span class="read-more"><a href="https://testitquickly.com/2019/07/16/numele-skimonosit/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Темные подворотни киевского Подола. Опиумная кальянная мадам Козятиной. Тускло моргает надпись “We know English! Visa accepted! 24h!”</p>
<p>Откуда-то глухо доносится «<em>Fuck the police comin&#8217; straight from the underground…</em>»</p>
<p>На кушетке, присосавшись к кальянной трубке, возлежит Менеджер проектов без галстука. В недрах стоящего рядом мягкого кресла утонул пофигистичный к мирскому его коллега, бухгалтер.</p>
<p>Легкая задымленность и маниакальный блеск в глазах говорящего:</p>
<p>— <strong>…их стало слишком много! Каждую неделю кто-то спрашивает у меня лично, а получится ли у него стать тестировщиком. Каждый мнит себя уникальным, каждый считает себя подготовленным просто потому, что у него есть «ОГРОМНОЕ ЖЕЛАНИЕ», но он ещё ничего не делал, ничего не пробовал, ни одной книги не прочитал, а если разговор зайдёт про книги, то меня спрашивают, какую конкретно книгу надо прочитать…!</strong></p>
<p>— Дык, скажи им, какую книгу прочитать-то, — из глубин кресла. — у нас даже бухгалтера знают ваши книги. Как их там… Савин, Фолкнер и Нгуен?!</p>
<p>— <strong>Фолкнер… да, это было смешно.</strong></p>
<p><span id="more-4231"></span></p>
<p>— Слишком налитературенная особа попалась. Вообще, tg-каналы джунов — это, знаете ли… уникальная… хрень.</p>
<p>—<strong> Дык, если сегодня они хотят ОДНУ книгу, то завтра будут спрашивать, какие конкретно страницы из той книги надо прочитать!</strong></p>
<p>— Нет. Просто им вся эта твоя суета неинтересна. Вспомни школу и что ты делал, когда было нужно что-то сделать как домашнее задание, но делать это не хотелось или это казалось бессмысленным. Ты читал книги целиком для того, чтобы сделать двухстраничный реферат или пресловутый «литературный анализ»?</p>
<p>— <strong>Мхм… Нет, конечно, я выуживал из книг разрозненные абзацы, собирал их последовательно, и получался вроде бы связный текст, хотя на деле это был бред…</strong></p>
<p>— Ну, а библиотекарю ты что говорил? Здрастути, я вообще-то не хочу, но меня заставили, поэтому дайте мне любую хрень, я руками перепишу сдам и забуду — так было?</p>
<p>— <strong>Я спрашивал, в какой книге я могу найти материал по нужной теме.</strong></p>
<p>— И библиотекарю казалось, что дело его свято, что тебе нужна вся КНИГА, что ты её целиком прочитаешь и сделаешь выводы, и он тебе её находил… Сегодня ты бы не ходил к библиотекарю, ты насиловал бы гугель в поисках готового реферата по нужной теме. Ты не стал бы даже листать нужные книги, ты обходился бы двумя страницами целиком, даже особо не вчитываясь в них.</p>
<p>— <strong>Просто у меня тогда настоящего гугеля не было. И я вообще читал запоем много всякого, и когда было интересно, рефераты лились бумажной рекой. А когда было неинтересно — да, я искал простейший выход.</strong></p>
<p>— Все эти люди, которые говорят, что «хотят стать тестировщиками», на самом деле, ищут простейший для них путь к работе, зарплатам и надёжному будущему в их представлении, а ты им в этом не помогаешь. Тебе кажется, что они просят помочь освоить профессию, а им нужно только сделать «минимальный реферат», чтобы казаться теми, кем они себя представляют. Твои ответы правильны, но они подходят только для тех, кто хочет и может пройти весь путь становления профессионала. Прав был Андрей Макаревич, когда сказал, что тем начинающим музыкантам, которым он действительно хотел бы помочь, его помощь не нужна, они сами справятся.</p>
<p>— <strong>Дык, они же говорят, что хотят стать профессионалами… Я и объясняю с самого начала, что там просто и что там сложно.</strong></p>
<p>— Они-то говорят, а ты воображаешь, что их понимаешь, как тот библиотекарь. Ну, и кто дебил?</p>
<p>— <strong>Я дебил?!</strong></p>
<p>— Именно это они про тебя и говорят.</p>
<p>— <strong>Да я им тогда…</strong></p>
<p>— Не перегибай уже перегнутую палку, это не выход. Библиотекарь может не общаться со школьниками, но книги он должен содержать в полном порядке и обязан выдавать их по каждому запросу. Тебя спросили — ты ответил. А Канер ли им в действительности нужен, или Фолкнер — тебя это не касается, бо ты не обязан каждого интересующегося проводить по пути становления профессионала. По этому пути за руку не проведёшь, проповедовать истинную веру им не нужно.</p>
<p>Вообще, ты топчешься у преддверия, в котором обитают души людей нерешительных, с которыми «божественная благодать» не знает, как поступать. Нерешительность их, с одной стороны, стреножит и делает ничтожными, неспособными на настоящие поступки, а с другой стороны, из-за нерешительности они не способны сделать вообще ничего внятного, ни плохого, ни хорошего. Это их и защищает. Но себя они не считают нерешительными или неподходящими для божественного замысла, каким бы он ни был. Просто оставь их такими, какие они есть.</p>
<p>— <strong>…«И тут он увидел глаза Киры. Кира глядела на него с ужасом и надеждой»…</strong></p>
<p>— Ну, да… Если у тебя есть возможность влиять, то не пользуйся этой возможностью.</p>
<p>— <strong>Но если просят о куске хлеба…</strong></p>
<p>— …то его надо дать. Кусок хлеба. А не соху с инструкцией по применению, участок земли и алгоритм выращивания злаков.</p>
<p>— <strong>Дай ему рыбу, и он будет сыт один день. Дай ему удочку…</strong></p>
<p>— …и он будет ворчать о том, что ты мудак, что раньше рыбу давал, а теперь не даёшь. Вернёмся к первой проблеме, которую ты вскользь обозначил: о том, что тебя постоянно спрашивают, а получится ли стать тестировщиком, и ты не знаешь.</p>
<p>— <strong>И никто не знает.</strong></p>
<p>— Я, кагбэ, знаю. Но это требует какого-то времени на выяснение.</p>
<p>— <strong>А мы и не спешим.</strong></p>
<p>— Значит, для того, чтобы стать тестировщиком, нужен определённый mindset, а не набор навыков. Навыки нарабатываются и прилагаются, а предрасположение к этому делу нужно природное. Хотя, его тоже можно тренировать, как тренируют детей в школе, но это долго и не факт, что получится. Бо если бы получалось, то любая школа была бы очень эффективным заведением для подготовки всех сразу ко всему сразу.</p>
<p>Так вот, майндсет грамотного тестировщика (а без него реально ничего не получится, можно не трепыхаться) можно проверить на примере написания одностраничного, примитивного реферата про жизнедеятельность известного скульптора О.Пикушена. 30 минут, время пошло, с этим должен справиться не только школьник, но и любой взрослый человек.</p>
<p>Вот, ты, например, что сделаешь?</p>
<p>— <strong>Нагуглю.</strong></p>
<p>— Реферат?</p>
<p>— <strong>Если найдётся реферат, то ок. Если нет, то нагуглю всё, что можно, и из того, что соберётся, сделаю реферат.</strong></p>
<p>— А нагуглишь ты гулю с маком, бо скульптора О.Пикушена не существует.</p>
<p><div id="attachment_5775" style="width: 510px" class="wp-caption aligncenter"><a href="https://testitquickly.com/wp-content/uploads/2019/07/opekushin.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5775" class="wp-image-5775" src="https://testitquickly.com/wp-content/uploads/2019/07/opekushin-300x234.png" alt="" width="500" height="391" srcset="https://testitquickly.com/wp-content/uploads/2019/07/opekushin-300x234.png 300w, https://testitquickly.com/wp-content/uploads/2019/07/opekushin-768x600.png 768w, https://testitquickly.com/wp-content/uploads/2019/07/opekushin-600x469.png 600w, https://testitquickly.com/wp-content/uploads/2019/07/opekushin.png 1025w" sizes="auto, (max-width: 500px) 100vw, 500px" /></a><p id="caption-attachment-5775" class="wp-caption-text">Скульптор О.Пикушен был пчелой укушен</p></div></p>
<p>Вероятно, найдётся что-то про скульптора Александра Опекушина (1838 — 1923), но в задании сказано найти информацию про О.Пикушена.</p>
<p>В этом моменте все люди начинают действовать ровно по учебникам для психиатров (к слову о том, насколько мы все уникальны). Они останавливаются и говорят, что ничего не нашли. Или нашли, но не то, поэтому «ой, всё!». Аллес капут. Пусть это будет первая группа.</p>
<p>Вторая группа — те, кто говорят, что ничего не нашли, просят уточнения и предлагают свой вариант, мол, вы могли ошибиться, вот, был же Опекушин. Экзаменатор сделает морду кирпичом и скажет, что по условиям задания, надо искать реферат про О.Пикушена, а не всякие там фигли-мигли… Вы тут что, самые умные?! Заказчик так сказал. Я так сказал. Исполняйте.</p>
<p>Самые слабые отступают в первую группу. Они старались, они предлагали, но всё не так, они ни за что не отвечают.</p>
<p>Другие отступают от «морды кирпичом», но не сдаются. Они ищут аргументы. Они предлагают посмотреть на экран.</p>
<p>— <strong>А я смотреть не стану, сказал ученый монах Томас Люпиан, когда Галилей, исчерпав все аргументы, попросил монаха взглянуть в телескоп…</strong></p>
<p>— Вот именно. Догматика давит, их легко переубедить. Морда кирпичом просит кирпича, но бить нельзя, Бендер не позволяет. Большинство из второй группы останавливаются перед авторитетом, подавляя своё несогласие. Они боятся неопределённости, они хотят внятности, они могут успешно работать годами, просто делая ровно то, чему их в самом начале научили — примитивные искусства аборигенов Полинезии, культ карго, над которым они же так весело смеются. Они очень хотели бы изучить тест-дизайн, но не могут, бо на проектах этого не требуют, а учить что-то абстрактное самостоятельно они не могут. Они ждут, когда работодатель попросит у них «А научись автоматизировать…»</p>
<p>Их приговор: конкретно-предметное мышление, когда задачи решаются с помощью существующего, реального объекта (ну, или навыка), который конкретен, который можно пощупать. А для айтишника необходимо развитое абстрактно-логическое мышление, оно же мышление абстракциями — то есть категориями, которых нет в природе, и которые можно создавать и пересоздавать условно.</p>
<p>— <strong>ТИХО! Я понял! Они же подменяют аналитическое мышление логическим, поэтому они никогда не выйдут из логического капкана «я опытный тестировщик, но я не понимаю тест-дизайн, следовательно, я неопытный тестировщик, а я не могу называться неопытным, ведь я уже опытный…» Их я на собеседованиях спрашиваю о том, в чём разница между регрессионным и регрессивным тестированием, и они эту разницу находят и даже объясняют!</strong></p>
<p>— Точно так, детектив Пикачу. Из второй группы тестировщики тоже не получаются.</p>
<p>А теперь те, кто выходят из второй группы в третью. Они видят, что про О.Пикушена информации нет. Они предполагают, что исходные данные ошибочны. Они заявляют об этом, и даже когда их давят авторитетом, они продолжают изыскания. Они ищут уже не аргументы, а аргументаторов — они копают к первоисточникам, они спрашивают, действительно ли надо было искать информацию про О.Пикушена, если найденные данные показывают, что было А.Опекушин (1838 — 1923), и данные валидные, их выдают и википедия, и живой библиотекарь.</p>
<p>Вот с третьей группой можно работать.</p>
<p>Они не боятся спрашивать и сомневаться в требованиях. Они анализируют, и работают с теми данными, которые получены вследствие анализа (даже если данные странные или неоднозначные). Это не скилл развитого тестировщика. Это майндсет, на основе которого складывается скилл развитого тестировщика. Без него никуда.</p>
<p>И ещё есть четвёртая группа… Этих людей мало, но именно их вы ищете. Они могут не просто нагуглить реферат на нужную тему, они могут его самостоятельно собрать из какого-то неструктурированного массива информации. Они могут закопаться до утра в настройке SQLite или настройке вывода команды „ls“, даже если их об этом не просят, и сделают</p>
<pre>alias ls='ls --group-directories-first --color=auto -p -1'</pre>
<p>и засунут это в .bashrc, чтобы оно работало всегда. По пути они нахватаются информации о том, что ещё вообще можно делать, и интегрируют эту информацию, и в ходе работы будут ВИДЕТЬ решение множества ситуаций, о которых люди из первых групп вряд ли додумаются, даже если их об этом попросят.</p>
<p>Люди из четвёртой группы однозначно могут стать отличными тестировщиками, если захотят.</p>
<p>Люди из третьей группы могут стать нормальными тестировщиками.</p>
<p>Но все те, кто могут стать отличными или нормальными тестировщиками, не спрашивают, могут ли они стать тестировщиками. Прав был Андрей Макаревич. Твоя помощь им не нужна, они сами справятся.</p>
<p>А к тебе обращаются те, кто образует костяк второй и первой групп. У тебя от них передоз. Так закоренелые менты во всех видят ещё не раскрытых преступников, ты видишь лишь характерные роли. Поэтому тебе кажется, что люди тупые, что их надо принуждать читать Канера, и всё такое прочее. Поменяй окружение, этот мир блистает яркими красками.</p>
<p>— <strong>Где ты вообще придумал этого неправильного архитектора Мендисабале? Пекушин? Пикушин?</strong></p>
<p>— Ох… Когда-то я работал «апиратаром» в интернет-кафе, видел много школьников, которые скачивали себе рефераты самостоятельно. А однажды пришла взрослая тётя, которую дочь послала за рефератом про скульптора О.Пикушена.</p>
<p>Ну, ок. Я поискал, быстро понял, что ничего нет, и попросил уточнить, правильный ли мы ведём поиск О.Пикушена, ведь я нахожу только А.Опекушина (1838 — 1923). Она позвонила дочери за уточнением. Дочь ей объяснила, что такой тупой мамы, как у неё, мир ещё не видел, что она ясно сказала, что ей, блядь, нужно, и что без этого реферата она будет самым несчастным ребёнком во всём городе, и что… Было слышно хорошо.</p>
<p>Ну, ок. Я попросил уточнить, откуда было взято имя искомого скульптора. Мать снова позвонила, и дочь ЧЛЕ НО РАЗ ДЕЛЬ НО сообщила, что это домашнее задание ей по телефону передала подруга, и что подруга не может ошибаться. То есть, ей по телефону по слогам (для повышенной точности) была передана информация. Повышенная точность на стороне приёмника была воспринята буквально. Вот и причина искажения.</p>
<p>— <strong>Созвучность слов! Корова через «а».</strong></p>
<p>— Точно так. В те времена свободное наличие рефератов в сети было ещё не развито, про Опекушина нашлось только несколько разрозненных журнальных статей. Я предложил тёте собрать из них реферат (ты уже знаешь, как это делается), но она была очень печальная и строга — дочь приказала искать готовый реферат про О.Пикушена. Я предложил сделать реферат из материалов про Опекушена, а потом сделать автозамену по всему тексту, переименовав его в Пикушена. Мне предложили не умничать, заказчик так сказала, я так сказала, исполняйте, вам за это платят деньги. С тех пор я всегда врал, что не умею искать рефераты и курсовые в интернета.</p>
<p>Мадам Козятина! Нам еще трошки угля, пожалуйста… Наконец-то, жара сошла. Такое вот начало лета…</p>
<p>— <strong>Да… Думаешь, черешня уродится?</strong></p>
<p>— Да пофигу уже…</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2019/07/16/numele-skimonosit/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4231</post-id>	</item>
		<item>
		<title>И вы продолжаете</title>
		<link>https://testitquickly.com/2018/09/20/kurwica/</link>
					<comments>https://testitquickly.com/2018/09/20/kurwica/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Wed, 19 Sep 2018 23:59:42 +0000</pubDate>
				<category><![CDATA[Изображения]]></category>
		<category><![CDATA[Не смешно]]></category>
		<category><![CDATA[Откровения]]></category>
		<category><![CDATA[Скриншоты]]></category>
		<category><![CDATA[Mykhailo Mykolajovych]]></category>
		<category><![CDATA[Брейгель]]></category>
		<category><![CDATA[Заратустра]]></category>
		<category><![CDATA[Пшепрашам]]></category>
		<category><![CDATA[Хватит тупить]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=3942</guid>

					<description><![CDATA[Обычно вы делаете это с PowerPoint. На слайде у вас картинка какой-то черной коробки и текст вроде «Тестирование чёрного ящика или поведенческое тестирование — стратегия (метод) тестирования функционального поведения объекта (программы, системы) с точки зрения внешнего мира, при котором не используется знание о внутреннем устройстве тестируемого объекта. Под стратегией понимаются систематические методы отбора и создания… <span class="read-more"><a href="https://testitquickly.com/2018/09/20/kurwica/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Обычно вы делаете это с PowerPoint. На слайде у вас картинка какой-то черной коробки и текст вроде «<span style="color: #993366;">Тестирование чёрного ящика или поведенческое тестирование — стратегия (метод) тестирования функционального поведения объекта (программы, системы) с точки зрения внешнего мира, при котором не используется знание о внутреннем устройстве тестируемого объекта. Под стратегией понимаются систематические методы отбора и создания тестов для тестового набора. Стратегия поведенческого теста исходит из технических требований и их спецификаций</span>». Вы зачитываете этот текст почти дословно (пропуская запятые и интонации, бо дыхания не хватит), и спрашиваете, всё ли понятно.</p>
<p><div id="attachment_3943" style="width: 510px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3943" class="size-large wp-image-3943" src="https://testitquickly.com/wp-content/uploads/2018/09/slide_7.jpg?w=500" alt="Пример подобного слайда" width="500" height="375" /><p id="caption-attachment-3943" class="wp-caption-text">Пример подобного слайда (элементарно нагуглено)</p></div></p>
<p>Да, говорят вам. Понятно, чоуж.</p>
<p><span id="more-3942"></span></p>
<p>Тестировщики, добавляете вы, особенно профессиональные, которые получают по две, три, четыре, пять, шесть, а то и семь (восемь) тысяч долларов в месяц, обычно тестируют чёрным ящиком.</p>
<p style="padding-left: 30px;">«<em>Тестируют чёрным ящиком</em>» — прямая цитата. Когда написано буквами, то напрягает, а на слух звучит нормально.</p>
<p>А программисты тестируют методом белого ящика, бо там надо смотреть в код, а тестировщики в код не смотрят, поэтому у нас всегда черный ящик. Всё ли понятно?</p>
<p>Да, говорят вам. Продолжайте, всё понятно. Восемь тысяч, вы сказали?</p>
<p>Да, так вот, перейдём к следующей теме, говорите вы, но для начала будет всего четыреста, надо же пройти этап джуниора. А потом будет уже девять (на экране слайд с графиком с DOU, и таки да, медиана и персентиль, обратите внимание на медиану и персентиль, они доказывают, что всё будет хорошо!), говорите вы, и переходите к следующей теме. Техники тест-дизайна, объявляете вы, и первая техника пусть будет доменное тестирование, или тестирование доменов, или тестирование доменным методом, оно же домэйн тэстинг. А ещё мы научим вас тому, как правильно общаться с HR.</p>
<p>Да, говорят вам. Обязательно научите!</p>
<p>На слайде появляется текст «<span style="color: #993366;">Domain testing is one of the most widely practiced software testing techniques. It is a method of selecting a small number of test cases from a nearly infinite group of candidate test cases. Domain knowledge plays a very critical role while testing domain-specific work</span>» — ну да, на английском, бо в русской википедии про это же ничего не написано. Зачитывать это вслух вы стесняетесь, бо произношение у вас не то, поэтому вы переводите всё на лету — доменное тестирование это один из самых крутых методов техник тестирования, это метод выбора небольшого количества тест-кейсов из группы кандидатов тест-кейсов (мелькает вопрос «<em>Ой, что я несу в массы?!</em>» — но у вас нет времени ответить себе на этот вопрос, ведь урок продолжается), и… и, короче, это всё очень важно при тестировании доменно-специфичного ПО. Ну, вы там просто используете тестирование классов эквивалентности методом граничного значения, и когда это вместе, то получается доменное тестирование. Всё ли понятно?</p>
<p>Ещё бы, слышите вы. Доменная печь, доменный метод, доменный дом. Всё ясно, это всё очень важно для нас. Продолжайте.</p>
<p>И вы продолжаете. Про то, что тестирование — самая-пресамая важная часть всего процесса разработки (тут слайд с багами, которые приводили к миллионным убыткам, а вот если бы там были нормальные тестировщики, то убытков не было бы). Про то, что работать тестировщиком можно и из офиса, и с унитаза, и со сказочного Бали — лишь бы макбук был на коленях. Про то, что тестировщики могут запросто работать за рубежом (про оформление на работу и вид на жительство в заграничных заграницах не говорим, ведь крутых тестировщиков все ищут и устраивают им всё, а ведь все могут стать крутыми тестировщиками, поэтому…), повысить свой уровень жизни и обеспечить себе достойное будущее!</p>
<p>Вы вспоминаете про «<a href="https://www.facebook.com/mykhailog/media_set?set=a.10212243430820393.1073741839.1216462351&amp;type=3"><span class="fbPhotoCaptionText">Ото я подумав, а що якщо замінити ІТ скажімо на музику</span></a>», но на ваших слайдах написано про другое. И вы продолжаете.</p>
<p>Продолжаете точно так, как вас учили в школе — а там вас учили способом «Объявление». Вам просто объявляют о существовании чего-то (про domain testing, например), и предлагают запомнить определение.</p>
<p style="padding-left: 30px;">Вместо того, чтобы понять точно, что такое «план», затем что такое «тестирование», и лишь затем объединить эти два значения в единую сущность под названием «тест-план», вы сразу гуглите «<em>Что такое тест-план</em>» и объяснение «<em>Это такой план, который пишут для проведения тестирования</em>» вас удовлетворяет чуть более, чем полностью. Вы никого не учите мыслить, бо этому всех уже давно должны были научить в школе, не так ли?!</p>
<p style="padding-left: 30px;">Вместо того, чтобы понять точно, что такое «мышление», затем что такое «аналитика», и лишь затем объединить эти два значения в единую сущность под названием «аналитическое мышление», вы сразу гуглите «<em>Что такое аналитическое мышление</em>» и объяснение «<em>Это такой тип мышления, отличается от других тем, что он аналитический</em>» вас удовлетворяет чуть более, чем полностью. Вы не понимаете, о чём говорите, но говорите уверенно, стоя у экрана со слайдами. Вы круты.</p>
<p>Вы не идиот. Вы нормальный человек, вас наделили полномочиями инфицировать практичными, лишёнными воды знаниями (белиберда-белибердень) всех интересующихся практичными, лишёнными воды знаниями. Вы честно работаете, стараясь всех научить. Вы веселите зал и приковываете их внимание, а потом заявляете о том, что подписаться на курс Full HD со скидкой можно только сегодня, здеся и сейчаса, если подписать контракты на обучение прямо сегодня, только сегодня, сегодня-сегодня! И вы дарите всем присутствующим возможность оплачивать контракт частями — в зале начинается движуха, к вам целенаправленно идут целенаправленные девушки, которые готовы отдать вам 14 000 або 16 000 гривен здесь и сейчас, или потом, но уже частями. Вы призываете всех поверить вам, ведь вы уже столько лет работаете на работе и занимаетесь профессиональным обучением.</p>
<p>Не обучением называется то, что вы делаете, а объявлением терминов, которые используются в тестировании ПО и, опять же, объявлением определений для этих терминов.</p>
<p>Единственным адекватным способом обучения чему-либо является способ, который можно назвать «<strong>Через объяснение</strong>», и вам даже можно объяснить, в чём разница, но вы ничего не поменяете. Это же долго, это же работает только личностно (Группа отпадает?! Но ведь я учу только группами!), это же требует понимания того, как работает когнитивный аппарат психики человеческой, это же требует терпения. Этого же у нас никто не требует! Вы искренне не понимаете, почему мне не нравится ваш обычный, стандартный, всем подходящий формат учёбы «<strong>Через объявление</strong>».</p>
<p>А Заратустра, как известно, не позволяет.</p>
<p>Мудаки, блеать.</p>
<p><div id="attachment_3950" style="width: 510px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3950" class="size-large wp-image-3950" src="https://testitquickly.com/wp-content/uploads/2018/09/bruegel.jpg?w=500" alt=" De parabel der blinden" width="500" height="263" /><p id="caption-attachment-3950" class="wp-caption-text">De parabel der blinden</p></div></p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2018/09/20/kurwica/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3942</post-id>	</item>
		<item>
		<title>Санитарное тестирование санитаров</title>
		<link>https://testitquickly.com/2018/06/25/mens-sanita-in-corpore-sanity/</link>
					<comments>https://testitquickly.com/2018/06/25/mens-sanita-in-corpore-sanity/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Mon, 25 Jun 2018 15:42:43 +0000</pubDate>
				<category><![CDATA[F.A.Q.]]></category>
		<category><![CDATA[Банальное]]></category>
		<category><![CDATA[Скриншоты]]></category>
		<category><![CDATA[Соображения]]></category>
		<category><![CDATA[ISTQB]]></category>
		<category><![CDATA[Бен Коллинс]]></category>
		<category><![CDATA[Перевод]]></category>
		<category><![CDATA[Рекс Блэк]]></category>
		<category><![CDATA[Стиг]]></category>
		<category><![CDATA[Сэм Канер]]></category>
		<category><![CDATA[Хватит тупить]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=3899</guid>

					<description><![CDATA[В поезде лежал, книгу читал «Водить как Стиг» Бена Коллинса (второе издание, Альпина нон-фикшн, Москва, 2018). Высокое качество печати и оформления, отличный текст, но все-таки четыре ошибки в тексте нашел, из них две совершенно нелепые. Глаз в бревне царапает, ну да ладно. А вот на стр. 155 разверзлись хляби подземельные, и стало ыыыы: Вах-вах-вах, не… <span class="read-more"><a href="https://testitquickly.com/2018/06/25/mens-sanita-in-corpore-sanity/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p><div id="attachment_3900" style="width: 222px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3900" class="size-medium wp-image-3900" src="https://testitquickly.com/wp-content/uploads/2018/06/d0bad0bed0bbd0bbd0b8d0bdd0b7-d0b2d0bed0b4d0b8d182d18c-d0bad0b0d0ba-d181d182d0b8d0b3-1.jpg?w=212" alt="Коллинз - Водить как Стиг" width="212" height="300" /><p id="caption-attachment-3900" class="wp-caption-text">Бен Коллинс &#8212; Водить как Стиг</p></div></p>
<p>В поезде лежал, книгу читал «Водить как Стиг» Бена Коллинса (второе издание, Альпина нон-фикшн, Москва, 2018).</p>
<p>Высокое качество печати и оформления, отличный текст, но все-таки четыре ошибки в тексте нашел, из них две совершенно нелепые. Глаз в бревне царапает, ну да ладно.</p>
<p>А вот на стр. 155 разверзлись хляби подземельные, и стало ыыыы:</p>
<p><div id="attachment_3902" style="width: 510px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3902" class="size-large wp-image-3902" src="https://testitquickly.com/wp-content/uploads/2018/06/stig.jpg?w=500" alt="Санитарное тестирование" width="500" height="310" /><p id="caption-attachment-3902" class="wp-caption-text">Санитарная проверка</p></div></p>
<p>Вах-вах-вах, не может же быть же&#8230;</p>
<p>Поискал оригинал… Оказывается, может.</p>
<p><div id="attachment_3903" style="width: 510px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3903" class="size-full wp-image-3903" src="https://testitquickly.com/wp-content/uploads/2018/06/stig-sanity.jpg" alt="Sanity check" width="500" height="334" /><p id="caption-attachment-3903" class="wp-caption-text">Sanity check</p></div></p>
<p>Короче, нет никакого <em>санитарного</em> тестирования.</p>
<p>Само слово Sanity переводится на русский язык проще:</p>
<ul>
<li>вменяемость,</li>
<li>здравомыслие,</li>
<li>нормальная психика.</li>
</ul>
<p>Нет там никаких санитаров.</p>
<p>То, что вы называете Sanity, по-сути есть Smoke testing.</p>
<p>Я ещё не знаю, когда эти термины появились, но уже давно ясно, что это два разных названия одного и того же феномена. Просто тестировщики называют это Smoke, а программисты называют это Sanity. Так они привыкли, так оно укрепилось в их литературе.</p>
<p>Судя по моему опыту чтения старых книг для программистов, sanity было первым.</p>
<p>Канер в своей книге <em>Testing Computer Software</em> (<span style="color: #ff0000;"><strong>1988,</strong></span> у меня второе издание, 1999-го) не упоминает ни про smoke, ни про sanity. Самое близкое к ним есть в главе 3 &#8216;<em>Test types &amp; Software development</em>&#8216; на стр. 51, и ВНЕЗАПНО оно там называется «Acceptance testing»:</p>
<p style="padding-left: 30px;">Each time you receive a new version of the program, check whether it&#8217;s stable enough to be tested. If it crashes at the slightest provocation, don&#8217;t waste your time on it. This first bit of testing is called acceptance or qualification testing.</p>
<p>На стр. 54 та же тема с уточнениями в разделе &#8216;<em>Final acceptance testing and certification</em>&#8216;:</p>
<p style="padding-left: 30px;">If your company developed the program on contract, the customer will ran an acceptance test when you deliver it. In small projects, this test may be informal. For most projects, however, test details are agreed to in advance, in writing. Make sure the program passes the test before trying to deliver it to the customer. An acceptance test usually lasts less than a day. It is not a thorough system test. Beizer (1984) describes the preparation and execution of formal customer acceptance tests. Perry (1986) is, in effect, a customer&#8217;s guide to creating acceptance tests. Consider using Perry (1986) to structure your negotiations with the customer when you jointly design the acceptance test.</p>
<p style="padding-left: 30px;">Цитата на <a href="https://books.google.com.ua/books?id=Q-hTDwAAQBAJ&amp;lpg=PA53&amp;ots=G2EsG8Ool-&amp;dq=testing%20computer%20software%20If%20your%20company&amp;hl=ru&amp;pg=PA54#v=onepage&amp;q=testing%20computer%20software%20If%20your%20company&amp;f=false">books.google.com</a></p>
<p>Для тех, кто не может прочитать больше одного предложения в абзаце перевожу:</p>
<p style="padding-left: 30px;">заранее и письменно согласуйте с заказчиком набор приёмочных тестов. Убедитесь сами в том, что релиз на них не завалится. Ранее об этом писали Бейзер (1984) и Перри (1986).</p>
<p>Это воспринимается странно, бо в наше время «Acceptance testing» объясняется как «Заказчик сам тестирует, как хочет». И да, вероятно, он будет основываться на наших смоук-тестах. Предполагаю, что в наше время этот термин просто истолковывается неверно, но это уже не существенно.</p>
<p>А вот в <span style="color: #ff0000;"><strong>2001</strong></span>-ом Канер уже упоминает Smoke testing в «<em>Lessons Learned in Software Testing: A Context-Driven Approach</em>» на страницах xxvi (это предисловие, там сходу заявлены определения ключевых терминов), 41, 121, 162, 163, 169, 141 и 144. И ни разу не упоминается sanity testing.</p>
<p>Рекс Блэк в «Ключевые процессы тестирования» (<span style="color: #ff0000;"><strong>2004</strong></span>) упоминает эти два термина одновременно. В русскоязычном издании «Лори» 2006-го года они на стр. 532:</p>
<p style="padding-left: 30px;">Приемочное тестирование, тестирование на исправность (Smoke Test, Sanity Test). Тестирование, проверяющее, насколько стабильная предлагаемая на тестирование версия, чтобы можно было начинать штатное тестирование. Обычно это подмножество всего комплекта тестов, как правило, автоматизированное, затрагивающее все части системы, по крайней мере, поверхностно. Качественные приемочные тесты обычно довольно долго проверяют работу системы, чтобы проявились серьезные проблемы надежности и работоспособности. Термин “smoke test” (тест на задымленность) взят из электротехники: когда инженер включает цепь, первичный тест проверяет, не дымятся ли компоненты.</p>
<p><a href="https://en.wikipedia.org/wiki/Sanity_check">Википедия</a></p>
<p style="padding-left: 30px;">ВНЕЗАПНО сообщает о том, что <em>сэнити</em> — даже не из мира тестирования, термин существует сам по себе, и применим ко всем аспектам человекодеятельности, от сервировки обеденного стола до запуска ядрённой атомной бомбы на головы мирных жапонцев.</p>
<p style="padding-left: 30px;">In computer science, a <i>sanity test</i> is a very brief run-through of the functionality of a computer program, system, calculation, or other analysis, to assure that part of the system or methodology works roughly as expected. This is often prior to a more exhaustive round of testing.</p>
<p style="padding-left: 60px;"><span style="color: #008000;">Огромное, гигантское отличие от <em>smoke test,</em> да?!</span></p>
<p><a href="https://www.istqb.org/downloads/category/20-istqb-glossary.html">ISTQB</a> (скачать файл <em>Glossary all terms 3.1.pdf</em>).</p>
<p style="padding-left: 30px;"><em>Sanity test</em> объявлен синонимом <em>smoke test</em> (стр. 61).</p>
<p style="padding-left: 60px;"><span style="color: #008000;">В канонах ISTQB вы не сомневаетесь, не так ли?!</span></p>
<p><a href="http://istqbexamcertification.com/what-is-sanity-testing/">Толковалка ISTQB</a></p>
<p style="padding-left: 30px;">It is a kind of software testing which is done by the testers to ensure that the functionality is working as expected.</p>
<p style="padding-left: 60px;"><span style="color: #008000;">Огромная разница со <em>smoke test,</em> да?!</span></p>
<p>Кто-то сделал почти тот же обзор книг в поисках тех же терминов, что и я: <a href="https://almeln.github.io/github-repository-for-text/2017-08-31-sanity-test.html">almeln.github.io</a>, и пришел к тем же выводам.</p>
<p>О переводах: «<em>Да, но ведь гугл переводит это слово именно так!</em>»</p>
<p><div id="attachment_3904" style="width: 266px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3904" class="size-full wp-image-3904" src="https://testitquickly.com/wp-content/uploads/2018/06/sanity-translations.jpg" alt="Google перевод слово Sanity" width="256" height="248" /><p id="caption-attachment-3904" class="wp-caption-text">Google переводит слово Sanity</p></div></p>
<p>Гугл переводит так, как считает правильным большинство. Там можно предлагать другие переводы слов, можно даже устроить флешмоб и добиться перевода какого-то слова совершенно по-дурацки, и гуглу будет норм.</p>
<p>И напоследок. Я предполагал, что ебалайтунг с терминологией присущ нашему, русскоязычному сектору. Например, вон чего на <a href="http://www.protesting.ru/testing/types/sanity.html">protesting.ru</a> пишут:</p>
<p style="padding-left: 30px;">В некоторых источниках ошибочно полагают, что санитарное и дымовое тестирование — это одно и тоже. Мы же полагаем, что эти виды тестирования имеют &#171;вектора движения&#187;, направления в разные стороны.</p>
<p>Но он процветает и на английской стороне. Быстро нагуглилась статья на эту тему с сайта <a href="https://www.h2kinfosys.com/blog/smoke-testing-sanity-testing/">h2kinfosys.com</a> — оба термина представлены как нечто обособленное. Понятия не имею, что это за контора из штата Джорджия (США), но о себе они говорят &#171;H2k Infosys provides world class IT Training, Real-time Live Project to gain hands on experience, and IT Staffing services&#187;.</p>
<p>Надо ли возражать людям вообще?</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2018/06/25/mens-sanita-in-corpore-sanity/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3899</post-id>	</item>
		<item>
		<title>Как установить LaTeX (самостоятельно)</title>
		<link>https://testitquickly.com/2018/02/22/how-to-install-latex/</link>
					<comments>https://testitquickly.com/2018/02/22/how-to-install-latex/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Thu, 22 Feb 2018 17:52:07 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Документация]]></category>
		<category><![CDATA[Откровения]]></category>
		<category><![CDATA[Скриншоты]]></category>
		<category><![CDATA[Читерство]]></category>
		<category><![CDATA[LaTeX]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=3838</guid>

					<description><![CDATA[У меня уже произошло стойкое углубление в LaTeX, что привело к массивным экспериментам со множеством его пакетов, поэтому наличие полного набора всего и сразу мне благостно. Заранее же не знаешь, куда любопытство заведёт. Вся инструкция в txt http://bit.ly/2Er0x6o (Dropbox). Внимание, даже в txt в ряде случаев происходит искажение символов в тексте — ординарные кавычки превращает… <span class="read-more"><a href="https://testitquickly.com/2018/02/22/how-to-install-latex/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>У меня уже произошло стойкое углубление в LaTeX, что привело к массивным экспериментам со множеством его пакетов, поэтому наличие полного набора всего и сразу мне благостно. Заранее же не знаешь, куда любопытство заведёт.</p>
<p>
Вся инструкция в txt <a href="http://bit.ly/2Er0x6o">http://bit.ly/2Er0x6o</a> (Dropbox).</p>
<p style="padding-left: 30px;">Внимание, даже в txt в ряде случаев происходит искажение символов в тексте — ординарные кавычки превращает в фигурные, а дефис превращается в подобие тире.</p>
<p style="padding-left: 30px;">Презентабельности ради почти то же самое в pdf — <a href="http://bit.ly/2GIUSOX">http://bit.ly/2GIUSOX</a></p>
<p><span id="more-3838"></span></p>
<p>
Познакомиться с LaTeX исчерпывающе просто: достаточно установить Kile (редактор для LaTeX в среде KDE)</p>
<p style="padding-left: 30px;"><span style="color: #000080;">sudo aptitude install kile</span></p>
<p>При установке Kile принудительно потянет за собой зависимости, необходимые для базовой установки LaTeX. Например, будет установлен базовый пакет &#8216;texlive-latex-base&#8217;. Посмотреть информацию о нём:</p>
<p style="padding-left: 30px;"><span style="color: #000080;">sudo aptitude show texlive-latex-base</span></p>
<p>И это, конечно же, хорошо. Однако, как всегда, версия в репозиториях на порядок старее актуальной.</p>
<p style="padding-left: 30px;">Current release &#8216;TeX Live 2017&#8217; — от <em>4 June 2017</em>.</p>
<p style="padding-left: 30px;">А в репозиториях Debian доступен только LaTeX версии &#8216;<em>2016.20170123-5</em>&#8216;.</p>
<p>Философия Debian не подталкивает к использованию «всего самого свежего», но речь идет о TeX, который в принципе остановился в развитии на версии 3.14, а обновляются только пакеты LaTeX, поэтому тут можно смело требовать «свежатинки».</p>
<p>Установка LaTeX из сети возможна, но процесс скачивания и установки трёх тысяч файлов долгий, и при сбоях связи слегка… раздражающ. И ещё говорят, что</p>
<p style="padding-left: 30px;">…if TeXLive is installed via Debian’s own package manager (apt, synaptic, etc), TeXLive’s package manager (tlmgr) will not be available. This means that if a newer version of a package, or a package that is not in one of Debian’s own groups of LaTeX packages is required, it ends up being manually installed and that can make your system messy and hard to maintain.</p>
<p style="padding-left: 30px;">This can be a big issue with Debian, since it has a very conservative view of what is a ‘stable’ package, and can easily be three years behind the main TeXLive repository.</p>
<p style="padding-left: 30px;">Таки да, как-то довелось разбираться с установкой пакетов по-отдельности, и это было стрёмно.</p>
<p>Хочется просто поставить LaTeX самостоятельно и заставить Kile сразу работать с установленной программой, а не… Поэтому далее рассматривается несколько замороченная, но исключительно однозначная, точная и грамотная ручная установка всего набора LaTeX из его официального iso-файла  вкупе с неординарной, но смелой установкой Kile.</p>
<p>Место установки произвольное. Но по-умолчанию будет предложена установка в <em>/usr/local/texlive/2017/</em>.</p>
<p>Это разумно. Каталог с названием года выпуска — это фича, бо это позволяет установить сразу 100500 версий LaTeX рядом и переключаться между ними…</p>
<p>В <em>/usr/</em> хранятся все установленные пакеты программ, документация, исходный код ядра и система X Window и да, к содержимому <em>/usr/</em> все пользователи (кроме root) имеют доступ только &#171;для чтения&#187;. А если система со своим <em>/usr/</em> ещё и находится на SSD (solid-state drive, твердотéльный накопи́тель), а <em>/home/</em> положено на HDD, то LaTeX, который и так работает быстро, будет работать еще быстрее нужного (о-ля-ля, куда уж быстрее-то?!).</p>
<p>Однако нет.</p>
<p style="padding-left: 30px;">1</p>
<p>
На моём ноуте только один юзер, и городить «общий доступ» нет резона. И вообще, сделаем установку portable LaTeX (то есть, эту шнягу можно установить даже на флэшку, my ass!).</p>
<p style="padding-left: 30px;">2</p>
<p>
В будущем всегда маячит переустановка системы. Если при этом не заморочиться бэкапом всего <em>/usr/</em> (что вряд ли, если произойдёт большой и внезапный бэмц вроде &#171;эсэсдэ помрэ&#187;), то LaTeX придётся и ставить, и настраивать с нуля. Ы!</p>
<p style="padding-left: 30px;">3</p>
<p>
То же самое относится к установке программы в <em>/opt/</em>. Тоже, кагбэ, логичное для установки место, но оно тоже будет «обнулено» при вероятностной переустановке системы.</p>
<p style="padding-left: 30px;">4</p>
<p>
Для крупного обновления разумно сносить &#171;устаревший&#187; LaTeX и ставить новый &#171;с нуля&#187; (так гласит официальная инструкция, не будем ей перечить), и очевидно, что жить будет проще, товарищи, жить будет веселее, если новый софт будет установлен в тот же самый каталог с сохранением тех же путей в системных переменных. Поэтому не хочется устанавливать софт в каталог с названием типа <em>/2017/</em> !</p>
<p>Хочется поставить программу в каталог, который не привязан к номеру года, и расположен близко к домашнему каталогу, и при этом находится в месте, в котором изменения возможны только для root. Собственно настройки программы, так и быть, положим к своему юзеру в скрытый каталог, бо настройки же юзерские, и будут то и дело уточняться.</p>
<p style="padding-left: 30px;">И местами — весьма серьёзно, в режиме &#171;раз настроил и забыл&#187;, поэтому припоминать &#171;что там менялось&#187; через год-два будет очень, очень затруднительно.</p>
<p>Поэтому далее рассматривается только установка LaTeX в каталог &#8216;<strong><em>/home/LaTeX/</em></strong>&#8216;.</p>
<p>Enjoy.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2018/02/22/how-to-install-latex/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3838</post-id>	</item>
	</channel>
</rss>
