Модульное тестирование – это последовательный процесс проверки отдельных модулей системы. Тестировщик создает ряд тестов для каждой стандартной функции программы или метода программного кода отдельно.
Таким образом, модульное тестирование подтверждает работоспособность элементов системы в изоляции, а также позволяет включать в процесс проверки тестируемые функции и классы.
Стоит отметить, что только после анализа юнитов специалист может приступать к регрессионному тестированию, направленному на оценку корректности работы функционала программы/приложения после внесения изменений (исправление ошибок, миграция на другую операционную систему или базу данных, др.).
Основными задачи тестирования являются:
● Проверка на наличие ошибок при вызове модулей;
● Определение неточностей выполнения алгоритмов модулей;
● Определение ошибок взаимодействия компонентов с системой в целом.
Компоненты системы как главный предмет анализа должны обладать следующими свойствами:
● Модульность (структура системы должна предполагать деление на компоненты);
● Независимость (компоненты должны быть относительно независимы друг от друга);
● Взаимозаменяемость (модули должны быть заменяемы на другие);
● Повторное применение (компоненты разрабатываются таким образом, чтобы из можно было повторно применять в другой среде);
Эффективным при проведении модульного тестирования является автоматизация тестов, которые разрабатываются еще до начала основного этапа разработки. Такой подход называется разработкой от тестирования (сначала пишется тест, потом разрабатывается код). При этом специалисты по тестирования компонуют отдельные части кода, напротив которых выполняются тесты до начала разработки. Все найденные ошибки, как правило, исправляется в коде без необходимости их фиксирования в системе менеджмента багов.
Работа с модулями системы является важным этапом наряду с юзабилити тестированием http://www.a1qa.ru/usability_testing/, без которого невозможно обеспечение качества конечного программного продукта. Хотя нередко его заменяют на другие подходы ввиду ограниченности бюджета проекта. В целом же, преимущества анализа работы модулей системы неоспоримы. С одной стороны, он обеспечивает исправление ошибок в программном коде, а с другой стороны, дает представление о поведении компонентов системы в различных ситуациях.