Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3_Классификация тестирования.docx
Скачиваний:
47
Добавлен:
23.03.2015
Размер:
82 Кб
Скачать

Классификация тестирования

Document prepared by Александров А.С.

Version 1.0 Содержание

  1. Введение

  2. По объекту тестирования

  3. По знанию системы (по доступу кода)

  4. По степени автоматизации

  5. По степени изолированности компонентов

  6. По времени проведения тестирования

  7. По степени подготовленности документации

1.Введение

Существует несколько признаков, по которым принято производить классификацию видов тестирования. Обычно выделяют следующие:

По объекту тестирования:

  • Функциональное тестирование(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)

2.По объекту тестирования

Функциональное тестирование 

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

Функциональные требования включают:

  • Функциональная пригодность (англ.suitability).

  • Точность (англ.accuracy).

  • Способность к взаимодействию (англ.interoperability).

  • Соответствие стандартам и правилам (англ.compliance).

  • Защищённость (англ.security).

Функциональные тесты основываются на функциях, выполняемых системой, и могут проводиться на всех уровнях тестирования(компонентном, интеграционном, системном, приемочном). Как правило, эти функции описываются в требованиях, функциональных спецификациях или в виде случаев использования системы (use cases).

Тестирование функциональности может проводится в двух аспектах:

  • требования

  • бизнес-процессы

Тестирование в перспективе «требования» использует спецификацию функциональных требований к системе как основу для дизайна тестовых случаев (Test Cases). В этом случае необходимо сделать список того, что будет тестироваться, а что нет, приоритезировать требования на основе рисков (если это не сделано в документе с требованиями), а на основе этого приоритезировать тестовые сценарии (test cases). Это позволит сфокусироваться и не упустить при тестировании наиболее важный функционал.

Тестирование в перспективе «бизнес-процессы» использует знание этих самых бизнес-процессов, которые описывают сценарии ежедневного использования системы. В этой перспективе тестовые сценарии (test scripts), как правило, основываются на случаях использования системы (use cases).

Преимущества функционального тестирования:

  • имитирует фактическое использование системы;

Недостатки функционального тестирования:

  • возможность упущения логических ошибок в программном обеспечении;

  • вероятность избыточного тестирования.

Нагрузочное тестирование или тестирование производительности

Нагрузочное тестирование или тестирование производительности - это автоматизированное тестирование, имитирующее работу определенного количества бизнес пользователей на каком либо общем (разделяемом ими) ресурсе.

В нагрузочное тестирование входят следующие виды тестирования производительности:

Тестирование производительности (Performance testing)

Задачей тестирования производительности является определение масштабируемости приложения под нагрузкой, при этом происходит:

  • измерение времени выполнения выбранных операций при определенных интенсивностях выполнения этих операций

  • определение количества пользователей, одновременно работающих с приложением

  • определение границ приемлемой производительности при увеличении нагрузки (при увеличении интенсивности выполнения этих операций)

  • исследование производительности на высоких, предельных, стрессовых нагрузках

Стрессовое тестирование (Stress Testing)

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

Объемное тестирование (Volume Testing)

Задачей объемного тестирования является получение оценки производительности при увеличении объемов данных в базе данных приложения, при этом происходит:

  • измерение времени выполнения выбранных операций при определенных интенсивностях выполнения этих операций

  • может производиться определение количества пользователей, одновременно работающих с приложением

Тестирование стабильности или надежности (Stability / Reliability Testing)

Задачей тестирования стабильности (надежности) является проверка работоспособности приложения при длительном (многочасовом) тестировании со средним уровнем нагрузки. Времена выполнения операций могут играть в данном виде тестирования второстепенную роль. При этом на первое место выходит отсутствие утечек памяти, перезапусков серверов под нагрузкой и другие аспекты влияющие именно на стабильность работы.