
- •Лекция 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 Определенное или случайное
1.Основы тестирования ПО
1.1.Терминология тестирования
1.2.Ключевые вопросы
1.3.Связь тестирования с другой деятельностью
1.2.Ключевые вопросы
1.2.1.Критерии отбора тестов/критерии адекватности тестов, правила прекращения тестирования
1.2.2.Эффективность тестирования/цели тестирования
1.2.3.Тестирование для идентификации дефектов
1.2.4.Проблема оракула
1.2.5.Проблема неосуществимых путей
1.2.1 Критерии отбора тестов/критерии адекватности тестов, правила прекращения тестирования
Критерии отбора тестов нужны:
•для создания набора тестов,
•для проверки, насколько выбранные тесты адекватны решаемым задачам (тестирования)
При этом, они помогают определить, когда можно или необходимо прекратить тестирование.

Основной вопрос тестирования |
|
|
Вопрос: |
Сколько |
нужно |
тестировать? |
|
|
Ответ: Чуть-чуть меньше, чем
Какойслишкомобъёммноготестирования. достаточен?
Когда продукт готов к выпуску?
Из фольклора тестировщиков
Аналогия для размышления:
Какой объём лечения достаточен? Когда пациент готов к выписке?

Когда завершать тестирование
Тестирование следует продолжать до тех пор, пока затраты на обнаружение и исправление дефектов НИЖЕ, чем будущие потери от сбоев продукта при его эксплуатации
Тим Комен, Мартин Пол, 1999
1.2.2 Эффективность тестирования/Цели тестирования
•Тестирование – это наблюдение за выполнением программы,
•запущенной в целях тестирования с заданными параметрами,
•по заданному сценарию или с другими заданными начальными условиями или целями тестирования
•Эффективность теста может быть определена только в контексте заданных условий.
1.2.3 Тестирование для идентификации дефектов
•Данный случай тестирования подразумевает успешность процедуры тестирования, если дефект найден
•Это отличается от подхода в тестировании, когда тесты запускаются для демонстрации того, что программное обеспечение удовлетворяет предъявляемым требованиями и, соответственно, тест считается успешным, если не найдено дефектов.
1.2.4Проблема оракула
•“Оракул”, в данном контексте, любой агент (человек или программа), оценивающий поведение программы, формулируя вердикт - тест пройден (“pass”) или нет (“fail”)
•«Проблема оракула» - формулировка критериев успешности прохождения тестов,
одна из основных проблем
1.2.5 Теоретические и практические ограничения тестирования
•Теория тестирования выступает против необоснованного уровня доверия к серии успешно пройденных тестов.
•К сожалению, большинство установленных результатов теории тестирования – негативны, означая, по словам Дейкстры (Dijkstra), то, что
•“тестирование программы может использоваться для демонстрации наличия дефектов, но никогда не покажет их отсутствие”
•Основная причина этого в том, что полное (всеобъемлющее) тестирование недостижимо для реального программного обеспечения.
1.2.6 Проблема неосуществимых путей
•Связана с тем, что путь,
•по которому выполняются потоки работ тестируемой программной системы,
•не может быть однозначно задан входными параметрами.