Является ли плохой практикой удаление и объединение регрессионных тестов для ускорения тестирования? - PullRequest
2 голосов
/ 14 апреля 2011

Я работаю над приложением, которое интегрируется со сторонним веб-сервисом.В настоящее время у меня есть отдельные интеграционные / регрессионные тесты, в которых веб-сервис выполняет следующие действия:

  • Изменить политику - Добавить транспортное средство
  • Изменить политику - Удалить транспортное средство
  • ИзменитьПолитика - Добавить несколько транспортных средств
  • Изменить политику - Добавить застрахованного
  • ...

Большинство из этих тестов были созданы, поскольку ошибки были найдены и исправлены.Сторонний веб-сервис - slooow, и я пытаюсь ускорить процесс тестирования.Поскольку каждый тест вызывает веб-сервис, объединение их в один тест, который вызывает веб-сервис только один раз, значительно ускорит процесс.

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

Ответы [ 3 ]

1 голос
/ 14 апреля 2011

Я бы не советовал объединять их, если у вас не будет возможности запускать их отдельно (возможно, они будут разделены в вашей ночной сборке и объединены в вашей непрерывной сборке).

Попробуйте распараллелить их (на отдельных «политиках»), если ваша тестовая среда это поддерживает.

1 голос
/ 14 апреля 2011

Да, объединять их было бы плохой практикой. Вместо этого подумайте о том, как снизить риск, не комбинируя тесты. Один из подходов - вероятно, ваш лучший выбор - это сделать макет веб-службы, чтобы тесты выполнялись намного быстрее, не ставя под угрозу их способность обнаруживать регрессию. Другой вариант - разделить ваши медленные регрессионные тесты на их собственный набор, который запускается реже (но все же достаточно часто!), Чем ваш обычный набор тестов. Наконец, вы могли бы объединить их, но я бы порекомендовал явно повторно ввести все исходные ошибки в ваш код, чтобы убедиться, что объединенный тест все еще обнаруживает их.

Специальные, точечные, прямые, модульные тесты очень ценны; приятно точно знать, что сломалось. Объединение тестов компрометирует это значение.

0 голосов
/ 14 апреля 2011

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

Конечно, это предполагает, что они не ооочень слабы, что одной ночи недостаточно.

Простое объединение ваших тестов в один большой тест может сделать их бесполезными или даже хуже. Это не намного лучше, чем просто удалить их.

...