<?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%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D1%81%D0%BA%D0%BE%D0%B5/feed/" rel="self" type="application/rss+xml" />
	<link>https://testitquickly.com</link>
	<description>про тестирование ПО и всё такое прочее</description>
	<lastBuildDate>Fri, 24 Jan 2025 10:27:00 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://testitquickly.com/wp-content/uploads/2021/09/favicon_lupan-150x150.jpg</url>
	<title>Управляторское &#8212; Можно Подумать</title>
	<link>https://testitquickly.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">202834616</site>	<item>
		<title>Савин, Фолкнер и Нгуен…</title>
		<link>https://testitquickly.com/2019/07/16/numele-skimonosit/</link>
					<comments>https://testitquickly.com/2019/07/16/numele-skimonosit/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Tue, 16 Jul 2019 08:00:50 +0000</pubDate>
				<category><![CDATA[В гостях у психиатра]]></category>
		<category><![CDATA[Литература]]></category>
		<category><![CDATA[мадам Козятина]]></category>
		<category><![CDATA[Скриншоты]]></category>
		<category><![CDATA[Соображения]]></category>
		<category><![CDATA[Управляторское]]></category>
		<category><![CDATA[А.Опекушин]]></category>
		<category><![CDATA[Андрей Макаревич]]></category>
		<category><![CDATA[братья Вайнеры]]></category>
		<category><![CDATA[братья Стругацкие]]></category>
		<category><![CDATA[Владимир Высоцкий]]></category>
		<category><![CDATA[Галилей]]></category>
		<category><![CDATA[Ильф и Петров]]></category>
		<category><![CDATA[Канер]]></category>
		<category><![CDATA[Культ карго]]></category>
		<category><![CDATA[Пикачу]]></category>
		<category><![CDATA[Фолкнер]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=4231</guid>

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

					<description><![CDATA[Очень крутой доклад. Настя умеет! Про всё то, что из нашего царства аутсорсинга постоянно не видно.]]></description>
										<content:encoded><![CDATA[<p>Очень крутой доклад. Настя умеет!</p>
<p>
<iframe loading="lazy" title="Анастасия Асеева-Нгуен. Скажи «нет» должности тестировщик!" width="665" height="374" src="https://www.youtube.com/embed/SUtOsUUkNk0?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>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2018/11/20/kiar-zi-le-nu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3974</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>Priority &#038; Severity на пальцах обезъянок</title>
		<link>https://testitquickly.com/2016/03/08/nica-prioritate/</link>
					<comments>https://testitquickly.com/2016/03/08/nica-prioritate/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Tue, 08 Mar 2016 21:23:34 +0000</pubDate>
				<category><![CDATA[F.A.Q.]]></category>
		<category><![CDATA[Банальное]]></category>
		<category><![CDATA[Откровения]]></category>
		<category><![CDATA[Управляторское]]></category>
		<category><![CDATA[Kowalski]]></category>
		<category><![CDATA[Владимир Высоцкий]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=3511</guid>

					<description><![CDATA[Priority Приоритет показывает степень важности выполнения задачи ДЛЯ БИЗНЕСА. В широком смысле, все сообщения о дефектах тоже можно рассматривать как задачи, которые необходимо выполнить. Рекомендуется использовать всего три уровня приоритета: Приоритетно, Не приоритетно, . Все очень просто, не так ли? Или задача приоритетна, или нет. Tertium, кагбэ,  non datur. Если еще более по-взрослому говорить, то… <span class="read-more"><a href="https://testitquickly.com/2016/03/08/nica-prioritate/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<h2><span style="color: #008000;">Priority</span></h2>
<p>Приоритет показывает степень важности выполнения задачи ДЛЯ БИЗНЕСА.</p>
<p style="padding-left: 30px;">В широком смысле, все сообщения о дефектах тоже можно рассматривать как задачи, которые необходимо выполнить.</p>
<p>Рекомендуется использовать всего три уровня приоритета:</p>
<ol>
<li>Приоритетно,</li>
<li>Не приоритетно,</li>
<li><span style="color: #ffffff;">.</span></li>
</ol>
<p>Все очень просто, не так ли? Или задача приоритетна, или нет. <span class="st">Tertium, кагбэ,  non datur.</span></p>
<p style="padding-left: 30px;">Если еще более по-взрослому говорить, то приоритизация означает не простое «<em>Давайте расположим все по-важности и будем выполнять последовательно</em>». Оно означает необходимость от чего-то отказаться, чтобы выполнить самое важное [<a href="https://medium.com/@allo/%D0%BE-%D0%BF%D1%80%D0%B8%D0%BE%D1%80%D0%B8%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-7f0556b49fcb#.fk69ybrhm">подробности</a>], но это уже слишком сложные материи&#8230;</p>
<p><span id="more-3511"></span></p>
<p>
В Jira используется аж пять уровней приоритетности. Надо бы меньше, но мы все тут с Jira бесимся, поэтому будем следовать ее визионерству:</p>
<p><strong>Trivial</strong> — Lowest priority, punctuation or any very small issues</p>
<p style="padding-left: 30px;"><em>In &#8216;Contact us&#8217; Tahoma font displayed instead of Arial.</em></p>
<p style="padding-left: 60px;"><span style="color: #008000;"><em>Nobody else see the difference. In the future this issue may be fixed. Or not, because nobody cares, this doesn&#8217;t broke the business.</em></span></p>
<p><strong>Minor</strong> — Indicates that this issue has a relatively minor impact.</p>
<p style="padding-left: 30px;"><em>In the &#8216;Contact us&#8217; form placeholder text in &#8216;Message&#8217; field is displayed as &#8216;Italic&#8217; instead of regular text.</em></p>
<p style="padding-left: 60px;"><span style="color: #008000;"><em>This doesn&#8217;t broke the business, but it&#8217;s a little annoying to write and read all text in &#8216;Italic&#8217;. Please, can you fix it?!</em></span></p>
<p><strong>Major</strong> — Indicates that this issue has a significant impact.</p>
<p style="padding-left: 30px;"><em>Sending message from the &#8216;Contact us&#8217; form works well, but sender email is unknown.</em></p>
<p style="padding-left: 60px;"><span style="color: #008000;"><em>Unanswered emails can lead customers to nervosity, this can affect whole business, so please, fix the problem in the most appropriate time limit.</em></span></p>
<p><strong>Critical</strong> — Indicates that this issue is causing a problem and requires urgent attention.</p>
<p style="padding-left: 30px;"><em>&#8216;Contact us&#8217; page is unavailable.</em></p>
<p style="padding-left: 60px;"><span style="color: #008000;"><em>This is a required functionality for the web store, <span class="st">this can have a bad impact on <em class="st">the business, </em>so, </span><a class="external-link" style="color: #008000;" href="https://www.youtube.com/watch?v=-YQm-16-bpI" rel="nofollow"><span class="st">Kowalski</span></a>, fix the problem ASAP!</em></span></p>
<p><strong>Blocker</strong> — This problem will block progress of the project.</p>
<p style="padding-left: 30px;"><em>Web store is down. &#8216;Contact us&#8217; page unavailable.</em></p>
<p style="padding-left: 60px;"><span style="color: #008000;"><em>User cannot open the &#8216;Contact us&#8217; page, because the whole web site is down, the business is down, <span class="st">Kowalski</span>, don&#8217;t panic, immediately grab the monkeys and act like the server, while we will bring him back online!</em></span></p>
<h2><span style="color: #008000;"><strong>Severity</strong></span></h2>
<p>Суровость бага (<em>ну, вы же не дураки, чтобы переводить “<strong>Severity</strong>” как невнятное “<strong>Важность</strong>” или “<strong>Серьезность</strong>“? <span style="color: #993300;"><strong>Суровость</strong></span>!</em>) показывает технологическую степень влияния дефекта на всю систему.</p>
<p style="padding-left: 30px;">Внимание, на ВСЮ СИСТЕМУ, а не только на отдельно взятый сценарий или функциональность.</p>
<p style="padding-left: 30px;">То есть, если при тестировании Wish List выясняется, что невозможно добавить товар в Wish List, но при этом остальные важные части веб-магазина в принципе работают, то не надо орать, что у тебя Blocker, только потому, что ты не можешь выполнить твой тест-кейсик. Оно блокер, но не для всей системы, а только для тебя одного.</p>
<p style="padding-left: 30px;">Важно понимать, что реально суровые дефекты в функциях в современных веб-системах сложно обнаружить, бо современные веб-системы не состоят из цельных кусков хрусталя, который можно расколоть одним движением. Вы больше блокеров найдете в MS Word, чем в Joomla, просто потому, что какой-то хитрый баг может тупо закрэшить вам всю вордину, дальнейшие действия становятся невозможными, надо запускать ворд с нуля. А как &#171;положить&#187; интернет-приложение, построенное на микро-сервисах? Сервак раздолбать кувалдой&#8230; Или продумать какую-то троянистую шнягу, которая по цепочке пронесет с собой разрушительный скрипт, и всю эту цепочку будет последовательно уничтожать.</p>
<p style="padding-left: 30px;">Поэтому в большинстве случаев мы используем Severity  = Major, а Blocker&#8217;ом величаем разве что какие-то важные и сложно-составные сценарии, которые по каким-то причинам <a href="https://www.youtube.com/watch?v=bQmbmfaNe10">очень важно пройти</a>, но не удается.</p>
<p><strong>Trivial</strong> — Minor loss of function, or other problem where easy workaround is present.</p>
<p style="padding-left: 30px;"><em>&#8216;Contact us&#8217; form text was designed with Arial font 14 size, but I see the Arial font 13 size instead.</em></p>
<p style="padding-left: 60px;"><span style="color: #008000;"><em>This doesn&#8217;t affect the functionality at all. Anybody will care about it?</em></span></p>
<p><strong>Major</strong> — Major loss of function.</p>
<p style="padding-left: 30px;"><em>User messages from &#8216;Contact us&#8217; page are not received by Support team.</em></p>
<p style="padding-left: 60px;"><span style="color: #008000;"><em>Everything else works fine, only this particular loss of functionality can severely affect the business issues. Kowalski, fix the problem!</em></span></p>
<p><strong>Blocker</strong> — Blocks the interaction with the system, production could not run, crashes, loss of data, severe memory leak, everybody dies.</p>
<p style="padding-left: 30px;"><em>Web store become inaccessible because &#8216;Contact us&#8217; script overload the server.</em></p>
<p style="padding-left: 60px;"><span style="color: #008000;"><em>S<span class="short_text" lang="en"><span class="hps">erver</span> <span class="hps">continuously restarts</span></span>, nobody can access it, web store became inaccessible. This severely affect all business issues. Kowalski!</em></span></p>
<p>Кстати, для Severity лучше использовать побольше нюансов.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2016/03/08/nica-prioritate/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3511</post-id>	</item>
		<item>
		<title>“Good enough” так “good enough”</title>
		<link>https://testitquickly.com/2013/06/03/good-enough/</link>
					<comments>https://testitquickly.com/2013/06/03/good-enough/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Sun, 02 Jun 2013 23:19:59 +0000</pubDate>
				<category><![CDATA[Автоматизация]]></category>
		<category><![CDATA[В гостях у психиатра]]></category>
		<category><![CDATA[Литература]]></category>
		<category><![CDATA[мадам Козятина]]></category>
		<category><![CDATA[Соображения]]></category>
		<category><![CDATA[Управляторское]]></category>
		<category><![CDATA[good enough]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=3120</guid>

					<description><![CDATA[Темные подворотни киевского Подола. Опиумная кальянная мадам Козятиной. Тускло моргает надпись “We know English! Visa accepted! 24h!” Откуда-то слышны мягкие пианинные трельки. На кушетке, присосавшись к кальянной трубке, возлежит Менеджер проектов без галстука. В недрах стоящего рядом мягкого кресла утонул пофигистичный к мирскому его коллега, бухгалтер. Легкая задымленность и маниакальный блеск в глазах говорящего: —… <span class="read-more"><a href="https://testitquickly.com/2013/06/03/good-enough/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Темные подворотни киевского Подола. Опиумная кальянная мадам Козятиной. Тускло моргает надпись “We know English! Visa accepted! 24h!”</p>
<p>Откуда-то слышны мягкие пианинные трельки.</p>
<p>На кушетке, присосавшись к кальянной трубке, возлежит Менеджер проектов без галстука. В недрах стоящего рядом мягкого кресла утонул пофигистичный к мирскому его коллега, бухгалтер.</p>
<p>Легкая задымленность и маниакальный блеск в глазах говорящего:</p>
<p>— <strong>…и поэтому я хочу, чтобы вместо тестировщиков на проекте работали автотесты. Тестирование на нашем проекте уже превышает все бюджеты, заказчик оплачивает только треть всей работы, остальное происходит за наш счет. А качества на проекте как не было, так и нет, постоянно находят какие-то баги! Там уже четыре тестировщика фигачат по девять man/hours в день! Это ж деньги впустую уходят! Это же вчерашний день!</strong></p>
<p>— Дык, тестировщики за качество не отвечают… — из глубин кресла. — Это даже бухгалтера знают. Менеджер проекта отвечает за качество всего проекта…</p>
<p><span id="more-3120"></span>— <strong>Ооооо, как заговорили! Оооо! Ооочень хорошо! Так я их и оптимизирую. Они у меня будут шёлковыми! Значит, так. Постепенно уводим ручных тестировщиков с проекта. Заменяем их одним (ладно, двумя) автоматизаторами. Автоматизаторы автоматизируют все тест-кейсы. Ручные тестировщики больше не нужны. Выкатываем новый релиз, напускаем на него автотесты. Бинго!</strong></p>
<p>— Где же удешевление, если час работы автотестера в три раза дороже обычного…</p>
<p>— <strong>…но они там ненадолго. Автоматизируют всё, и уйдут!</strong></p>
<p>— Нет, они там поселятся очень надолго. Мадам Козятина, нам ещё угля подсыпьте. Смотри… твоя идея здравая и правильная, если воспринимать ВЕСЬ процесс тестирования как одноразовую задачу. В каком-то смысле, написание и прогон тест-кейса — это одноразовая задача. Но софт не разрабатывается одноразово.</p>
<p>— <strong>Чё-то как-то слишком сложно…</strong></p>
<p>— Проект у нас существует только потому, что в него постоянно вносятся какие-то корректировки и хотелки заказчика. Основная часть проекта работает стабильно, ведь её не трогают. Всё остальное надо постоянно проверять. Так?</p>
<p>— <strong>Так.</strong></p>
<p>— Следовательно, если софт постоянно изменяется и дополняется, то кому-то надо постоянно придумывать новые тестовые ситуации, чтобы прогонять по ним софт до его выпуска в лайв. Существующих тест-кейсов никогда не будет достаточно. Следовательно, на проекте постоянно появляются новые тест-кейсы — и это только по тому функционалу, который появляется.</p>
<p>Мммм&#8230;</p>
<p>А еще надо будет учитывать новые взаимосвязи между функциями, которые тоже обязательно надо тестировать, ведь проект разрастается, и проявляются баги, которые возникают только из-за взаимодействия разных частей. И это всё тоже надо проверять, и, по твоей логике, автоматизировать.</p>
<p>— <strong>Так.</strong></p>
<p>— Так вот, твой автоматизатор НИКОГДА не угонится за ручными тестировщиками, ведь они постоянно будут генерировать новый «контент». А если ручных тестировщиков на проекте не будет, то автоматизатору придется придумывать и прогонять тест-кейсы самому. Долго он будет этим заниматься?</p>
<p>— <strong>Так… хз же&#8230;</strong></p>
<p>— Что в итоге: твой автоматизатор будет обеспечен постоянной работой, твои «ручные» тестировщики будут обеспечены постоянной работой, расходы на тестирование со временем обязательно вырастают, а качество на твой проект все равно не придёт.</p>
<p>— <strong>Сфигали?</strong></p>
<p>— Дык качество не приходит/уходит. Оно или есть, или нет. Тестировщики его просто фиксируют (как твой градусник), а не приносят.</p>
<p>— <strong>Эти тестировщики… </strong>(убежденно)<strong> Таки это падлы…</strong></p>
<p>— Проблема твоего проекта не в тестировщиках. И даже не в программистах. У тебя программисты на проекте откровенно работают в стиле “good enough”. И заказчики используют свой магазин в стиле “good enough” (я видел, что у вас там триста багов постоянно открыты, из одного релиза в другой переходят, и никто от них не страдает). А от тестировщиков ты требуешь работать в стиле “makes perfect”. Why? Fuck you, that’s why!</p>
<p>— <strong>Недопонял.</strong></p>
<p>— “Good enough” означает «достаточно хорошо для бизнеса». Не всегда нужно, чтобы весь софт работал идеально. Не всегда необходимо, чтобы процессы в той же логистике были идеально отлажены. Бизнес идет, деньги идут, все ок. Раздуй угли&#8230; Так вот, у тестировщиков всё точно так же. Они не могут доказать, что в софте нет багов. Они также не могут доказать, что баги есть — им надо проверять все предположения. Они очень многое предполагают и на очень многое надеются, обычно необоснованно. Это “good enough” для тестирования. Вообще, чего ты к тестировщикам привязался? На твоем проекте всё, вроде бы, нормально.</p>
<p>— <strong>Нормально оно только внешне и только сейчас. В принципе же у нас потенциальная проблема. Через полгода на проекте понадобится больше тестировщиков…</strong></p>
<p>— Не понадобится. Тебе понадобится вообще три человека как постоянная команда — двое ручных тестировщиков, которые больше будут работать головой, чем кодить, и один автоматизатор, который больше будет кодить, чем думать. Гибкость понадобится только в распределении задач на тестирование — их всегда нужно будет ограничивать. “Good enough” так “good enough”.</p>
<p>Конкретно: раздели все функциональные возможности проекта на три чек-листа:</p>
<p style="padding-left: 30px;">1) New features</p>
<p style="padding-left: 30px;">2) Critical areas</p>
<p style="padding-left: 30px;">3) General areas</p>
<p>При выпуске каждого билда тестируется в обязательном порядке всё, что попадает в “New features”. Затем (или одновременно с этим) обязательно тестируется всё то, что попадает в раздел “Critical areas”. А “General areas” — фиг с ними. Если до них руки дойдут – ок. Если не дойдут (а всегда не доходят) — пофигу. “Good enough”.</p>
<p>После выпуска билда начинается обязательная подготовка к следующему. Все штуки из раздела “New features” обязательно переносятся в “Critical” или “General” — по ситуации. “General areas” будет постоянно разрастаться, ну и фиг с ним. Внутри этого списка тоже всё будет ранжировано по степени важности, по убывающей, поэтому самые важные пункты будут проверяться первыми. Зачем тебе вообще тестировщики на проекте?</p>
<p>— <strong>Ну, надо же знать, если что-то важное не поломалось…</strong></p>
<p>— Чтобы это узнавать, тестировщики не нужны. Это могут сделать и твои программисты, и ты сам. Тестировщики тебе нужны для того, чтобы придумывать, что и как проверять на работоспособность и на вшивость.</p>
<p>Вообще, всё тестирование обычно сосредоточено на том, чтобы сравнить работоспособность функционала (или возможностей), который перечислен в разделе “Critical areas” с предполагаемым идеалом. Но идеал&#8230; Если там что-то работает в принципе, то этого “good enough”. Ты постоянно выпускаешь софт с какими-то багами, я видел.</p>
<p>— <strong>Но без критикалов! У нас условие такое, что в выпускаемом релизе не должно быть ни одного критического бага. Или, упаси Шива, блокер…</strong></p>
<p>— Вот именно. Проверяется и чинится самое важное. Всё остальное проверяется или на ходу, или по возможности, но редко целенаправленно. И еще баги тоже ранжируются, самые важные баги — из раздела “Critical areas”. Вообще, требовать «тестировать всё!» — это очень, очень, очень глупо и самонадеянно.</p>
<p>— <strong>Разве “New features” не самые важные?</strong></p>
<p>— Это важнее важного только в день выпуска, а завтра все твои “New features” уже должны отображаться в списке “Critical” или “General”. Поэтому, всё равно всё сводится к одному и тому же.</p>
<p>— <strong>А что из этого надо будет автоматизировать?</strong></p>
<p>— Всё то, что находится в разделе “General areas”. Остальное — если руки дойдут. То есть, никогда.</p>
<p>— <strong>То есть, как это — никогда?</strong></p>
<p>— Так, что все штуки из “Critical areas” тестировщики в принципе будут обязательно проверять руками, да ещё и неоднократно. Пусть робот тестирует то, что в “General areas” находится, ведь туда тестировщики могут и не дойти, время на тестирование все-таки ограничено. Да и, как правило, именно такие места реже всего изменяются, что для автоматизации благо. Автоматика будет проверять надежность самого надежного функционала. Ведь хуже всего, когда ВНЕЗАПНО находится баг там, где, казалось бы, все очень надёжно.</p>
<p>— <strong>Слушай, ты же бухгалтер. Откуда ты столько знаешь про тестирование?</strong></p>
<p>— А я же встречаюсь с самой красивой тестировщицей в этом городе. Она после секса постоянно болтает о тестировании. Мадам Козятина! Нам еще трошки угля, пожалуйста… Что-то сегодня день дождливый.</p>
<p>— <strong>Такое вот начало лета…</strong></p>
<p>— Да&#8230; Наверное, черешня не уродится.</p>
<p>— <strong>Да, наверное…</strong></p>
<p style="text-align: right;"><a href="http://testitquickly.com/2019/07/14/numele-skimonosit/">Канер, Фолкнер и Нгуен…</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2013/06/03/good-enough/feed/</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3120</post-id>	</item>
		<item>
		<title>Как совершить должностное преступление</title>
		<link>https://testitquickly.com/2011/10/03/facem-treaba-ori-faradalege/</link>
					<comments>https://testitquickly.com/2011/10/03/facem-treaba-ori-faradalege/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Mon, 03 Oct 2011 18:09:13 +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>
		<guid isPermaLink="false">http://testitquickly.com/?p=2544</guid>

					<description><![CDATA[Сижу в офисной кухне, ем еду. &#171;Жрум-хрум, жрум-хрум&#187;&#8230; Мимо в юго-западном направлении проходит молодой надежда киевского тестирования. ~ Привет, — говорит. ~ Спасибо! — отвечаю. ~ А, приятного аппетита. ~ Привет! — отзываюсь. ~ Гы! Умеешь ты запутывать! — 🙂 ~ А то! — ))) Но если можно запутывать, то можно и распутывать. Выясняется, что… <span class="read-more"><a href="https://testitquickly.com/2011/10/03/facem-treaba-ori-faradalege/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Сижу в офисной кухне, ем еду.</p>
<p>&#171;Жрум-хрум, жрум-хрум&#187;&#8230;</p>
<p>Мимо в юго-западном направлении проходит молодой надежда киевского тестирования.</p>
<p>~ <em>Привет, —</em> говорит.</p>
<p>~ Спасибо! <em>—</em> отвечаю.</p>
<p>~ <em>А, приятного аппетита.</em></p>
<p>~ Привет! <em>—</em> отзываюсь.</p>
<p>~ <em>Гы! Умеешь ты запутывать!</em> <em>—</em> 🙂</p>
<p>~ А то! <em>—</em> )))</p>
<p>Но если можно запутывать, то можно и распутывать. Выясняется, что с утра наш надежда киевского тестирования безнадежно застрял в сложной нравственной производственной проблеме: нашелся баг, но программист просит не сообщать о баге закащщику&#8230;</p>
<p style="padding-left: 30px;">Дескать, баг есть, но его исправлять — это много времени нужно, а релиз на носу-с.</p>
<p style="padding-left: 30px;">И мы его, милай, зарезолвим в лучшем виде, но после релиза.</p>
<p style="padding-left: 30px;">А пока — не сообщай.</p>
<p>В общем, запутался он.</p>
<p>Что делать?</p>
<p><span id="more-2544"></span></p>
<p>Если о баге не сообщить — вероятно, релиз выйдет спокойно и все будет хорошо.</p>
<p>~ Но при этом совершается должностное преступление, ты не сообщаешь информацию, для добывания которой тебя и пригласили в проект! — науськиваю я&#8230;</p>
<p>Если сообщить — вероятно, релиз релиз выйдет спокойно, но программисту придется неспокойно провести ряд вечеров или ночей в решении бага. И тады кирдык надежде киевского тестирования, бо будут гнобить.</p>
<p style="padding-left: 30px;">И будут правы, согласно канонам действующей лагерно-пацанской морали общества.</p>
<p>Если не сообщить, но слабо рассчитывать на то, что баг будет исправлен&#8230;</p>
<p>~ А не факт, что будет исправлен, — подливаю я кипящего масла в душевную морозилку. — Его же не будут учитывать в плане работ&#8230;</p>
<p>Вооооот!</p>
<p>А если этот баг потом будет задевать другой функционал?</p>
<p>А если этот баг найдет закащщик? Баг был найден четко по тест-кейсу&#8230;</p>
<p>А если вдруг ВНЕЗАПНО что-то случится?</p>
<p>Надо сообщать о баге. Но программист&#8230; Боится он, что ли?</p>
<p>Ну&#8230;</p>
<p>Все равно ведь про баг узнают&#8230;</p>
<p>Вердикт: сообщить о баге закащщику должен сам программист (с поддержкой в виде тестировщика на фоне декораций).</p>
<p>Если сообщить с уточнением: &#171;<em>Фикс займет столько-то дней, и если его фиксить, то мы рискуем не успеть сдать объект к 22 апреля* &#8230;</em>&#171;, то весьма вероятно, что релиз могут выпустить с багом, но учитывая риски, и фикс таки случится.</p>
<p style="padding-left: 30px;">* В позднее советское время строители сдавали в эксплуатацию всякие объекты социалистической стройки не по мере готовности, а к определенным датам календаря; после чего много лет фиксили недостатки уже &#171;по-бумаге&#187; сданных объектов.</p>
<p style="padding-left: 30px;">Например, в течение еще двух лет достраивали &#171;действующий&#187; мост или крышу поликлиники, изредка читая про себя тематические фельетоны в журнале &#171;Крокодил&#187;, и за это никого никуда не увольняли&#8230;</p>
<p>Обед закончился.</p>
<p>По итогам:</p>
<ol>
<li>баг учтен;</li>
<li>сделали небольшой релиз с учетом проблем;</li>
<li>фиксы всей области, в которой был найден баг, были запланированы на следующий релиз, бо баг там был не один, как водится;</li>
<li>выпустили, стали фиксить.</li>
</ol>
<p><a title="музыкальное" href="http://www.youtube.com/watch?v=eiyvICvQcAc&amp;t=5m49s">Щастье</a> 🙂</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2011/10/03/facem-treaba-ori-faradalege/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2544</post-id>	</item>
		<item>
		<title>Разруливаем баги в Mantis</title>
		<link>https://testitquickly.com/2009/06/24/mantis-rules/</link>
					<comments>https://testitquickly.com/2009/06/24/mantis-rules/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Wed, 24 Jun 2009 13:14:42 +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[Mantis]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[time-tracker]]></category>
		<guid isPermaLink="false">http://testitquickly.com/?p=972</guid>

					<description><![CDATA[Обращение к нации Дорогой разработчик, в нашем мире существуют люди, которые могут найти баги даже в идеально написанной тобою программе. Обороняться от такой несправедливости бессмысленно, поэтому лучше это дело упорядочить. Для этого используются системы управления дефектами вроде &#171;Mantis&#187;. Да, можно называть дефекты багами. Главное не в названии, главное в том, что их надо чинить. Принципиальная… <span class="read-more"><a href="https://testitquickly.com/2009/06/24/mantis-rules/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<h2><strong>Обращение к нации</strong></h2>
<p>Дорогой разработчик,</p>
<p>в нашем мире существуют люди, которые могут найти баги даже в идеально написанной тобою программе. Обороняться от такой несправедливости бессмысленно, поэтому лучше это дело упорядочить.</p>
<p>Для этого используются системы управления дефектами вроде &#171;Mantis&#187;.</p>
<ul>
<li>Да, можно называть дефекты багами. Главное не в названии, главное в том, что их надо чинить.</li>
</ul>
<p><span id="more-972"></span></p>
<h2><strong>Принципиальная схема работы с Mantis</strong></h2>
<ol type="1">
<li>Если ты видишь баг &#8212; сделай об этом запись в Mantis. Не емайлом, не в скайпе, и не лично, и не молча, если на его починку нужно больше, чем десять секунд. Просто запиши это в Mantis.</li>
<li>Заполнить там надо всего лишь четыре поля:
<ol type="1">
<li><strong>Category</strong> &#8212; это выпадающий список категорий в отдельно взятом проекте.</li>
<li><strong>Summary</strong> &#8212; заголовок репорта о проблеме. Опиши свой &#171;wtf?&#187; кратко и без подробностей.
<ul>
<li>Пример неправильного заголовка: &#171;Не могу сохранить пароль&#187;.</li>
<li>Пример правильного заголовка: &#171;Не могу сохранить пароль если использую заглавные буквы&#187;.</li>
</ul>
</li>
<li><strong>Description</strong> &#8212; а вот тут пиши подробности.</li>
<li><strong>Steps To Reproduce</strong> &#8212; пожалуй, самая важная часть репорта. Ведь программист, который получает сообщение о баге, но не понимает, что и как ты сделал и почему появился баг &#8212; это очень рассерженный программист&#8230;
<ol type="1">
<li><strong>Пример шагов для воспроизведения: </strong>
<ol type="1">
<li>
<pre>Залогиниться на сайте (tester101/tester101)</pre>
</li>
<li>
<pre>Создать тикет в суппорт.</pre>
</li>
<li>
<pre>На третьем экране в поле Label вписать слово с двоеточием - 'doc:doc'.</pre>
</li>
</ol>
</li>
<li>Конечно, записать это требует чуть больше времени, чем сказать &#171;<em>Слушай, это, там чего-то не работает, вот..</em>.&#187; Зато потом в ответ не получишь &#171;<em>Я там чо-та пофиксил, я хз, если оно то, о чем ты говорил ваще-та&#8230;</em>&#171;</li>
</ol>
</li>
</ol>
</li>
<li>Приложи скриншот найдненного тобою бага. Иногда это важнее слов.</li>
<li>В Mantis появляется новая задача со статусом New.</li>
</ol>
<p>А поскольку мы еще и знаем, на чье имя направить этот репорт, и укажем это в системе, то статус нового репорта будет Assigned. И это очень круто, ведь:</p>
<ol type="1">
<li>основное значение Mantis в том, чтобы хранить историю работы над отдельными задачами.</li>
<li>мы всегда знаем, на чьей совести сейчас находится эта задача</li>
<li>и мы всегда знаем, что об этой задаче думает сам программист, потому что комментарии программистов к репортам всегда важны и рулезны.</li>
</ol>
<h2><strong>Что такое issue?</strong></h2>
<p>Все записи в Mantis называются issue.</p>
<p style="padding-left: 40px;">Принципиально это переводится как &#171;предмет спора, разногласие, проблема&#187;. Обычно это переводят как &#171;Задача&#187;.</p>
<p>Фишка в том, что каждое отдельно взятое issue может быть или в любой момент стать как &#171;СООБЩЕНИЕМ О БАГЕ&#187;, и &#171;ЗАДАЧЕЙ НА РАЗРАБОТКУ&#187;.</p>
<p>Если я сделал запись с сообщением о дефекте &#8212; это сообщение о баге.</p>
<p>Если я сделал запись о том, что надо бы сделать функцию сортировки &#8212; это уже задача на разработку.</p>
<p>И то, и другое можно комментировать, снабжать дополнительной информацией, указывать адрес и время изменений и менять общий статус работы над issue. Как правило, через пять минут после работы с Mantis вероятность путаницы исчезает. Проверенно на людях.</p>
<h2><strong>Общие правила работы с Mantis</strong></h2>
<ol type="1">
<li>Созданная задача получает уникальный номер в системе, и статус <strong>New</strong>.</li>
<li>Если при создании задачи был выбран человек, который будет за нее отвечать, статус задачи становится <strong>Assigned</strong>.</li>
<li>Конечный статус задачи <strong>closed</strong>. До тех пор, пока задача не получила статус <strong>closed</strong> &#8212; она все еще находится в работе.</li>
<li>За каждую отдельную задачу отвечает тот, на чье имя она записана. Для этого используется поле <strong>Assigned To</strong>. Если ты уверен, что твое участие больше не требуется &#8212; переведи задачу в статус <strong>Resolved</strong> и укажи имя того, кому ты ее передаешь.</li>
<li>Прекрасен принцип &#171;One Bug &#8212; One Issue&#187;. Например, существует задача, которая была источником разработки. А мы нашли баг, который касается непосредственно этой задачи.</li>
<li>Не надо вписывать <strong>баг как комментарий к задаче</strong> &#8212; надо сделать новое issue. Иначе потом будет очень сложно &#171;управлять багами&#187;, и будет сложно понять, сколько багов было найдено, и сложно объяснять, что &#171;это задача, и она сделана, но в комментариях есть баг, и он не починен&#187;. Все задачи, которые связаны между собой, можно слегко &#171;линковать&#187; посредством поля <strong>Relationships</strong>.</li>
<li>Не стесняйся адекватно и вовремя менять статус задачи, с которой работаешь.</li>
<li>Будь внимателен с типом задачи (Issue type). Каждый тип (&#171;Feature Request&#187;, &#171;Change Request&#187;, &#171;Bug&#187;, &#171;Information&#187;) обрабатывается по-разному в процессе разработки. Простейший пример: тестировщик написал <em>Change Request,</em> а программист, не разобравшись, принялся воплощать изменения, считая их задачей&#8230;</li>
<li>Прежде чем описывать баг или задачу, попытайся написать ее так, чтобы она была понятна всем, в том числе и твоей маме, которая опасается компьютера. Представь себе, что эту задачу назначут твоему коллеге. Представь себе, что он будет ее читать в конце рабочего дня, сильной уставшим. В кого полетит первый камень с вопросом &#171;Ты тут вообще о чем пишешь?&#187;</li>
<li>Если возможно, указывай не только то, что надо сделать, но и причину по которой это надо сделать. Это поможет понять приоритетность задачи. Иногда это не очевидно, или очевидно, но не всем.</li>
<li>Не используй Mantis как personal task list. Он не для того предназначен.</li>
<li>Указывай версию софта, в которой была обнаружена проблема, и указывай версию, в которой это проблема была/будет решена.</li>
<li>Есть глубокий смысл в том, чтобы акаунты уровня <strong>Developer</strong> и <strong>Tester</strong> (по-умолчанию роли тестировщика в Mantis нет) были лишены возможности ставить статус <strong>Closed</strong>. Принципиально это должен делать менеджер проекта. Менеджер должен получать прошедшую весь девелоперский цикл задачу только в статусе <strong>Tested</strong>.</li>
<li>Администратор должен всячески <strong>связать Mantis с существующей в компании subversion</strong>-системой, как бы она ни называлась. В крайнем случае, следует добавить новый цифровой <strong>Custom Field</strong>, который будет являться обязательным для заполнени при переводе issue в статус Resolved.<strong></p>
<p>
</strong></li>
</ol>
<h2><strong>Подробная схема работы с Mantis</strong></h2>
<p><div id="attachment_973" style="width: 160px" class="wp-caption alignright"><a href="https://testitquickly.com/wp-content/uploads/2009/06/mantis_development_processes__bug_processing.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-973" class="size-thumbnail wp-image-973" title="Разруливание багов через Mantis" src="https://testitquickly.com/wp-content/uploads/2009/06/mantis_development_processes__bug_processing.jpg?w=150" alt="Разруливание багов через Mantis" width="150" height="141" /></a><p id="caption-attachment-973" class="wp-caption-text">Разруливание багов через Mantis</p></div></p>
<p>На картинке весьма подробная, но все-таки <strong>принципиальная</strong> схема.</p>
<p>
Подобные схемы разнятся от конторы к конторе, но это именно &#171;принципиальный подход&#187;.</p>
<p>Предупреждение: для того, чтобы работать с Mantis в таком вот режиме, следует повозиться с настройкой статусов.</p>
<h2><strong>Управление проектом через Mantis</strong></h2>
<p>Это фантастика. Дело в том, что Mantis сделан <strong>для разработчиков</strong>, и вовсе не предназначался для раздачи задач и составления графиков успеваемости.</p>
<p>Но менеджерам системы типа Mantis нравятся тем, что они могут в режиме нереального времени видеть статус каждой задачи в отдельности &#8212; она в работе, или по ней требуется больше информации, или она передана в тестирование, или она уже вообще закрыта. Поэтому все менеджеры на планете Земля пытаются использовать Mantis и как систему управления задачами. Иногда это получается успешно. Иногда нет.</p>
<p>Однако некоторые товарищи умудряются прикрутить к Mantis <a href="http://www.tiutiun.com/projects/time-tracking-table-mantis">систему учета времени</a>, которое было затрачено бравыми разработчиками на решение существующих проблем.</p>
<h2><strong>Второе и последнее обращение к нации</strong></h2>
<p>Итак, Mantis это инструмент для разработчиков.</p>
<p>Записи в подобной системе помогают основательно сказать &#171;<em>Эта проблема была решена еще в пятницу, 13-го числа &#8212; смотри логи</em>, <em>я там оставил комментарий о том, что изменения в коде зачекинены в ревизии 1478</em>&#8230;&#187;</p>
<p>Записи в подобной системе помогают сортировать список задач, которые войдут в очередной релиз.</p>
<p>Записи в подобной системе помогают не упустить из виду какие-то проблемы и/или задачи, не забыть и не спрятать.</p>
<p>
Дефолтный пароль администратора при первой установке Mantis:</p>
<p style="padding-left: 40px;">Username: <strong>administrator</strong></p>
<p style="padding-left: 40px;">Password: <strong>root</strong></p>
<p>Все вышесказанное относится к работе с баг-трекеров В ПРИНЦИПЕ, а не только к Mantis в частности.<strong></p>
<p>
</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2009/06/24/mantis-rules/feed/</wfw:commentRss>
			<slash:comments>18</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">972</post-id>	</item>
		<item>
		<title>Этот противный &#171;Can&#8217;t reproduce&#187;</title>
		<link>https://testitquickly.com/2009/01/05/cunt-reproduce/</link>
					<comments>https://testitquickly.com/2009/01/05/cunt-reproduce/#comments</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Mon, 05 Jan 2009 11:09:36 +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>
		<guid isPermaLink="false">http://testitquickly.com/2009/01/05/%d1%8d%d1%82%d0%be%d1%82-%d0%bf%d1%80%d0%be%d1%82%d0%b8%d0%b2%d0%bd%d1%8b%d0%b9-cant-reproduce/</guid>

					<description><![CDATA[Для самомнения вердикт &#171;Can&#8217;t reproduce&#187; не так страшен как &#171;Not a bug&#171;, но &#8212; тоже неприятно. Официальщина: &#171;Не могу воспроизвести&#187; означает только то, что работник, ответственный за починку дефекта, не смог его воспроизвести на билде, указанном в описании дефекта. Почему не смог? Из-за разницы в конфигурации компьютеровВ веб-отрасли это бывает реже, чем в десктопных приложениях.… <span class="read-more"><a href="https://testitquickly.com/2009/01/05/cunt-reproduce/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Для самомнения вердикт &#171;<strong>Can&#8217;t reproduce</strong>&#187; не так страшен как &#171;<strong>Not a bug</strong>&#171;, но &#8212; тоже неприятно.</p>
<p style="padding-left: 40px;"><em>Официальщина:</em></p>
<p>
&#171;<strong>Не могу воспроизвести</strong>&#187; означает только то, что работник, ответственный за починку дефекта, не смог его воспроизвести на билде, указанном в описании дефекта.</p>
<p>Почему не смог?</p>
<ol>
<li><strong>Из-за разницы в конфигурации компьютеров</strong>В веб-отрасли это бывает реже, чем в десктопных приложениях. Но бывает. Но редко.</li>
<li><strong>В описании бага отсутствуют какие-то шаги или нюансы</strong>А вот это очень серьезно, и идет прямым минусом в карму тестировщику. После ревью баг будет переоткрыт, что неприятно ни им, ни нам, ни этим, которые за всеми нами приглядывают.</li>
<li><strong>Дефект уже починен в более новом билде, а девелопер как раз и проверяет это дело на этот самом &#171;обновленном&#187;</strong>Это самое противное и требующее рассмотрения.</li>
</ol>
<p>Третья причина является проблемой из-за того, что входит в противоречие с официальным толкованием статуса &#171;Не могу воспроизвести&#187;:</p>
<p style="padding-left: 40px;">Дефект проверяется на билде, указанном в описании дефекта.</p>
<p>Дефект, зарегистрированный в версии 1.9, отложен и принят к</p>
<p>
рассмотрению в версии 1.12. Высока вероятность того, что в 1.12 он уже будет как-то починен? Если рассматривать ситуацию абстрактно, то вероятность весьма, весьма, гм, вероятна.</p>
<p>А если так, то является ли преступлением против системы треканья багов проверить исторический баг на новом билде, и заявить, что &#171;не могу воспроизвести&#187;?</p>
<p>Не является.</p>
<p>Но проверять дефект на обновленном билде, как правило &#8212; на текущем &#8212; это потенциальная брешь и проблема. Предположим, не воспроизводится. А ну как он, зараза, снова всплывет? Мы точно знаем, почему этот гадёныш не воспроизводится?</p>
<p>
Единственно верное решение:</p>
<p style="padding-left: 40px;">Поставить билд 1.9, воспроизвести, понять, отчего это произошло, и убедиться в том, что в билде 1.12 эта проблема несомненно решена. Убеждаться &#8212; в коде.</p>
<p>
И если дефект при проверке уже считается недействительным, нужно ставить ему статус &#171;Fixed&#187; с указанием билда, в котором баг считается починенным.</p>
<p>Что в действительности &#8212; возня со старым билдом может потребовать неоправданно много времени. &#171;Единственно верное решение&#187; может быть использовано только в том случае, если баг приоретизирован как &#171;серьезный&#187;.</p>
<p>Вышеизложенное написано в поисках уточнения: баг, который не воспроизводится на обновленном билде &#8212; он все-таки &#171;Fixed&#187;, или &#171;Can&#8217;t reproduce&#187;?</p>
<p>Продолжаем делать баги под видом функций, нужных конечным пользователям.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2009/01/05/cunt-reproduce/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">724</post-id>	</item>
		<item>
		<title>Тестировщик sapiens, невымирающий</title>
		<link>https://testitquickly.com/2008/10/29/testers-who-dontwant-to-die/</link>
					<comments>https://testitquickly.com/2008/10/29/testers-who-dontwant-to-die/#respond</comments>
		
		<dc:creator><![CDATA[Alexei Lupan]]></dc:creator>
		<pubDate>Wed, 29 Oct 2008 14:53:39 +0000</pubDate>
				<category><![CDATA[Книги]]></category>
		<category><![CDATA[Постановка мозгов]]></category>
		<category><![CDATA[Соображения]]></category>
		<category><![CDATA[Управляторское]]></category>
		<category><![CDATA[Фолксы]]></category>
		<guid isPermaLink="false">http://testitquickly.wordpress.com/?p=498</guid>

					<description><![CDATA[Четыре основных типа мышления тестировщика указаны в отличной и сложной книге &#171;Lessons Learned in Software Testing&#171;, в уроке №21 &#171;Good testers think technikally, creatively, critically and practically&#171;: Техническое мышление способность &#171;моделировать&#187; технологии, находить и понимать взаимосвязи, причины и следствия. Креативное мышление способность генерировать новые идеи, видеть и сознавать вероятное, а не только то, что видно.… <span class="read-more"><a href="https://testitquickly.com/2008/10/29/testers-who-dontwant-to-die/">Читать далее &#187;</a></span>]]></description>
										<content:encoded><![CDATA[<p>Четыре основных типа мышления тестировщика указаны в отличной и сложной книге &#171;<a title="Книга" href="http://www.amazon.com/Lessons-Learned-Software-Testing-Kaner/dp/0471081124/ref=pd_bxgy_b_text_b/103-2054040-0551001">Lessons Learned in Software Testing</a>&#171;, в уроке №21 &#171;<strong>Good testers think technikally, creatively, critically and practically</strong>&#171;:</p>
<ol>
<li style="list-style-type: none;">
<ol>
<li>
<h3>Техническое мышление</h3>
</li>
</ol>
</li>
</ol>
<p>способность &#171;моделировать&#187; технологии, находить и понимать взаимосвязи, причины и следствия.</p>
<ol>
<li style="list-style-type: none;">
<ol>
<li>
<h3>Креативное мышление</h3>
</li>
</ol>
</li>
</ol>
<p>способность генерировать новые идеи, видеть и сознавать вероятное, а не только то, что видно.</p>
<p>Там же приписка: такой тип ищет в исследуемом софте только те проблемы, о которых сможет себе вообразить. Может проигнорировать очевидное как неинтересное или несущественное.</p>
<ol>
<li style="list-style-type: none;">
<ol>
<li>
<h3>Критическое мышление</h3>
</li>
</ol>
</li>
</ol>
<p>умение оценивать идеи и делать далеко идущие выводы, правильные умозаключения.</p>
<ol>
<li style="list-style-type: none;">
<ol>
<li>
<h3>Практическое мышление</h3>
</li>
</ol>
</li>
</ol>
<p>умение воплощать идеи в конкретные дела. Умение применять инструменты и техники для тестирования.</p>
<p>Можно собрать команду из четырех тестировщиков, каждый из которых представляет одну из этих сторон. Психологические тесты (<a href="http://vsetesti.ru/412/" target="_blank" rel="noopener">пример</a>) на интервью могут помочь определить общий стиль мышления. Если все получается, то, вероятнее всего, это будет супер-командой, это будет &#171;стая фолксов&#187;<span style="color: #ff0000;"><sup>*</sup></span>, которая наводит страх на округу и девелоперов 🙂 Удивленные заказчики штабелями умирают от счастья, забыв подписать счета на оплату.</p>
<p>Можно попытаться оценить в самом себе самую сильную сторону из перечисленного, суметь правильно распознать ее, подумать о том, как &#171;подтянуть&#187; или &#171;ослабить&#187; остальные. И понять, как это сделать.Это самое неприятное и сложное дело, но с точки зрения персонального выживания предпочтительнее. Команды всегда мутируют и, в какой-то момент, разваливаются. Смертные мы&#8230;</p>
<p style="padding-left: 30px;"><span style="color: #ff0000;"><sup>*</sup></span>Термин &#171;фолкс&#187; образован из американского обращения folks (ребята), и подразумевает как &#171;член команды&#187;, так и &#171;волк&#187;.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://testitquickly.com/2008/10/29/testers-who-dontwant-to-die/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">498</post-id>	</item>
	</channel>
</rss>
