<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Alex Sergeev @ ALSEDI &#187; департамент qa</title>
	<atom:link href="http://alsedi.com/blog/tag/departament-qa/feed/" rel="self" type="application/rss+xml" />
	<link>http://alsedi.com/blog</link>
	<description>Блог о собственных наблюдениях, ошибках и находках в QA, софтверном бизнесе и жизни.</description>
	<lastBuildDate>Fri, 26 Mar 2010 21:08:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Jira: Personal (Team Member) Dashboard</title>
		<link>http://alsedi.com/blog/jira-personal-team-member-dashboard/</link>
		<comments>http://alsedi.com/blog/jira-personal-team-member-dashboard/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 17:52:16 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[QA]]></category>
		<category><![CDATA[dashboard]]></category>
		<category><![CDATA[jira]]></category>
		<category><![CDATA[team]]></category>
		<category><![CDATA[team member]]></category>
		<category><![CDATA[департамент qa]]></category>
		<category><![CDATA[менеджмент]]></category>

		<guid isPermaLink="false">http://alsedi.com/blog/?p=769</guid>
		<description><![CDATA[Персональный дашборд, такой сделан на каждого члена команды, в том числе и на меня.

На нём используется всего три портлета:

 Time Sheet Summary на одну неделю. Позволяет оперативно видеть какими задачами и сколько времени (через Worklog) занимался сотрудник;
 Issue Calender с опцией показа крайнего срока (Due date). Позволяет определить сколько задач в ближайшее время должны быть [...]]]></description>
			<content:encoded><![CDATA[<p>Персональный дашборд, такой сделан на каждого члена команды, в том числе и на меня.</p>
<p><img class="alignnone" title="Jira: Personal Dashboard" src="http://alsedi.com/blog/blogimg/jira/jira-personal-dashboard.png" alt="" width="400" height="243" /></p>
<p>На нём используется всего три портлета:</p>
<ul>
<li> <strong>Time Sheet Summary</strong> на одну неделю. Позволяет оперативно видеть какими задачами и сколько времени (через Worklog) занимался сотрудник;</li>
<li> <strong>Issue Calender</strong> с опцией показа крайнего срока (Due date). Позволяет определить сколько задач в ближайшее время должны быть завершены;</li>
<li> <strong>Show Saved Filter With Columns</strong> с фильтром по открытым задачам на человека, показывает сколько всего задач, с каким сроком и приоритетом висят на сотруднике.</li>
</ul>
<p>Остальные дашборды можно посмотреть <a href="http://alsedi.com/blog/jira-team-dashboard/">тут</a> и <a href="http://alsedi.com/blog/jira-bug-tracking-dashboard/">тут</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://alsedi.com/blog/jira-personal-team-member-dashboard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Отчитываясь</title>
		<link>http://alsedi.com/blog/otchityvayas/</link>
		<comments>http://alsedi.com/blog/otchityvayas/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 15:37:04 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[QA]]></category>
		<category><![CDATA[confluence]]></category>
		<category><![CDATA[jira]]></category>
		<category><![CDATA[департамент qa]]></category>
		<category><![CDATA[менеджемент]]></category>
		<category><![CDATA[отчетность]]></category>
		<category><![CDATA[рутина]]></category>
		<category><![CDATA[тестирование]]></category>
		<category><![CDATA[управление]]></category>

		<guid isPermaLink="false">http://alsedi.com/blog/?p=350</guid>
		<description><![CDATA[Знаете сколько в книге Стивена Кинга &#8220;Как писать книги&#8221; встречается слово &#8220;десять&#8221;, а слово &#8220;перечитать&#8221;, а &#8220;оставить&#8221;? А в оригинале? Я бы тоже не стал задумываться, если бы мне не понадобилась оттуда фраза состоящая из этих слов. Но я её так и не нашел, что наводит меня на мысль, что либо Стивен Кинг её не [...]]]></description>
			<content:encoded><![CDATA[<p><img title="Эволюция длины отчетов" src="http://www.alsedi.com/blog/blogimg/reports.png" alt="Эволюция длины отчетов" width="200" height="270" align="left" />Знаете сколько в книге Стивена Кинга &#8220;Как писать книги&#8221; встречается слово &#8220;десять&#8221;, а слово &#8220;перечитать&#8221;, а &#8220;оставить&#8221;? А в оригинале? Я бы тоже не стал задумываться, если бы мне не понадобилась оттуда фраза состоящая из этих слов. Но я её так и не нашел, что наводит меня на мысль, что либо Стивен Кинг её не произносил, либо она просто не имеет отношения к этой книге. В любом случае я потратил время на то, что мне было нужно, но чего не было в этой книге.</p>
<p>Тоже самое, по смыслу, время от времени говорил мне мой руководитель. Он не мог понять чем конкретно занимается мой депортамент, в какой последовательности и для чего. Оспаривать то, что работы делается много он не мог, но при этом и имел полное право не понимать, что же всё-таки делается.<br />
На картинке выше четыре стиля отчета, использовавшиеся в разные промежутки времени (с 2006 года по начало 2009). Красная черта &#8211; это отметка страницы А4.</p>
<p>Первый отчет был предельно краток: &#8220;на проекте таком то сделали это и это, движемся в таком то направлении&#8221;. При этом текст основного отчета составлялся из того, что писали подчиненные (та еще каторга, сколько не напоминай, кто-нибудь да забудет. Да и литературным даром никто не обладал).</p>
<blockquote><p><strong>Название проекта</strong></p>
<p>Что было сделано и какие проблемы встретились. Обычным человеческим языком.</p>
<p><em>Имена участников</em></p></blockquote>
<p>Он не давал связи с реальными задачами в трекинговой системе и было не понятно, что делал каждый конкретный участник. Пораскинув мозгами и переборов лень подчиненных получилось сделать второй отчет на основе записей в Jira. Отчет содержал название задачи и ссылку на трекинг.</p>
<blockquote><p><strong>Имя</strong></p>
<p>Задача 1 (под назавание ссылка)</p>
<p>Задача 2 (ссылка)</p></blockquote>
<p>Он получился длиннее первого в несколько раз и хотя теперь можно было получить представление о том, что делал человек, понять, что происходит на проекте было сложнее, по самому отчету, нужно было идти в Jira и делать выборку. Так же он дополнялся страницами в Wiki (Confluence) по каждому проекту. Такие страницы описывали, как раз что происходит с проектом и конкретное участие сотрудников. Но на них надо было заходить специально. Лень руководства победила формат отчета, за год так и не получилось приучить сначала смотреть к Confluence, а потом спрашивать.</p>
<p>Путь от такого отчета к автоматической сборке занял больше года и все недовольства удавалось отбивать предложением указать формат отчета четко. Удачное решение пришло в голову после обнаружений RPC сервиса в трекинговой системе. За несколько дней была написана программа и придумана реструктуризация, которая позволила бы генерировать любые отчеты по существующим данным. В Jira было задействовано всё от компонент, до кастомных полей. Третий отчет был огромен. На картинке лишь пятая часть. Он вытаскивал из задачи название, описание и worklog, складывал всё вместе и сортировал по людям. Страницы в Confluence по прежнему были, но теперь состояние проектов и информацию о работе людей можно было получить прямо из отчета. Да и моё участие в написании отчета сократилось до финального ревью и выкидывания лишниго. И того, за место 2 часов отчет готовился за 10 &#8211; 15 минут.</p>
<p>Но и это было плохо. Слишком много информации. Слишком! Чтобы найти что-то интересующее требовалось просмотреть очень много не нужного. Притензий уже не высказывалось, но в голову пришла другая идея, реализация которой стала возможной благодаря <a href="http://alsedi.com/blog/ezhednevnye-mitingi/" target="_blank">проведению ежедневных митингов</a>. Не смотря на то, что это снова затраты времени на отчеты, это хорошо. Во-первых, мне всё равно приходится собирать и анализировать информацию за неделю, для обзора за неделю. Во-вторых, это позволяет разбить информацию и по людям и по проектам.</p>
<p>На первый лист идёт информация по проектам, дальше по людям.</p>
]]></content:encoded>
			<wfw:commentRss>http://alsedi.com/blog/otchityvayas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MindMap для ежедневных митингов</title>
		<link>http://alsedi.com/blog/mindmap-dlya-ezhednevnyx-mitingov/</link>
		<comments>http://alsedi.com/blog/mindmap-dlya-ezhednevnyx-mitingov/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 13:13:48 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[QA]]></category>
		<category><![CDATA[mind map]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[департамент qa]]></category>
		<category><![CDATA[менеджмент]]></category>
		<category><![CDATA[процесс тестирования]]></category>
		<category><![CDATA[собрания]]></category>

		<guid isPermaLink="false">http://alsedi.com/blog/?p=339</guid>
		<description><![CDATA[Дополнение к предыдущей заметке о ежедневных митингах. Помогает мне не терять нить разговора.

]]></description>
			<content:encoded><![CDATA[<p>Дополнение к <a href="http://alsedi.com/blog/ezhednevnye-mitingi/" target="_blank">предыдущей заметке о ежедневных митингах</a>. Помогает мне не терять нить разговора.</p>
<div class="wp-caption aligncenter" style="width: 370px"><a href="http://alsedi.com/blog/blogimg/dailymeeting.png"><img title="MindMap Ежедневных митингов (кликабельно)" src="http://alsedi.com/blog/blogimg/dailymeeting_th.png" alt="" width="360" height="176" /></a><p class="wp-caption-text">MindMap Ежедневных митингов (кликабельно)</p></div>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://alsedi.com/blog/mindmap-dlya-ezhednevnyx-mitingov/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ежедневные митинги</title>
		<link>http://alsedi.com/blog/ezhednevnye-mitingi/</link>
		<comments>http://alsedi.com/blog/ezhednevnye-mitingi/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 16:48:17 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[QA]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[департамент qa]]></category>
		<category><![CDATA[менеджмент]]></category>
		<category><![CDATA[процесс разработки]]></category>
		<category><![CDATA[процесс тестирования]]></category>
		<category><![CDATA[собрания]]></category>

		<guid isPermaLink="false">http://alsedi.com/blog/?p=305</guid>
		<description><![CDATA[Еще в то время, когда нам пытались привить Scrum (по ряду причин безуспешно), тема ежедневных митингов поднималась несколько раз за декаду, но так до дела и не дошло. Мы делали митинги сначала три раза в неделю, потом раз в неделю, потом раз за итерацию, потом по необходимости, потом без отрыва задниц от места.
Я уверен, что [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Meeting" src="http://sha3teely.com/wp-content/uploads/2006/08/meeting.jpg" alt="" hspace="10" width="288" height="167" />Еще в то время, когда нам пытались привить Scrum (по ряду причин безуспешно), тема ежедневных митингов поднималась несколько раз за декаду, но так до дела и не дошло. Мы делали митинги сначала три раза в неделю, потом раз в неделю, потом раз за итерацию, потом по необходимости, потом без отрыва задниц от места.<span id="more-305"></span></p>
<p>Я уверен, что не я один участвовал в подобном процессе, мы материли &#8220;Scrum мастера&#8221; за то, что он ничего не знает, а время митинга растягивается минимум на час. Большую часть которого две трети участников спят, ковыряют столы, стулья и носы, звонят по телефону, обсуждают вчерашний футбол, сидят с хмурыми <span style="text-decoration: line-through;">мордами</span> лицами. После митинга никто не помнил о чем договорились, да и вообще, договорились ли?! Но ведь что то обсуждали, но что же решили? Никто не помнил. &#8220;<strong>S</strong><span style="color: #999999;">c</span><strong>rum</strong> мастер&#8221; писал письмо руководству о прогрессе в разработке, выражая его в процентах</p>
<blockquote><p>Мы готовы к завоеванию мира на 90%!</p>
<p>Эта версия лучше на 45%!</p>
<p>Ваши ресницы будут длиннее на 63.3% если вы попали в 34 и 5 десятых процента белокожих женщин с карими глазами и родинкой на животе!</p></blockquote>
<p>Да брехня это всё, виртуально. А мы реальны. Мы понимали, что это чушь, что нам это чуждо и не нужно. Естественно всё умерло и с каждым релизом выяснялось, что забыли что-нибудь положить в CVS, сделали изменения в зависимых модулях и забыли известить зависимых. В тестировании тоже всё было не слишком гладко, даже налаженные горизонтально-вертикально-поперечные связи давали сбои и какие то очевидные ошибки оставались незамеченными.</p>
<p>Так что необходимость митингов как была так и осталась. Я решил следовать довольно простой схеме. В моей команде люди разбиты по своим проектам и&#8230;</p>
<blockquote><p>Тогда, еще два года назад, &#8220;Scrum мастер&#8221; сделал главную ошибку, которой сейчас пытаюсь избежать я &#8211; он взял всех лидов и разработчиков по всем направлениям и посадил в одну комнату с целью у каждого узнать &#8220;как дела&#8221;. Направления, хоть и представляли собой единую платформу, но всё-таки были довольно самостоятельными и по большому счёту были связаны вместе только базой. Это примерно как, если бы вы ходили каждый день в один и тот же бар и слушали бы как бармен рассказывал как сложно достать сейчас бренди, хотя вам всё равно есть бренди или нет.</p></blockquote>
<p>&#8230;я решил митинговать с каждой командой отдельно (привет, велосипед). На каждую встречу не более 15 минут, во время митинга поднимаются только три темы: что не получилось сделать из запланированного вчера, какие проблемы мешают, что делаем сегодня. И так изо дня в день, пока эти маленькие сообщества не научатся четко говорить о проблемах и понимать свою работу, а я вместе с ними не пойму в деталях что происходит. После этого можно будет перейти к тому, чтобы митинговать со связанными командами. Делать это каждый день уже нет смысла, потому что группы нужно связывать только, когда релиз одного из компонент сильно затрагивает другие.</p>
<p>За разными командами тестировщиков стоят не только разные продукты или компоненты, но и разные команды разработчиков. А это люди! Каждый со своими тараканами и подходами к работе, которые могут упростить жизнь релизу или усложнить.</p>
<blockquote><p>Был у нас очень интересный разработчик. Он разрабатывал один компонент системы&#8230;  в течение двух лет! И когда проект был на этапе завершения оказалось, что он не совместим с платформой немного (ну это ладно). В добавок после его добавления в систему дороги назад уже не было &#8211; обратной совместимости продумано не было. С одной стороны очень плохо, разработчик чудовище. С другой мы избавились от многоярусной поддержки целого семейства старого кода.</p></blockquote>
<p>На третьем шаге собираем всех тестировщиков вместе. Это не может быть частое явление, на мой взгляд. Но почему бы не сделать так раз в месяц, для того чтобы не было вопросов кто и чем занимается. Это сыграет свою роль, обязательно. Когда это произойдёт нельзя будет сказать &#8211; &#8220;Вот он! Это потому что два месяца назад они были на митинге&#8221;, но при проблемах всегда найдется <span style="text-decoration: line-through;"><a href="http://www.prokofiev.ru/prikol/pics/p11/padla.jpg" target="_blank">падла</a></span> зараза, которая скажет &#8220;Это потому что митингов не было&#8221; и будет права.</p>
<p>С каждым шагом мы приближаемся к тому, чтобы повысить обмен информацией между тестировщиками. Это отлично, но не достаточно. После того как это свершилось надо двигаться в девелопмент и в добавок к личным горизонтальным связям добавлять еще качественно зрелый обмен информацией между разработчиками и разработчиками и тестировщиками. Так очень много глупостей и сложностей можно устранить.</p>
]]></content:encoded>
			<wfw:commentRss>http://alsedi.com/blog/ezhednevnye-mitingi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Рутинное &#8211; тест кейсы</title>
		<link>http://alsedi.com/blog/rutinnoe-test-kejsy/</link>
		<comments>http://alsedi.com/blog/rutinnoe-test-kejsy/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 16:57:30 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[ALSEDI]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[внутреннее]]></category>
		<category><![CDATA[департамент qa]]></category>
		<category><![CDATA[оспоримое]]></category>
		<category><![CDATA[рекомендации]]></category>
		<category><![CDATA[тестирование]]></category>
		<category><![CDATA[тесткейсы]]></category>

		<guid isPermaLink="false">http://alsedi.com/blog/?p=288</guid>
		<description><![CDATA[Рекомендации были написаны для внутреннего употребления и пришлось вырезать некоторые части и ссылки. Что то вообще не соответствует теории.
Общее
Всегда, когда пишите тест кейс нужно помнить очень простую связку:
Объект – Действие – Результат
Объект – это всё что угодно: от расположения точек в картинке, до строк файлов, от кнопок до всей платформы целиком.
Действие – что мы делаем [...]]]></description>
			<content:encoded><![CDATA[<p>Рекомендации были написаны для внутреннего употребления и пришлось вырезать некоторые части и ссылки. Что то вообще не соответствует теории.<span id="more-288"></span></p>
<h2>Общее</h2>
<p>Всегда, когда пишите тест кейс нужно помнить очень простую связку:</p>
<blockquote><p>Объект – Действие – Результат</p></blockquote>
<p><strong>Объект</strong> – это всё что угодно: от расположения точек в картинке, до строк файлов, от кнопок до всей платформы целиком.<br />
<strong>Действие</strong> – что мы делаем с объектом.<br />
<strong>Результат</strong> – что получилось в результате действия  с объектом.</p>
<p>В идеале результат действия один, в принципе, к этому надо стремиться. Но в реальности производимое действие может аукнуться в разных местах. И это не всегда проблемы архитектуры. Особенно часто несколько результатов появляется при тестировании пользовательских интерфейсов или многопоточных приложений.</p>
<h2>Термины</h2>
<p>В зависимости от продукта они разные, но это и понятно. Точное название зачастую могут дать разработчики, и если вы стопроцентно не уверены как правильно называется элемент – спросите девелопера, ткните девелопера, кусите девелопера, порвите его как грелку, но точное название должно быть.<br />
Будьте внимательны и используйте правильно следующие термины «Panel» и «Form» (группировка и интерактивность), «Window» и «Dialog» (окно, контролируемое процессом и окно, желающее пользователя). Так же используйте правильно «left» и «right» (лево и право).<br />
Не забывайте, так же что:</p>
<ul>
<li>«button» нажимают: «press» или «push»;</li>
<li> «link» и большую часть элементов кликают: «click»;</li>
<li> «menu», «menu+tree+list+grid item» выбирают:  «select»;</li>
<li> «check box» и «radio box» выделяют: «check» или «flag»;</li>
<li> текст вводят: «type» или «enter»;</li>
<li> информацию и объекты показывают: «show», «display», «pop-up» и иногда «appear» (когда хоба, его никто не ждал, а оно появилось);</li>
<li> последовательность существительных в английском переводится задом наперёд;</li>
<li> «number» – это и «integer» и «float» («real»);</li>
<li> «string» – это и буквы и «number»;</li>
<li> «number» может включать в себя буквы от «A» до «F» и «E», точки или запятые, как указатель дробной части;</li>
<li> «text» – это набор «string», обычно со смыслом.</li>
</ul>
<h2>Подходы к написанию тест кейсов.</h2>
<ol>
<li>Прямое описание</li>
<li> Описание на основе определений</li>
<li> Группировка объектов по признаку</li>
<li> Зацикливание тест кейса</li>
<li> Ссылки на другие тест кейсы</li>
<li> Alias</li>
<li> Начальные и пост- условия</li>
</ol>
<p>Частенько они переплетаются в одном тест кейсе.</p>
<h3>Прямое описание</h3>
<p>В двух словах – это то, что вижу, то и пишу. Удобно, когда сценарий простой, а объекты четко определимы. Если взять главную страницу Google.com (классическое представление), то там можно четко определить следующие элементы:</p>
<ul>
<li>Логотип (image)</li>
<li>Поле ввода (input box, input field)</li>
<li>Две кнопки (button)</li>
<li>Группа из двух радио боксов (я не знаю, как правильно перевести radiobox на русский, никогда не задумывался).</li>
</ul>
<p>Можно так же определить все ссылки, назвав их, но это будет неправильно, потому что они явно представлены в разных блоках и имеют косвенное отношение к главной функции – поиску, но об этом позже.<br />
Имея эти элементы легко составить тест кейсы по проверке формы для поиска:<br />
<strong>Step 1. Type “wiki test case” string into input box and press “Google Search” button<br />
Result: New page will be opened in same window with list of sites<br />
Step 2. Check that any word from search phrase present in any part of site representation (in title, description, URI or Sitelinks)<br />
Result: Each site in search results list contains any or few words from search phase</strong></p>
<p>Хозяйке на заметку: «Sitelinks» &#8211; это определение используется только в гугл (в контексте показа результатов поиска) и означает небольшой блок из 1 – 8 ссылок на внутренние ресурсы сайта. Причем будет или не будет показываться этот блок для сайта и какие ссылки он будет содержать решают только в Google. Впрочем, если у вас есть доступ в Webmaster Tolls, вы это уже знаете.</p>
<p>Нужно ли писать так много слов? Вовсе нет, можно вообще написать «Type “wiki test case” and press “Google Search” button» и «Verify that search result contains search phrase parts». Еще разок повторю, писать надо так, чтобы было понятно, что сделать, с чем сделать, и какой результат ожидать. А это значит, что использовать слова «corresponding, proper, respective» и прочие со смыслом «правильный» использовать нужно аккуратно. Например, фразы в «Expected Results»: «Respective blank appeared in the left frame» и «Check time» &#8211; ничего не значат, и писать надо, например, так «”Budviser Panel” loaded into left frame» и «Check that time format is “HH:MM:SS”, where HH – hours (24h или 12am/pm), MM – minutes, SS &#8211; seconds».<br />
В общем и целом в прямом описании сценария нет ничего сложного или заумного, достаточно внимательно описать действия и объекты, при возможности строя новый шаг тест кейса на основе предыдущего, тогда простота описания «Expected result» получится сама собой.</p>
<h3>Описание на основе определений</h3>
<p>Определения позволяют сильно сэкономить, когда в тест кейсе какая-то информация повторяется несколько раз. Например, при проверке однотипных значений, которые легко описать в виде формата, например время, элементы списков, записи в логах и так далее.</p>
<p>У определения есть имя и значения, описывается оно в комментариях тест кейса, например:</p>
<p>“Long Time” format is HH:MM:SS, where HH is hours from 0 to 23, MM are minutes 0-59, SS are seconds 0-59.</p>
<p>После чего «Long Time» можно использовать в тексте тест кейса вместо полного описания.</p>
<p>Точно так же поддаются определению практически любые объекты, группы и значения. Помните, что то, что понятно вам, может быть непонятно другому человеку.</p>
<p>Использование определений поможет вам сократить количество писанины, упростить текст тест кейса и при этом поможет другому человеку лучше понять что правильно, а что нет во время проверки.</p>
<h3>Группировка объектов по признаку</h3>
<p>Это опять-таки имеет отношение к проверке однотипных объектов и упрощению тест кейсов. В данном случае в одном шаге тест кейса объединяется проверка сразу нескольких объектов. Классическое тестирование это развлечение не приветствует, но мне всё равно. При таком подходе пишется следущее:</p>
<p><strong>Step 1: Check property ‘x’ of objects: a) ‘Object a’ b) Object ‘b’ c) Object ‘c’<br />
Expected Result: property ‘x’ is in format of (has value of)</strong></p>
<p>То есть в разных объектах значение, какого-то свойства одинаковое, но при этом объекты могут быть независимыми друг от друга.</p>
<h3>Зацикливание тест кейса</h3>
<p>Это миф. Тест кейс зацикливать нельзя. То есть писать «Repeat steps 1-3» не стоит. А собственно почему? Только потому, что это прерывает последовательность шагов? Вот фигня то. Тест кейс – это обычный сценарий действий, и если действительно нужно повторить шаг с первого по третий, то почему бы не повторить? Но вот если шаг 1-3 говорит о том, что действие надо сделать с  объектом «А», а нужно повторить эти шаги для объекта «Б», тогда придется писать эти шаги снова, но уже для объекта «Б». Так же придется делать, если количество шагов больше семи (магическая цифра, найденная психологами или психиатрами).</p>
<h3>Ссылки на другие тест кейсы</h3>
<p>Допускаются только в комментариях. Нельзя написать пройдите тест кейс «TC-1» ни в шагах, ни в начальных или пост- условиях. Потому что тест кейс – самостоятельный сценарий и для его выполнения не требуются другие тест кейсы.</p>
<h3>Alias</h3>
<p>Набор действий, с чётко известным результатом, выраженные простой фразой или словом, которые нужно совершить перед началом прохода по тест кейсу. Например &#8211; логин.</p>
<p>Смысла описывать в каждом тест кейсе одни и те же рутинные операции имеет ли смысл? Для этого допустимо (хотя классическая теория это запрещает) использовать ассоциацию, связанную с набором этих операций. Возвращаясь к пример. Логин – вроде как понятное определение, но даже у нас оно будет включать разные действия в разных проектах, но смысл везде один – идентификация и авторизация в системе, получение доступа к набору персонализированной информации.</p>
<p>Поэтому в тест кейсах в начальных условиях можно просто написать «User must be logged in», «User must be authorized», «User logged into [] under [] role». Понятно ли что нужно сделать перед тем, как начать работу с тесткейсом? Единственное «но», алиас всё равно должен быть описан где-либо в доступном месте (FAQ к проекту вполне подойдет).</p>
<h3>Начальные и пост- условия</h3>
<p>Состояние тестируемой системы до и после теста. Что означает «До», в принципе, проблем не должно быть. Я надеюсь. Очень.<br />
После – это то, как изменилась вся или часть системы, когда тест пройден успешно. Это эдакая последняя проверка на то, что даже правильно работающие кусочки, проверенные последовательно не отразились в сумме своей на системе негативно.</p>
<p>Хозяйке на заметку: <a href="http://blog.abakas.com/2009/02/look-even-when-you-know.html" target="_blank">http://blog.abakas.com/2009/02/look-even-when-you-know.html</a><br />
Это только начало…</p>
]]></content:encoded>
			<wfw:commentRss>http://alsedi.com/blog/rutinnoe-test-kejsy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Департамент QA: Отслеживание задач как часть информационной системы (часть 2)</title>
		<link>http://alsedi.com/blog/departament-qa-otslezhivanie-zadach-kak-chast-informacionnoj-sistemy-chast-2/</link>
		<comments>http://alsedi.com/blog/departament-qa-otslezhivanie-zadach-kak-chast-informacionnoj-sistemy-chast-2/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 16:57:09 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[ALSEDI]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[jira]]></category>
		<category><![CDATA[task tracking]]></category>
		<category><![CDATA[департамент qa]]></category>
		<category><![CDATA[контроль работы]]></category>
		<category><![CDATA[менеджмент]]></category>
		<category><![CDATA[отслеживание задач]]></category>
		<category><![CDATA[ошибки]]></category>
		<category><![CDATA[процесс разработки]]></category>
		<category><![CDATA[процесс тестирования]]></category>
		<category><![CDATA[тестирование]]></category>

		<guid isPermaLink="false">http://alsedi.com/blog/?p=113</guid>
		<description><![CDATA[В первой части я кратко упомянул о том, как может выглядеть процесс выпуска релиза в небольшой компании. В больших фирмах существует намного больше людей, которые заинтересованы в конечном продукте. Некоторые мнения приходится учитывать не только в процессе выпуска программного продукта, но и при создании информационной системы о процессе разработки и тестирования.
Ниже показаны основные группы людей, [...]]]></description>
			<content:encoded><![CDATA[<p>В <a href="http://alsedi.com/blog/departament-qa-oshibki-upravleniya/" target="_blank">первой части</a> я кратко упомянул о том, как может выглядеть процесс выпуска релиза в небольшой компании. В больших фирмах существует намного больше людей, которые заинтересованы в конечном продукте. Некоторые мнения приходится учитывать не только в процессе выпуска программного продукта, но и при создании информационной системы о процессе разработки и тестирования.<br />
Ниже показаны основные группы людей, которым может потребоваться информация о том, что происходит с продуктом и что в нём будет еще до момента финального релиза.</p>
<div class="wp-caption alignnone" style="width: 522px"><a href="http://www.alsedi.com/blog/wp-content/upload/questions.png"><img src="http://www.alsedi.com/blog/wp-content/upload/questions_th.png" alt="Заинтересованные в релизе группы людей" width="512" height="324" /></a><p class="wp-caption-text">Заинтересованные в релизе группы людей</p></div>
<p><span id="more-113"></span>Список вопросов неполный, но QA должны знать ответы хотя бы на них. Для этого, в первую очередь, потребуется отслеживать выполнение задач по разработке и тестированию. Существование трекера первый шаг к построению нормальной информационной системы.<br />
Подойдет любая система трекинга, в которой можно реализовать такую структуру (я предпочитаю <a href="http://www.atlassian.com/software/jira/" target="_blank">Atlassian Jira</a>, для небольших проектов <a href="http://eventum.mysql.org/wiki/index.php/Main_Page" target="_blank">Eventum</a>):</p>
<ul>
<li>Backlog – группа проектов в которой по версиям и продуктам разбиваются пожелания и требования бизнес стороны. Это не только спецификации (ТЗ), но и простые заметки, пришедшие от бизнес стороны в стиле «нужно сделать это, примерно вот так функционирует и выглядит». На основе таких «business story» можно построить спецификацию и согласовать с бизнесом.</li>
<li> Development Project – Группа проектов по разработке конкретных продуктов. Основная часть задач появляется с привязкой к Backlog проекту. Это позволяет отслеживать соответствие требованиям бизнеса и начать работу QA еще до завершения разработки (что-то вроде Test Driving Development, но мягче).</li>
<li>Feedback – Группа проектов для получения отзывов от клиентов и бизнес стороны по работе текущей версии и проблемам с ними связанным (но не для трекинга багов по разрабатываемой версии).</li>
<li>QA – Группа проектов, привязанных к таким же проектам в Development Project. В них будет вестись трекинг задач, связанных с тестированием версии или общей работы, но не багов!</li>
<li>Bugs – Группа проектов, привязанных к проектам в QA и Development Project. Здесь тестировщики создают все таски связанные с найденными ошибками и предлагают улучшения проектов.</li>
</ul>
<p>Зачем нужно три проекта для QA? Для того, чтобы не создавать мусорной кучи. Feedback доступен не только тестировщикам (которые, по идее, знают о разрабатываемых продуктах больше остальных), но и бизнес стороне. Люди со стороны бизнеса имеют полное право не знать о том, что существует множество версий и множество компонент внутри продуктов, но должны иметь возможность сообщить о проблеме при работе. Для этого им нужно знать только что они делали и версию продукта, с которым они работали (а не всю систему), когда появилась проблема.</p>
<p>Причем, не важен тип решения (а пользователь может и не знать что там еще стоит за окном в которое он смотрит), разрабатываемого компанией:</p>
<ul>
<li> самостоятельное приложение;</li>
<li> серверное приложение с доступом из стороннего (Web сервис, XML/HMTL сервер);</li>
<li> клиентское приложение с доступом к стороннему (Debuggers, разнообразные сетевые клиенты);</li>
<li> клиент-серверное приложение, с собственным сервером и клиентом (платформы с удаленным доступом);</li>
</ul>
<p>Разобраться где конкретно ошибка и ошибка ли дело QA и разработчиков. Часто разработчики могут сделать это быстрее.</p>
<p>Тестировщики знают о продуктах компании больше и лучше понимают структуру проектов. Соответственно, могут указать намного больше данных при заведении ошибки. Для тестировщика требуется совершенно другое окружение и набор возможностей при заведении багов, чем бизнесу. Создание одного проекта приведет к тому, что либо будут проблемы у бизнес стороны, либо тестировщикам придется урезать вводимые данные. Так же, если записи бизнеса о проблемах не всегда являются прямым руководством к действиям разработчиков, то ошибки, найденные тестировщиками, должны как можно быстрее обрабатываться и в соответствии с серьезностью переноситься в план разработки или <span style="text-decoration: line-through;"><span style="line-through;">расстреливаться</span> </span>исправляться сразу.</p>
<p>Группа проектов QA позволяет отделить работу по тестированию от результатов. Для каждого релиза создается свой набор обязательных задач для проверки. В зависимости от проекта и версии список может меняться, адаптируясь под условия. Вместе с рутинными задачами в эти проекты могут быть добавлены задачи относящиеся к процессу тестирования. Например, автоматизация тестов, исследования программ и методик для тестирования.</p>
<p>Принципиальная схема процесса при такой структуре проектов выглядит так:</p>
<div class="wp-caption alignnone" style="width: 310px"><img src="http://alsedi.com/blog/wp-content/upload/projects-structure.png" alt="Потоки информации между проектами" width="300" height="500" /><p class="wp-caption-text">Потоки информации между проектами</p></div>
<p>При использовании этой схемы Backlog объединяет в себе первичные требования бизнеса, общее обсуждение технической реализации или ТЗ (в зависимости от возможностей), проблемы из Feedback и Bugs, которые требуют много времени на исправление или переработки бизнес логики. Основные задачи в Backlog описывают большие куски работы, разбиение которых делается через сабтаски. Далее эта информация клонируется (или разбивается на части и клонируется) в проекты по разработке и добавляется в задачи по подготовки к тестированию в QA проектах (написание тесткейсов, переработка существующих тестов, автоматизация и так далее). После релиза в соответствующем проекте QA создаётся общая задача на тестирование, а конкретная работа выделяется в сабтаски. При нахождении ошибок при тестировании они описываются в соответствующем проекте Bugs и либо клонируются в Development Project, либо заносятся в Backlog для позднего исправления. Процесс запускается по новой… в идеале.</p>
<p>В реальности, появляется множество событий и проблем, которые требуют быстрого решения. При этом рушится стройная последовательность действий, и затягиваются сроки релиза и тестирования, но логически модель не разрушается. Главное в такой ситуации сохранять трэкинг задач. Всегда записывать то, что делается. Тогда, позднее, можно будет собрать всю необходимую информацию о проделанной работе и её результатах.</p>
]]></content:encoded>
			<wfw:commentRss>http://alsedi.com/blog/departament-qa-otslezhivanie-zadach-kak-chast-informacionnoj-sistemy-chast-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Департамент QA: Ошибки управления</title>
		<link>http://alsedi.com/blog/departament-qa-oshibki-upravleniya/</link>
		<comments>http://alsedi.com/blog/departament-qa-oshibki-upravleniya/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 12:44:29 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[ALSEDI]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[департамент qa]]></category>
		<category><![CDATA[менеджмент]]></category>
		<category><![CDATA[ошибки]]></category>
		<category><![CDATA[процесс тестирования]]></category>
		<category><![CDATA[тестирование]]></category>

		<guid isPermaLink="false">http://alsedi.com/blog/?p=51</guid>
		<description><![CDATA[Это первая заметка из серии публикаций о наиболее частных проблемах QA, с которыми я сталкивался. Мне пришлось многие вещи пройти и найти самому, и я допустил множество мелких, а иногда и крупных, ошибок.
Когда я пришел в компанию, у меня был довольно большой опыт в ведении тестирования (как части QA) и разработки программ. Опыта управления процессом, [...]]]></description>
			<content:encoded><![CDATA[<p>Это первая заметка из серии публикаций о наиболее частных проблемах QA, с которыми я сталкивался. Мне пришлось многие вещи пройти и найти самому, и я допустил множество мелких, а иногда и крупных, ошибок.</p>
<p>Когда я пришел в компанию, у меня был довольно большой опыт в ведении тестирования (как части QA) и разработки программ. Опыта управления процессом, в котором задействовано много людей и разные команды, практически не было. Фактически, на тот момент «картина мира» для меня выглядела так.</p>
<div class="wp-caption aligncenter" style="width: 416px"><img src="http://alsedi.com/blog/wp-content/upload/earlier-map-of-world.png" alt="Мифическая организация разработки" width="406" height="475" /><p class="wp-caption-text">Мифическая организация разработки</p></div>
<p><span id="more-51"></span></p>
<p>Такая схема нормально работает в маленькой компании, разработка в которой основана на персоналиях, со сплоченным коллективом (модные ныне стартапы, но до получения венчура; компании, занимающиеся узкоспециализированной разработкой; shareware). Причина этого в том, что снимается нагрузка с бизнес стороны, исчезает множество внутренних и внешних факторов, мешающих выпуску релизов. Плюс все участники понимают, зачем они работают.</p>
<p>В большой компании, выпускающей крупные продукты, с разделенными географически офисами (сюда можно включить оффшорные компании и местные (domestic) филиалы компании), эта схема разбивается вдребезги. Всё оказалось намного сложнее. Бизнес сторона не всегда может что-либо спланировать или четко сказать, что нужно сделать. Изолированность оффисов приводит к недостатку коммуникаций и не пониманию реальной ситуации и потребностей. А о технической документации вообще задумываются редко, особенно когда речь заходит о взаимодействии связанных, но разных частей системы (лучший пример клиент-серверная архитектура). А помимо пресловутого треугольника существует еще множество разнообразных служб и подразделений: Application Management, Системные администраторы, Backoffice, поддержка клиентов и пользователей и бог знает кто еще. И все, даже новенькая уборщица, имеют свой собственный взгляд на то, каким должен быть финальный продукт. Шутки шутками, но в реалиях действительно существует множество людей, прямо или косвенно использующих финальный продукт, имеющих разные взгляды на разработку и качество продукта. В результате всего этого, при отсутствии продуманного менеджмента, через некоторое время, возникает хаос. Часто, в этот момент владельцы или топ-менеджеры задумываются о тестировании и Quality Assurance.</p>
<p>В зависимости от мировоззрений руководства роль QA может сильно отличатся в разных компаниях. Соответственно и возможности менеджмента ограничены только этим. В любом случае, сначала придется работать в тех условиях, которые есть, с прицелом на то, чтобы получить больше возможностей для проведения улучшений, а для того чтобы это происходило легче нужно избегать ошибок в работе. Наиболее частные ошибки… ага, так очень любят писать, хотя откуда такие данные никому не известно. А мои ошибки были такие:</p>
<ul>
<li>нерегулярное или несвоевременное оповещение руководства о проблемах и статусе тестирования в целом;</li>
<li>не совсем корректное и эмоциональное общение с членами процесса, которых я по каким-либо причинам считал профанами или бездельниками, но это противоречило мнению руководства;</li>
<li>слишком большой упор на скурпулезное документирование в разработке;</li>
<li>негибкость и непрозрачность процессов тестирования;</li>
<li>не всегда четкий план и сроки тестирования;</li>
<li>недостаточное количество метрик для оценки качества релизов;</li>
</ul>
<p>Таким образом, реально самые частые ошибки менеджера это самоуверенность, гордость и лень. Да, да, почти всё из списка смертных грехов. Всё остальное это всего лишь следствие. Почитав программы разных курсов для менеджеров, я встретил упоминания лишь о том, как надо общаться с людьми. Но как определить и устранить проблемы связанные с собой, почему то никто не рассказывает.</p>
<p>Частично своим умом, частично после советов коллег и «шпилек» от начальства, я смог определить план исправления ситуации. Начал я с построения общей информационной системы, позволившей упорядочить процесс тестирования и репортинг, при этом не сильно нагружая тест менеджеров.</p>
]]></content:encoded>
			<wfw:commentRss>http://alsedi.com/blog/departament-qa-oshibki-upravleniya/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
