Какое влияние на стратегию тестирования оказывает ProGuard?

Мне недавно потребовалось представить ProGuard для Android из-за проблем со Scala на Android. Мне нужен ProGuard из-за его функции сжатия, которая удаляет классы, которые предположительно не используются. Меня очень беспокоит влияние удаления классов на тестируемость.

В нынешнем виде я пишу модульные тесты, которые выполняются на хосте, и приемочные тесты, которые запускают полностью интегрированное приложение на платформе Android.

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

Это наводит меня на мысль, что мне нужно писать приемочные / платформенные тесты, обеспечивающие полное покрытие, потому что в любой момент может отсутствовать класс.

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

5
задан Jeff Axelrod 23 November 2011 в 14:27
поделиться