Записи с метками тестирование
Надвигается Selenium Camp 2012!
1 Февраль

Осталось меньше месяца до проведения масштабного мероприятия, целиком посвященного продукту для тестирования web-приложений Selenium. Конференция Selenium Camp 2012 пройдет в Киеве 25 февраля. Кроме того, что это прекрасный повод пообщаться с коллегами, Selenium Camp будет интересен как отличная стартовая точка для тех, кто только задумывается о применении Selenium, а также для профессионалов, использующих его долгое время.
Уже зарегистрировано более 250 участников из разных городов Украины, России, Беларуси и Сербии. Состав участников очень интересный и конференция станет отличной площадкой для обмена опытом и знаниями.
Программа конференции на финальной стадии формирования и организаторы приготовили приятные сюрпризы. Выступления будут проходить параллельно на 3-ех сценах. Участники смогут посетить около 20 докладов. Помимо сильного состава докладчиков из СНГ, Selenium Camp посетят иностранные гости.
Первым принял предложение выступить David Burns. David – опытный разработчик тестов в Mozilla, один из разработчиков WebDriver, отвечает за Python драйвер, активно ведет блог theautomatedtester.co.uk и является автором книги «Selenium 1.0 Testing Tools: Beginner’s Guide».
Следующий докладчик является разработчиком сразу двух инструментов: Selenium/WebDriver и Watir. Это Jari Bakken. Jari создал проект watir-webdriver, где объединил эти два инструмента. На данный момент он работает инженером по тестированию в компании FINN.no, где занимается автоматизацией тестирования и инфраструктурой для тестирования.
Samit Badle также дал согласие выступить на конференции в этом году. Это еще один член команды разработки Selenium/WebDriver. Он также является автором многих плагинов для Selenium IDE и ведет свой блог о Selenium – blog.reallysimplethoughts.com.
Еще один гость из далекого зарубежья - Dmitriy Kovalenko. Дима за 8 лет в тестировании успел поработать во многих известных компаниях: Rosetta Stone Inc., ThoughtWorks, Centro, Groupon. Последние 2 года он работает в сфере DevOps. Имеет большой опыт работы с Selenium и делится им в своем блоге agilesoftwaretesting.com.
В преддверие конференции, 24 февраля, пройдет образовательный день. В этот день будут проводиться тренинги и мастер-классы для различного уровня участников. Более 50 человек примут участие в образовательной программе в этот день. Вы имеете уникальную возможность поучиться у профессионалов в области автоматизации тестирования с использованием Selenium.
Уже определено место проведения конференции – это конференц-залы бизнес-центра «Парус». Помимо наличия комфортных залов для проведения мероприятия, бизнес-центр очень удачно расположен в самом центре Киева. Адрес бизнес-центра: ул. Мечникова 2а. Схему проезда и ближайшие транспортные маршруты можно посмотреть на карте или найти на официальном сайте.
Напоминаем, что с 1 февраля начался последний этап регистрации, который продлится до 20 февраля. Если вы еще не приняли решение об участии, то самое время это сделать. Присоединяйтесь, будет интересно!
Стоимость качества. Часть 3 – Как это посчитать?
30 Январь
Завершая серию статей о стоимости качества подходим к практической части, а именно, как это посчитать? Для того, чтобы были конкретные данные, на основании которых можно было бы принимать какие-либо управленческие решения. Напомню о предыдущих статьях и для начала рекомендую их прочесть: «Стоимость качества. Часть 1 – Что это такое?», «Стоимость качества. Часть 2.1 – Зачем это надо?», «Стоимость качества. Часть 2.2 – Кому это надо?».
Так как сбор и интерпретация данных относится к дисциплине метрик, то здесь стоит обратить внимание на классический треугольник успешности и полезности измерений:
- Люди – должны быть обучены данной дисциплине, по крайней мере понимать зачем все это. И, естественно, должны иметь возможность (санкционированное время, желание, инструментарий и т.п.)
- Процессы – должны быть. Все рабочие процессы, например: как мы готовим тестовую документацию и тестируем, жизненный цикл дефекта, жизненный цикл задач и т.п. должны быть в том или ином виде описаны-оговорены и донесены до исполнителей
- Инструментарий – собственно те технические средства, которые помогают людям делать их процессы – тайм трекеры, баг трекеры, таск трекеры и т.п. Именно они, при корректной интеграции в процессы работы и при соответствующей настройке, позволяют и собирать данные, и обрабатывать, и презентовать.
В этой статье поговорим именно об инструментарии.
Для начала обратимся к такой дисциплине как Scope Management – управление объемом работ по проекту. В первую очередь это правило 100%, т.е. список работ по проекту должен отражать абсолютно ВСЕ работы и им должно быть место в расписании работ, плановые и фактические трудозатраты по ним должны быть оценены и отрапортованы. ВСЕ – в т.ч. инспекции документов, устранение дефектов, совещания, и даже участие в интервью по набору персонала на проект…
Хорошо помогают шаблоны списков работ (WBS – work breakdown structure).
Ключевым моментом является такая декомпозиция списка работ, где были бы выделены отдельные задачи (берем для примера разработчика), и, соответственно временнАя отчетность на:
- Инспекцию спецификаций (COQ)
- Разработку архитектуры
- Юнит тесты (COQ)
- Кодирование
- Инспекцию кода (COQ)
- Устранение дефектов после тестирования (COPQ)
- Разворачивание продукта в тестовом окружении
- Устранение дефектов по гарантийным обязательствам (COPQ)
- Устранение дефектов после инспекции кода (COPQ)
- И т.п.
В скобках указаны интересующие нас категории – COQ, COPQ. На самом деле, отнесение некоторых задач в какую-то категорию – это ваше решение, например, юнит тесты можно отнести и в разработку. Общие же рекомендации что есть что приведены в первой статье «Стоимость качества. Часть 1 – Что это такое?».
Как далеко идти с декомпозицией – решать вам в зависимости от того, что нужно и что вообще имеет смысл. Например, устранение дефектов после тестирования можно отнести как в общую для всех разработчиков задачу «Устранение дефектов», так и разделять, например, по модулям – «Устранение дефектов по модулю №1» и т.д.
Таким образом, если у вас есть такие компоненты:
- Корректная декомпозиция работ
- Таск-тайм трекер, который позволяет отразить и декомпозицию, и отчетность о затраченном времени
- Обучающие меры для сотрудников – как пользоваться таск-тайм трекером
То сбор данных по соответствующим категориям у вас настроен, и что немаловажно, интегрирован в рабочие процессы. И вы легко можете получать информацию о стоимости качества.
Конечно же, возникают некоторые тонкости в организации и процессов работы, и инструментария. Давайте посмотрим на примеры.
Что такое дефект и как его учитывать? Обычно, если тестировщик находит дефект, то он (дефект) попадает в систему управления дефектами как отдельная запись с описанием, серьезностью и другими параметрами. Но ведь дефекты, найденные, например, на инспекции кода, по существу, ничем не отличаются от дефектов, найденных тестировщиком. И они обычно никак не учитываются, в лучшем случае фиксируется время, потраченное на инспекцию кода. Но возникает резонный вопрос – а зачем это надо вообще? Если уж вы решили определять стоимость качества, то нужно, как минимум фиксировать время на инспекцию кода и время на исправление дефектов, найденных при инспекции. Если вам это не нужно – то не делайте, это будет пустая трата времени и раздражающий фактор для сотрудников. Если вы хотите таки фиксировать не только время на инспекцию, то можно осторожно попробовать использовать систему управления дефектами – например на каждый факт инспекции внести одну запись, к которой приложить список дефектов в коде. По крайней мере необходимость исправить код не потеряется и у вас будут данные о результатах инспекции.
Интенсивная работа с требованиями. А что если требования обсуждаются настолько интерактивно между заказчиком, аналитиком, разработчиками, тестировщиками, что четкая разница между формализацией требований, их инспекцией (обсуждениями) и устранением дефектов (рекомендации, выданные при обсуждениях) не видна? Или же не имеет смысла это разделять. Тут, наверное, лучший вариант – без фанатизма, просто отнести такой вариант работы в задачу «Разработка требований», т.е. к COQ или COPQ не относить вообще. Если же такого интерактива нет, а есть четкое разделение на формализацию, инспекции, и исправление дефектов, и, внимание!, вам действительно надо выделять COQ и COPQ, то предлагаю такой же подход, как и в предыдущем примере – с использованием системы управления дефектами.
Завершая цикл хочу сказать, что серьезно «заводиться» со стоимостью качества и метриками стоит лишь в том случае, если у вас есть:
- Великая цель – зачем это делать и кому от этого будет лучше
- Подготовка по теме – как это работает
- Здравый смысл – в разумной реализации Великой цели
Надеюсь, что это было вам полезно.
Оригинал статьи здесь.
Стоимость качества. Часть 2.2 – Кому это надо?
23 Январь
Продолжаю серию статей о стоимости качества. Две предыдущие: «Стоимость качества. Часть 1 – Что это такое?» и «Стоимость качества. Часть 2.1 – Зачем это надо?». В этой же статье рассмотрим «Кому это надо?». Очень рекомендую обратить внимание на предыдущие статьи, т.к. они представляют собой логическую цепочку рассуждений.
Здесь рассмотрим, в каких ситуациях следует (или не следует) озаботиться стоимостью качества и относительной величиной его доли в общем объеме работ. Давайте рассмотрим несколько вариантов. Но для начала вспомним классическую диаграмму стоимости изменений (Cost of Change), но будем ее понимать в контексте стоимости устранения дефектов, т.к. график по своей сути не меняется.

Смысл в том, что чем дальше мы продвигаемся по времени, тем дороже обходится устранение дефектов. Например, если не удалось выявить несоответствие в требованиях вначале (что на самом деле очень дешево сделать), то потом скорее всего придется «перепедаливать» на значительно бОльшую сумму.
Представленный ниже список вариантов далеко не исчерпывающий, рассмотренные ситуации и выводы по ним в вашей деятельности могут отличаться от приведенных ниже. А также могут быть и комбинации этих вариантов.
Вариант 1. Проект типа Fixed Price.
Соответственно, и скорее всего, помимо бюджета четко зафиксированы объем работ и сроки. Здесь нужно в первую очередь обращать внимание на требования и критерии приемки. Оставим в стороне дискуссию о возможной неполноте и изменчивости требований, о применимости этого типа контракта, это регулируется другими механизмами. Здесь становиться очевидным, что нужно стараться минимизировать COPQ, т.к. это напрямую влияет на доход и, возможно, на штрафные санкции, и-или на расходы по гарантийным обязательствам. Но с другой стороны минимизация COPQ выражается в увеличении COQ, и тут тоже нужно не переусердствовать. На помощь приходит вышеуказанная диаграмма «Стоимость устранения дефектов». Напрашивается вывод, что имеет смысл уделить особое внимание процедурам из COQ как можно раньше. А именно – постановке процессов обеспечения качества и реализации мер контроля (инспекции спецификаций, архитектуры, кода, тестовой документации и т.п.). См. подробности в статье «Стоимость качества. Часть 1 – Что это такое?». Стоимость процедур COQ легко считается и планируется, и также легко соотносится со штрафными санкциями.
Кому это надо? Компании Исполнителю, т.к. это ее доход и репутация. Говоря о процедурах из COQ, то немного бОльший фокус должен быть на эти меры на начальных стадиях, т.к. последствия от их неприменения скорее всего аукнутся относительно бОльшими расходами на COPQ.
Вариант 2. Служба поддержки (или любая деятельность, которая по своей сути не есть проектом, а есть повседневной операционной деятельностью, или для простоты – конвейером).
Этот вариант является просто идеальной почвой для «экспериментов» по выявлению наилучшего соотношения COQ, COPQ и собственно стоимости предоставления услуг. Путем внедрения улучшений можно определить какой процесс и какое соотношение COQ и COPQ способствует наилучшему соотношению стоимости, количества и качества результатов деятельности. Под COPQ в этом случае подразумеваются переделки из-за некорректного выполнения запроса на поддержку.
Кому это надо? Компании Исполнителю для снижения расходов и увеличения удовлетворенности пользователей, клиентов. Но опять же, тогда, когда есть явные проблемы. Если все всех устраивает, то нужно ли что-то менять или считать?
Вариант 3. Проект или долгосрочное партнерство по контракту типа Cost Reimbursable.
Контракт Cost Reimbursable предполагает что Заказчик оплачивает исполнителю его расходы плюс прибыль. Есть несколько разновидностей. Не вдаваясь в подробности, это хорошо подходит для долгосрочного outstaffing, в основном по разработке, развитию или поддержке больших продуктов. Здесь особенность в том, что Исполнитель не очень заинтересован сокращать свои расходы, т.к. на каждый доллар расходов он получает некий % прибыли. И если у Заказчика нет жестких требований к процессам работы, то так или иначе это расслабляет Исполнителя. И этот «расслабон» по традиции уменьшает усилия, входящие в COQ и увеличивает COPQ. В таком типе взаимоотношений Заказчик обычно имеет гораздо бОльший контроль над процессами и в принятии решений, чем в Fixed Price. Поэтому…
Кому это надо? Я бы сказал 50-50 и Заказчику и Исполнителю. Заказчику – для снижения своих расходов и увеличения производительности Исполнителя. Исполнителю – для поддержания репутации и, как результат для сохранения взаимоотношений. Причем, в силу долгосрочности отношений, это также является благодатной почвой для улучшений и оценки их эффективности.
Вариант 4. Деятельность или продукт для систем класса life critical или mission critical.
Здесь, очевидно, доля COQ будет (и должна быть) очень высока, причем все ее аспекты, а особенно превентивная составляющая. И она может легко превышать и собственно долю разработки и долю COPQ. Обычно только достаточно зрелые компании могут обеспечить выполнение процедур, из которых состоит COQ.
Кому это надо? И Заказчику и Исполнителю, причем для обоих фокус скорее не в снижении расходов, или в скорости работы, а в качестве (надежности) таких систем.
Вариант 5. Пилотные проекты с целью развития бизнеса.
Здесь могут быть какие угодно варианты о том, что важно или нужно. От «слепить» что-то побыстрее, до демонстрации зрелости процессов работы. Также играет роль бизнес перспектива, Исполнитель легко может сработать себе в убыток, чтобы заполучить «вкусного» заказчика. Говоря о COQ и COPQ для этого варианта, и основываясь на собственном опыте скажу, что это вариант очень похож на mission critical. Но есть и отличия. К COPQ здесь можно, без преувеличения, прибавить стоимость упущенной возможности, т.е. потенциальную сумму контракта (если вы потеряли потенциального заказчика именно из-за плохого качества «пилота»).
Кому это надо? Однозначно Исполнителю. По-моему, пилотные проекты «вкусного» класса должны рассматриваться как mission critical, с особым вниманием процедурам из COQ.
Вариант 6. Качество устраивает.
В своей деятельности сталкивался с ситуациями, когда заказчик совершенно осознанно диктовал условия по занижению COQ по причине бюджетного ограничения. А именно, или исключались некоторые процедуры по контролю качества, и-или была явно недостаточная пропорция разработчиков или тестировщиков. Заказчику нужно было «напедалить» как можно больше. Причем Заказчик совершенно осознавал к чему это приведет, и его совершенно устраивало то среднее качество, которое он получал. К счастью, такие заказчики были достаточно технически развиты и адекватны.
Кому это надо? В этом случае больше Заказчику, т.к. он совершенно осознает что делает и отдает себе отчет о результатах.
В итоге, чтобы понимать, кто и в каких ситуациях заинтересован в улучшениях, затрагивающих соотношение затрат на COQ, COPQ и разработку продукта (и процедуры входящие в них), нужно проанализировать среду обитания проекта, деятельности. Надеюсь, что приведенные выше варианты прояснили как это можно сделать.
Просьба не воспринимать буквально следующие цифры, это скорее относительные взаимоотношения доли COQ и COPQ в общей стоимости проекта, деятельности. Приведу по тем вариантам, где есть опытные данные.
- Вариант 1. COQ + COPQ – 40-50% от общей стоимости
- Вариант 3. COQ + COPQ – 30-40% от общей стоимости
- Вариент 4. Опытных данных нет, но осмелюсь предположить что COQ + COPQ – 50-80% от общей стоимости
- Вариант 5. COQ + COPQ – 40-60% от общей стоимости
- Вариант 6. COQ + COPQ – 20-30% от общей стоимости, но из COQ + COPQ бОльшая доля принадлежит COPQ
В следующей статье «Стоимость качества. Часть 3 – Как это посчитать?» поговорим о практических вопросах сбора и интерпретации данных для подсчета COQ + COPQ.
Стоимость качества. Часть 2.1 – Зачем это надо?
18 Январь
Продолжаю тему «Стоимость качества», начало было в предыдущей статье «Стоимость качества. Часть 1 – Что это такое?». Здесь выскажу некоторые соображения о том, зачем и когда нам вообще нужно беспокоиться о стоимости качества и качестве как таковом, а также какая польза от того, что мы его можем определить. Под качеством здесь понимается не только качество конечного и промежуточных результатов работы, но и качество инженерных и управленческих практик, принимаемых решений.
Наиболее очевидны ситуации, когда что-то явно идет не так и нужно как-то реагировать. В общих чертах это типичные проблемы со сроками, качеством, бюджетом, а соответственно недовольные заказчик, руководство, команда проекта. Реагировать – значить что-то менять, улучшать, и в большинстве случаев это что-то – рабочие процессы или какие-то организационные моменты.
Но, возникают вопросы:
- Как доказать и убедиться, что улучшение полезно, для кого или чего именно?
- Как понять, чьим интересам улучшение соответствует, или не соответствует?
Небольшое отступление, скорее всего есть инициатор такого изменения, и скорее всего есть участники проекта, с которыми нужно согласовать (доказать целесообразность) внедрение этого изменения и/или получить их разрешение. Ну а убедиться, что изменение помогло нужно наверное всем в нем участвующим.
Основные согласующие-разрешающие участники это заказчик и руководство, они хорошо понимают язык денег и производительности, т.е. количество пригодных результатов, произведенных проектной командой за эти деньги. Соответственно на этом языке и будем стараться говорить далее.
Еще одно необходимое отступление – по поводу производительности. Это некоторое количество работы в единицу времени. Количество работы «по научному» – размер (size). Наиболее понятный пример – Velocity (Story Points per Sprint), где Story Point – одна единица размера. Это конечно не идеальный способ, но все же существенно лучше чем человеко-часы. Или же, за единицу размера могут приниматься какие-то дискретные виды работ (например, разработка стандартного баннера). Тема размера – это отдельная довольно серьезная дисциплина, по этому поводу есть небольшая ознакомительная статья, а более полный комплект доступен здесь (за подписку).
Для плавного перехода к практическому применению давайте сначала для наглядности посмотрим на следующие диаграммы, иллюстрирующие потенциальное влияние изменений. Предположим, что у нас работает стабильная по составу команда, и за последнее время в среднем соотношение затрат между видами работ такое (из спринта в спринт, из месяца в месяц и т.п.). Где «Создание продукта» – это все что не «Total Quality Costs – TQC» (см. Часть 1), т.е. кодирование, требования и т.п.
Соотношение №1
Исходная ситуация. Соотношения приводятся только в демонстрационных целях, у вас могут быть иные.

Предположим, что кого-то такая ситуация не устраивает, то ли по стоимости, то ли по производительности, то ли по качеству.
Решили что следующие улучшения могут быть наиболее полезными:
- ввести инспекцию спецификаций,
- или же добавить нагрузочное тестирование,
- или же ввести инструментарий прослеживаемости (traceability) требований
Пусть это будут Соотношения №№2-4 соответственно. И пусть они для простоты будут внедряться независимо, по-одному. Рассмотрим потенциальные варианты.
Соотношение №2
Инспекция спецификаций помогла, она, как часть COQ (+5%), помогла существенно сократить COPQ (-10%), высвободив ресурсы. Причем, высвобождение может пойти либо на увеличение производительности (Соотношение №2), либо на экономию средств (Соотношение №2.1).


Соотношение №3
Введение нагрузочного тестирования, очевидно, не помогло – производительность команды понизилась (-5%), т.к. время на него тратится, а COQ повысился (+5%). Заметим, что проверка достижения запланированной нагрузки на приложение тоже входит в TQC, а дефекты, вызванные, якобы, нагрузочными проблемами, таковыми не оказались. Значит, «копали не туда».

Соотношение №4
Внедрение инструментария traceability (+5% COQ) на первый взгляд, не сказалось ни на производительности, ни на экономии средств. Но снизило COPQ (-5%), что можно рассматривать как позитивное явление, т.к. часть дефектов всегда просачивается заказчику, а их меньшее количество вообще означает и меньшее их обнаружение заказчиком, что, как минимум, носит положительный репутационный характер.

Из этих рассуждений, а также забегая немного вперед, скажу, что нет какого-то универсального рецепта о корректном соотношении между COQ, COPQ и общей стоимостью проекта, все зависит от приоритетов по производительности проекта, стоимости, качества, интересов основных заинтересованных лиц.
Подводя итог можно сказать, что:
- Во-первых, если что-то кого-то в проекте не устраивает, то проблемы есть, и надо что-то улучшать
- Во-вторых, если проблемы есть, но непонятно что конкретно может помочь, то можно предположить несколько наиболее полезных улучшений
- НО, в-третьих, нужно понимать, чьим интересам какое улучшение соответствует, или не соответствует. Т.к. даже от самого очевидного улучшения не все участники проекта могут быть счастливы
. Об этом в следующей Части 2.2 - В-четвертых, нужно определить, каким образом будет оцениваться успешность улучшений, так чтобы было поменьше субъективных ощущений и побольше цифр и фактов. Об этом в еще одной – Части 3.
Спасибо за внимание, продолжение следует.
Оригинал статьи здесь.
Стоимость качества. Часть 1 – Что это такое?
10 Январь
Хочу предложить вашему вниманию несколько статей, посвященных стоимости качества. Эта, первая часть, приводит некоторые базовые положения на эту тему. В остальных же буду приводить свои соображения по поводу практического внедрения и применения.
Давайте подумаем, во что выливается плохое качество продукции, причем, неважно о чем речь, то ли о программном продукте, то ли о производстве автомобилей. И не только плохое качество продукции, но и плохое качество процесса производства продукции.
Давайте на примере. Допустим, разрабатываем какое-нибудь более-менее сложное приложение без достаточного внимания таким практикам как бизнес анализ и проектирование (элементы процесса). Вдобавок к этому имеем некачественный код, и для полного «счастья» не выделяем достаточного времени на тестирование.
В совокупности вся эта «радость» приводит к:
- Внутренним переделкам, устранению дефектов. Плохо
- Внешним претензиям от заказчика, опять же ведущим к переделкам, а то и к штрафным санкциям. Очень плохо
- Потере репутации и бизнес возможностей. Невыносимо плохо
Итак, существуют такие основные понятия:
- Общая стоимость качества (Total Quality Costs – TQC), что включает:
- Стоимость качества (Cost of Quality – COQ)
- Стоимость плохого качества (Cost of Poor Quality – COPQ)
В разных источниках по-разному определяют, что именно относиться к COQ или COPQ (а то и вообще не разделяют), мы же здесь посмотрим на наиболее распространенное распределение. Причем, я не претендую на абсолютную правоту, в вашей практике вы можете захотеть сделать это немного по-другому.
- Стоимость качества (Cost of Quality – COQ)
- Cтоимость превентивных мер (Prevention Costs), например
- Настройка и внедрение процессов (разработки ПО), в организации и/или на проекте
- Обучение процессам, инженерным и управленческим практикам, концепциям качества
- Подбор на этапе инициирования проекта совместимых методологий, технологий, типов контрактов, фаз, которые бы наиболее эффективно достигали бизнес целей проекта/продукта
- Идентификация и внедрение улучшений в организации и/или на проекте
- Планирование качества на проекте – виды работ, направленные на обеспечение качества на проекте
- Стоимость контроля (Appraisal Costs), например
- Инспекции спецификаций, архитектуры продукта
- Инспекции кода
- Разнообразные виды тестирования продукта, как конечного, так и промежуточных результатов
- Приемочное тестирование
- Ассоциированные затраты на разворачивание тестовых сред
- Аудиты процессов, результатов
- Cтоимость превентивных мер (Prevention Costs), например
- Стоимость плохого качества (Cost of Poor Quality – COPQ)
- Стоимость устранения внутренних дефектов (Internal failure costs), например
- Затраты на «багфикс» и переделки кода, документа, архитектуры
- Затраты на непригодные к дальнейшему использованию результаты работы
- Вынужденные ре-тестирование и ре-инспекции
- Стоимость устранения внешних дефектов (External failure costs), например
- То же, что и для внутренних, но обнаруженных заказчиком, плюс
- Обработка претензий заказчика
- Затраты по гарантийным обязательствам
- Контрактные штрафные санкции
- Стоимость непрямых убытков (Indirect poor-quality costs), сложно количественно оценить, но это
- Потеря внешней репутации, потенциально ведущая к сокращению, потере бизнеса
- Потеря внутренней репутации – демотивация, сокращение персонала
- Стоимость устранения внутренних дефектов (Internal failure costs), например
В завершении этой статьи приведу классическую фразу Philip B. Crosby, который внес значительный вклад в практики управления качеством и теорию менеджента:
- «Quality is free. It’s not a gift, but it’s free. The ‘unquality’ things are what cost money.»
Он же ввел принцип «Ноль дефектов, – сделай правильно с первого раза».
Далее, в следующих статьях, постараюсь изложить некоторые дальнейшие соображения по поводу стоимости качества, как минимум видится вот это: а – «Зачем и кому это надо?»; б – «Как это работает?».
Оригинал статьи здесь.
Что ждет любителей Agile в январе нового года?
27 Декабрь
Многие уже полным ходом готовятся к новогодним праздникам. И правильно – осталось ждать совсем немного. Первая половина января 2012 года однозначно пройдет в праздничной эйфории. Что же готовит нам вторая половина января?
28 января в Киеве пройдет очередная конференция AgileBaseCamp, на этот раз посвященная продуктовой разработке и имеющая название «From Idea To Product».
Экспорт ресурсов и создание продуктов – две полярные ментальности в сфере программной разработки. Аутсорсинг помогает отрасли идти в ногу с мировыми технологиями и подходами в работе. Однако, организаторы хотели бы сфокусироваться именно на продуктовой разработке, как процессе создания ценности.
Для кого эта конференция?
- Разработчиков, тестировщиков, специалистов по UI-UX, QA
- Менеджеров продуктов и топ-менеджеров продуктовых компаний
- Гиков и технологических предпринимателей
Какие темы будут затронуты в программе?
- Формирование идеи продукта
- Изучение пользователей и проектирование взаимодействия
- Инженерные и технологические аспекты разработки
- Построение команды и процесса создания ценности
На конференции планируется рассмотреть различные аспекты создания продукта, но, даже погружаясь в технические детали, фокус будет держаться на ценности результата.
Что делает этот кемп не похожим на другие?
- Организаторы пригласили спикеров с опытом создания продуктов, участия в стартапах или ведения собственного бизнеса
- Проводилось исследование интересов аудитории конференции для того, чтобы осветить популярные темы и ответить на острые вопросы
На данный момент еще есть возможность зарегистрироваться на конференцию по цене ранней регистрации – 750 гривен.
На конференции выступит один из наших тренеров, Александр Белецкий, с докладом «Continuous Delivery в продуктовой разработке». Continuous Delivery стал краеугольным камнем современной веб разработки и является современным трендом в высококлассных командах и компаниях. Это практический доклад, который будет интресен .NET разработчикам, а так всем заинтересованным в вопросах непрерывной поставки.
В преддверие конференции, 27 января, мы запланировали тренинг «QA в Agile». Это один из моих любимых тренингов, на котором тестировщики смогут лучше понять свою роль и подходы к работе, которые используются в Agile методологиях. Также им будет предложены несколько рабочих QA процессов в командах, работающих по Scrum. Много интересных презентаций, различные полезные практики и игровые симуляции делают этот тренинг очень познавательным и полезным. Вы можете узнать больше о тренинге и ознакомиться с отзывами в детальной программе тренинга. Регистрация на тренинг уже открыта и количество мест ограничено.
Таким образом, конец января получится достаточно интересным. Будем рады вас видеть!
Прошел год и снова в феврале Selenium Camp!
22 Декабрь
Я с удивлением обнаружил, что до сих пор не опубликовал анонс конференции Selenium Camp 2012. В 2011 году Selenium Camp 2011 стал нашей первой конференцией. Именно с момента ее проведения мы начали заниматься масштабными мероприятиями международного уровня в Украине. Надо срочно исправляться!
25 февраля, мы приглашаем вас в Киев на конференцию Selenium Camp 2012, целиком посвященную продукту для тестирования web-приложений Selenium. Selenium Camp – это конференция, целью которой является собрать вместе всех, кто так или иначе использует Selenium.
Конференция Selenium Camp стала первой в мире конференцией, целиком посвященной Selenium. В 2011 году участие в конференции смогли принять более 300 участников. Конференция получилась действительно международной, не смотря на то, что подавляющее большинство участников было из СНГ. Мы принимали гостей из Чехии, Эстонии, Молдавии, Великобритании, России, Беларуси и Украины. 17 докладчиков из различных стран представили вниманию участников 3 мастер-класса и 15 докладов. В качестве приглашенного гостя выступил David Burns – один из ключевых разработчиков Selenium, занимающийся драйверами под .NET и Python.
В этом году в мире Selenium многое изменилось – вышел Selenium 2.0 (aka WebDriver), в котором полностью изменилась архитектура, API и принципы работы. Selenium набирает все большую популярность и становится негласным стандартом в тестировании веб-приложений. Его начинают поддерживать производители браузеров и разнообразных инструментов для тестирования. 2011 год можно по праву считать началом новой эры в жизни этого инструмента. А это значит еще больше интересных практик, подходов, решений и инструментов. Докладчикам будет что рассказать и чем поделиться с участниками конференции.
Программа конференции не стоит на месте и уже заявлено 5 докладов от докладчиков из Украины, Беларуси, Чехии и UK! David Burns одним из первых принял наше приглашение выступить на Selenium Camp 2012. Мы ожидаем множество интересных докладов и мастер-классов.
В этом году мы планируем собрать 400 участников. Уже открылся этап предварительной регистрации, в течение которого будет действовать минимальная цена 600 гривен. Чтобы принять участие в конференции по указанной цене, вы должны зарегистрироваться и оплатить свое участие до 1 января 2012 года.
Отчет о выступлении на конференции SQADays-10
5 Декабрь

Я решил не откладывать в долгий ящик написание отчета о прошедшей конференции SQADays-10 и оформить его по горячим следам. Я давно собирался посетить эту конференцию, которая стала просто легендарной для тестировщиков, но все время что-то мешало мне это сделать. На этот раз обстоятельства сложились благоприятно и я решил выступить в качестве докладчика. Поэтому мой отчет будет не только глазами участника, но еще и опытного докладчика. В отчете я буду стараться держаться позитивной стороны, но будет проскакивать местами и конструктивная критика. Поэтому заранее прошу никого не обижаться. Как я писал некоторое время назад, негативная обратная связь несет больше всего информации.
Мы летели на конференцию из Киева с Андреем Дзыней, который тоже собирался выступить с докладом. Аэропорт Домодедово находится недалеко от места проведения, но нам все рекомендовали не рисковать и не ехать на такси. Поэтому, не смотря на достаточно ранний прилет, на место мы прибыли около 11-12 часов. Отель Милан, который принимал у себя конференцию, расположен недалеко от метро и мест в нем хватило на всех иногородних участников. С заселением проблем не возникло и мы, закинув вещи в номер, поспешили на доклады.
Первый день меня очень огорчил в плане докладов. До обеда в секции А было несколько спонсорских докладов и докладов про «космические корабли на просторах Большого Театра» от неизвестных мне зарубежных докладчиков. В секцию В пробиться было очень сложно, люди стояли сидели и повсюду. Сразу стало понятно, что организаторы погорячились с количеством участников. Разместить всех комфортно явно не удавалось. Поэтому поменять место дислокации у меня не получилось.
Наступило время обеда, который принес первое мини-разочарование. Выбор второго ограничивался одним блюдом, которым оказался рис с подливой. Суп тоже был только один. Скудно и не особо вкусно. Но, если учесть, что обед включен в стоимость участия, то с этим можно смириться.
После обеда я отправился на доклад Ромы Юферева, который знаком мне с конференции AgileDays’11. Тогда он покорил меня докладом про психологию работы с программистами. В этот раз Рома выбрал несколько странную тему для тестировщиков. Он рассказывал о том, сколько денег тратится в мире на поддержку программного обеспечения и что стоит внимательнее относиться к логированию ошибок, что поможет группе поддержки быстрее решать проблемы. Также была представлена концепция «карты здоровья» для проекта и участники смогли представить, как она может помочь в анализе и предотвращении проблем. Лично мое мнение – Роме стоит делать доклады по той области, в которой они у него получаются лучше всего. Это People Management. Мы вечером детально обсудили с ним эту тему в кулуарах.
Стоит отметить постоянные перебои с интернетом. Точки постоянно подвисали, иногда пропадали и интернет «тупил». А потом пришло разочарование для участников онлайн трансляции. В Twitter выложили ссылку на бесплатный доступ. Как-то непрофессионально было сделано, хотя сразу было понятно, что нагрузка на интернет будет очень большая.
Следующим докладом в моей персональной программе стал доклад Юли Нечаевой про лидерство в командах и ее реальный опыт в построении продуктивных команд. Юля как обычно подготовила хороший визуальный ряд, хотя я и не являюсь фанатом формата Prezi. Доклад основывается на реальном опыте, что всегда интересно и увлекательно. Да и Юля уже опытный докладчик, поэтому излишние комментарии тут не нужны – нужно смотреть запись выступления.
Кофе-брейк меня убил.
Пирожки с непонятным содержимым внутри и растворимый кофе (может он был заварной, но по вкусу 100% растворимый).
Следующим был мастер-класс Андрея Дзыни про автоматизацию тестирования мобильных приложений. Андрей много кода демонстрировал в живую, в том числе и на своем телефоне. Я далек от разработки мобильных приложений, но даже мне было интересно послушать чем живет сейчас тестирование в этой индустрии.
В завершение дня я пришел на доклад Натальи Руколь. Наташа – отличный докладчик, но тема доклада была для меня лично набором советов от Капитана Очевидность. Слишком уж в радужных красках описывалась жизнь «правильного» тест-менеджера. Хотелось бы мне познакомиться с парочкой таких.
После докладов началась торжественная часть, на которой нас ждал небольшой фуршет с легкими закусками и шампанским, выступление скрипачки и «зажигательный» ведущий. Апофеозом этого праздника стало награждение организаторами самих себя. Я был немного в шоке от происходящего. Особенно, когда нашелся однофамилец и теска Александра Орлова, а его отправили восвояси. Как-то выглядело это все странно и наигранно, при этом роль собравшихся участников была неясна. На дискотеку почти никто не остался.
Мы ушли под конец торжественной части и большой компанией засели отдыхать, кушать и пить вкусное пиво в ресторане «Интер». Это еще один большой плюс места дислокации конференции. Наличие хорошего ресторана делает пребывание на конференции более комфортным. Не надо тратить кучу времени на выбор места для «посиделок». А выбор пива и еда там на достаточно неплохом уровне. Хоть и накатывала усталость, но расходиться по номерам совсем не хотелось. Мы заскочили в гости к ребятам из Skype, которые жили с нами на одном этаже, и прообщались с ними до поздней ночи. Надо отдать должное ленте в Twitter – она не утихала даже ночью.
Утро выдалось непростым. Недосып и отсутствие нормального утреннего кофе дало о себе знать. Мой мастер-класс в программе стоял перед обедом и пришлось приложить немало усилий, чтобы выглядеть бодрым и веселым.
Тут хочу отметить пару серьезных недочетов в работе организаторов. Во-первых, микрофоны были ужасными. Радио-микрофон работал с перебоями, а стационарный не позволял далеко отойти и приходилось все время его держать в руках. Ощущения как у певца 70-ых. В 21-ом веке можно было бы сделать петличные или наголовные микрофоны, что на порядок удобнее для докладчика. Во-вторых, размер экрана оставлял желать лучшего. Ведь не у всех хорошее зрение и нет смысла заставлять участников мучиться. О своем докладе говорить много не буду. Скажу только, что ожидал большего интереса от автоматизаторов, возможно по привычке от аудитории в Украине. По приезду я подготовил слайдкаст выступления:
Все демонстрируемые примеры также опубликованы.
После обеда, который мало чем отличался от предыдущего дня, я отправился на круглый стол сообществ тестировщиков. Там царил хаос и неразбериха. Никто не понимал зачем все собрались. Каждый пытался вырвать для себя микрофон и рассказать свою историю. При этом даже «опытные гуру» вели себя точно также. Я отправился на стендовую секцию послушать Сашу Орлова, но сделать это было очень тяжело. Секция была забита народом, а все докладчики выступали без микрофона. Это я бы также отнес к недостаткам организации. Средней мощности колонки бы не помешали.
Следующим докладом я выбрал рассказ Екатерины Жульковой про удаленное тестирование. Этот доклад заставил меня позлиться. Все так славно получалось у докладчицы: они не считают себя командой, работает кто когда хочет, программисты днем работают, а тестировщики ночью тестируют, оценивают задачи как хотят… И главное, все счастливы! Если так все в жизни просто и легко, зачем выдумывается столько процессов и практик? Зачем весь мир сейчас движется в сторону Agile с построением настоящих команд? Окончательно добил комментарий по поводу оценок в проекте от одного из участников: «Оценку может делать только эксперт. Нет эксперта – нет оценки!». Я на некоторое время ощутил себя в другом мире. Брррррр! Неприятное ощущение!
Злой я отправился на доклад Кати Каменевой и, как оказалось, очень правильно сделал. Катя рассказывала про процесс тестирования в их компании, взаимодействие с разработчиками, полезные практики и инструменты. Я бы смело назвал этот процесс отличным примером Agile тестирования. Я лично знаю Катю – она была у нас на конференциях, тренингах и прочих мероприятиях. Для меня этот доклад стал лучшим на конференции. Отличный визуальный ряд, уверенный рассказ про собственный опыт с примерами и реальными историями. И успешный проект, который поднял очередные инвестиции. Особенно классным было то, что доклад «взрывал мозг» большей части аудитории. Twitter лента кипела комментариями. Вопросы после доклада к Кате были провокационные, но лишенные смысла: «можно ли так добиться 100% качества», «а что если вся ваша команда тестировщиков уволится», «а вы не думали взять и все задокументировать»… Катя держалась молодцом и отлично отбивалась от всех нападок. Класс!
На следующий доклад я не пошел и потратил время на убеждение одного знакомого в том, что Continuous Delivery является замечательной практикой, которая стимулирует построение правильного процесса разработки и тестирования с множеством других полезных практик и подходов. Потом снова встретил ребят из Skype и провел мини-презентацию одного из инструментов на основе WebDriver – Thucydides. Еще успел много с кем пообщаться, за что им большое спасибо!
Последним докладом я выбрал мастер-класс от Орлова и Панкратова. Это было очень весело. Мы делали самолетики, разбившись по командам. Наша команда заняла второе место. Потом смотрели живые спектакли от участников конференции на тему неконструктивных команд. Ребята молодцы и придумали классный развлекательный формат. В самом конце они провели аналогию коммуникативных отношений с жизненным циклом дефекта и дали несколько советов участникам. Мастер-класс был веселым, но малоинформативным, хотя кого-то 100% заставил задуматься.
На официальное закрытие я не остался и отправился ужинать все в тот же ресторан «Интер». Нас опять было много. Шутили, пили пиво, знакомились, рассуждали об образовании, тестировании, конференции и прочих общих темах. Было классно, но нужно отправляться домой. Мы вылетали поздно вечером и до полуночи уже были дома.
Подведу итоги. В целом я доволен поездкой. Тестировщики – очень позитивный народ и всегда активно общаются, обсуждают проблемы и подходы. Для меня поездка стала очередным опытом работы совершенно с непривычной аудиторией. А такой опыт сильно развивает. Я записал себе несколько классных идей на будущее, что происходит не так часто. Отметил для себя недостатки организации, которые постараюсь не повторять в своих мероприятиях. Познакомился с новыми интересными людьми и наметил планы на сотрудничество. Спасибо всем, кто участвовал в конференции! В следующем году будем рады принять SQADays-11 в Киеве!
Боремся с бесконечными итерациями
29 Ноябрь

Я решил поучаствовать в разборе кейса, описанного Тимофеем Евграшиным в его блоге. Сначала начал писать комментарий, но потом понял, что он будет слишком большим. Поэтому оформляю в виде отдельной статьи. Вкратце проблема выглядит так – команда никогда не заканчивает все задачи в итерации, перенося их на следующую. В итоге итерации получаются размазанными.
Команда провела анализ и выделила возможные причины такой ситуации. Первая причина в том, что очень мало времени остается на саму работу в спринте за вычетом всех «процессных» задержек. Вторая заключается в том, что циклы тестирования и разработки «натурально» не совпадают и никто не может аргументировать в чем недостатки данной ситуации.
Начну с причин, потому что без их разбора нет смысла давать советы. Мне кажется из первой причины стоило копнуть еще глубже. Почему происходит столько много задержек? Почему команда целый день тратит на ревью результатов спринта, причем сборку надо залить за день до ревью? Откуда берутся многочисленные задержки, которые даже вынудили команду последний день итерации сделать не совсем рабочим? Первопричин может быть много, не берусь судить однозначно. Возможно не полностью автоматизирована сборка и установка приложения, может быть некоторые процедуры делаются по шаблону и из-за этого занимают много времени.
Вторая причина, указанная командой, является очень классической. Она пришла из поэтапного подхода к разработке, когда тестирование делается после завершения кодирования. При этом часто задачи на кодирование требуют несколько дней, что еще больше откладывает тестирование. И не меняя подхода, нереально ничего поменять.
Scrum предлагает комбинировать итерационный и инкрементальный подходы. А это значит, что в итерации команда делает одну фичу и только потом переходит на следующую. Такой подход заставляет распределять работу между членами команды и концентрироваться на достижении результата. Что делать тестировщикам пока нечего тестировать? Писать автоматизированные тесты, собирать тестовые данные, подготавливать необходимые процедуры и артефакты. Как только что-то готово, сразу передавать разработчику. Как только у разработчика что-то готово, сразу отдавать тестировщику. Таким образом, после завершения работы над задачей требуется минимальное время на ее тестирование.
Но самый главный вопрос – это вопрос понимания цели самих итераций. Итерации нужны для предсказуемости, налаженного ритма выполнения обязательств и слаженной деятельности без помех извне. Если задачи могут легко переноситься на следующую итерацию, то предсказуемость теряется. Никто не знает сколько задач завершит команда в очередной итерации. Ритм тут же теряется тоже, потому что ни у кого нет ощущения законченности выполненной работы и старта новой итерации с чистого листа. Вместо этого тянется тестирование и другие активности из прошлого. Пока все в команде не осознают этого, менять что-то почти бессмысленно.
Теперь разберемся, что же со всем этим делать. Задачи понятны. Я бы посоветовал реализовать следующие подходы:
- Планируйте ровно на столько, сколько вы можете полностью закончить в итерацию. Не тратьте время на планирование остального. Это и сэкономит вам время и не будет никому давать несбыточных обещаний. Лучше возьмите еще работы, если все закончите в срок. Это будет гораздо приятнее и команде и заказчику, чем в очередной раз получить часть обещанного не готовым.
- Для более плотной командной работы над задачами и инкрементальности внутри итерации установите лимиты на количество задач, которые находятся в прогрессе. Причем жесткие и непоколебимые лимиты. Они будут вас заставлять помогать друг другу, делить большие задачи на маленькие, автоматизировать ручную работу и не распыляться на много задач сразу. Это повысит вашу эффективность.
- Для решения проблем с циклом тестирования внедряйте активно автоматизацию. Причем не просто автоматизацию, а различные вариации TDD (Test Driven Development). Чем больше тестов будет написано до завершения реализации задачи, тем меньше времени уйдет на тестирование. Еще одна практика, которая очень сильно может помочь – Slicing Development. Не разрабатывайте по несколько дней целиком готовую фичу. Вместо этого выкатывайте несколько промежуточных реализаций с урезанной функциональностью и отдавайте на тестирование.
- Ну и последний совет очевиднее всех – проведите ретроспективу и разберитесь в том, что происходит. Если команда или руководство не понимают зачем это все нужно, то все предыдущие усилия будут просто бесполезны. Возможно, в результате разбора окажется, что Scrum в вашем случае совершенно не подходит. Такое тоже бывает. Scrum – не серебряная пуля.
Ну и конечно же не опускайте руки. Из любой ситуации есть выход, его надо только поискать.
Удачи этой команде и всем, кто сталкивается с подобными проблемами!
Мой мастер-класс на конференции SQA Days 10
9 Ноябрь
2-3 декабря в Москве прогремит очередная масштабная конференция тестировщиков SQA Days 10. Детальная программа конференции уже подготовлена и опубликована. Участники смогут услышать множество докладов на совершенно разнообразные темы из области тестирования. Я давно хотел выступить на этой конференции и в этом году выкроил время и подготовил мастер-класс на тему «DSL, Page Object и WebDriver – путь к надежным функциональным тестам».
Впервые идея данного мастер-класса была реализована на конференции Selenium Camp. Презентация этого выступления выбилась в лидеры среди всех моих презентаций и была просмотрена более 5000 раз. Это свидетельствует о большом интересе к данной теме. С тех пор в мире Selenium многое изменилось – вышел Selenium 2.0 (aka WebDriver), в котором много подвижек было сделано в сторону применения шаблона Page Object. Я полностью переделал презентацию и примеры с применением новых возможностей, а также расширил список рассматриваемых инструментов. Детальное описание мастер-класса:
«Нестабильность автоматических тестов – актуальная для многих проблема. Вы наверняка сталкивались с ней не раз, если пробовали использовать инструменты, работающие через пользовательский интерфейс. Тесты очень сильно завязаны на структуру страниц, расположение элементов и их атрибуты.
На примере реального приложения будет продемонстрировать, как, используя шаблон Page Object с WebDriver/Selenium, разработать доменный язык (DSL) и использовать его в тестах. Это сделает ваши тесты более надежными, изолированными от технических деталей работы инструмента, а также сильно упростит их поддержку и модификацию.
Концепции и техники, представленные в мастер-классе, вы сможете успешно применить и с другими инструментами автоматизации тестирования.»
Чтобы сделать мастер-класс еще полезнее и интереснее, вы можете заранее задать вопросы или обозначить особенно интересные области. Сразу оговорюсь, что я буду рассказывать о грамотных подходах к написанию тестов с использованием Selenium/WebDriver, а не об особенностях работы самого Selenium/WebDriver. Пишите в комментариях к этому анонсу или в Twitter @xpinjection. Буду рад услышать ваши пожелания!





