Что такое юнит-тесты и тому подобное? - PullRequest
3 голосов
/ 16 октября 2011

Я заметил возможности для создания тестов в Visual Studio 2010 и Netbeans 7, и мне было интересно, что именно они делают.Будет ли их использование более эффективно, чем разработка моих собственных тестов?

Ответы [ 2 ]

4 голосов
/ 16 октября 2011

Модульный тест (в отличие от интеграционного теста) - это тест (обычно фактически несколько тестов, которые существуют в одном классе и файле), который проверяет функциональность одного модуля (обычно класса).

Интеграционный тест, напротив, проверяет взаимодействие нескольких различных устройств. Сквозное тестирование - это особый тип интеграционного теста, который тестирует весь программный стек, от пользовательского интерфейса до всего, что находится ниже.

Существует два типа тестов: «стеклянный ящик» и «черный ящик». Тест «черного ящика» не зависит от реализации; он написан только на основе документированного поведения функции / класса и гарантирует, что любая произвольная реализация придерживается документированного поведения. Он также может включать тесты на возможные ошибки, которые могут совершать различные теоретические реализации, но выполняется без учета того, что делает фактическая реализация. Напротив, «стеклянный ящик» - это тест, который использует знания о реализации и гарантирует, что каждый путь кода в реализации был протестирован. Хороший тест состоит из комплексного тестирования черного и стеклянного ящиков.

Существует ряд различных свободно доступных библиотек, которые облегчают создание модульных тестов. Я настоятельно рекомендую использовать для тестирования googletest и gmock (оба широко используются в Google).

2 голосов
/ 16 октября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...