

<?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>Denis Martynkin &#187; qa</title>
	<atom:link href="http://danstudio.ru/tag/qa/feed/" rel="self" type="application/rss+xml" />
	<link>http://danstudio.ru</link>
	<description>Around the net // around the world</description>
	<lastBuildDate>Mon, 06 Feb 2012 09:40:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Всего-то полтора года прошло&#8230;</title>
		<link>http://danstudio.ru/2011/11/09/vsego-to-poltora-goda-proshlo/</link>
		<comments>http://danstudio.ru/2011/11/09/vsego-to-poltora-goda-proshlo/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 14:28:12 +0000</pubDate>
		<dc:creator>Denis Martynkin</dc:creator>
				<category><![CDATA[Личное]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[qa]]></category>

		<guid isPermaLink="false">http://danstudio.ru/?p=111</guid>
		<description><![CDATA[<a href="http://danstudio.ru/2011/11/09/vsego-to-poltora-goda-proshlo/" title="Всего-то полтора года прошло..."></a>Итак, господа и дамы, совершенно незаметно пролетели пол-года, и вот я вновь возвращаюсь к идее своего стэндэлона &#8211; никак не дает она мне покоя. Конечно, совсем отдельным сайтом не обойтись &#8211; музыка на саундклауде, фотографии на фликере, кое-что дублируется в &#8230;<p class="read-more"><a href="http://danstudio.ru/2011/11/09/vsego-to-poltora-goda-proshlo/">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://danstudio.ru/2011/11/09/vsego-to-poltora-goda-proshlo/" title="Всего-то полтора года прошло..."></a><p>Итак, господа и дамы, совершенно незаметно пролетели пол-года, и вот я вновь возвращаюсь к идее своего стэндэлона &#8211; никак не дает она мне покоя. Конечно, совсем отдельным сайтом не обойтись &#8211; музыка на <a href="http://soundcloud.com/asmodanus" title="Перейти" target="_blank">саундклауде</a>, фотографии на <a href="http://www.flickr.com/dmartynkin" target="_blank">фликере</a>, кое-что дублируется в <a href="http://withered-child.livejournal.com" target="_blank">ЖЖ</a> и <a href="http://kasoo.dreamwidth.org" target="_blank">ДВ</a> (в что-то в ФБ и ВК, простите меня, но это так <img src='http://danstudio.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ). Однозначно одно &#8211; проекту быть, и не одному. Через некоторое время открою два прекрасных сайта, на одном из которых я буду всячески хвалить (и тут же ругать) agile-методы разработки и все с ними связанное, а также Самый Главный и Любимый Багтреккер Всех Времен И Народов &#8211; Atlassian Jira; а вот на втором сайтике я буду выкладывать переводы статей James R Davis-а, известнейшего &laquo;голдовода&raquo; Америки &#8211; прекрасного человека, популярного не только из-за страсти к мотоциклам, но и благодаря написанию &laquo;библии безопасности&raquo; под названием &laquo;Motorcycle Tips &#038; Techniques&raquo;.</p>
]]></content:encoded>
			<wfw:commentRss>http://danstudio.ru/2011/11/09/vsego-to-poltora-goda-proshlo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Какие бывают баги: экзотика</title>
		<link>http://danstudio.ru/2009/02/02/exoticbugs/</link>
		<comments>http://danstudio.ru/2009/02/02/exoticbugs/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 16:42:48 +0000</pubDate>
		<dc:creator>Denis Martynkin</dc:creator>
				<category><![CDATA[Авторские статьи]]></category>
		<category><![CDATA[article]]></category>
		<category><![CDATA[qa]]></category>
		<category><![CDATA[qc]]></category>
		<category><![CDATA[theory]]></category>

		<guid isPermaLink="false">http://danstudio.ru/?p=35</guid>
		<description><![CDATA[<a href="http://danstudio.ru/2009/02/02/exoticbugs/" title="Какие бывают баги: экзотика"></a>1. Немного этимологии и энтомологии Давайте посмотрим попристальней на такое знакомое и (до боли?) родное слово БАГ. Происходит оно от английского слова Bug, означающего «насекомое». Есть еще много сторонних значений, в частности английское выражение «to go bugs» &#8211; сойти с &#8230;<p class="read-more"><a href="http://danstudio.ru/2009/02/02/exoticbugs/">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://danstudio.ru/2009/02/02/exoticbugs/" title="Какие бывают баги: экзотика"></a><p><b>1.	Немного этимологии и энтомологии</b></p>
<p>Давайте посмотрим попристальней на такое знакомое и (до боли?) родное слово БАГ. Происходит оно от английского слова Bug, означающего «насекомое». Есть еще много сторонних значений, в частности английское выражение «to go bugs» &#8211; сойти с ума, что легко кореллируется со вполне русским «тараканы в голове завелись». Также вспоминаются и «жучки на линии» (тоже, кстати, по-английски – bugs). И опять мы пришли к насекомым.</p>
<p>Еще в 1878 году, Томас Альва Эдисон (да-да, тот самый!) в письмах к своему соратнику Пускасу писал: <i>«It has been just so in all of my inventions. The first step is an intuition, and comes with a burst, then difficulties arise — this thing gives out and [it is] then that &#8216;Bugs&#8217; — as such little faults and difficulties are called — show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached»</i>. Тем же словом, инженеры называли и сбои радарной электроники во время второй Мировой Войны. Конечно, более распространена история о том, что в 1946 году разработка компьютера Марк-2 (Mark-II) были приостановлена из-за сбоя его функционирования, вызванного попаданием мотылька между контактов. Трупик мотылька был извлечен и приклеен к отчету липкой лентой с комментарием «First actual case of bug being found.» («Первый случай нахождения настоящего жучка»). Как нетрудно догадаться, примерно оттуда же «растут уши» и слова «дебаггер» (debugger) – буквально «избавитель от жучков».</p>
<p><b>2.	Виды багов.</b></p>
<p>Простейший (не как инфузория-туфелька, а самый простой для понимания, можно сказать «классический») баг – это несоответствие между ожидаемым результатом (ОР) и фактическим результатом (ФР). Разберем это на примере:</p>
<table align=center>
<tr align="center" bgcolor="#999999">
<th>Действия</th>
<th>Ожидаемый результат</th>
<th>Фактический результат</th>
</tr>
<tr align="center" bgcolor="#999999">
<td>Ввести в ячейку выражение «=2+2*2» (без кавычек) и нажать ENTER</td>
<td>6</td>
<td>8 <font color=red>БАГ!!!!</font></td>
</tr>
</table>
<p><small>(это, кстати, реальный баг старого Microsoft Excel – он не учитывал приоритета математических операций, по которому умножение имеет высший приоритет по сравнению со сложением)</small></p>
<p>Все просто. Ждем одно – получаем другое. Баг.</p>
<p>Я не буду перечислять все подвиды бага классического – от опечаток в данных и опечаток в коде до бесконечных циклов, от использования оператора присвоения вместо оператора проверки равенства до использования неинициализированной переменной, от состояния гонки (race condition) в мультипоточных приложения до переполнения буфера, и так далее, и тому подобное – все это достаточно обыденные и ясные явления. Обратимся к малознакомой экзотике.</p>
<p><b>2.1.	Гейзенбаг (Heisenbug)</b></p>
<p>Баг, названный в честь Гейзенбергского Принципа неопределенности – концепции  квантовой физики. Простым (хоть слово «просто» здесь и не очень применимо) примером подобного бага будет являться ошибка, проявляющаяся, когда программа запускается на исполнение в рабочей среде, но исчезающая, когда программу запускают в дебаггере.</p>
<p><b>2.2.	Борбаг (Bohrbug)</b></p>
<p>Тип бага, названный так в честь атомной модели Бора. В противоположность Гейзенбагу, он проявляется постоянно при одном и том же стечении обстоятельств. Вопрос в том, что весь набор обстоятельств бывет невозможно (или очень трудно) отследить.</p>
<p><b>2.3.	Мандельбаг (Mandelbug)</b></p>
<p>Назван в честь Бенуа Мандельброта, внесшего огромный вклад в теорию фракталов. Мандельбагами называют ошибки, чьи причины настолько сложны и неясны, что фактически кажутся хаотичными и не поддающимися описаниями. (ключевое слово «кажутся»). Подобное, может быть вызвано, например, медленной реакцией системы – то есть ошибка уже произошла, но об этом вы узнаете только через некоторое время, что сильно затруднит локализацию причин.</p>
<p><b>2.4.	Шрединбаг (Schroedinbug)</b></p>
<p>Шрединбаг назван в честь известного парадокса с кошкой Шредингера (или эта несчастная животина – кот?). Он заключается в том, что кто-нибудь читает код программы (работающей уже некоторое время) и восклицает «Да этого не может быть! Она просто не может функционировать!», после чего программа прекращает свое функционирование пока данная ошибка не будет исправлена. Будучи, казалось бы, абсолютно фантастической, данная ошибка попадается в реальности – спросите знакомых ветеранов- разработчиков, они подтвердят. Хотя, конечно, последующий анализ, как правило, позволяет отнести ошибку к разделам 2.1, 2.2 или 2.3, это удается не всегда.</p>
<p><b>2.5.	Фазы луны</b></p>
<p>На самом деле такой ошибки не существует – это популярная отговорка тех, кто не хочет (не имеет желания и/или времени) разбираться в сложных причинах возникновения ошибки. Тем не менее, в истории существует пара примеров, когда ошибки возникали буквально из-за фаз луны. Я не буду приводить здесь эти истории, надеясь, что никому из нас не придется работать со столь сложными устройствами. Тем не менее, в любом случае, хотелось бы предостеречь всех от неосторожных умозаключений и попросить быть более внимательными, настойчивыми и скрупулезными в своей работе.</p>
<p><b>2.6.	Статистический (более известный как количественный) баг</b></p>
<p>Баг возникающий при произведении программой большого количества каких-либо действий. Примером данной ошибки может служить запуск программы, которая должна равномерно расположить на плоскости некоторое количество точек. Если, например, при большом количестве точек программа не только неправильно располагает их, но и норовит расположить все на одной стороне плоскости (при этом до определенного количества точек работая прекрасно) – вуаля, количественный баг.</p>
<p><b>2.7.	Демонстрационный эффект.</b></p>
<p>Ну и конечно, известный всем, «эффект первого показа», не раз случавшийся и с вашим покорным слугой. Как только приходит пора показать, например, прекрасно функционировавший на тестовом стенде юнит, обязательно происходит что-то ужасное. Причны, как правило, тривиальны – пропуск «незначительных» тест-кейсов, невнимательность к деталям и неучтенные юз-кейсы. Опять же – будьте внимательней.</p>
<p>На этом я закончу краткий обзор багов, буду рад Вашим замечаниям и предложениям.</p>
<p>Автор,<br />
Мартынкин Денис</p>
]]></content:encoded>
			<wfw:commentRss>http://danstudio.ru/2009/02/02/exoticbugs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

