Тестирование

Виды, уровни, методы и техники тестирования

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

1. Уровни тестирования:

Уровни тестирования по детализации (Test Levels by detalization):

  • Компонентное тестирование (component\module\unit testing)
  • Интеграционное тестирование (integration testing)
  • Системное тестирование (system testing)
  • Приёмочное тестирование (acceptance testing)
    • Пользовательское приёмочное тестирование (User acceptance testing)
    • Эксплуатационное приёмочное тестирование (Operational acceptance testing)
    • Альфа-тестирование (Alpha testing)
    • Бета-тестирование (Beta testing)

Уровни тестирования по приоритету (Test Levels by priority):

Согласно ISTQB, нижеперечисленное не является уровнями тестирования. Но многие тестировщики относят к их к уровням, поэтому упомянем их в этой секции.

  • Смоук тестирование (Smoke testing)
  • Тестирование критического пути (Critical path testing)
  • Тестирование расширенного пути (Extended path testing)

2. Виды тестирования:

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

  1. Оценить функциональные характеристики качества ПО: полнота, правильность, целесообразность ◦
  2. Оценить нефункциональные характеристики качества ПО: надёжность, производительность, безопасность, совместимость, удобство и тд.
  3. Оценить структуру и архитектуру ПО
  4. Оценить последствия изменений

2.0. Виды тестирования характеристик качества (часто называют «по объекту»):

2.1. Виды функционального тестирования:

  • Тестирование функциональной корректности (Functional correctness testing)
  • Тестирование функциональной пригодности\целесообразности (Functional appropriateness testing)
  • Тестирование функциональной полноты (Function completeness testing)

2.2. Виды нефункционального тестирования:

  • Тестирование защищённости (Security testing)
  • Тестирование безопасности (Safety testing)
  • Тестирование производительности (Performance testing)
    • Нагрузочное тестирование (Load testing)
    • Стрессовое тестирование (Stress testing)
  • Тестирование графического интерфейса (GUI testing)
  • Тестирование удобства использования (Usability testing)
  • Тестирование доступности (Accessibility testing)
  • Тестирование совместимости (Compatibility testing)
    • Тестирование кроссбраузерности (Cross browser testing)
    • Тестирование кроссплатформенности (Cross platform testing)
  • Тестирование инсталляции (Installation testing)
  • Тестирование интернационализации (Internationalization testing)
  • Тестирование локализации (Localization testing)

2.3. Виды тестирования структуры и архитектуры ПО

  • Структурное тестирование (White-box testing)

2.4. Виды тестирования по изменениям:

  • Тестирование нового функционала (New feature testing)
  • Перепроверка дефекта (Retest, Defect validation)
  • Регрессионное тестирование (Regression testing)

Что НЕ является видами тестирования, но часто туда относят:

  • Ручное тестирование (Manual testing)
  • Автоматическое тестирование (Automated testing)
  • Статическое тестирование (Static testing)
  • Динамическое тестирование (Dynamic testing)

Все они не преследуют ни одну из 4 целей видов тестирования. Следственно, они ими и не являются.

3. Методы тестирования:

  • Чёрный ящик (Black-box testing)
  • Белый ящик (White-box testing)
  • Серый ящик (Gray-box testing)

4. Техники тестирования:

Техники тестирования метода чёрного ящика:

  • Эквивалентное разбитие (Equivalence partitioning)
  • Анализ граничных значений (Boundary value analysis)
  • Анализ доменов (Domain analysis)
  • Тестирование всех пар (All pairs testing, Pairwise)
  • Тестирование таблицы решений (Decision table testing)
  • Тестирование диаграмы переходов состояний (State transition testing)
  • Графики причинно-следственных связей (Cause-Effect Graphing)
  • Тестирование сценариев использования (Use Case Testing)
  • Тестирование историй использования (User Story Testing)

Техники тестирования метода белого ящика:

  • Тестирование покрытия операторов (Statement testing and coverage)
  • Тестирование покрытия условий и решений (Decision testing and coverage)
  • Тестирования покрытия условий и значений операторов (The value of statement and decision testing)

Техники основанные на опыте:

  • Предугадывание ошибок (Error guessing)
  • Исследовательское тестирование (Exploratory testing)
  • Свободное тестирование (Ad-hoc testing
  • Тестирование по чеклистам (Checklist-based testing)

Техники тестирования основанные на дефектах:

  • Таксономии дефектов (Defect taxonomies)

Небольшое пояснение про White-box testing.

Как вы могли заметить, White-box testing входит сразу в виды, методы и техники тестирования.
Давайте немного уточним.

White-box testing как:

  • Вид тестирования: ставит целью тестирования исходный код и архитектуру.
  • Метод тестирования: определяет, что продукта будет тестироваться через исходный код.
  • Техники тестирования: предлагают различные способы тестирования исходного кода.