Модульное тестирование (unit- тестирование)

1.

Модульное
тестирование
(unit- тестирование)

2.

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

3.

Понятие
Модульное тестирование – это тестирование
программы на уровне отдельно взятых модулей,
функций или классов

4.

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

5.

6.

Особенности модульного
тестирования
1. Использует подход «Белый ящик» (работа с программным кодом, связь с
библиотеками тестируемого ПО)
2. выполняет программист (разработчик) , а не тестировщик
3. удобен при параллельной разработки
4. узкая специализация — проверке подвергаются отдельные модули, а не
все приложение в целом

7.

Преимущества unit-тестирования
Простота. Написать тест для отдельного модуля проще, чем для приложения в целом. Соответственно,
если нужно проверить не всю программу, а лишь ее часть (например, вышедшее обновление или патч),
то можно использовать модульное тестирование, предварительно изолировав проверяемый фрагмент
кода.
Информативность. Хорошо составленный тест помогает разработчикам понять API приложения,
функционал модуля, особенности его использования. Особенно это полезно в том случае, если при
работе над проектом произошла смена ответственных за разработку и проверку специалистов.
Параллельная разработка. Модульное тестирование позволяет проверить работу одного компонента
приложения независимо от других. Благодаря этому можно параллельно разрабатывать различные
программные модули, тем самым сократив время на создание и отладку продукта.
Возможность повторного использования. Создав однажды тест для проверки отдельного модуля,
разработчик может вернуться к нему позднее, чтобы протестировать работу компонента еще раз.
Регрессионное тестирование состоит в написании контрольных примеров для всех функций, которые
помогают выявить ошибки, вызванные внесенными изменениями.

8.

Недостатки unit-тестирования
1. не гарантирует, что будут найдены все ошибки (невозможно
предугадать все сценарии их выполнения);
2. применяется к изолированным фрагментам кода, поэтому
может выявить только ошибки проверяемого модуля
(неспособно показать баги, возникающие при интеграции
модуля с другими компонентами приложения; не способно
выявить системные ошибки продукта в целом).

9.

Рекомендации к unit-тестам
Чтобы модульное тестирование было максимально эффективным, тесты должны:
соответствовать конкретному модулю — нельзя применять один и тот же тест для
тестирования разных по назначению и реализации программных компонентов;
быть автоматизированными — тест лучше вписать в сам код, тогда он будет запускаться
автоматически и сильно упростит жизнь разработчику;
быть своевременными — если тест нельзя написать до разработки самого кода, его лучше
создавать параллельно, что сэкономит много времени в дальнейшем;
отвечать основным задачам — при написании теста не нужно стараться учесть все
возможные сценарии, лучше сосредоточиться сначала на основных, а остальные дополнять по
мере необходимости;
иметь хорошее название — описывающее, что именно тестируется, в каких условиях и с
каким желаемым результатом.

10.

Инструменты модульного тестирования
1. NUnit —платформа модульного тестирования NET для организации тестовых сценариев.
2. Microsoft Visual Studio — комплексная среда разработки для разработки, отладки и управления
тестированием в .net.
3. JUnit —простая среда тестирования для Java и JVM для повторяемых тестов.
4. HtmlUnit — браузер без графического интерфейса для программ на Java.
5. TestNG —упрощает широкий спектр задач расширенного тестирования.
6. Parasoft JTest —для оптимизации соответствия за счет создания бездефектного кода с помощью Java.
7. Mockito —фреймворк для создания макетов Java для написания и поддержки тестов.
8. PHPUnit — PHP-фреймворк для модульного тестирования, ориентированный на программистов.
9. JMockit — набор инструментов автоматического тестирования для разработчиков Java.
10. Embunit —среда модульного тестирования для разработки встроенного программного обеспечения на
C или C++.
ИСТОЧНИК: https://theqalead.com/tools/best-unit-testing-tools/
English     Русский Правила