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

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

  1. Уровни тестирования
  2. Типы/ Классификация тестирования

 

Выделяют 4 основных уровня тестирования:

  1.  Компонентное/модульное тестирование (Component/Unit Testing).
  2.  Интеграционное тестирование (Integration Testing).
  3.  Системное тестирование (System Testing).
  4.  Приемочное тестирование (Acceptance Testing).

 

Компонентное тестирование

       Тестирование отдельных компонентов программного обеспечения

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

Цель

      Изолировать отдельные части программы и показать, что по отдельности все части работают.

 

Преимущества

  • Возможность протестировать часть программы, не ожидая готовности остальных частей
  • Раннее обнаружение дефектов
  • Программисты обнаруживают и мгновенно исправляют проблемы. Упрощенная отладка
  • Лучшее структурное покрытие кода
  • Модульное тестирование экономичнее других этапов тестирования
  • Упрощенная интеграция

 

Недостатки

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

 

Интеграционное тестирование

       Тестирование, выполняемое для выявления дефектов в интерфейсах и взаимодействии между интегрированными компонентами.

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

 

Преимущества

  • Большая стабильность по сравнению с тестированием графического пользовательского интерфейса
  • Положительно влияет на внутренний дизайн программы
  • Ранняя и более легкая локализация дефектов интерфейса на стадии системного тестирования

 

Недостатки

  • Тестировщик должен читать код, а временами и писать его

 

Системное тестирование

        Процесс тестирования системы в целом с целью проверки того, что она соответствует установленным требованиям.

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

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

 

 

Приемочное тестирование - формальное

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

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

       Этот уровень тестирования используется для подтверждения готовности продукта и проводится преимущественно в самом конце цикла разработки программы.

У приемочного тестирования есть также несколько целей:

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

Также, на этом уровне тестирования мы показываем уверенность в качестве системы.

 

Для наглядности все уровни тестирования можно представить следующим образом:

QA Engineer

QA Engineer

💻💻💻🖥