Ho bisogno di presentare di recente ProGuard su Android a causa di problemi con Scala su Android. Ho bisogno di ProGuard per la sua funzione di restringimento, che rimuove le classi che si presume non siano utilizzate. Sono molto preoccupato per l'impatto della rimozione delle classi sulla testabilità.Con ProGuard, qual è l'impatto sulla strategia di testing?
Allo stato attuale, scrivo test unitari eseguiti sui test di accoglienza e di accettazione che eseguono l'applicazione completamente integrata sulla piattaforma Android.
Normalmente, mi sentirei a mio agio con una copertura di test unitaria relativamente completa e una copertura di test di accettazione chiazzata. Tuttavia, dato che nel mio codice uso Guice dependency injection pesantemente, finora è stata la mia esperienza che ProGuard rimuove il codice in un modo che per me è difficile da prevedere. Per questo motivo è molto probabile che mi faccia introdurre dei bug.
Questo mi porta a credere che ho bisogno di scrivere test di accettazione/piattaforma che ottengano una copertura completa perché in qualsiasi momento potrebbe esserci una classe mancante.
Altri hanno questa esperienza? Se sì, quale è stata la tua strategia di test? O con l'esperienza, diventi più sicuro che le classi che ProGuard sta rimuovendo non siano realmente necessarie?
questo è generalmente tracciato, ma fai attenzione alla strana incoerenza quando usi le librerie crappy, come l'SDK Android di Facebook e cose del genere. Generalmente rompe le cose. –