Юнит-тестирование

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

Содержание

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

Цель юнит-тестирования — изолировать отдельные части программы и показать, что по отдельности эти части — работоспособны.

Этот тип тестирования обычно выполняется программистами.

Поощрение изменений
Юнит-тестирование позволяет программистам проводить рефакторинг позже, будучи уверенными, что модуль по-прежнему работает корректно (регрессионное тестирование). Это поощряет программистов к изменениям кода, поскольку достаточно легко проверить, что код работает и после изменений.
Упрощение интеграции
Юнит-тестирование помогает устранить сомнения по поводу отдельных модулей и может быть использовано для подхода к тестированию «снизу вверх»: сначала тестируются отдельные части программы, затем программа в целом.
Документирование кода
Юнит-тесты можно рассматривать как «живой документ» для тестируемого класса. Клиенты, которые не знают как использовать данный класс, могут использовать юнит-тест в качестве примера.
Отделение интерфейса от реализации
Поскольку некоторые классы могут использовать другие классы, тестирование отдельного класса часто распространяется на связанные с ним. Например, класс пользуется базой данных; в ходе написания теста, программист обнаруживает что тесту приходится взаимодействовать с базой. Это ошибка, поскольку тест не должен выходить за границу класса. В результате, разработчик абстрагируется от соединения с базой данных, и реализует этот интерфейс используя свой собственный mock-объект. Это приводит к менее связанному коду, минимизируя зависимости в системе.

Ограничения

Важно понимать, что юнит-тестирование не выловит все ошибки. По определению, оно тестирует только модули сами по себе. Тем самым, вы не выявите ошибки интеграции, проблемы производительности или любые другие проблемы системы в целом. Кроме того, довольно трудно предугадать все варианты исходных данных, которые могут быть переданы модулю в реальной работе. Юнит-тестирование будет эффективным только при использовании совместно с другими способами тестирования.

Инструментарий

Для большинства популярных языков программирования высокого уровня существуют инструменты и библиотеки юнит-тестирования. Некоторые из них:

См. также

 
Начальная страница  » 
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Э Ю Я
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 Home