воскресенье, 30 июня 2013 г.

Книжная полка. В. Ким Чан, Рене Моборн "Стратегия голубого океана"

Еще одна вдохновляющая и мотивационная книжка прочитана. Даже жалко было перелистывать последнюю страницу книги В. Ким Чана, Рене Моборн "Стратегия голубого океана", по-хорошему завидую тем, кто будет ее читать в первый раз.


Технико-тактические характеристики:
Год издания: 2013
Страниц: 304
Переплет: Твердый переплет
Формат: 170х240 мм, увеличенный
ISBN: 978-5-91657-634-4
Скорость чтения - выше среднего
Ориентировочное время на прочтение: 5 - 7 часов

Книгу можно рекомендовать креативным людям, нацеленным на созидание, а не на конкуренцию. Авторы предлагают стратегию голубого океана - создание такой рыночной ниши, где можно не бояться конкурентов. Предлагаются аналитические инструменты по созданию и завоеванию голубых океанов, принципы создания стратегии и ее воплощения. 

Так как IT-сфера очень перспективная в плане инноваций и внедрения голубых океанов, то можно рекомендовать эту книгу всем айтишникам.
  • реконструкция границ рынка, как успешно выделить из множества вариантов коммерчески выгодные возможности;
  • фокусирование на общей картине, а не на цифрах и множестве надерганных из разных источников ходов, которые хороши в отдельности, но вместе напоминают Франкенштейна;
  • выход за пределы существующего спроса, работа с клиентами и неклиентами;
  • соблюдение правильной стратегической последовательности - см. здесь


Например, книга будет интересна тестировщикам, которые используют различные подходы к решению нестандартных задач, например, тестирование методом свободного поиска (Exploratory testing), техники тест-дизайна, тем, кто не ограничивается простым прогоном тестового набора, а ищет новые уязвимости и возможности. Книга по стратегии построения процесса, свободной рыночной ниши. Начинающим и продолжающим тест-лидам и тест-менеджерам, возможно, некоторые подходы и инструменты пригодятся при построении стратегии тестирования, разработке принципиально новых подходов или новых, но на основе уже имеющихся.

Отличный практический пример применения стратегии голубого океана можно почитать здесь - http://habrahabr.ru/company/intel/blog/89286/ 

Практические инструменты описаны во второй главе книги, можно взять на вооружение:
Главы книги с третьей по шестую посвящены созданию стратегии голубого океана, четыре ведущих принципа:
И наконец, главы с седьмой по девятую посвящены воплощению стратегии: преодоление основных организационных препятствий, встраивание процесса воплощения в стратегию, устойчивость стратегии голубого океана.

Общий вывод: отличная книга по стратегии, рекомендуемая к прочтению тест-лидам и тест-менеджерам, помогает с построением своей стратегии тестирования, разработке новых подходов. Очень много живых бизнес-примеров, но аудиоформат книги не очень удобен, так как в нем отсутствуют необходимые практические графики для детального разбора.

вторник, 18 июня 2013 г.

Книжная полка. Гленфорд Майерс "Искусство тестирования программ"

Прочитал книгу Гленфорда Майерса "Искусство тестирования программ", третье издание. Книга отличная, рекомендую.


Технико-тактические характеристики:
Год издания: 2012
Страниц: 272
Переплет: Твердый переплет
Формат: 170х240 мм, увеличенный
ISBN: 978-5-8459-1796-6
Скорость чтения - средняя
Ориентировочное время на прочтение: 8 - 10 часов

Многие из вас, наверняка знакомы с задачей Майерса про треугольники из первого издания книги, вышедшего в далеком 1979-м году. Прошло более 30 лет, а эту задачу до сих пор дают на собеседовании начинающим и не очень тестировщикам. Сейчас и книг по тестированию стало намного больше, чем было раньше, но Майерс по-прежнему остается среди тех авторов, книгу которого можно советовать всем, кто связан с качеством программного обеспечения.

Большой плюс книги Майерса - ее объем: всего 270 страниц, на разбор самых важных 11 тем. Ничего лишнего, написанного для "утолщения" книги. Все углубления в тему к месту. Великолепная книга для закладывания "фундамента".

В аннотации книги автор рекомендует эту книгу трем категориям: программистам, менеджерам проектов и студентам ИТ-специальностей. Занимательно, что тестировщиков в этом списке нет :) Но кто, если не мы, объяснит этим трем категориям важность тестирования, заразит "качеством" всю команду? Кроме того, продвинутых знаний программирования для освоения приведенных в книге примеров, не требуется. Да и "командного" подхода к тестированию и чисто менеджерских глав в этой книге нет. А что касается третьей категории - студентов ИТ-специальностей - то среди них есть как будущие программисты, так и будущие тестировщики. Главное - что проблема качества это проблема не только тестировщика, но и всей команды. Поэтому либо читаем все вместе проектной командой, либо читаем сами, а затем "помогаем" менеджеру и программистам в борьбе за качество.

На мой взгляд, это одна из лучших книг, с которых можно начинать вообще знакомство с тестированием: не такая простая и прикладная, как Савин, и не такая сложная и теоретизированная, как Бейзер, и не такая "процессная", как Блэк. Можно читать как от начала и до конца, так и отдельные главы книги, выделяя то, что вам нужно именно сейчас или пропуская то, в чем, как вам кажется, у вас знаний достаточно. Я читал книгу от первой и до последней страницы без пропусков, и ниже расскажу вам о содержании по порядку, а вы уже решайте, как вам удобнее читать. Есть и третий вариант чтения: сначала читаем в конце каждой главы резюме, а потом решаем, стоит ли читать всю главу :).

Глава 1. Тест для самопроверки. Короткое, на пару страниц, введение и вышеупомянутая задача про треугольники.

Глава 2. Психологические и экономические аспекты тестирования. Психология, связанная с определением тестирования; невозможность полного тестирования и использование стратегий "белого" и "черного" ящика; десять принципов тестирования ПО. Это базовые вещи, с которых надо начинать знакомство с тестированием.

Глава 3. Инспекции, сквозные просмотры и обзоры программ. Интересная глава, созвучная с соответствующим материалом про инспекции кода в сертификации ISTQB Foundation Level, плюс контрольные списки возможных ошибок в коде для инспекций - можно взять в готовом виде, как есть в книге, и использовать.

Глава 4. Проектирование тестов. Самая объемная глава, целых 45 (!) страниц :) Наиболее общие техники белого ящика (покрытие операторов, покрытие решений и покрытие логики) и черного ящика (эквивалентное разбиение, граничные значения, причинно-следственные диаграммы). Для новичков можно посоветовать читать целиком, затем, по необходимости, "добивать" эти темы Канером и уже упомянутым ISTQB с примерами вопросов по тест-дизайну. Для более продвинутых тестировщиков я бы рекомендовал обратить внимание на причинно-следственные диаграммы: великолепный пример построения диаграммы с использованием базовых знаний математической логики, не сильно усложненный, как у Бейзера, но и не слишком упрощенный, где диаграмма "притягивается за уши" к тривиальному примеру.

Глава 5. Модульное тестирование. Пожалуй, лучшая практическая и "уникальная" глава в книге: чаще всего объяснения про МТ сводятся к простым примерам, например, как в Википедии: пишем тесты для функции сложения, используем предикат Assert. И да, модульные тесты должны писать программисты - гуглим. Майерс предлагает использовать методики белого ящика для проектирования тестов, а затем дополнить набор тестов тестами "черного ящика". В дополнение к проектированию, очень важно, как мы объединяем модули в работающую программу - для этого используем неинкрементное или инкрементное тестирование (автор показывает преимущества и недостатки обоих методов и предлагает использовать инкрементное тестирование,  на следующем шаге мы выбираем одну из возможных стратегий инкрементного тестирования - восходящее или нисходящее тестирование).
Хорошая новость для тех, кто хочет ознакомиться с этой главой - в бесплатном доступе есть возможность пролистать ее - http://oz.by/books/more10264179.html

Глава 6. Высокоуровневое тестирование. Рассматривается процесс разработки ПО как Получение требований -> Постановка целей -> Внешняя спецификация -> Проект системы -> Проект структуры программы -> Спецификация интерфейсов модулей -> Код. Затем мы используем три взаимодополняющий подхода, которые позволяют предотвращать и (или) обнаруживать ошибки:
  • повышение точности разработки
  • в конце каждого этапа вводим стадию верификации
  • ориентируем конкретные процессы тестирования на конкретные процессы разработки
Третьему подходу и посвящена эта глава: рассматривается функциональное, системное, приемочное тестирование. Отдельно рассматривается инсталляционное тестирование и планирование и контроль тестирования. Модель Майерса напоминает V-модель тестирования ПО c небольшими отличиями.

Глава 7. Тестирование удобства использования. Общие рекомендации по тестированию юзабилити БЕЗ привязки к особенностям интерфейса различных ОС, user interface guide'ам и моделям GOMS в сочетании с законами Фитса и Хика. В книге рассматриваются только основы и процесс тестирования удобства использования с использование анкет.

Глава 8. Отладка. Глава скорее для программистов. Неэффективность метода "грубой силы" и принципы эффективной отладки, разбитые на 2 этапа: локализацию ошибок и их устранение.

Глава 9. Тестирование в среде гибкой разработки. Общие принципы Agile-методологий. Экстремальное программирование и тестирование. И все. Не рассматривается тестирование в скрам-командах, автоматизированное тестирование.

Глава 10. Тестирование интернет-приложений. Рассматривается архитектура e-commerce приложений, проблемы тестирования в веб, стратегия тестирования веб-приложений на трех уровнях: слой представления, бизнес-логика, слой данных.

Глава 11. Тестирование мобильных приложений. Структура главы аналогична предыдущей: архитектура сетей мобильной связи, стратегия тестирования мобильных приложений.

Общий вывод - отличная книга, рекомендую к прочтению начинающему и продолжающему тестировщику, без "воды". "Классические" темы преподнесены отлично, новые темы (юзабилити, гибкая разработка, интернет- и мобильные приложения) даны обзорно, лишь для ознакомления.

четверг, 13 июня 2013 г.

Обзор 3. Гойко Аджич "Изобретаем качество"

Продолжаем традиционную серию постов-обзоров. На этот раз я взял панорамный доклад в формате "рассказ историй" (story telling).

Итак, Гойко Аджич "Изобретаем качество" (Gojko Adjic - Reinventing Software Quality). В интернете есть несколько видеоверсий доклада (а общее число выступлений Гойко с этой темой - более двухсот), в каждой новой версии автор что-то изменяет, дополняет. Но общая канва остается. Как и формат - отличные живые истории с долей юмора, которые показывают неразрывную взаимосвязь тестирования и реальной жизни и их взаимное влияние друг на друга.

Гойко Аджич предлагает новый взгляд на привычные вещи, видео смотрится легко, и заставляет задуматься о качестве программ. Затронуты темы качества со стороны бизнеса, сокращения итераций и соответственно времени на тестирование одной версии, тестирования как информационного искусства преподнесения нужной информации, проблема релевантности, использование метрик, пирамида потребностей по Маслоу и ее проекция на пирамиду качества.

Рекомендую этот доклад тем, кто смотрит вперед, кому небезразлично, как и зачем он тестирует (а не просто "что-то проверил и написал отчет").

Видео доклада:

Конспект:

  • В 2004-м году потери на проектах ПО составили 1,4 млрд $
  • качество ПО означает абсолютно разные вещи для разных людей.
  • Пример: Англия, банкомат Deutsche Bank'а, вначале заблокировавший карточку, затем он выдал деньги, без транзакции на счету
  • Итерация цикла качества - измерять, обеспечивать, улучшать - за последние 10 лет сократилась с одного года до двух недель в agile. Вопрос, что тестировать и не тестировать в цейтноте времени.
  • Пример одного проекта, в котором автотесты были написаны ровно до того момента, на котором они все вернули passed, затем они были выключены.
  • Пример: GPS -  "нет нужды в GPS, когда он отключился и я заблудился, мне нужен GPS для того, чтобы он не допускал, что я заблудился".
  • Качество ПО - это информационное искусство, зеркало команды.
  • Пример: друг, который подбирал туфли (аналогия - улучшал часть процесса), хотя сам был похож на тролля (аналогия - весь процесс уродлив, нужно изменять его целиком).
  • ART (искусство) как акроним аккуратности (accurate), релевантности (relevant), своевременности (timely). 
  • Мы научились быстро и аккуратно считать (A + T done), но у нас остались проблемы с релевантностью (R). 
  • "Ценность метрики - это в своей основе, ценность информации, которую эта метрика приносит." Даг Хаббард
    Пример: инфомационное табло аэропорта в Хитроу (Англия). Какие выводы мы можем сделать из полученных метрик?
  • В переводе с языка QA на язык бизнеса, качество = стоимость (QA = cost)
  • Пример: книга самого докладчика, ошибки в переводе: Гойко потратил немало времени на внимательное перечитывание своей книги и нашел 27 опечаток наивысшего приоритета (например, заглавная буква в середине слова и т.п.), а всего 159 опечаток. Затем посмотрел отзывы о книге - все 21 отзыва - "пять звезд". Nobody cares about such mistakes. Вывод - инвестируем время в качество более продуктивно.
  • Пример, когда пробный выпуск продукта может стоить дешевле, чем прогон всех регрессионных тестов. "больше не значит лучше"
  • Пирамида Маслоу и ее проекция на пирамиду качества от Гойко Аджича:
  1. развертываемая функциональность исправна (deployable functionality OK)
  2. производительность, безопасность (performant and secure)
  3. удобство использования (usable)
  4. полезность (useful)
  5. успешность - бизнес-ценность (successful)
Подумайте над тем:
  • Как эта пирамида будет выглядеть для вашего ПО?
  • Что вам следует измерять?
  • В какие области обеспечения качества вы можете инвестировать (свое время)?

"Если вы знаете, что нужно начать измерять, просто начнить измерять что-либо, и это даст вам информацию, что вам действительно нужно измерять.
Дуглас Хаббард.

Презентация доклада:

четверг, 6 июня 2013 г.

Встреча QA Club Minsk. Как тестировать, когда нет времени и людей?

Лето, пора отпусков... Каникулы у тестировщиков, и не только. Но, с другой стороны, если зимой хорошо "накачивать" мышцы, то летом  нужно хотя бы поддерживать то, чего достиг за осень и зиму. И в то же время, "не перекачаться". Поэтому встреча минского QA Club'а, как раз "золотая середина".

Вечером в среду после обеда сон для усталых Игорь Бондаренко нам рассказывал "Как тестировать, когда нет времени и людей". Я хорошо знаю Игоря, мы оба работаем в Intetics, знаю его команду и коллег, и хочу просто выразить респект за то, что Игорь сделал и о чем нам рассказал. Проще всего сказать "у меня нет времени", "мой рабочий день с 9 до 6 и ни минутой больше" и изобразить страуса перьями кверху, потому что раз всех все устраивает, то и мне, QA, больше всех надо что ли? А можно просто нести ответственность, как, например, описано у Натальи Руколь. А как нести ответственность, когда недостаточно ресурсов, Игорь нам и рассказал.
традиционный "кирпич" от Игоря. Фото - QA Club Minsk
Итак, принимаем проект. Есть стартовые проблемы (как же все знакомо) :

  • отсутствие проектной документации
  • полное отсутствие тестовой документации
  • большой объем регрессионной тестирования (20 человеко-часов, это при одном QA на проекте)
  • нет автоматизированных тестов
  • нефункциональные требования не проверяются
Игорь предложил довольно простые решения каждой из описанной проблем, рассказал о том, как проходил процесс внедрения улучшений на его проекте, сколько времени уходило на каждое улучшение, поделился маленькими "хитростями", как увлечь процессом контроля качества разработчиков, менеджера и заказчик, ответил на вопросы. 
смотрим телевизор вместе, фото - QA Club Minsk
Не буду раскрывать карту памяти, оставлю всем возможность послушать этот доклад и на конференциях. Поэтому, если есть вопросы, не ждите конференции, спрашивайте у Игоря: он вам подскажет и с удовольствием выслушает, как получается у вас, и возможно ваш опыт расширит и обогатит его доклад.

Большое спасибо Игорю Бондаренко за доклад, Наташе Савастюк и Алене Дрозд - за организацию, Сергею Минюку - за пригодившийся ноутбук, остальным участникам - за вопросы и обмен опытом. 

Всем лета!





вторник, 4 июня 2013 г.

Самообразование. Done! Coursera - Grow to Greatness: Smart Growth for Private Businesses, Part II.

Очередной курс онлайн-обучения Coursera пройден. На этот раз - вторая часть курса Grow to Greatness. Еще один отличный курс, многое взял на заметку и добавил в конспект (карту памяти  см. внизу поста).

Ed Hess, преподаватель курса Grow to Greatness
Чем же так хороши вообще курсы Coursera, и почему я бы вам рекомендовал попробовать для своего развития:
  • Представлены онлайн-курсы ведущих американских университетов по самой различной тематике и дисциплинам - https://www.coursera.org/courses. Онлайн-курса по тестированию, к сожалению нет, но довольно много курсов по Computer Science: от теории и искусственного интеллекта до программирования и безопасности. Да и по остальным темам есть интересные курсы, так что советую не ограничиваться только профильной тематикой.
  • Язык преподавания - английский (есть курсы на французском и испанском, их пока мало), есть возможность смотреть видеолекции с субтитрами. Одновременно с обучением, можно "прокачивать" свой English. Уровень английского - где-то Intermediate (B1)- Upper Intermediate (B2), если смотреть с субтитрами, практически все понятно с первого раза.
  • Хорошо выстроенный процесс обучения: кроме просмотра лекций, есть тесты (Quiz) как с единственным правильным, так и несколькими правильными вариантами ответов, эссе на заданную тему, оценка вашей работы коллегами (Peer Evaluation) - оценивают как вас, так и вы другие работы. И, наконец, во многих курсах есть финальный экзамен (Final Exam), ограниченный по времени и/или использованию сторонних материалов. Есть форум для обсуждения В перспективе появится работа в группах на форуме.
  • Есть чему поучиться у преподавателей. Очень высокий уровень каждого (или мне так повезло, я прослушал полностью 5 курсов, у каждого из профессоров есть свои "фишки", что-то взял на заметку).
  • Можно одновременно изучать несколько курсов. Но я бы, для лучшего усвоения, рекомендовал брать один. Количество курсов можно планировать по часам, которые даются в описании курса (например, "Workload: 4-6 hours/week" - эстимации для меня получились довольно точными, приблизительно так по времени и выходило). Можно записаться на несколько курсов, просмотреть первую неделю, оценить, насколько вам подходит тема данного курса и преподаватель, и решить, продолжать ли обучение).
  • Онлайн-обучение бесплатно. Все видеолекции, материалы. Если есть желание и необходимость - можно официально, с подтверждением, получить сертификат об окончании выбранного вами курса за энную сумму. Например, https://www.coursera.org/signature/course/introfinance/970308 Но в любом случае, создатели говорят, что курсы будут бесплатными всегда (см. интервью с создателем Coursera, целях проекта, статистику об онлайн обучении, можно почитать здесь - ссылка)

Немного о содержании. Первая часть курса (Grow to Greatness - Part 1) была о построении команд, мифах и реальности. Очень интересный и полезный курс, который мне пригодился: я проанализировал свой опыт работы в различных командах, что получалось, а что нет, как бы я сейчас строил процесс построения команды тестирования, рассказал об этом на SQA Days - 12 в Санкт-Петербурге и использую сейчас на практике.

Вторая часть курса делает акцент на взаимодействии с людьми: заказчиками, коллегами, подчиненными. Основные моменты:
  • Предприниматели тоже должны расти - первая неделя. Теория Дугласа МакГрегора (категории людей X и Y), 6 переходов в трех категориях, которые должен пройти предприниматель на пути к личностному росту, делегирование, лидерство, процессы, метрики;
  • Секрет высокой производительности - высокая вовлеченность подчиненных в работу. Вторая неделя. Как достичь высокой вовлеченности, чего хотят подчиненные, 4 принципа лидерства, ответ "да и" вместо "да, но", самые важные слова лидера;
  • Рост требует не только стратегии, но и системы - третья неделя. "Бизнес как мороженое", рост - органический процесс, как получить от подчиненных высокую вовлеченность, требования к системе организации, построение системы;
  • Строим продвинутую управленческую команду - неделя четвертая. Интервью, процесс найма, конфликт "повышение подчиненного - лояльность", какого менеджера нанять первым;
  • Самое главное - разбор кейсов, всего 4 кейса, по одному на каждую неделю. Теория и принципы разбираются на практических примерах уже успешных компаний. Must read! Интегрирующая все 4 недели часть курса, пожалуй, самая интересная и вдохновляющая.
Более подробно содержание курса вы можете посмотреть по моей составленной карте памяти: