Поиск подходящих тестов для набора изменений

Мы используем cobertura в качестве инструмента покрытия кода. Тесты выполняются с помощью RFT-Rational Functional Tester (500 нечетных тестов). Запуск RFT занимает довольно много времени. Чтобы побудить разработчиков запускать тесты RFT, мы думаем об инструменте, способном перечислить тесты, охватывающие «набор изменений».

Подход примерно такой:

  1. На сервере интеграции запустите каждый тест rft, создайте базу данных для данных покрытия (файлы .ser для cobertura) для отдельных тестов.
  2. для каждого набора изменений найдите тесты, просмотрев файлы .ser
  3. Обновите базу данных при повторном запуске тестов. По сути, база данных из прошлых запусков используется для «угадывания» минимального теста для текущего набора изменений.

Для начала мы можем рассматривать набор изменений как просто список файлов. Однако это может быть изменение строки кода.

Любые комментарии? Любые существующие инструменты с этой возможностью? Только что узнал, что IntelliJ 8 имеет эту функцию для запуска тестов внутри. (Возможно, для модульных тестов)


person Jayan    schedule 18.01.2009    source источник


Ответы (1)


Текущее реализованное решение примерно (такое же, как в вопросе)

  1. Собирать ser-файл на тестовой основе
  2. Создайте базу данных затронутых классов и методов

Для данного набора изменений сгенерируйте список методов и классов. Затем проверьте это по базе данных покрытия. Это дает приближенное решение.

Работает разумно, не на 100%. Таким образом, фильтрация применяется только к небольшим изменениям, характерным для команды. Полный набор тестов запускается в основной ветке еженедельно.

person Jayan    schedule 09.01.2013