Курс позволит освоить базовые техники проектирования тестов, чтобы научиться применять их на практике и иметь возможность придумывать разнообразные тесты. Какой навык является самым главным для тестировщика? Конечно, умение проектировать тесты. Да, важны также наблюдательность, усидчивость, внимание к деталям, умение общаться с коллегами, но это всё не навыки, а личные качества (которые, конечно, тоже можно тренировать и развивать). А главным техническим навыком является умение проектировать тесты.
Вообще-то придумывать тесты легко. Берём программу и выполняем с ней любые действия, это уже можно считать тестированием. Сложность заключается в том, чтобы за минимальное время выполнить как можно больше полезных тестов, которые с высокой вероятностью находят баги либо подтверждают их отсутствие.
Кроме того, нужно уметь грамотно изложить результаты своей работы. Описать, какие тесты были выполнены. Объяснить, почему именно эти тесты и именно в таком порядке. Доказать, что этих тестов достаточно, что тестирование можно считать “достаточно полным”. А если тестировщик, несмотря на все усилия, пропустит баг, он должен уметь проанализировать причины этого неприятного события и скорректировать свой подход к проектированию тестов.
Почему у некоторых тестировщиков придумывать полезные тесты получается лучше, чем у других? Почему они реже пропускают баги? Может быть они знают какие-то секретные приёмы и техники? Ничего подобного. Эффективные тестировщики применяют те же самые техники, что и все остальные. Разница лишь в том, КАК они их применяют.
Именно этому мы и будем здесь учиться: грамотно использовать те самые техники проектирования тестов, которые описаны в книжках. Разбиение на классы эквивалентности, pairwise, деревья решений, диаграммы состояний и переходов -- все эти и другие техники имеют свои области применения. Понимание границ применимости техник даёт возможность эффективно использовать каждую из них в отдельности и в комбинации с другими техниками.
Тренинг по структуре напоминает “слоёный пирог”. Начнём с простых примеров, затем постепенно будем применять техники во всё более и более сложных ситуациях, а в конце порассуждаем о том, что делать тогда, когда никакие из известных техник не могут быть использованы для построения тестов.
Приготовьтесь выполнять много домашних заданий. Прослушивание лекций не даёт такого эффекта, как самостоятельное “хождение по граблям”. Только через практику знание превращается в опыт.
Этот курс будет полезен разным категориям тестировщиков:
- начинающим тестировщикам, уже имеющим небольшой опыт, он поможет быстро “прокачаться” и научиться делать хорошие тесты,
- опытным тестировщикам, которые чувствуют наличие пробелов в образовании и хотят их заполнить, освоить новые техники и приёмы, которые пока не входят в их арсенал,
- опытным тестировщикам, которые умеют проектировать хорошие тесты, но не умеют объяснять, как они это делают, и поэтому не могут передать свои навыки младшим товарищам.
Тренинг будет менее полезен:
- тем, кто вообще не имеет опыта тестирования и только готовится войти в эту профессию, вам лучше пойти на курс “Школа для начинающих тестировщиков”,
- менеджерам, потому что в нём ничего не рассказывается про людей, только про техники, хотя разделы про оформление тестов и про доказательство полноты тестирования может представлять интерес и для этой категории,
- автоматизаторам, если только вы сами не занимаетесь проектированием тестов,
- специалистам по нефункциональным видам тестирования (производительность, защищенность, удобство использования и другие), потому что в этих областях слишком много специфики, которая не нашла отражения в этом курсе.
Этот тренинг представляет собой новую версию одного из самых популярных наших учебных курсов “Практикум по тест-дизайну”. Мы расширили и углубили программу, но в целом здесь изучается тот же самый набор техник. Поэтому если вы уже проходили “Практикум”, идти на этот курс, наверное, нет особого смысла. Но если вы всё таки хотите это сделать, для участников “Практикума” действуют специальные условия, вы можете пройти новую версию курса за 30% стоимости.
Тема 1. Предисловие
Определения
- Зачем нужны базовые определения
- Что такое “тестирование компьютерных программ”?
- Что такое “качество”?
- QA, QC, тестирование
- Баг, ошибка, дефект, сбой
Классификации
- Характеристики качества
- Уровни тестирования (модульное, интеграционное, системное)
- Черное и белое
- Цели тестирования
Тема 2. Тестирование “без техник” (на самом деле нет)
Псевдотехники (quicktests)
- Цель: знакомство с программой и очевидные баги
- Средство: сценарии использования
Структура программы
- Логическая (цели пользователей, функции программы)
- Физическая (входы, выходы, взаимодействующие части)
Представление результатов
- Что является результатом?
- Найденные баги
- Выполненные тесты
- Почему выбраны именно эти тесты?
Тема 3. “Делай раз, делай два, делай три”
Техники тестирования
- Цепочки действий (сценарии)
- Полный перебор
- Классы эквивалентности
- Позитивные и негативные тесты
- Границы
- Комбинирование параметров
Тема 4. Применение техник в более сложных условиях. Разбиение на области
Разбиение на области (классы эквивалентности)
- Разбиение на области входных данных
- Разбиение на области выходных данных
- Разбиение на области внутреннего состояния
- Проблема выбора представителей
- Границы, типы границ, переход границ
Тема 5. Применение техник в более сложных условиях. Комбинаторика
Техники, ориентированные на данные
- Полный и частичный перебор
- Случайные комбинации
- Неслучайные (особые) комбинации
- Комбинирование позитивных и негативных данных
- Учет зависимостей: деревья и таблицы решений
- Комбинации малой размерности (pairwise и другие)
Тема 6. Применение техник в более сложных условиях. Сценарии
Техники, ориентированные на сценарии
- Правила выделения "атомарных" функций (шагов сценария)
- Комбинаторные цепочки, построение коротких простых сценариев
- Диаграммы состояний и переходов, построение длинных сценариев
- Другие источники сценариев
- Комбинирование сценариев и тестовых данных
Тема 7. Оракулы и баги
Прошёл тест или нет?
- Источники оракулов
- Что делать, если прошёл?
- Что делать, если не прошёл?
- Что делать, если непонятно, прошёл или нет?
Представление результатов
- С простых тестов начинать или со сложных?
Как описать все придуманные тесты?
- Несколько итераций тестирования
Тема 8. Модели и реальный мир
Так все же, почему техники работают?
Смысл применения техник
- Эффективность (гипотезы об ошибках)
- Воспроизводимость (повторяемость)
- Экономичность (минимальность)
- Эвристический характер
Виды моделей, используемых в тестировании
- Модель поведения программы
- Модель поведения пользователя
- Модель ошибок разработчика
- Модель рисков
- Связь техник с моделями
Представление результатов
- Модели, идеи и конкретные тесты
Тема 9. Возможно ли полное тестирование?
Общая теория тестирования
- Что такое тестирование?
- Критерии качества информации
- Управляемый эксперимент
- Эвристики
Полнота
- Покрытие приложения
- Покрытие требований
- Покрытие моделей (полнота по построению и отдельная модель покрытия)
- "Лоскутное одеяло"
- Какую полноту обеспечивают техники?
Неполнота
- Верификация, индуктивизм (подтверждающие эксперименты)
- Фальсификационизм (опровергающие эксперименты)
- Альтернативные теории как источник новых экспериментов
Представление результатов
- "Доказательство" полноты
- Объяснение неполноты
- Обоснование приоритетов
- Оценка качества тестов
Тема 10: Ещё раз обо всём с самого начала
Стратегия тестирования продукта
- Выявление целей тестирования
- Простые тесты (quicktests), исследование продукта
- Тестирование методом свободного поиска
- Использование техник для систематического тестирования
- Оценка полноты тестирования
- Анализ рисков как источник информации для тестов
- Особенности проектирования тестов для автоматизации
Представление результатов тестирования
- Регрессионное тестирование и новые тесты
- Борьба с дублированием тестов
https://www.guru99.com/software-testing.html
И еще автор этого курса явно очень любит разбирать теорию из разных источников, что хорошо разве что для научной статьи...