<?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%82%d0%b5%d1%81%d1%82-%d0%b4%d0%b8%d0%b7%d0%b0%d0%b9%d0%bd/feed/" rel="self" type="application/rss+xml" />
	<link>https://testitquickly.com</link>
	<description>про тестирование ПО и всё такое прочее</description>
	<lastBuildDate>Sun, 25 Jan 2026 05:37:06 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</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/2020/02/13/sad-but-so-fakin-true/</link>
					<comments>https://testitquickly.com/2020/02/13/sad-but-so-fakin-true/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Thu, 13 Feb 2020 17:08:46 +0000</pubDate>
				<category><![CDATA[F.A.Q.]]></category>
		<category><![CDATA[Банальное]]></category>
		<category><![CDATA[В гостях у психиатра]]></category>
		<category><![CDATA[Видео]]></category>
		<category><![CDATA[Книги]]></category>
		<category><![CDATA[Озарения]]></category>
		<category><![CDATA[тест-дизайн]]></category>
		<category><![CDATA[Фишки]]></category>
		<category><![CDATA[Metallica]]></category>
		<category><![CDATA[Ты не идиот]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=4346</guid>

					<description><![CDATA[А действительно, чего это мне кажется, что разница между верификацией и валидацией всем понятна без примера? Нужен конкретный пример. А то без примера каждому… парню кажется, что его принимают за идиота. Например, здравствуйте, дети, вот это револьвер Смит и Вессон. Им можно решать разные задачи на поле боя. А ещё из него программист может выстрелить… <span class="read-more"><a href="https://testitquickly.com/2020/02/13/sad-but-so-fakin-true/">Читать далее: Очень конкретная разница между верификацией и валидацией &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p><iframe title="Metallica: Sad But True (Official Music Video)" width="665" height="499" src="https://www.youtube.com/embed/A8MO7fkZc5o?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>А действительно, чего это мне кажется, что разница между верификацией и валидацией всем понятна без примера?</p>
<p>Нужен конкретный пример. А то без примера каждому… парню кажется, что его принимают за идиота.</p>
<p style="padding-left: 40px;">Например, здравствуйте, дети, вот это револьвер Смит и Вессон. Им можно решать разные задачи на поле боя. А ещё из него программист может выстрелить себе в ногу несколько раз. Сейчас я вам это покажу на конкретном примере. Ну, чья нога послужит хорошим, конкретным примером? Кто из вас знает C++?</p>
<p style="padding-left: 40px;">Если пример непонятный — садись и слушай. Однажды, <a href="https://lurkmore.media/%D0%92%D1%8B%D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%B8%D1%82%D1%8C_%D1%81%D0%B5%D0%B1%D0%B5_%D0%B2_%D0%BD%D0%BE%D0%B3%D1%83">давным-давно</a>…</p>
<h2><strong><span style="color: #008000;">Глава первая, вступательная в зыбкое болото терминов</span></strong></h2>
<p><strong>Верификация</strong> — проверка соответствия приложения прописанным требованиям.</p>
<p><strong>Валидация</strong> — проверка соответствия приложения всем остальным (подразумеваемым) требованиям.</p>
<p style="padding-left: 40px;">Ну, и чо?</p>
<p>Когда я только выполнял чужие кейсы, это всё было ненужным и абстрактным <span style="color: #ffffff;">лайном.</span></p>
<p>Когда я сам проектировал тесты, да ещё и для какой-то финансовой аппликухи — приходилось знать/понимать точно, какие тесты покрывают прописанные требования (верификационные), а какие тесты покрывают НЕпрописанные требования (валидационные) и соответственно их разделять по разным сборникам тестов. И это всё стало осязаемым и важным.</p>
<p><span id="more-4346"></span></p>
<p>Верификационные тесты, с отсылками к требованиям, программисты принимали, не каркая.</p>
<p>А валидационные запросто отклоняли, бо «тестируется сценарий, которые не предусмотрен требованиями».</p>
<p style="padding-left: 40px;"><strong>Типичный пример</strong>: продвигаемся на каком-нибудь государственном портале по сценарию оформления заказа госуслуги (или на сайте подбора авиабилетов по сценарию заказа авиабилета, не суть). На каждом шаге подтягиваются данные из разных источников, которые передаются между экранами, все дела.</p>
<p style="padding-left: 40px;">Если в этот момент юзер решит вернуться на шаг назад — он должен передвигаться между экранами только через JS-кнопки «back» и «forward» в приложении (почти каждый современный сайт — приложение). Так написано в требованиях, так реализовано программистами.</p>
<p style="padding-left: 40px;">А если нажать на кнопку [Back] в браузере — всё поломалось.</p>
<p style="padding-left: 40px;">Это очевидно для пользователя? Нет.</p>
<p style="padding-left: 40px;">Пользователь может нажать на кнопку [Back] в браузере? Может.</p>
<p style="padding-left: 40px;">И получит белый экран, и все данные пропали? Получит. Вот скриншот. Вот видео. Давайте чинить!</p>
<p style="padding-left: 40px;">Ответ: Declined (out of requirements).</p>
<p>По-молодости я пушил валидационное тестирование наравне с верификационным, бо я был обучен сызмальства сообщать программистам о любой замеченной шняге. Но проекты бывают разными, и что будет нормой в деревне Вилларибо — совсем не то же самое в Виллабаджо (соседней деревне).</p>
<p>А понимал бы я тогда разницу между верификацией и валидацией…</p>
<p style="padding-left: 40px;">«…я, может, и не женился бы» © бородатый папа дяди Фёдора</p>
<h2><strong><span style="color: #008000;">Глава вторая, патетическая, в которой шахматист ВНЕЗАПНО понимает, кто придумал защиту Тартаковича</span></strong></h2>
<p>А теперь будет ход конём.</p>
<p style="padding-left: 40px;">Или про шахматы тоже надо отдельно объяснять?!</p>
<p>Поскольку мы занимаемся только тестированием и игнорируем всю остальную Computer science (нам о ней на курсах не докладывают!), то может показаться, что вся эта верифилидация — сугубо тестерское дело, которое относится только к тест-кейсам.</p>
<p>Нет.</p>
<p>Это всё приходит к нам из предыдущего этапа, на котором кто-то придумывает требования.</p>
<p>Люди, которые создают требования, должны уметь проверять их на внятность, однозначность, непротиворечивость до того, как их выдадут программистам и тестировщикам — всё то, о чём ты лихо говоришь на собеседованиях, но слабо представляешь себе, как именно это надо делать.</p>
<p>И нет, тут подразумевается не покрытие требований тест-кейсами (это всё делается позже, как правило, нами), а проверка требований разными аналитическими инструментами.</p>
<p style="padding-left: 40px;">Все эти наши техники тест-дизайна — это примеры аналитических инструментов. И они нужны не для того, чтобы уменьшать количество тест-кейсов… впрочем… да…</p>
<p>Ещё в прошлом веке человечеству было известно, что сами требования можно и нужно тестировать с помощью — и вот этот ход конём! — тех самых понятий Verification &amp; Validation. Ёпт!</p>
<p>Об этом подробно написано в книге Karl Wiegers „<strong>Software Requirements</strong>“ (third edition) на стр. 331.</p>
<p style="padding-left: 40px;">Где взять эту книгу — а проверь свои гигабайты скачанных, но не прочитанных книг, наверняка она там есть. Или глянь Amazon.</p>
<p style="padding-left: 40px;">Кстати, эту книгу <a href="https://habr.com/ru/post/419235/">перевели</a> на русский язык, но сделали это очень по-уебански*, поэтому надо смотреть только в первоисточник.</p>
<p style="padding-left: 80px;">* Не дёргаемся, это единственно точное слово для описания того перевода.</p>
<p>В той же книге Вигерса на стр. 347 написано про Validating requirements with acceptance criteria. Знакомый термин? Он тоже кажется сугубо тестировщицким? 🙂</p>
<p>Когда дело доходит до тестирования, все эти термины наследуются, поэтому всё так и устроено. И подразумевается, что наследуется и их понимание. Или ещё круче: странно осознавать, что это всё кому-то может быть непонятным. Но принимаем мир таким, какой он есть.</p>
<p>Или вот те <a href="https://dou.ua/lenta/articles/techniques-for-developing-requirements-1/">раз</a>, вот те <a href="https://dou.ua/lenta/articles/techniques-for-developing-requirements-2/">два</a>, вот те <a href="https://dou.ua/lenta/articles/techniques-for-developing-requirements-3/">три</a> — примеры очевидных техник проработки требований. Посмотри, как много из этого понятно тестировщику.</p>
<p style="padding-left: 40px;">Тестировщику надо уметь прорабатывать требования? Надо.</p>
<p style="padding-left: 40px;">Для этого надо быть аналитиком? Нет.</p>
<p style="padding-left: 40px;">Важно уметь не подменять простую <span style="color: #ff0000;">логику</span> («я прочитал требования») с той самой <span style="color: #ff0000;">аналитикой</span> («я изучил требования»).</p>
<h2><strong><span style="color: #008000;">Совершенно ненужный эпилог</span></strong></h2>
<blockquote><p>«Мы считаем сумасшедшими тех, кого не понимаем, и дураками тех, кто не понимает нас.</p>
<p>Поэтому сумасшедшие считают всех дураками, а дураки – сумасшедшими» ©</p></blockquote>
<p style="text-align: right;">You know it&#8217;s sad but true.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2020/02/13/sad-but-so-fakin-true/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">4346</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 fetchpriority="high" 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 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/07/11/bazaru-i-mort/</link>
					<comments>https://testitquickly.com/2017/07/11/bazaru-i-mort/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Tue, 11 Jul 2017 13:24:26 +0000</pubDate>
				<category><![CDATA[Озарения]]></category>
		<category><![CDATA[тест-дизайн]]></category>
		<category><![CDATA[беспредел]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=3696</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2017/07/11/bazaru-i-mort/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3696</post-id>	</item>
		<item>
		<title>Запуск Allpairs</title>
		<link>https://testitquickly.com/2017/02/13/allpairs/</link>
					<comments>https://testitquickly.com/2017/02/13/allpairs/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Mon, 13 Feb 2017 00:28:26 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Откровения]]></category>
		<category><![CDATA[Скриншоты]]></category>
		<category><![CDATA[тест-дизайн]]></category>
		<category><![CDATA[Читерство]]></category>
		<category><![CDATA[allpairs]]></category>
		<category><![CDATA[Calc]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[hexawise]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[inductive]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Motorola]]></category>
		<category><![CDATA[NASA]]></category>
		<category><![CDATA[PairWise]]></category>
		<category><![CDATA[PICT]]></category>
		<category><![CDATA[testcover]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=3640</guid>

					<description><![CDATA[PairWise — один из крутейших аналитических подходов в тестировании ПО. Как молот. Если попасть молотом по башке врага — ты победил. Если промахнулся — иди учись… Согласно pairwise.org , есть множество софтинок для этого дела, и от Microsoft (их несколько, не только PICT), и от NASA (уже недоступна, в космос улетела), от Motorola, от IBM,… <span class="read-more"><a href="https://testitquickly.com/2017/02/13/allpairs/">Читать далее: Запуск Allpairs &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>PairWise — один из крутейших аналитических подходов в тестировании ПО. Как молот.</p>
<p style="padding-left: 30px;">Если попасть молотом по башке врага — ты победил. Если промахнулся — иди учись…</p>
<p>Согласно <a href="http://www.pairwise.org/tools.asp">pairwise.org</a> , есть множество софтинок для этого дела, и от Microsoft (их несколько, не только PICT), и от NASA (уже недоступна, в космос улетела), от Motorola, от IBM, и др.</p>
<p>
<span id="more-3640"></span>Некоторые эти программы работают через консоль, другие через GUI, третьи через одно место, и все они, в принципе, делают то же самое, что может сделать один нормальный инженер с карандашом и бумагой, но делают это очень быстро. Главное — подать им на вход грамотный набор данных.</p>
<p style="padding-left: 30px;">Вообще, ключевой навык для успешности в PairWise — исчерпывающее понимание этой технологии и неоднозначное умение почувствовать проблему/искажение уже на этапе сведения сущностей и их параметров в единую таблицу.</p>
<p>Есть и онлайновые сервисы: <a href="https://hexawise.com/">hexawise</a>, <a href="https://inductive.no/product/pairwiser-basic">inductive</a>, <a href="http://testcover.com/index.php">testcover</a> — смотреть <a href="https://www.kanoah.com/blog/the-best-pairwise-testing-tools/">большой обзор</a>, я ими не пользуюсь, предпочитаю консольную Allpairs (скачать бесплатно с <a href="http://satisfice.com/tools.shtml">джеймсобаховского</a> сайта), бо привык к ней, и она не привязана к одной операционной системе.</p>
<p>Чтобы с ней управляться, нужно сперва уметь управляться с консолью. Ну там, между каталогами переходить, уметь из каталога с тестовыми файлами запускать программу, которая находится в другом каталоге, короче, основные основы управления любым современным кантупиром.</p>
<p style="padding-left: 30px;">Ведь не может же такого быть, чтобы кто-то занимался тестированием ПО, не понимая, как устроена файловая система, и как организованы файлы на жестком диске, и как управляться со всем этим добром из консоли.</p>
<p>Затем нужно уметь составлять таблицу данных, которая будет обработана Allpairs. В Excel (или в Calc) нужно сделать таблицу с перечислением сущностей и их параметров, затем экспортировать эту таблицу в текстовый файл с разделением столбцов через &#171;TAB&#187;. Затем скормить этот текстовый файл Allpairs на обработку.</p>
<p>Непосредственно Allpairs привык использовать так: в каталоге с программой allpairs.exe создаю подкаталог (&#8216;Test&#8217;), в который сохраняю текстовые файлы (с таблицами из Excel). В этом же подкаталоге появится и файл с результатами работы allpairs.exe.</p>
<p>Перехожу в этот подкаталог (&#8216;Test&#8217;), и уже из него обращаюсь к allpairs.exe, которая находится на одном уровне выше.</p>
<p>
Указываю в этом вызове файл, который надо обработать (назвал его <em>input.txt</em>) и приказываю вывести результат работы в файл, который на диске еще не существует (назвал его <em>output.txt</em>).</p>
<p>
<img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3641" src="https://testitquickly.com/wp-content/uploads/2017/02/allpairswindows.png?w=500" alt="Allpairs in Windows" width="500" height="221" /></p>
<p>
В Unix алгоритм работы (методология) тот же, но</p>
<ol>
<li>перед вызовом программы обязательно нужно указать &#8216;perl&#8217;,</li>
<li>в самом названии программы указывать расширение &#8216;.exe&#8217; уже нет необходимости,</li>
<li>слэши другие.</li>
</ol>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3642" src="https://testitquickly.com/wp-content/uploads/2017/02/allpairslinux.png?w=500" alt="Allpairs in Unix" width="500" height="206" /></p>
<p>
<strong>Нюансы</strong> под макой и убунтой (вот, казалось бы): таки надо внятно указать обращение к файлу <em>allpairs.pl</em>:</p>
<pre style="padding-left: 30px;">perl ../allpairs.pl input.txt &gt; output.txt</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2017/02/13/allpairs/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3640</post-id>	</item>
		<item>
		<title>Редбрик тестинг</title>
		<link>https://testitquickly.com/2017/02/10/termimimitre/</link>
					<comments>https://testitquickly.com/2017/02/10/termimimitre/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Fri, 10 Feb 2017 12:25:41 +0000</pubDate>
				<category><![CDATA[Озарения]]></category>
		<category><![CDATA[Постановка мозгов]]></category>
		<category><![CDATA[тест-дизайн]]></category>
		<category><![CDATA[Учеба в бою]]></category>
		<category><![CDATA[Regression testing]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=3638</guid>

					<description><![CDATA[— …Вообще, поскольку терминология у нас англоязычная, то англоязычные англоязычники её воспринимают вообще иначе, нежели мы. Например, «Regression testing» наши изначально воспринимают как «Блаблабла тестинг», и просто ждут её определения (любого), бо звуки ничего не подсказывают. А они понимают слова по-отдельности, и эти слова по-отдельности очень многое подсказывают сами по себе. Как мы легко расшифровываем… <span class="read-more"><a href="https://testitquickly.com/2017/02/10/termimimitre/">Читать далее: Редбрик тестинг &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>— …Вообще, поскольку терминология у нас англоязычная, то англоязычные англоязычники её воспринимают вообще иначе, нежели мы. Например, «Regression testing» наши изначально воспринимают как «Блаблабла тестинг», и просто ждут её определения (любого), бо звуки ничего не подсказывают. А они понимают слова по-отдельности, и эти слова по-отдельности очень многое подсказывают сами по себе. Как мы легко расшифровываем термины вроде «минсоцоблтруда». Бо контекст есть.</p>
<p>— Ну это-то то понятно.</p>
<p>— Понятно-то понятно… Например, ты знаешь про самую крутую технику тест-дизайна — редбрик тестинг?</p>
<p>— Нет. Рассказывай.</p>
<p>— Был бы ты англоязычным человеком, ты уже спросил бы «<em>Что за ерунда, бро, какое ещё красно-кирпичное тестирование?</em>». А так… можно любой фуфломицин всучить под этим редбрик тестингом, и никто не будет сомневаться. Будут потом на конференциях доклады об этом делать.</p>
<p>— Ты сволочь.</p>
<p>— Да, но у нас это называется «тренер». Двигаемся дальше. Тест-дизайн — это не «<em>наилучшие способы придумывания тест-кейсов</em>». Это аналитическая работа с непредсказуемым результатом… А тест-кейсы появляются просто как следствие аналитики. Нет аналитики — нет тест-кейсов. Есть аналитика, но плохая — будут плохие тест-кейсы…</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2017/02/10/termimimitre/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3638</post-id>	</item>
		<item>
		<title>Тест-дизайн в очманілих руках тестувальника</title>
		<link>https://testitquickly.com/2016/09/06/ye-te-n-miini/</link>
					<comments>https://testitquickly.com/2016/09/06/ye-te-n-miini/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Tue, 06 Sep 2016 14:32:44 +0000</pubDate>
				<category><![CDATA[Видео]]></category>
		<category><![CDATA[Изображения]]></category>
		<category><![CDATA[Конференции]]></category>
		<category><![CDATA[тест-дизайн]]></category>
		<category><![CDATA[Фотографии]]></category>
		<category><![CDATA[Binary Studio]]></category>
		<category><![CDATA[Львов]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=3579</guid>

					<description><![CDATA[У прошедшую субботу выступал во Львове на QA Meetup от Binary Studio: Видео, как всегда, уже недоступно. Блэт. Вообще намеревался устроить презентацию последовательного применения техник тест-дизайна, но после реакции аудитории на некоторые идеи понял, что если перейду к демонстрации, то всё будет &#171;мельтешить&#187;, бо причины действий и выводов будут этой аудитории неочевидны. Поэтому на ходу… <span class="read-more"><a href="https://testitquickly.com/2016/09/06/ye-te-n-miini/">Читать далее: Тест-дизайн в очманілих руках тестувальника &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p style="text-align: left;">У прошедшую субботу выступал во Львове на <a href="https://www.facebook.com/events/1758075411148744/">QA Meetup</a> от Binary Studio:</p>
<p style="text-align: left;"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3582" src="https://testitquickly.com/wp-content/uploads/2016/09/14249732_1076818582373714_3118954000420683221_o1.jpg?w=500" alt="14249732_1076818582373714_3118954000420683221_o(1)" width="500" height="333" /></p>
<p style="text-align: left;"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3584" src="https://testitquickly.com/wp-content/uploads/2016/09/14249712_1076818742373698_1207932363929895134_o1.jpg?w=500" alt="14249712_1076818742373698_1207932363929895134_o(1)" width="500" height="333" /></p>
<p style="text-align: left;"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-3583" src="https://testitquickly.com/wp-content/uploads/2016/09/14231132_1076818842373688_324068661532505217_o1.jpg?w=500" alt="14231132_1076818842373688_324068661532505217_o(1)" width="500" height="333" /></p>
<p style="text-align: center;">Видео, как всегда, уже недоступно. Блэт.</p>
<p>Вообще намеревался устроить презентацию последовательного применения техник тест-дизайна, но после реакции аудитории на некоторые идеи понял, что если перейду к демонстрации, то всё будет &#171;мельтешить&#187;, бо причины действий и выводов будут этой аудитории неочевидны. Поэтому на ходу переключился в другой формат выступления, благо, в слайдах нет нужды. Заодно и взял более медленный темп речи.</p>
<p style="padding-left: 30px;">Таки тест-дизайн — это глубинная тема, нельзя бросать в неё не умеющих плавать и тонуть, бо нам утопленни<span class="text_exposed_show">ки не нужны.</span></p>
<p>Про сам митап: организовано мощно, всё учтено, перекусон вообще блеск!</p>
<p>Что заметил ВООБЩЕ: под meetup подразумевается встреча специалистов какой-то отрасли в неформальной обстановке для обсуждения какой-либо темы или ряда тем. Типа, джем для музыкантов. Но докладание превращает неформальность митапа в мини-конференцию, в которой есть много формальностей, которые всеми соблюдается, уж ничего не поделать. Этот митап тоже выглядит как мини-конференция, разве что действие происходит в офисе</p>
<p style="text-align: left;">В тот же вечер заглянул в новый львовский склад старых ружбаек и немецких касок — отличное место, там таки ждут вежливых гостей!</p>
<div id="attachment_3581" style="width: 510px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3581" class="size-large wp-image-3581" src="https://testitquickly.com/wp-content/uploads/2016/09/d0bbd18cd0b2d0bed0b2-d0b7d0b0d0bbid0b7d0bdd0b0-d188d0b0d0bfd0bad0b0.jpg?w=500" alt="Львов, &quot;Залiзна шапка&quot;" width="500" height="281" /><p id="caption-attachment-3581" class="wp-caption-text">Львов, &#171;Залiзна шапка&#187;</p></div>
<p>PS Если нужон перевод заголовка, то: «<span id="result_box" class="short_text" lang="ru"><em><span class="">Тест</span><span class="">&#8212;</span><span class="">дизайн</span> <span class="">в</span> <span class="alt-edited">очумелых</span> <span class="">руках</span> </em><span class=""><em>тестировщика</em>».</span></span></p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2016/09/06/ye-te-n-miini/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3579</post-id>	</item>
		<item>
		<title>Состояние — Действие — Состояние</title>
		<link>https://testitquickly.com/2016/04/08/interstate-transitors/</link>
					<comments>https://testitquickly.com/2016/04/08/interstate-transitors/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Fri, 08 Apr 2016 09:30:17 +0000</pubDate>
				<category><![CDATA[F.A.Q.]]></category>
		<category><![CDATA[State Transition testing]]></category>
		<category><![CDATA[Озарения]]></category>
		<category><![CDATA[тест-дизайн]]></category>
		<category><![CDATA[Хватали за задницу]]></category>
		<category><![CDATA[Хватит тупить]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=3526</guid>

					<description><![CDATA[Таки додумался, почему State Transition testing не вызывает моментального ой-вэй эффекта у большинства увязнувших в тестировании. Трабла уже описана профессором Преображенским в соответствующей литературе в качестве первопричины разрухи. Тут надо думать «исходное Состояние системы — Действие — иное Состояние системы». А мы с «деццва» учимся продумывать тест-кейсы как «Действие — Результат действия». Вот «кружочки» и… <span class="read-more"><a href="https://testitquickly.com/2016/04/08/interstate-transitors/">Читать далее: Состояние — Действие — Состояние &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Таки додумался, почему State Transition testing не вызывает моментального ой-вэй эффекта у большинства увязнувших в тестировании.</p>
<div id="attachment_3527" style="width: 310px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-3527" class="size-medium wp-image-3527" src="https://testitquickly.com/wp-content/uploads/2016/04/08-04-2016-12-24-34.jpg?w=300" alt="State-Transition Testing" width="300" height="255" /><p id="caption-attachment-3527" class="wp-caption-text">Вот это самое &#171;State-Transition Testing&#187;</p></div>
<p>Трабла уже описана профессором Преображенским в соответствующей литературе в качестве первопричины разрухи.</p>
<p>Тут надо думать «<span style="color: #0000ff;">исходное Состояние системы</span> — <span style="color: #800080;">Действие</span> — <span style="color: #008000;">иное Состояние системы</span>».</p>
<p>А мы с «деццва» учимся продумывать тест-кейсы как «<span style="color: #800080;">Действие</span> — <span style="color: #008000;">Результат действия</span>».</p>
<p style="padding-left: 30px;">Вот «кружочки» и не получаются.</p>
<p style="padding-left: 30px;">А получается что-то вроде &#8216;<span style="color: #0000ff;">Product available in the Cart</span> — <span style="color: #800080;">Proceed to Checkout</span> — <span style="color: #008000;">Checkout Page opened</span>&#8216;. Бред-то какой, полюбуйтесь на вашего Полиграфа&#8230;</p>
<p>Ну а потом начинается извечная шумерская жалобная песнь для успокоения сердца (просто выберите любимое и добавьте воды):</p>
<ul>
<li>У нас нет времени на тест-дизайн&#8230;</li>
<li>На нашем проекте это не используется&#8230;</li>
<li>Никто на проекте не говорит, какую именно технику надо использовать&#8230;</li>
<li>Я тестирую только экивалентность и границы значений, и этого достаточно&#8230;</li>
<li>Пожалуйста, спасите-помогите&#8230;</li>
<li>Все эти техники — для задротов, реально они ничего не приносят&#8230;</li>
<li>Я буду это применять, если это реально поможет уменьшать количество тестов&#8230;</li>
<li>Тест-кейс — это когда надо проверить, что по шагам надо выполнять, и софт работает&#8230;</li>
<li>Я клоун&#8230;</li>
</ul>
<h2><span style="color: #008000;"><strong>Что надо сделать</strong></span></h2>
<ol>
<li>определить happy path &#8212; их может быть несколько.</li>
<li>определить другие сценарии и ветвления к ним.</li>
<li>выводить в отдельные ветки всё, даже если они подразумевают переход к одному и тому же состоянию (есть множество исключений, но это должно быть основным подходом; впоследствии он сэкономит силы и нервы).</li>
<li>стрелка &#8212; <strong>действие</strong>. Круг &#8212; <strong>состояние</strong>, а не результат действия, как мы привыкли писать в тест-кейсах.</li>
<li>не запихивать всё в один рисунок. Пусть будет много рисунков. Переключайтесь между листами.</li>
<li>если что-то пошло не так и надо перерисовывать &#8212; будете материться, а не ерзать ластиком. Проще будет быстро нарисовать правильную последовательность заново, поэтому рисуйте без детальной детализации.</li>
</ol>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2016/04/08/interstate-transitors/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3526</post-id>	</item>
	</channel>
</rss>
