Aleksandr_X
Премиум
- Регистрация
- 8 Май 2015
- Сообщения
- 6,810
- Реакции
- 81,796
- Тема Автор Вы автор данного материала? |
- #1
Голосов: 0
[Алексей Баранцев] Практикум по тест-дизайну 2.0 (2018)
Курс позволит освоить базовые техники проектирования тестов, чтобы научиться применять их на практике и иметь возможность придумывать разнообразные тесты.
Онлайн-тренинг
Какой навык является самым главным для тестировщика? Конечно, умение проектировать тесты. Да, важны также наблюдательность, усидчивость, внимание к деталям, умение общаться с коллегами, но это всё не навыки, а личные качества (которые, конечно, тоже можно тренировать и развивать). А главным техническим навыком является умение проектировать тесты.
Вообще-то придумывать тесты легко. Берём программу и выполняем с ней любые действия, это уже можно считать тестированием. Сложность заключается в том, чтобы за минимальное время выполнить как можно больше полезных тестов, которые с высокой вероятностью находят баги либо подтверждают их отсутствие.
Кроме того, нужно уметь грамотно изложить результаты своей работы. Описать, какие тесты были выполнены. Объяснить, почему именно эти тесты и именно в таком порядке. Доказать, что этих тестов достаточно, что тестирование можно считать “достаточно полным”. А если тестировщик, несмотря на все усилия, пропустит баг, он должен уметь проанализировать причины этого неприятного события и скорректировать свой подход к проектированию тестов.
Почему у некоторых тестировщиков придумывать полезные тесты получается лучше, чем у других? Почему они реже пропускают баги? Может быть они знают какие-то секретные приёмы и техники? Ничего подобного. Эффективные тестировщики применяют те же самые техники, что и все остальные. Разница лишь в том, КАК они их применяют.
Именно этому мы и будем здесь учиться: грамотно использовать те самые техники проектирования тестов, которые описаны в книжках. Разбиение на классы эквивалентности, pairwise, деревья решений, диаграммы состояний и переходов -- все эти и другие техники имеют свои области применения. Понимание границ применимости техник даёт возможность эффективно использовать каждую из них в отдельности и в комбинации с другими техниками.
Тренинг по структуре напоминает “слоёный пирог”. Начнём с простых примеров, затем постепенно будем применять техники во всё более и более сложных ситуациях, а в конце порассуждаем о том, что делать тогда, когда никакие из известных техник не могут быть использованы для построения тестов.
Приготовьтесь выполнять много домашних заданий. Прослушивание лекций не даёт такого эффекта, как самостоятельное “хождение по граблям”. Только через практику знание превращается в опыт.
Этот курс будет полезен разным категориям тестировщиков:
Онлайн-тренинг
Какой навык является самым главным для тестировщика? Конечно, умение проектировать тесты. Да, важны также наблюдательность, усидчивость, внимание к деталям, умение общаться с коллегами, но это всё не навыки, а личные качества (которые, конечно, тоже можно тренировать и развивать). А главным техническим навыком является умение проектировать тесты.
Вообще-то придумывать тесты легко. Берём программу и выполняем с ней любые действия, это уже можно считать тестированием. Сложность заключается в том, чтобы за минимальное время выполнить как можно больше полезных тестов, которые с высокой вероятностью находят баги либо подтверждают их отсутствие.
Кроме того, нужно уметь грамотно изложить результаты своей работы. Описать, какие тесты были выполнены. Объяснить, почему именно эти тесты и именно в таком порядке. Доказать, что этих тестов достаточно, что тестирование можно считать “достаточно полным”. А если тестировщик, несмотря на все усилия, пропустит баг, он должен уметь проанализировать причины этого неприятного события и скорректировать свой подход к проектированию тестов.
Почему у некоторых тестировщиков придумывать полезные тесты получается лучше, чем у других? Почему они реже пропускают баги? Может быть они знают какие-то секретные приёмы и техники? Ничего подобного. Эффективные тестировщики применяют те же самые техники, что и все остальные. Разница лишь в том, КАК они их применяют.
Именно этому мы и будем здесь учиться: грамотно использовать те самые техники проектирования тестов, которые описаны в книжках. Разбиение на классы эквивалентности, pairwise, деревья решений, диаграммы состояний и переходов -- все эти и другие техники имеют свои области применения. Понимание границ применимости техник даёт возможность эффективно использовать каждую из них в отдельности и в комбинации с другими техниками.
Тренинг по структуре напоминает “слоёный пирог”. Начнём с простых примеров, затем постепенно будем применять техники во всё более и более сложных ситуациях, а в конце порассуждаем о том, что делать тогда, когда никакие из известных техник не могут быть использованы для построения тестов.
Приготовьтесь выполнять много домашних заданий. Прослушивание лекций не даёт такого эффекта, как самостоятельное “хождение по граблям”. Только через практику знание превращается в опыт.
Этот курс будет полезен разным категориям тестировщиков:
- начинающим тестировщикам, уже имеющим небольшой опыт, он поможет быстро “прокачаться” и научиться делать хорошие тесты,
- опытным тестировщикам, которые чувствуют наличие пробелов в образовании и хотят их заполнить, освоить новые техники и приёмы, которые пока не входят в их арсенал,
- опытным тестировщикам, которые умеют проектировать хорошие тесты, но не умеют объяснять, как они это делают, и поэтому не могут передать свои навыки младшим товарищам.
- тем, кто вообще не имеет опыта тестирования и только готовится войти в эту профессию, вам лучше пойти на курс “Школа для начинающих тестировщиков”,
- менеджерам, потому что в нём ничего не рассказывается про людей, только про техники, хотя разделы про оформление тестов и про доказательство полноты тестирования может представлять интерес и для этой категории,
- автоматизаторам, если только вы сами не занимаетесь проектированием тестов,
- специалистам по нефункциональным видам тестирования (производительность, защищенность, удобство использования и другие), потому что в этих областях слишком много специфики, которая не нашла отражения в этом курсе.
Тема 1. Предисловие
Определения
Псевдотехники (quicktests)
Техники тестирования
Разбиение на области (классы эквивалентности)
Техники, ориентированные на данные
Техники, ориентированные на сценарии
Прошёл тест или нет?
Так все же, почему техники работают?
Смысл применения техник
Общая теория тестирования
Стратегия тестирования продукта
Определения
- Зачем нужны базовые определения
- Что такое “тестирование компьютерных программ”?
- Что такое “качество”?
- QA, QC, тестирование
- Баг, ошибка, дефект, сбой
- Характеристики качества
- Уровни тестирования (модульное, интеграционное, системное)
- Черное и белое
- Цели тестирования
Псевдотехники (quicktests)
- Цель: знакомство с программой и очевидные баги
- Средство: сценарии использования
- Логическая (цели пользователей, функции программы)
- Физическая (входы, выходы, взаимодействующие части)
- Что является результатом?
- Найденные баги
- Выполненные тесты
- Почему выбраны именно эти тесты?
Техники тестирования
- Цепочки действий (сценарии)
- Полный перебор
- Классы эквивалентности
- Позитивные и негативные тесты
- Границы
- Комбинирование параметров
Разбиение на области (классы эквивалентности)
- Разбиение на области входных данных
- Разбиение на области выходных данных
- Разбиение на области внутреннего состояния
- Проблема выбора представителей
- Границы, типы границ, переход границ
Техники, ориентированные на данные
- Полный и частичный перебор
- Случайные комбинации
- Неслучайные (особые) комбинации
- Комбинирование позитивных и негативных данных
- Учет зависимостей: деревья и таблицы решений
- Комбинации малой размерности (pairwise и другие)
Техники, ориентированные на сценарии
- Правила выделения "атомарных" функций (шагов сценария)
- Комбинаторные цепочки, построение коротких простых сценариев
- Диаграммы состояний и переходов, построение длинных сценариев
- Другие источники сценариев
- Комбинирование сценариев и тестовых данных
Прошёл тест или нет?
- Источники оракулов
- Что делать, если прошёл?
- Что делать, если не прошёл?
- Что делать, если непонятно, прошёл или нет?
- С простых тестов начинать или со сложных?
- Несколько итераций тестирования
Так все же, почему техники работают?
Смысл применения техник
- Эффективность (гипотезы об ошибках)
- Воспроизводимость (повторяемость)
- Экономичность (минимальность)
- Эвристический характер
- Модель поведения программы
- Модель поведения пользователя
- Модель ошибок разработчика
- Модель рисков
- Связь техник с моделями
- Модели, идеи и конкретные тесты
Общая теория тестирования
- Что такое тестирование?
- Критерии качества информации
- Управляемый эксперимент
- Эвристики
- Покрытие приложения
- Покрытие требований
- Покрытие моделей (полнота по построению и отдельная модель покрытия)
- "Лоскутное одеяло"
- Какую полноту обеспечивают техники?
- Верификация, индуктивизм (подтверждающие эксперименты)
- Фальсификационизм (опровергающие эксперименты)
- Альтернативные теории как источник новых экспериментов
- "Доказательство" полноты
- Объяснение неполноты
- Обоснование приоритетов
- Оценка качества тестов
Стратегия тестирования продукта
- Выявление целей тестирования
- Простые тесты (quicktests), исследование продукта
- Тестирование методом свободного поиска
- Использование техник для систематического тестирования
- Оценка полноты тестирования
- Анализ рисков как источник информации для тестов
- Особенности проектирования тестов для автоматизации
- Регрессионное тестирование и новые тесты
- Борьба с дублированием тестов
Последнее редактирование модератором: