Модульный тест против поискового теста в краткосрочных / долгосрочных сценариях - PullRequest
0 голосов
/ 25 ноября 2010

Что, по вашему мнению, приносит больше пользы продукту, модульному тесту или поисковому тесту?

Я понимаю, что оба теста служат разным общим целям, но какой тест вы бы выбрали по приоритетам, то есть, что вы сделали бы в первую очередькакой второй, юнит или исследовательский?

Кроме того, какой из них дает больше преимуществ в краткосрочной перспективе?и в долгосрочной перспективе?

Наконец, изменится ли ваш ответ, если у вас будет время только для одного из двух?

1 Ответ

2 голосов
/ 25 ноября 2010

На мой взгляд, оба имеют решающее значение.Я следую методологии TDD, поэтому модульные тесты формируют исполняемую спецификацию моего кода.Сначала нужно выполнить юнит-тесты, но часто в процессе я провожу некоторые формы пробного тестирования, чтобы создать мой проходной юнит-тест.Кроме того, есть некоторые вещи - например, дизайн интерфейса - которые нельзя полностью разработать без какой-либо формы исследования.Да, во многих случаях вы можете разработать модульные тесты, чтобы убедиться, что элементы интерфейса работают так, как они ожидают, но вам часто нужно посмотреть, как взаимодействуют различные элементы do , прежде чем вы сможете определить, как они должны взаимодействовать.Изучение различных сценариев и настройка сценария тестирования на основе обратной связи - важная часть проекта.

Для работы без интерфейса я сначала проведу модульные тесты, а при необходимости - пробные.Для работы с интерфейсом я бы прототипировал и исследовал, а затем разрабатывал модульные (скриптовые) тесты, если вообще делал.Отчасти это связано с возможностями инструментов тестирования в каждом пространстве, но это также связано с типом выполняемой работы.

Что касается преимуществ, их трудно сравнивать, поскольку они предоставляют различные виды преимуществ.Оба типа тестирования могут находить и устранять дефекты, но модульное тестирование (с использованием TDD) также направляет и улучшает дизайн и структуру приложения.Улучшая дизайн, мы также улучшаем ремонтопригодность.По моему мнению, предварительное тестирование, в первую очередь, улучшает удобство использования приложения, хотя его можно использовать для оценки того, действительно ли наши проектные решения работают так, как мы ожидаем, и для проверки дизайна по мере его развития.

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

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

...