Показаны сообщения с ярлыком Сэм Канер. Показать все сообщения
Показаны сообщения с ярлыком Сэм Канер. Показать все сообщения

понедельник, 7 мая 2018 г.

Книжная полка. Cam Kaner "The domain testing workbook"

Как и обещал, делаю обзор на книгу по тест-дизайну. Встречайте - Cam Kaner "The domain testing workbook".


Технико-тактические характеристики:
Год издания: 2013 (Context Driven Press) - ссылка
Страниц: 488
Скорость чтения - 3/5 (средняя)
Время на прочтение:  12-18 часов с упражнениями
Полезность - 5/5 (высокая)

Сэм Канер в представлениях не нуждается: его книгу "Lessons Learned in Software Testing" рекомендуют всем начинающим и продолжающим тестировщикам. За 17 лет с момента первого издания книга не устарела, а Максим Захаров глава за главой в течение 2 лет перевел все 293 урока на русский язык. Затем Сэм Канер в том числе занимался и построением онлайн-системы образования для тестировщиков, критиковал традиционную схему MOOC (онлайн-курсов). Сейчас его онлайн-система работает, состоит из 4 онлайн-курсов, от BBST: Foundations, который является обязательным для доступа к следующим курсам, к курсам "Bug Advocacy" и "Test Design". На мой взгляд, курсы Канера - лучшие из тех, что я видел в онлайн-образовании для тестировщиков.

Книга, которую выпустил Сэм Канер, посвящена всего одной технике черного ящика - доменному тестированию. Это не тестирование бизнес-домена: домен (domain) - это набор значении, и техника предполагает разделение домена на поддомены (эквивалентные классы) и выбор значений из каждого поддомена.

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

Форма обучения и структура книги у Канера построена по спирали из 3 витков, каждый из которых более подробно раскрывает предыдущий:
  1. Основные термины и определения, алгоритм доменного тестирования на примере простой задачи сложения двух целых чисел, 
  2. Детальный анализ каждого из этапов доменного тестирования. Рассматривается шаг за шагом на 2-3 задачах с возрастающей сложностью. После каждого этапа автор дает 3-4 практические задачи.
  3. Сборник из 30 задач с анализом решений по схеме доменного тестирования
В названии книги есть слово "workbook" (рабочая тетрадь), что предполагает работу читателем (решение задач) перед тем, как прочитать авторский ответ.

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

По уровню подготовки читателя, книга будет понятна новичку с практическим опытом, который уже знаком с техникой эквивалентных классов и граничных значений. Для читателя с опытом 2+ лет сама техника доменного тестирования поможет объединять техники в алгоритме доменного тестирования, и конечно попрактиковаться на задачах.

Книга не читается за 1-2 вечера. Как и "Lessons learned in software testing", книга по доменному тестированию будет хороша для неспешного чтения по одной-две составные части 4 шагов алгоритма и затем - закреплением на практических задачах в 3 части. Каждый шаг алгоритма прост, но хорош для самостоятельного анализа, так как оставляет читателю поле для маневра или подключения других техник черного ящика.

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

четверг, 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 - пишите в комментариях, отвечу.

среда, 11 декабря 2013 г.

Сэм Канер "Неудача Udacity" - перевод

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

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

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

Как вы знаете, Udacity - огромный поставщик онлайн-курсов, называемых МООК (Массовые Открытые Онлайн Курсы). Недавно основатель Udacity объявил о том, что он разочарован результатами Udacity в онлайн-образовании, и обратил внимание с массового образования на корпоративные тренинги.

Я принимал участие в дискуссиях с академиками и студентами на данную тематику. Мой друг предложил мне подкорректировать одно из моих писем для широкого круга читателей моего блога. Так и появился данный пост.

Моя заметка - это реакция на 2 статьи:
Udacity предлагает бесплатные или недорогие онлайн-курсы. Как я понимаю, у Udacity процент завершения равен десяти (только десять процентов студентов проходят программу полностью) и процент успешно завершивших курс равен 5. В этом нет ничего удивительного. До того, как появились МООК, похожие цифры были зафиксированы и в других видах онлайн-обучения, в которых студенты сами задавали свой темп обучения или работали, незначительно взаимодействуя с преподавателем. Например, я слышал, что у Открытого Университета (школы, к которой я отношусь с большим уважением) цифры приблизительно такие же.

Я не уверен, что 10% (или 5%) это плохой показатель. Если результат в том, что тысячи людей получают возможность, которая в противном случае у них бы не появилась, это весомый аргумент - даже если только 5% находят время, чтобы эту возможность полностью реализовать.

Вообще-то я фанат открытого образования. Когда я проводил интервью с профессорством в Florida Tech в 1999-м году, я представил свою цель создания открытых курсов по тестированию ПО (и по программированию). NSF был основан в 2001-м году. В результате появилась серия курсов BBST, которая используется во всем мире в коммерческих и академических курсах.

Тестирование ПО - великолепный пример, почему необходимы курсы и программы, которые не вписываются в стандартную академическую программу. Я не верю в то, что мы увидим хорошую базовую программу по тестированию ПО. Взамен, углубленное образование по тестированию появится от обучающих компаний и профессиональных сообществ, вероятно под наблюдением/руководством некоммерческих организаций, сформированных для достижения этой цели, или в университетах (как моя группа, Центр Образования и Исследований Тестирования ПО), или в коммерческой сфере (как ISTQB). Как я писал недавно, я верю в то, что нам необходимо разработать более совершенную систему аттестации в тестировании ПО.

Мы собираемся обсудить этот вопрос на семинаре по обучению тестированию ПО  (WTST 13, Январь 24-26, 2014). Семинар направлен на обучение продвинутым курсам в тестировании ПО. Кажется, из предварительных обсуждений, эта тема должна стать трамплином для обсуждения основных возможностей.

Но вернемся к МООК.

Udacity (и другие) нажили себе недоброжелателей в учебных сообществах. Выделим несколько типов раздражителей:
  • Некоторые сторонники МООК продвигают идею, что МООК устранит большинство преподавательских должностей. В конце концов, если вы можете получить курс от одного из лучших учителей в мире , зачем соглашаться на "второго после лучшего"? Проблема состоит в предположении, что обучение = лекции. Для большинства студентов это не так. Студенты учатся, когда делают что-то и получают обратную связь. Когда пишут эссе и получают обратную связь. Когда пишут код и получают обратную связь. Когда проектируют тесты и получают обратную связь. Студенческие активности - обучение, практическая тренировка, критическая оценка работ студентов, предложение последующих индивидуальных мероприятий - трудно масштабируемы. На этой неделе я потратил около 15 часов на персональные встречи с отдельными студентами, обучая их статистическому анализу или тестированию ПО. На следующей неделе я потрачу около 15 часов на персональные встречи с местными студентами и Skype-сессии с онлайн-студентами. Это тяжелая работа для меня, но мои студенты говорят мне, что узнают многое на наших встречах. Когда люди отвергают ту громадную работу, которую хорошие учителя выполняют для создания и поддержки обратной связи со своими студентами, особенно когда это люди, которых нанимают, чтобы заработать деньги, убеждая клиентов и инвесторов, что эта работа не имеет значения - это приводит в ярость хороших учителей.
  • Некоторые сторонники МООК, политики и новостные обозреватели пролоббировали идею, что МООК-образование может заменить академическое. В конце концов, если вы не можете обучить миллион студентов в то же время (с одним из лучших учителей в мире, не меньше), то зачем нужно идти в безжизненные каменные университеты? Именно эта идея терпит неудачу перед аргументом, что 95% студентов бросают или не выполняют программу. Но я полагаю, что ситуация еще хуже, если принять во внимание, что именно выучили эти студенты. Насколько сложны тесты, которые они проходят, или задания, которые они выполняют? Как тщательно оценивается их работа , а не только, насколько точна система оценок, хотя это, безусловно, может быть большой проблемой с компьютеризированной классификации, - но также, насколько информативна обратная связь исходя из полученной оценки ? Студенты обращают внимание на то, что вы говорите им об их работе. Они учатся многому, если вы дадите им, то чему нужно учиться. У меня сложилось впечатление, что многие из тестов / экзаменов поверхностны и что большая часть обратной связи ограниченная и механическая. Когда преподаватели вузов дают обратную связь такого качества, то студенты жалуются. Они знают, что обратная связь должна быть лучше, чем та, которую они получали в школе.
  • Сторонники МООК склонны игнорировать или отрицать социальную природу образования. Студенты учатся многому друг от друга. Когда-то я обратил внимание на учебно-исследовательскую литературу, прочитал исследования, в котором было написано, что проходящие обучение студенты узнают больше друг от друга, чем от профессоров. В большинстве (почти всех? всех?) МООК есть дискуссионные форумы, но те, что я видел и про которые мне рассказывали, крайне редко или вообще никогда хорошо не модерируются. Квалифицированный инструктор поддерживает обсуждения в форуме, переносит сообщения не по теме в другой форум, задает вопросы, оспаривает слабые ответы, предполагает литературу для чтения и последующие шаги. Я не видел и не слышал о том, чтобы это происходило в МООК.
По моему мнению, в типичном МООК-курсе студенты получают доступ к лекциям, которые, возможно, суперсложные в создании, но курсы мало вовлекают в процесс обучения после лекций. Студенты получают, на самом-то деле, онлайн-инструкцию без преподавателя. И эта "инструкция" выглядит как технологически более совершенная форма по сравнению с чтением книг. Студент получает лишь незначительную долю знаний из источника (книга или видео-лекция). Существуют более дешевые, простые и быстрые способы прочитать книгу.

Мое изначальное видение ситуацию с курсом BBST было практически такое же. Но к 2006, я оставил идею онлайн-инструкции без преподавателя и начал работать над следующим поколением BBST, в котором будет намного больше взаимодействий "учитель-студент" и "студент-студент".

Была организована неустанная (и хорошо финансируемая) обработка и политическое давление для того, чтобы заставить университеты выделить кредит на курсы на Udacity и подобных платформах. Некоторые школы поддались давлению.

Цель политического давления на университеты в том, чтобы подтолкнуть нас к более низким стандартам:
  • более низкие стандарты взаимодействия (студенты могут быть как немое стадо, которое загнали на курсы, где никто не обратит внимание на вас)
  • более низкие стандарты ожидания знаний (банальная, поверхностная автоматическая оценка такого вида, которая масштабируется на большую аудиторию)
  • более низкие стандарты педагогического дизайна (хороший дизайн начинается с того, что учитывает, чему студенты должны научиться, как управлять ими с помощью приобретенного опыта, который поможет им в достижении целей обучения. Лекционные планы - это не педагогическое проектирование, даже если лекции хорошо профинансированы, забавные и блестящие.)
Интернет-инструкция не должна быть излишне упрощенной, но если все, что видимо глазу, это хорошо финансируемый обман, который подменяет качество обучения технологическим лоском, люди сравнивают то, что они видят, с тем, что уже есть, и воспринимают инструкцию как обычную новость.

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

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

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

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

Беки Фидлер и я организовали Kaner Fiedler Associates с целью поддержки следующего поколения курсов BBST. Мы начали курсы BBST  с МООК-подобного видения структуры, которая предлагает что-то для практически ничего. Наше понимание эволюционировало вместе с тем, как мы создавали новые поколения открытых курсов.

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

Сэм Канер, 23 ноября 2013 года.