Порт обозначает коммуникационную конечную точку в TCP и транспортах UDP для сетевого протокола IP. Сокет является абстракцией программного обеспечения для коммуникационной конечной точки, наиболее часто используемой в реализациях этих протоколов (API сокета). Альтернативная реализация является API XTI/TLI.
См. также:
Stevens, W. R. 1998, Сетевое программирование UNIX: Сетевые API: Сокеты и XTI; Объем 1, Prentice Hall.
Stevens, W. R., 1994, Проиллюстрированный TCP/IP, Объем 1: Протоколы, Addison-Wesley.
Я стараюсь тестировать только модель и постоянство данных . тестирование модели обязательно . Пользовательский интерфейс (настольное приложение, веб-приложения, интерфейс командной строки и т. Д.) Сложно протестировать, поэтому я пишу для него тест только в редких случаях.
Обычно я тестирую только модель и контроллер. Модульный тест сложно применить для пользовательского интерфейса, обычно я предпочитаю тестировать приложение вручную.
Если создание этих тестов требует больше времени, чем ручное тестирование каждый раз, когда у вас может быть регрессия, тогда тест бесполезен (легко сказать, но не для оценить ...).
Если вам нужно исключить тестирование, исключите интеграцию или сквозное тестирование. Миско Хевери из Google очень хорошо объясняет здесь .
"Модульное тестирование дает вам больше возможностей для your buck "
- лучшая цитата из его статьи.
В остальном, когда у вас есть приличный охват кода и вы обрабатываете несколько крайних случаев вашего кода, то самое время прекратить модульное тестирование.
Если у вас есть доступ к некоторым данным в реальном времени, вы можете использовать их для модульного тестирования. также вы можете использовать генераторы данных и случайные данные. Модульные тесты только дают вам некоторую уверенность в том, что они не создадут проблем в будущем. Если вы уверены в своем тестировании, вы можете прекратить модульные тесты
Мне нравится название вопроса. Кроме того, я думаю, что это обман Существует ли такое понятие, как чрезмерное модульное тестирование?
Я бы сказал, когда вы обретете приемлемый уровень уверенности. Кроме того, как и в случае с моим рабочим проектом, у нас такие жесткие временные рамки, что мне действительно нужно тестировать только определенные части кода (а не весь его), чтобы получить хороший уровень уверенности.
Что касается тестирования доступа к данным, пробовали ли вы имитировать тесты для имитации ответов.
Когда в плане проекта нет времени для этого, и время тратится на поиск способов тестирования, а не на работу по достижению цели проекта.
Если вы используете TDD, вы останавливаете модульное тестирование, когда все тесты в списке тестов завершились успешно.
В противном случае вы прекращаете модульное тестирование, когда стоимость поиска дополнительных ошибок через модуль тестирование превышает затраты на их поиск в процессе контроля качества. и когда вы достигли приемлемого уровня покрытия кода с помощью комбинации всех тестов.
Основное практическое правило, которому я следую, заключается в том, что усилия по созданию модульного теста больше, чем усилия многократно вручную тестировать функцию вручную .
Если вы посмотрите на тестовые проекты в Visual Studio Team edition для тестировщиков, то обнаружите такой элемент, называемый «Ручной тест», который, по сути, является инструкцией, рассказывающей человеку, как выполнить тест и пройти его вручную. Некоторые вещи, например, вы упомянули тестирование пользовательского интерфейса или код для обхода неясно странного или ошибочного поведения оборудования в базовой структуре, ОС или драйвере, лучше проверяются человеческим глазом.