Qual è il miglior servizio Android QA?
Ho lavorato come SDET mobile per gli ultimi 2 anni prima a Urbanspoon e a GoDaddy (azienda) lavorando sulla loro automazione e test di app iOS e Android. Queste aziende non sono affatto piccole o startup, ma i nostri team sono piuttosto piccoli, quindi queste pratiche dovrebbero applicarsi.
- Il test delle app mobili è difficile, costoso, richiede tempo ed è soggetto a errori. Una soluzione non va bene per tutti.
- Ci sono molte soluzioni, prodotti là fuori per l'automazione, sceglierne uno richiede tempo e sperimentazione. Per i frameworks avete Appium, Robotium, Calabash, espresso, per l'infrastruttura avete macchine locali, dispositivi reali, emulatori, per i cloud provider - sauce labs, testdroid, perfecto etc, per CI jenkins, iOS CI server etc.
- Il 95% dei bug funzionali possono essere trovati su emulatori/simulatori, ma alcuni no.
- La strumentazione delle vostre app è molto importante - una volta in produzione non avete controllo o visibilità sull'uso e sui problemi che i vostri utenti stanno affrontando. Avere qualcosa per i crash - crashlytics, crittercism etc, qualcosa per l'utilizzo - GA, strumenti interni.
- L'80% dei bug di produzione avviene nei livelli API e sono intermittenti. Usa qualcosa come Runscope per monitorare la salute delle tue api.
- L'automazione non può sostituire i test esplorativi/manuali. L'atto di toccare un dispositivo, nel contesto di altre app è molto diverso dall'automazione. Pensate all'automazione come a uno strumento che libererà il vostro tempo per fare test più utili.
Consigli specifici per l'automazione mobile:
- Mocking è inesistente (non popolare) nei livelli UI per le app mobili, quindi non puoi fare test di integrazione parziale. Inevitabilmente la tua automazione assomiglia molto al fare le stesse azioni più e più volte. es: per ottenere la schermata dei filtri devi caricare l'app -> fare la tua ricerca -> cliccare su filtri -> aspettare la schermata dei filtri-> poi fare il tuo test.
- La scelta del linguaggio per l'automazione non deve essere la stessa della piattaforma di sviluppo ma i test dovrebbero essere attivabili facilmente. Ad esempio: io uso ruby per automatizzare Android (java) e Ios (objc/swift) ma fornisco un modo a linea di comando per invocare i test
- Sapete per chi state astraendo l'automazione. Nel mio primo progetto ho fatto l'errore di portare l'astrazione troppo in alto: test cucumber -> definizioni di step -> oggetti Page -> localizzatori specifici del dispositivo. Alla fine ero l'unico consumatore e ha finito per fare più manutenzione ad ogni livello senza molti benefici.
- L'esecuzione programmata dei test è importante. Si dovrebbe avere un piano per mettere i test di automazione in esecuzione programmata prima che le app arrivino negli app store.
E per favore non chiamateci QA. Siamo sviluppatori d'élite che si concentrano solo sulla qualità.
Articoli simili
- T-Mobile è il miglior servizio telefonico per il servizio e la copertura 5G?
- Qual è la differenza tra il servizio di streaming gratuito e premium di NBC Peacocks? Il servizio premium offre più contenuti?
- Posso tagliare il servizio TV via cavo Cox e mantenere il servizio Internet per far funzionare la mia SmartTV Samsung?
- Cos'è il servizio Walnut prime? Ho visto una nuova opzione nell'app Walnut, e sembra essere un servizio di microprestito.