
- •Лекция 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.2.7Тестируемость
•Двоякий смысл:
1)степень легкости описания критериев покрытия тестами для заданной программной системы
2)возможность статистического измерения того, что сбой программной системы проявится при тестировании
•Обе интерпретации одинаково важны для тестирования.
1.Основы тестирования ПО
1.1.Терминология тестирования
1.2.Ключевые вопросы
1.3.Связь тестирования с другой деятельностью
Отладка не является тестированием
Отладка направлена на установление точной природы известной ошибки
Отладку понимают как процесс поиска и исправления ошибок, факт наличия которых устанавливается при тестировании.
1.3 Связь тестирования с другой деятельностью
•Тестирование программного обеспечения отличается от:
–статических техник управления качеством,
–проверки корректности,
–отладки,
–программирования,
•но связано со всеми этими работами
•Полезно рассматривать тестирование с точки зрения аналитиков и специалистов по сертификации качества.
Область знаний «Тестирование ПО»
1.Основы тестирования
2.Уровни тестирования
3.Техники тестирования
4.Измерение результатов тестирования
5.Процесс тестирования
2.Уровни тестирования
2.1Над чем производятся тесты
2.2Цели тестирования.

Тестирование в V-модели
Requirements
Architecture
Design
fix
4
fix
3
fix
Acceptance test
System test
Integration tests
2
Construction |
|
|
|
fix1 |
|
|
|
Unit tests |
|
|
|
|
|
|
|||
|
|
|
|
|
|
Developme |
Testing |
|
nt |
||
|
2.1.1Модульное тестирование
•Позволяет проверить функционирование отдельно взятого элемента системы
•Что считать элементом – модулем системы, определяется контекстом
•Наиболее полно данный вид тестов описан в стандарте IEEE 1008-87 “Standard for Software Unit Testing”, задающем концепцию систематического и документированного подхода к модульному тестированию.
2.1.2 Интеграционное тестирование
•Наиболее успешная практика интеграционного тестирования базируется на инкрементном подходе, позволяющем избежать проблем проведения разовых тестов,
•связанных с тестированием результатов очередного длительного этапа работ,
•когда количество выявленных дефектов приводит к серьезной переработке кода
•(традиционно, негативный опыт выпуска и тестирования только крупных релизов называют “big bang”).
2.1.3 Системное тестирование
•Охватывает целиком всю систему
•Большинство функциональных сбоев должно быть идентифицировано еще на уровне модульных и интеграционных тестов
•В свою очередь, системное тестирование, обычно фокусируется на нефункциональных требованиях – безопасности, производительности, точности, надежности т.п.