Интересная проблема. Следует избегать использования антивирусных API-интерфейсов для проверки, запускает ли их ваше приложение. Вы хотите, чтобы ваше приложение развернулось в реальном времени в ожидаемой операционной системе, с реальной установкой AV, отслеживающей его. Таким образом, вы вызовете эвристический мониторинг, а также простое «соответствует ли этот код контрольной сумме», с которой работает API.
Вы не сказали нам, для чего написано ваше приложение, но если ваш набор тестов для вашего приложения фактически использует части приложения, а не тестирует отдельные пути кода, это может быть хорошим началом. В идеале, ваш набор интеграционных тестов - это тот же набор тестов, который вы используете для проверки проблем в ваших целях развертывания. Ваше интеграционное тестирование должно проверять ввод и вывод для каждого теста в реальной среде, которая ДОЛЖНА отлавливать сбои и тому подобное. Кроме того, не забывайте проверять вещи, которые занимают намного больше времени, чем нужно, это, к сожалению, распространенный режим отказа. Самое главное, чтобы ваш набор тестов был достаточно простым для написания, изменения и улучшения, чтобы он действительно синхронизировался с продуктом. Тесты, которые не проверяют все, бесполезны, а тесты, которые не выполняются, еще хуже. Если бы у нас было больше информации о том, как работает ваша программа, мы могли бы дать лучший совет о том, как это автоматизировать.
Возможно, вам понадобится набор образов виртуальных машин для всех ваших целей развертывания, в различных состояниях исправления (и отмены исправления). Для некоторых приложений вам потребуется отдельная виртуальная машина для каждого варианта IE, поскольку это меняет другие аспекты системы. Будьте очень осторожны с тем, какая комбинация вещей у вас есть в каждой виртуальной машине. Не проверяйте более одного AV одновременно. Обновите AV в ваших снимках перед запуском ваших тестов. Если у вас есть достаточно большое комбинированное программное обеспечение в ваших изображениях, вам может потребоваться автоматизировать создание образов - получить базовую сборку системы, обновить ее до последнего уровня исправлений, а затем выполнить сценарий установки AV и других комбинаций приложений.
Да, поддержание этой фермы виртуальных машин будет проблематичным, но если вы создадите сценарий развертывания своего приложения и получите хорошие снимки и план исправления и обновления снимков, сам по себе набор тестов не должен принимать все долго бегать при наличии соответствующего оборудования. Вам нужно будет изучить решения для виртуальных машин, но я бы, вероятно, начал с VMWare.