Модульное тестирование
.docx
МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И
МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени
федеральное государственное бюджетное образовательное
учреждение высшего образования
«Московский технический университет связи и информатики»
Индивидуальное задание: «Модульное тестирование»
Выполнил: студент группы УБВТ 2102
Принял: Говоров П.М.
Москва, 2023
Оглавление
Модульное тестирование 3
Преимущества модульного тестирования: 4
Ограничения и недостатки: 4
Заключение 5
Список литературы 6
Модульное тестирование
Модульное тестирование (юнит тестирование) — это тип тестирования программного обеспечения, при котором тестируются отдельные модули или компоненты программного обеспечения.
Модуль — это наименьший фрагмент кода в программе. Единицей может быть отдельная функция, метод, процедура, модуль или объект.
Цель состоит в том, чтобы проверить, что каждая единица программного кода работает должным образом. Модульное тестирование выполняется разработчиками во время разработки (фаза кодирования) приложения. Модульные тесты изолируют часть кода и проверяют его правильность.
В моделях разработки SDLC, STLC, V Model модульное тестирование – это первый уровень тестирования, выполняемый перед интеграционным тестированием.
Отсутствие модульного тестирования при написании кода значительно увеличивает уровень дефектов при дальнейшем (интеграционном, системном, и приемочном) тестировании. Качественное модульное тестирование на этапе разработки экономит время, а следовательно, в конечном итоге, и деньги.
Существует два подхода к тестированию программного обеспечения. Тестирование «черного ящика» и «белого ящика»:
Тестирование «черного ящика» проверяет поведение программного обеспечения, не зная деталей реализации программного модуля. Эти тесты получены из документа спецификации программного обеспечения.
Тестирование методом «белого ящика» проверяет фактическую реализацию программного модуля, при этом внутренняя архитектура программы известна тестировщику. Эти тесты дают представление о реализации для разработки более комплексных тестов.
Для модульного тестирования наиболее подходящим вариантом обычно является тестирование «белого ящика», особенно когда модули небольшие и их код легче понять. С другой стороны, тестирование «черного ящика» — хороший вариант на более поздних стадиях проекта, когда модули были интегрированы для создания сложного программного обеспечения.
Преимущества модульного тестирования:
Раннее обнаружение дефектов. Тестируя функциональность небольших модулей, можно обнаруживать ошибки до того, как они повлияют на другие модули в интегрированном приложении.
Более слабосвязанный код. Намеренно уменьшая взаимозависимости между модулями, на выходе получается более слабосвязанный код, что является известной практикой кодирования.
Быстрее, чем функциональное тестирование. Поскольку модули очень маленькие, есть возможность запустить несколько модульных тестов одновременно.
Минимизация регрессии кода. После рефакторинга или расширения кода есть возможность повторно запустить все наборы тестов, чтобы убедиться, что новый или обновленный код не нарушает существующие функции.
Лучшее покрытие кода. Разбивая приложение на мельчайшие тестируемые компоненты, модульное тестирование помогает увеличить покрытие кода.
Документирование кода. Модульные тесты можно рассматривать как живую документацию о том, как работает код.
Ограничения и недостатки:
Значительное увеличение времени разработки приложения.
Постоянная поддержка работоспособности тестов при любых изменениях в программном коде, что тоже влечет за собой общее увеличение времени на разработку.
Не все можно проверить. Некоторые вещи чрезвычайно сложно проверить, например, многопоточность или графический интерфейс.
Не могу доказать отсутствие ошибок. Модульные тесты могут доказать наличие ошибок, они не могут доказать их отсутствие.
Заключение
Как и любая технология тестирования, модульное тестирование не позволяет отловить все ошибки программы. Это следует из практической невозможности трассировки всех возможных путей выполнения программы, за исключением простейших случаев. Кроме того, происходит тестирование каждого из модулей по отдельности. Это означает, что ошибки интеграции, системного уровня, функций, исполняемых в нескольких модулях, не будут определены. Кроме того, данная технология бесполезна для проведения тестов на производительность. Таким образом, модульное тестирование более эффективно при использовании в сочетании с другими методиками тестирования.
Список литературы
Принципы юнит-тестирования 2020г., Хориков Владимир;
Модульное тестирование2021г., М. Г. Зайцев;
Основы тестирования программного обеспечения. Учебное пособие для СПО, 3-е изд., стер., Старолетов С. М.