Насколько сложными должны быть дымовые тесты?

Итак, на данный момент мы ежедневно запускаем сборку нашего текущего проекта в течение многих месяцев. Тем не менее, дымовые тесты, которые сопровождают эту ежедневную сборку, не очень сложны — мы запускаем несколько тестов nUnit в нашей основной библиотеке классов (которая, по общему признанию, не предлагает большого охвата кода), и мы убеждаемся, что все компилируется. и построить. Рассматриваемое приложение представляет собой сайт ASP.NET, который использует некоторые бизнес-объекты (включая LINQ-to-SQL).

Есть ли более сложные дымовые тесты, которые мы должны запустить, особенно на сайтах ASP.NET? Как бы мы разработали дымовой тест для сайта ASP.NET, если уж на то пошло?


person John Christensen    schedule 20.05.2009    source источник


Ответы (3)


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

Очень похоже на более интенсивную, итеративную версию самостоятельной игры с ним в браузере.

Вы можете сделать это, определив (или проверив) свои общедоступные ресурсы и их входы. Затем сценарии могут попытаться вызвать проблемы с проверкой, странные перестановки потока сайта и другие вещи, которые проверяют весь контекст сайта в реальных условиях.

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

person Aiden Bell    schedule 20.05.2009

Дымовые тесты по своей природе должны быть поверхностными: компилируется ли? Развертывать? Страница приветствия загружается? Возможно, загрузите тестовую страницу, которая выполняет запрос к базе данных, чтобы убедиться, что это соединение тоже работает. Вот и все.

person Aaron Digulla    schedule 20.05.2009

Вы не должны делать дымовые тесты. Знаете ли вы этимологию этого термина? «Дымовой тест» в электронике — это когда вы включаете питание и смотрите, выходит ли дым.

Вы должны делать более полные модульные тесты; достаточно, чтобы дать вам хорошее покрытие кода. Это то, что вы должны делать при каждой сборке. Вы также должны попытаться выполнить развертывание и запустить некоторые «проверочные тесты установки».

person John Saunders    schedule 20.05.2009