2011-09-21 6 views
7

Как выполняется регрессионное тестирование на Java? Существуют ли автоматические системы тестирования регрессии или вы просто пишете (JUnit) единичные тесты, которые помогают обеспечить защиту от регрессий?Регрессионное тестирование на основе Java

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

+0

Может быть лучше на программистов.stackexchange.com – Qwerky

ответ

1

JUnit обычно предназначен для модульных тестов, а не для полнофункционального функционального тестирования (из которых регрессионное тестирование является примером, если вы смотрите на систему в целом).

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

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

+1

Итак, каковы типичные рамки регрессии/функционального тестирования для Java, если JUnit не подходит для такого типа тестирования? – IAmYourFaja

+0

@Mara - www.spockframework.org –

4

Регрессионное тестирование не имеет никакого отношения к языку. Это метод, который используется для обеспечения того, чтобы будущие изменения кода не нарушали существующие функции. В Java вы можете использовать junit или testng или что-то еще. Обычно регрессионный тест является функциональным тестом и не является чисто модульным тестом.

+0

Думает Woot4Moo. «Функциональный тест» означает «последовательный», что означает, что вместо тестирования одного компонента/единицы он выполняет (по сценарию) ряд действий, чтобы убедиться в сохранении некоторого инварианта? – IAmYourFaja

+0

@ Мара, вот как все автоматическое тестирование работает. Регрессионное тестирование - это просто «тестирование нового кода против старых тестов», * тип * теста (единица, функциональность, интеграция и т. Д.) Не имеет никакого значения. –

+1

Дейв - интересно. Итак, до тех пор, пока вы поддерживаете тщательную модульную систему тестирования, то разве это также не позаботится о регрессионном тестировании, так как вы никогда не отказываетесь от старого модульного теста? Это меня немного смущает, потому что все время, когда вы слышите о регрессионном тестировании, но по вашему объяснению, похоже, что все, что вам нужно сделать, это убедиться, что ваше тестирование устройства зависит от табака. Я нахожусь на пути или я де-рельс? – IAmYourFaja

0

Регрессионный тест - это любой тест, который ловит регрессии.

Если вы хотите приемочные испытания, я слышал хорошие вещи о FitNesse.