Тестирование программного обеспечения — процесс исследования, испытания программного продукта, имеющий две различные цели:
- продемонстрировать разработчикам и заказчикам, что программа соответствует требованиям;
- выявить ситуации, в которых поведение программы является неправильным, нежелательным или не соответствующим спецификации.
Существующие на сегодня методы тестирования программного обеспечения не позволяют однозначно и полностью выявить все дефекты и установить корректность функционирования анализируемой программы, поэтому все существующие методы тестирования действуют в рамках формального процесса проверки исследуемого или разрабатываемого программного обеспечения.
Такой процесс формальной проверки, или верификации, может доказать, что дефекты отсутствуют с точки зрения используемого метода. (То есть, нет никакой возможности точно установить или гарантировать отсутствие дефектов в программном продукте с учётом человеческого фактора, присутствующего на всех этапах жизненного цикла программного обеспечения.)
Существует множество подходов к решению задачи тестирования и верификации программного обеспечения, но эффективное тестирование сложных программных продуктов — это процесс в высшей степени творческий, не сводящийся к следованию строгим и чётким процедурам или созданию таковых.
Качество программного обеспечения можно определить как совокупную характеристику исследуемого ПО с учётом следующих составляющих:
- надёжность
- сопровождаемость
- практичность
- эффективность
- мобильность
- функциональность
Существует несколько признаков, по которым принято производить классификацию видов тестирования. Обычно выделяют следующие:
По объекту тестирования
- Функциональное тестирование
- Тестирование производительности
- Нагрузочное тестирование
- Стресс-тестирование
- Тестирование стабильности
- Конфигурационное тестирование
- Юзабилити-тестирование
- Тестирование интерфейса пользователя
- Тестирование безопасности
- Тестирование локализации
- Тестирование совместимости
По знанию системы
- Тестирование чёрного ящика
- Тестирование белого ящика
- Тестирование серого ящика
По степени автоматизации
- Ручное тестирование
- Автоматизированное тестирование
- Полуавтоматизированное тестирование
По степени изолированности компонентов
- Модульное тестирование
- Интеграционное тестирование
- Системное тестирование
По времени проведения тестирования
- Альфа-тестирование
- Дымовое тестирование (англ. smoke testing)
- Тестирование новой функции (new feature testing)
- Подтверждающее тестирование
- Регрессионное тестирование
- Приёмочное тестирование
- Бета-тестирование
По признаку позитивности сценариев
- Позитивное тестирование
- Негативное тестирование
По степени подготовленности к тестированию
- Тестирование по документации (формальное тестирование)
- Интуитивное тестирование (англ. ad hoc testing)
0 комментариев