понедельник, октября 18, 2010

Тренинг “Тестирование методом свободного поиска (exploratory testing)”

Программа тренинга

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

2. Обсуждение теоретических аспектов.
Что такое "тестирование"? Какие бывают "виды тестирования"?
План чего мы построили и что будет являться результатом выполнения этого плана?
Различные парадигмы тестирования -- почему они существуют и каковы практические последствия этого.
Что такое тестирование методом свободного поиска и какое место оно занимает в общей картине мира.
3. Первый практический сеанс тестирования, обсуждение результатов.
Обсуждение влияния результатов тестирования на построенный ранее план.
Рассмотрение достоинств и недостатков одновременного проектирования и выполнения тестов.
4. Концепция "сеанса тестирования" и способ организации процесса тестирования в виде набора сеансов.
Различие между понятиями "цель", "задание", "план".
Как формулировать цели тестирования?
Метафора "The touring test". Построение карты приложения. Выбор "туров".
Как описывать результаты тестирования?
5. Второй практический сеанс тестирования, обсуждение результатов.
Парное тестирование -- достоинства и недостатки.
Что делать между сеансами тестирования?
6. Дополнительные идеи, которые можно применять при тестировании методом свободного поиска.
Метод "шести шляп" де Боно.
Чит-листы.
Автоматизация.
7. Третий практический сеанс: регрессионное тестирование, обсуждение результатов.
Обсуждение достоинств и недостатков использования тестирования методом свободного поиска при регрессионном тестировании.
8. Особенности взаимоотношения с коллегами и начальством. -- как им объяснить, "чем это вы тут занимаетесь"?
Как оценивать полноту тестирования?
Как оценивать качество работы тестировщика?
Как начать внедрение тестирования методом свободного поиска?
Когда и где не стоит использовать тестирование методом свободного поиска.

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

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

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

Мы поговорим о том, чем чревато выделение специализированных ролей тест-дизайнеров и тест-инженеров, почему тестирование трудно планировать и трудно оценивать его результаты, нужно ли записывать тесты и если нужно – кому и зачем, почему парное тестирование не замедляет, а ускоряет процесс.

Посмотреть отзывы участников очного тренинга "Тестирование методом свободного поиска"

Бонусы!!!
Каждый оплативший курс за 20 дней получит дополнительную скидку 10%.
При одновременной регистрации и оплате двух участников скидка 10%, трех -- 15%.

Подробнее: http://software-testing.ru/trainings/schedule?task=3&cid=53

пятница, октября 01, 2010

Онлайн практикум по тест-дизайну (6 занятий), начало 4 ноября

Вы наверняка читали о том, что гарантированно найти все ошибки в сколь-нибудь сложной программе средствами тестирования невозможно. Равно как невозможно доказать, что ошибок в программе нет.
Это в теории. А на практике некоторые тестировщики находят дефектов в программе больше, чем другие, в том числе они умеют находить весьма нетривиальные дефекты. Почему? Как им это удаётся? Что за секретные техники они применяют?
Увы, никаких особых приёмов проектирования тестов, о которых не было бы написано в любой книжке, не существует. Эффективные тестировщики применяют те же самые техники, что и все остальные. Разница лишь в том, КАК они их применяют.
На этом тренинге я не буду ничего говорить о том, как и в каком формате записывать тесты, я буду рассказывать только о том, как их придумывать.
Мы постоянно будем держать в уме два противоборствующих фактора:

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

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

Часть 1: практика применения техник тест-дизайна

1. Анализ границ и разбиение данных на подобласти.

Это -- основа основ, те самые 20% усилий, которые обеспечивают 80% результата. И вместе с тем, эта по сути самая простая из техник является наиболее сложной с точки зрения практики её применения. Потому что, во-первых, эта техника невероятно многослойная -- если вы нашли какие-то границы, это не значит, что других нет, и дополнительный анализ иногда оказывается очень плодотворным. А во-вторых потому, что эта техника требует больше всего творчества, интуиции, иногда даже везения. То есть -- больше всего практики, потому что только таким путём можно выработать в себе чутьё границ.

2. Комбинаторные методы

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

3. Тестирование последовательностей операций

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

4. Тестовое покрытие: как понять, что тестов достаточно

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

Часть 2: понимание принципов тест-дизайна

Вторая часть основана на внимательном изучении двух наборов эвристик, описанных в документе "Heuristic Test Strategy Model", созданном Джеймсом Бахом.

5. Product Elements: SFDPOT

При рассмотрении программного продукта можно выделить различные аспекты:

  • Structure: физическое устройство продукта, из чего он состоит;
  • Functions: логическое устройство продукта, что он может делать;
  • Data: какими данными может оперировать продукт;
  • Platform: как продукт взаимодействует с окружением;
  • Operations: как продукт используется;
  • Time: всё, связанное со временем.

Если тестировщик концентрирует внимание только на некоторых аспектах, упуская из внимания остальные, он рискует пропустить серьёзные дефекты. И наоборот, ориентируясь на различные аспекты, тестировщик может создать более разнообразные тесты, что позволит выявить больше разных дефектов. Мы увидим, как применение одних и тех же техник даёт новые результаты, если применять их к различным аспектам.

6. General Test Techniques: FDFS CURS

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

  • Functions testing
  • Domain testing
  • Flow testing
  • Scenario testing
  • Claims testing
  • User testing
  • Risk testing
  • Stress testing

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

Формат курса

Онлайн-тренинг продолжительностью 6 занятий, с еженедельными онлайн-занятиями и практическими домашними заданиями.
Онлайн-занятия состоятся каждый четверг с 15-00 до 16-30.

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

В случае, если Вы пропустите какое-либо занятие, Вы получите его запись и домашнее задание.

Подробнее…