
- •Лекция 18. Область знаний «ТЕСТИРОВАНИЕ ПО» SWEBOK
- •Источники литературы
- •Тестирование программных систем (в узком смысле)
- •Область знаний «Тестирование ПО»
- •Область знаний «Тестирование ПО»
- •Область знаний «Тестирование ПО»
- •1.Основы тестирования ПО
- •1.Основы тестирования ПО
- •1.1. Терминология тестирования
- •Англоязычная терминология – сложности перевода
- •Англоязычная терминология - 2
- •Англоязычная терминология – 3
- •Терминология тестирования - 2
- •Test Case (пример)
- •Test Case (окончание примера)
- •Test-Plan (пример)
- •Тестирование в узком и широком смысле
- •Верификация
- •Верификация и валидация
- •Верификация и валидация
- •1.Основы тестирования ПО
- •1.2.Ключевые вопросы
- •1.2.1 Критерии отбора тестов/критерии адекватности тестов, правила прекращения тестирования
- •Основной вопрос тестирования
- •Когда завершать тестирование
- •1.2.2 Эффективность тестирования/Цели тестирования
- •1.2.3 Тестирование для идентификации дефектов
- •1.2.4Проблема оракула
- •1.2.5 Теоретические и практические ограничения тестирования
- •1.2.6 Проблема неосуществимых путей
- •1.2.7Тестируемость
- •1.Основы тестирования ПО
- •Отладка не является тестированием
- •1.3 Связь тестирования с другой деятельностью
- •Область знаний «Тестирование ПО»
- •2.Уровни тестирования
- •Тестирование в V-модели
- •2.1.1Модульное тестирование
- •2.1.2 Интеграционное тестирование
- •2.1.3 Системное тестирование
- •2.2. Цель тестирования
- •Цель, роль тестирования (более широкое определение).
- •Цели тестирования подробно:
- •2.2.1Приёмочное тестирование
- •2.2.2Установочное тестирование
- •2.2.3Альфа- и бета-тестирование
- •2.2.4 Функциональные тесты/тесты соответствия
- •2.2.5 Достижение и оценка надежности
- •2.2.6 Регрессионное тестирование
- •2.2.7 Тестирование производительности
- •2.2.8Нагрузочное тестирование
- •2.2.9 Сравнительное тестирование
- •2.2.10Восстановительные тесты
- •2.2.11 Конфигурационное тестирование
- •2.2.12 Тестирование удобства и простоты использования
- •2.2.13 Разработка, управляемая тестированием
- •Область знаний «Тестирование ПО»
- •3.Техники тестирования
- •Область знаний «Тестирование ПО»
- •4. Измерение результатов тестирования
- •4.1 Оценка программ в процессе тестирования
- •4.2.1 Метрики покрытия/глубины тестирования
- •Область знаний «Тестирование ПО»
- •5.Процесс тестирования
- •5.2Тестовые работы
- •5.2.1Планирование
- •5.2.2 Генерация сценариев тестирования
- •5.2.3 Разработка тестового окружения
- •5.2.4Выполнение тестов
- •5.2.5 Анализ результатов тестирования
- •5.2.6 Отчёты о проблемах/журнал тестирования
- •5.2.7 Отслеживание дефектов
- •Стандарты на тестирование программного обеспеченя
- •3.1.1 Специализированное тестирование
- •3.1.2Исследовательское
- •Источники литературы
- •3.2 Техники, базирующиеся на спецификации
- •3.2.2Анализ граничных значений
- •3.2.3Таблицы принятия решений
- •3.2.4 Тесты на основе конечного автомата
- •3.2.5 Тестирование на основе формальной спецификации
- •3.2.6 Случайное тестирование
- •3.3 Техники, ориентированные на код
- •3.3.1 Тесты, базирующиеся на блок-схеме
- •3.3.2 Тесты на основе потоков данных
- •3.3.3 Ссылочные модели для тестирования, ориентированного на код
- •3.4 Тестирование, ориентированное на дефекты
- •3.4.1 Предположение ошибок
- •3.4.2Тестирование
- •3.5 Техники, базирующиеся на условиях использования
- •3.5.1 Операционный профиль
- •3.5.2 Тестирование, базирующееся на надежности инженерного процесса
- •3.6 Техники, базирующиеся на природе приложения
- •3.7 Выбор и комбинация различных техник
- •3.7.1 Функциональное и структурное
- •3.7.1 Определенное или случайное
3.5 Техники, базирующиеся на условиях использования
3.5.1 Операционный профиль
•Тестирование для оценки надёжности системы должно проводиться в таком тестовом окружении, которое максимально приближено к реальным условиям работы системы. Результаты таких тестов позволяют оценить
поведение системы в реальных условиях. Входные параметры тестов задаются на основе вероятностного распределения соответствующих параметров или их наборов при эксплуатации (входные данные могут прогнозироваться исходя из частоты возможных сценариев работы пользователей).
3.5.2 Тестирование, базирующееся на надежности инженерного процесса
•Соответствующие тесты (обозначаемые также аббревиатурой SRET) проектируются в контексте используемого процесса разработки и методик тестирования.
3.6 Техники, базирующиеся на природе приложения
•Описанные выше техники могут применяться к любым типам программных систем. В то же время, в зависимости от технологической или архитектурной природы приложений, могут также применять специфические техники, важные именно для заданного типа приложения. Среди таких техник:
•Объектно-ориентированное тестирование
•Компонентно-ориентированное тестирование
•Web-ориентированное тестирование
•Тестирование на соответствие протоколам
•Тестирование систем реального времени
3.7 Выбор и комбинация различных техник
3.7.1 Функциональное и структурное
•Техники тестирования, строящиеся на основе спецификаций или кода часто называют функциональными или структурными, соответственно. Оба подхода не должны противопоставляться, но дополнять друг друга.
3.7.1 Определенное или случайное
•Обычно тесты можно распределить по данным группам на основе используемой политики выбора или определения входных параметров тестов.