Вам нужна связь между каждым тестом и кодом, который он выполняет.
Это может быть вычислено статически, но это сложно, и я не знаю никаких инструментов, которые это делают.Хуже того, если бы у вас был такой инструмент, статический анализ для определения того, на что влияет тест, на самом деле он мог бы занять больше времени, чем просто запуск самого теста, поэтому это не выглядит привлекательным направлением.
Однако этоможет быть рассчитан с использованием инструмента покрытия теста.Для каждого отдельного теста запустите этот тест (мы предполагаем, что он пройден) и соберите данные покрытия теста.Теперь у нас есть много пар (t_i, c_i) для «test i, у которого есть покрытие c».
Когда изменяется кодовая база, можно обратиться к наборам покрытия тестовых данных.Простая проверка: если для любого (t_i, c_i), если c_i упоминает файл F и F изменился, вам нужно снова запустить t_i.Учитывая данные тестового покрытия практически в любом представлении, это довольно легко обнаружить в резюме.Учитывая, что большинство инструментов покрытия тестами конкретно не говорят вам, как они хранят данные покрытия тестов, это сложнее, чем кажется на практике.
На самом деле, в идеале вы хотите, чтобы c_i упоминал какой-либо программный элемент Fи этот программный элемент изменился, вам нужно снова запустить t_i.
Наши инструменты для тестирования SD SD предоставляют эту возможность для Java и C # на уровне методов.Вам необходимо настроить некоторые сценарии, чтобы связать реальный тест, как бы вы его ни упаковывали, с собранными векторами покрытия тестами.С практической точки зрения это довольно просто.