
- •Тестирование программного обеспечения
- •Тестирование
- •С точки зрения ISO 9126, качество программного обеспечения можно определить как совокупную характеристику
- •Структура стандарта IEEE 829-2008
- •Этапы развития представлений об организации и реализации тестирования
- •Этапы развития представлений об организации и реализации тестирования (продолжение).
- •Классификация
- •Классификация
- •Классификация
- •Классификация
- •Уровни тестирования
- •Статическое и динамическое тестирование
- •Функциональное тестирование: особенности тестирования «черного ящика»
- •Функциональное тестирование: классы обнаруживаемых ошибок
- •Функциональное тестирование: область и специфика применения тестирования «черного ящика».
- •Функциональное тестирование: «серый ящик» (grey-box testing)
- •Объектно-ориентированное тестирование
- •Объектно-ориентированное тестирование: расширение области применения тестирования
- •Объектно-ориентированное тестирование: CRC-карта
- •Объектно-ориентированное тестирование: CRC-карта
- •Объектно-ориентированное тестирование: изменение методики при объектно-ориентированном тестировании.
- •Объектно-ориентированное тестирование: проектирование объектно- ориентированных тестовых вариантов .
- •Объектно-ориентированное тестирование: проектирование объектно-ориентированных тестовых вариантов .
- •Предваряющее тестирование при экстремальной разработке
- •Отладка

Тестирование программного обеспечения
•Определение, история развития
•Подходы и методы

Тестирование
Существующие на сегодняшний день методы тестирования ПО не позволяют однозначно и полностью выявить все дефекты и установить корректность функционирования анализируемой программы, поэтому все существующие методы тестирования действуют в рамках формального процесса проверки исследуемого или разрабатываемого ПО.
Такой процесс формальной проверки, или верификации, может доказать, что дефекты отсутствуют с точки зрения используемого метода.

С точки зрения ISO 9126, качество программного обеспечения можно определить как совокупную характеристику исследуемого ПО с учётом следующих составляющих:
•Надёжность
•Сопровождаемость
•Практичность
•Эффективность
•Мобильность
•Функциональность
Состав и содержание документации, сопутствующей процессу тестирования, определяется стандартом IEEE 829-2008 Standard for Software Test Documentation.

Структура стандарта IEEE 829-2008
1.Test Plan Identifier
2.References
3.Introduction
4.Test Items
5.Software Risk Issues
6.Features to be Tested
7.Features not to be Tested
8.Approach
9.Item Pass/Fail Criteria
10.Suspension Criteria and Resumption Requirements
11.Test Deliverables
12.Remaining Test Tasks
13.Environmental Needs
14.Staffing and Training Needs
15.Responsibilities
16.Schedule
17.Planning Risks and Contingencies
18.Approvals
19.Glossary

Этапы развития представлений об организации и реализации тестирования
•До 60-х годов: тестирование строго формализовано с записью всех тестовых процедур, тестовых данных, полученных результатов. Это отдельный процесс, начинавшийся после завершения кодирования, как правило, выполнялось тем же персоналом.
•В 1960-х: «исчерпывающее» тестирование. Должно проводиться с использованием всех путей в коде или всех возможных входных данных. Не реализуемо.
•В начале 1970-х: процесс, направленный на демонстрацию корректности продукта, деятельность по подтверждению правильности работы ПО.

Этапы развития представлений об организации и реализации тестирования (продолжение).
•Вторая половина1970-х: тестирование -выполнение программы с намерением найти ошибки, а не доказать, что она работает. Успешный тест обнаруживает ранее неизвестные проблемы.
•В 1980-х тестирование расширилось таким понятием, как предупреждение дефектов.
•В начале 1990-х: тестирование включает планирование, проектирование, создание, поддержку и выполнение тестов и тестовых окружений. Переход от тестирования к обеспечению качества, охватывающего весь цикл разработки ПО.
•В 2000-х: добавлено понятие «оптимизация бизнес- технологий».

Классификация
По объекту тестирования:
•Функциональное тестирование (functional testing)
•Тестирование производительности (performance testing)
•Нагрузочное тестирование (load testing)
•Стресс-тестирование (stress testing)
•Тестирование стабильности (stability / endurance / soak testing)
•Юзабилити-тестирование (usability testing)
•Тестирование интерфейса пользователя (UI testing)
•Тестирование безопасности (security testing)
•Тестирование локализации (localization testing)
•Тестирование совместимости (compatibility testing)

Классификация
(продолжение)
По знанию системы:
•Тестирование чёрного ящика (black box)
•Тестирование белого ящика (white box)
•Тестирование серого ящика (grey box)
По степени автоматизации:
•Ручное тестирование (manual testing)
•Автоматизированное тестирование (automated testing)
•Полуавтоматизированное тестирование (semiautomated testing)

Классификация
(продолжение)
По степени изолированности компонентов:
•Компонентное (модульное) тестирование (component/unit testing)
•Интеграционное тестирование (integration testing)
•Системное тестирование (system/end-to-end testing)
По времени проведения тестирования:
•Альфа-тестирование (alpha testing)
•Тестирование при приёмке (smoke testing)
•Тестирование новой функциональности (new feature testing)
•Регрессионное тестирование (regression testing)
•Тестирование при сдаче (acceptance testing)
•Бета-тестирование (beta testing)

Классификация
(продолжение)
По признаку позитивности сценариев:
•Позитивное тестирование (positive testing)
•Негативное тестирование (negative testing)
По степени подготовленности к тестированию:
•Тестирование по документации (formal testing)
•Тестирование ad hoc или интуитивное тестирование (ad hoc testing)