четверг, 12 июня 2014 г.

BBST: Foundations - обзор курса

Как я уже говорил и обещал, в апреле-мае я закончил онлайн-обучение по курсу BBST: Foundations. На днях мне пришло письмо об успешном окончании курса и диплом, и теперь я могу с полным правом выполнить свое обещание: написать о курсе подробнее.


Ранее я уже публиковал перевод статьи Сэма Канера "Неудача Udacity", об онлайн-образовании, о том, как сделать его более эффективным, что для этого необходимо. Мне было интересно сопоставить мнение Канера с тем, как он решал проблемы, обозначенные в статье, в своих онлайн-курсах.
BBST: Foundations - первый из серии курсов серии Сэма Канера, рассказывает, как ясно из названия, о базовых вещах в тестировании. Обязателен для прохождения, если вы планируете изучать следующие курсы. На текущий момент "следующими" ступенями являются курсы:
  • BBST: Bug Advocacy - оттачиваем навыки написания баг-репортов: начиная от определений бага, дефекта, жизненного цикла отчета, воспроизведения и исследования бага до написания хорошо структурированного отчета;
  • BBST: Test Design - от определения тест-дизайна и техник до их практического применения и эвристической модели тестовой стратегии (Heuristic Test Strategy Model)
  • BBST: Instructor Course - для тех, кто хочет стать инструкторами курсов BBST, либо для компании, либо как независимый консультант. 

Стоимость курса BBST: Foundations - 125 долларов + будет необходимо оплатить членский взнос за вступление в AST - сообщество (насколько я помню, это 20$ за год как студент). Курсы по Bug Advocacy и Test Design стоят уже 200 долларов, а курс инструкторов - бесплатный.

Курс длится 4 недели: 3 недели на темы + 1 неделя на подготовку и сдачу экзамена.  Рекомендуемое время для изучения - 12-14 часов в неделю. По своему опыту скажу, что у меня где-то так по времени и получалось. Одна деталь: это число "чистых" часов, без отвлечений. Желательно распланировать загрузку более равномерно в течение всей недели. Так как тем в курсе шесть, то получается по 2 темы на семь дней.

Темы курса BBST: Foundations:
  • Общий обзор курса и базовые понятия (компьютерная программа, баг, тестирование ПО, "ящики", виды тестирования и т. д.);
  • Стратегия тестирования (определение тестирования, миссия, цели тестирования, стратегия, дизайн, контекст, техники);
  • Использование эвристик и оракулов (определения оракулов, тестируемой системы, эвристик и их оценки, оракулы соответствия и оракулы Хоффмана)
  • Основы программирования и покрытие (вычисления, системы счисления, представления чисел в памяти, типы переменных, структуры данных, покрытия состояний и ветвей
  • Невозможность полного тестирования (покрытие, полное тестирование и примеры его невозможности
  • Измерения (основы измерений, параметры измерений, модель Вейбулла, искажения и дисфункции
Для курса вам понадобится достаточно хороший английский (мое мнение, не ниже уровня Intermediate - B1) - для чтения литературы, понимания лекций, комментирования своих и чужих ответов. В моей группе было 2 индуса, один белорус (это я), немец, португалец, остальные 12 человек - native-speaker'ы (UK, US, Canada, New Zealand). Так что только с "Ландан из зэ кэпитал оф Грэйт Бритэйн" и гугл-транслейтом будет тяжеловато.

Курс включает в себя:

  • Лекции (доступны в бесплатном доступе - http://www.testingeducation.org/BBST/foundations/);
  • Презентация - одна на весь курс, тоже в бесплатном доступе с лекциями;
  • Материал для чтения: обязательный и дополнительный. Я прочитал весь обязательный, дополнительный - что больше было для меня актуально на тот момент.
  • Тесты для самопроверки (quiz) - всего их 5, по одному к каждой теме. Для ответов можно пользоваться чем угодно (open book), авторы курса советуют проходить тест параллельно с просмотром лекций для лучшего понимания и закрепления материала. Каждый тест имеет жесткий дэдлайн, после которого ответы не принимаются и тест считается не пройденным.
    Всего в каждом тесте порядка 10-12 вопросов, ответы с множественным выбором. Интересная схема оценки правильности ответа: полностью правильный ответ - 1 балл, частично правильный (если в вашем ответе выделенные ответы являются правильными, но ответ не полон. Например, если вы выбрали варианты A и B, а в правильном ответе должны быть варианты A, B, C, то ваш ответ будет частично правильным), то вы получите 0.25 балла, во всех других случаях (неправильный ответ или даже "частично неправильный") вы получаете 0 баллов за вопрос.
    Еще один усложняющий момент теста - вы должны отвечать "According to the lecture", как хотите. В общем, у меня редко получалось набрать в тесте больше 70% от максимума.
  • Домашние задания: упражнения, которые нужно выполнить перед просмотром лекции (для того, чтобы оценить свой текущий уровень знаний и сравнить его с тем, что вы услышите на лекциях), командные задания (работа в группе из 4-5 человек по заданной теме, обсуждение в форуме, общий результат обсуждения оформляется в Вики), оценка работы коллег и других команд (peer evaluation). Именно командная работа и оценки коллег - одна из самых сильных частей данного курса. Небольшая ложка дегтя - хотелось бы еще больше фидбэка от инструкторов курса. Комментарии инструкторов есть, но их мало.
  • Вопросы для тренировки перед экзаменом: 10 "коротких" и 10 "длинных" (в зависимости от объема ответа, который от вас требуется: например, короткий - это пару абзацев, длинный - развернутое эссе, порядка 5 абзацев). Это отличная возможность поупражняться в своих ответах, оценить других и самому получить оценку.
  • Итоговый экзамен (Closed Book Exam - ничем нельзя пользоваться, так обучение онлайн, конечно, никто над вами не стоит, но если вас заподозрят в списывании - курс засчитывается как Failed без возможности пересдачи). Экзамен состоит из 3 "длинных" и "коротких" случайных вопроса из пула вопросов для тренировки перед экзаменом. Очень важно отвечать на вопрос кратко и по существу, не отвлекаясь на то, что не спрашивается в вопросе, так как это трактуется как неумение выделить только самое главное и/или незнание, а вследствие - желание написать все подряд "для объема". Лучше отвечать меньше, но качественнее, при этом вы должны показать, что поняли тему вопроса и знаете то, о чем пишете.
    После итогового экзамена, вы будете должны оценить работы 2 коллег, а также поставить себе оценки за каждый вопрос. 
У домашних заданий и тестов установлены дэдлайны, поэтому желательно, конечно, позаботиться о том, чтобы у вас было как минимум время и онлайн-доступ с возможностью работать с материалом (особенно актуально летом в период отпусков). Так как есть групповые домашние задания, то из-за разницы в часовых поясах лучше работать оперативно, не откладывать все на последний вечер.

Из 12 рекомендованных часов у меня выходило порядка 2-4 часов на теорию (лекции + материалы) и тест по теме, остальные 8-10 часов - на домашние задания. По этим данным можете судить сами, насколько курс Foundations практический.

В целом, курс однозначно стоит порекомендовать тем, кто уже обладает некоторым опытом в тестировании: вы получите структурированные знания, расширите свой кругозор и примените это сначала на практике в домашних заданиях, а затем и на проекте. На мой взгляд, это лучший курс как баланс между теорией и практикой. Сам рекомендую данный курс, и ставлю в свой дальнейший план прохождение курсов Bug Advocacy и Test Design.

На этом все. Если есть еще вопросы по BBST - пишите в комментариях, отвечу.

вторник, 10 июня 2014 г.

Хэб Схотс "Эвристики для распознания тестировщиков-профессионалов" - перевод

Продолжаю серию переводов статей по тестированию. Статья Хэба Схотса расскажет вам об эвристиках для распознавания тестировщиков-профессионалов. Если вас интересует данная тема, из самого свежего также порекомендую доклад Алексея Лянгузова "Успешный тестировщик. Путь профессионала" на SQA Days-15, о котором я писал в обзоре первого дня конференции.

Ссылка на оригинал  -  http://www.huibschoots.nl/wordpress/?p=1666
Формат текста (выделение терминов, курсив, цитирование) и ссылки на другие статьи из текста взяты с оригинала "как есть".

Helena Jeret-Mae задала вопрос в твиттере: "Какие ваши критерии профессионализма тестировщиков и CDT-комьюнити?" Позже в емейле она уточнила свой вопрос: "Обновленная версия моего вопроса: какие по-вашему мнению существуют эвристики распознавания профессионального тестировщика? Я заменила "критерии" на "эвристики", этот термин менее категоричный. И я оставила термин "профессионализм" на ваше усмотрение - я не знаю точно, что вы подразумеваете под ним".

В своем выступлении "Как стать великолепным тестировщиком" на конференции ContextCopengagen в январе 2014 года я говорил о тестировщиках и их навыках. Я говорил, что многие тестировщики не знают, что они делают, и не могут доходчиво объяснить, какую ценность они вносят в проект. Я повидал много тестировщиков, которые раз за разом используют один и тот же подход. Если я спрашиваю, какие тестовые техники им известны, они называют совсем немного. Если я прошу их объяснить мне техники или показать, как они работают, у них нет ответа. Для меня это шок, и я не могу объяснить, почему тестировщики, называющие себя профессионалами, знают так мало про свое ремесло и совсем не обучаются ему.

Вот почему я делаю различие между тестировщиками-профессионалами (которых я считаю очень мало) и тестировщиками по профессии. Конечно, я знаю и понимаю, что всегда будут люди с менталитетом "с 9 утра до 5 вечера", которые не читают книги или блоги и которые только хотят проходить курсы, если начальство их оплачивает. Я принимаю это как данность, но это не значит, что я хочу работать с такими тестировщиками!

Но достаточно разглагольствований, давайте я отвечу на вопрос.

Профессионализм - это быть профессионалом и быть в курсе ожиданий от профессионала. Професииональное тестирование сложное и многообразное, оно имеет несколько измерений: знания, навыки, опыт, отношение, этика и ценности. Я написал пост в своем блоге "Что делает тестировщика хорошим" в 2011-м году на эту тему, и сейчас мне есть что добавить, хотя все, что я написал тогда, тоже верно. В моих более ранних постах я не упоминал ценности и этику, и сейчас я нахожу их крайне важными. Джеймс Бах написал о них в заметке "Размышления об этике в тестировании" и "темы Быстрого Тестирования", которые упоминаются на слайдах презентации "Быстрое тестирование ПО".


Довольно трудно распознать профессионального тестировщика. Каждый тестировщик уникален и имеет неповторимые черты характера. Проекты тоже разные, и чтобы быть успешным в поиске походящего тестировщика-профессионала для вашего проекта, одни характеристики будут более важными, чем другие. Можно вспомнить много характеристик, поэтому чтобы распознавать хорошего тестировщика, я буду использовать эвристики. Эвристики - методы, подверженные ошибкам, предназначенные для решения проблем или принятия решений, наиболее рациональные способы для упрощения сложной проблемы или эмпирические правила.Они используются для определения  достаточно хороших способов решения за разумное время. В Википедии я нашел такое определение: "Эвристики - техники, основанные на опыте, для решения проблем, обучения, открытий, которое не обязательно будет наилучшим. Там, где полный поиск непрактичен, эвристические методы используются для ускорения процесса поиска удовлетворяющего решения благодаря ментальным образам для уменьшения когнитивной нагрузки при принятии решений."

Мои эвристики для того, чтобы распознать тестировщиков-професионалов:

1. У них есть парадигма тестирования, и они могут объяснить свой подход в той или иной ситуации.
Профессиональные тестировщики могут объяснить, что такое тестирование, какую ценность они приносят и как они будут тестировать в данной ситуации.

2.  Они действительно любят то, что они делают, и увлечены своим ремеслом.
Тестирование - трудная вещь, и чтобы быть успешным, тестировщику необходимо быть упорными в обучении и в своей работе. Страсть помогает им стать настоящими профессионалами. Посмотрите это видео, в котором Стив Джобс говорит о страсти.

3. Они постоянно и в первую очередь учитывают контекст.
Чтобы быть эффективным, тестировщики должны выбрать цели тестирования, техники и, в первую очередь, посмотреть  на детали конкретной ситуации. Они признают, что нет "лучших практик", есть только хорошие практики в данном контексте.

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

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

6. Они знают, что все может быть по-другому.
Тестировщики-профессионалы используют эвристики, практическое критическое мышление, которые и являются эмпирическим. Они знают, что время для тестирования ограничено, системы становятся все более сложными и помнить обо всем трудно. Поэтому эвристики являются очень полезными "инструментами" для тестировщиков. Они также знают, что собственные предубеждения и логические ошибки могут обмануть их. Они практикуют критическое мышление, чтобы уверенно и вдумчиво работать в трудных и сложных ситуациях. Тестировщики должны признавать и работать с неопределенностью, возможными специфичными результатами и неполными ответами.

7. Они задают вопросы, прежде чем cделать что-либо.
Тестирование зависит от многих вещей, и от видимого нам контекста. Что такое информация, которую мы должны найти? Что такое миссия тестирования? Это можно легко проверить, если дать тестировщику упражение на интервью. Если он или она начинает работу над упражнением или отвечает, не задавая вопросы, это о чем-то говорит.

8. Они используют разнообразные подходы.
Не существует подхода или техники, которая найдет все виды багов и выполнит все цели тестирования. Различные техники находят различные баги. Для того, чтобы найти баги, тестировщики должны знать много техник и подходов. Для этого нужны тренировки, практика и еще раз практика.

9. Они знают, что эстимации (оценки) - это переговоры.
Обратите внимание на эти статьи в блоге Майкла Болтона:
10. Они используют тест-кейсы и тестовую документацию с умом.
Контекст определяет, какую тестовую документацию вы должны создать и какой вид документации полезен. Совсем недавно отличная (и объемная) статья Джеймса Баха и Аарона Ходдера была опубликована в Testing Trapeze "Тест-кейсы не тестируют: на пути к культуре производительности тестирования". Также Фиона Чарльз поделилась своими интересными мыслями о тестовой документации в статье "Разрушаем Тиранию Форм".

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

12. Они отказываются делать работу плохо, никогда не мошенничают, имеют мужество, чтобы сказать своим клиентам и коллегам о своих ценностях и этике.
Тестирование часто недооценивается, и многие уверены, что "любой может тестировать". В моих командах были опытные менеджеры проектов, которые говорили мне как работать. Профессиональные тестировщики знают как сдвинуть сроки и могут объяснить, почему они делают то, что делают.

13. Они любознательны и любят изучать новые вещи.
Тестировщики получают удовольствие от выяснения сути вещей. О любознательном поведении хорошо написал Гай Мейсон: "Любознательный ум можно описать как активный, вовлеченный, пытливый. Такой склад ума часто находится в поисках новой информации, получает удовольствие от исследований того, что есть и наслаждается процессом, сопровождающим процесс достижения этой цели".

14. Они могут обладать нижеперечисленными навыками межличностного общения. Как я упоминал ранее, от контекста зависит, какие навыки наиболее важны.
  • Письменные навыки (отчетности, сообщения, краткие сообщения)
  • Коммуникативные навыки (умение слушать, рассказывать истории, готовить презентации, умение говорит "нет", устный отчет, умение аргументировать и договариваться)
  • Социальные и эмоциональные навыки (эмпатия, умение вдохновлять, нетворкинг, управление конфликтами и консалтинг)
  • Навыки решения проблем
  • Навыки принятия решений
  • Навыки обучения и изучения
  • Быть проактивным и уверенным в себе
15. Они великолепно владеют навыками тестировщика:
  • Навыки мышления (критическое, латеральное, креативное, системное мышление)
  • Аналитические навыки
  • Моделирование
  • Анализ рисков
  • Планирование и оценка
  • Умение применять различные тестовые техники
  • Исследование
  • Проектирование эксперимента
  • Наблюдение
В приложении "Динамика исследовательского тестирования" к документу "Быстрое тестирование ПО" вы можете найти списки навыков.

16. Они обладают достаточными техническими навыками.
Есть много технических навыков, которыми должен обладать тестировщик, к примеру уметь использовать тулы, обладать навыками кодирования или желанием изучать техническую структуру приложения, которое он тестирует. Навыки автоматизации, такие как написание скриптов, знание SQL для работы с базами данных, быть способным сконфигурировать и установить ПО. знания и навыки работы с платформой, на которую устанавливается тестируемая система (Windows, Linux, мобайл, и т.д.)


Возможно, это список не полон. Вполне может быть, что я допустил ошибки. Поэтому, если хотите внести свою лепту или улучшить список, пожалуйста, дайте мне знать. Также я хочу сказать, что быть профессионалом не означает быть экспертом во всех упомянутых навыках. Если хотите узнать больше про уровень эксперта, советую посмотреть модель Дрейфуса. Настоящий профессионал знает, что он или она может сделать и когда надо попросить о помощи. Они не боятся учиться и не боятся сделать ошибку. Я считаю, это должен быть семнадцатый пункт в списке эвристик.

Между прочим, я погуглил запрос "кодекс этики тестирования ПО" и обнаружил Кодекс Этики ISTQB для тестировщиков-профессионалов. Мне интересно, знают ли о нем люди, которые сдавали экзамен И, что более важно, используют его в своей практике. А вы используете?

Хэб Схотс, 23 марта 2014 года.

P.S. Для дальнейшего улучшения качества переводов буду рад редакторской помощи: вы получите первым вариант статьи и сможете внести свои улучшения перед окончательной публикацией в блоге. Вы также будете включены в список благодарностей под каждым переводом со ссылкой (если пожелаете) на ваш профайл или сайт.
Если вы обладаете хорошим английским и русским, видите несовершенства данного перевода и желаете сделать будущие переводы лучше - пишите мне - www.google.com/+ЛадутькоАндрей

четверг, 5 июня 2014 г.

Книжная полка. Джош Кауфман "Сам себе MBA"

Новый экземпляр на книжной полке - Джош Кауфман "Сам себе MBA".

Если вы смотрите лекции ted.com, вы наверняка уже знакомы с этим автором по его выступлению "Первые 20 часов - как научиться чему-либо". В блоге уже есть конспект лекции и практические шаги по применению, которые я предлагаю использовать из своего опыта. Этот пост - самый популярный в моем блоге, значит, тема действительно актуальная для читателей. Просмотр данного видео или конспекта поможет вам в понимании и применении книжки, о которой я сейчас буду рассказывать.

Джош Кауфман "Сам себе MBA", на oz.by
Технико-тактические характеристики:
Год издания: 2014
Страниц: 464
Формат: 170*240 мм
ISBN: 978-5-91657-911-6
Язык - русский
Скорость чтения - выше среднего
Ориентировочное время на прочтение:  7 - 10 часов
Полезность - высокая

Прочтение книги - первый шаг в программе "Первые 20 часов": изучите достаточно материала для того, чтобы вы могли самостоятельно находить у себя ошибки. Если вы планируете начать знакомство с бизнесом, но не хотите тратиться на дорогостоящие программы MBA, то книга для вас. Как утверждает сам автор, данная книга - выжимка самой полезной информации, собранной из многочисленного количества прочитанных книг и приобретенного опыта Джоша Кауфмана.

Кроме самой модели обучения любому навыку, полезно обратить внимание на саму структуру книги. Информация подается кратко: настолько, чтобы описанную идею можно было освежить в памяти (если вы это знаете), либо чтобы получить первоначально необходимую минимальную информацию об идее, а при необходимости - обращайтесь к литературе из списка либо на сайт автора - http://personalmba.com/best-business-books/ Чем-то напоминает силлабус из подготовки к экзамену ISTQB, но язык более живой и доступный.

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

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

воскресенье, 1 июня 2014 г.

Рубрика "ПочитайQA". Полезные ссылки за май-2014

Начинаем новый месяц, по традиции первого числа каждого месяца - рубрика "ПочитайQA", или список ссылок, на этот раз все самое интересное за май. Предыдущую подборку за апрель можно найти здесь - http://qastugama.blogspot.com/2014/05/2014-04-useful-links.html.

Мой майский done-лист:
В июне, помимо рабочей активности, планирую пополнить Книжную полку, собрать мысли по BBST. Это из обязательного, остальное - по ситуации и летней погоде :)

Теперь к ссылкам. Разбиение на группы остается прежним-традиционным:

QA Quality Assurance, обеспечение качества, все грани со всего мира. Наиболее заинтересовавшие меня статьи по профильной теме за месяц.
STU Studying, образование и самообразование, обучение.
GA Gamification, или геймификация тестирования, обучения, управления - всех составляющих Qastugama.
MA Management and leadership - управление командой, людьми, лидерство. Все составляющие Management.
+
Books - обзоры прочитанных и/или рекомендованных книг.
+
Other - "сборный раздел". То, что не относится к предыдущим четырем темам, но то, чем я хотел бы с вами поделиться.
+
Bonus.Fun. - (не)серьезно о тестировании и вообще об IT.

Quality Assurance.

Studying.

Gamification.

Management.

Books.

Other.

Bonus. Fun.

Наступившее лето - пора отпусков и/или эффективного обучения. Желаю вам либо успешно совместить, либо выбрать одну из этих активностей, а затем насладиться процессом и результатом. До встречи в июне, оставайтесь с Qastugama!