<?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%84%d0%be%d1%82%d0%be%d0%b3%d1%80%d0%b0%d1%84%d0%b8%d0%b8/feed/" rel="self" type="application/rss+xml" />
	<link>https://testitquickly.com</link>
	<description>про тестирование ПО и всё такое прочее</description>
	<lastBuildDate>Sat, 23 Sep 2023 19:07:33 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</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/2023/08/28/galbena-verzuie-dulce-amaruie/</link>
					<comments>https://testitquickly.com/2023/08/28/galbena-verzuie-dulce-amaruie/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Mon, 28 Aug 2023 19:51:09 +0000</pubDate>
				<category><![CDATA[Не смешно]]></category>
		<category><![CDATA[Фотографии]]></category>
		<category><![CDATA[Джин Родденберри]]></category>
		<category><![CDATA[Мэйджел Бэррет]]></category>
		<category><![CDATA[Фред Филлипс]]></category>
		<guid isPermaLink="false">https://testitquickly.com/?p=6104</guid>

					<description><![CDATA[Для создания образа орионской рабыни в «Стар Трек — the Original Series» понадобилось подобрать краску, которая заставит кожу актрисы выглядеть на экране зелёной. Художник сериала Фред Филлипс подобрал грим для актрисы Мэйджел Бэррет (в TOS была nurse Chapel, а в ST the New Generation озвучивала все реплики бортового компьютера), выставил освещение и сделал пробную съёмку.… <span class="read-more"><a href="https://testitquickly.com/2023/08/28/galbena-verzuie-dulce-amaruie/">Читать далее: Зеленая орионская рабыня &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Для создания образа орионской рабыни в «Стар Трек — the Original Series» понадобилось подобрать краску, которая заставит кожу актрисы выглядеть на экране зелёной.</p>
<p>Художник сериала Фред Филлипс подобрал грим для актрисы Мэйджел Бэррет (в TOS была nurse Chapel, а в ST the New Generation озвучивала все реплики бортового компьютера), выставил освещение и сделал пробную съёмку.</p>
<div id="attachment_6105" style="width: 444px" class="wp-caption alignright"><a href="https://testitquickly.com/wp-content/uploads/2023/08/Мэйджел-Бэррет.jpg"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-6105" class="size-full wp-image-6105" src="https://testitquickly.com/wp-content/uploads/2023/08/Мэйджел-Бэррет.jpg" alt="" width="434" height="360" srcset="https://testitquickly.com/wp-content/uploads/2023/08/Мэйджел-Бэррет.jpg 434w, https://testitquickly.com/wp-content/uploads/2023/08/Мэйджел-Бэррет-300x249.jpg 300w" sizes="(max-width: 434px) 100vw, 434px" /></a><p id="caption-attachment-6105" class="wp-caption-text">Мэйджел Бэррет на кинопробе</p></div>
<p>На следующий день в демонстрационном зале на экране кожа актрисы оказалась совершенно обычного цвета. Недоумевающий автор сериала (Джин Родденберри) сказал недоумевающему же Филлипсу, что актриса «должна быть зелёной».</p>
<p>Фред взял другую актрису, намазал её ещё более зелёным раствором, чем днём ранее было у Бэррет. На следующий день ситуация с тестовыми кадрами повторилась.</p>
<p>Позеленевший от злости Родденберри настоятельно повторил свою просьбу.</p>
<p>Также начавший зеленеть от злости Филлипс сделал новое лицо модели настолько зелёным, насколько смог, всё переснял и прибыл на очередной тестовый показ абсолютно уверенным в том, что уж на этот раз лицо актрисы будет нужного цвета.</p>
<p>Когда и в третий раз они увидели на экране актрису с лицом совершенно нормального оттенка, Родденберри окончательно пришёл в ярость и потопал в кинолабораторию, чтобы узнать у тамошних техников, не могут ли они сделать что-нибудь с плёнкой, чтобы лицо женщины стало зелёным.</p>
<p>Совершенно зелёный от усталости техник из кинолаборатории пожаловался ему на то, что он уже три ночи не спал, исправляя, по его мнению, ошибку съёмочной группы, из-за которой актриса выглядела ненормально зелёной…</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2023/08/28/galbena-verzuie-dulce-amaruie/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6104</post-id>	</item>
		<item>
		<title>Анонс_final</title>
		<link>https://testitquickly.com/2020/01/20/anons_final/</link>
					<comments>https://testitquickly.com/2020/01/20/anons_final/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Mon, 20 Jan 2020 16:47:56 +0000</pubDate>
				<category><![CDATA[Анонсы]]></category>
		<category><![CDATA[Видео]]></category>
		<category><![CDATA[Конференции]]></category>
		<category><![CDATA[Фотографии]]></category>
		<category><![CDATA[Metallica]]></category>
		<category><![CDATA[Selenium Camp]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=4316</guid>

					<description><![CDATA[— (голосом пионера) Приглашаем всех на «Анонс_final», ежегодную конференцию для анонимных анонсистов и финалистов и всех-всех-всех, которых интересует качественный процесс анонса и финализации! Спешите скорее, билеты уже в продаже! — ПАГАДИТИ! Это же «Selenium Camp», ежегодная конференцию для разработчиков и QA и всех тех, кого интересует качественный процесс разработки и тестирования, которая успешно состоится 21-22… <span class="read-more"><a href="https://testitquickly.com/2020/01/20/anons_final/">Читать далее: Анонс_final &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<hr />
<p style="padding-left:40px;">— (голосом пионера) Приглашаем всех на «<strong>Анонс_final</strong>», ежегодную конференцию для анонимных анонсистов и финалистов и всех-всех-всех, которых интересует качественный процесс анонса и финализации! Спешите скорее, билеты уже в продаже!</p>
<p style="padding-left:40px;">— ПАГАДИТИ! Это же «<a href="https://seleniumcamp.com/"><strong>Selenium Camp</strong></a>», ежегодная конференцию для разработчиков и QA и всех тех, кого интересует качественный процесс разработки и тестирования, которая успешно состоится <strong>21-22 февраля 2020</strong> в Киеве! Что за анонсисты? Какие финализаторы… Спешите скорее, билеты уже в продаже!</p>
<p style="padding-left:40px;">— (по телефону из Кишинёва) Да это файл с пресс-релизом так назвали, «<strong>Анонс_final</strong>». Никто не виноват. Спешите скорее, билеты уже в продаже!</p>
<hr />
<p><a href="https://seleniumcamp.com/"><img decoding="async" class="aligncenter size-large wp-image-4319" src="https://testitquickly.com/wp-content/uploads/2020/01/seleniumcamp2020.png?w=500" alt="Selenium Camp 2020" width="500" height="333" /></a></p>
<p>
В этом году:</p>
<ul>
<li>веб-автоматизация с или без WebDriver / Selenium;</li>
<li>масштабирование автоматизации тестирования (облако, инструменты, experience reports);</li>
<li>тестирование микросервисов (инфраструктура, контракты, подходы);</li>
<li>инструменты тестирования (smart reporting, AI, smart tests execution);</li>
<li>мобильное тестирование (практические аспекты);</li>
<li>инфраструктура автоматизации тестирования (когда, где и как проводить тесты);</li>
<li>машинное обучение и автоматизация тестирования (предложения, чат-боты, модели);</li>
<li>метрика и мониторинг;</li>
<li>управление тестовыми данными и генерация;</li>
<li>качество кода в автоматизации тестирования (реальные истории);</li>
<li>hardware / роботы / IoT (experience reports).</li>
</ul>
<hr />
<p style="padding-left:40px;">— ПАГАДИТИ! А где это пройдёт-то?</p>
<p style="padding-left:40px;">— Дык, в пресс-релизе не было написано…</p>
<p style="padding-left:40px;">— (по телефону из Кишинёва) Да там же, где и всегда: <strong>Киев, ул. Вадима Гетьмана, 6, Mercure Congress Hall.</strong></p>
<hr />
<p>Формат:</p>
<ol>
<li>2 дня практических докладов от отечественных и иностранных спикеров,</li>
<li>3 параллельных потока,</li>
<li>BOF сессии, где освещаются самые актуальные давно известные темы и вопросы,</li>
<li>Виски-фуршет для неформального общения со всеми теми спикерами и участниками конференции, которые предпочитают коньяк,</li>
<li>40% скидка на билет для тех, кто только переходит от ручного до автоматизированного тестирования (то есть, для начинающих.)</li>
</ol>
<p style="padding-left:40px;">И да, нумерованный список был выбран нарочно 🙂</p>
<p>Среди спикеров обнаружены:</p>
<p style="padding-left:40px;">Simon Steward (Selenium Project, UK), Marcus R Merrell (Sauce Labs, USA), Elias Nogueira (Waes, Netherlands), Николай Алименков (XP Injection, Украина), Андрей Солнцев (Codeborne, Estonia), Иван Крутов (Aerokube, Россия), Сергей Пирогов (EPAM, Украина).</p>
<p>Одна из редких конференций, на которые надо поскорее поспешить, бо билеты уже в продаже! Do you feel it?!</p>
<p>
<iframe title="Metallica: The Memory Remains (Helsinki, Finland - May 9, 2018)" width="665" height="374" src="https://www.youtube.com/embed/eXDMUV9c7IU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2020/01/20/anons_final/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4316</post-id>	</item>
		<item>
		<title>Олдскульные конференции</title>
		<link>https://testitquickly.com/2019/12/12/qa-z-day/</link>
					<comments>https://testitquickly.com/2019/12/12/qa-z-day/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Thu, 12 Dec 2019 11:54:22 +0000</pubDate>
				<category><![CDATA[Анонсы]]></category>
		<category><![CDATA[Конференции]]></category>
		<category><![CDATA[Фотографии]]></category>
		<category><![CDATA[Антон Семенченко]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=4291</guid>

					<description><![CDATA[Старики сказывают, что раньше конференции проводили в оффлайне. Как это происходило, можно представить по старым, довоенным фотографиям. Всем сидеть. Сидеть! А можно мы встанем, да?! Нет! Все по местам! Сидииииим… Быстро всем встать, быстро всем к еде, быстро, быстро, быстро! Были же времена, твой кролик пишет ковид!…]]></description>
										<content:encoded><![CDATA[<p>Старики сказывают, что раньше конференции проводили в оффлайне. Как это происходило, можно представить по старым, довоенным фотографиям.</p>
<p>Всем сидеть.</p>
<p><img loading="lazy" decoding="async" class="wp-image-4296 size-large aligncenter" src="https://testitquickly.com/wp-content/uploads/2019/12/01.jpg?w=500" alt="Всем сидеть!" width="500" height="273" /></p>
<p>Сидеть!</p>
<p><img loading="lazy" decoding="async" class="wp-image-4297 size-large aligncenter" src="https://testitquickly.com/wp-content/uploads/2019/12/02.jpg?w=500" alt="Сидеть!" width="500" height="333" /></p>
<p>А можно мы встанем, да?!</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-4298" src="https://testitquickly.com/wp-content/uploads/2019/12/03.jpg?w=500" alt="" width="500" height="333" /></p>
<p>Нет! Все по местам!</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-4299" src="https://testitquickly.com/wp-content/uploads/2019/12/04.jpg?w=500" alt="" width="500" height="334" /></p>
<p>Сидииииим…</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-4300" src="https://testitquickly.com/wp-content/uploads/2019/12/05.jpg?w=500" alt="" width="500" height="333" /></p>
<p>Быстро всем встать, быстро всем к еде, быстро, быстро, быстро!</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-4301" src="https://testitquickly.com/wp-content/uploads/2019/12/06.jpg?w=500" alt="" width="500" height="329" /></p>
<p>Были же времена, твой кролик пишет ковид!…</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2019/12/12/qa-z-day/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4291</post-id>	</item>
		<item>
		<title>Старые книги</title>
		<link>https://testitquickly.com/2019/03/16/vekituri-rablagite/</link>
					<comments>https://testitquickly.com/2019/03/16/vekituri-rablagite/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Fri, 15 Mar 2019 23:15:34 +0000</pubDate>
				<category><![CDATA[Видео]]></category>
		<category><![CDATA[Озарения]]></category>
		<category><![CDATA[Фотографии]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=4211</guid>

					<description><![CDATA[Тестирование — цельная система, в которой нет ничего лишнего, и всё со всем взаимосвязано. Тестирование полностью зависит от программирования. Тестирование ПО следует воспринимать и объяснять слитно с программированием, а не отдельно.]]></description>
										<content:encoded><![CDATA[<p>В наше время считается нормой учиться тестированию и при этом НЕ учиться программированию. Но ведь тестирование само по себе не имеет смысла — это подчинённый процесс, придуманный программистами для программирования.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-4212" src="https://testitquickly.com/wp-content/uploads/2019/03/d0a1d182d0b0d180d18bd0b5-d0bad0bdd0b8d0b3d0b8.jpg?w=500" alt="Старые книги" width="500" height="333" /></p>
<p>Все «старые» книги про тестирование написаны программистами, которые объясняют тестирование программистам. Майерс, Бейзер, Вайнберг, Йоргенсен — не так уж много их, но что дошло до наших дней, то если не блестит, то поблёскивает.</p>
<p><span id="more-4211"></span></p>
<p>В таких книгах подразумевается, что сперва ВСЁ надо продумать, и ВСЁ учесть, и ВСЁ заранее протестировать «карандашом на бумаге», а уже после этого натыкать дырок на перфолентах (или, чтобы посовременнее, на перфокартах) и скормить их компьютеру.</p>
<p style="padding-left: 40px;">Если сможете сделать на старом компьютере всё это иначе, быстрее и безошибочнее — обязательно расскажите, бо это чудо.</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 style="padding-left: 40px;">Незабываемый звук затвора Colt 1911.</p>
<p style="padding-left: 40px;">Расширенные зрачки того, кто всё понял про реальные способы обеспечения качества.</p>
<p style="padding-left: 40px;"><em>Directed by Robert B. Weide</em> (титры).</p>
<p>Потом-то [все] догадались о том, что программирование — не то же самое, что и строительство пирамид, и что люди иногда таки-передумывают (запускать ракеты сразу после их запуска), и что невозможно разрулить процессы разработки ПО так, чтобы всё получалось сразу с предсказуемым качеством, даже если логика говорит, что это достижимо. Слишком много неопределённости и вариантов развития событий. И слишком неоднозначны подходы к решению задач. А ешё и чёртов человеческий фактор.</p>
<p>В таких условиях тестирование ничего не гарантирует, но повышает шансы вырулить, если тестировать не только результат, но и разрабатываемый продукт в ходе разработки, то есть, можно же тестировать мелкие части по-отдельности, по мере их появления, а потом уже тестировать продукт целиком.</p>
<p>И тестирование ПО из подчинённого сервиса стало превращаться в отдельную отрасль, где ценились отдельные навыки и отдельное управление. Появились и отдельные книги (Тамре, Паттон, Канер — сам себя Сэм Канер называет «Кем Кэйнер», но нам лучше знать), в которых рассказывалось только про тестирование, и про то, что это сложный процесс, который требует отдельного менеджмента, для чего надо перепродумать процессы разработки ПО, а это привносит новую неопределённость…</p>
<p>Медленно окрепло мнение о том, что можно разобраться в тестировании, не разбираясь в программировании. И таки да, можно. Можно же водить автомобиль, не умея его чинить. Можно звонить по телефону, не понимая, как работает связь.</p>
<p>К началу XXI-го века этот подход развит до невероятного: массив знаний, необходимых для умения программировать, оказался очень большим, местами «огромным до ненужного». Важнее уметь пользоваться средой программирования, нежели понимать, как и почему она работает. Программист уже может самостоятельно продумывать и набирать код на клавиатуре, даже ещё до продумывания архитектуры приложения — быстро написал, быстро переписал.</p>
<p style="padding-left: 40px;">Умение программировать не означает «уметь педалить код». Это отдельный навык мышления, это умение рассуждать на уровне высоких абстракций, а какой конкретно язык программирования будет использован для написания кода — дело второстепенное. Это как управление войсками. Военное искусство изучают на костях Сунь Цзы — это очень древнее занятие, для которого нужны «старые книги».</p>
<p>Знания о программировании можно условно разделить на академические и прикладные, и таки это было сделано. Новичкам приходится [спрашивать на DOU, какой именно язык надо учить] принимать странное решение: или учить абстрактные теории о том, как работают машины, или учиться просто управлять этими машинами. Разве это не следует делать одновременно? Которые башковитые, те умудряются переключаться между этими сторонами, как в старину, а остальным и так всё норм.</p>
<p>Тестирование тоже разошлось на академическое и прикладное, и вроде бы окончательно превратилось в отдельную от программирования отрасль.</p>
<p>Современным тестировщикам нет нужды учиться сперва технарному мышлению, затем программированию и потом уже тестированию — это ли не ебалайтунг? Можно не знать Computer science — это и у современных программистов бывает, и, казалось бы, чо? А ничо. Можно не понимать, что такое файл или «временная/пространственная сложность алгоритма». Тестировщику можно вообще не уметь читать/писать код. Тест-дизайн упростился до двух пунктов (разбиение на классы эквивалентности и выявление граничных значений), и это самое сложное из того, что объясняют новичкам, а всё остальное ушло в раздел «просто знайте, что оно существует». Можно просто запоминать термины, не понимая их суть. Можно писать тест-кейсы, не понимая, почему они имеют такую форму. Можно верить в то, что найти все дефекты невозможно, что всё протестировать невозможно, что абыр, извините, валг.</p>
<p>Все «старые» книги про тестирование в этих условиях стали непонятными, а значит, «устарели», и читать их незачем. Надо подождать, когда кто-то напишет новые книги про тестирование программного обеспечения.</p>
<p>Ммм…</p>
<p>Если ждать, то сколько и чего конкретно?</p>
<p>Принципы, по которым работают современные компьютеры — те же, по которым они работали в середине ХХ века. Просто сейчас они делают вычисления невероятно быстро, а нам хочется чтобы ещё быстрее. Чтобы правильно работать с вычислительными машинами (компьютерами), нужно понимать, как и почему они работают — всё то же, что и в древности. Вам точно нужны новые книги для того, чтобы узнать про базовые принципы?</p>
<p>Можно компилировать новые книги из старых. Так делают преподаватели (Майерс, Коупленд, Куликов). Можно наматывать поверх компиляции собственный контент (Савин, Виттакер, Блэк, Криспин). Но компиляция основывается на «старых книгах», поэтому опять ничего нового.</p>
<p>Можно создавать книги-учебники, которые сопровождают лекции, и которые сложно читать в отрыве от их авторов, даже если очень полезно (Бейзер, Йоргенсен). Но если начать со «старых книг», а потом дойти до Бейзера с Йоргенсеном, то всё будет понятно.</p>
<p>Тестирование — цельная система, в которой нет ничего лишнего, и всё со всем взаимосвязано. Тестирование полностью зависит от программирования.</p>
<p>Тестирование ПО следует воспринимать и объяснять слитно с программированием, а не отдельно.</p>
<p><iframe loading="lazy" title="Daniel Castro - I&#039;ll Play The Blues For You" width="665" height="374" src="https://www.youtube.com/embed/ioOzsi9aHQQ?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2019/03/16/vekituri-rablagite/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4211</post-id>	</item>
		<item>
		<title>«Экономика тестирования. Версия 1.0» (текст)</title>
		<link>https://testitquickly.com/2019/02/02/testing-economy-ver-2/</link>
					<comments>https://testitquickly.com/2019/02/02/testing-economy-ver-2/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Sat, 02 Feb 2019 16:53:52 +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>
		<guid isPermaLink="false">http://testitquickly.com/?p=4012</guid>

					<description><![CDATA[Иногда в телевизоре начиналась телепередача «В гостях у сказки». Было волнительно. И да, это чёрно-белая картинка с телевизионными искажениями, бо вы офигели требовать цветной FullHD в советском телевизоре. Александр Александров сказок не читает, но при запуске видео с его докладами у меня всегда возникает то самое ощущение из навсегда ушедшего времени и волнение ожидания торта.… <span class="read-more"><a href="https://testitquickly.com/2019/02/02/testing-economy-ver-2/">Читать далее: «Экономика тестирования. Версия 1.0» (текст) &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p></p>
<p class="wp-block-paragraph">Иногда в телевизоре начиналась телепередача «В гостях у сказки». Было волнительно.</p>
<p></p><p>
</p>
<div class="wp-block-image wp-image-3985 size-large">
<figure class="aligncenter">
<div id="attachment_3985" style="width: 510px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3985" class="wp-image-3985" title="Анастасия Зуева, В гостях у сказки" src="https://testitquickly.com/wp-content/uploads/2018/12/в-гостях-у-сказкиТВ.jpg?w=500" alt="Анастасия Зуева, В гостях у сказки" width="500" height="263" /><p id="caption-attachment-3985" class="wp-caption-text">Анастасия Зуева</p></div></figure>
</div>
<p></p><p>
</p>
<p class="wp-block-paragraph" style="padding-left:30px;">И да, это чёрно-белая картинка с телевизионными искажениями, бо вы офигели требовать цветной FullHD в советском телевизоре.</p>
<p></p><p>
</p>
<p class="wp-block-paragraph">Александр Александров сказок не читает, но при запуске видео с его докладами у меня всегда возникает то самое ощущение из навсегда ушедшего времени и волнение ожидания торта.</p>
<p></p><p>
</p>
<p class="wp-block-paragraph">Его новый доклад — повышенной степени адекватности и глубокого погружения в тему. Не только описаны ужасы проектной повседневности в тестировании, но и предложено включить здравый смысл для их разруливания.</p>
<p style="padding-left:30px;">И там вообще не для джунов (там над вами хохмят).</p>
<p></p><p>
</p>
<p class="wp-block-paragraph">Я перегнал доклад в полноценную текстовую версию, бо оно того варто. Видео — в конце.</p>
<h2 style="text-align:center;"><strong><span style="color:#008000;">Александр Александров</p><p></span><span style="color:#008000;">Экономика тестирования. Версия 1.0 (2018)</span></strong></h2>
<h1 style="text-align:center;"> </h1>
<h3><strong><span style="color:#008000;">О чём будем говорить</span></strong></h3>
<ul>
<li>Общеизвестные (но не до конца) истины, или почему такая тема</li>
<li>На что влияет экономика тестирования</li>
<li>Что такое <strong>Версия 1.0</strong> &#8212; Подробно</li>
<li>Зачем нужна <strong>Версия 2.0</strong> &#8212; Кратко</li>
</ul>
<h3><strong><span style="color:#008000;">Почему такая тема</span></strong></h3>
<p>Эту тему я обдумывал на протяжении прошедшего года, и ещё не нашёл ответы на многие важные вопросы.</p>
<p><span id="more-4012"></span></p>
<p>Например, для меня было неожиданностью узнать, что тезис о том, что «Исчерпывающее тестирование невозможно» — не для всех очевиден. Когда меня спросили «А почему?», я сослался на книгу Гленфорда Майерса «Надёжность программного обеспечения» (1979), где был приведен пример причины. Ответ был: «Ну, там же математически не доказано, что это так!..» Я вспомнил своё математическое образование, и указал на теорему Кантора, которая говорит о том, что множество натуральных чисел — счётное <em>(то есть, это бесконечное множество,  элементы которого можно перенумеровать натуральными числами)</em>, а раз счётное, то оно не конечное. И если сделан калькулятор, который складывает натуральные числа, то НЕВОЗМОЖНО  провести его исчерпывающее тестирование — и так далее, и так далее.</p>
<p>Другой источник для аргументов — силлабус ISTQB, где чёрным по белому написано о том, что исчерпывающее тестирование невозможно.</p>
<p>Еще есть следствие из определения машины Тьюринга о том, что алгоритмически неразрешима проблема завершения ее работы (и так далее) — стандартный курс теории автоматов про это говорит.</p>
<p>Наконец, есть здравый смысл: все мы тестировщики (или все, кто не тестировщики, но, очевидно, хотят ими стать, потому что другого пути развиваться у человечества, конечно, нет 🙂 ), и у нас есть опыт тестирования, который приносит понимание того, что невозможно написать ВСЕ тест-кейсы и выбрать ВСЕ тестовые данные, нельзя пройти ВСЕ пути в коде и выполнить ВСЕ действия, которые может делать пользователь и так далее и так далее.</p>
<p>Вроде бы абсолютная истина, но вопросы на эту тему появляются снова и снова на самых разных уровнях, и особенно на уровне топ-менеджмента:</p>
<ul>
<li>«Когда вы завершите тестирование?» (Когда? «Завершить» означает «Сделать всё». Когда можно сделать всё?).</li>
<li>«Когда будут найдены ВСЕ дефекты?» (не то что половина, но даже 99% найденных дефектов, конечно же, никого не устроит)</li>
<li>«А когда мы поставим заказчику ПО без дефектов?»</li>
<li>Если дефект в продакшн &#8212; «Почему этот дефект не был найден?»</li>
<li>«А почему ВСЕ дефекты, которые были обнаружены в продакшн, не были найдены до передачи в продакшн?»</li>
</ul>
<p>Ну, а как на эти вопросы отвечать? Они все подразумевают исчерпывающее тестирование, которое мы не можем провести. Как выходить из положения?</p>
<p>Возникает следующая тема: <strong>критерии тестирования</strong>. Практически любые критерии завершения тестирования должны учитывать условия вроде:</p>
<ul>
<li>Если ущерб от незакрытого дефекта не превышает затрат на его исправление, то исправлять дефект не надо;</li>
<li>Если ущерб от потенциального дефекта не превышает затрат на его поиск и исправление, то искать дефект не надо;</li>
<li>Если суммарный ущерб от всех известных незакрытых дефектов не превышает выгоды от внедрения существующей версии системы, то ее надо внедрять (пусть даже и с известными незакрытыми дефектами).</li>
</ul>
<p>Обратите внимание на слова «затраты» и «выгода» в этом списке. В конечном итоге, если для того, чтобы исправить дефект, нам надо потратить денег (универсальное мерило работы и результата) больше, чем понадобится на покрытие ущерба, который нанесёт дефект, то этот дефект исправлять — не надо. С этим фактом трудно смириться, потому что он имеет далеко идущие последствия.</p>
<p>Что всё это означает с точки зрения выстраивания стратегии тестирования? Тестирование нельзя <strong>завершить</strong>, его можно только <strong>прекратить</strong>, поэтому нужны какие-то критерии прекращения тестирования — они, в том числе, и экономические, а не только технологические. Я бы взял на себя наглость заявить, что они <em>только</em> экономические, но эта формулировка, наверное, устроит не всех. И в этом принципиальное отличие того, чем занимаемся мы, тестировщики, от того, что делают разработчики:</p>
<ul>
<li>Все разработать &#8212; Можно</li>
<li>Все протестировать &#8212; Нельзя</li>
</ul>
<p>Разработчики могут сделать всё. Они могут ответить на вопрос «Сколько нужно времени, чтобы всё запрограммировать?» — например, два с половиной месяца. А почему? А потому, что там 18 фич, и в среднем на одну понадобится 3 дня. А сколько времени нужно тестировщику, чтобы найти все дефекты в этих 18-ти функциональностях? А сколько времени нужно тестировщику, чтобы написать для них ВСЕ тест-кейсы? А сколько времени нужно тестировщику, чтобы проверить ВСЮ функциональность? Никакого времени не хватит. Значит, мы должны говорить о том, <strong>когда</strong> мы прекращаем тестирование и <strong>почему</strong> мы его прекращаем. И эти критерии должны быть как технологическими, так и экономическими.</p>
<p>Мы должны оценить трудозатраты на тестирование, но не трудозатраты <em>вообще</em>, а именно те, которые нам нужны для достижения вполне определённого эффекта. Необходимо уметь планировать момент, когда следует остановить тестирование, и достоверно ожидать, что при этом получается с системой.</p>
<p>Пример: «Если потратить столько-то человеко-часов, получится приемлемое качество (не очень много дефектов останется). А если потратить меньше, то качество будет хуже (больше дефектов останется)». Это значит, что если мы потратим 5 000 ч/часов, то мы найдём 97% дефектов, а если мы потратим меньше, то мы найдём меньше дефектов. В такой формулировке мы можем говорить, как нам организовать тестирование — конечно, при определённой зрелости процессов разработки.</p>
<p>И тут можно было бы остановиться. Мы знаем чисто технически, на что расходуются трудозатраты на тестирование (как правило, на следующие активности):</p>
<ul>
<li>Рецензирование требований</li>
<li>Разработку тест-кейсов</li>
<li>Ручной прогон тест-кейсов</li>
<li>Автоматизацию тест-кейсов</li>
<li>Анализ результатов и подготовку отчетности</li>
</ul>
<p>Инвестиции в трудозатраты должны возвращаться (ROI) качеством объекта тестирования. Мы знаем, на что мы должны потратить время и деньги — мы должны привлечь в проект людей определённой квалификации, платить за инструменты автоматизации  и так далее. Мы должны инвестировать в тестирование, в том числе и в трудозатраты. Но любой инвестор спросит, что он получит взамен. А что мы можем предоставить взамен? Качество.</p>
<h3><strong><span style="color:#008000;">На что это влияет</span></strong></h3>
<p>Давайте рассмотрим анатомию процесса планирования.</p>
<p>Надо планировать так, чтобы затраты были реалистичными (укладывались в бюджет проекта) и эффективными (давали бы ожидаемый результат). Если мы пообещаем, что нам нужно 5 000 ч/часов, а за эти 5 000 ч/часов мы что-то протестируем, то нам головы открутят, и, естественно, извинения после этого приносить не будут. Если мы пообещаем, что мы гениальные тестировщики и что за три дня найдём все дефекты, то нам тоже головы открутят, но позже, когда необнаруженные дефекты выскочат на продакшне. И тогда зачем обещать? Ведь за свои слова надо отвечать.</p>
<p>Значит, необходимо пользоваться методами и моделями оценки трудозатрат на тестирование (я рассказывал об этом в 2011 году на SQA Days в Москве в докладе «Оценка трудозатрат на тестирование в проектах сопровождения» <a href="https://sqadays.com/ru/talk/12185">https://sqadays.com/ru/talk/12185</a>). На основании полученных оценок планируются активности по тестированию. Необходимо также  отслеживать процесс тестирования, чтобы вовремя обнаружить отставание от плана и скорректировать его.</p>
<p>Итак, предположим, что мы оценили трудозатраты абсолютно корректно, после чего нам выделили нужное количество человеко-часов, и мы всё сделали. Но поскольку в жизни не бывает достаточного количества запрашиваемых ресурсов, то нам надо понять, что <em>может произойти</em>, если что-то пойдёт «не так».</p>
<p>Мы можем недооценить трудозатраты на тестирование. Да, мы можем их недооценить с самого начала. Например, мы запросили 5 000 ч/часов, а их в проекте нет, и нам предлагают &#8212;  возьмите 3 500 ч/часов и как-то выкручивайтесь. Что ж, давайте крутиться.  </p>
<p>Другой пример: в проектах всегда что-то меняется, от требований до моды и платформы. Все эти изменения могут привести к ухудшению качества объекта тестирования, потому что первоначальный план у нас есть, но если он стал неактуальным, то его нет. Оценка оказалась заниженной или обстоятельства изменились — всё бывает, и всё это может привести к ухудшению качества объекта тестирования, когда не хватает возможностей протестировать все, что планировалось, и с качеством, которое планировалось. Что и как здесь можно делать и какие нас ждут подводные камни?</p>
<p>Почему бывает недооценка? Например, недооценён бюджет всего проекта. Бывает, что стоимость ресурсов неожиданно высока. Например, мы закладывали в проект, что у нас начинающие тестировщики будут писать тест-кейсы. Я (и надеюсь, не только я) очень хочу посмотреть на  начинающего тестировщика, который умеет писать качественные тест-кейсы, ибо я таких людей за всю свою жизнь не видел ни разу. Ясно, что за ними придётся дорабатывать (дописывать и переписывать).</p>
<p>Недооценка трудозатрат бывает также из-за отсутствующих или несовершенных процессов. У нас велика роль человеческого фактора, и выполнение нашего проекта зависит от того, кто и что будет делать. И даже если у нас будет стабильная команда — это все еще идеальный сферический конь в вакууме, ведь у человека бывает разное настроение, он может что-то решить, а потом передумать, в результате чего мы все — компания, проект, тестировщики, заказчик — становимся заложниками ситуации. Для того, чтобы надежно планировать работу, надо иметь совершенные процессы. </p>
<h3><strong><span style="color:#008000;">Подробно о Версии 1.0</span></strong></h3>
<p>Недооценка трудозатрат на тестирование часто приводит не к изменению  стратегии тестирования, а лишь к увеличению трудозатрат (дополнительному времени, персоналу и др.) и, как следствие, к увеличению сроков и/или стоимости проекта. Или мы недооценили трудозатраты, или нам их недооценили — что делать? «Дайте нам то, чего нам не хватает! Да, мы получили оценку в 3 500 ч/часов, но поскольку всё пошло не так, нам надо ещё. Нам надо больше людей и времени». Чем это плохо? Мы выходим за обещанные рамки, за сроки и за стоимость, а для заказчика ничего хуже этого не бывает, потому что ложка дорога к обеду. Конечно, если вы сделаете работу в срок, но плохо — это неприемлемо, но если вы сделаете хорошо, но на полгода позже — подумайте, что хуже. </p>
<p>Рассмотрим решения реальных кейсов. Первый: «<strong>Главное — получить проект, а там посмотрим</strong>». Мы участвуем в тендере. Мы оценили трудозатраты на тестирование  в 500 ч/часов. Получилось дорого, поступает указание урезать трудозатраты, но разработчиков урезать нельзя! При таких трудозатратах проект продать нельзя, поэтому уменьшили тестирование до 300 ч/часов. Дальше — больше. «Непонятно, что в проекте делают тестировщики. Если они поставляют ПО с дефектами — от этого проекту только хуже. Если они тест-кейсы пишут — да кому эти тест-кейсы нужны?!» Мне приходилось эту фразу слышать от топ-менеджмента неоднократно.</p>
<p>Хорошо, мы согласились на 300 ч/часов. Как мы это сделаем за 300 ч/часов — мы не знаем. Но мы согласились с этой оценкой, пообещав тем самым  сделать все в полном объеме, со всеми артефактами. И вот эти часы исчерпались. Дальше что? Чудес не бывает: либо тестирование останавливается, что для проекта губительно с технической точки зрения, либо тестирование продолжается себе в убыток, и приходят грозные дяди из финансового подразделения и спрашивают, почему компания несёт убыток. А если к тому же компания торгуется на бирже, нам говорят «вы показываете низкую маржу, от нас побегут инвесторы». Результат: качество проекта непредсказуемо.</p>
<p>Второй кейс: «<strong>Любой каприз за ваши деньги</strong>». Сколько раз мы говорим это заказчику? Заказчик воспринимает это буквально, и начинает требовать любой каприз за свои деньги. Проект выполняется по модели Fixed Price, потому что все стремятся минимизировать затраты, начинаются изменения, повторное тестирование, мы получили свои 500 ч/часов, мы их честно израсходовали, потому что мы подписались под «ваши капризы» и всё, результат печальный. Тестирование либо останавливается, либо продолжается себе в убыток. Качество проекта непредсказуемо.</p>
<p>Третий кейс: «<strong>Тестирование от забора до обеда</strong>». Мы оценили трудозатраты  на тестирование в 500 ч/часов и получили согласие на эти трудозатраты. У нас есть команда, и мы начинаем тестировать, не заботясь о  приоритетах и целях, мы тестируем всё, что под руку попадается, потому что всё это заказчику нужно — он же сам нам об этом сказал. Мы заказчика очень любим и хотим сделать работу хорошо, но вот 500 ч/часов исчерпались. А что происходит с приложением, когда эти 500 ч/часов исчерпались? А бог его знает. Что-то протестировано, что-то нет, где-то написаны скрипты автоматизации, которые, правда, ничего не находят, но они же написаны. Регрессионное тестирование с помощью автоматизации — это такая фишка, которая с одной стороны, может ничего не дать, а с другой стороны, деньги жрёт так, что никакая расточительная длинноногая молодая так не сможет. Тестирование либо останавливается, либо продолжается себе в убыток. Качество проекта непредсказуемо.</p>
<p>Четвёртый кейс: «<strong>Кавалерийский наскок, или Авось</strong>». Да, мы профессионалы, нас много, мы команда, мы всё можем.  Все тестировщики, которые есть в компании, поставлены «под ружьё», мы выполняем тестирование так, как можем — да, не хватает квалификации для тест-дизайна, зато у нас огромное количество новичков, но они ретивые, они по выходным работают. Тестирование заканчивается в момент окончания проекта. А чем оно закончилось? А бог его знает. Как карта ляжет. Карта, как правило, ложится плохо. Качество проекта непредсказуемо.</p>
<h3><strong><span style="color:#008000;">Кратко о Версии 2.0</span></strong></h3>
<p>Поговорим о том, в чём разница между экономиками тестирования версии 1.0 и 2.0.</p>
<p>Версия 1.0 — это парадигма, в которой, к сожалению, мы с вами сегодня работаем. Нам дали сколько-то ресурсов, а теперь мы должны дать результат. Почему всё так устроено? А потому, что мы знаем, как эти ресурсы использовать. К примеру, мы знаем, что из 500 ч/часов 200 мы потратим на написание тест-кейсов, 100 на автоматическое тестирование и 200 на ручное — но это все в идеальном мире, если не будут радикальных изменений, все тестировщики будут прекрасно работать, и так далее. А если мы обосновываем оценку, показываем ее реалистичность и  эффективность, и будем оценивать все риски, то за эту оценку, уж извините, любой нормальный менеджер проектов открутит вам голову, ибо ему непонятно, почему тестировщики должны ошибаться — они же тестировщики! Это разработчики могут ошибаться, но чтобы тестировщики — никогда 🙂</p>
<p>В итоге у нас получается план, который «отлит в граните», и мы всё время пытаемся удержаться в рамках этого плана.</p>
<p>А что такое Версия 2.0? Вот мы получили оценки. Эти оценки играют роль запасного парашюта. Это то, как мы будем работать, если у нас ничего более эффективного не получится. Но Версия 2.0 говорит нам о том, что надо использовать обоснованные трудозатраты эффективно, анализируя проектную ситуацию. Мы будем писать тест-кейсы? Если будем, то какие? Какие тестовые данные мы будем использовать и где мы будем их брать? От заказчика? Свои? Какие нам нужны тестировщики &#8212; мало сильных (но дорогих) или много слабых (зато недорогих)? Нам нужна стабильная команда для данного проекта или нет? Нужна нам автоматизация вообще, и если да, то какой инструмент, какое покрытие должно быть обеспечено?</p>
<p>Если для Версии 1.0 критерии — это возврат инвестиций в трудозатраты (ROI), то для Версии 2.0 критерий — это максимизация выгоды. И это разные вещи.</p>
<h3><strong><span style="color:#008000;">Заключение</span></strong></h3>
<p>Перечислим кратко основные тезисы.</p>
<ul>
<li>Исчерпывающее тестирование невозможно.</li>
<li>Тестирование — это в том числе и экономическая деятельность.</li>
<li>Версия 1.0, или Что надо сделать. Работаем в рамках плана и оценки, при нехватке ресурсов просим их добавить (экстенсивный подход)</li>
<li>Версия 2.0, или Как надо сделать. Работаем в рамках плана и оценки максимально эффективно (интенсивный подход)</li>
</ul>
<h3><strong><span style="color:#008000;">Благодарности</span></strong></h3>
<p>Наконец, позвольте поблагодарить:</p>
<ul>
<li>Организаторов конференции SQA Days # 24 за приглашение и возможность выступить.</li>
<li>Моих коллег Андрея Ладутько, Александра Лукашева, Андрея Павлова, Алексея Федорова и Александра Куцана за детальное обсуждение тематики доклада и поддержку.</li>
<li>Программный комитет конференции SQA Days # 23, благодаря усилиям которого на SQA Days # 24 появился этот доклад и, надеюсь, на SQA Days # 25 появится доклад «Экономика тестирования. Версия 2.0» и его широкое обсуждение.</li>
</ul>
<h2><strong><span style="color:#008000;">Вопросы и ответы</span></strong></h2>
<p><strong>Стоит ли вообще тестировщику отстаивать свои 500 ч/часов, которые он рассчитал, долго и упорно, или согласиться с оценкой менеджеров, перекладывая на них, таким образом, ответственность за результат?</strong></p>
<p>Не стройте иллюзий о том, что вы перекладываете ответственность. Если вы согласились на 300 ч/часов вместо 500, то вы взяли на себя ответственность, что протестируете всё за 300 ч/часов. Придут и спросят: ну как же, вы же обещали? Вы же сказали, что за 300 ч/часов ВСЁ протестируете, и дефектов не будет. Но дефекты есть. Тогда за что вы зарплату получаете?</p>
<p>Если вы знаете, как протестировать за 300 ч/часов, и 200 ч/часов для вас было «большой подушкой» — ради бога. Иначе — вот вам горящий фитиль в бочке с порохом, на которой вы сидите, и радуйтесь тому, что вы не знаете длины фитиля и не знаете, когда оно жахнет.</p>
<p><strong>Сколько времени у вас занимает разработка оценки для проекта и кто это делает?</strong></p>
<p><strong> </strong>Времени уходит немного, но надо понимать, что Luxoft с самого начала был процессной компанией. У нас есть процесс оценки трудозатрат на тестирование, и процесс достаточно гибкий.</p>
<p>Если говорить про роль, то этим занимается тест-лид или тест-менеджер. Но бывает, что в команде один тестировщик, он сам себе и менеджер, и лид, и автоматизатор &#8212; тогда он и будет строить оценку.</p>
<p>Если говорить про ресурс, то этим занимается тот ресурс, у которого хватает квалификации для этой работы (наука, поверьте, не дворянская).</p>
<p>Если говорить про время — от четырёх часов до двух-трёх дней, если это обозримый проект. Если проект огромный, то эти оценки нужно делать регулярно, ибо они устаревают на ходу. Это не то время, которое может затормозить всю работу, при условии, что у вас есть процесс оценки. Если каждый раз делать оценку «на коленке», то это тупик.</p>
<p><strong>Стоит ли закладывать оценку трудозатрат на оценку трудозатрат в тестировании?</strong></p>
<p><strong> </strong>Это зависит от гранулярности вашего планирования. Если планируете с точностью до часа, то, безусловно, стоит. Если планируете с точностью до дня, то мой опыт говорит «нет».</p>
<p>Опять же, все это зависит от сложности проекта. Здесь уместно такое сравнение — а как лучше целоваться? Голову в какую сторону наклонять? Глаза закрывать или нет? А критерий очень простой — когда люди целуются, главное &#8212; чтобы им обоим это нравилось.</p>
<p>Слишком сложно то, чем мы занимаемся, поэтому простых ответов не ищите.</p>
<p><strong>Вы говорили о том, что нужно сравнивать трудозатраты и, соответственно, стоимость на поиск и исправление дефекта с возможными ущербами от его попадания в продакшн. Как вы оцениваете ущерб от дефекта, особенно если он не найден?</strong></p>
<p><strong> </strong>Следующим образом: мы управляем рисками. Любой дефект, по сути &#8212; это оборотная сторона риска. Риск состоит в том, что мы дефект пропустим в продакшн, а дальше смотрим: мы должны знать достаточно хорошо бизнес заказчика, мы должны понимать, какие финансовые потери он понесёт, если у него какая-то функциональность не работает на протяжении суток.</p>
<p>Этот расчёт может быть очень полезным с точки зрения обоснования трудозатрат на тестирование. Когда вам заказчик говорит «А на что вам 500 ч/часов на тестирование?» можно ответить «ОК, давайте снизим до 300. В этой функциональности раз в месяц у вас будут возникать отказы, и центральная система банка будет простаивать шесть часов. Можно посчитать, сколько вам будет стоить этот простой?» Вот это и будет объём убытков. Вы нам не даёте деньги на 500 ч/часов — значит, у вас будут убытки, и вот столько они будут стоить (обычно, больше пресловутых 500 часов на тестирование).</p>
<p>Это гипотезы, но гипотезы должны быть обоснованные. Есть такое понятие «Защита оценки» — вас спрашивают «Почему?», а вы отвечаете не просто «Потому», но аргументированно «Потому, что…» и дальше разъясняете объективные аргументы  тому человеку, который этот вопрос задаёт.</p>
<p>Если вы не знаете бизнес, то можно спросить у тех, кто его знает. Мы не можем протестировать всё. Но мы можем протестировать большой кусок всего, и результат будет таким-то. Можем протестировать меньше, тогда последствия могут быть такими-то. Кто-то должен взять на себя ответственность за решение, связанное с финансовыми рисками. Наша задача — эти риски обозначить и предоставить выбор.</p>
<p>Если риски правильно обозначены и обсчитаны (получены их  финансовые показатели — выгода, ущерб, затраты), тогда мы можем говорить с заказчиком, с менеджментом на одном языке. Чем выше менеджмент, тем больше его интересуют деньги и тем меньше его интересуют технологии.</p>
<p>Пример — штрафные санкции из  контракта Сбертеха: шесть серьезных дефектов в продакшн за полгода — штраф в размере стоимости контракта на разработку ПО. Шесть дефектов в огромной системе — это абсолютно реальная вещь. Есть резон брать на себя такие риски?</p>
<p><strong>Если всё протестировать нельзя, то следует ли из этого, что у нас всегда непредсказуемое качество? И как можно его предсказать?</strong></p>
<p><strong> </strong>Позволю себе сослаться на свой доклад на SQA Days в 2009-ом в Питере, где это обсуждалось <a href="https://www.slideshare.net/SQADays_2009_Piter/ss-1703956">https://www.slideshare.net/SQADays_2009_Piter/ss-1703956</a> (сохранились только слайды).</p>
<p>Предсказать можно. Да, есть методы количественного управления — «шесть сигм», статистическое управление и так далее. С вероятностью 99,97% можно оценить количество дефектов, которые у нас будут на выходе. Если есть более тридцати измерений, то статистика весьма достоверная, и можно предсказывать количество дефектов. Это требует определённой процессной культуры и определённой профессиональной инженерной культуры в тестировании, но до конкретного уровня и с конкретной точностью это оценивать можно. Тогда вы скажете, что если тестирование будет проводиться с такими-то параметрами, то у нас будут в продакшн (упростим для простоты) два серьезных дефекта на 10 000 строк кода. Мы можем соотнести затраты и выгоду, и защитить эту оценку.</p>
<p>А в ситуации «Дайте нам 500 или 5 000 ч/часов, только мы не знаем, что получится в результате», демонстрируется профессиональная  беспомощность, что не есть хорошо.</p>
<p><strong>Рассмотрим такую ситуацию: у нас есть микроэкономика, есть команда, которую мы уже наняли, которая за определённые деньги выдаёт заказчику тестирование какого-то продукта нужного уровня качества. Параллельно с этой микроэкономикой команды, есть макроэкономика большого рынка. Когда заказчик просит у нас обеспечить лучшее качество, мы взамен просим обеспечить нас ресурсами. Стоимость ресурсов в микроэкономике нашей команды и стоимость ресурсов в макроэкономике она, за тот промежуток времени, который мы расходуем на тестирование, уже отличается в большую сторону — на рынке эта же работа дороже. Есть ли у вас такие ситуации и как вы держите экономический баланс между стоимостью услуг, которые оказывает внутренняя команда и стоимостью услуг, которые оказывает внешняя команда?</strong></p>
<p><strong> </strong>На основании собственного опыта сложно ответить на этот вопрос. Как инженер я не включён в экономику проекта. Как менеджер я иногда владею экономикой проекта,  знаю рейты, по которым продают труд наших сотрудников, но больше я не знаю ничего. Если ваши сотрудники той же квалификации, что и на рынке, но стоят дешевле, то это ваше огромное преимущество, которое может удержать вашего заказчика.</p>
<p>Но бывает хуже. Например когда  Сбертех вышел на рынок, он «перетащил» к себе всех специалистов с помощью повышенных рейтов. Другой пример — компания, где я два года работал директором по качеству. Там работали уникальные специалисты (они, в частности, правили ядро Linux), которые раз в полгода приходили к собственнику и требовали повышения зарплаты. Не повышать зарплату нельзя, потому что потеря работников ведёт к потере бизнеса. Но и повышать зарплату нельзя — компания теряет маржу,  прибыль, теряет бизнес. Если ваши сотрудники дороже — это большая опасность, у вас из-за плеча могут неожиданно выглянуть конкуренты, которые предложат сделать то же самое, но в полтора раза дешевле. Может быть, они работу и не сделают, но такой демпинг на тендерах типичен. И даже если они проект завалят, нам от этого уже ни холодно, ни жарко, потому что мы проект не получили.</p>
<p>Прежде всего, решением будет повышение квалификации сотрудников и выстроенное обучение. Можно более «дорогим» сотрудникам адресовать более сложные задачи, и это их будет их мотивировать интересной работой. А на рутинные задачи  назначать, например, новых людей, которые «дешевле», набирать их, учить и так далее. Но совершенно очевидно, что построенный таким образом  дом должен стоять на надежном фундаменте процессов. Если у вас всё в головах отдельных людей, то это ничем хорошим не кончится, передача информации от одного сотрудника другому будет стоить дорого, длиться долго, при этом оба эти сотрудника  из проектов выпадают.</p>
<p><strong>Оценивали ли вы затраты на обучение и на тестирование? Есть ли техники нахождения баланса, когда дешевле привлекать специалиста извне, или дешевле обучить своих сотрудников?</strong></p>
<p><strong> </strong>Особых исследований на эту тему я не знаю. Если учить вообще, то получается странный подход. Если учить конкретно тому, что нужно в данном проекте, то такой подход очень сильно зависит от проекта, и приводить обобщающие цифры тоже странно. Luxoft — крупная компания, и мы стараемся, прежде всего, находить людей с нужными знаниями и навыками, а если их надо доучивать, то недолго. Если же принять на работу сотрудника, который не умеет ничего, а затем учить его всему, что нужно в проекте — это неправильно, но не потому, что дорого, а потому, что долго.</p>
<p>Сотрудника вводят в проект, когда проект уже есть. Если брать заранее, то есть риск, что проект не состоится, и затраты не будут возвращены.</p>
<p>Как правило,  сотрудников учат локально, а не глобально. Например, в проект были привлечены сотрудники с опытом использования QTP, и для них было проведено несколько занятий, как строить в QTP фреймворки, причем совершенно нечувствительно для проекта.</p>
<p><strong> </strong></p>
<p></p><p>
</p>
<figure class="wp-block-embed is-type-rich">
<div class="wp-block-embed__wrapper" style="text-align:center;">
<p class="wp-block-paragraph"><iframe loading="lazy" title="Экономика тестирования. версия 1.0" src="https://player.vimeo.com/video/303146148?dnt=1&amp;app_id=122963" width="665" height="212" frameborder="0" allow="autoplay; fullscreen; picture-in-picture; clipboard-write"></iframe></p>
</div>
</figure>
<p></p>
<p><!--EndFragment--></p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2019/02/02/testing-economy-ver-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4012</post-id>	</item>
		<item>
		<title>Как перестать быть джуниором?</title>
		<link>https://testitquickly.com/2019/01/19/deamu-sa-te-faci-om/</link>
					<comments>https://testitquickly.com/2019/01/19/deamu-sa-te-faci-om/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Sat, 19 Jan 2019 20:44:24 +0000</pubDate>
				<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=4001</guid>

					<description><![CDATA[Вопрос понятен. Ответ: надо перейти в режим «Я увольняюсь». Нет, не уволиться, а начать вести себя так, словно ты принял решение, и уже скоро уйдёшь. Увольняющийся всегда работает очень хорошо. А он просто делает ровно то, что нужно, не стараясь что-то улучшить. А он просто делает всё так, как ему было сказано. И вовремя. А… <span class="read-more"><a href="https://testitquickly.com/2019/01/19/deamu-sa-te-faci-om/">Читать далее: Как перестать быть джуниором? &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Вопрос понятен.</p>
<p>Ответ: надо перейти в режим «<span style="color: #008000;"><strong>Я увольняюсь</strong></span>».</p>
<p>Нет, не уволиться, а начать вести себя так, словно ты принял решение, и уже скоро уйдёшь.</p>
<p><span id="more-4001"></span></p>
<p>Увольняющийся всегда работает очень хорошо.</p>
<p style="padding-left: 30px;">А он просто делает ровно то, что нужно, не стараясь что-то улучшить.</p>
<p style="padding-left: 30px;">А он просто делает всё так, как ему было сказано. И вовремя.</p>
<p style="padding-left: 30px;">А он просто делает не больше того, что было указано.</p>
<p style="padding-left: 30px;">Отличный работник.</p>
<p style="padding-left: 30px;">Замечательный работник.</p>
<p style="padding-left: 30px;">Почему он раньше не был таким? Весёлый, креативный, как жалко, что он уже уходит. Вот всем бы так.</p>
<p>Почему увольняющийся так весел и креативен? Почему так унылы остающиеся?!</p>
<p>Джуниор, как школьник, боится сделать ошибку. Ну, вы знаете школьников — те самые стрёмные и неуверенные в себе дети, которые боятся получить двойку, чтобы не быть битыми батогами нещадно.</p>
<p style="padding-left: 30px;">Те самые, которые боятся экспериментов, бо их научили всегда выполнять какую-либо работу только по одному шаблону, иначе карательный меч педагогического правосудия&#8230;</p>
<p style="padding-left: 30px;">Те самые глупые детёныши человека, которых приучили делать только то, за что хвалят, и НЕ делать ничего того, за что будут ругать.</p>
<p style="padding-left: 30px;">Те самые, которые сперва выясняют правила и шаблоны, а потом стараются действовать строго в рамках этих правил, даже если здравый смысл говорит, что уже не надо так&#8230;</p>
<p style="padding-left: 60px;">Какой такой здравый смысл в школе? Вот те два! Вот те шаблон! Вот что имел ввиду автор сей поэмы, когда раскрывал образ Онегина в образе Татьяны!</p>
<p>Ну, вы их знаете. Скажите ещё раз спасибо вашим учителям за то, что они из вас воспитали.</p>
<p>Вот и сидят джуниоры наши в ступоре, медленно накликивая себе на баг-репорт. Бо страшно. И задачи выполняют медленно — бо страшно ошибиться. И делать стараются лучше, чем могут (бо всем так говорят), но при этом стараются не экспериментировать, а то вдруг накажут (все так говорят). Вот и поди разберись&#8230;</p>
<p>А если увольняешься, то уже не страшно. Уже как раз всё делаешь как надо. Уже и экспериментируешь (ну и хрен с ним, если не получится — переделаешь). И ни с кем ни о чём не споришь, не сомневаешься, просто делаешь.</p>
<p>И начинает получаться!</p>
<p>Повторюсь, что речь идёт не о реальном движняке в ближайший порт, а всего лишь о психическом настрое начинающего весляра, будущего капитана своего боевого швертбота класса USS Enterprise.</p>
<p>Харэ сомневаться, просто начни делать хотя бы ровно то, что от тебя ожидается. Это уже потребует множества усилий, и на сомнения времени не останется.</p>
<p><div id="attachment_4003" style="width: 510px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-4003" class="size-large wp-image-4003" src="https://testitquickly.com/wp-content/uploads/2019/01/бойцовский-клуб.png?w=500" alt="Давайте варить мыло" width="500" height="377" /><p id="caption-attachment-4003" class="wp-caption-text">Будете варить мыло?</p></div></p>
<h3><span style="color: #008000;"><strong>К манагерам</strong></span></h3>
<p>Всё вышесказанное было обращением к джуниорам, но раз уж вы за каким-то чёртом дочитали досюдова, то для вас есть два важных соображения.</p>
<p>1)</p>
<p>Менеджеру не рекомендуется рекомендовать джуну думать про «<em>А представь, что ты увольняешься&#8230;</em>» Одно дело услышать это от тех, кто не влияет на твою зп, и совсем другое дело услышать это от того, кто на твоё зп влияет прочно. Не доводите их до суицидальных наклонностей в вашу сторону. Лучше официально разрешите им экспериментировать с выполнением поставленных вами задач.</p>
<p style="padding-left: 30px;">Заодно сами начнёте лучше вникать в суть задач, а не только их раздавать и собирать отчёты.</p>
<p>2)</p>
<p>Опытный манагер всегда заранее знает, который из его пиратов намылился спрыгнуть за борт. Хитрому Билли кажется, что кроме него об этом ещё никто не знает, но решающий увольняться уже намного задолго до финальной дудки боцмана перестаёт вовлекаться в общее дело. Перестаёт спорить. Перестаёт предлагать. Перестаёт потеть и показываться на глаза начальству. Перестаёт бояться ответственности, и старается поменьше задач на себя брать. А те, которые взял, выполняет ровно настолько, насколько этого требуют условности контракта. И всё это очень хорошо видно и понятно, и если вам уже кажется, что кто-то из вашей команды заранее отстранился, то в приступе профессионализма вы можете вообразить, что уже распознали потенциального бегуна, и надо поскорее наподдать ему на прощание под зад&#8230;</p>
<p>Однако!</p>
<p>Люди могут отстраняться от вас не только перед увольнением. Например, если вы менеджер, но болван, и с вами сложно общаться, то эффект будет такой же — джуны постараются не попадаться вам на глаза чаще необходимого, выполнять ровно то, что было сказано, и вообще постараются не брать на себя никакую ответственность.</p>
<p>Джуниору нужно всего лишь избавиться от страха экспериментировать со способом выполнения задач. Собственно, весь секрет нашего профессионализма заключается в том, что ты на протяжении всего своего джуниорства позволял себе экспериментировать. В процессе поиска ответа на один вопрос ты находишь ответы на десять других, незаданных вопросов, и в итоге знаешь и умеешь намного больше, чем тот твой товарищ, который тыщу раз отмерял и сомневался, и готовился сделать всё СРАЗУ правильно.</p>
<p style="padding-left: 30px;">То же самое видно и у спортсменов.</p>
<p style="padding-left: 30px;">Люди разные, и ситуации разные. Но тот, кто долго и тщательно готовится сделать один, но правильный прыжок, всегда проигрывает тому, кто прыгает снова, и снова, и снова, и снова, и прыгает по-разному, в разных условиях, в разных эмоциональных состояниях, и просто прыгает для удовольствия, а не для «рраз — и победа». Почему так — сами догадайтесь.</p>
<p>P.S. А, ну да, если вы досюда дочитали, то вам интересно узнать, как понять, не болван ли вы. Ну, если вам кто-то что-то вякнул про вашего джуна, а вы не достали плазмаган для защиты своих пацанов, а побежали к вашему виновнику торжества, вытащили его в коридор и начали рвать ему пасть, приговаривая «<em>Почему я должен слышать жалобы от чужих про тебя и краснеть за тебя и страдать за тебя?!</em>», то увы&#8230;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2019/01/19/deamu-sa-te-faci-om/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4001</post-id>	</item>
		<item>
		<title>Вот идёт караван</title>
		<link>https://testitquickly.com/2018/10/05/medjnun/</link>
					<comments>https://testitquickly.com/2018/10/05/medjnun/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Fri, 05 Oct 2018 16:59:20 +0000</pubDate>
				<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=3956</guid>

					<description><![CDATA[Это тоже запись из разряда «Люди, мы дышим воздухом!», но мне это всё кажется очевидным сейчас, а ранее я об этом и не думал. Есть древняя притча про молодого и перспективного джуна, который очень ждал у своего хозяина постоялого двора повышения, бо таньга нада, начальника, и опыт есть, KPI в норме, и уже шайтан-арбу чинилъ-шаталъ… <span class="read-more"><a href="https://testitquickly.com/2018/10/05/medjnun/">Читать далее: Вот идёт караван &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p style="text-align: right;">Это тоже запись из разряда</p>
<p>
«Люди, мы дышим воздухом!»,</p>
<p>
но мне это всё кажется очевидным сейчас,</p>
<p>
а ранее я об этом и не думал.</p>
<p>Есть древняя притча про молодого и перспективного джуна, который очень ждал у своего хозяина постоялого двора повышения, бо таньга нада, начальника, и опыт есть, KPI в норме, и уже шайтан-арбу чинилъ-шаталъ нада, нада таньга, очинь нада, давай таньга.</p>
<p><span id="more-3956"></span></p>
<p><strong>Явление первое</strong>. Как-то хозяин постоялого двора, у которого работал упомянутый джун, послал юношу за информацией к главному погонщику каравана, который как раз медленно входил в город. Джун завёл осла, метнулся кабанчиком туды-сюды, и доложил: «<em>Это караван Сноги Мехмеда Ушатаевича</em>».</p>
<p>— А куда он идет?</p>
<p>Джун опять метнулся туды-сюды, и доложил: «<em>В Бухару</em>».</p>
<p>— А откуда?</p>
<p>Джун снова развернул ослика туды-сюды, и доложил: «<em>Из Ташкента</em>».</p>
<p>— А что он везёт?</p>
<p>&#8230;ну, туда-сюда, и всё, ослик сдох. Взмыленный джун смотрит в закат. Он счастлив, он целый день работал, он получит от мёртвого осла уши. KPI зашкаливают.</p>
<p><strong>Явление второе</strong>. На сцене под ружьем на стене курит чай старый сеньор, который больше всего хочет выспаться, а не вот это вот всё то, что вы называете скрам ко всем… Хозяин его <del>будит</del> посылает за информацией к главному погонщику каравана.</p>
<p>Сеньор оседлал мёртвого осла, почапал туды-сюды с перерывом на плов, и по возвращению доложил:</p>
<p style="padding-left: 30px;">— Сообщаю тебе, о наисветлейший из мегапросветленнейших хозяев постоялых дворов, да воздаст тебе Джызус Крайст за все благодеяния, что там Саид Панталонович Бебуришвенко ведёт караван с Бухары в Пакистан, и везёт для паши сорок тонн анаши. Ох, широк Каракум, нет нигде саксаул, нет нигде учкудук и не видно аул. Хочет пить их верблюд, хочет жрать мудак такой, и не хочет вести караван за собой. Их жена, злой шайтан, их ругает башка, съели они свой почтенный ишак до последней кишка. Их жена, гель манды, у них там кутак турды, будет он ом сиктым, растуды его туды. Ковры и пряности погонщик продаёт по двадцать динаров, и я уже договорился, что мы можем всё взять по шешнаддцать динар за древнеперсидский килограмм, да продлит бесконечный Аллах их благословенные дни, а они уже скажут продакт оунеру, что их на границе обокрали злые запорожские закарпатцы, и всем нам будет навар.</p>
<p>Хозяин постоялого двора благостно смотрит на старого сеньора и укоризненно смотрит на джуна, который зазря загнал ослика туды-сюды, а столько полезной информации за один раз не добыл. Джун смотрит на ружьё на стене (оно читало Чехова, оно тоже знает, чем всё закончится). Смеркается.</p>
<p>Дальше полагается просветляться: <span style="color: #008000;"><strong>исполнителю</strong></span> надо разговаривать со своим руководителем языком решений, а не языком проблем. Сделай работу сам. Если столкнулся со сложностью, — реши, а потом доложи, а не наоборот. Предлагай, а не жди указаний, разруливай, а не сбрасывай решение на шефа, А <span style="color: #008000;"><strong>руководителю</strong></span> полагается отучать исполнителей ходить к себе, как к универсальному решателю проблем, заставьте их приходить, как минимум, с уже готовыми вариантами просто посоветоваться. И, как максимум – с отчетом о решенной проблеме.</p>
<p style="padding-left: 30px;">Ох&#8230; Могу рассказать о нескольких случаях, когда я действовал по методу «<em>Сперва реши, а потом доложи</em>». И все три раза я получал серьёзное порицание, буквально на уровне «<em>Тебе было сказано узнать, сколько стоит перевод, а не заказывать его. Теперь сам заплатишь переводчику за работу</em>». Могу, но не буду, бо о себе будем говорить или хорошо, или ничего.</p>
<p style="padding-left: 30px;">Давайте лучше поговорим о погонщике каравана.</p>
<p>Если бы я был погонщиком каравана, и ко мне то и дело подбегал бы кто-то с разрозненными вопросами, то я бы этого бегуна пристрелил, из рогатки, как в детстве. Мало ли древнеперсидских норкомэнов вокруг каравана бегают, что-то непонятное вынюхивают и просят уточнений&#8230;</p>
<p>И старика, который не только информацию собирает, но ещё и неуместные коммерческие предложения выдаёт и к коррупции подталкивает, тоже застрелил бы, дважды. Слишком уж дотошный член общества, вы не находите?! Наверное, тоже норковумэн, раз так подробно про дела семейные выспрашивает и про откат подмигивает.</p>
<p>Мы, тестировщики, чем-то похожи на всех этих древне-притчевых товарищей. Тестирование — сервис по обслуживанию проектов. Наша задача: добыча информации. Мы добываем и продаём информацию, да продлит наш девелоперский Аллах наши дни процветания. И мы можем действовать точно теми же способами:</p>
<ol>
<li>конкретно выполняя то, что говорят (и ничего более);</li>
<li>расчехлять аналитику (действовать системно).</li>
</ol>
<p>Первый совершенно типичен для джуна. Даже скажем так: если джун ведёт себя не так, а иначе, то это очень подозрительный джун.</p>
<p>Второй как раз типичен для тех, кто уже много чего знает-умеет, и попусту уже не дёргается.</p>
<p>Но оба эти способа экстремальны до глупости. Вот более сбалансированный подход:</p>
<ol>
<li>получить задачу и «переспросить, правильно ли я всё понял»;</li>
<li>спросить, какую информацию хочет получить Хозяин постоялого двора о караване;</li>
<li>уточнить, зачем ему нужна эта информация;</li>
<li>пойти к караванщику, представиться, объяснить, кто ты такой, что тебе нужно, куда и кому пойдёт эта информация;</li>
<li>передать надыбанное кому надо в запрошенном формате.</li>
</ol>
<p>Повторюсь: тестирование — сервис.</p>
<p>Это не только описывает наши возможности и ограничения, но и подсказывает, что в момент кризиса в наших услугах нужда будет минимальной, бо в момент кризиса первыми схлопываются сервисные бусинессы. Будущее будет у тех из нас, кто понимает ценность и стоимость добываемой информации, умеет оказывать ожидаемый сервис и умеет расчехлять аналитику вовремя и в нужную сторону, а не наобум Лазаря по своему усмотрению.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3957" src="https://testitquickly.com/wp-content/uploads/2018/10/sultan.jpg?w=500" alt="Советники" width="500" height="325" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2018/10/05/medjnun/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3956</post-id>	</item>
		<item>
		<title>Завершился винницкий QA Boot Camp 2018</title>
		<link>https://testitquickly.com/2018/06/29/diateza-activa-inevitabila/</link>
					<comments>https://testitquickly.com/2018/06/29/diateza-activa-inevitabila/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Fri, 29 Jun 2018 15:43:35 +0000</pubDate>
				<category><![CDATA[Откровения]]></category>
		<category><![CDATA[Радости]]></category>
		<category><![CDATA[Фотографии]]></category>
		<category><![CDATA[QA boot camp]]></category>
		<category><![CDATA[Винница]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=3910</guid>

					<description><![CDATA[Сегодня осознал, что меня всё ещё называют репортёром: Поистине, из профессии журналиста не уходят, а только выносят. Сегодня в Виннице группа успешно завершаемого винницкого буткэмпа перед приступанием к выпускному экзамену ВНЕЗАПНО одарила тренеров сладо-шняжками с очень личностными инскрипциями. Вот моя: Наш корреспондент обнаружил вон какой клад в коробке (из-под обуви) под именным инскриптумом: &#160; [polldaddy… <span class="read-more"><a href="https://testitquickly.com/2018/06/29/diateza-activa-inevitabila/">Читать далее: Завершился винницкий QA Boot Camp 2018 &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Сегодня осознал, что меня всё ещё называют репортёром:</p>
<p><div id="attachment_3911" style="width: 341px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3911" class="size-full wp-image-3911" src="https://testitquickly.com/wp-content/uploads/2018/06/reporter-in-jira.jpg" alt="Репортёр" width="331" height="160" /><p id="caption-attachment-3911" class="wp-caption-text">Репортёр по версии Jira</p></div></p>
<p>
Поистине, из профессии журналиста не уходят, а только выносят.</p>
<p>
Сегодня в Виннице группа успешно завершаемого винницкого буткэмпа перед приступанием к выпускному экзамену ВНЕЗАПНО одарила тренеров сладо-шняжками с очень личностными инскрипциями.</p>
<p>
Вот моя:</p>
<p><div id="attachment_3912" style="width: 510px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3912" class="size-large wp-image-3912" src="https://testitquickly.com/wp-content/uploads/2018/06/vinnitsya-qa-boot-camp-2018.jpg?w=500" alt="Олимпийская подяка" width="500" height="512" /><p id="caption-attachment-3912" class="wp-caption-text">Олимпийского уровня подяка</p></div></p>
<p>
Наш корреспондент обнаружил вон какой клад в коробке (из-под обуви) под именным инскриптумом:</p>
<p>
<img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3913" src="https://testitquickly.com/wp-content/uploads/2018/06/vinnitsya-qa-boot-camp-2018-inside.jpg?w=500" alt="" width="500" height="627" /></p>
<p>
&nbsp;</p>
<p style="text-align:center;">[polldaddy poll=10043617]</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2018/06/29/diateza-activa-inevitabila/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3910</post-id>	</item>
		<item>
		<title>Простота и понятность тест-дизайна</title>
		<link>https://testitquickly.com/2017/10/23/simplitudinea-complexitatii/</link>
					<comments>https://testitquickly.com/2017/10/23/simplitudinea-complexitatii/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Mon, 23 Oct 2017 08:00:41 +0000</pubDate>
				<category><![CDATA[Конференции]]></category>
		<category><![CDATA[Постановка мозгов]]></category>
		<category><![CDATA[Презентации]]></category>
		<category><![CDATA[Соображения]]></category>
		<category><![CDATA[тест-дизайн]]></category>
		<category><![CDATA[Фотографии]]></category>
		<category><![CDATA[Boris Beizer]]></category>
		<category><![CDATA[Lee Copeland]]></category>
		<category><![CDATA[Наталья Руколь]]></category>
		<category><![CDATA[Ужгород]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=3779</guid>

					<description><![CDATA[Зачитано на «Uzhhorod developer meetup 13.0» в Ужгороде 20 сентября 2017. Видео нет. Определения тест-дизайна Вот самое простое определение понятия «тест-дизайн», одно из самых распространённых, и самых логичных: 1) Тест-дизайн — это способ придумать поменьше тест-кейсов, но при этом сохранить «максимальное покрытие» &#8230;и при этом оно же самое идиотское (бо невозможно сохранить то самое драгоценное… <span class="read-more"><a href="https://testitquickly.com/2017/10/23/simplitudinea-complexitatii/">Читать далее: Простота и понятность тест-дизайна &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p style="padding-left: 30px;"><em>Зачитано на «Uzhhorod developer meetup 13.0» в Ужгороде 20 сентября 2017.</em></p>
<p style="padding-left: 30px;"><em>Видео нет.</em></p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3783" src="https://testitquickly.com/wp-content/uploads/2017/10/21640869_942243429260303_5750599984728430906_o.jpg?w=500" alt="" width="500" height="333" /></p>
<h3><span style="color: #008000;">Определения тест-дизайна</span></h3>
<p>Вот самое простое определение понятия «тест-дизайн», одно из самых распространённых, и самых логичных:</p>
<p style="text-align: center;"><b>1) Тест-дизайн — это способ</b></p>
<p><b>придумать поменьше тест-кейсов,</b></p>
<p><b>но при этом сохранить</b></p>
<p><b>«максимальное покрытие»</b></p>
<p>&#8230;и при этом оно же самое идиотское (бо невозможно сохранить то самое драгоценное «максимальное покрытие» при насильном уменьшении количества проверок).</p>
<p><span id="more-3779"></span></p>
<p>Возможно, вам понравится другое, тоже распространённое определение, которое всплывает при первом же гуглеже:</p>
<p style="text-align: center;"><strong>2) Тест-дизайн — это</strong></p>
<p><strong>этап процесса тестирования ПО,</strong></p>
<p><strong> на котором проектируются</strong></p>
<p><strong> и создаются</strong></p>
<p><strong> тестовые случаи (тест кейсы)</strong></p>
<p>Это определение неадекватно, бо тест-дизайн — это не штука для создания тест-кейсов. Неочевидно? Прекрасно!</p>
<p>Далее:</p>
<p style="text-align: center;"><strong>3) Тест-дизайн — это</strong></p>
<p><strong> «The act of careful, complete, systematic,</strong></p>
<p><strong> test design will catch as many bugs</strong></p>
<p><strong> as the act of testing» © Boris Beizer</strong></p>
<p>Процитировано в предисловии к книге Lee Copeland “<em>A Practitioner&#8217;s Guide to Software Test Design</em>”, и звучит хорошо, но… Чего он имел ввиду?</p>
<p>И ещё припомнилась классика джуниорской изворотливости на собеседованиях — самое няшное и глупое определение:</p>
<p style="text-align: center;"><strong>4) Тест-дизайн — это</strong></p>
<p><strong>дизайн тест-кейсов!</strong></p>
<p>Что там ещё:</p>
<ul>
<li>способ создания наборов тест-кейсов,</li>
<li>выбор тестов для тестирования при определенных ограничениях,</li>
<li>…</li>
</ul>
<p>Короче, всё верно… Но это дело надо не узнавать, а понимать. А чтобы понимать, надо сомневаться в тех определениях, которые предлагается узнать.</p>
<p>Давайте сомневаться.</p>
<p>Например, сомнительно, что вообще можно понять тест-дизайн без знания контекста, в котором он появился. Появился он очень давно, ещё до вашего/нашего/ихнего рождения. Он появился во времена царствования Waterfall. А под Waterfall постоянно подразумевается какой-то «страх и ужас» хотя бы из-за обилия документации, которая при нём постоянно подразумевается.</p>
<p>Ну да, мы начинаем проект с требований, с углубления требований, с изучения требований, с анализа требований, с их чтения, по меньшей мере, и да, чем дальше в лес, тем больше появляется документации.</p>
<p>Ну, да. Это нормально. Waterfall крут. Ему много тысяч лет, его придумали задолго до появления компьютеров.</p>
<p style="padding-left: 30px;">«Это работает» ©.</p>
<p>Максим Дорофеев тысячу лет назад нарисовал картинку про Waterfall.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3760" src="https://testitquickly.com/wp-content/uploads/2017/10/prostotatestdesign_03.png?w=500" alt="" width="500" height="375" /></p>
<p>Видите, что в какой-то момент программист (его легко узнать, из его башки растут три восклицательных знака) скинул весь стресс на тестировщика. Тестировщик всё скидывает на техподдержку, и да, всё это выглядит как страх и ужас, бо документация на каждом этапе множится.</p>
<p>Но 50-х годах ХХ века, когда было придумано то, что вы сейчас называете «программирование» и «тест-дизайн», эта картинка ни у кого не вызвала бы удивления, бо тогда всё было как раз наоборот.</p>
<p style="padding-left: 30px;">Просто вообразите эту картину Малевича перевёрнутой.</p>
<p>Ибо было так: с самого начала у нас очень мало документов, и чем их больше будет, тем лучше будет.</p>
<p>Почему это было хорошо? Не только потому, что компьютеры в те времена были совсем другими. Cам подход к программированию был другим, и тестирование тоже было не такое, каким оно стало сегодня.</p>
<h3><span style="color: #008000;">Старые компьютеры и старый тест-дизайн</span></h3>
<p>Вот фоторобот самого первого компьютера, который был установлен в университете Гарварда.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3761" src="https://testitquickly.com/wp-content/uploads/2017/10/prostotatestdesign_04.png?w=500" alt="" width="500" height="375" /></p>
<p>Он назывался «Марк-1» (а тот самый мотылек, который «сдох в микросхеме», сгорел в следующем компьютере, в «Марк-2»).</p>
<p>Компьютер был большой, слабый, часто ломался, и делал только то, ради чего он был создан. Был запущен в 44-м, участвовал в программе по разработке атомной бомбы в США, упокоился аж в 59-ом.</p>
<p>Программистами того времени были те самые мачо–радиофизики, которые умели работать не только головой, но и паяльником.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3762" src="https://testitquickly.com/wp-content/uploads/2017/10/prostotatestdesign_05.png?w=500" alt="" width="500" height="375" /></p>
<p>В компьютерах того времени не было того, что вы называете «Файловая система», и код писали не укатывая его в классы и методы. Всё было намного проще.</p>
<p>Вот, например, память тогдашних компьютеров: изумительная шняга, называется «Память на ферритовых сердечниках». Такой тип памяти до сих пор используется «в космосе» и на предприятиях, где машины должны просто работать, а не показывать мультфильмы.</p>
<p>Создать это хранилище информации очень просто: берете иглу, берете очень тонкую медную проволочку, и на пересечении каждого квадрата сеточки надеваете магнитик. Выглядит это примерно вот так.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3763" src="https://testitquickly.com/wp-content/uploads/2017/10/prostotatestdesign_06.png?w=500" alt="" width="500" height="375" /></p>
<p>Затем подаёте на всё это электрический ток, который пройдёт по этой структуре от начала до конца (это означает, что в память или делается запись, или делается считывание, доступна только одна операция за раз). У каждого магнитика два состояния: или туда пришёл заряд нужной силы, или нет. Если пришёл, то магнитик будет хранить состояние &#171;1&#187;. Если нет, то в нем хранится &#171;0&#187;. Вот и всё, классическое</p>
<pre>0000111000101111 0001111000001110 0010111100011100 0000111000101110 00100010</pre>
<p>Если нужно память расширить, то берете новые магнитики, берете проволочку с иголочкой и «нашиваете» себе новую память.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3764" src="https://testitquickly.com/wp-content/uploads/2017/10/prostotatestdesign_07.png?w=500" alt="" width="500" height="375" /></p>
<p>Принцип работы такой памяти:</p>
<ul>
<li><a href="http://www.155la3.ru/ferrite_memory.htm">155la3.ru/ferrite_memory.htm</a></li>
<li><a href="https://habrahabr.ru/company/ibm/blog/266425/">habrahabr.ru/company/ibm/blog/266425/</a></li>
</ul>
<p>Эти «магнитики» часто ломались. Если во всей этой сеточке сломается один из этих магнитиков, то для того, чтобы его заменить, нужно было</p>
<ol>
<li>расплести сеточку (иногда почти полностью),</li>
<li>заменить в нужном месте поломанный магнитик,</li>
<li>заменить те, что поломались в процессе расплетания,</li>
<li>собрать всю эту сволочь заново.</li>
</ol>
<p>Программисты\тестировщики того времени работали так, как мы и не подразумеваем, они работали с компьютерами <em>зная</em>, почему компьютеры работают.</p>
<p>Почему важно понимать как работали старые компьютеры? Дело в том, что тест-дизайн, которым мы и сегодня пользуемся — порождение тех самых времен, отблеск тех самых блестящих 50-х годов.</p>
<p>Для нас уже изменилась не только система взаимодействия с компьютерами, изменился сам концепт того, как работает программа. А тест-дизайн <em>не изменился</em>.</p>
<p>В «древние времена» программы работали «примитивно и просто» потому, что они создавались для исполнения какой-то одной задачи, и только одну задачу они решали. Это ограничение очень сильно помогало в тестировании. Помогало потому, что документация создавалась и накапливалась сфокусировано, для решения одной задачи. В наше время работать так уже могут немногие, бо изменились и задачи, которые решает современный софт, и требования. А тест-дизайн — всё тот же самый.</p>
<p style="padding-left: 30px;">Раньше тестировали ДО того, как написать код (карандаш и бумага, парни), и код писали уже с учётом всех потенциальных проблем, которые были обнаружены на этапе тестирования.</p>
<p style="padding-left: 30px;">Сегодня мы тестируем УЖЕ работающие приложения.</p>
<p>Тестирование как процесс можно представить в виде вот такой диаграммы:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3765" src="https://testitquickly.com/wp-content/uploads/2017/10/prostotatestdesign_08.png?w=500" alt="" width="500" height="97" /></p>
<ol>
<li>Сперва мы что-то делаем с требованиями,</li>
<li>потом делаем <em>какой-то тест-дизайн</em>,</li>
<li>после этого появляются какие-то тест-кейсы,</li>
<li>и потом тестируем руками.</li>
</ol>
<p>Причинно-следственная связь полностью соблюдена, да?! Появлению тест-кейсов предшествует тест-дизайн, следовательно, «тест-дизайн» — это деятельность по созданию тест-кейсов.</p>
<p>На самом деле — НЕТ, абсолютно нет.</p>
<p>Всё это становится очевидным, если учитывать, как и когда эта штука родилась, и где и в каких условиях она работала.</p>
<p>А работала она следующим образом. Вместо слова тест-дизайн подставим слово «анализ»…</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3766" src="https://testitquickly.com/wp-content/uploads/2017/10/prostotatestdesign_08-1.png?w=500" alt="" width="500" height="101" /></p>
<p>А что такое анализ? Кто не знает — бегом в википедию, мазафака, там упоминается расчленёнка:</p>
<p style="padding-left: 30px;"><strong>Анализ</strong> (др.-греч. Ἀνάλυσις — разложение, расчленение, разборка) — метод исследования, характеризующийся выделением и изучением отдельных частей объектов исследования</p>
<p>Можете соврать, что теперь-то всё стало понятно, но сперва ещё проясните слово «метод» (позже пригодится):</p>
<p style="padding-left: 30px;"><strong>Метод</strong> (от др.-греч. Μέθοδος — путь исследования или познания) — систематизированная последовательность действий, которые выполняются для решение определённой задачи.</p>
<p>Метод (последовательность действий) — это логический контейнер для одного и более алгоритмов, по которым эти действия выполняются.</p>
<p>Алгоритм, а следовательно, и метод у анализа прост: смотрим на любой феномен/артефакт (и неважно, логический он или физический), и дробим его на составляющие. И каждую составляющую, если возможно, тоже дробим. И дробим всё до тех пор, пока дробить уже будет нечего.</p>
<p>Позже всё то, на что всё раздробилось, мы будем группировать и осмысливать. Но сперва — раздробить.</p>
<p>Собственно, в этом <strong>Анализ</strong> и состоит.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3767" src="https://testitquickly.com/wp-content/uploads/2017/10/prostotatestdesign_09.png?w=500" alt="" width="500" height="375" /></p>
<p>Когда к вам приходят требования, вы начинаете их читать и придумывать тесты. И вы называете это анализом. Мэй, человеки, вы их всего лишь <em>читаете</em>, и осознаете, что надо сделать — а это неправильный подход.</p>
<p>Для тестировщика «анализ требований» состоит не в том, чтобы всё прочитать, а в том, чтобы всё распознать (дешифровать, если угодно), и создать какой-то ментальный образ того, что в принципе должно получиться после программирования. А для этого необходимо понимать каждую составляющую даже не требований, а будущего артефакта, который будет по ним создан.</p>
<p>В те времена, когда появился тест-дизайн, анализ требований физиологически отличался от того, что мы делаем сейчас — в те времена по-другому работать было невозможно. Невозможно было написать какую-то шнягу, быстро её запустить и если она запускается и делает то, что подразумевалось (всеми по-разному, но то такое), значит, задача решена, переходим к кодированию следующей функции. На старых компьютерах этот подход не работал. Программы писали карандашом на бумаге, а до превращения алгоритмов в код дело доходило не быстро.</p>
<p>Если бы нам пришлось работать с теми самыми старыми компьютерами, то и мы начали бы делать то же самое.</p>
<p style="padding-left: 30px;">И неважно, что у нас компьютеры сейчас быстрые…</p>
<p>Тест-дизайн «родился» тогда, давно, под давлением тех условий, которые нам уже неведомы. Наверное, это основная причина того, что современные тестировщики с трудом понимают, что такое тест-дизайн и как это делается — вы не учились этому у «стариков» (если вы вообще этому учились).</p>
<p>Переходим к следующей составляющей анализа.</p>
<p style="padding-left: 30px;"><strong>Осознание</strong> — это уже не обдумывание происходящего, а целостное и непосредственное <em>переживание</em> того, что происходит (или с чем взаимодействуешь).</p>
<p style="padding-left: 60px;">Это тот самый момент, когда ты разобрал машинку и такой «<em>О, я понял, почему оно так работает!</em>» Потом отдаёшь её владельцу, говоришь, что так и было, и убегаешь домой, пока не побили.</p>
<p>Это то, что приходит после того, как мы взяли сложный феномен, разбили его на маленькие части, и поняли, каждая из них что из себя представляет, и почему, и какая ее роль во всем механизме, который будет собран.</p>
<p>Посему:<img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3768" src="https://testitquickly.com/wp-content/uploads/2017/10/prostotatestdesign_10.png?w=500" alt="" width="500" height="375" /></p>
<p>Как правило, мы стараемся сразу перейти к «осознанию», ошибочно подразумевая под этим «анализ». А надо наоборот.</p>
<p>Например, «бабки у подъезда» никогда ничего не спрашивают и не анализируют, они сразу переходят к осознанию и делают моментальный вывод о том, что ты наркоман просто потому, что «Ну неужели не очевидно?!». И все вы, тестировщики, делаете с требованиями к программному обеспечению то же самое.</p>
<p>Но анализ делается ДО осознания. Основная ошибка в том, что мы анализ не проводим, мы заменяем анализ каким-то&#8230; быстрыми домыслами.</p>
<p style="padding-left: 30px;">Не надо так.</p>
<p>Ещё одно важное понятие, которое используется в тестировании:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3769" src="https://testitquickly.com/wp-content/uploads/2017/10/prostotatestdesign_11.png?w=500" alt="" width="500" height="375" /></p>
<p>Вы функциональные тестировщики. Следовательно, вы должны тестировать функциональность.</p>
<p>Большинство тестировщиков начинают тестировать не <strong>Функциональность</strong> (способность программы выполнить задачу), а то, из чего эта способность создана (функции).</p>
<p>Например, когда предлагается протестировать часы, мы начинаем с проверки «а есть ли стрелки». Ну, реально… это самое дурацкое начало тестирования: убедиться в том, что часы вообще есть. Все же с этого теста начинают?! А почему бы не начать тестирование часов с проверки того, что тестировщик проснулся и умылся? Ведь это важное предусловие для начала тестирования.</p>
<p>Еще пример: протестировать отсылку смс с телефона можно несколькими способами, на разных телефонах это ещё и делается по-разному. Но если не привязываться к тому, как это реализовано, то всё равно МОЖНО протестировать функциональность.</p>
<p>Ок, ещё раз, функциональность — это способность программы выполнить какую-то задачу. Функции — это уже то, из чем складывается функциональность.</p>
<p style="padding-left: 30px;">Думайте про тестирование функциональности, а не функций.</p>
<p>Следующий термин, который не в ходу в нашей среде, но мы это исправим — <strong>Сверхзадача тестирования</strong>.</p>
<p>У каждого процесса тестирования есть то, что называется метазадача. Чаще это называют это сверхзадачей (этот термин знаком людям, которые понимают, почему Станиславский был великим актёром), поэтому:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3770" src="https://testitquickly.com/wp-content/uploads/2017/10/prostotatestdesign_12.png?w=500" alt="" width="500" height="375" /></p>
<p>Мы профессиональные тестировщики, нам только дайте любую шнягу, и мы её протестируем, так?! И скажите нам точно, что именно надо делать. И мы сделаем именно то, что вы скажете, что надо сделать. А чего не скажете делать — ну, так надо было говорить!… Всё правильно?</p>
<p>Не надо так.</p>
<p>Надо понимать, зачем всё это делается. Надо спрашивать. Надо понимать сверхзадачу тестирования.</p>
<p>Вообще, ВСЕГДА надо начинать работу с выяснения того, что «эта штука» делает, и почему она должна это делать в принципе, и зачем этот проект вообще нужен. Да, это всё подразумевается, но подразумевается всеми по-разному, а надо, чтобы подразумевалось всеми одинаково. Взрослые тестировщики до этого медленно, но доходят.</p>
<p style="padding-left: 30px;">Например, Наталья Руколь на тренингах домашнее задание выдаёт: расспросить менеджеров и программистов в вашей компании о том, зачем нам нужно тестирование. Вы удивитесь тому, насколько все по-разному это представляют.</p>
<p style="padding-left: 30px;">Но вы не будете удивляться, бо вы не будете никого ни о чём спрашивать, бо всё ж подразумевается; а если начать спрашивать об очевидном, то — «бабки у вашего подъезда» дежурят круглосуточно.</p>
<p>У тестирования всегда есть какая-то метазадача, которую надо решить в принципе. Тест-дизайн — это один из наилучших способов выяснить метазадачу и её реализацию. Не просто взять и протестировать, а понять, почему оно именно так устроено, почему именно так надо с этим взаимодействовать.</p>
<p>Прояснение метазадачи тестирования выглядит следующим образом:</p>
<ol>
<li>понять, зачем что-то надо делать,</li>
<li>потом осознать, что конкретно надо сделать,</li>
<li>и уже потом в самом конце понять, как именно это надо сделать.</li>
</ol>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3771" src="https://testitquickly.com/wp-content/uploads/2017/10/prostotatestdesign_13.png?w=500" alt="" width="500" height="371" /></p>
<p>Начинаем с «Зачем», затем переходим к «Что», и уже потом спрашиваем «Как».</p>
<p>Обычно мы ВСЕГДА начинаем с самого конца этой схемы — сразу уточняем, как устроена программа, которую надо протестировать; где у неё находится кнопка, и есть ли там кнопка, и… есть ли стрелки на чёртовых часах. Народ, часы — это объект, который может быть без стрелок, но тем не менее он выполняет свою функцию — показывает время. Соответственно, и тестировать часы надо без привязки к стрелочкам. И программное обеспечение надо тестировать точно так же, не привязываясь сразу к тому, как оно устроено. Иначе вы будете обречены тестировать только то, что видят глаза здесь и сейчас, а не то, что может случиться.</p>
<h3><span style="color: #008000;">Как устроен «тест-дизайн»</span></h3>
<p>Рассмотрим это поэтапно, как процесс.</p>
<p>Всё ВСЕГДА начинается с анализа и осознания ситуации.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3772" src="https://testitquickly.com/wp-content/uploads/2017/10/prostotatestdesign_14.png?w=500" alt="" width="500" height="375" /></p>
<p>Надо провести анализ Контекста (отдельно) и анализ Задач (тоже отдельно).</p>
<p>Анализ, повторюсь, это не чтение документации и не ознакомление с тем, что «вот есть программа». «Анализировать» означает — спросить о том, зачем будущая программа вообще будет создана, как она была придумана, и почему она была придумана так, а не иначе. Затем уже можно начинать читать требования.</p>
<p style="padding-left: 30px;">Если об этом спросить ДО начала чтения требований, то требования вам будут понятны почти так же хорошо, как и тем, кто их написал. Вот и весь секрет.</p>
<p>Древние программисты умели фокусироваться, но… они уже почти все <a href="http://secretsofconsulting.blogspot.com/2017/10/where-do-old-programmers-go.html">поумирали</a>, поэтому выкручивайтесь самостоятельно. Это не так уж и сложно.</p>
<p>После завершения анализа начинается осознание «Контекста» и «Задач» по-отдельности. Если игнорировать последовательность осознания контекста и задач, то будут сложности с анализом и осознанием того, что называется «функциональность». И будут сложности с определением метазадачи тестирования. Тут всё связано.</p>
<p>Тест-кейсов на этом этапе еще нет, и быть не должно, бо тест-дизайн — не для придумывания тест-кейсов.</p>
<p>Следующий этап, если этот прошел хорошо, — Комбинаторика.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3773" src="https://testitquickly.com/wp-content/uploads/2017/10/prostotatestdesign_15.png?w=500" alt="" width="500" height="375" /></p>
<p>Комбинаторика это просто объединение всего того, что вам придумалось на предыдущем шаге. И выглядит это как сборка всего в одну большую таблицу.</p>
<p style="padding-left: 30px;">Тест-дизайн вообще основан на таблицах. Тест-дизайн = анализ. Анализ = контроль. Для того, чтобы контролировать все, необходимо все записать. Затем комбинировать. А это таблицы.</p>
<p>Для того, чтобы суметь всё контролировать, необходимо осознать две глобальные установки:</p>
<ol>
<li>Всё протестировать невозможно, но <strong>можно всё учесть</strong>. Именно для всеобщего учёта нужен тест-дизайн.</li>
<li>Невозможно сочинить как можно меньше тест-кейсов, но при этом каким-то мифическим образом сохранить как можно большую покрываемость тест-кейсами.</li>
</ol>
<p>Идея о том, что можно уменьшить количество проверок, и при этом, как-то увеличить или по меньшей мере оставить покрываемость, сама по себе идиотическая, но она у нас бытует, бо она логична. Её несостоятельность выясняется только в бою, в работе. Многие до этого дела просто не доходят, потому что никто вас не заставляет заниматься анализом.</p>
<p>Пусть мы не тестируем «на кончике карандаша», так же, как программисты современные не программируют «карандашом на бумаге». А представьте себе, что невозможно запустить программу, но протестировать ее надо. Как вы это сделаете?</p>
<p style="padding-left: 30px;">Ответ: вы возьмете карандаш и бумагу. Или будете рисовать мелом на асфальте, или фломастером на обоях, но вы будете записывать. Чем больше документов, тем лучше (вспомните картинку Дорофеева).</p>
<p>Несложно овладеть большим количеством бумаг, если они все ранжированы по определённой логике. Логика, анализ, контроль — вот это то, с чего программирование начиналось вообще, и от чего мы ушли. А когда начинаешь думать о том, как сделать хорошо, то поневоле возвращаешься к этому. Это всё было описано в старых книгах, которые вы все скачали и не прочитали (бо вы же хотите прочитать только одну, «единственно правильную» книгу).</p>
<p>Комбинаторика — это просто комбинирование всего того, что придумывалось на предыдущем шаге, по итогу создается таблица. Просто для контроля.</p>
<p>И тест-кейсов тут всё ещё нет.</p>
<p>Сожалею, что нет возможности сразу показать, что такое комбинаторика, бо это такая штука, которую надо видеть и делать, а не воображать.</p>
<p style="padding-left: 30px;">Так же за простым предложением «сел за руль и поехал» подразумевается умение водить, а сложность и комплексность умения вождения автомобиля сложно объяснить тому, кто никогда не садился за руль.</p>
<p>Но это не rocket science, это дело можно и самостоятельно разрулить.</p>
<p>Третий этап.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3774" src="https://testitquickly.com/wp-content/uploads/2017/10/prostotatestdesign_16.png?w=500" alt="" width="500" height="375" /></p>
<p>После комбинаторики надо подумать, есть ли смысл применять ту или иную технику для того, чтобы упорядочить полученные данные.</p>
<p>Зачастую это похоже на интуитивное решение, но для этого всегда нужен опыт, нужно понимать домен, в котором будет работать функциональность. Тест-кейсов на этом этапе все еще нет, потому что они здесь тоже все еще абсолютно не нужны.</p>
<p>Повторюсь ещё раз, тест-дизайн — это анализ. Анализ — это способ контролировать большой массив информации, и больше ничего. Не в тест-кейсах дело, и не в том, что надо тестировать, а в том, чтобы понимать, как устроена функциональность (даже, казалось бы, простейшая). За простой функциональностью обычно черти водятся. Анализ — это всегда глубинное исследование, поверхностный подход здесь не катит.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3775" src="https://testitquickly.com/wp-content/uploads/2017/10/prostotatestdesign_17.png?w=500" alt="" width="500" height="375" /></p>
<p>Анализ результатов комбинаторики подразумевает следующее: берём огромную таблицу (обычно они получаются огромными) и начинаем втыкать в закономерности. Иногда они видны, просто бросаются в глаза – на диагоналях, на пересечениях.</p>
<p style="padding-left: 30px;">Если вы не видите закономерностей и нелогичностей, значит, они проходят мимо вашего сознания.</p>
<p>Всё это приводит в итоге к тому, что мы начинаем знать/понимать, сколько тест-кейсов нам нужно глобально для того, чтобы протестировать то, что нам выдали на тестирование.</p>
<p>Если анализ показывает, что нужно сделать 50 тысяч тестов, значит, нужно сделать минимум 50 тысяч тестов.</p>
<p>Домены. С точки зрения математики — это абстрактный образ, в котором абстрактно могут находиться какие-то сущности. Один и тот же объект может одновременно принадлежать нескольким доменам.</p>
<p style="padding-left: 30px;">Например, украинец попадает в домен жители Украины. Молдаванин попадает в домен жители Украины, если он живет в Украине, не являясь при этом украинцем.</p>
<p>Применение доменов и групп сущностей (то, что вы называете классами) — это самый последний шаг до того, для чего тест-кейсы придумываются.</p>
<p>Обычно вы сразу с этого начинаете, хотя, подразумевалось изначально, что нужно разбивать на группы тест-кейсы, а не сущности, которые эти тест-кейсы проверяют, ну да ладно, не переубеждать же вас. Но тест-анализ был создан для того, чтобы управлять большим количеством данных, из которых складывается большое количество тест-кейсов. То есть сначала появляются кейсы, потом решаем, какие из них можно сгруппировать и по какому признаку, а не «сначала сущности разрываем на группы, и потом тестируем каждую сущность из этой группы».</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3776" src="https://testitquickly.com/wp-content/uploads/2017/10/prostotatestdesign_18.png?w=500" alt="" width="500" height="375" /></p>
<p>Собственно придумывание тест-кейсов начинается только сейчас. Сначала делаем анализ всего того, что можно проанализировать; сначала учитываем всё то, что можно учесть; и уже потом придумываются тест-кейсы.</p>
<p>Тест-кейсы — это инструкции по созданию тестовой ситуации, а не «set of input values» и blah-blah-blah. Придумывать тестовые ситуации легко и просто только ПОСЛЕ этапа анализа тест-дизайна. Их можно писать буквально без того, что называется «Steps to reproduce», их можно писать одной строкой. Тест-кейс, даже если не выглядит, как трехколоночная шняга, тем не менее остаётся тест-кейсом.</p>
<p>Эстимация времени на тестирование — за этим марш сюда: <a href="http://testitquickly.com/2017/06/20/stones/">Оценка времени на тестирование: неочевидные надводные камни</a></p>
<h3><span style="color: #008000;">Резюме</span></h3>
<p>Тест-дизайн в принципе — это не способ придумывать тест-кейсы, и не способ уменьшать количество тестов, хотя в итоге помогает всё это делать.</p>
<p>Тест-дизайн — это анализ, а затем осознание задач, которые программное обеспечение будет выполнять.</p>
<p>Данные, которые собираются на этапе анализа, комбинируются (смешиваются и перемножаются). Техники тест-дизайна основаны на комбинаторике данных.</p>
<p>Применение техник тест-дизайна используется не для того, чтобы тесты придумывать, а для того, чтобы упорядочить большой массив информации, вот и всё, вот и весь секрет тест-дизайна.</p>
<p>Анализ результатов проявляется через осмысление содержимого тех таблиц, которые набросались, а не через перечитывание тест-кейсов. Тест-кейсы это вообще — итог всех размышлений.</p>
<p>Когда мы начинаем тестирование с придумывания тест-кейсов, мы сами себе проблемы создаем. Окружающие говорят — да, да! Так и надо! — и мы верим окружающим, особенно, если это бородатые сеньоры и сеньорихи. Но все вы когда-нибудь умрёте. И прежде, чем умереть, вы станете взрослыми, вы станете отцами семейств и начнёте тестировать уже не для того, чтобы «постоянно развиваться» и «узнавать что-нибудь интересное», а потому, что дома дети, которых надо кормить, а для этого надо работать с предсказуемо положительным результатом, а для этого надо уже начинать работать правильно. И вы начнете понимать, что делать тест-дизайн — надо, ибо это правильно. Этим занимались наши предки, и они были не дураками, они человека на луну послали и вернули, они придумали кофеварку и роботов-пылесосов. Чем вы хуже? Ведь вы тоже умеете пользоваться кофеварками.</p>
<p>Тест-дизайн — это результат того, каким программирование было, начиная с 50-х годов, и заканчивая нашим временем. Эта штука требует очень большого… даже не опыта, а стремления к контролю. Если у вас есть стремление к контролю, вы научитесь этому, все будет хорошо. Если нет, то вы просто будете тестировать, как и все остальные. В тестировании есть место для тех, кто не умеет тестировать, потому что есть очень много грязной работы, которую нужно кому-то выполнять. То есть все вы обеспечены работой до пенсии, а затем вам уже ничего не будет нужно, вы станете свободными.</p>
<p>Всё, туй коныць.</p>
<h2><span style="color: #008000;">Вопросы</span></h2>
<p><strong>Як це все робити, коли в тебе еджайл, і дуже коротка ітерація? Наприклад, ітерація день або тиждень. Ти просто не маєш можливості всі ці аналізи проводити.</strong></p>
<p>Маешь. Не умеешь — не берись.</p>
<p style="padding-left: 30px;">Так программисты поначалу воспринимают TDD, мол, у меня нет времени код писать, а вы хотите, чтобы я ещё и тесты писал 🙂</p>
<p>Внутри agile захардкоджен тот самый waterfall, который объявлен «плохим». Waterfall это нормально, это должно быть. Мы основаны на waterfall, то есть сначала случается свадьба, а уже потом появляемся мы. Если нарушить процесс, то, соответственно, результат будет… ну, вы сами видите, что получается.</p>
<p>Waterfall это хорошо, потому что это основа того, как мы делаем всё, и не надо говорить, что это плохо просто потому, что есть agile. Agile — порождение waterfall, agile это попытка сделать так, чтобы то, что мы называем «длинный процесс», делался немного быстрее и точнее. Но в agile есть место и время для анализа.</p>
<p><strong>На рахунок тест-дизайну і цього всього, що було сказано, це все звучить класно, але в мене складається враження, що це така утопічна розповідь про те, як би воно мало бути. Це ідеалізовані абсолютно всі у нас умови, і от в тебе час на це, і на це. Суть в тому, що в сучасних умовах і в тому, як швидкоплинно оці з девеломпент, делівері, і т.д., це все відбувається, то реальність показує, що в тебе час дуже обмежений. І це велика розкіш, коли ти можеш дозволити собі зробити оце все, що ти описав. А далі?</strong></p>
<p>Когда умеешь это делать, ты делаешь это быстро. Чистить зубы тебя никто не заставляет, но ты это делаешь, причем быстро. Соответственно, когда умеешь это делать, делаешь это быстро, потому что это просто можно делать. И один час анализа потом начинает помогать в развитии проекта, иногда экономя целый месяц. То есть, есть вещи, о которых с самого начала почему-то никто не подумал. Требования складываются достаточно просто. Например, требование о том, что мы выдаем скидочную карту всем тем, кто накопил в системе много денег и кому больше 18 лет. А если юзер накопил много денег, но 18 лет ему еще не исполнилось? Это все относится уже к анализу и тестированию. В требованиях этого нет, потому что требования создаются по-простому. Анализ — это предусматривание, и он делается быстро. Кажется, что он делается долго, но на самом деле это не так.</p>
<p><strong>Если анализ это процесс разделения на более мелкие составляющие меньшего уровня, как будет понятно, что мы дошли до того момента, когда мы их достаточно понимаем? Деление процесс бесконечный, это мы все знаем.</strong></p>
<p>Нет. Ты точно так же понимаешь, когда ты наелся. Просто понимаешь, и всё.</p>
<p><strong>Если говорить про доменное тестирование — этих доменов достаточно много. До какой степени мы должны доходить?</strong></p>
<p>До тех пор, пока не исчерпается воображение.</p>
<p><strong>Но это очень субъективно&#8230;</strong></p>
<p>О, это крайне субъективно! Поэтому тест-дизайн — это искусство личностное, как каратэ или умение играть на гитаре. Есть люди, которые умеют это делать, есть люди, которые не умеют, и чёрт его знает, почему у некоторых получается, у некоторых нет. Это личностное искусство, это раз. Поэтому очень сложно научить этому ВСЕХ, и особенно начинающих.</p>
<p>Во-вторых, древние программисты писали фокусировано. Фокус делается на том, что должна делать программа, а это означает, что то, что она НЕ должна делать, мы не будем тестировать. Фокусирование приносит с собой очень много ограничений. В наше время по-другому. В наше время программу, которую мы пишем, будут использовать маньяки, уроды, дураки абсолютные, неграмотные и лишённые чувства меры, которых мы ласково называем «пользователи», и свойства которых присущи нам тоже, потому что мы тоже пользователи.</p>
<p>Предположим, что есть пять университетов, в которых стоят пять компьютеров одной и той же модели. Каждый из этих компьютеров в какой-то момент становится уникальным артефактом. У какого-то компьютера памяти нашили больше, у какого-то меньше. У какого-то скорость повысилась, у другого скорость ниже. Все программы в древние времена писали для отдельно взятых компьютеров (то есть невозможно было в офисе написать программу, приехать к клиенту и её установить на его компьютере, априори это было невозможно). Мы можем себе это представить? Для этого ноутбука отдельная программа, для этого отдельная, и они не синхронизируется абсолютно. В наше время это уже сложно представить, в наше время программы пишут ВООБЩЕ. В те времена это было норм, просто из-за того, как все было устроено. И тест-дизайн помогал фокусироваться. И это великое благо – умение сфокусироваться и действительно понять, что важно, и что неважно. И не разбегаться сразу во все стороны, как мы к этому стремимся иногда.</p>
<p><strong>Виходить так, що тест-дизайн существовал в якомусь сенсі до нинішнього моменту в якихось вузьких кругах. Що зробити для того, щоб його відродити, зважаючи на те, наскільки популярний agile, небагато часу, все гнучко, і в принципі, немає на достатньому рівні документації. Як жити?</strong></p>
<p>Agile к тест-дизайну не имеет никакого отношения. Что вы делаете ПО по agile или по waterfall, вы все равно получите ПО, что делается по определенной технологии. Эту технологию надо знать заранее, и тогда начинается разработка абстрактных артефактов, из которых состоит программирование, то, соответственно, надо их надо учитывать, как можно раньше. Поэтому неважно, в каком условии работает тест-дизайн, он работает во всем и всегда. Мытье рук – тест-дизайн, чистка зубов – тест-дизайн, не разговаривать с дураками – тоже тест-дизайн, потому что это анализ, анализ ситуации и принятие решений.</p>
<p><strong>Відсутність документації, її недостатність… [не позволяют заниматься тест-дизайном]</strong></p>
<p>У нас никогда не будет адекватных требований просто потому, что они пишутся физиологически не так, как мы это себе представляем. Мы воображаем, что это документ, в котором четко все написано. На самом деле любые требование это как фотография из отпуска – ты на нее смотришь и вспоминаешь, что было до неё, и что было после. Целый контекст так появляется. Другой человек на неё смотрит и видит, что на фотке просто человек стоит на фоне моря. Контекст должен быть. Тест-дизайн помогает врубиться в контекст. Тест-дизайн помогает тестировщику поднять свою глупу дупу и пойти спрашивать – вот я понял, что надо так и так, я правильно понял? Мне кажется, что надо вот так — я правильно понял? Надо ходить и спрашивать, а не просто получать документ и тестировать строго по ним, потому что это тоже очень глупо. Требования это не закон. Требования это документ, которые пишется группой людей, которые о чем-то уже договорились. Когда они о чем-то договорились, они понимают, о чем там написано. И даже когда не все четко, они все равно все хорошо понимают. Анализ, как возможность сфокусироваться на чем-то, помогает начать понимать то, что скрыто за какими-то, казалось бы, невнятными строками. А еще если читаешь о том, как требования создаются (у Вигерса), то понимаешь, что их создают вообще не глупые люди, хотя поначалу кажется иное. Но когда сам начинаешь писать требования, то очень быстро начинаешь понимать, что требования пишут нормальные, классные пацаны, им надо просто помочь, а не доказать, что они ошиблись и сделали плохую работу.</p>
<p><strong>Представлення результату аналізу… скажімо, блокнот, таблиця, майнд-мап і так далі.</strong></p>
<p>Абсолютно неважно. Карандаш и бумага. Notepad и курсор. И дальше как угодно.</p>
<p><strong>Почему в твоей схеме эстимация времени на продумывание тест-кейсов и на их создание учитывается по-отдельности?</strong></p>
<p>Потому, что само построение тест-кейсов — это некий час, который нужно взять просто отдельно, то есть «дайте мне сколько угодно на создание тест-кейсов в принципе, а после этого я вам скажу, сколько времени мне понадобиться», то есть после этого я прикидываю идеи о том, что надо протестировать. И когда я пойму, сколько мне надо на тестирование, то у меня будет основание для того, чтобы сказать, сколько времени мне понадобится. И это будет основательное основание. Это будет список кейсов, положенный на стол, и можно кого-угодно тыкать носом в этот список, потому что это тест-кейсы, а не фантазии.</p>
<p><strong>Але тест-кейс пишеться на основі документації якої на етапі естімації ще немає.</strong></p>
<p>Соберись! Когда ничего нет для анализа, то и анализировать невозможно в принципе.</p>
<p>Рассмотрим простой пример. По улице идет старушка. Что я сказал? Что вы поняли? Во-первых, по какой улице? Во-вторых, старушка это вообще что? Есть границы между началом и концом старушки. Во-вторых, она идёт — это что? Передвижение двигательного аппарата в пространстве с определенной скоростью, поэтому она идёт, значит, она делает не больше скольких километров в час?</p>
<p><strong>Пяти.</strong></p>
<p>Пять — это уже резвая старушка-бегун&#8230; Вот, «из ничего», но появилась информация, и я знаю, как её протестировать. Надо учесть, что возраст у неё между той и иной цифрой, и что она делает действительно движение, а не её кто-то перевозит, и что она вообще достигает определенной скорости, которую ей создают собес и внуки, которые ожидают свободную жилплощадь. Тест-дизайн это поиск информации, это анализ информации. Если нет информации, то останавливаетесь и говорите, что я не знаю, какое мне решение выдать, потому что у меня нет информации для анализа. И это естественно. Это даже нормально. Пускай заказчик себе там хоть соплями изойдет, но если нет информации, то что ему сказать?!</p>
<p><strong>Получается, по условиям тест-дизайна можно ТЗ писать?</strong></p>
<p>Зачастую это… хорошо было бы. Некоторые программисты этим даже начинают пользоваться, если появляются в группе адекватные тестировщики, которые адекватно держат документацию под контролем. Потом такие тестировщики очевидно становятся тест-аналитиками и уезжают в Будапешт, потому что тест-аналитики всюду нужны.</p>
<p>В древние времена была профессия тест-аналитик и тест-дизайнер по-отдельности. То есть тестировщик это было отдельное занятие, аналитик – отдельное. Тест-аналитик вообще отдельно. В наше время это все слилось. Для этого есть определенные причины. И иногда это плохо, но зачастую это хорошо, поэтому вникайте.</p>
<p>Дяка за увагу.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3782" src="https://testitquickly.com/wp-content/uploads/2017/10/21762478_942247295926583_1498645138520759057_o.jpg?w=500" alt="" width="500" height="334" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2017/10/23/simplitudinea-complexitatii/feed/</wfw:commentRss>
			<slash:comments>15</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3779</post-id>	</item>
		<item>
		<title>Жемчуг</title>
		<link>https://testitquickly.com/2017/09/14/qa-fest-2017-perlos/</link>
					<comments>https://testitquickly.com/2017/09/14/qa-fest-2017-perlos/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Thu, 14 Sep 2017 18:48:17 +0000</pubDate>
				<category><![CDATA[Анонсы]]></category>
		<category><![CDATA[Конференции]]></category>
		<category><![CDATA[Фотографии]]></category>
		<category><![CDATA[Михаил Булгаков]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=3753</guid>

					<description><![CDATA[Нет. Слов для описания программы (pdf) конференции QA Fest 2017 у меня просто нет. Всё норм, всё блестит. Нет там вообще много чего. Например, нет базовых тем для тестировщиков. Нет их! С другой стороны, всё же есть в книгах. Но с одной стороны — кто ж их читает? Разве можно верить книгам, которые написаны больше,… <span class="read-more"><a href="https://testitquickly.com/2017/09/14/qa-fest-2017-perlos/">Читать далее: Жемчуг &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Нет.</p>
<p>Слов для описания <a href="http://qafest.com/Program%20QA%20Fest%202017.pdf">программы</a> (pdf) конференции <a href="http://qafest.com/">QA Fest 2017</a> у меня просто нет. Всё норм, всё блестит.</p>
<p>Нет там вообще много чего. Например, нет базовых тем для тестировщиков.</p>
<p style="padding-left: 30px;">Нет их!</p>
<p style="padding-left: 30px;">С другой стороны, всё же есть в книгах.</p>
<p style="padding-left: 30px;">Но с одной стороны — кто ж их читает? Разве можно верить книгам, которые написаны больше, чем 365 дней назад?! Нет, решительно нет!</p>
<p style="padding-left: 30px;">Так или иначе, конференции — не место для пересказов. Своё надо сочинять.</p>
<p>Нет «пересказов книг о величии agile» и о «низменности модели разработки ПО по-ниспадающей».</p>
<p>Нет спонсорских докладов.</p>
<p>Нет привилегий при подаче докладов, все доклады проходят через общий фильтр программного комитета на равных условиях.</p>
<p>Нет опасений о том, что участники конференции уйдут подавленными, обиженными, лишенными денег, идей, но зато с чувством опустошённости и бытности тлена. Заявлено, что на выходе участники продемонстрируют противоположные чувства, например, о прекрасности мира, о понимании его обустройства, о желании просто всё взять и применить в деле.</p>
<p>Нет ограничений по региональному признаку, приезжают докладчики из Румынии (йееееах!), Финляндии, Великобританской Англии и проч.</p>
<p>Нет сомнений в том, что если бы, то я бы непременно, но увы.</p>
<p>Едрён-батон.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3754" src="https://testitquickly.com/wp-content/uploads/2017/09/148049695017173191.jpg" alt="" width="448" height="447" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2017/09/14/qa-fest-2017-perlos/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3753</post-id>	</item>
	</channel>
</rss>
