Введение в тестирование ПО

Материал из ODANT Wiki
Перейти к: навигация, поиск

Тестирование ПО (Software Testing) – это процесс анализа ПО и нахождения ошибок. Действия по нахождению багов должны определять как можно большее количество ошибок для последующего их исправления. ПО может тестироваться по нескольким критериям. Критерии качества ПО

  1. Надёжность
  2. Сопровождаемость
  3. Практичность
  4. Эффективность
  5. Мобильность
  6. Функциональность

Ожидаемый результат - поведение системы (программного продукта) мы ожидаем увидеть в результате наших действий (входы). Другими словами - это правильное поведение программного продукта - написано в спецификации (или то, что конечный пользователь ожидает увидеть).
Ошибка — несоответствие между объектом или явлением, принятым за эталон (материальный объект, решение задачи, действие, которое привело бы к желаемому результату), и объектом/явлением, сопоставленным первому.
Дефект (Bug) - несоответствие требованиям или функциональной спецификации. Это то, что не соответствует ожиданиям клиента, чьи действия выполнены согласно описанию в требованиях к продукту.

Содержание

Виды тестирования по объекту

Функциональное тестирование (functional testing)

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

Нагрузочное тестирование (load testing)

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

Стресс-тестирование (stress testing)

Тестирование стабильности (stability / endurance / soak testing)

Конфигурационное (configuration)

Тестирование удобства использования (usability testing)

Данное тестирование оценивает приложение с точки зрения конечного пользователя и может включать в себя такие проверки как: Человеческий фактор Эстетика Непротиворечивость пользовательского интерфейса

Тестирование интерфейса пользователя (UI testing)

Тестирование безопасности (security testing)

Целью тестирования безопасности является определение правильности ограничения доступа к различным объектам системы согласно пользовательским правам.

Тестирование локализации (localization testing)

Цель теста локализации – убедиться, что приложение поддерживает многоязыковый интерфейс и функции. А также проблемы связанные с локализацией (перевод на другой язык, формат дат и чисел, почтовые адреса, порядок имени и фамилии, валюты и т.д.). Орфография и грамматика обычно не тестируются.

Тестирование совместимости (compatibility testing)

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

Тестирование по знанию системы

  1. Тестирование чёрного ящика (black box)
  2. Тестирование белого ящика (white box)
  3. Тестирование серого ящика (grey box)

При тестировании чёрного ящика, тестировщик имеет доступ к ПО только через те же интерфейсы, что и заказчик или пользователь, либо через внешние интерфейсы, позволяющие другому компьютеру либо другому процессу подключиться к системе для тестирования.
При тестировании белого ящика (англ. white-box testing, также говорят— прозрачного ящика), разработчик теста имеет доступ к исходному коду программ и может писать код, который связан с библиотеками тестируемого ПО.
При тестировании серого ящика разработчику известна структура объекта, неизвестны количественные значения параметров.

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

  1. Ручное тестирование (manual testing)
  2. Автоматизированное тестирование (automated testing)
  3. Полуавтоматизированное тестирование (semiautomated testing)

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

  1. Компонентное (модульное) тестирование (component/unit testing)
  2. Интеграционное тестирование (integration testing)
  3. Системное тестирование (system/end-to-end testing)

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

Альфа-тестирование (alpha testing)

Альфа-тестирование представляет собой тестирование до передачи пользователю.

Тестирование при приёмке (smoke testing)

Тестирование новой функциональности (new feature testing)

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

Регрессионное тестирование (regression testing)

Регрессионное тестирование выполняется для каждого выпуска приложения. Целью регрессионного тестирования является проверка того, что исправление найденных дефектов и добавление новой функциональности не повлияло на качество остальной функциональности приложения.

Тестирование при сдаче (acceptance testing)

Бета-тестирование (beta testing)

По признаку производительности сценариев

  1. Позитивное тестирование (positive testing)
  2. Негативное тестирование (negative testing)

По степени подготовленности к тестированию

  1. Тестирование по документации (formal testing)
  2. Тестирование ad hoc или интуитивное тестирование (ad hoc testing)

План тестирования - документ, описывающий, что, когда, как и кто будет принимать участие в процессе тестирования. Это основной документ, который описывает список протестированных компонентов, критерии качества и риски тестирования, ресурсы и графики тестирования, стратегии тестирования и типы тестирования.

Разработка тестов

Деятельность

  1. Выбор методов испытаний для того, чтобы избежать рисков
  2. Создание, проверка и публикация тест-дизайнов и тест-кейсов
  3. Определение автоматизации тестирования в рамках архитектуры
  4. Детальный анализ требований, экспертные оценки
  5. Создание тестовой среды

Артефакты

  1. Тестовые сценарии, тест-дизайны и тест-кейсы
  2. Автоматизация тестирования
  3. Общий обзор отчетов

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