2014-06-11 7 views
7

Attualmente sto costruendo un'applicazione Android e sto cercando la migliore configurazione di test per rendere la mia applicazione a prova di proiettile:) Se c'è qualcosa di piccolo/grande mancante, sentitevi liberi di elogiare! :)Qualcosa manca dal mio setup di prova del progetto Android?

Quindi il mio test va un po 'come questo: (tenere a mente che la mia domanda ha un server back-end)

  1. test JUnit con Robolectric sul lato applicazione nei confronti di tutte le versioni di Android supportati .
  2. Test di Junit con mockito sul lato server.
  3. Test di integrazione con robolectric e una vera istanza del server back-end. AGGIORNAMENTO: questo probabilmente finirà per essere test di strumentazione e una vera istanza del server back-end come robolectric e i servizi di gioco di google che stiamo usando nel progetto è un no go.
  4. Test di strumentazione con un'istanza reale del server back-end contro più dispositivi (risoluzioni dello schermo diverse ecc.) Ma contro una sola versione dell'API di Android, probabilmente l'ultima supportata. Ciò significherebbe l'avvio di più dispositivi virtuali Android e l'esecuzione dei test su ciascuno di essi. Ho letto che si possono fare screenshot degli schermi, ma non sono sicuro di come possiamo verificare che gli screenshot siano OK.
  5. Esecuzione dell'applicazione con runner scimmia, sempre con un server reale.
  6. Test delle prestazioni in cui si verifica principalmente l'interazione di molti dispositivi con il server back-end allo stesso tempo. Non sono sicuro di come si possa eseguire tali test per Android.

Tutti questi test verranno eseguiti sul server CI TeamCity. Stiamo cercando di utilizzare roboletric su quanti più test possibili, poiché è molto più veloce del caricamento dei test su un dispositivo.

La mia domanda è, c'è qualcosa di grande/piccolo mancante dal mio setup, o ci sono dei framework che potrebbero rendere più facile per noi eseguire tutti questi test a parte l'uso di robolectric/android plugin/team di maven?

+1

Penso che il tuo setup sia perfetto di altri. Aggiungerei alcuni test di accettazione automatici con appium o calabash. Ma molto probabilmente il punto 4 riguarda questo. Non ho alcuna esperienza con i test strumentali :) –

+0

Test di strumentazione e test del webdriver sono diversi. Con appium non puoi accedere alle classi di app. Quindi si sentono più reali, un po 'più lenti di un espresso che ha accesso alle classi di app. – nenick

risposta

2

Oltre a utilizzare Robolectric, vale la pena verificare Robotium. Maggiori informazioni su questo argomento sono discusse qui (https://stackoverflow.com/q/522312/3152743) insieme ad altri metodi di test a cui potresti essere interessato.

+1

Ho fatto un po 'di ricerche sull'argomento, fornirò un aggiornamento su questo in una settimana o così. Ci sono molte strutture di cui non ero a conoscenza. Robotium è davvero buono, ma sembra che l'espresso sia più recente e risolva i problemi di sincronizzazione durante gli strumenti. –