Урок 1 - Базовые определения
Тестирование - проверка ПО на соответствие требованиям и ожиданиям заинтересованных лиц, предоставление информации о результатах тестирования заинтересованным лицам.
По делает то, что должна делать и не делает того, чего не должна делать.
Тестирование - исследование ПО с целью получить информацию о её качестве и передать полученную информацию заинтересованным лицам
Тестирование осуществляется путем наблюдения за работой ПО в специальных искусственно созданных ситуациях выбранный определенный образом.
Урок 2 - Другие определения
ПО - это средство для обработки информации и/или обмена информации основанное на выполнении инструкций, написанный на специальных языках.
Урок 3 - Качество
Тестирование - деятельность нацеленная на получение информации о качестве продукта.
Качество - мера ценности и полезности для кого-либо
Баг - то, что снижает ценность продукта
Баг - то что напрягает или раздражает кого-то.
Ошибка - действие человека
Дефект - результат ошибочного действия, его можно не видеть, но оно есть
Сбой - падение системы, действие когда проявляется дефект (видимое проявление дефекта).
Урок 4 - Виды тестирования
Классификация тестирования по уровням:
- Модульное
- Интеграционное
- Системное
Методы:
- Черное и белое (прозрачное)
По целям:
- дымовое
- приемочное
- регрессионное
- бета
Урок 5 - Перед тем как начать
Новый продукт/функция
- Знакомство
- Общая оценка
- Очевидные баги
- Дальнейшие шаги
Learnability
- Что хочет пользователь?
- Что он знает и умеет?
- Ключевые функции
- Ответы на вопросы
- Readability
Но нельзя же совсем без знаний?
- Образование, культура, возраст, характер
- Профессия, предметная область
- Аналогичные продукты, предыдущие версии
- Назначение продукта, общая информация
урок 6 - Знакомство с программой
Перед тем как начать:
- Чего хочет пользователь?
- Какие функции для него ключевые?
Новая программа
- Запустите программу и посмотрите на неё
- "Просканируйте" её (пройдите по меню)
- Выпишите список функций
- Опишите их входные еи выходные данные
- Опишите сценарии использования
Новая функция
- Запустить программу и найдите эту функцию
- Опишите её входные и выходные данные
- Опишите сценарии использования
Урок 7 - Структура программы
- Физическая структура
- Схема развёртывания - описывает, где на каких машинах расположены части программы и как они взаимодействуют между собой
- Входы: как можно взаимодействовать
- Выходы: что можно наблюдать
- Связи: что можно разорвать
- Внешние ресурсы, особенно общие
- Внутреннее устройство
Урок 8 - Первые результаты
Результаты знакомства
- Описание программы
- Заготовки тестов
- Общая оценка качества
- Очевидные баги
- План действия
Описание программы
- Логическая структура:
- ключевые функции, сценарии использования
- входные и выходные данные
- Физическая структура
- схема развертывания
- входные и выходные интерфейсы
План дальнейших действий
- Порядок тестирования функций
- Оценка количества тестов
- Порядок выполнения тестов
- Оценка количества итераций
- Распараллеливание
Урок 9 Сценарий использования (use case)
Рекомендация: книга Алистер Коберн "Современные методы описания функциональных требований к системам"
Сценарии "по Коберну"
- Название/Цель
- Краткое описание*
- Действующие лица
- Триггеры*
- Предусловия
- Постусловия*
- Основной сценарий
- Альтернативный сценарий
* - не обязательные
Урок 10 Альтернативные сценарии
Альтернативные сценарии - отклонения от основного сценария. Каждый АС отклоняется от основного на каком-то шаге и при построении набора альтернатив удобно начинать не с начала сценария, а с конца. Т.е. смотреть какие могут возникнут отклонения на предпоследнем шаге, потом на предыдущем, потом ещё и так до самого начала.
Заканчивать АС лучше в стабильном состоянии, например возвратом к основному сценарию.
Урок 11
Подготовка тестовых сценариев и тестовых данных.
Зачастую затруднительно выполнить полный перебор.
Урок 12 Разбиение на области (Классы эквивалентности)
Гленфорд Майерс:
Чтобы уменьшить количество тестов и количество усилий на тестирование нужно данные разбить на классы эквивалентности.
Выделяя класс эквивалентности мы формируем группу или подмножество данных и утверждаем, что если баг не находится на каком-то представителе этой группы, то он скорее всего не найдется и на остальных представителях этой группы. Поэтому пробовать остальные нет смысла, достаточно протестировать на одном представителе этой группы, этого классы эквивалентности.
Кем Карнер:
Если мы от выполнения двух тестов ожидаем одинаковый результат, то можно считать их эквивалентными.
Группа тестов образует класс эквивалентности, если вы верите в то что, когда какой-то один представитель класса эквивалентности ловит баг, тот же самый баг скорее всего был бы пойман и любым другим представителем этой группы тоже.
И наоборот:
Если какой-то один тест из группы баг не находит (завершается успешно), то скорее всего и остальные тоже буду завершаться успешно.
Но должны быть причины и обоснования для веры.
Полная коллекция - по одному представителю из каждой группы.
Позитивные - основной сценарий
Негативные - альтернативные сценарии
Позитивные можно комбинировать друг с другом как угодно
Негативные можно вводить только по отдельности, по одному
Урок 13 - Анализ граничных значений
Гленфорд Майерс:
Вместо того чтобы выбирать произвольные значения из класса эквивалентности, проверьте поведение ПО на точках, которые являются границами этого класса эквивалентности.
14 Урок
Одинаковые тесты приводят к выполнению одинаковых частей кода, а разные тесты приводят к выполнению разных частей кода.
Урок 15
Урок 16
Какие значения нужно выбирать:
Не только на границах, но и что-то внутри класса.
Кол-во областей выбирается по контексту
Урок 17 Типы границ
Физические
Логические
Произвольные
Технологические
Урок 18
Обобщение пройденного


Урок 19
Построение комбинаций
Как уменьшить количество комбинаций
- Зависимые и независимые группы (Разделяй и властвуй)
Позитивные комбинировать, негативные по отдельности.
Урок 21
Деревья решений (деревья вариантов, деревья развилок)
А бывает много "позитивных" путей
Урок 22 - Попарное тестирование
можно почитать в других источниках
Урок 23
Сценарии
Урок 24
Урок 25
Диаграммы и таблицы состояний и переходов
Почитать в других источниках
Урок 26
Техники работают вместе
Урок 27
Урок 28
Оракулы - требования, ТЗ и спеки и т.п.
Стандарты, законы, нормы, регламенты и пр.
Предыдущие версии
Похожие продукты
Продукт сам по себе (согласованность внутри себя)
Ожидания заинтересованных лиц
Личный опыт
Урок 29
Урок 30
31 урок
Польза применения техник
Урок 32
Модели и тестирование
Модели - это система, исследование которой служит средством для получения информации о другой системе; представление некоторого реального процесса устройства или концепции.
Урок 33
Модель - упрощённое подобие чего-то
Требования к модели:
- Адекватность
- Точность
- Экономичность
- Универсальность
Моделирование - построение нескольких (многих) простых моделей (набор моделей), так чтобы они вместе, в совокупности достаточно точно моделировали описываемое явление.
Для чего в тестировании используется набор моделей:
- генерация тестов (какие, как)
- оценка полноты (полнота покрытия модели)
Модели данных:
- Разбиение на подобласти (классы эквивалентности и анализ граничных значений)
- Статистические модели (сколько тесто в каждом классе эквивалентности? - exit poll, маркетинговые исследования)
- Покрывающие наборы
- Анализ потоков данных
Расчет размера выборки
https://socioline.ru/rv.php
Модели поведения:
- "Набор линейных сценариев"
- Диаграммы состояний и переходов (покрытие переходов)
Явная модель - сложная модель с циклами, разветвлениями.
Неявное описание автомата
Урок 34
Полнота тестирования
Урок 35
Полнота (достаточность) тестирования
Как посчитать?
Оценка полноты покрытия кода
Покрытие требований
Покрытие моделей
Урок 36
Тестирование как эксперимент
Верификационизм
Фальсификационизм
Урок 37
Представление результатов
Урок 38
Состав стратегии:
Урок 39
Риски и тестирование
урок 40
Автотесты и тест-дизайн
урок 41
Регресс и тест-дизайн
Комментариев нет:
Отправить комментарий