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

A1QA

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

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

  • Детальный анализ и работа со всеми модулями и процедурами более низких уровней. Все они собираются воедино и анализируются путем проведения заранее спланированных тестов. Модульное тестирование A1QA может быть использовано при окончательном завершении работы над всеми компонентами низкого уровня. На основе этого можно сделать выводы о готовности приложения или программного комплекса для дальнейшей работы в рамках проекта.
  • Вторая стратегия предусматривает работу с высокоуровневыми модулями. Пошаговая проверка и дополнение низких уровней позволяет охватить в конечном итоге все элементы. Неработоспособные или незавершенные компоненты заменяются работоспособными до окончания всего цикла тестирования.
  • Стратегия «большого взрыва» характеризуется работой одновременно на всех уровнях программного комплекса. Интеграционное тестирование http://www.a1qa.ru/functional_testing/, проведенное таким образом, способно значительно сократить время разработчика на проведение тестов. Основное внимание, оказываемое разработчиком, направлено на получении понятной картины корректного взаимодействия между различными структурами.

Оба вида тестирования могут при необходимости быть автоматизированными или производиться в ручном режиме.