<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6159658124130963560</id><updated>2012-01-11T18:44:06.512+02:00</updated><category term='QA юмор'/><category term='Sergey_H'/><category term='Одесские фразы'/><category term='QA'/><category term='Репортинг'/><category term='Дерево тестов'/><category term='QTP'/><category term='програмульки'/><category term='организация фирмы'/><category term='команда'/><category term='тестирование'/><category term='конференции'/><category term='Тренировки ради'/><category term='кризис'/><category term='Одесса'/><category term='Сетевые технологии'/><category term='психология'/><category term='мыслишки'/><category term='автоматизация'/><category term='QA терминология'/><category term='собеседование'/><category term='вопросы на собеседовании'/><category term='идеи'/><category term='мотивация'/><category term='шаблоны тестирования'/><category term='перлы собеседования'/><title type='text'>IDDQA</title><subtitle type='html'>Старушка, везущая хворостовоз</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-5358625284048723156</id><published>2012-01-10T14:28:00.002+02:00</published><updated>2012-01-11T11:18:16.308+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA'/><category scheme='http://www.blogger.com/atom/ns#' term='тестирование'/><title type='text'>Внимание к деталям</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
На выходных столкнулся со статьёй о геймдизайне, где среди всего прочего (методы удержания игроков в игре) были изложены возможные причины успеха игр вообще (к сожалению не помню ссылки, добавлю издому).&lt;br /&gt;
Одна из возможных причин - не подходящая работа.&amp;nbsp;&lt;a href="http://ru.wikipedia.org/wiki/%D0%93%D0%BB%D0%B0%D0%B4%D1%83%D1%8D%D0%BB%D0%BB,_%D0%9C%D0%B0%D0%BB%D0%BA%D0%BE%D0%BB%D1%8C%D0%BC"&gt;Малкольм Гладуэлл&lt;/a&gt;&amp;nbsp;в книге "Гении и аутсайдеры" пишет, что чтобы работа удовлетворяла, она должна соотвествовать трём критериям:&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;&lt;b&gt;Независимость &lt;/b&gt;(&lt;span style="background-color: white; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 16px;"&gt;возможность принимать самостоятельные решения)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Сложность &lt;/b&gt;(&lt;span style="background-color: white; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 16px;"&gt;в смысле, что на работе вы занимаетесь не только тупым повторением одних и тех же действий)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Взаимосвязанность &lt;/b&gt;(&lt;span style="background-color: white; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 13px; line-height: 16px;"&gt;Связь между прилагаемыми усилиями и получаемым результатом (вы видите непосредственный итог ваших усилий))&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
Мало когда работа умудряется соотвествовать всем трём критериям.&amp;nbsp;
&lt;br /&gt;
&lt;div&gt;
В целом идея меня заинтересовала и я прочитал ещё одну книгу Гладуэлла "Переломный момент", в которой описываются причины "эпидемий молвы", мода, преступность и т.д.. Помимо всего прочего (довольного интересного), там есть глава "Сила обстоятельств".&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
В этой главе Мальком ссылается на криминалистов и утверждает, что увеличение тяжких преступлений связано с мелкими деталями, как-то разбитые стёкла и граффити на стенах:&lt;/div&gt;
&lt;blockquote class="tr_bq"&gt;
&lt;span style="font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: small;"&gt;&lt;span style="line-height: 16px;"&gt;"Разбитые окна" — это детище ума криминалистов Джеймса К. Уилсона и Джорджа Келлинга, которые утверждали, что преступность — это неизбежный результат отсутствия порядка. Если окно разбито и не застеклено, то люди, проходящие мимо, решают, что всем все равно и никто ни за что не отвечает. Вскоре будут разбиты и другие окна, и чувство безнаказанности распространится от здания с такими окнами на всю улицу, посылая сигнал всей округе. В городе с относительно небольшими проблемами, такими как граффити, мелкое вымогательство, как пишут эти криминалисты, — это такой же сигнал, как разбитые окна, призывающий к более серьезным преступлениям.&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&amp;nbsp;Более того, Мальком приводит данные, что метод "борьбы с деталями" был успешно применён в Нью-Йорке, в масштабе всего мегаполлиса.&lt;br /&gt;
У меня разу возникли ассоциации с качеством продукта. Ведь качество - величина субъективная (во всяком случае пока что), то есть это мера удовлетворённости заказчика. И всякие мелочи, вроде как грамматическая/орфографическая ошибка, перекошенный текст и подобные им, могут подспутно вызывать чувство дилетанства, даже если всё работает как часики (ну, иногда падает конечно )) ).&lt;br /&gt;
То есть, иногда (а может и чаще!) лучше пофиксить 10 лоу, чем один хай? И вот здесь, я прихожу к выводу, что все &lt;b&gt;известные&lt;/b&gt; дефекты в продукте должны быть пофикшены.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #6aa84f;"&gt;UPDATE из комментов:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Алексей Булат комментирует...&lt;/b&gt;&lt;br /&gt;
Вообще, надо стремиться к тому, чтобы пофиксить все известные баги. Но это задача становится маловероятной с увеличением размеров продукта и приближению к сдаче его заказчику. Всегда есть риск, пофиксив 1 дефект открыть 10 новых, и тем самым задержать сдачу.&lt;br /&gt;"Ноун ишьюс" будут всегда, с этим надо смириться, но в тоже время надо стремиться сделать их количество минимальным!!!&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;~AvA~ комментирует...&lt;/b&gt;&lt;br /&gt;
Всё верно, поэтому нужно создавать автоматизированные тесты.. юнит-тесты.. чтобы контролировать эффект на продукт в целом от практически любого изменения в коде.
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-5358625284048723156?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/5358625284048723156/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2012/01/blog-post.html#comment-form' title='Комментарии: 8'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/5358625284048723156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/5358625284048723156'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2012/01/blog-post.html' title='Внимание к деталям'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-3415614046847979965</id><published>2011-12-23T14:55:00.001+02:00</published><updated>2011-12-23T14:55:22.965+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA'/><category scheme='http://www.blogger.com/atom/ns#' term='QA юмор'/><title type='text'>Приколы нашего городка</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Предистория: Bughunt, событие когда участники пытаются найти как можно больше дефетов за определённое время. Суть в том, что заносится всё, что не нравится (дефект не дефект разбераются позже) и учавствуют все, от инженеров до менеджеров различных рангов и с различным уровнем знания продукта.&lt;br /&gt;
Ситуация: После разбора дефектов, тим-лидер программистов - отреджектил дефект Функциональному архитектору.&lt;br /&gt;
Rejection Reason: Not a defect, &lt;b&gt;by design (!).&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
Посмеялись )))&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-3415614046847979965?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/3415614046847979965/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2011/12/blog-post.html#comment-form' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/3415614046847979965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/3415614046847979965'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2011/12/blog-post.html' title='Приколы нашего городка'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-2057511254648113862</id><published>2011-11-07T14:35:00.001+02:00</published><updated>2011-11-07T14:36:10.688+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA'/><category scheme='http://www.blogger.com/atom/ns#' term='тестирование'/><category scheme='http://www.blogger.com/atom/ns#' term='команда'/><category scheme='http://www.blogger.com/atom/ns#' term='организация фирмы'/><category scheme='http://www.blogger.com/atom/ns#' term='идеи'/><title type='text'>Ротация тестировщиков в команде</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Суть идеи: "Сделать более гибкую команду тестирования за счёт ротации её членов".&lt;br /&gt;
Вариантов реализации может быть несколько, примеры:&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;Один человек постоянно помогает каждому члену команды.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
Ситуации, когда контента в одной области гораздо больше чем в другой пруд пруди. В результате &amp;nbsp;ответственный за перегруженную область. как это не удивительно - в запаре.&amp;nbsp;Помощник очень даже кстати.&lt;/div&gt;
&lt;div&gt;
В результате, такой "гибкий" человек - обладает полной (и свежей) информацией о состоянии, всех областей продукта.&lt;/div&gt;
&lt;div&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;Каждый человек в команде попеременно становится "гибким".&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Преимущества - каждый человек в команде полностью ведает состоянием всех фич в продукте.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
Однако, будут возникать ситуации, когда ответственный за область становясь "гибким" и помогая остальным - оставляет свою AOR (area of responsibility) без присмотра. Возникает "проскальзывание", что ни есть хорошо.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Техники тестирования "гибкими" мемберами:&amp;nbsp;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;ol style="text-align: left;"&gt;
&lt;li&gt;&lt;b&gt;Pair Testing.&lt;/b&gt; То есть скорость работы не увеличивается, за то возрастает качество и количество идей.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Работа делится&lt;/b&gt;. Увеличивается скорость работы + передача знаний/информации.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Кто-то пробовал нечто подобное? Может немного в другом исполнении. Поделитесь результатами :)&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-2057511254648113862?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/2057511254648113862/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2011/11/blog-post.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/2057511254648113862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/2057511254648113862'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2011/11/blog-post.html' title='Ротация тестировщиков в команде'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-7721159010748469853</id><published>2011-10-13T17:43:00.003+03:00</published><updated>2011-10-13T17:46:13.941+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA'/><category scheme='http://www.blogger.com/atom/ns#' term='Репортинг'/><category scheme='http://www.blogger.com/atom/ns#' term='идеи'/><title type='text'>Карта приложения</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Я люблю картинки больше чем текст. Были даже задумки создать уроки "в картинках", таким образом впечатвыть несколько страниц текста в зрительный образ, наверное это особенности &amp;nbsp;видения мира :)&lt;br /&gt;
Именно поэтому, хотя нельзя сказать наверняка, (с) Винни Пух возникла идея создавать feature report в виде карты приложения в цвете.&lt;br /&gt;
Что для этого нужно:&lt;br /&gt;
&lt;br /&gt;
&lt;ol style="text-align: left;"&gt;
&lt;li&gt;Создать карту приложения&lt;/li&gt;
&lt;li&gt;Определиться, какая часть более важная. Если это квадрат - то сверху можно помещать более важные фичи, если машинка - то двигатель и так далее.&lt;/li&gt;
&lt;li&gt;Создать легенду цветов, например: Красный - всё плохо, Жёлтый - плохо, но не всё, Зелёный - номано! Серый - ещё не готово, Белый - готово но не протестировано.&lt;/li&gt;
&lt;li&gt;Обновлять статус каждую итерацию.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Преимущества,&amp;nbsp;из тех, что вижу я:&lt;/div&gt;
&lt;div&gt;
&lt;ol style="text-align: left;"&gt;
&lt;li&gt;Статус нагляден, на одной картине всё - сколько ещё должно быть сделано, сколько ещё не протестировано, то, что протестировано в каком статусе.&lt;/li&gt;
&lt;li&gt;Чёткая&amp;nbsp;приоритезация фич&lt;/li&gt;
&lt;li&gt;Можно прикрутить автоматическое обновление статуса, в зависимости от количества дефектов.&lt;/li&gt;
&lt;li&gt;Можно сделать это всё средствами Excel&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Недостатки, из тех, что вижу я:&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ol style="text-align: left;"&gt;
&lt;li&gt;Карту надо кому-то создать&lt;/li&gt;
&lt;li&gt;Если обновление (автоматическое/ручное), надо чтобы кто-то это делал&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
У нас получился опыт внедрения почти такой вещи, только на более скромном уровне.. на уровне одной фичи.. очень классно! :) Кстати, можно сделать &amp;nbsp;общий статус по продукту (разбитого на фичи) и для каждой фичи такой же статус-картинку.&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
Вопрос: Кто-то чем-то подобным занимался? Кто-то может подсказать в чём, кроме Excel можно такое мутить?&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Спасибки :)&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-7721159010748469853?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/7721159010748469853/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2011/10/blog-post.html#comment-form' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/7721159010748469853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/7721159010748469853'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2011/10/blog-post.html' title='Карта приложения'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-2684108110385720511</id><published>2011-10-01T11:31:00.000+03:00</published><updated>2011-10-01T11:32:59.171+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Тренировки ради'/><category scheme='http://www.blogger.com/atom/ns#' term='Сетевые технологии'/><title type='text'>Web-протоколы</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
&lt;p&gt;Ознакомился с книгой Кришнамурти "Web-протоколы". Книга очень полезная для тех, кто хочет разобраться как создавались и развивались основные протоколы, использующиеся в Web.&lt;/p&gt;
&lt;p&gt;По современным меркам, материал довольно устаревший (издание 2002 года). Однако затрагивает много интересных моментов, над которыми стоит подумать - например, как измерить производительность части сети? Проблемы с утерянными пакетами, перенаправление пакетов по различным маршрутам в зависимости от загруженности и так далее.&lt;/p&gt;
Изложение простое, понятное. Под конец даже слегка&amp;nbsp;устаешь&amp;nbsp;от постоянного жевания одного и того же (американ стайл).&lt;br /&gt;
Автору (и переводчику) благодарен за то, что наконец-то сформировал картинку работы:&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;Протокола HTTP поверх TCP/IP&lt;/li&gt;
&lt;li&gt;Работу web-сервера и его взаимодействие с ОС&lt;/li&gt;
&lt;li&gt;Формирование заголовков запросов и ответов&lt;/li&gt;
&lt;li&gt;Что такое&amp;nbsp;&lt;b&gt;метод&lt;/b&gt;&amp;nbsp;(GET, POST и др)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
То, что стало для меня маленьким "открытием":&lt;/div&gt;
&lt;div&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;HTTP протокол не запоминает состояние и проблемы отсюда вытекающие&lt;/li&gt;
&lt;li&gt;Большой брат (и маленький и вообще кто хочет) следит (имеет такую возможность) за всем, что происходит в сети.&lt;/li&gt;
&lt;li&gt;Разработчики, в большинстве своём, плевали на стандарты.&lt;/li&gt;
&lt;li&gt;Самое слабое звено в сети как всегда -пользователь.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Технологии настолько сильно рванули вперёд, что это-таки устаревший материал. Надо идти дальше - Rich Internet Applications, AJAX, SilverLight, Flash, Flex.. Мама дорогая..&lt;/p&gt;
&lt;div&gt;
Посоветуйте, с чего двинуться дальше +)&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-2684108110385720511?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/2684108110385720511/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2011/10/web_01.html#comment-form' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/2684108110385720511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/2684108110385720511'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2011/10/web_01.html' title='Web-протоколы'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-3457882133120932901</id><published>2011-07-29T14:44:00.010+03:00</published><updated>2011-07-29T14:59:32.652+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='вопросы на собеседовании'/><category scheme='http://www.blogger.com/atom/ns#' term='собеседование'/><category scheme='http://www.blogger.com/atom/ns#' term='перлы собеседования'/><title type='text'>Собеседования (Перлы)</title><content type='html'>&lt;p&gt;Решил записывать перлы кандидатов :) Итак:&lt;/p&gt;&lt;br /&gt;
&lt;strong&gt;Пару фраз о своей работе на английском:&lt;/strong&gt;&lt;br /&gt;
 "I jobed in casino"&lt;br /&gt;&lt;br /&gt;
&lt;strong&gt;Три основных принципа объектно ориентированного программирования (собрано из ответов трех кандидатов):&lt;/strong&gt;&lt;br /&gt;
 - обобщенность - &lt;i&gt;типа все обобщено, никакой конкретики :) &lt;/i&gt;&lt;br /&gt;
 - наследие - &lt;i&gt;это всегда важно&lt;/i&gt;&lt;br /&gt;
 - полиформизм - &lt;i&gt;многоликий будда :)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;
&lt;strong&gt;Для чего нужен FTP:&lt;/strong&gt;&lt;br /&gt;
 - для сопряженности процессов - &lt;i&gt;фак мой мозг&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;
&lt;strong&gt;Что такое указатель (в C++):&lt;/strong&gt;&lt;br /&gt;
 - это метка по которой программа прекратит запрашивать новые данные&lt;br /&gt;&lt;br /&gt;
&lt;strong&gt;Вычислить n! (C++):&lt;/strong&gt;&lt;br /&gt;
&lt;p&gt;Весь синтаксис сохранен!&lt;/p&gt;&lt;br /&gt;
&lt;strong&gt; Вариант №1:&lt;/strong&gt;&lt;br /&gt;
&lt;pre&gt; main() {
 cin&gt;&gt;n1;
 cin&gt;&gt;n2;
 cin&gt;&gt;n3;
 factor = 1*n1*n2*n3;
 } &lt;/pre&gt;&lt;br /&gt;
&lt;strong&gt;Вариант №2:&lt;/strong&gt;&lt;br /&gt;
&lt;pre&gt;
 main(){
 for(n=1;n++) { 
 factor = n*n*1; }
 }&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-3457882133120932901?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/3457882133120932901/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2011/07/blog-post_29.html#comment-form' title='Комментарии: 10'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/3457882133120932901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/3457882133120932901'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2011/07/blog-post_29.html' title='Собеседования (Перлы)'/><author><name>Sergey_H</name><uri>http://www.blogger.com/profile/09878468403724479472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-6715777763334141461</id><published>2011-07-26T21:43:00.002+03:00</published><updated>2011-07-27T20:57:14.717+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='тестирование'/><category scheme='http://www.blogger.com/atom/ns#' term='вопросы на собеседовании'/><category scheme='http://www.blogger.com/atom/ns#' term='собеседование'/><title type='text'>Собеседования</title><content type='html'>Вот решил суммаризировать результаты более десятка проведенных собеседований - и выложить наиболее проблемные для кандидатов вопросы, а так же - их наиболее интересные ответы. Нужен был человек со знанием какого-либо объектно-ориентированного языка (под знанием имеется ввиду знание синтаксиса, теории ООП и умения написать несложный код).&lt;br /&gt;
&lt;ol&gt;Итак, самые сложные для кандидатов вопросы и их самые любопытные ответы:
&amp;nbsp;
&lt;li&gt;&lt;b&gt;Что такое полиморфизм&lt;/b&gt; - правильное определение я услышал всего один раз (от бывшего студента, который его не успел забыть), а вот объяснить что это на самом деле такое уже не смог никто.&lt;br /&gt;
Самые прикольные ответы:&lt;br /&gt;
- это возможность в программировании решать одну и ту же задачу разными способами (и был дан пример математической задачки, которую действительно можно решить по-разному)&lt;br /&gt;
- это множественное наследование (наследие, как сказал один из кандидатов) - самый короткий ответ :)&lt;br /&gt;
- это что-то связанное с виртуальными функциями (уже горячо :) ) - опа! услышав такое я даже заинтересовался кандидатом, но вот что такое виртуальная функция объяснить мне уже не смогли&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Что такое SSH&lt;/b&gt; (да, я знаю что это не связано с программированием) - ни один! из кандидатов не смог ответить на этот вопрос&lt;br /&gt;
Самые прикольные ответы:&lt;br /&gt;
- это веб-сервер о_0&lt;br /&gt;
- это программа&lt;br /&gt;
- это что-то связанное с linux (ага!)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Что такое структура данных&lt;/b&gt; (как тип данных в программировании) - всего один правильный ответ.&lt;br /&gt;
Самые прикольные ответы:&lt;br /&gt;
- это последовательность команд вводимых в компьютер о_0&lt;br /&gt;
- это последовательность вызовов функций в коде&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Что такое интерфейс &lt;/b&gt;(в программировании) - кое-то даже давал правильный ответ :)&lt;br /&gt;
Самые прикольные ответы:&lt;br /&gt;
- это что-то связанное с коллекциями (имелось ввиду коллекции в Java)&lt;br /&gt;
- это список параметров функции - тоже весьма короткое определение&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Отсортировать одномерный массив простых чисел &lt;/b&gt;- справился всего один! кандидат. Либо вычислить n!, где n - простое число - многие даже не начинали решать эту задачку, а сразу говорили, что не знают как это делать (правда один раз мне показали практически правильный код :) ).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Что такое xml и для чего он нужен&lt;/b&gt; - многие могли сказать, что это расширенный язык разметки - а вот что он размечает и чем он расширен - большинство ответить не могли (были правда и те, кто давал весьма корректные ответы на этот вопрос)&lt;br /&gt;
Самые прикольные ответы:&lt;br /&gt;
- xml используется для написания парсеров, когда не хватает возможностей html&lt;br /&gt;
- xml используется для структурирования информации и документов - чтоб она хранилась в упорядоченном виде&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Что такое статическая переменная (поле)&lt;/b&gt; - ни одного правильного ответа, большинство даже не пытались ответить&lt;br /&gt;
Самый прикольный ответ:&lt;br /&gt;
- статические поля нужны для того, чтоб к ним можно было обратиться извне класса&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;u&gt;Новинка!&lt;/u&gt;&lt;/b&gt; &lt;b&gt;Что такое инкапсуляция&lt;/b&gt; - некоторые кандидаты отвечают правильно, большинство просто не могут ничего ответить, но в последние пару дней мне стали говорить один и тот же прикольный ответ:&lt;br /&gt; 
- это когда один класс встроен в другой, другой в третий и т.д. - как матрешка (почему-то всем нравится упоминать матрешку :) )&lt;br /&gt;
&lt;/li&gt;
&lt;/ol&gt;
Вот так вот грустно - а среди кандидатов были: Delphi программисты из гос организаций (с опытом работы более 2х лет), php фрилансеры с солидным запасом готовых проектов, один Java ME разработчик, парочка выпускников вуза с красными дипломами.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-6715777763334141461?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/6715777763334141461/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2011/07/blog-post.html#comment-form' title='Комментарии: 24'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/6715777763334141461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/6715777763334141461'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2011/07/blog-post.html' title='Собеседования'/><author><name>Sergey_H</name><uri>http://www.blogger.com/profile/09878468403724479472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>24</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-8998307735115612722</id><published>2011-07-14T11:55:00.011+03:00</published><updated>2011-07-14T12:58:20.169+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='тестирование'/><category scheme='http://www.blogger.com/atom/ns#' term='конференции'/><title type='text'>IT JAM Conference</title><content type='html'>&lt;p&gt;А у нас тоже конференции всякие проходят! :-) &lt;/p&gt;
&lt;p&gt;You have an excellent opportunity to become a speaker or to share an experience with best speakers &amp; guru in IT-development &amp; gathering developers from all-over Ukraine!&lt;/p&gt;&lt;br /&gt;
&lt;ul&gt;The conference will consist of 6 blocks:
&lt;li&gt;&lt;strong&gt;Java&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;.Net&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PHP (different CMS and web-development in a whole)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mobile&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Testing&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Agile, Management and Trends&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;p&gt;The call for best speakers in Mobile, Java, web-development, .NET, QA has already opened &lt;a href="http://it-jam.com.ua/become-speaker"&gt;http://it-jam.com.ua/become-speaker&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can find more information about IT Jam on &lt;a href="http://it-jam.com.ua/"&gt;http://it-jam.com.ua/&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-8998307735115612722?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/8998307735115612722/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2011/07/it-jam-conference.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/8998307735115612722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/8998307735115612722'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2011/07/it-jam-conference.html' title='IT JAM Conference'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-2307987993589796644</id><published>2011-06-16T11:19:00.032+03:00</published><updated>2011-07-01T14:32:13.637+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='шаблоны тестирования'/><title type='text'>Шаблоны тестирования: "Файловый диалог"</title><content type='html'>&lt;p&gt;Решил сделать сборник "Шаблонов Тестирования" (можно ещё его на software-testing.ru потом закинуть).. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Суть:&lt;/strong&gt; Описать наиболее полно кейсы для тестирования стандартных диалогов, фишек и др. &lt;/p&gt;
&lt;p&gt;Наверняка, такое уже делалось, не страшно :) Если у кого есть дополнения и время, на их описание, буду благодарен за коменты. Может ресурс какой знаете с такого рода "шаблонами" - это будет вообще шик!&lt;/p&gt;
&lt;p&gt;Начну с "Файлового диалога", это который появляется, когда пытаемся сохранить файл. &lt;/p&gt;
&lt;p&gt;Сохранение - штука стандартная, некоторые делают прибамбасы к диалогу, но суть та же. &lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:bold;"&gt;Updated!&lt;/span&gt; &lt;a href="http://software-testing.ru/forum/topic/19800/"&gt;Спасибо участникам форума ;-)&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;
&lt;table width="650" align="left" border="0" RULES="ALL" FRAME="VOID"&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Issue&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Example&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Root disk&lt;/td&gt;&lt;td&gt;&lt;pre&gt;C:\&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Short path to a file&lt;/td&gt;&lt;td&gt;&lt;pre&gt;C:\tmp&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Relative path to a file&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Long path to a file (a lot of nested folders)&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UNC path&lt;br /&gt;
&amp;nbsp;1. Shared folder&lt;br /&gt;
 &amp;nbsp;&amp;nbsp;&amp;nbsp;1.1 Restricted permissions&lt;br /&gt;
 &amp;nbsp;&amp;nbsp;&amp;nbsp;1.2 Long path on other machine&lt;br /&gt;
&amp;nbsp;2. Administrative access (c$, d$ ..)&lt;/td&gt;
&lt;td&gt;&lt;pre&gt;\\machine_name\shared
\\machine_name\d$\tmp
\\192.168.1.2\shared
\\192.168.1.2\d$\tmp
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mapped disk&lt;/td&gt;&lt;td&gt;&lt;pre&gt;Z:\ = d:\temp\test
Y:\ = \\machine_name\d$
X:\ = \\192.168.1.5\shared&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Use the path with "http://, ftp://, ..."&lt;/td&gt;&lt;td&gt;&lt;pre&gt;http://google.com&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;System variables&lt;br /&gt;
&amp;nbsp;1. Standard&lt;br /&gt;
&amp;nbsp;2. User-Defined
&lt;/td&gt;&lt;td&gt;&lt;pre&gt;%TEMP%
%my_variable%&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Set file's filter to *.*&lt;/td&gt;&lt;td&gt;&lt;pre&gt;Try to open unsupported file&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Set file's filter to *.ext&lt;/td&gt;&lt;td&gt;&lt;pre&gt;Type full name of the file with another extension (image.jpg) &lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Archived with the password&lt;/td&gt;&lt;td&gt;&lt;pre&gt;If allowed&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;External Storage&lt;/td&gt;&lt;td&gt;&lt;pre&gt;HP Quality Center,.. if application supports this.&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;I18N (name of the file and folder)&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The name of the file is short&lt;br /&gt;
&amp;nbsp;1. Empty&lt;br /&gt;
&amp;nbsp;2. 1 symbol (digit/a-Z/special char)
&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The name of the file is long ( 16/32/64/128/256/... symbols )
&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Existed file&lt;/td&gt;&lt;td&gt;&lt;pre&gt;Save into (with the same name)&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;td&gt;Space in the file name&lt;/td&gt;&lt;td&gt;&lt;pre&gt;Prog  is My!  I ne  volnuyet&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The name with different special chars &lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;td&gt;File name with the specific for OS chars and reserved words&lt;/td&gt;&lt;td&gt;&lt;pre&gt;\\, ., .., reserved names&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;User's Permissions&lt;/td&gt;&lt;td&gt;&lt;pre&gt;Administrators, Guests, Users, Power Users&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Folder\File's Permissions&lt;/td&gt;&lt;td&gt;&lt;pre&gt;Read Only, Hidden, Normal&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Locked file&lt;/td&gt;&lt;td&gt;&lt;pre&gt;Opened by another application&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Corrupted file&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-2307987993589796644?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/2307987993589796644/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2011/06/blog-post.html#comment-form' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/2307987993589796644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/2307987993589796644'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2011/06/blog-post.html' title='Шаблоны тестирования: &quot;Файловый диалог&quot;'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-6787541350127137569</id><published>2011-04-01T17:10:00.002+03:00</published><updated>2011-04-01T17:28:56.925+03:00</updated><title type='text'>1 апреля</title><content type='html'>&lt;p&gt;День Смеха в Одессе всегда отмечается чуть более шумно и чуть более весело, чем в других городах. Столица юмора, как ни крути. Для приезжих - Дерибасовская, парад, костюмы, толпы. Для своих - более тонкие составляющие юмора, мягкий аромат улыбки.&lt;/p&gt;
&lt;p&gt;IT-сфера - область для "своих", никто извне не придёт посмотреть, а как тут у вас шутят.. а зря :) &lt;/p&gt;
&lt;p&gt;Одна из крупнейших софтверных компаний города не обделила вниманием конкурентов.. С утра, возле основных офисов, симпатишные "посланницы", облачённые в легкоузнаваемую символику небезизвестной у нас фирмы, предлагали всем работникам бесплатные чай-кофе и небольшие приглашения посетить их веб-сайт.. &lt;/p&gt;
&lt;p&gt;Ликование сотрудников, паника местных HR как нельзя хорошо вписались в атмосферу праздника. &lt;span style="font-weight:bold;"&gt;"Улыбайтесь, вы таки в Одессе!"&lt;/span&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-6787541350127137569?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/6787541350127137569/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2011/04/1.html#comment-form' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/6787541350127137569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/6787541350127137569'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2011/04/1.html' title='1 апреля'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-1016885077670454081</id><published>2011-02-15T17:15:00.000+02:00</published><updated>2011-02-15T17:15:24.197+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sergey_H'/><category scheme='http://www.blogger.com/atom/ns#' term='Тренировки ради'/><title type='text'>SHCameraApp (Windows Phone 7).</title><content type='html'>Вот уж никогда не думал, что смогу первым додуматься до чего-нибудь...&lt;br /&gt;
Собственно наткнулся на тему, о разработке альтернативной программы для фотографирования под WP7. По умолчанию WP7 не дает доступа к фотокамере, но &lt;a href="http://www.rudigrobler.net/blog/hacking-the-wp7-camera-the-basics"&gt;тут&lt;/a&gt; описан способ как это обойти.&lt;br /&gt;
Собственно &lt;a href="http://forum.xda-developers.com/showthread.php?t=935029"&gt;оригинальная тема на xda&lt;/a&gt;. Программа имеет один существенный недостаток - она умеет делать снимки только 640x480. Любопытства ради, потратил сегодня 40 минут и обошел эту проблему (никакой документации понятное дело нет - все методом тыка).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue;"&gt;namespace&lt;/span&gt; CameraApp&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;partial class&lt;/span&gt; MainPage : PhoneApplicationPage&lt;br /&gt;
&amp;nbsp;  &amp;nbsp; {&lt;br /&gt;
&amp;nbsp;       &amp;nbsp; &amp;nbsp; &amp;nbsp; PhotoCamera camera;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;       &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; MainPage()&lt;br /&gt;
&amp;nbsp;       &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp;           &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; InitializeComponent();&lt;br /&gt;
&amp;nbsp;           &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; camera = new PhotoCamera();&lt;br /&gt;
&amp;nbsp;           &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cameraVisualizer.SetSource(camera);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; camera.Initialized += new EventHandler(camera_Initialized);&lt;br /&gt;
&amp;nbsp;       &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;       &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;&amp;nbsp;private void&lt;/span&gt; button1_Click(object sender, RoutedEventArgs e)&lt;br /&gt;
&amp;nbsp;       &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;i&gt;&amp;nbsp; &lt;b&gt;//список всех разрешений для камеры&amp;nbsp; &lt;/b&gt;&amp;nbsp;&lt;/i&gt; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp;           &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; foreach (CaptureResolution res in camera.GetAvailableResolutions())&lt;br /&gt;
&amp;nbsp;           &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;br /&gt;
&amp;nbsp;               &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;listBox1.Items.Add(res.Height.ToString() + "x" + res.Width.ToString());&lt;br /&gt;
&amp;nbsp;           &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;i&gt;&lt;b&gt;//ну и выбираем самое высокое - для моего аппарата 5MPix&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;
&amp;nbsp;           &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;camera.SetResolution(camera.GetAvailableResolutions().Last());&lt;br /&gt;
&amp;nbsp;           &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;camera.CaptureImage();&lt;br /&gt;
&amp;nbsp;       &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;       &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;void&lt;/span&gt; camera_Initialized(object sender, EventArgs e)&lt;br /&gt;
&amp;nbsp;       &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp;           &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; camera.ImageAcquired += new EventHandler(camera_ImageAcquired);&lt;br /&gt;
&amp;nbsp;           &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; camera.ImageSavedToDisk += new EventHandler&lt;contentreadyeventargs&gt;(camera_ImageSavedToDisk);&lt;br /&gt;
&amp;nbsp;       &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;       &amp;nbsp; &amp;nbsp; &lt;span style="color: blue;"&gt;void&lt;/span&gt; camera_ImageSavedToDisk(object sender, ContentReadyEventArgs e)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;       &amp;nbsp; &amp;nbsp;{&lt;/contentreadyeventargs&gt;&lt;br /&gt;
&lt;i&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //собственно и все - неясно как до этого никто не допер&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //картинка сохраняется в IsolatedStorage приложения - дальше делай с ней что хочешь&amp;nbsp;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;
&amp;nbsp;           &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.Dispatcher.BeginInvoke(() =&amp;gt;&lt;br /&gt;
&amp;nbsp;           &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;br /&gt;
&amp;nbsp;               &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;listBox1.Items.Add(e.RelativePath);&lt;b&gt;//тут у нас имя файла&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;              &amp;nbsp;&amp;nbsp;           &amp;nbsp; &amp;nbsp; });&lt;br /&gt;
&amp;nbsp;       &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;       &amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;void&lt;/span&gt; camera_ImageAcquired(object sender, EventArgs e)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;i&gt;&amp;nbsp;&lt;b&gt;//тут чего-нибудь можно вывести...&amp;nbsp;  тоже через Dispatcher - иначе вылетит исключение&amp;nbsp;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;
&amp;nbsp;   &amp;nbsp; &amp;nbsp;}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Собственно сразу же про это и написал (&lt;a href="http://forum.xda-developers.com/showpost.php?p=11143466&amp;amp;postcount=25"&gt;тыц&lt;/a&gt;)... Вот она новая - система, все приколы познаются сейчас...&lt;br /&gt;
ЗЫ: &lt;a href="http://forum.xda-developers.com/showthread.php?p=11148912#post11148912"&gt;последствия моей работы&lt;/a&gt; - SHCameraApp&lt;br /&gt;
ЗЗЫ: автор оригинального проекта остановил разработку после моего релиза, жаль - именно он сподвиг меня на шевеление мозгами...&lt;br /&gt;
Если кто вдруг хочет поискать баги, так и не стесняйтесь.. ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-1016885077670454081?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/1016885077670454081/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2011/02/shcameraapp-windows-phone-7.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/1016885077670454081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/1016885077670454081'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2011/02/shcameraapp-windows-phone-7.html' title='SHCameraApp (Windows Phone 7).'/><author><name>Sergey_H</name><uri>http://www.blogger.com/profile/09878468403724479472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-2896870815624231775</id><published>2011-02-11T12:30:00.021+02:00</published><updated>2011-02-12T00:24:41.726+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Дерево тестов'/><category scheme='http://www.blogger.com/atom/ns#' term='идеи'/><title type='text'>Меньше слов - больше смысла</title><content type='html'>&lt;p&gt;Прочитал на software-testing.ru &lt;a href="http://software-testing.ru/forum/topic/17919/page__p__79487__hl__%2Bменьше+%2Bслов+%2Bбольше+%2Bсмысла__fromsearch__1#entry79487"&gt;обсуждение перевода&lt;/a&gt; статьи Роба Лэмберта "Меньше слов - больше смысла". Заглянул в саму &lt;a href="http://software-testing.ru/library/testing/general-testing/1164-less-is-more"&gt;статью&lt;/a&gt;. Автор проводит параллели между написанием прозы и тест-кейсов..&lt;/p&gt;
&lt;ol&gt;Тесты должны быть: 
&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Компактные&lt;/span&gt;. Само описание теста делать компактным, выбрасывая слова-паразиты, мусор, выжимая воду.&lt;/li&gt;
&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Направляющие&lt;/span&gt;. Делать тесты менее детальными, описывая лишь направление, куда необходимо посмотреть.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Пример для демонстрации Компактности &lt;span style="font-style:italic;"&gt;в прозе&lt;/span&gt; (практически классика): &lt;/p&gt;
&lt;blockquote&gt;Он кивнул своей собственной головой в знак согласия, подтверждая сказанное.&lt;/blockquote&gt;
&lt;p&gt;Достаточно написать - "Кивнул", то, что это его голова - понятно, то, что кивают в знак согласия - тоже не секрет и так далее.&lt;/p&gt;
&lt;ol&gt;Пример &lt;span style="font-style:italic;"&gt;в тестировании&lt;/span&gt; (based on true story):
&lt;li&gt;Дважды кликните на ярлыке программы "Облако", когда программа запустится, запишите новый скрипт&lt;/li&gt;
&lt;li&gt;Запустите процесс проигрывания скрипта, для проверки правильности записи и дождитесь пока процесс завершится&lt;/li&gt;
&lt;li&gt;Открывается репорт, проверьте все строки на предмет грамматических ошибок&lt;/li&gt;
&lt;/ol&gt;
&lt;ol&gt;Вариант согласно пункту Компактные:
&lt;li&gt;Запишите новый скрипт&lt;/li&gt;
&lt;li&gt;Проиграйте&lt;/li&gt;
&lt;li&gt;Проверьте грамматику в репорте&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Следуем второму пункту Направляющие, результат:&lt;/p&gt;&lt;blockquote&gt;"Проверить грамматику в репорте".&lt;/blockquote&gt;
&lt;p&gt;У нас в компании уже несколько лет внедряется идея "направляющих" тестов. Но что, если пойти ещё дальше? &lt;/p&gt;
&lt;p&gt;Не писать тесты? Именно, не писать) Рисовать! Не в смысле рисовать какие действия надо совершать, типа бежать и рисовать человечка, нет. Записать, что именно проверять в виде графа, дерева. На создание таких деревьев меня вдохновила програмулинка для записи идей при брэйншторме - XMind. Результат мне нравится простотой. Человек, взглянувший на такое дерево "сходу" может подкинуть парочку идей. &lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-nLg4Dfkkvzk/TVVfJiZM_4I/AAAAAAAAAEk/xkK3-CHlxxA/s1600/Authoriz.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 298px; height: 320px;" src="http://2.bp.blogspot.com/-nLg4Dfkkvzk/TVVfJiZM_4I/AAAAAAAAAEk/xkK3-CHlxxA/s320/Authoriz.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5572464731396833154" /&gt;&lt;/a&gt; &lt;p&gt;При текстовой записи мозг преобразовывает данные в образ и уже после - воспринимает. Неоднократно замечал, что при чтении книги рисуются картины, как-то представляется описываемое. Множество лишних слов с нулевой нагрузкой утомляют мозг, мы устаём. Именно поэтому у автора вышеупомянутой статьи (а также у всех хороших писателей) маниакальное стремление к уменьшению количества слов, оставить только значимые. С тестами тоже самое, а если человеку ещё и язык, на котором написаны тесты не родноооой..&lt;/p&gt;
&lt;p&gt;XMind - для составления тест-кейсов не очень удобен, отсутствуют циклические ссылки.. да и вообще не приспособлен. Может есть более удобные подобные программки, но даже здесь: можно сворачивать детали "узлов", получается санити; можно объединять тесты в общую схему, в идеале даже в полную схему продукта; можно каждый цикл регрессии отображать в графическом виде, по областям.. Может написать подобную програмулинку, заточенную под тест-кейсы? :) &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-2896870815624231775?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/2896870815624231775/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2011/02/blog-post.html#comment-form' title='Комментарии: 16'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/2896870815624231775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/2896870815624231775'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2011/02/blog-post.html' title='Меньше слов - больше смысла'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-nLg4Dfkkvzk/TVVfJiZM_4I/AAAAAAAAAEk/xkK3-CHlxxA/s72-c/Authoriz.png' height='72' width='72'/><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-6208546935015944946</id><published>2010-12-15T15:28:00.007+02:00</published><updated>2010-12-15T19:36:58.344+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='психология'/><title type='text'>Психология в тестировании</title><content type='html'>&lt;p&gt;Честно признаюсь, я не знаю, есть ли какие-то тренинги по умению правильно рассказать о проблеме или, может, негласная или гласная культура о том, как приносить «плохие» новости. Нужна ли такая культура? Из того, что я вижу – нужна, и чем дальше, тем острее ощущается её нехватка.&lt;/p&gt;&lt;p&gt;Изначально, когда программисты сами тестировали свои творения, баги найденные в процессе никаких особых психологических проблем (кроме времени, потраченного на поиск и исправление) не вызывали. Что-то упустил, пока проверял работу, нашёл проблему, изловил н-ое количество жучков и выпустил продукт. Кое-что нашли заказчики, но все знают, если написать программу без багов, то единственное, что она сможет – напечатать «Hello, World!», посему дефекты от заказчика хоть и не приятны, однако от них никуда не денешься,  способа кодировать без багов пока что не придумали.&lt;/p&gt;&lt;p&gt;Идеи «всё в одном флаконе» стали именно теми дрожжами, на которых программы разрослись, а их создание и поддержка превратилась в нетривиальную задачу. Ко всему прочему добавим бурное развитие компьютерных технологий, в результате чего варианты использования создаваемых систем увеличились на порядки. Где-то здесь родилось тестирование, как отдельный вид деятельности.&lt;/p&gt;&lt;p&gt;Появились первые тестировщики, и многие программисты искренне не понимали, зачем они нужны, только от работы постоянно отвлекают, задают кучу вопросов и приносят баги. Ну есть в программе баг, может заказчик никогда с ним и не столкнётся? Если столкнётся – пофиксим, зачем тестировщики? Не понимание. Это была первая проблема. &lt;/p&gt;&lt;p&gt;Те времена быстро прошли, важность предоставляемой информации оценили по достоинству, но сколько бы не кричали добрые языки о победе светлого, вечного и крайне полезного – тестирования, сколько бы не верили в это сами тестировщики, в большинстве своём ситуация остаётся прежней. Человек, приносящий дурные новости по умолчанию не может восприниматься адекватно.&lt;/p&gt;&lt;p&gt;Отторжение этой, не самой приятной части процесса разработки ПО, немного видоизменилось. Теперь программисты смотрят свысока на братьев своих меньших. Это отношение можно кратко охарактеризовать так: «Если ты весь такой умный, что ж в программисты не пошёл?».  Очень часто это в определённой мере справедливо – технический уровень подготовки QA ( и требования к кандидатам) ниже чем у программистов. В мануальном тестировании «чёрным ящиком» уж точно.  Это вторая проблема.&lt;/p&gt;&lt;p&gt;&lt;span style="font-style:italic;"&gt;Небольшое уточнение: Предвижу комментарии по типу, очень много тестировщиков имеют уровень подготовки не ниже чем у программистов. Согласен, что они есть, но чтобы очень много, не соглашусь.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;С давних времён известно, что не сама информация оставляет «неприятный осадок», а способ - как именно её преподнесли. Анекдот: «Матч по легкой атлетике СССР - США. Бегут двое. Американец победил. Советские газеты сообщили: "В беге на 100 метров советский спортсмен пришел одним из первых. Американский бегун был предпоследним"». Таких примеров можно привести множество.  Психологически нелегко принимать сведения, о допущенных ошибках и уж тем более от человека, кто технически менее грамотен. Это третья проблема.&lt;/p&gt;&lt;p&gt;Если борьба с первыми двумя проблемами ведётся давно и массово, то вот с третьей – загвоздка, не все считают это проблемой. Сколько бы не говорили про холодный профессионализм, отношения между людьми – провоцируют эмоции. Возможно, именно неправильный подход в отношениях тестировщик-программист, когда один указывает на проблему, а второй подсознательно (или в открытую) защищается, стоит за скрытыми причинами второй проблемы.&lt;/p&gt;&lt;p&gt;Пример из жизни, у нас цикл регрессии, захожу в кубрик программистов, здороваюсь со всеми, ребята отвлеклись, ждут, к кому пришёл с проблемой?&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Я: – Серёга, я к тебе.. &lt;/p&gt;&lt;p&gt;Программист: – Блииин, в какой фиче?&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;Но самое большое зло, это когда метрики, по которым оценивается работа тестировщика, всецело завязаны на багах, что постоянно провоцирует «гонку дефектов». Здесь борьба не на жизнь, а на смерть. Тестировщики прибегают к программистам и доказывают, что это неудобно, это баг, и приоритет у него высокий и так далее, какая уж тут психология.&lt;/p&gt;&lt;p&gt;По поводу психологических проблем от меня два совета:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Хвалить программистов тоже надо (когда есть за что), а не только приносить им баги. Писать письма с менеджерами в СС, о том, что было в фиче хорошо, а не только в какой области баги, а где их нет. Также лично приходить и рассказывать то, что вам действительно понравилось в реализации фичи.&lt;/li&gt;&lt;li&gt;Не стоит проводить все проблемы через баг-трекер, иногда стоит «подарить» их и, если есть возможность, проследить за исправлением. Так сказать для развития неуставных отношений, в конце концов мы ж не за статистику боремся, а за качество ;)&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Надеюсь, что тренинги для развития умения преподнести проблему в скором времени появятся, и сформируется «культура» как рассказать о баге, чтобы программист остался доволен -  хоть поговорить было приятно :)&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;&lt;b&gt;UPDATE из комментов:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;BEFORE:&lt;/b&gt; Но самое большое зло, это конечно же метрики :) Особенно, если они завязаны на количестве багов, что постоянно провоцирует «гонку дефектов».&lt;/p&gt;
&lt;p&gt;&lt;b&gt;AFTER:&lt;/b&gt; Но самое большое зло, это когда метрики, по которым оценивается работа тестировщика, всецело завязаны на багах, что постоянно провоцирует «гонку дефектов».&lt;/p&gt;
&lt;p&gt;Конечно же не имелось ввиду, что МЕТРИКИ - это зло.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-6208546935015944946?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/6208546935015944946/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/12/blog-post.html#comment-form' title='Комментарии: 11'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/6208546935015944946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/6208546935015944946'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/12/blog-post.html' title='Психология в тестировании'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-8421633434785430564</id><published>2010-10-09T22:06:00.015+03:00</published><updated>2010-10-09T22:35:21.631+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA'/><category scheme='http://www.blogger.com/atom/ns#' term='организация фирмы'/><category scheme='http://www.blogger.com/atom/ns#' term='идеи'/><title type='text'>Узкая специализация в тестировании</title><content type='html'>&lt;p&gt;После обсуждений &lt;a href="http://hvorostovoz.blogspot.com/2010/10/blog-post.html"&gt;предыдущей статьи&lt;/a&gt; решил расширить и углубить один из её постулатов. А именно: &lt;/p&gt;&lt;br&gt;
&lt;i&gt;&lt;u&gt;Разделение труда является причиной повышения общей производительности труда организованной группы специалистов (синергетический эффект) за счет:&lt;/u&gt;&lt;/i&gt;&lt;ul&gt;&lt;li&gt;Выработки навыков и автоматизма совершения простых повторяющихся операций&lt;/li&gt;&lt;li&gt;Сокращения времени, затрачиваемого на переход между различными операциями&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;
&lt;p&gt;Постулат был взят из википедии (что-то я начинаю её недолюбливать) как данность. В результате другие преимущества узкой специализации, хоть и были отражены в модели SQA-MQA-JQA, но их связь с этим постулатом осталась неявной.&lt;/p&gt;
&lt;p&gt;Собственно узкая специализация тестировщиков это:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Распараллеливание работ&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Позволяет выявить проблемы в важных областях – раньше. Как минимум потому, что работа над ними начинается раньше.&lt;/li&gt;&lt;li&gt;Распараллеливание позволяет "отвязать" часть специалистов ("дорогих" специалистов!) от состояния билдов (задержек или неработоспособности).&lt;/li&gt;&lt;br&gt;&lt;span style="color:#943634; font-weight: bold"&gt;Недостатки:&lt;/span&gt;&lt;li&gt;Нет взаимозаменяемости, некоторых людей тяжело быстро заменить (зато некоторых (и их большинство) – наоборот легко).&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Оптимизация выполняемых работ&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Выработка навыков и автоматизма совершения простых повторяющихся операций,  позволяет создавать шаблоны для типовых задач, ускорить и оптимизировать свою работу.&lt;/li&gt;&lt;li&gt;Отсутствует эффект переключения между задачами, что позволяет переходить количеству в качество.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Неравнозначность выполняемых работ &lt;/span&gt;&lt;ul&gt;&lt;li&gt;Позволяет распределить работу: Ответственную и сложную – матёрым, простую – новичкам. Также, упрощает рекрутинг.&lt;/li&gt;&lt;li&gt;Практически всё тестирование проекта зависит от одного человека, а не от 4-5-ти.&lt;/li&gt;&lt;br&gt;&lt;span style="color:#943634; font-weight: bold"&gt;Недостатки:&lt;/span&gt;&lt;li&gt;Нужно правильно распределить людей&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Важно учесть, что НЕ предлагается "разделить" обязанности, например, раньше программисты и кодировали и тестировали, а теперь давайте разделим, одни пусть кодируют, другие – тестируют. НЕ предлагается, изменить количество тестировщиков каким-либо образом. Идея – разделить задачи уже существующего отдела между уже нанятыми людьми, тем самым повысить их эффективность.&lt;/p&gt;&lt;br&gt;
&lt;p&gt;Если кто-то может добавить пункт, или подпункт, или недостатки буду рад посодействовать :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-8421633434785430564?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/8421633434785430564/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/10/blog-post_09.html#comment-form' title='Комментарии: 11'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/8421633434785430564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/8421633434785430564'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/10/blog-post_09.html' title='Узкая специализация в тестировании'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-6846046761118960541</id><published>2010-10-03T10:24:00.029+03:00</published><updated>2010-10-04T14:59:38.017+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA'/><category scheme='http://www.blogger.com/atom/ns#' term='организация фирмы'/><category scheme='http://www.blogger.com/atom/ns#' term='идеи'/><title type='text'>Рефакторинг фирмы, специализирующейся на тестировании</title><content type='html'>&lt;div align=right&gt;Описанное ниже, вряд ли подойдёт аджайл-проектам.&lt;br&gt;
Хочу на всякий случай попросить прощения у людей, кого заденут выражения "дешёвый" сотрудник, не корысти ради, а токмо что объяснить идею.&lt;/div&gt;&lt;br&gt;
&lt;p&gt;Когда встречаю объявления типа: "В связи с расширением штата сотрудников, требуется..", "Молодая  развивающаяся компания ищет.. " и подобные им, сразу представляю, как маленькое село вырастает в пгт, оно, в свою очередь, в город, а тот – в мегаполис.&lt;/p&gt;
&lt;p&gt;Всё хорошо, если развитие фирмы идёт по плану. Изначальная цель – именно "мегаполис", и на этапе становления предприняты меры по созданию "скелета", на который сейчас наращивается "масса" сотрудников. Ну, может не всё хорошо, но хотя бы многие проблемы не стали  неожиданностью.&lt;/p&gt;
&lt;p&gt;Картина кардинально меняется, если тихая, небольшая фирмочка, вдруг получает большое количество заказов, и руководство берёт курс на расширение штата. Вот здесь начинается основные весёлости: "Количество людей неуклонно растёт, но также, как снежный ком, наваливаются проблемы, которые ранее не стояли столь остро". Наступает момент "насыщения", когда следующий нанятый человек, привносит больше вреда, чем пользы.&lt;/p&gt;
&lt;p&gt;Такое себе – нагрузочное тестирование. Может стоит для анализа проблем фирмы нанимать перформанс инженеров? Почему бы и нет.. Интересно, были прецеденты?&lt;/p&gt;
&lt;p&gt;Психологи говорят, что многие проблемы человека уходят корнями в его детство, этот же допущение верно и по отношению к организациям:&lt;/p&gt;&lt;br&gt;
&lt;p&gt;&lt;u&gt;&lt;i&gt;Детство&lt;/i&gt;&lt;/u&gt;. Много воды утекло с тех пор, как руководство осознало необходимость проверки продукта до его продажи и постановило – создать отдел тестирования. Сначала наняли аж двух тестировщиков, а когда всплыло, что продукт не такой совершенный (как уверяли программисты) ещё к ним тим-лидера (ТЛ) и гастрабайтера, пусть тоже будет.  ТЛ распределил области ответственности между тестировщиками и понеслась, каждый пишет себе план и выполняет определённый объём работ, рапортует менеджеру, тот – дальше. Все при деле.&lt;/p&gt;
&lt;p&gt;&lt;u&gt;&lt;i&gt;Взрослые годы&lt;/i&gt;&lt;/u&gt;. Сейчас отдел тестирования разросся (занялись аутсорсингом тестирования), давно подняли баг-трекер, набрали ещё людей (общей суммой около ста!), сформировали команды, даже попытались автоматизировать часть продуктов (правда путного получилось мало, ну и ладно). Да только так и работают по-старинке: у каждого инженера своя область ответственности, работы много, и основное время съедает выполнение тестов.&lt;/p&gt;&lt;br&gt;
&lt;p&gt;Стоп! Вы заметили проблемы, которые тянутся из "детства"?&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span style="color:#943634"&gt;&lt;strong&gt;Где взять столько спецов?&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;У каждого своя область (допустим их пять) ответственности, а продукт один. Следовательно, чтобы его качественно оттестировать, надо пять спецов. Чем круче спец, тем лучше результат. Промежуточное решение, принятое во многих фирмах – на критичные область бросать совсем мега-пацанов, а на остальные области, людей попроще.&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#943634"&gt;&lt;strong&gt;Хорошие спецы хотят хороших денег.&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;Совсем обнаглели, не может же большая фирма сотням сотрудников, платить такие же зарплаты, какие предлагают мелкие стартапы, чтобы сразу купить себе мега-пацанов!&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#943634"&gt;&lt;strong&gt;Нерешённая вторая проблема порождает текучку.&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;С одной стороны не можем себе позволить платить запредельные суммы, с другой стороны тяжело отпускать мега-спецов, что ставит проект под угрозу. Пока найдёшь или обучишь нового, пока он втянется в процесс, а работу надо делать ещё вчера. Остаётся что? Обещать, обещать светлое будущее.&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#943634"&gt;&lt;strong&gt;Эффективность сотрудников.&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;Если одному сотруднику платят в два раза больше чем другому, то это ещё не означает, что он работает лучше или делает больше работы.&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#943634"&gt;&lt;strong&gt;Во многих случаях знания о продукте тяжело просто взять и передать новому человеку, оно "уплывает" вместе с покинувшим проект сотрудником.&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;Написание очень подробных тест-кейсов может решить проблему, но их создание требует много времени, которое лучше потратить на тестирование (самому себе писать подробные тесты нет смысла, обычно пишут тезисные подсказки, что не забыть проверить).&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#943634"&gt;&lt;strong&gt;Постоянное переключение между задачами:&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;Написание тест-плана, тест-кейсов, подготовка тестового окружения, непосредственное тестирование – не позволяет создать серьёзных наработок, в какой-то одной из этих областей.&lt;/li&gt;
&lt;li&gt;Всё это вместе взятое снижает общее  &lt;span style="color:#943634"&gt;&lt;strong&gt;качество оказанных услуг.&lt;/strong&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Модель работы тестировщика, пришедшую из "детства" фирмы, назовём "вертикальной моделью" и она порождает проблемы при увеличении штата сотрудников (список проблем см. выше, можете расширить и углубить). Схематично можно представить так:&lt;/p&gt;&lt;br&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VTSxONU3uR8/TKg1IgY9lbI/AAAAAAAAADI/Rofh-hpxYzY/s1600/pic1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 392px;" src="http://2.bp.blogspot.com/_VTSxONU3uR8/TKg1IgY9lbI/AAAAAAAAADI/Rofh-hpxYzY/s400/pic1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5523723363219772850" /&gt;&lt;/a&gt;&lt;br&gt;
&lt;p&gt;Естественно, в каждой фирме свои особенности, что-то из "серой" области переходит в "зелёную", не суть.&lt;/p&gt;
&lt;p&gt;Как сделать рефакторинг, чтобы пускай не полностью, но хотя бы частично решить проблемы, описанные выше?&lt;/p&gt;
&lt;p&gt;Давайте рассмотрим несколько "постулатов":&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;u&gt;&lt;i&gt;"Дорогой" сотрудник должен делать "дорогую" работу.&lt;/i&gt;&lt;/u&gt; Как только это правило нарушается – фирма теряет деньги. Если "дешёвый" сотрудник делает "дорогую" работу – фирма теряет в качестве.&lt;/li&gt;
&lt;li&gt;&lt;u&gt;&lt;i&gt;Разделение труда является причиной повышения общей производительности труда организованной группы специалистов (синергетический эффект) за счет:&lt;/i&gt;&lt;/u&gt;&lt;br&gt;&lt;span style="font-weight:bold;"&gt;a.&lt;/span&gt; Выработки навыков и автоматизма совершения простых повторяющихся операций&lt;br&gt;&lt;span style="font-weight:bold;"&gt;b.&lt;/span&gt; Сокращения времени, затрачиваемого на переход между различными операциями&lt;/li&gt;
&lt;li&gt;&lt;u&gt;&lt;i&gt;20% людей делают 80% работы &lt;/i&gt;&lt;/u&gt;- принцип Парето.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Основываясь на всех этих постулатах, создадим модель распределения труда тестировщиков, которую так и назовём "горизонтальная модель":&lt;/p&gt;&lt;br&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VTSxONU3uR8/TKg2as5fF3I/AAAAAAAAADg/RL0kb7oqm_c/s1600/pic2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 296px;" src="http://4.bp.blogspot.com/_VTSxONU3uR8/TKg2as5fF3I/AAAAAAAAADg/RL0kb7oqm_c/s400/pic2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5523724775326685042" /&gt;&lt;/a&gt;&lt;br&gt;
&lt;p&gt;&lt;span style="font-weight:bold;"&gt;Senior QA&lt;/span&gt; (SQA) – это "мостик" между командой тестировщиков и практически всеми участниками процесса разработки, он не выполняет тесты, всё его время направленно на подготовку непосредственно процесса тестирования. Он тесно общается с ответственным за создание требований к продукту, а когда они созданы (FA) и проверены (им же), внесены возможные коррективы, он переключается на структуру и дизайн будущего приложения. Общается с ответственными за это дело архитекторами и дизайнерами, пишет тест-план. После того, как разработчики приступили к кодированию, SQA занимается написанием тест-кейсов для всех фич продукта. Долгими вечерами общается с девелоперами (пивко?) для получения целостной картины работы приложения и написания подробных тест-кейсов. Знание различных методик тестирования позволяет оптимизировать набор тест-кейсов, а "подсмотренный" у программистов код – не пропустить ничего действительно важного. Такой подход к работе позволяет SQA целиком сосредоточиться на написании тест-кейсов, создания разнообразных шаблонов, как тест-планов, так и шаблонов тестирования стандартных диалоговых окон и др. Подобными шаблонами можно делиться с SQA других команд, а также черпать идеи из чужих шаблонов. &lt;/p&gt;
&lt;p&gt;Подробные тест-кейсы являются той квитэссенцией знания, выжатой из всеобъемлющего понимания продукта, опыта SQA и бест-парктисес соседних команд (либо мировых бест-практисес).&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:bold;"&gt;Middle QA&lt;/span&gt; (MQA) – этот человек уже своеобразный "мостик" между SQA и JQA. Он подготавливает возможности для выполнения тест-кейсов. Настраивает тестовое окружение: конфигурирует сервера, пишет необходимые AUTs (Applications Under Test), устанавливает ОС. Занимается автоматизацией (если решено какую-то часть продукта автоматизировать), изучает дополнительные программы (Selenium, QTP, AutoIt, BOM check, InputDirector и др.). После приобретения опыта в такого рода "тестировании", MQA уже накопил достаточное количество образов (ghost, acronis..) как ОС так и серверов. Он занимается оптимизацией использования машин и ресурсов. Подключается к выполнению тест-кейсов в случае необходимости.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:bold;"&gt;Junior QA&lt;/span&gt; (JQA) – по сути, именно этих людей называют тестировщиками. Их основная обязанность – выполнение тест-кейсов, описание багов, создание отчётов, проверка починенных дефектов. Для большей эффективности работы, они мониторят список всех дефектов (если над продуктом работает ещё команды, например, из других стран). И если кто-то думает, что SQA выполнит свои тесты лучше чем JQA, то это совсем не обязательно так.&lt;/p&gt;
&lt;p&gt;Принцип "Матрёшки": Человек приходит в тестирование без опыта. Знакомится с жизненным циклом дефектов, выполняет тест-кейсы (прошу заметить, очень грамотные тест-кейсы), тем самым обучаясь. Если может – дополняет их. Получает опыт. Из JQA переходит в MQA. Подготавливая тестовое окружение, он уже может учесть все нюансы, с которыми сталкивался в процессе тестирования. Получает новый опыт в программировании либо использовании программ автоматизации (если таковая присутствует на проекте), глубокие знания в конфигурировании серверов и операционных систем. Переходит на позицию SQA – тут так вообще не паханное  поле для развития, но так как он был и JQA и MQA, при написании тест-кейсов он учитывает не только теорию, но и весь свой предыдущий опыт.&lt;/p&gt;
&lt;p&gt;Естественно, не все смогут пройти путь от JQA до SQA, получается своеобразное "просеивание" кадров, это позволяет нанимать на позицию тестировщика людей, которые хотят попробовать себя в тестировании, возможно на данный момент не квалифицированны или существует серьёзные пробелы в знаниях, но ведь никогда не знаешь – кто идеальный SQA? Им будет у кого учиться, и если есть способности – фирма вырастит отличного специалиста.&lt;/p&gt;
&lt;p&gt;Теперь разберём, как решаются, описанные выше проблемы "вертикальной модели":&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;span style="color:#00B050"&gt;&lt;strong&gt;Где взять столько спецов?&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;Действительно спецом должен быть только SQA, фирме на помощь приходит принцип "Матрёшки", а также "просеивание" кадров, что позволяет легче найти такого сотрудника. Он – лицо команды (человек-команда). То есть, если в продукте пять областей ответственности, для качественного тестирования нам надо не пять мега-пацанов, а одного.&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#00B050"&gt;&lt;strong&gt;Хорошие спецы хотят хороших денег.&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;SQA – должен получать много. Фирма может себе это позволить, всё-таки он один, а не их пять на проект. Ни стартап ни большая фирма с "вертикальной моделью" организации не сможет "перекупить" нашего парня!&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#00B050"&gt;&lt;strong&gt;Текучка.&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;&lt;b&gt;a.&lt;/b&gt; Текучка SQA – крайне нежелательна, поэтому з/п у него серьёзная, конкурентная. Все усилия HR направлены в основном на них: Командировки на конференции, тренинги, бонусы, личные пожелания.&lt;br&gt;&lt;b&gt;b.&lt;/b&gt; Текучка MQA – неприятна, но не смертельна. HR сюда тоже заглядывают – бонусы, тренинги и др. &lt;br&gt;&lt;b&gt;c.&lt;/b&gt; Текучка JQA – вполне себе приемлемое положение, возможно даже первоначальный найм на контракт, скажем год, как себя покажет, так и примем решение, что делать с ним дальше (Если работа человеку понравится, он докажет, что годен быть MQA).&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#00B050"&gt;&lt;strong&gt;Эффективность сотрудников.&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:bold;"&gt;a.&lt;/span&gt; Каждый концентрируется только на своей области, что позволяет создавать оптимизирующие наработки (шаблоны, вспомогательные программы и др.).&lt;br&gt;&lt;span style="font-weight:bold;"&gt;b.&lt;/span&gt; Перебрасывание серьёзного спеца на работу с начальными этапами разработки (например, тестирование требований), позволяет "предупредить" многие баги и тем самым сэкономить время и деньги фирмы.&lt;br&gt;&lt;span style="font-weight:bold;"&gt;c.&lt;/span&gt; SQA не тестирует, то есть "дорогой" сотрудник не делает "дешёвую" работу.&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#00B050"&gt;&lt;strong&gt;Потеря знаний о продукте, вместе с уходом людей.&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:bold;"&gt;a.&lt;/span&gt; Во-первых, теперь люди представляющие "полную картину" продукта, редко уходят в другое место.&lt;br&gt;&lt;span style="font-weight:bold;"&gt;b.&lt;/span&gt; Во-вторых, все знания запечатлены в подробных тест-кейсах, в которых учтены и особенности продукта, особенности кода (или просто внутренней структуры приложения), методы оптимизации (например, pairwise). Так что, если вдруг фирма потеряет главного бойца последней линии обороны, как минимум будут проведены качественные регрессионные тесты. Некоторые продукты разрабатываются десятками лет и имеют уже 11-ю версию :)&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#00B050"&gt;&lt;strong&gt;Постоянное переключение между задачами.&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;&lt;span style="font-weight:bold;"&gt;a.&lt;/span&gt; Каждый сотрудник работает в своей области.&lt;br&gt;&lt;span style="font-weight:bold;"&gt;b.&lt;/span&gt; SQA переключается, но не туда-сюда по нескольку раз в неделю, а последовательно, от тестирования требований, к дизайну и разработки, потом на написание тест-кейсов, это нормально.&lt;/li&gt;
&lt;li&gt;&lt;span style="color:#00B050"&gt;&lt;strong&gt;Качество тестирования.&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;Качество тестирования повышается за счёт пунктов 3-6.&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-weight:bold;"&gt;Теперь преимущества, которые появляются как следствие перехода на другую модель работы:&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;На более качественные услуги фирма тратит меньше средств.&lt;/li&gt;
&lt;li&gt;Самый дорогой сотрудник работает вне зависимости от задержек билдов или каких-либо холдеров, так как не занимается непосредственным тестированием (MQA частично тоже). В случае задержек или проблем с билдом "простаивают" только "дешёвые" сотрудники.&lt;/li&gt;
&lt;li&gt;HR концентрируют усилия только на SQA и частично на MQA, что важно при большом количестве сотрудников, ибо никогда нельзя угодить большинству. В "горизонтальной модели" этого и не требуется.&lt;/li&gt;
&lt;li&gt;Упрощённый рекрутинг. Если написаны подробнейшие тест-кейсы (MQA помогает расписывать их, добавляет названия машин, ОС и серверов с логинами и паролями), машины с нужными ОС и серверами настроены, часть работы автоматизирована, то  прогонять оставшиеся тест-кейсы может любой человек с улицы, продвинутый пользователь ПК. А там уже курируем их, наблюдаем, делаем выводы.&lt;/li&gt;
&lt;li&gt;Фирма не вкладывается в JQA  и тем самым не "связывается" с сотрудником, и тем самым не теряет лишние деньги. JQA выполняют определённую работу, могут свободно изучать все процессы в фирме, присматриваться к работе более старших (по званию) коллег и решить, нравится – не нравится. Они выполняют грамотные тест-кейсы, тем самым уже самообучаясь. Имеют доступ к любым внутренним тренингам (проводимые MQA и SQA для каких-то своих нужд). Изучают баг-трекер, жизненный цикл дефектов, то есть основы, понравилось – пошёл дальше, здесь уже фирма их "подхватывает" и начинает активно помогать в дальнейшем развитии. По себе могу сказать, что первый год в новой сфере приносит столько нового, что никаких тренингов и не нужно, если работа нравится – прёт и само по себе. Человеку свойственно развиваться и обучаться.&lt;/li&gt;
&lt;li&gt;По з/п я склоняюсь к соотношению JQA/MQA/SQA : 1 / 2-2.5 / 4-6.&lt;/li&gt;
&lt;li&gt;Есть ещё такая идея – создать "буфер" исполнителей, например, цикл регрессии вообще не требует участия SQA, в основном это запуск автоматических скриптов (если такие имеются на проекте) и ими занимается MQA и ручной прогон набора тест-кейсов, для него можно подключить JQA из "буфера" на определённое время. Чем-то напоминает аутсорсинг :+) . Хотя вполне можно справляться и своими силами. Зависит от проекта.&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;span style="font-weight:bold;"&gt;Недостатки:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Долго думал над недостатками, но те, что смог придумать, решаются довольно быстро и просто. Кто, что придумает, сообщайте, будем дописывать ;).&lt;/p&gt;&lt;br&gt;
&lt;p&gt;&lt;span style="font-weight:bold;"&gt;ВЫВОДЫ:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;s&gt;Отделение мух от котлет&lt;/s&gt; Разделение труда позволяет сосредоточить серьёзных специалистов на работе, требующей знаний, опыта, английского языка (для общения) и много ещё чего, то есть на "дорогой" работе, на подготовке тест-плана и создании тест-кейсов, их приоритезации и оптимизации. Выполнение же самих тестов забирает много времени, но и может быть выполнено человеком (или несколькими) с достаточно "посредственными" знаниями и без опыта работы. То есть позволяет подключать людей с улицы, практически в любой фазе проекта.&lt;/p&gt;&lt;br&gt;
&lt;p&gt;&lt;b&gt;&lt;span style='color:#4bc44b'&gt;UPDATE:&lt;/span&gt;&lt;/b&gt;&lt;br&gt;
Как стало понятно из коментов, мой стиль изложения окончательно запутал думающие умы. Сравнение для большей наглядности, SQA - не является бюрократом, который сидит и следит как вся команда пашет.. :))) &lt;br&gt;
SQA фактически "рисует машину на бумаге" он её создаёт, а остальные только занимаются тем, что делают заготовки из железа, пластика (MQA) и собирают всё это вместе по шаблону (JQA). Когда прикручивается новая фича, SQA дорисовывает её, используя всякую там оптимизацию и приоритезацию, чтобы всем остальным было проще ;-) Вот функциональный архитектор у программистов, отдалённо напоминает SQA в отделе тестирования, можно и его обозвать бюрократом и наехать, мол ничего не делаешь хад!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-6846046761118960541?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/6846046761118960541/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/10/blog-post.html#comment-form' title='Комментарии: 26'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/6846046761118960541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/6846046761118960541'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/10/blog-post.html' title='Рефакторинг фирмы, специализирующейся на тестировании'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_VTSxONU3uR8/TKg1IgY9lbI/AAAAAAAAADI/Rofh-hpxYzY/s72-c/pic1.png' height='72' width='72'/><thr:total>26</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-5726756538895418898</id><published>2010-09-07T13:26:00.010+03:00</published><updated>2010-09-21T10:33:14.893+03:00</updated><title type='text'>Недокументированные функции</title><content type='html'>&lt;p&gt;Бывает звёзды становятся таким образом, что в окружённой нашим внимание программе, открываются новые возможности. Насколько это "хорошо", "плохо", "допустимо", "профессионально"? Сказать объективно сложно, найдётся множество мнений - мол, иногда с помощью таких вот "возможностей" можно сделать что-то, что не получается сделать обычным способом, моё мнение - это недопустимо. Таких функций (возможностей сделать непредусмотренное) просто не должно быть, это - дефекты.&lt;/p&gt;
&lt;p&gt;На запрос пользователей, у нас программа крашится, исправьте. Фирма-производитель, покопавшись в проблеме, заявляет - вы используете недокументированные функции, всё, вопрос закрыт. Если эти функции введены специально, будьте любезны оповестить о них пользователя (задокументировать, что делают, зачем), если нет - значит это недочёт, который надо править. Ставить ПО с неизвестными возможностями мне ещё ладно, а если у кого-то сверхценные данные топ-секрет и всё такое?&lt;/p&gt;
&lt;p&gt;Если функции не поддерживаются, значит они и не тестировались.. Верь после этого производителям ПО! :)&lt;/p&gt;
&lt;br&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style='color:#4bc44b'&gt;UPDATE:&lt;/span&gt;&lt;/strong&gt; Нашёл ответ на этот вопрос! Стандарт ISO 9126 категория Функциональное тестирование, под-категория Защищённость (security) - программа должна делать только то, для чего предназначена и ничего сверх того.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-5726756538895418898?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/5726756538895418898/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/09/blog-post.html#comment-form' title='Комментарии: 10'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/5726756538895418898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/5726756538895418898'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/09/blog-post.html' title='Недокументированные функции'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-310942529074301219</id><published>2010-07-01T18:47:00.012+03:00</published><updated>2011-02-15T16:30:17.291+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sergey_H'/><category scheme='http://www.blogger.com/atom/ns#' term='програмульки'/><title type='text'>Новая версия PinGUI, собираем идеи на будущее</title><content type='html'>&lt;p&gt;Итак, выложена обновленная версия программы - качайте с соответствующей странички ;)&lt;/p&gt;Список изменений таков:&lt;ol&gt;
&lt;li&gt;Пофикшено некорректное отображение Notes(надеюсь уже совсем пофикшено :) )&lt;/li&gt;
&lt;li&gt;Добавлена возможность управления службами (services) удаленной машины.&lt;/li&gt;
&lt;li&gt;Всякие мелочи...&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Далее список того, что планируется сделать в будущем (за некоторые пункты спасибо анонимным комментаторам) :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;В контекстном меню для параметров машины - Copy to Clipboard.&lt;/li&gt;
&lt;li&gt;multi-select для параметров внутри одной машины&lt;/li&gt;
&lt;li&gt;Горячие клавиши&lt;/li&gt;
&lt;li&gt;Поддержка *nix систем (через ssh)&lt;/li&gt;
&lt;li&gt;Ну и доделывать то, что пока не доделано до конца :)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Если у кого-то есть свои интересные предложения и замечания - милости просим в комменты ;)&lt;/p&gt;

&lt;p&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;Внимание!&lt;/strong&gt;&lt;/span&gt; Файл выложен в архиве с паролем (пароль 1234). Причина в том, что google &lt;strong&gt;ошибочно&lt;/strong&gt; принимает программу за троян (пруфлинк &lt;a href="http://www.virustotal.com/ru/analisis/7883ff7574267dd4232db635840bf79303a75b9c11e855ea5e19a2daade41f5e-1278000908"&gt;тыц&lt;/a&gt;) из-за возможности удаленно управлять сервисами. Для того, чтоб избежать бана - приходится паролить архив :(&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-310942529074301219?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/310942529074301219/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/07/pingui.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/310942529074301219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/310942529074301219'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/07/pingui.html' title='Новая версия PinGUI, собираем идеи на будущее'/><author><name>Sergey_H</name><uri>http://www.blogger.com/profile/09878468403724479472</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-842277784737650856</id><published>2010-06-23T09:46:00.003+03:00</published><updated>2010-06-23T09:58:17.319+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='програмульки'/><title type='text'>Обновление PinGUI</title><content type='html'>&lt;p&gt;Вышла новая версия PinGUI (спасибо Серёга! ;-) ).&lt;/p&gt;
&lt;p&gt;Список изменений&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Пофикшено некорректное поведение кнопок Remove selected и Edit selected&lt;/li&gt;
&lt;li&gt;Исправлено отображение заметок для оффлайн машин&lt;/li&gt;
&lt;li&gt;Добавлено имя пользователя для списка запущенных процессов&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Планируемые фишки:&lt;/p&gt;
&lt;p&gt;Создание новой вкладки со списком запущенных служб (services) на удалённой машине, с возможностью запускать и останавливать.&lt;/p&gt;
&lt;p&gt;Все пожелания и баги (которые у вас появятся или уже запощенны) будут рассмотрены в обязательном порядке. Добро пожаловать в коменты.&lt;/p&gt;
&lt;p&gt;Отдельная благодарность анонимным тестерам за проделанную работу ;)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-842277784737650856?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/842277784737650856/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/06/pingui_23.html#comment-form' title='Комментарии: 7'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/842277784737650856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/842277784737650856'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/06/pingui_23.html' title='Обновление PinGUI'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-34287646812261751</id><published>2010-06-21T10:19:00.006+03:00</published><updated>2010-06-22T14:23:37.230+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='програмульки'/><title type='text'>PinGUI - програмка для управления лабораторией машин</title><content type='html'>&lt;p&gt;Сотрудник на работе сотворил програмку для управления лабораторией машин. Творение в стадии Альфа-тестирования, для заинтересованных - баги или предложения новых фич публикуем в комменты ;-) Удобная штука, особенно когда лихорадочно ищешь свободную машину, или машину с нужным билдом, или какой-то конкретный снэпшот вмваре-машины. С целью предотвратить крики:&lt;br&gt;
- У кого есть предыдущий дроп??&lt;br&gt;
- У меня! &lt;br&gt;
- Какая ОСь?&lt;br&gt;
- Ммм, глянь сам, я не помню, vmrndapp01 - пароль стандартный.&lt;br&gt;
- А не, там 2008-я, Вопрос остаётся открытый! Что, ни у кого нет??&lt;br&gt;
&lt;p&gt;Ну или что-то типа такого:&lt;/p&gt;
- Удалённая машина при загрузке зависла, как её перегрузить? Или просто убить какой-то определённый процесс??&lt;br&gt;
- Как как, PinGUI-ем! ;) &lt;br&gt;
&lt;/p&gt;&lt;p&gt;Програмку можно найти слева в меню, название PinGUI. Или по ссылке &lt;a href="http://hvorostovoz.blogspot.com/p/propingui.html"&gt;PinGUI&lt;/a&gt;. Если кто-то хочет написать хоть какую-то документацию по програмке, так мы вам всегда рады. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-34287646812261751?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/34287646812261751/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/06/pingui.html#comment-form' title='Комментарии: 29'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/34287646812261751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/34287646812261751'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/06/pingui.html' title='PinGUI - програмка для управления лабораторией машин'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-3930188859209960021</id><published>2010-04-28T14:42:00.022+03:00</published><updated>2010-04-29T10:26:22.967+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='програмульки'/><title type='text'>Total Commander. Регулярные выражения</title><content type='html'>&lt;p&gt;Проверял ребрэндинг продукта. &lt;/p&gt;
&lt;p&gt;Одна их задач.&lt;/p&gt;
&lt;p&gt;Свойства *.dll, *.exe, *.ocx файлов продукта должны содержать корректные значения для селдующих элементов: &lt;ul&gt;
&lt;li&gt;Product version&lt;/li&gt;
&lt;li&gt;Product Name&lt;/li&gt;
&lt;li&gt;Copyright&lt;/li&gt;
&lt;li&gt;Company&lt;/li&gt;
&lt;li&gt;Author&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;
&lt;p&gt;Исходные данные:&lt;/p&gt;
&lt;p&gt;Тысячи файлов продукта с разнообразной глубиной вложенности каталогов и подкаталогов.&lt;/p&gt;&lt;br&gt;
&lt;strong&gt;Решение:&lt;/strong&gt;&lt;ol&gt;
&lt;li&gt;Сначала попытался использовать Explorer. Поколдовал с настройками колонок, и они таки начали выводить нужную инфу. Но возникла проблема: при переходе в другой каталог настройки сбрасывались. В добавок к этому безобразию, просматривать все каталоги и выписывать пути к файлам ну вообще не улыбалось. Explorer был предан анафеме. &lt;/li&gt;
&lt;li&gt;Выручил Total Commander и его поиск с использованием плагинов. Хвала shelldetails. Огромное количество условий поиска, из которых мне больше всего понравились регулярные выражения + возможность искать заданный текст внутри файлов каталога, прям бальзам на израненную несовершенством Explorera душу простого куа.
Однако и он не "5-й элемент" :(&lt;br&gt;
Пустые строки искать отказался.. Поспрашивал на форуме командера, народ с удивлением признал, что пустые строки shelldetails не ищет. Но даже это не умаляет достоинств столь качественной и удобной тулзы. &lt;/li&gt;&lt;/ol&gt;
&lt;span style="float:right"&gt;КуА-Минь.&lt;/span&gt;&lt;br&gt;&lt;br&gt;
&lt;p&gt;P.S: Commander также позволяет создавать пользовательский набор колонок и даже сохраняет его при сменах как каталогов так и дисков.&lt;/p&gt;&lt;br&gt;
&lt;p&gt;&lt;strong&gt;Ответ на вопрос из комментариев :) &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Как была решена проблема пустых строк?&lt;/p&gt;
&lt;p&gt;Руками, да, да, ручками..&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Отфильтровал вывод файлов ("Вид-&gt;Фильтр"), показывать только *.exe, *.dll, *.ocx&lt;/li&gt;
&lt;li&gt;"Вид-&gt;Пользовательский набор колонок", настроил колонки на нужную инфу (плагин shelldetails)&lt;/li&gt;
&lt;li&gt;Отсортировал файлы с пустыми данными&lt;/li&gt;
&lt;li&gt;Выделил их (вручную)&lt;/li&gt;
&lt;li&gt;Выполнил из командной строки cm_CopyFullNamesToClip (на форуме подсказали, сохраняет полные пути к выделенным файлам в буфер обмена)&lt;/li&gt;
&lt;li&gt;Вставил в блокнот, сохранил и перешёл в другой каталог&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Получилось дольше чем просто поиском, но не смертельно. Минут за 30 управился.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-3930188859209960021?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/3930188859209960021/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/04/total-commander.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/3930188859209960021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/3930188859209960021'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/04/total-commander.html' title='Total Commander. Регулярные выражения'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-2912276845480749666</id><published>2010-04-02T09:32:00.020+03:00</published><updated>2010-04-02T16:20:52.363+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA терминология'/><title type='text'>Приоритет дефектов</title><content type='html'>&lt;p&gt;Приоритет дефекта штука капризная и понимается QA и RnD по-разному. Потому как смотрит тестер глазами юзера в одну сторону, а девелопер своими программистскими - в другую.&lt;/p&gt; 
&lt;p&gt;Не ограничивая общности примем за основу такую классификацию дефектов:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;Critical (Show Stoper, QA Holder, Simple)&lt;/li&gt;
&lt;li&gt;High&lt;/li&gt;
&lt;li&gt;Medium&lt;/li&gt;
&lt;li&gt;Low&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Разберём шаги по определению важности бага &lt;strong&gt;с позиции QA&lt;/strong&gt;:&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;Critical QA Holder
&lt;dd&gt;Критикал Куа Холдер - второй по максимальности приоритет бага, блокирующий работу одного-двух QA. 
Например, тестер должен протестировать создание отчётов. Выбирает в меню (или иным каким способом) "Создать отчёт" и ничего не происходит, либо приложение крашится. QA не может начать тестирование, хотя остальные области работают. 
&lt;dt&gt;Critical simple
&lt;dd&gt;Обычный критический дефект - максимальный приоритет дефекта, связанный с потерей данных, вредом операционной системе, разнообразными крашами. Обязательно должен быть пофикшен до релиза продукта.
Например, при попытке распечатать отчёт из тестируемой программы, при не установленном принтере "виндовс" крашится, выбрасывая "blue screen". 
&lt;dt&gt;High
&lt;dd&gt;Хай - приоритет дефекта, связанный с нарушением логики работы программы, также критические дефекты с лёгким "обходным путём" (workaround). Должен быть пофикшен до релиза продукта.
Например, поиск по странице выдаёт неправильные результаты. 
&lt;dt&gt;Medium
&lt;dd&gt;Медиум - приоритет дефекта, связанный с неудобствами при работе с программой. В коммерческих продуктах их быть не должно. 
Например, не работает autocomplete фича в вижуал студии.
&lt;dt&gt;Low
&lt;dd&gt;Лоу - приоритет дефекта, связанный с незначительными неудобствами, мелкими недоработками. В серьёзных коммерческих продуктах их быть не должно. 
Например, текст описания слегка сдвинут. Пропущенная запятая в тексте хелпа.&lt;br&gt;&lt;br&gt;
Для полноты картины:
&lt;dt&gt;Show Stoper
&lt;dd&gt;Шоу Стопер - баг, с которым нельзя релизиться ни в коем случае. 
Например, проблемы с инсталяцией и нет никакого обходного пути. Программа не устанавливается и всё тут. В результате кастомеры не могут начать работу.
&lt;dt&gt;Regression defect
&lt;dd&gt;Регрессионный дефект - новый баг на старую функциональность. 
Version regression - дефекта не было в прошлой версии. Build regression - дефекта не было в прошлом билде.
Например, простенький калькулятор отлично складывал числа, его релизнули. Решили в новой версии прикрутить возможность считать логарифмы, он перестал складывать. Регрессия на версию.
&lt;/dl&gt;
&lt;p&gt;Определение приоритета бага имеет ещё один параметр: сколько человек могут с ним столкнуться.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-2912276845480749666?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/2912276845480749666/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/04/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/2912276845480749666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/2912276845480749666'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/04/blog-post.html' title='Приоритет дефектов'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-1213885977960484963</id><published>2010-03-30T20:36:00.001+03:00</published><updated>2010-03-30T20:39:18.067+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA юмор'/><title type='text'>Типа тестеры шутят :)</title><content type='html'>Если в программе пофиксить все баги, всё что она сможет - сказать "Hello World!" ))&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-1213885977960484963?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/1213885977960484963/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/blog-post_30.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/1213885977960484963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/1213885977960484963'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/blog-post_30.html' title='Типа тестеры шутят :)'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-731889589770686462</id><published>2010-03-27T08:55:00.011+02:00</published><updated>2010-03-27T10:25:38.408+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA терминология'/><title type='text'>Дефект (баг), спецификация, фича</title><content type='html'>&lt;dl&gt;
&lt;dt&gt;Defect (bug)
&lt;dd&gt;Дефект - не предусмотренный результат при работе программы. 
Обычно "не предусмотренный" имеет негативный оттенок, то есть: хотел получить одно, получил другое. Хотел, чтоб программа работала (для этого и запустил её), а она покрашилась, хотел получить сумму, а получил результат деления и так далее.&lt;br&gt;
Бывают ситуации, когда неожиданное поведение программы имеет позитивный оттенок, например, хотел получить таблицу, а программа не только отображает её, но и может сортировать столбцы. Такие баги могут расцениваться как фичи (features). 
&lt;dt&gt;Feature
&lt;dd&gt;Фича - отличительная особенность программы от других, вообще функционал программы - это совокупность фич.
Фича также отличительная особенность одной и той же программы от прошлого релиза. Например калькулятор. Функционал первой версии - умеет делать основные операции с числами. Фичи второй версии - умение брать логарифм и возводить в степень и так далее.&lt;br&gt;
Баги аля фичи. Рассмотрим пример выше. Программа должна выводить данные в виде таблицы. Девелоперы использовали стандартный компонент, в котором "зашита" возможность сортировки. С одной стороны - не предусмотренный результат при работе программы, с другой - ничего "плохого" в нём нет. Тестеры вправе сказать, что это дефект, такая "фича" - потенциальный источник проблем. Поэтому предусмотренность результата определяют спецификации.
&lt;dt&gt;Specification 
&lt;dd&gt;Спецификация - это документ, в котором пункт за пунктом расписано: что должна делать программа, какие формулы использовать, как выглядеть и так далее. Набор требований к будущему продукту.
Например, калькулятор. В спецификации может быть записано: результат работы должен выводиться в правом углу поля вывода результата. Поле вывода результата должно находиться между меню и кнопками.&lt;br&gt; 
Но обычно до таких подробностей не доходит, программы огромные. И программисты и QA их видят по-своему: одни изнутри, другие - снаружи. Потому и идёт борьба за качество продукта :)&lt;br&gt;
По спецификации QA составляют план тестирования.
&lt;dt&gt;Test plan
&lt;dd&gt;План тестирования - документ, в котором QA расписывает как, собственно, он собирается тестировать продукт. Операционные системы, на которых будут проводиться тесты, какие области планируется проверить (функционал, юзабилити, айтинэн, UI и т.д.), какие тест-кейсы будут использоваться и др.
&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-731889589770686462?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/731889589770686462/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/blog-post_27.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/731889589770686462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/731889589770686462'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/blog-post_27.html' title='Дефект (баг), спецификация, фича'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-8632642071862741552</id><published>2010-03-25T07:14:00.020+02:00</published><updated>2010-03-26T13:13:10.402+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA терминология'/><title type='text'>Терминология тестирования (MB, I18N, L10N)</title><content type='html'>Продолжаем-с :)
&lt;dl&gt;
&lt;dt&gt;MB chars (multi-byte chars)
&lt;dd&gt;MB chars (мультибайтовые символы) - символы, для отображения которых используется не один байт (как в стандартной ASCII), а несколько, обычно два. В английском алфавите - 26 буквы, ну ещё специальные символы, псевдографика, но и с учётом этого, 255 символов (1 байт) для кодировки  - вполне достаточно. &lt;br&gt;
Другое дело иероглифы, коих в китайском, японском и др. языках - десятки тысяч. Для таких случаев, где не хватает 255 значений для кодировки всех символов языка, используют мультибайтовые кодировки: один символ = двум байтам. &lt;br&gt;
Пример, back slash (\) в ASCII таблице имеет норме 92. Если мультибайтовый символ закодирован числом, скажем х015С = 1*256 + 92 = 348 , тогда программа не адаптированная к MB, начнёт разгребать всё это добро побайтово, и байт со значением 92 переведёт в обратный слэш. Ну и скорей всего тут и загнётся :)
&lt;dt&gt;I18N (Internationalization)
&lt;dd&gt;Айтинэн - тестирование на частичную адаптацию программы к чужой для неё локали и пользователю. Все меню, метки, любые сообщения или просто текст в программе остаётся родным (в подавляющем большинстве это английский), а любой ввод информации может быть на другом языке.
Например, видеоплеер, установленный на японскую винду. Все меню, текст в настройках и формат даты/времени в плеере остаётся на английском языке, интернационализированный плеер будет корректно:&lt;ol&gt;
&lt;li&gt;обрабатывать файлы с японским названием, &lt;/li&gt;
&lt;li&gt;открывать файлы, в пути которого есть папки названные по-японски&lt;/li&gt;
&lt;li&gt;корректно отображать японские субтитры, &lt;/li&gt;
&lt;li&gt;если можно писать комментарии к файлам в плеере - они тоже вполне могут быть японские.&lt;/li&gt;&lt;/ol&gt;
Проверяя айтинэн мы должны удостовериться, что функциональность плеера во всех перечисленных выше случаях не нарушается. Он работает точно так же, как если бы это была английская ОС. 
Как QA, мы должны пробовать вставить японские символы везде, где только возможно.
&lt;dt&gt;L10N (Localization)
&lt;dd&gt;Элтинэн - тестирование на полную адаптацию программы к чужой для неё локали и пользователю. Всё, меню, любой текст, формат даты/времени, все сообщения об ошибках или информационный должны быть на чужом языке.
Тестирование L10N полностью включает в себя I18N и плюс проверка, что всё, что в айтинэн оставалось на английском переведено на другой язык.
&lt;dt&gt;Hard-coded (hard-coding)
&lt;dd&gt;Хардкодед - означает, что данные находятся в самом коде. На данный момент различные ресурсы и данные стараются выносить в отдельные файлы. Там их легче модифицировать и особенно локализировать. Например, сообщение об ошибке, может быть вынесено в отдельный файл или жёстко прописано в самом коде. В первом случае все сообщения просто перевести на нужный язык и на этом успокоиться, во втором - нужно найти ситуацию, когда сообщение вызывается, описать девелоперу шаги воспроизведения, он в коде находит это сообщение и только потом переводит на нужный язык, или, что ещё лучше - избавляется от хардкода.
&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-8632642071862741552?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/8632642071862741552/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/i18n-l10n.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/8632642071862741552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/8632642071862741552'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/i18n-l10n.html' title='Терминология тестирования (MB, I18N, L10N)'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-1799901411193807505</id><published>2010-03-19T12:46:00.049+02:00</published><updated>2010-03-25T19:39:21.583+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA терминология'/><title type='text'>Терминология тестирования</title><content type='html'>&lt;p&gt;Я решил начать цикл объяснений терминологии QA в примерах. Прошу учесть, что моё понимание может отличаться от объяснений терминологии в книжках.&lt;/p&gt;
&lt;p&gt;Собственно приступим-с :) &lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;Build
&lt;dd&gt;Билд - сборка программы. Большие приложения пишутся командой (командами) разработчиков. Результаты их работы : код, иконки, картинки, купленные сторонние компоненты (third party) всё это собирается (компилируется) в билд. После внесения изменений в код (новые фичи, исправление дефектов), делается следующая сборка, следующий билд.
&lt;dt&gt;Test-cases (Use-Cases)
&lt;dd&gt;Тест-кейсы - основной инструмент тестера (если не считать мозг конечно). ТК - это руководство к действиям: сделать то-то, сравнить с ожидаемым результатом. Если полученный результат отличается от ожидаемого - оформляем дефект.&lt;br&gt;
Пример test-case для проверки корректности введённого возраста на сайте:&lt;ol&gt;
&lt;li&gt;Открыть страницу&lt;/li&gt;
&lt;li&gt;Ввести 25&lt;/li&gt;
&lt;li&gt;Нажать кнопку "Отправить"&lt;/li&gt;
&lt;li&gt;Проверить профайл&lt;/li&gt;&lt;/ol&gt;
Ожидаемый результат: Отображаемый возраст = 25&lt;br&gt;
ТК такого вида слишком детальны и не оставляют возможности для творчества, превращая QA в тестера. Более того, тратится слишком много времени на написание, постоянный апдейт тестов, так как программа (или сайт) модифицируется. Можно, не без основания, предположить, что два разных человека, выполнят этот тест одинаково, пройдут по одному и тому же пути. Такие тесты хороши для стажёров.&lt;br&gt;
Второй пример test-cases для проверки корректности введённого возраста на сайте:&lt;ol type="I"&gt;
&lt;li&gt;Попробовать ввести :&lt;ol&gt;
&lt;li&gt;Положительные числа &lt;/li&gt;
&lt;li&gt; 0&lt;/li&gt;
&lt;li&gt;Отрицательные числа&lt;/li&gt;
&lt;li&gt;Очень большие числа&lt;/li&gt;
&lt;li&gt;Буквы&lt;/li&gt;
&lt;li&gt;Специальные символы&lt;/li&gt;
&lt;li&gt;Очень длинную строку&lt;/li&gt;
&lt;li&gt;Ничего не вводить (также одиночный пробел)&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Попробовать ввести данные с помощью мыши (если есть такая возможность)&lt;/li&gt;
&lt;li&gt;Copy-paste&lt;/li&gt;&lt;/ol&gt;
Если расписать каждый из этих случаев как в первом типе, придётся попотеть :) Тест-кейсы в таком виде более похожи на подсказки, "что не забыть сделать". Явные преимущества - краткость, большое поле для экспериментов. Естественно, что все ожидаемые результаты тоже должны быть указаны (например, текст об ошибке), кроме очевидных. 
&lt;dt&gt;Sanity
&lt;dd&gt;Санити - пробное тестирование, проверка "готовности" продукта к работе. Цель санити - выявить наиболее критичные дефекты на ранних этапах работы с билдом. 
Что проверяется на санити: основные фичи продукта с установками по умолчанию (default settings). 
Пример - сделать санити на mspaint. Пришёл новый билд, QA устанавливает и проверяет основной бизнес процесс с дефолтными настройками: &lt;ol&gt;
&lt;li&gt;Создание нового документа&lt;/li&gt;
&lt;li&gt;Открытие документов в разных форматах (*.bmp, *.png, *.jpg)&lt;/li&gt;
&lt;li&gt;Сохранение документов в основных форматах&lt;/li&gt;
&lt;li&gt;Возможность использовать все инструменты рисования (pencil, select, line и др)&lt;/li&gt;
&lt;li&gt;Возможность использовать все инструменты редактирования (undo, redo, copy, cut и др)&lt;/li&gt;
&lt;li&gt;Распечатка&lt;/li&gt;&lt;/ol&gt;
Далее уже идёт либо проверка всего функционала, который существовал ранее (регрессия), либо тестирование новой фичи.
&lt;dt&gt;Regression
&lt;dd&gt;Регрессия - тестирование всего функционала продукта.
Пример - сделать регрессию на mspaint:&lt;ol&gt;
&lt;li&gt;Создание нового докумнта&lt;/li&gt;
&lt;li&gt;Открытие документов во ВСЕХ поддерживаемых форматах&lt;/li&gt;
&lt;li&gt;Сохранение документов во ВСЕХ поддерживаемых форматах&lt;/li&gt;
&lt;li&gt;Проверить работу всех инструментов рисования, изменяя все настройки: цвет, толщину линий, вид кисти, шрифты и так далее&lt;/li&gt;
&lt;li&gt;Проверка всех инструментов редактирования&lt;/li&gt;
&lt;li&gt;Проверка всего остального функционала (инверсный цвет, фон, всевозможные повороты изображения)&lt;/li&gt;
&lt;li&gt;Распечатка, распечатка с изменением настроек, предпросмотр печати&lt;/li&gt;
&lt;li&gt;Помощь (help topic)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;На каждую новую фичу пишутся тест-кейсы (должны писаться :), для регрессии используются все эти кейсы. &lt;/p&gt;
&lt;p&gt;Для чего нужно делать регрессию? "Прикручивание" новых фич, исправление дефектов или ещё какие манипуляции в коде, могут вызвать (и вызывают!) неправильную работу в ранее проверенных местах. Прежде чем продукт попадёт в руки пользователю, необходимо проверить всё, что было сделано ради блага народа.&lt;/p&gt;
&lt;dt&gt;Full
&lt;dd&gt;Фул - отдельный вид регрессии. Части программы, как то: орфография, поддержка I18N (internationalization) вряд ли будут затронуты при починке багов или разработке новой функциональности, поэтому иногда такие проверки (наряду с проверкой функционала), выносят (для экономии времени на обычную регрессию) в Full. Иногда в фул добавляют ещё какие-то части регрессии, в разных конторах по-разному.&lt;/p&gt;
&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-1799901411193807505?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/1799901411193807505/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/sanity-regression-full.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/1799901411193807505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/1799901411193807505'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/sanity-regression-full.html' title='Терминология тестирования'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-671703366403626870</id><published>2010-03-16T20:07:00.029+02:00</published><updated>2010-03-18T10:30:20.137+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA'/><title type='text'>Из грязи в князи или кто такие QA</title><content type='html'>&lt;p&gt;Решил рассказать: кто мы такие, чем занимаемся, как докатились до жизни такой, в общем, описать наши куёвые будни. И всё бы ничего, да я и сам-то толком не понимаю, что нас так выделяет из толпы. &lt;/p&gt;
&lt;p&gt;Мы делаем то, что мы делаем - осчастливливаем людей, препятствуя проникновению некачественных программных продуктов на винчестеры и DVD-диски.&lt;/p&gt;
&lt;p&gt;Наша основная задача - протестировать программу до того как её релизнут, и она попадёт в руки пользователей. &lt;/p&gt;
&lt;p&gt;Кратко, как всё происходит.&lt;ol&gt;
&lt;li&gt;Девелоперы (Developers) создают версию программы (билд).&lt;/li&gt;
&lt;li&gt;QA проверяют, что она устанавливается и работает (делает то, для чего собственно создавалась) корректно, проверяют на разных системах.&lt;/li&gt;
&lt;li&gt;QA отписываются о всех найденных проблемах.&lt;/li&gt;
&lt;li&gt;Девелоперы создают новую версию программы с починенными проблемами и новым функционалом.&lt;/li&gt;
&lt;li&gt;QA устанавливают билд, проверяют, что таки да починили старые проблемы, отписываются о новых.&lt;/li&gt;
&lt;li&gt;Так происходит, пока весь функционал не будет реализован, важные проблемы устранены, программа корректная и стабильная.&lt;/li&gt;
&lt;li&gt;Ура, релиз!&lt;/li&gt;&lt;/ol&gt;&lt;/p&gt;
&lt;p&gt;Областей проверки очень много: &lt;/p&gt;&lt;ol&gt;
&lt;li&gt;&lt;b&gt;Функциональность (Functionality)&lt;/b&gt;-  мы должны проверить, что программа делает именно то, что от неё требуется. Простой пример: пользователь суммирует два числа и ожидает, что программа выдаст именно сумму чисел, а не их разницу, сообщение об ошибке или ещё какую гадость. Такое бывает в процессе разработки и довольно часто!&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Юзабилити (Usability)&lt;/b&gt; - удобство использования. Необходимо обеспечить максимально комфортную работу с программой. Пример: программа для захвата видео с экрана, то есть запись видео. Мы, как пользователи, можем предположить, что для начала записи необходимо нажать на большую красную кнопку, которая расположена где-то слева, потому что это привычно. Если же кнопка записи квадратная, чёрная, и находится в правом нижнем углу, это кого угодно заставит задуматься о смысле жизни.&lt;br&gt; 
&lt;p&gt;Мы можем предположить, что начать запись можно: &lt;/p&gt;&lt;ul&gt;
&lt;li&gt;из обычного меню &lt;/li&gt;
&lt;li&gt;из контекстного меню&lt;/li&gt;
&lt;li&gt;есть "горячая" клавиша&lt;/li&gt;
&lt;li&gt;с помощью красной круглой кнопки на тулбаре&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Это удобно, может я всю жизнь работаю с клавой и мышь не признаю принципиально? Нате вам горячую клавишу. &lt;/p&gt;
&lt;p&gt;Странно и не юзабельно смотрится программа, в которой чтоб начать записывать надо зайти в меню, выбрать какой-то пункт, появится окошко с кучей каких-то настроек, далее диалог подтверждения и вот только тооогдааа.. Или наоборот, все настройки вынесены на тулбар, смотришь и теряешься в обилии кнопочек, выпуклостей и впуклостей.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;UI&lt;/b&gt; - проверить как это чудо вообще выглядит. Программа должна быть выполнена в одном стиле. Одна цветовая гамма, одинаковый размер кнопочек, одинаковые шрифты, выравненные чекбоксы в настройках и так далее, это стильно, профессионально, узнаваемо.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Совместимость (Compatibility)&lt;/b&gt; - влияние данной программы на другие апликации в системе. Программа не должна мешать жить соседям (другим программам) и не кричать, что раз плеер для просмотра порно-фильмов запущен и уже использует ass.dll, то я не буду работать.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Стресс тестирование (Stress)&lt;/b&gt; - реакция программы на не предусмотренные события (перезагрузка, остановка сервака, резкая нагрузка и др.). Пример: создайте в ворде документ, измените его как-то и, не сохраняя, инициируйте перезагрузку системы. Винда захочет закрыть ворд, а тот в свою очередь спросит пользователя, сохранять ли файл. Продумано? Продумано!&lt;br&gt;
&lt;p&gt;Или ещё пример, клиент-серверное приложение, клиент настолько затрахал запросами сервер, что у того случился перегруз с выпадением в осадок. Так вот, тестеры должны удостовериться, что в таком случае клиент не станет ждать с отвисшей челюстью, ответа сервера или не закрашится от незавершённого SQL-запроса, а по тайм-ауту пожалуется пользователю на молчание сервера и попросит совета, как жить дальше и что делать.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;И так далее.&lt;/p&gt;
&lt;p&gt;Как происходят проверки:&lt;/p&gt;
&lt;p&gt;Самое главное правило - QA должен знать, что делает программа, её основные фичи. Как он это узнает, дело десятое. Для этого есть спецификации, которых обычно нет и здравый смысл, которого тоже часто нет. &lt;/p&gt;
&lt;p&gt;Далее, наметить, а лучше расписать план тестирования и какие случаи обязательно должны быть проверены.&lt;/p&gt;
&lt;p&gt;Само тестирование - это сравнение того, что должна делать программа, с тем, что она на самом деле делает, это и есть наша работа. То есть, опытный QA знает (спецификации, общение с разработчиками, личный опыт в конце-концов), что он должен получить в результате нажатия на эту кнопку или ввода именно этих данных. &lt;/p&gt;
&lt;p&gt;У новичков же часто ситуация, когда он знает точно, что он не должен получить. Например, краш. Программа не должна неожиданно завершать работу, ни при каких условиях (кроме конца света) и потыкав по кнопочкам, повводив всякие отрицательные числа, запостив несколько крашей, он считает, что протестировал новую фичу. Та фиг там! Пользователь должен пройтись по основному пути использования программы и получить желаемый результат, это проверяется в самом начале. Всегда.&lt;/p&gt;
&lt;p&gt;Чем более профессиональный QA, тем больше ПОЛЕЗНЫХ тест-кейсов он может придумать, следовательно более полно проверить работоспособность. Полезность случаев тестирования (тест-кейсов), определяется применимостью их к программе с оглядкой на её специфику.&lt;/p&gt;
&lt;p&gt;Вот как-то так и работает вся эта кухня ;-)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-671703366403626870?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/671703366403626870/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/qa_16.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/671703366403626870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/671703366403626870'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/qa_16.html' title='Из грязи в князи или кто такие QA'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-3181920678438010346</id><published>2010-03-13T21:35:00.012+02:00</published><updated>2010-03-14T11:47:27.652+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='програмульки'/><title type='text'>Куатая помощница</title><content type='html'>&lt;p&gt;&lt;a href="http://hvorostovoz.blogspot.com/p/blog-page.html"&gt;InputDirector&lt;/a&gt; - первая програмулинка оформлена! Да будет ваше тестирование удобней.&lt;/p&gt; &lt;span style="float:right"&gt;Ку-А-Минь.&lt;/span&gt;&lt;/br&gt; &lt;p&gt; К ней также можно пробраться: слева, где страницы указаны ;-)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-3181920678438010346?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/3181920678438010346/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/blog-post_13.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/3181920678438010346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/3181920678438010346'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/blog-post_13.html' title='Куатая помощница'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-1306563663714149210</id><published>2010-03-06T08:38:00.048+02:00</published><updated>2010-03-11T08:04:00.186+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='мотивация'/><title type='text'>Оно мне надо?!</title><content type='html'>&lt;p&gt;Если вы думаете, что именно лень - двигатель прогресса, то позвольте с вами немножЕчко не согласиться. Верить в это всё равно, что заявлять: я родился, потому что мне так захотелось. &lt;/p&gt;
&lt;p&gt;Никто не спрашивал, что там нам хочется, зато в нагрузку с появлением на свет привязали кучу потребностей, и именно они - двигают прогресс.&lt;/p&gt;
&lt;p&gt;Поначалу всё выглядит замечательно: закричал - принесли поесть, закричал - окружили вниманием. Потом взросление, независимость и потребности теперь - наши личные хлопоты, мы идём работать, чтобы удовлетворить их: заработать денег на еду (потребность тела), получить власть, признание, доказать, что ты лучший (потребность ума), проявить творчество (потребность души).&lt;/p&gt;
&lt;p align=center&gt;&lt;b&gt;Employees&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Такое состояние дел рождает два типа работников:&lt;/p&gt;
&lt;p&gt;1-й тип:&lt;/p&gt;
&lt;p&gt;Получает деньги, чтобы удовлетворить потребности где-то в другом месте. Самомотивация отсутствует. Для него работа - "вырванные годы", потерянное время, своеобразная каторга. Ему работа в тягость.&lt;/p&gt;
&lt;p&gt;2-й тип:&lt;/p&gt;
&lt;p&gt;Получает деньги и удовлетворяет часть потребностей на работе. Для него работа - такая же жизнь как и дома или где-то в другом месте. Может перерабатывать по времени и по объёму. Часто получает кайф от того, что делает (от удовлетворения потребностей). Ему работа в радость.&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_VTSxONU3uR8/S5NSoFaDoPI/AAAAAAAAAAs/1MrF_cUqA7M/s1600-h/%D0%91%D0%B5%D0%B7%D1%8B%D0%BC%D1%8F%D0%BD%D0%BD%D1%8B%D0%B9.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 186px;" src="http://1.bp.blogspot.com/_VTSxONU3uR8/S5NSoFaDoPI/AAAAAAAAAAs/1MrF_cUqA7M/s320/%D0%91%D0%B5%D0%B7%D1%8B%D0%BC%D1%8F%D0%BD%D0%BD%D1%8B%D0%B9.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5445787223020773618" /&gt;&lt;/a&gt;
&lt;p&gt;Описанные типажи - это крайности, к тому же они не проявляют врождённые качества человека, а скорее указывают на соответствие - стремлений человека и занимаемой должности (у каждого есть то, что получается лучше всего, иногда это "скрытые" таланты). Второй тип, находясь не на "своём" месте, запросто может стать человеком первого типа и наоборот.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Собеседование.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Собеседование - первая точка соприкосновения между возможным сотрудником и эффективностью компании.&lt;/p&gt;
&lt;p&gt;HumanResource (HR) - а это первый фильтр, который просеивает поток желающих, отделяя зёрна от плевел. Априори, эффективность компании зиждется на сотрудниках второго типа (управляющее звено тоже сотрудники, и тоже делятся на эти два типа). Поэтому грамотный HR обязан иметь представление о том, чем придётся заниматься собеседуемому человеку, представлять какой системой ценностей руководствуются самые эффективные сотрудники в этой сфере.&lt;/p&gt;
&lt;p&gt;Так как редко кто толком понимает: кто же такие HR, поэтому частенько это люди, напичканные популярной литературой, как-то "Обязательный курс для профессионала кадровой работы", "Отбор и найм персонала: технологии тестирования и оценки" и т.п. и не то, что никогда этим не занимались, так ещё и абсолютно не представляют, чем вообще будет заниматься испытуемый. То есть задавая стандартный вопрос: "Почему вы пришли именно к нам?" такой HR удовлетворится практически любым ответом, если о таком ответе было упоминание в прочитанных книгах. В то время как человек второго типа, нанимаясь в куа, ответит что-то типа: "Я любознательный человек, постоянно что-то проверяю, нахожу новые пути в использовании вещей, мне это нравится" (тут ещё может последовать рассказ о каком-то случае из жизни, если HR создал располагающую атмосферу на собеседовании). А человек первого типа, что-то типа: "Да мне друзья посоветовали, пойди - попробуй, ничего сложного, вдруг понравится?"&lt;/p&gt;
&lt;p&gt;Чем лучше работает первый фильтр, тем проще в дальнейшем организовывать эффективное взаимодействие сотрудников.&lt;/p&gt;
&lt;p align=center&gt;&lt;b&gt;Мотивация&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Далее идёт техническое собеседование, ведь человеку должно не только нравится его будущая деятельность, но и он обязан быть грамотным в этой сфере (как минимум не полный ноль). Наконец-то барьеры пройдены и фирма пополнилась ещё одним сотрудником.&lt;/p&gt;
&lt;p&gt;В период стажировки, начальник присматривается к новому подчинённому, с целью понять:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;Мотивация к работе (какой он типаж)&lt;/li&gt;
&lt;li&gt;Взаимодействие с "костяком" команды&lt;/li&gt;
&lt;li&gt;Систему ценностей человека (на что он способен, на что нет)&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Мотивировать можно подгоняя работу под человека, а можно и наоборот. Грубой ошибкой будет ставить сотрудника, который любит работать с командной строкой - тестировать UI и наоборот. Эффективнее всего взаимодействие двух человек, один (UI любит) описывает бизнес процесс, второй с помощью скриптов (любитель взгляда "изнутри"), его автоматизирует.&lt;/p&gt;
&lt;p&gt;Проблемы, которые скорей всего возникнут со вторым типажом - пресыщение. Даже любимый вид деятельности надоедает на какое-то время, тогда проницательный начальник на время меняет область ответственности человека. Такой человек вполне может остаться на лишний час два, чтобы закончить скрипт, если это нужно.&lt;/p&gt;
&lt;p&gt;Допустим сотрудник попадает в команду, где ему ничего особо не интересно. Для эффективной работы возможно изменение самого человека. Сложно, но можно. Например, если коллектив из десяти человек делает одно и тоже вместе (командный дух, мля), ходит за чаем к примеру, то у одиннадцатого, несколько вариантов:&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;Измениться и влиться в коллектив (вскоре то, что казалось странным и не нужным, начинает нравится, "Кто цяй не пьёт - тот цьмо! (с) Конфуций")&lt;/li&gt;
&lt;li&gt;Изменить его под себя (скрытый лидер, серый кардинал)&lt;/li&gt;
&lt;li&gt;Оставаться отщепенцем и рано или поздно отколоться совсем (не судьба).&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Естественно это применимо не только к чаю, но и к разнообразным видам деятельности.&lt;/p&gt;
&lt;p&gt;Допустим начальник проморгал и "дизайнер в душЕ" занимается вёрсткой страниц. Ему не интересно, нудно, и на работу он приходит с мыслью когда же конец рабочего дня, побыстрей бы домой и рисовать, рисовать, рисовать. Человек не на "своём" месте и, как следствие, первый тип. Его мотивация - деньги, на которые он купит соболевые кисточки, посему нет необходимости работать эффективно, зачем себя заставлять, если можно отлынивать?&lt;/p&gt;
&lt;p&gt;Мотивация в таком случае, привязка зп к результатам, если это возможно. Сдельная работа или хотя бы в какой-то мере - почасовая. Система бонусов, соревнования (тут, кстати, могут помочь HR). Творческие мероприятия, где может "проявиться" душа дизайнера, на что обязан обратить внимание непосредственный начальник либо кто-либо другой. Анкетирование (что хорошо, что плохо в работе), внутренний форум, поощрение оригинальных, практических идей, которые часто указывают на характер человека и на его желания.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-1306563663714149210?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/1306563663714149210/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/blog-post_06.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/1306563663714149210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/1306563663714149210'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/blog-post_06.html' title='Оно мне надо?!'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_VTSxONU3uR8/S5NSoFaDoPI/AAAAAAAAAAs/1MrF_cUqA7M/s72-c/%D0%91%D0%B5%D0%B7%D1%8B%D0%BC%D1%8F%D0%BD%D0%BD%D1%8B%D0%B9.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-1402986767738935081</id><published>2010-03-04T07:27:00.032+02:00</published><updated>2010-03-06T17:31:33.900+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QTP'/><category scheme='http://www.blogger.com/atom/ns#' term='автоматизация'/><title type='text'>Автоматизация бывает разная: чёрная, белая, красная.. (чёрная)</title><content type='html'>&lt;p&gt;Функциональное тестирование - проверка корректности работы программы. &lt;/p&gt;
&lt;p&gt;Первый подход:&lt;ol&gt;
&lt;li&gt; тестируем руками&lt;/li&gt;
Если надо повторять тестирование (регрессия) более 3-х раз, уже стоит задуматься об автоматизации, следовательно второй подход:&lt;br&gt;
&lt;li&gt;автоматизируем процесс&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Функциональное тестирование практически единственная область в куйстве, автоматизация которой максимально оправдана.&lt;/p&gt;
&lt;p&gt;Автоматизация может быть нескольких видов:&lt;ol&gt;
&lt;li&gt; Чёрная. Название не подразумевает связь с трудом африканских народов, а говорит о том, что исходный код апликации - не доступен. Есть установленная программа, которую надо протестировать и всё.&lt;/li&gt;
&lt;li&gt; Белая. Используется исходный код тестируемой апликации (unit-тесты).&lt;/li&gt;
&lt;li&gt; Красная. Нет такого вида автоматизации, тему под слова из песни подгонял.&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Этот пост про чёрную.&lt;/p&gt;
&lt;p&gt;Делаем на себе вид, что умеем планировать и ставить задачи.&lt;br&gt;
Задача: Протестировать калькулятор.&lt;/p&gt;
&lt;p&gt;Калькулятор нужен для операций с числами. &lt;/p&gt;
&lt;p&gt;Составим контрольный пример : 789 - 35*4 + 60/12 = 654 (задействованы все числа и основные операции).&lt;/p&gt;
&lt;p&gt;Можно протестировать руками и успокоиться, но у нас в планах следующая версия калькулятора, с новыми фичами и финтиклюшками. Основная функциональность, понятное дело, не должна "поломаться", поэтому надо проверять её после каджой новой фичи. Автоматизируем этот процесс. &lt;/p&gt;
&lt;p&gt;Задача: Нужна программа, которая будет в точности повторять все действия пользователя. &lt;br&gt;
Для этого она должна уметь: &lt;ol&gt;
&lt;li&gt; Отличать объекты один от другого&lt;/li&gt;
&lt;li&gt; Записывать действия над объектами&lt;/li&gt;
&lt;li&gt; Повторять их&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Обычно все проблемы именно с первым пунктом, и возникают они из-за отсутствия исходного кода. &lt;/p&gt;
&lt;p&gt;Программ для функционального тестирования - достаточно, многие "заточены" исключительно под веб и пока что нам не интересны. &lt;/p&gt;
&lt;p&gt;Остановимся на одном из трёх монстров: HP QuickTest Professional (QTP), IBM Rational Functional Tester и Borland SilkTest, - на QTP. Почему? Потому что я только с ним и сталкивался :) По той же самой причине, я не буду их сравнивать.&lt;/p&gt;
&lt;p&gt;QTP устанавливается запуском сетапа и последовательным нажатием кнопАчки "Next". Далее попросят ввести лицензию или указать сервер-лицензий, куда деваться, продукт платный.&lt;/p&gt;
&lt;p&gt;При запуске есть возможность добавлять/удалять add-ins, если вы точно уверены, что какой-то из них не будет использоваться, лучше его выключить. Нажимаем Record, предварительно указав в Record and Settings режим запуска тестируемого приложения и вперёд. &lt;/p&gt;
&lt;p&gt;Никаких особых шаманств не требуется, работаем с аппликацией как обычно, в случае калькулятора при записи контрольного примера, должно получиться что-то типа такого.&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_VTSxONU3uR8/S5Hwg0RHhdI/AAAAAAAAAAU/aikOnNtgBv4/s1600-h/record.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 227px;" src="http://2.bp.blogspot.com/_VTSxONU3uR8/S5Hwg0RHhdI/AAAAAAAAAAU/aikOnNtgBv4/s320/record.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5445397871044560338" /&gt;&lt;/a&gt;
&lt;p&gt;После клика пользователя на кнопке, QTP сравнивает свойства объекта, над которым произведено действие со стандартным набором. И заносит Test Object в Repository. Количество извлечённых свойств можно оценить на снэпшотике.&lt;/p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_VTSxONU3uR8/S5H0hOgMY2I/AAAAAAAAAAc/oG6HGwpn3ns/s1600-h/properties.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 290px;" src="http://4.bp.blogspot.com/_VTSxONU3uR8/S5H0hOgMY2I/AAAAAAAAAAc/oG6HGwpn3ns/s320/properties.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5445402276133626722" /&gt;&lt;/a&gt;
&lt;p&gt;Помимо описаний стандартных объектов, в QTP есть add-ins для специфических технологий, с набором объектов, их свойств и применимых к ним методов.&lt;/p&gt;
&lt;p&gt;В связи с этим, основной функционал кутипа состоит из разных вспомогательных средств идентификации объектов, вплоть до создания их вручную. Отмечу интересную особенность - подключение внешнего репозитория с уже описаными свойствами объектов, этот функционал позволяет, разделить обязанности, один грамотный человек создаёт репозиторий, остальные подключают его и только записывают скрипты.&lt;/p&gt;
&lt;p&gt;Несколько режимов записи, например, запись кликов по абсолютным координатам без распознания объектов, множество средств работы с репозиторием и несколько режимов проигрывания скриптов, собственно вот и весь QTP. Да, ещё и result viewer, генератор отчётов, который выдаёт результаты прогона скриптов в удобоваримом виде, полезная штуковинка :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-1402986767738935081?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/1402986767738935081/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/blog-post_04.html#comment-form' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/1402986767738935081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/1402986767738935081'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/blog-post_04.html' title='Автоматизация бывает разная: чёрная, белая, красная.. (чёрная)'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_VTSxONU3uR8/S5Hwg0RHhdI/AAAAAAAAAAU/aikOnNtgBv4/s72-c/record.JPG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-3538474812596545283</id><published>2010-03-03T07:23:00.015+02:00</published><updated>2010-03-03T08:11:33.233+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='автоматизация'/><category scheme='http://www.blogger.com/atom/ns#' term='мыслишки'/><title type='text'>В чём сила, брат?! В автоматизации, брат! И тот сильней, у кого её больше :)</title><content type='html'>&lt;p&gt;Несмотря на значительные трудности, связанные с автоматизацией, она шагает по миру, как усердные солдаты на плацу, потому что имеет ряд неоспоримых преимуществ. Подсчитать сколько бы стоили машины, если собирались исключительно вручную, сложно, но представить разницу вполне реально. А качество? Aston Martinы выверяют каждую мелочь, у них полностью ручная сборка, но производительность (300 машин в год) и цена (сотни тысяч долларов), врядли устроят простого обывателя.&lt;/p&gt;
&lt;p&gt;Приблизительно тоже самое происходит и в тестировании ПО, но пока что не так заметно. В мануальном занято огромное количество людей, с одной стороны это прекрасно - ударим рабочими местами, по экономическому кризису, с другой - не эффективно. Чем больше людей, тем больше брака и халтуры и менее загружены спецы. Если ВУЗы каждый год принимают столько же студентов, сколько выпускников в школах, тогда нет конкуренции и поступают все, и толку от такого образования всё меньше и меньше. Чем больше аудитория, тем более шумно, тем тяжелее преподавать, тем больше времени требуется, что рассказать один и тот же материал (не особо сообразительные будут переспрашивать и задерживать лекции) и так далее.&lt;/p&gt;
&lt;p&gt;Должен быть отбор специалистов, программ пишется всё больше и больше, они разрастаются, выходят различные версии ОС, всё это надо поддерживать, объём работ увеличивается. Руководство многих (не всех ещё) компании поняло: рынок сотрудников достиг точки, когда люди, которые созданые для такой работы, уже наняты, а объёмы тестирования растут и растут. В результате в штат набираются все подряд. Расходы увеличиваются, эффективность падает.&lt;/p&gt;
&lt;p&gt;Выход за автоматизацией, правильно организованный процесс - полдела. Забугорные товарищи удивляются, у них на заводе автоматическая линия сборки и заняты пять человек, а в России на таком же заводе - двести! Конечно, Россия большая надо ж нас чем-то занять, вот и весь ответ. Или ещё такой ответ - на автоматизацию завода нужны средства и время, ни того ни другого нет, да и станков понавыпускали столько, что их просто некуда девать, так что пусть всё будет так есть. Как будто мы до сих пор выполняем план пятилетки, а не идём в ногу со временем.&lt;/p&gt;
&lt;p&gt;Не нужно бросаться автоматизировать всё и вся и сразу, нужно постепенно, частями, тогда и общая эффективность не пострадает и плоды в скором времени появятся. Это как деньги они должны сделать оборот, принести прибыль, потом эту увеличенную массу опять в оборот и так по кругу. Появляется время, сэкономленное автоматизацией, используйте его на автоматизацию следующего куска програмы и так до победного конца, до предела, где уже кроме новых фич, автоматизировать нечего.&lt;/p&gt;
&lt;p&gt;Естесственно, всё что пишется с нуля, а также новые фичи в старых программах, надо создавать максимально удобными для автоматизации, если это не ухудшает качество конечно.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-3538474812596545283?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/3538474812596545283/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/blog-post_03.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/3538474812596545283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/3538474812596545283'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/blog-post_03.html' title='В чём сила, брат?! В автоматизации, брат! И тот сильней, у кого её больше :)'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-4513858555801606428</id><published>2010-03-02T20:32:00.021+02:00</published><updated>2010-03-03T00:05:02.841+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA'/><category scheme='http://www.blogger.com/atom/ns#' term='мыслишки'/><title type='text'>Почему дома кривые, ведь кирпичи-то ровные?! (QA версия)</title><content type='html'>&lt;p&gt;Посмотрим на проблемы с точки зрения вечности, через сотню - другую лет о наших методах никто и не вспомнит. (Переделанная цитата из Терминатора).&lt;/p&gt;
&lt;p&gt;Юнит-тесты позволяют уменьшить время на регрессию, облегчают процесс тестирования, а унификация кода - повышает надёжность: любой косяк в UI сразу мозолит глаза, не девов, для них главное функциональная правильность, а кьюэй и кастомерам; какую-то часть кода уже тестировали, что резко снижает количество потенциальных багов.&lt;/p&gt;
&lt;p&gt;Опять же, если проберусь к власти в куа-столице, процесс организую так: Переиспользование, только теперь уже не кода, а тестов (создание q-паттернов). &lt;/p&gt;
&lt;p&gt;Что это и с чем его едят? Допустим, до вас работал какой-то грамотный куатор, его давно перекупили конкуренты, ещё в период хэдхантовых войн, а программа как жила так и живёт, более того - она стала ещё больше, прям динозавр. Но как было у неё в меню, "открыть файл", так и осталось. Как тестировали от версии к версии этот диалог, так и сейчас тестируют.&lt;/p&gt;
&lt;p&gt;Да только, раньше грамотный куа был, а сейчас молодняк.. "Нимфа", туды её в качель, разве товар даёт? Человек ушёл, знания потерялись. Жаль. Вот если сделал шаблончик, и не указательного характера - нажми сюда, получи это, нажми туда, получи то, а рекомендательного: нажать сюда - палкой, дубиной, дрючком, сучком, рукой, соседом, стулом, сковородкой, и этим.. ну вы поняли, тогда опыт в сжатом виде консервируется и передаётся.&lt;/p&gt;
&lt;p&gt;Остальной народ, кто после первопроходца работает, по-тихоньку дополняет шаблончик, потому что тестирует по-другому, не пакости ради, а по натуре своей. Если диалог унифицирован для всей фирмы, тогда количество тестеров, пополняющих паттерн уникальными кейзами растёт в арифметической прогрессии. Дополнение устоявщихся паттернов - поощрять. Можно премией денежной или просто грамотой с благодарностью, зависит от фирмы.&lt;/p&gt;
&lt;p&gt;Шаблоны полезны. Тяжелее всего - начать писать тесты с нуля, сложно и долго. Из-за нехватки времени,  что-то забудется, ещё ж тестировать надо. Опыт прошедших до тебя хорошо помогает. Это как изучать грамотный и красивый код, перенимая приёмы. Новичок раз пять пройдётся по содержательному q-паттерну, применит и начнёт своё создавать, молодые всегда приносят что-то новое.&lt;/p&gt;
&lt;p&gt;Хорошо помню случай, когда тестировал диалог с вводом пути к файлу. Сотрудник наблюдал, говорит - сетевой путь вводил? Конечно не вводил и даже не думал, а после такого "напоминания" пополнил арсенал, с тех пор всегда пользуюсь.&lt;/p&gt;
&lt;p&gt;Как бы я составил шаблон генерации отчёта. &lt;br&gt;
Убедиться, что:&lt;br&gt;
1) При большом времени генерации, используется какой-то индикатор;&lt;br&gt;
2) Корректно обрабатывается попытка отменить задачу;&lt;br&gt;
3) Существует возможность наблюдать за прогрессом;&lt;br&gt;
4) Загрузка CPU не более 75% (варианты);&lt;br&gt;
5) Создаётся лог; &lt;br&gt;
6) Существуют и работают горячие клавиши на вызов генерации;&lt;br&gt;
7) Есть несколько точек вызова генерации в программе;&lt;br&gt;
8) Существует импорт/экспорт данных;&lt;br&gt;
9) Возможно сохранение в различные форматы данных;&lt;br&gt;
10) Возможна кастомизация; &lt;br&gt;
11) Существует автоматическая генерация; &lt;br&gt;
12) Можно архивировать и аттачить к мэйлу; &lt;br&gt;
...
&lt;/p&gt;
&lt;p&gt;Вы тестируете систему генерации отчётов в своей программе, а позже, код использует какая-то другая команда, возможно, они тоже найдут баги, которые автоматически будут пофикшены и в вашей программе. Эффективно.&lt;/p&gt;
&lt;p&gt;Следующее, за что возьмусь - автоматизация, в отдельном посте конечно, вотЪ! ;-)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-4513858555801606428?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/4513858555801606428/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/qa.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/4513858555801606428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/4513858555801606428'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/qa.html' title='Почему дома кривые, ведь кирпичи-то ровные?! (QA версия)'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-725097088720761750</id><published>2010-03-02T08:02:00.011+02:00</published><updated>2010-03-02T10:21:01.770+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='мыслишки'/><title type='text'>Почему дома кривые, ведь кирпичи-то ровные?!</title><content type='html'>&lt;p&gt;Какой-то великий человек пару постов назад писал, что любая фирма стремится к узнаванию себя любимой и пихает свои логотипы и стиль куда не попадя, придерживаясь "one voice" политики. &lt;/p&gt;
&lt;p&gt;До сих пор не могу понять почему в фирме, где довольно большое количество унифицированых (одноголосая политика) программ с одинаковыми диалогами, одни и тежи функции реализованы по-разному? Опять же, вроде программы одной фирмы, а иконки для одинаковых фич - разные. Надо чем-то занять прогеров и куаторов?&lt;/p&gt;
&lt;p&gt;Чего бы сделал я, пусти меня кто к власти :) Перво-наперво, проанализировал языки, на которых написаны программы. Если используется один язык и реализуется одна и таже функция - брать готовые исходники, причём билдиться с одного бейзлайна. Приоритет главенствующего языка для только зарождающихся программ - выше. То есть, если большинство программ написано на плюсах, то и новую прогу писать на них же, если конечно же программа предполагает такой выбор. Копировать исходники, только если надо добавить новую фичу к стандартному диалогу. Если стандратный диалог изменился (пофиксили какой-то баг, например), билдиться с изменёнными исходниками.&lt;/p&gt;
&lt;p&gt;Обязательные юнит-тесты на эти исходники + дописывать свои для новой фичи. Это вначале может показаться, что вся эта кухня не будет работать. Если правильно организовать - меньше проблем, багов и унификация получается сама собой.
Получается, локальный такой, "фирмовый" фреймворк. И новая программа строится из готовых "кирпичиков". Цвета, иконки и др, уже заточены под компанию. Если пользователь в одной программе привык жать в одно и тоже место и видеть один и тот же результат, пусть и в другой программе наслаждается этим же. Стабильность - признак мастерства!&lt;/p&gt;
&lt;p&gt;To be continue for куэйты :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-725097088720761750?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/725097088720761750/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/blog-post.html#comment-form' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/725097088720761750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/725097088720761750'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/03/blog-post.html' title='Почему дома кривые, ведь кирпичи-то ровные?!'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-928984810772905507</id><published>2010-02-27T07:57:00.021+02:00</published><updated>2010-03-02T10:15:36.313+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA'/><category scheme='http://www.blogger.com/atom/ns#' term='команда'/><category scheme='http://www.blogger.com/atom/ns#' term='мыслишки'/><title type='text'>Разделяй и наслаждайся эффективностью</title><content type='html'>Из википедии:
&lt;blockquote&gt;Разделение труда является причиной повышения общей производительности труда организованной группы специалистов (синергетический эффект) за счет:
&lt;ul&gt;&lt;li&gt;Выработки навыков и автоматизма совершения простых повторяющихся операций&lt;/li&gt;&lt;li&gt;Сокращения времени, затрачиваемого на переход между различными операциями&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;
&lt;p&gt;Есть же где-то команды, которые занимаются исключительно одним делом, например, переводами продуктов на иностранные языки. То есть, своего ничего не тестируют, не разрабатывают, зато целый воз и маленькая тележка чужих програм, которые надо перевести, вот они и колбасятся. &lt;/p&gt;
&lt;p&gt;Почему бы не сделать команду, которая специализируется чисто на UI и Usability программ. Любая фирма стремится к лёгкой узнаваемости себя любимой, в результате все производимые продукты приводят к единому виду (one voice), стилю. Да и унификация программ - благо. Хорошо разобравшись в одной, вы с лёгкостью разберётесь в любой другой програме этой фирмы, резко вспоминаем мелкомягких.&lt;/p&gt;
&lt;p&gt;Не пройдя специалиста по UI или Usability, апликацию нельзя релизить, намного меньше было бы проблем. Обычно в каждой команде, работающей над продуктом существует или существовал, кто-то (один), он когда-то, возможно, тестировал UI, искал инфу по этому делу и то бишь более-менее грамотный. Если такой человек и был, то велика вероятность, что он уже уволился или ушёл в другую команду, и забота о том, как будет выглядеть продукт ложиться исключительно на девов, которые в этом ничего не смыслят и немножечко куа, который что-то такое где-то слышал.&lt;/p&gt;
&lt;p&gt;Но если создавать команду чисто ЮАЙщиков, то тут же появляется идея создания команды автоматизации. Опять же, это такие спецы, которые только автоматизируют тестирование програм других команд фирмы и ничем более не занимаются, не разрабатывают конкретный продукт, не тестируют свой. Эфективность была бы существенной. Признайтесь, ну у кого на фирме автоматизацией занимаются спецы? Это либо программисты в "свободное" от основного кодинга время (ага, свободные время у прогерров, анекдот прям), либо куа, в большинстве своём ничерта в автоматизации не смыслящие. А если смыслят, то платить им надо поболее чем простому куа, так почему бы не сделать отдельную команду автоматчиков? :)&lt;/p&gt;
&lt;p&gt;Оставим ЮАЙ и Юзабилити в покое, их эффективность тяжело подсчитать, наверное, так же как и эффективность рекламы. Разберём автоматчиков. Конечно, эти идеи больше касаются больших фирм, хотя и в мелких могут найти своё применение.
Допустим у нас 15 команд, по 7 человек, включая тим-лида. Отбрасываем голову селёдки, остаётся основной костяк - 6 человек. Итого 90 человек тестероводов. По одному автоматизатору на команду - 15 человек во всей фирме. Против команды из 5 "чистых" автоматизаторов + их голова селёдки. Людей в такую команду надо меньше чем уже есть в фирме, а эффективность - существенно выше, почему? &lt;/p&gt;
&lt;p&gt;Потому что у любого "псевдо-автоматчика" в команде есть своя область, и он занимается также проверкой документации, тестированием новых фич, регрессией, на автоматизацию ещё надо искать время! То бишь знания и умения его не применяются в полную силу, ну это как раскладывать пасьянсы на двухядерном ксеноне. Может не совсем так, но где-то рядом.&lt;/p&gt;
&lt;p&gt;Далее, допустим задерживается билд (у вас такого не бывает? класно вам!), автоматизатору наконец-то есть чем заняться, остальная команда убивает время, нет ну всегда есть чем заняться, но согласитесь, если это не основная работа, а как бы сопутствующая, то и отношение к ней как бы сопутствующее.&lt;/p&gt;
&lt;p&gt;Или человек, отлично пишет тест-кейсы, другой, его коллега, - терпеть не может это дело, что же получается, первый с удовольствием написал свою часть и начал с не особым удовольствием тестировать, второй с отвращением что-то там накалялкал, и с удовольствием начал тестировать. Теперь, внимание, ротация! Один пишет тесты за двоих, второй - тестирует (утрированно), в результате, каждый занимается тем, что ему нравится и повышается общая эффективность! &lt;/p&gt;
&lt;p&gt;Секрет прост - такой слаженный механизм, где каждый делает то, в чём он спец в рамках одного продукта, называется эффективной командой, а слаженный механизм, где каждая команда специализируется на чём-то одном, своём, родном называется - фирма с эффективно организованным трудом.&lt;/p&gt;
&lt;p&gt;Правда жизни в том, что обычно командой называются люди, которые просто работают над одной программой. А фирмой называется сборище таких "команд".&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-928984810772905507?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/928984810772905507/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/02/blog-post_27.html#comment-form' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/928984810772905507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/928984810772905507'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/02/blog-post_27.html' title='Разделяй и наслаждайся эффективностью'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-5634048583194749304</id><published>2010-02-25T20:43:00.003+02:00</published><updated>2010-03-03T07:23:21.030+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA'/><title type='text'>Опытный QA и полный "чайник"</title><content type='html'>&lt;p&gt;Отдых - важнейшая часть работы, но понимание этого приходит далеко не сразу. Иногда нужно несколько лет, прежде чем тестер откроет в себе QA и поймёт: "&lt;span style="font-style:italic;"&gt;Нельзя объять необъятное, впихнуть невпихуемое и найти все баги. Основное внимание нужно уделять важному и не распылять его на пустяки&lt;/span&gt;". Следуя этому нехитрому правилу, обычный QA становится "опытным QA". И вот уже опытный куэйтор по-настоящему понимает всю ценность отдыха.&lt;/p&gt;
&lt;p&gt;И дело не в количестве, но в качестве. Конечно, если вы не президент, то на такой же качественный релакс, которым обеспечивала Моника главу Пендосии, можете не рассчитывать, но как минимум кухня на фирме быть должна.&lt;/p&gt;
&lt;p&gt;Кухня, она как Швейцария в годы мировой войны, как нейтральные воды в морях и океанах, в идеале, тут тихо и спокойно, нет разговоров о работе, о багах и реджектах, о письмах менеджеров, блистающих своими техническими знаниями, о пофэйлившихся билдах, нет ничего этого, тут - отдых.&lt;/p&gt;
&lt;p&gt;Главный на кухне не ваш начальник, и даже не начальник вашего начальника, главный на кухне - чайник. Простой "Vitek" или "Braun" здесь главнее всех холодильников, умывальников, столов и тумбочек, куэйторов и дэвов. Ради него мы здесь. Ради него мы прошли десятки метров, и вот он кипит, привлекая внимание. Разноцветные чашки ютятся вокруг чайника, кажется, ещё секунда и они начнут толкаться. &lt;/p&gt;
&lt;p&gt;Чай может рассказать не только о вкусах и предпочтениях человека, но и о занимаемой им должности. Вот тестер помешивает кипяток с липтоном или майским чаем, он пропускает вперёд QA, что только-только выбросил треугольный пакетик с заваркой и бежит к компутеру. За ними расходятся по своим рабочим местам опытные куэйторы, у этих - качественный, дорогой чай. Среди них затесался дэв с жестяной банкой со слонами, купленной недавно в каком-то супермаркете. Сколько людей, столько и чаёв..
Ещё Конфуций в своё время сказал: "Кто цяй не пьёт, тот цьмо!". &lt;/p&gt;
&lt;p&gt;Однако чаепитием отдых не ограничивается - настольный футбол, хоккей, пин-понг, бильярд, видео-игры, бассейн, спортзал, список огромен, но это уже совсем другая история..&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-5634048583194749304?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/5634048583194749304/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/02/qa.html#comment-form' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/5634048583194749304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/5634048583194749304'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/02/qa.html' title='Опытный QA и полный &quot;чайник&quot;'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-8060942980007384291</id><published>2010-02-22T14:45:00.008+02:00</published><updated>2010-02-23T07:40:18.211+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA'/><category scheme='http://www.blogger.com/atom/ns#' term='Одесса'/><category scheme='http://www.blogger.com/atom/ns#' term='кризис'/><title type='text'>Мы не гопота, мы обычная куэйта</title><content type='html'>&lt;p&gt;На сегодняшний день в IT-сфере Одессы засвечены свыше десятка крупных и не очень компаний, ака Luxsoft, COMODO, Lohika, TechInsight, Exigen и другие. Почему GlobalLogic обходит стороной этот райский уголок оффшора не понятно, но скорей всего у них имеются более-менее серьёзные на то причины.&lt;/p&gt;
&lt;p&gt;В докризисные времена, обилие фирм и фирмушек, а также нехватка технических специалистов порождали целые хед-хантинговые войны. Народ в поисках лучшей доли (читаем зп) метался из одной компании в другую, расшатывая психику и аппетиты более морально устойчивых коллег рассказами о страшных долларах, о фирмах, в которых всё  лучше, чем в том месте, где ты сейчас. Такие люди наглядно подтверждали народную мудрость: "Хорошо там, где нас нет". Обстановку нагнетали также HR (отдел рекрутинга), исправно прозванивающие свою базу драгоценных Айти-голов и всеми правдами и неправдами заманивающие на собеседование на новую супер-пупер вакансию.&lt;/p&gt;
&lt;p&gt;Кризис всё расставил по своим местам. Некоторое время ещё можно было наблюдать агонизирующие течение народа, больше по привычке, чем из-за острой необходимости, а потом наступило затишье. Долгое гнетущие затишье. Команды расформировывались, народ уволняли, начальство тутже сообразило, что увеличивать зп уже просто некультурно и некрасиво по отношению к конкурентам. Сам процесс перекупки кого-либо специалиста потерял особый смысл.&lt;/p&gt;
&lt;p&gt;Некоторые мелкие фирмы, организованные перед кризисом так и не успели прочно укрепиться на плодородной айтишнутой почве и лопнули от радости полной независимости. &lt;/p&gt;
&lt;p&gt;Что же мы видим сейчас? Нечто, отдалённо смахивающее на эпоху Ренессанса. Безработного IT-брата скопилось достаточно много, как спецов так и жёлторотых выпускников институтов, согласных работать практически за гроши. Жирные зарплаты, взвинченные в период междуусобиц, стали худеть на кризисной-то диете. Многие бездельники даже начали усиленно работать, опасаясь за своё теперь туманное будущее.
Заказчики возвращаются к подрядчикам, улыбаясь, с понтом никто никуда и не уходил, так.. в туалет выбежал, когда в первый раз прижала неопределённость, но теперь-то всем стало легче вести дела, и брошенные впопыхах проекты поднимаем, поспешно сдуваем пыль и.. за работу! Работа, она ж как волк, как сидела в лес глядела, так и сидит. Заглянешь в эти честные глаза - спать хочется.. &lt;/p&gt;
&lt;p&gt;Так вот, брат куа, в следующий раз, когда опять спать захочется при виде творений ваших девов, просто вспомни за тот народ, что спит и видит твой стул под своей пятой точкой, так что бди, ресницами глупо не хлопай, взгляд в монитор и работай, работай!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-8060942980007384291?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/8060942980007384291/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/02/blog-post_9622.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/8060942980007384291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/8060942980007384291'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/02/blog-post_9622.html' title='Мы не гопота, мы обычная куэйта'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-489398580055788923</id><published>2010-02-22T10:14:00.007+02:00</published><updated>2010-02-22T21:19:18.926+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Одесса'/><title type='text'>Этот комфортный город, я вижу во сне</title><content type='html'>&lt;p&gt;Директор центра «Институт города» Сашка Сергиенко проболтался за наш комфорт и безопасность: "Одесса является наиболее комфортным, безопасным городом для жизни в Украине..". Вы это слышали? Авторитетно ляпнул.&lt;/p&gt;
&lt;p&gt;За безопасность в Одессе, то все знают: Небезопасно носить с собой кастеты, нуны чаковские и ножи, во-первых, мешают бежать, во-вторых, когда догонят, то вполне могут сделать больно твоим же металлоломом. Оно вам надо? Купите себе кросы и бегайте в парке, любители экстрима - бегайте вечером, но не надо говорить за нашу безопастность, ежайте на Привоз возьмите петуха и делайте, что хотите с его причиндалами, а нам не надо.. &lt;/p&gt;
&lt;p&gt;Зомбоящики избавили честных трудяг от волнений про безопастность вечером на улице в нашем городе, теперь они переживают за бригады и бумера, за нянь и санты барбары. Таки имеют право.&lt;/p&gt;
&lt;p&gt;Но за комфорт, то Сашка дважды зря, он здесь был, он ездил по дорогам? В следующий раз, когда колесо попадёт в яму и полмаршрутки в срочном порядке начнёт проверять крепость стёкл исхудавшими от цен лицами, я вспомню слова Сашки за комфорт.&lt;/p&gt;
&lt;p&gt;Одно греет, может прав Сашка и в других городах и того хуже?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-489398580055788923?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/489398580055788923/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/02/blog-post_22.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/489398580055788923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/489398580055788923'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/02/blog-post_22.html' title='Этот комфортный город, я вижу во сне'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-431622309858862344</id><published>2010-02-21T09:30:00.008+02:00</published><updated>2010-02-23T11:26:27.962+02:00</updated><title type='text'>Для тех, кому понравился "Мы из будущего"</title><content type='html'>&lt;p&gt;Нарыл ролик в Инете, чёткий. Те, кому понравился "Мы из будущего" однозначно заценят.&lt;/p&gt;&lt;br /&gt;
&lt;center&gt;&lt;object height="285" width="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/z0Crq7dexPQ&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/z0Crq7dexPQ&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="340" height="285"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-431622309858862344?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/431622309858862344/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/02/blog-post_21.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/431622309858862344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/431622309858862344'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/02/blog-post_21.html' title='Для тех, кому понравился &quot;Мы из будущего&quot;'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6159658124130963560.post-5086855574145895419</id><published>2010-02-20T08:53:00.013+02:00</published><updated>2010-03-18T19:15:33.049+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Одесса'/><category scheme='http://www.blogger.com/atom/ns#' term='Одесские фразы'/><title type='text'>..Но всё реже услышишь от раза к разу здесь одесскую фразу..</title><content type='html'>&lt;ul&gt;
&lt;li&gt;..юмор их довольно специфический. Может, конечно, автор где-то и гений, но в Одессе еле-еле идиот!&lt;/li&gt;
&lt;li&gt;Вас здесь не стояло!&lt;/li&gt;
&lt;li&gt;Вы не подскажите, который час?&lt;br&gt;Почему не подскажу? Мы что с вами поссорились? &lt;/li&gt;
&lt;li&gt;Не делай мине беременную голову!&lt;/li&gt;
&lt;li&gt;Таких традиций есть в одесской молодёжи&lt;/li&gt;
&lt;li&gt;Состроилась как есть немая сцена&lt;/li&gt;
&lt;li&gt;"Я себе знаю, а вы себе думайте"&lt;/li&gt;
&lt;li&gt;Не надо мне делать нервы, их есть кому портить&lt;/li&gt;
&lt;li&gt;Немножечко мёртвый&lt;/li&gt;
&lt;li&gt;Мне стыдно ходить с вами по одной Одессе&lt;/li&gt;
&lt;li&gt;Я имею кое-что сказать&lt;/li&gt;
&lt;li&gt;Шоб вы мне были здоровы!&lt;/li&gt;
&lt;li&gt;Я готов послушать за вашу просьбу&lt;/li&gt;
&lt;li&gt;Вы шо, спешите скорее, чем я?!&lt;/li&gt;
&lt;li&gt;Я много раз тебя знаю&lt;/li&gt;
&lt;li&gt;Шо ты хочешь от моей жизни? Уже сиди и не спрашивай вопросы&lt;/li&gt;
&lt;li&gt;Я не могу его слышать, потому шо я не могу его видеть&lt;/li&gt;
&lt;li&gt;Бабки тают хоть сейчас и не весна&lt;/li&gt;
&lt;li&gt;Он бережёт меня от положительных эмоций&lt;/li&gt;
&lt;li&gt;Стал заносчивый, как гаишник с престижного перекрёстка&lt;/li&gt;
&lt;li&gt;Сколько, Сколько?!&lt;br&gt;Женщина, вы с утра температуру меряли?&lt;/li&gt;
&lt;li&gt;Я вас уважаю, хотя уже забыл за что!&lt;/li&gt;
&lt;li&gt;Ну ты посмотри на этого патриота за мой счёт!&lt;/li&gt;
&lt;li&gt;Что, сегодня меньше скользко чем тогда?&lt;/li&gt;
&lt;li&gt;На тебе, такое выкинуть! Взял и умер посреди полного здоровья!&lt;/li&gt;
&lt;li&gt;Вы шо, с мозгами поссорились?&lt;/li&gt;&lt;/ul&gt;
&lt;b&gt;Updates из комментов:&lt;/b&gt;
&lt;ul&gt;
&lt;li&gt;Вы спросите меня, имею ли я счастье, и я отвечу: "чтобы да, так нет!" :)&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6159658124130963560-5086855574145895419?l=hvorostovoz.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hvorostovoz.blogspot.com/feeds/5086855574145895419/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://hvorostovoz.blogspot.com/2010/02/blog-post_20.html#comment-form' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/5086855574145895419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6159658124130963560/posts/default/5086855574145895419'/><link rel='alternate' type='text/html' href='http://hvorostovoz.blogspot.com/2010/02/blog-post_20.html' title='..Но всё реже услышишь от раза к разу здесь одесскую фразу..'/><author><name>~AvA~</name><uri>http://www.blogger.com/profile/08449687502904664518</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://4.bp.blogspot.com/_VTSxONU3uR8/TO9l0DLujlI/AAAAAAAAADo/QTnT5Vn-ebE/S220/ava.jpg'/></author><thr:total>1</thr:total></entry></feed>
