Press "Enter" to skip to content

GOTO 2015 • Continuous Delivery for Native Apps • Niels Frydenholm


consegna così continua e voglio solo
per essere sicuri di capire quando io
dire consegna continua che noi sul
stessa pagina quindi ho trovato questo tweet da
martin fowler all’inizio di quest’anno e
è così che capisco
consegna continua anche solo così
siamo chiari su quello che non significa
così non è il continuo
parte dello schieramento in cui spediamo effettivamente
sull’App Store Google Play è
più preparandoci così in qualsiasi momento
in realtà hanno questa linea che è come noi
vederlo nella mia squadra che vogliamo essere in grado di
costruire un binario pronto per il rilascio in qualsiasi
dato tempo ogni volta che qualche prodotto voglio
per dire spediamolo, allora lo faremo
fare clic sul pulsante e quindi abbiamo il
binario da caricare quindi è quello che sono
sta per essere colorazione e oggi mi dispiace
sì e ogni volta che mi riferisco a un wee che
saremo io e il piccolo team che io
significa che gli annunci ebay e la Danimarca
e quindi questo è il tipo di questi sono i
due app che stiamo mantenendo e
sviluppando una bellezza parziale e DBA se tu
ragazzi un danese la maggior parte di voi è probabilmente
familiare con questi cervelli e così è
come lo facciamo su queste app che sono
andando a coprire e non tutto il diverso
opzioni che là fuori sì e qui
solo alcuni degli strumenti che utilizzo
abbiamo selezionato strumenti in grado di supportare
più piattaforme e con più
piattaforme che faccio solo coprire i due principali
i giocatori iOS e Android ci scusiamo per questo
Microsoft ma eh so che Apple ha
ha iniziato a ottenere di più in realtà
ti sostengo che sto testando e vediamo
quello come un beneficio che si spera possa
assicurati che cala bassa venga utilizzato per l’interfaccia utente
il test può essere più stabile dal momento che
può funzionare allo stesso livello di quello che è in grado di noi
ma preferiamo strumenti che possano coprire
più piattaforme quindi prima diamo un’occhiata
a come facciamo la nostra ramificazione e costruzione
e distribuzione e con distribuzione i
significa come otteniamo le nostre app per questo
test manuale
così per testare i dispositivi all’interno dell’ufficio così
stiamo usando un get e lavorando con
caratteristica rami così abbiamo il nostro
ramo principale che dovrà essere
stabile in ogni momento e poi lo faremo
creare un nuovo ramo ogni volta che dobbiamo
aggiustare qualcosa e potremmo aver bisogno di fare un
correzione di errori quindi creerò un marchio per questo
uno in cima e aggiustarlo e tutto
i test e tutte le cose che sono
andando a chiamare sarà in esecuzione per quello
cervello anche quando ho finito vado
per unirlo nuovamente al master yeah while
qualcun altro della mia squadra potrebbe funzionare
sul nuovo dispositivo di raffreddamento il giallo
colore arancione in realtà mi manca un errore
qui perché una volta ho fuso il rosso
la correzione dei bug nel master farà in modo di
si fondono anche da master nella funzionalità
marca quindi contiene anche la correzione della barra
altrimenti potremmo essere denunciati
quello era lì e la nuova funzionalità
ramo che non è quando intendiamo fare
e lavorando anche con i rami di funzionalità
ci dà questo grande beneficio e github
che possiamo usare una richiesta pull ogni volta
vogliamo chiudere un cervello di funzionalità e
uniscilo e questo è un modo semplice per farlo
una recensione del codice dice di vedere solo ciò che ha
effettivamente cambiato in questo ramo poi noi
voglio essere sicuro che stiamo usando Jenkins
per server di integrazione continua e noi
voglio essere sicuro che tutti i nostri lavori
test e integrazione dell’unità immobiliare
prova e tu artista per cui corrono
qualunque ramo abbiamo nel campo di applicazione giusto
ora e per questo stiamo solo andando a
mostrarti come funziona davvero così sono
andando a creare un nuovo ramo e il
il nome in codice qui è che inizia con a
caratteristica è quindi solo un nome Pether
che abbiamo selezionato così ogni volta che al
Il server Jenkins vede un ramo chiamato
caratteristica che sta per creare tutto il
lavori richiesti o che abbiamo specificato
vogliamo così se creo questo ramo e
spingerlo per ottenere e poi vedrai il
i lavori in cima vengono creati automaticamente
per me non devo fare niente noi
usato per fare questo manualmente che ha portato a
che non l’abbiamo fatto, quindi lo faremo
lavorare sul ramo delle funzionalità e nessuno
davvero ha funzionato tutto
prova che alcuni sviluppatori tendono a dimenticare
esegui quelli sulle macchine locali e poi
lo uniremo poche settimane dopo
tuttavia quel ramo viveva per come
a lungo e poi vedremo la freccia
dì sul ramo principale appena possibile
è corso lì così ora è automatizzato e push
spingere il ramo fuori e ottenere questi posti di lavoro
creato se guardi il maestro
rami noterete che la maggior parte di loro
termina con un trattino T e questo fa parte del nostro
modello modello così così che cosa siamo
non vedo l’ora di creare automaticamente
i lavori che vogliamo è per questo che lo vedi
troppo orgoglioso costruisce un po ‘dal
in fondo non hanno il tè che è
perché eseguiamo il nostro test dell’interfaccia utente solo nel
test cloud tornerò su quello
più tardi dal nostro master branch non lo facciamo
quello dai rami caratteristica che è dovuto
a te devi pagare per ogni minuto tu
utilizzare questo si utilizzano i dispositivi nel test
nuvola quindi non vogliamo farlo per
tutti i nostri rami futuri aspetteranno con
che fino al ramo principale quindi il
modo in cui lo facciamo e sono sicuro che
molteplici modi voglio solo condividere come
lo facciamo c’è questo piccolo plugin carino
che lo usiamo è fantastico
documentazione e quindi puoi andare lì
e leggi quello e che cosa fondamentalmente
devi fare è creare un lavoro a
lavoro di sincronizzazione per te per app
vuoi farlo su così questo io
farà in modo che siamo in sintonia con
i rami caratteristica che abbiamo su beale
bacino con i lavori che abbiamo
disponibile su Jenkins e tu qui noi
basta specificare questa sincronizzazione
i lavori vanno in giro penso che sia uno solo
ora o puoi farlo manualmente e questo
è l’ allestimento di un posto di lavoro lassù
hey, in pratica, includi semplicemente un grande
script e questi sono valori chiave al ribasso
qui tutto menzionato nella documentazione
quindi specifichi quale ramo dovrebbe
cercare e il nome del modello
modello che dovrebbe cercare nel tuo
rami e poi sta succedendo da
magia e, naturalmente, ogni volta che abbiamo
unito un ramo in master e cancella
il marchio cancellerà il
di nuovo posti di lavoro in modo da non ingombrare
anche su Jenkins
se avete fatto notare una che è stato uno dei
dal Jenkins raffigurato proprio prima
c’era un punto che era verde che è
perché l’unico problema è correre ora con l’huggy
app costruita per cui stiamo usando l’hockey su
distribuzione e abbiamo usato un test
volo fino a quando l’ho comprato e messo
nel modo in cui volevano farlo e
ora usiamo un test di volo di classe spiacente abbraccio
sì perché è più flessibile nel
modo in cui vogliamo farlo e così facciamo
in realtà l’immagine è solo una parte di cosa
possiamo ottenere dalle app così ne creiamo una nuova
app nell’app hockey per la tua funzionalità
ramo chiamato lo stesso del futuro
marchio quindi sappiamo che installo il go
Demo di Copenaghen che è il nome che sono
andando a vedere sulla mia schermata iniziale, quindi lo so
esattamente quale versione dell’app
Sto iniziando adesso, questo è molto
utile per il nostro test QA manuale e
anche per la verifica UX, se vogliono
vederlo su dispositivi reali che abbiamo
incasinato qualsiasi pixel e il deflusso
cosa si aspettano che faccia, quindi è un
lavoro su Jenkins che si assicura che parli
all’API per l’hockey e crealo
uno e anche noi ci siamo uniti al
elenca come questo l’ altro plug-in che crea
certo che siamo in sintonia con il
filiali e posti di lavoro in cui ci siamo agganciati
e assicurati ogni volta che succede
cancellerà anche un ramo cancellerà o quando
cancellerà il ramo qui e
i lavori in cui elimini anche l’app
app per hockey per non lasciare vecchie app
che non fanno più parte di un ramo
dietro e così una volta abbiamo tutto questo
setup possiamo effettivamente indebolire il nostro potere
costruisci automaticamente e possiamo farlo
dispositivi di test e quindi potremmo effettivamente
anche solo fare il binario per caricare ma come
potresti aver notato dal tuo
la macchina suggerisce perché puoi compilare
e distribuirlo ed eseguirlo no
significa che l’app sta funzionando davvero
e che è ciò che vogliamo garantire quando
facciamo questo una consegna continua continua
quindi la prossima parte sarà circa
come facciamo tutti i nostri test così prima di noi
andare a test ci sono alcuni a
i prerequisiti devi assicurarti hey I
direi almeno e così richiesto
o sei stabile
gli ambienti di test e la S è perché
se sei fortunato hai più di uno
ambiente di test abbiamo nove dublicate
momenti di prova della nostra piattaforma DBA e
condiviso con il team web ovviamente
fa la loro parte e abbiamo la nostra API
per le app ma sono nove diverse
un ambiente di test molto clonato quindi noi
uno di loro ha specificato che è così
dove vogliamo eseguire i nostri test stabili
e sono abbastanza stabili la maggior parte del
tempo e poi hai bisogno di dati di buon gusto
anche sul vostro ambiente di test
fine settimana riceviamo una nuova copia di a
dati di produzione nel test
ambiente in modo che sappiamo che abbiamo a
almeno alcuni dati validi e tornerò
a quello naturalmente tutti i test devono essere
autosufficiente e ti conosciamo
creare cose che copriremo ma quando
tu crei roba così la parte facoltativa
potresti voler avere dei ganci
nei dati del test in cui è possibile modificare
cose che non accadono in un normale
modo per esempio quando creiamo a
la quotazione su DBA ha messo in vendita qualcosa
sarà valido per quattro settimane
ma possiamo aspettare quattro settimane e vogliamo
per verificare che ogni volta che la lista
scade, l’app si comporta correttamente, così facciamo
avere un gancio solo nel nostro ambiente di test
dove possiamo forzare quell’evento al paradiso
che normalmente accadrebbe in un brutto lavoro
quindi possiamo archiviarlo come parte del nostro
prova e poi sappiamo che queste cose
ora dovrebbe essere scaduto e possiamo verificare
che nel nostro test dell’interfaccia utente sia effettivamente così
il caso così opprimente opprimente ha fatto molto
buona idea ovviamente dipende da
che tipo di dati hai e cosa tu
voglio testare sì sì il diverso tipo
di test che abbiamo non sto andando
per coprire molto dei test unitari di
Certo che sai che ce l’abbiamo
test unitari e come tutte le piattaforme
quello super veloce ed è un modo semplice
per testare un comportamento specifico di un dato
componente ma sta accadendo in
isolamento lo stiamo usando per iOS noi
usando i test AC e alcuni oggetti finti e
questo è ciò che non chiamerò
più in quella parte
allora abbiamo test di integrazione e
che molte opinioni diverse su cosa
del test di integrazione lo utilizziamo principalmente
per testare davvero il nostro intero servizio
layer e dall’app per assicurarti che
otteniamo il Jason atteso che noi
può passarlo nei nostri modelli e quello
contengono i dati che ci aspettiamo
prova a fare così il piccolo team mobile che
finiamo siamo schiacciati tra un bagnato
squadra facendo un DBA e in altre parole lo sono
fare il conto in bacino quindi sono un po ‘ di proprietà
il livello dominio e poi abbiamo anche costruito
la nostra API in aggiunta a quella che serve
il JSON indietro e anche se abbiamo
buone schede di prova sulle piattaforme web
anche a volte fanno dei cambiamenti
che rompono cose che non sapevano
circa fino a quando l’app lo trova così effettivamente
questi test di integrazione abbastanza spesso o
non abbastanza spesso sembra orribile ma
a volte bloccano la potenziale scatola
dal renderlo in produzione perché
possiamo andare da loro e dire hey voi ragazzi
hai appena rotto la funzionalità di accesso
qualunque cosa possa essere perché questo è
dove possiamo effettivamente passare il Jason
non è molto più semplice e veloce
fare quindi dal test dell’interfaccia utente che è il
ultima parte e così qui ci avviciniamo al
Jason pardon dal test UI è un come
l’utente vede è questo è dove copriamo
a sua volta scenari davvero toccanti
i pulsanti e la verifica dell’interfaccia utente si comportano
il modo in cui dovrebbe essere e ma è a
molto lavoro per garantire che ogni campo sia il
come ti aspetti che faccia dall’interfaccia utente
è per questo che abbiamo il test di integrazione
verifica che il JSON sia passato
corretto e quindi il rischio sale al
UI e sì, quindi il test dell’interfaccia utente andrà bene
essere le prossime diapositive riguarderà perché
Trovo che sia la parte più difficile e
dove le persone hanno più domande
quando parliamo di vendita di unità di prova e
test di integrazione sono vicini al cappotto
e hai ragione nell’obiettivo-c il modo
vuoi e il test dell’interfaccia utente è dove può
essere il più difficile da provare a farlo
e ci sono alcune insidie ​​che puoi
imbattersi in cui sarò colorante e alcuni
potrebbe essere se non ti è familiare
per esempio
cetriolo potrebbe essere un po ‘ripido
curva di apprendimento solo per vederlo quando sono
ti mostrerò, ma almeno tu
dovrebbe sapere in fondo alla tua testa lui lui
ha detto qualcosa su questo potrebbe essere un
problema se si inizia a farlo così
si spera che si possa facilmente seguire
ehi cetriolo in zucca ognuno di voi
usandolo o conoscendo questi strumenti a
un paio di mani okay insomma a
il cetriolo può essere utilizzato per testare un qualsiasi tipo
di cose e poi puoi inserirmi lì
chiamiamolo un driver che può effettivamente
manipolare qualsiasi cosa se spazzata si desidera
per testare o se si tratta di un altro sistema e
calabasas che cosa è possibile utilizzare per testare il
iOS e Android quindi il modo in cui funziona è
quella calabash sarà per l’installazione di iOS a
piccolo componente del server nella tua app
può così posso parlare con te il tuo test
che sarebbe scritto in cetriolo e
quindi scambierà un JSON
HTTP quindi è il callobus che puoi dire
scorrere su una cella o scorrere su e giù
e premi il pulsante e tutto ciò che è
il lavoro di zucca e cetriolo è il
linguaggio che cercava di scrivere il tuo
test e semoran che è dietro il
il parco di calabash ha un sacco di grande
documentazione se vuoi saperne di più
riguardo a tutto ciò di cui hanno bisogno di una parte golosa
ma tuffiamoci di più in più leggibili
roba streghe e scenario di prova, quindi questo
è un cetriolo scritto molto facile da usare
leggi e così l’immagine ti mostra
all’interno del DBA se voglio segnalare a
elencando che qualcuno ha fissato un prezzo basso
oh ho il sospetto che sia stato rubato
merci o qualsiasi altra cosa per qualsiasi motivo
potrebbe essere e le prove vogliono verificare
che tu come utente puoi solo inviare un
segnala come questo una volta e la volta successiva
si vuole farlo si dovrebbe essere detto in modo
e non devi leggere tutte le righe
ma se hai già fatto ciò dovresti
vedi che è abbastanza facile da leggere e
dovresti essere in grado di farlo
capire cosa si suppone il sistema
da fare in ogni momento e calabash
navi con sì sì, se lo scomporremmo
e questo sarebbe
cetriolo ha un file di funzionalità è solo un
file che contiene più scenari
potrebbe essere una funzione di accesso che desideri
prova e poi avresti multipli
scenari di login testandolo per input errati
e quando va bene e tutto questo e
ogni linea nello scenario è chiamata a
passo e calabash navi con un po ‘
passaggi predefiniti che se si va questo
modo ti consiglierei di non usarli
perchè sono molto generali, direbbe
poi vedo e poi ti cito
metterebbe un annunciatore maschio e questo
troverà un testo che dice e maschio
annunciatore e andrà bene ma il
tutta l’idea di usare il cetriolo è quella
puoi scriverlo nel tuo dominio specifico
linguaggio che tendiamo a fare molto anche
come vedrai, questo deve funzionare
cross-platform vogliamo che funzioni
multipiattaforma, quindi stiamo cercando di
specificare un comportamento o utente dell’utente
intenzione e non come è in realtà
implementato probabilmente falliremo tutti
di tanto in tanto quindi direbbe toccare a
pulsante o qualcosa del genere ma è così
dovrebbe essere più vicino alla giusta intenzione e
non come si sta effettivamente implementando
perché potrebbe essere differenze tra
Android e iOS e questo scenario tu
voglio essere in grado di eseguire su entrambi i dispositivi
così da farlo funzionare su più piattaforme
queste tre scatole sono ciò che è comune
da un piatto di cetriolo, quindi ce l’hai
il file di funzionalità che ho menzionato quale
contiene scenari e ogni scenario
contenere i passaggi ma poi dovresti farlo
sicuro di aver inserito un ulteriore livello
che è il pattern dell’oggetto pagina tu
non voglio la tua logica di toccare e
interrogando roba nei tuoi passi tu
voglio metterli un passo più in basso
la linea che sarebbe incollare oggetti
e quindi puoi realizzare l’implementazione di
gli oggetti della tua pagina per iOS e Android
indossare che vedrà un esempio in questo modo
puoi riutilizzare i tuoi scenari e passaggi
attraverso le piattaforme e solo fare il
oggetto della pagina specifico per la piattaforma I
appena messo in modo che per caricare si vede il
struttura del file proprio qui di a
abbiamo rubato tutte le nostre funzionalità e tutto il
prova quindi c’è un androide e iOS
cartella così ogni volta che voglio eseguire il mio
test di cetriolo su Android mi assicuro
usalo è il nostro comando sul cetriolo
dicendogli di caricare ora i file che sono
memorizzato su Android e in esecuzione su iOS
dovrebbe caricare quello nella cartella iOS
e poi ovviamente gli oggetti della pagina ha
da attuare in entrambi i casi e
swing per gli stessi metodi in modo che questo intero
cartella delle funzioni che vedi qui
è in realtà usato tutto ciò che in un bambino si ferma
modulo in modo che possiamo usarlo dal nostro
App per Android e iOS che condividono lo stesso
codice lo stesso codice di prova sì sì guardando
più nella pagina oggetti questo è un
definizione del passo e ciò che fa è
in realtà solo invocando un oggetto di pagina così
questa è la parte iOS del report
elencare e quindi l’oggetto della pagina è giusto
per incapsulare un codice qualsiasi è necessario
lavorare su quella pagina di elenco di report così
qui voglio inviare il rapporto e il
metodo di transizione verso il basso
non è costruito in un metodo di calabash che
ora tocca il viewmarq e il maschio
annunciatore che è il fondo che hai visto
il in fondo e poi la pagina che
ora vai a questo è qualcosa
ci costruiamo questa pagina precedente
Avrei potuto inserire qualsiasi altra pagina
oggetto e che è solo una classe rubino
che ora avrà il controllo così alla ricerca
al passo la pagina è una variabile
sarà in ambito per tutti i passaggi
in esecuzione in uno scenario e questo è il metodo
restituendo la nuova pagina e così la prossima
passo può dire che la pagina fa qualcosa e quello
sarà il prossimo nel flusso di qualcuno
ha un’app di esempio chiamata a
esempio multipiattaforma a cui io
incoraggiarti a scaricare e avere un
guardare entrambi hanno come si esegue questa operazione
parte della piattaforma di folla e anche il tutto
il modello dell’oggetto pagina è diviso
ma molto molto importante che tu non lo faccia
inizierai vedrai che ho un altro esempio
mostrando quanto male stessimo mettendo un sacco di
codice e definizioni dei passaggi e tu no
voglio andare lì hey vuoi solo
iniziare facendo gli oggetti della pagina a destra
via hey yeah quell’esempio è in realtà
in questo momento perché questi sono tutti i
apprendimenti che abbiamo avuto lungo la strada e
uno dei principali problemi che abbiamo avuto è stato
problemi di temporizzazione e quindi non farlo come
questo prima di tutto è un passo
contenente la logica e non inserire una pagina
oggetto ma avresti potuto fare lo stesso
codice di sonno scadente nell’oggetto di pagina e quello
sarebbe ancora cattivo e cercare di evitarlo
metodo di sonno a tutti i costi, invece
c’è molto peso per aiutarci ad aspettare
perché qualcosa sembra aspettare
qualcosa da non usare più visibile
quelli invece faranno il tuo
la vita è molto più facile altrimenti la troverai
te stesso aumentando quelle maniche
ogni volta che costruisci il server diventa un po ‘
un po ‘più lento allora sarai solo un a uno e
aggiungi uno e la tua suite di test sta per
corri più lentamente e più lentamente e ottieni ancora
problemi di temporizzazione che è possibile riprodurre in
la tua macchina ma solo su
Bill così e sì, questo è reale
esperienze, non è qualcosa che sono
inventando abbiamo avuto questi problemi così
lo stesso passo ora è davvero semplice
è solo chiedere alla pagina oggetto di
scrivi il prezzo e il prezzo giusto è
ora sta strisciando piacevole e facile e
in attesa di una determinata cella è il prezzo
Proverò ad essere visibile, poi sta andando
toccare il prezzo quindi e utilizzare il
tastiera per inserire il testo e chiudere il
tastiera di nuovo e tutti questi stessi
i metodi menzionati qui faranno
certo che aspettano per esempio il
tastiera per apparire e sparire
di nuovo che è tutte le maniche o sul
la diapositiva a sinistra che faceva così
preferisco sempre aspettare i metodi precedenti
invece di dormire dormendo è davvero
brutto sì e certo che volevi il tuo
tutta la suite di test per essere stabile, così puoi farlo
effettivamente fidarsi di esso e e
aspettare è un buon modo per arrivarci
ma ancora puoi vedere qualche prova traballante
area ora quindi che in realtà non lo è
colpa per un altro le tue abilità a
scrivere l’attesa o calabash in realtà
è più ovviamente più spesso lo è
sarà al livello più basso dell’interfaccia utente
automazione o il simulatore su iOS dopo
sta funzionando, lo so da parecchio tempo
Penso che la nostra intera suite di test per il DBA
L’app per iPad richiede un’ora e 30 o 45
minuti e fa davvero schifo
Ho corso per così tanto tempo e poi tu
vedere un piccolo scenario fallire
fallito perché il simulato è giusto
creston te per nessun motivo particolare
ho appena perso la connessione o qualcosa del genere
e così cetriolo viene con questa notte
hanno un coma è diverso per
importa come vuoi che generi qualcosa
e una delle quattro questioni è una replica
formattatore e che è veramente bello
perché allora puoi specificare che vuoi
quello per la materia e diglielo per produrlo
ad alcuni file e quelli che rieseguono txt
il file conterrà ora informazioni su
quale scenario è fallito nella prima esecuzione
e poi puoi solo chiedere a Cetriolo di farlo
eseguire qualunque cosa non sia un file rsun txt
e eseguirà di nuovo quei test falliti
e ovviamente per far funzionare questo lavoro
Jenkins hai bisogno di avvolgere qualcosa
intorno a queste righe potrebbe essere un rastrello
compito o uno script di shell perché non lo fai
voglio riportare nella prima parte di nuovo a
i motori perché poi non è finita
di pensare che ha fallito e dimenticare
l’ultimo modo da avere per incapsulare
questo in a in un self-contained a
corridore che riferirà solo a
Jenkins una volta che la replica è stata completata
così è un po ‘triste che lo sia
necessario per fare questo ed è per questo uno
delle ragioni che ho detto che spero da allora
Apple sta facendo di più
possedere test dell’interfaccia utente forse possono migliorare
sono la parte sottostante, quindi non lo facciamo
dobbiamo farlo e lo troviamo a
soluzione abbastanza buona perché non lo facciamo
voglio cacciare pillole rosse che non lo sono
davvero letto ma fai solo qualche strano incidente
quindi, per così dire, rieseguo il formato
è il migliore dei peggiori direi
scelte occidentali sì, così l’intera idea
diffidare di fare questo è, naturalmente, che noi
voglio essere stabile in ogni momento, ma anche
ci ha fornito come sviluppatori con rapidità
feedback non appena abbiamo rotto qualcosa
vogliamo sapere e questo funzionava
abbastanza buono per noi ma poi eravamo
abbastanza bravo ad aggiungere sempre di più
prove e tutto ad un tratto ci è voluto del tutto
molto tempo per eseguire tutti questi test e
quindi il tipo di feedback veloce di
scomparso perché poi lo faresti
alcune cose al mattino e poi tu
non andresti a pranzo e poi dopo
a pranzo potresti ricevere una segnalazione
alcuni test hanno fallito quindi ora abbiamo a
due diverse suite di test oh, va bene
in realtà è la stessa suite di test ma
puoi usare il testo in un cetriolo così facciamo
selezionare gli scenari e ha bisogno di una funzionalità
quindi vogliamo correre dopo ogni commit
e quindi eseguire solo la suite completa di test a
notte, quindi eseguiamo solo un sottoinsieme di tutti
i nostri scenari dicono che coprirà tutto
le basi della app subito dopo
ogni commit e il resto funzionerà a
la notte è un modo per migliorare il
velocità di eseguire i test l’altro
uno sta migliorando i tuoi scenari
più veloce nel creare e tifare
qualunque siano i dati di cui avrebbero bisogno e per
quella zucca ha una piccola backdoor
ti consente di invocare l’app senza
passando attraverso l’interfaccia utente e che potrebbe
sembra come barare ed è un po ‘
ma non è male perché ovviamente tu
fallo solo per quattro passi che tu
ho già chiamato volontà in altri
scenari quindi ti darò un esempio
e questo scenario voglio vederlo
posso gestire il mio annuncio figlio nell’app DBA
e vedere qualsiasi cambiamento che faccio in questo modo
era il primo ad essere evidenziato
le linee utilizzate prima di tutto fai il login
attraverso l’interfaccia utente digitando il nome utente lungo
digitando la lunga password immettetela login
e quindi creare un elenco
a che vedi è al passato io
ho creato un elenco ma all’inizio questo
passo deve passare attraverso l’ interfaccia utente selezionare il
classificazione giusta il prezzo che voglio
e compila tutto il necessario obbligatorio
campi per quel flusso e poi quello è
in realtà prima dopo questo passaggio che il
il vero test è iniziato perché volevo
verificare che potrei cambiare quelle cose
così ho fatto quello che facciamo qui
in realtà usando quella piccola backdoor
ed è per questo che possiamo entrare nelle Indie
codice vedere è per questo che dice così usando
accesso rapido che è un modo per noi di ricordare
noi stessi che questo login non sta registrando
attraverso l’interfaccia utente sta usando la parte posteriore
la porta e le differenze erano la volontà
abbastanza soddisfatto delle differenze di tempo
in modo che quello a sinistra stia usando il
dietro l’ altro si diceva senza
la porta sul retro così ora ha effettivamente preso
più tempo per preparare i dati di test da eseguire
lascia che detti effettivamente il test
stesso e quindi è una grande velocità
miglioramento e usiamo la porta sul retro
parecchio in molti test ovviamente
ancora come ho detto, fallo quando lo sai
hai uno scenario completo sta chiamando il
Effettivamente login e anche per questa festa
dove creiamo elenchi ne abbiamo altri
scenari per questo e anche questo arriva
fino a che il test ogni volta che i dati sono
richiesto e deve essere in grado di creare
i loro stessi testano i loro dati così loro
sono autonomi che non possono fare affidamento su
qualcun altro ha bloccato in precedenza
con l’utente settler unico e creato
un elenco perché non si sa mai se questo
lo scenario verrà eseguito prima dell’altro
o no, quindi è autonomo e
la porta sul retro può aiutare a migliorare la tranquillità
ricetta così ora abbiamo un sacco di test e
loro vogliono giusto loro corrono veloci e
corrono stabili ma possono ancora fallire
ed è per questo che vogliamo avere visibilità
feedback quindi riceviamo una notifica nel
squadra che qualcuno ha incasinato e noi
devo aggiustare qualcosa quindi questo è solo un
un po ‘ corto che mostra una foto di noi
avere un grande monitoraggio del nostro spazio di squadra
mostrando a
solo le fatture principali è molto
importante, tutto bene, eravamo abituati a mostrare tutto
la nostra funzionalità si accumula anche qui
dal momento che abbiamo un accordo sul team
va bene per i rami delle funzionalità
leggi per un po ‘di tempo da quando in realtà
lavorando su nuove funzionalità e potrebbero
non essere completamente fatto ancora, allora lo faremmo
vedi un punto rosso sullo schermo e lo farai
iniziare a ignorarli finché non lo farai
notare che ha detto che era il
masterizzato in modo tale da farcela
rimosso tutti i rami di funzionalità da
mostra solo su questo monitor di build
mostrando il padrone e ora sappiamo che
se guardiamo lassù e vediamo qualcosa
è rosso qualcuno deve agire
e così tutti gli altri marchi di funzionalità
è che li riportiamo semplicemente inutilizzati
quindi Jenkins ha un piccolo plugin carino noi
può notificare in gioco e noi abbiamo il nostro
piccolo gruppo molle dove arriviamo
notificato su fatture anche le spese principali
e questo mostra la nostra bolletta del cloud
apparentemente fallito qui dopo 14 secondi
probabilmente perché non potrei non farlo
conosci 40 punti 14 cose che è abbastanza
veloce ma qui puoi vederti così il nostro DBA
a tutti i test e iPad ne prende uno
ora e 30 minuti per eseguire il tutto
test suite così sul nostro server Jenkins noi
solo su iOS almeno questo è solo noi
eseguire l’ultimo simulatore in cui è
gli strumenti che stiamo usando in questo momento noi
non sono andato su uno SDK dell’Iowa nove
anni quindi è proprio ora un 8,4 che noi
usare che va bene ma se lo hai
hai utilizzato il layout automatico su iOS che potresti
ho notato che potrebbe essere un po ‘
differenze tra iOS 7 e 8 ok noi
ho notato che almeno così vuoi
per testare anche su dispositivi reali e per
che usiamo una nuvola di test della gamma sam
dove possiamo semplicemente usare tutti gli scenari
che abbiamo o puoi usare la tecnologia e
specificare le arie da guardare che si desidera eseguire
là fuori e poi possiamo selezionare
qualunque sia il dispositivo che vogliamo eseguire questo
questi test su così usiamo il nostro
analisi e scoprire che a
combinazione di sistema operativo e
dove la maggior parte dei nostri utenti ha e poi noi
seleziona quei dispositivi qui e fai
certo il nostro test funziona su quello che abbiamo anche
nella nuvola di test divisi, quindi eseguiamo a
un test l’unico su iPhone e voglio
solo un iPad in cui potrebbero effettivamente essere eseguiti
corriamo insieme ma preferiamo solo
avere immagini da una piattaforma che
rende facile anche per UX entrare qui
e e dare una rapida occhiata se qualcosa
sembra strano su iOS 7 o 8 sullo stesso
piattaforma sarebbe un po ‘ strano
avere dispositivi iPad e iPhone in
tra così il cloud è davvero bello a
il suo tipo di evidenziazione ogni volta che qualcosa
ha fallito e puoi vedere qual è stato il
ultimo passo e quale schermo sicuro di cosa cosa
lo schermo sembra al momento
non riuscito è possibile fare clic su qualsiasi dispositivo
e puoi vedere l’utilizzo della memoria e della CPU per
ogni passo in modo che le linee qui saranno uguali
un passo nel mio file di funzionalità e poi io
posso vedere se improvvisamente vedo un grande
inclinare in un uso della memoria posso tornare indietro
a quel passo specifico e dì oh quello è
quando vanno a guardare le immagini grandi forse
è per questo che ha iniziato a usare più memoria
e come puoi vedere hai il dispositivo
bloccare e il registro di test in modo da poter vedere
cosa sta succedendo hey sì il cloud
ha salvato un paio di volte dove come me
ha detto sul layout automatico dove abbiamo
perso qualcosa che non ha funzionato
iOS 7 quindi alcuni elementi non sono stati mostrati e
e il nostro petto lo prenderebbe per noi
che è davvero bello, così è questo test
automazione se lo fai allora sei
sarà pesante e questo è tutto
non completamente sono grandi e voi
dovrebbe sicuramente farlo a modo loro più veloce
di quanto qualsiasi umano possa fare lo stesso test
più e più volte e loro mai
dimenticando i dettagli che fanno sempre
nello stesso ordine che hai indicato
fare ciò che è anche il rovescio della medaglia
fai solo quello che dici di fare così è
un ottimo modo per evitare
vecchia scatola e manca un non si vuole
avere quelle regressioni aeree dove un vecchio
puoi parlare tribale di quel vecchio
la scatola potrebbe riapparire nelle versioni successive a
bug sulla schermata di blocco che è successo in
iOS 7 è tornato in iOS 9 non ne sono sicuro
se è lo stesso bug quello che pensavo fosse
tipo di divertente e tu non vuoi che
capita che sia ciò che è l’automazione
veramente buono per ma non lo sarà
come se non fosse l’umano
cervello di pensare per se stessi così
il test manuale è ancora molto importante
ma per avere la consegna continua
effettivamente lavorando dovresti farlo come
parte della tua intera storia e non fare enormi
prova eseguito ogni volta che hai finito
con la funzione quindi è un test manuale
parte della nostra definizione di fatto per ciascuno
storia che significa che qualcun altro su
il team deve verificarlo manualmente
questa parte sta funzionando potrebbe essere il nostro controllo qualità
Esperto di QA che abbiamo sul team o
Potrei essere un altro sviluppatore, se lo è
i ragazzi del QA fanno altre cose
e ma i test automatici sono sicuri
che non devi spendere molto
tempo facendo lo stesso noioso test o un
Ora il nostro QA può ora spendere molto di più
tempo facendo test esplorativi e usando
il suo strano modo di pensare a come può distruggere
questa bella app e scatola di ricerca che noi
non sono automatizzati perché lo fa
non pensa da solo l’automatizzato
test e lui può concentrarsi su aree con il
il più alto rischio, naturalmente, se lo trova
qualcosa di molto ovvio che possiamo
automatizzare poi andremo avanti e farlo
per evitare che una scatola accada di nuovo
ma ti servono i test manuali come
beh, puoi assolutamente saltarlo e
allora tutto questo in combinazione devi
abbi molta fiducia prima di tutto tu
devi avere fiducia che tutto il tuo team è
per questo e vogliono mantenere
il mantenimento e la scrittura di questi test è di
non una persona della squadra che dovrebbe fare
questo per tutto il tempo è uno sforzo di squadra per
fallo e molto importante devi
assicurati che il tuo QA sia davvero affidabile
tutta la tua suite di test anche se lui o
lei non si fida e vuole farlo
manualmente tutto il tempo o no di nuovo allora
non va bene
sì, quindi devono essere convinti
anche questa bella automazione e noi lo facciamo
fidati del nostro QA per trovare la scatola difficile
non abbiamo ancora automatizzato e questo è il motivo per cui siamo noi
prova a dargli tutto il tempo per farlo
il più possibile come anche uno sforzo di squadra molto
importante è che ogni volta che costruirò
il monitor sta mostrando qualcosa di rosso che facciamo
fidati che qualcosa è male e noi
dovrebbe andare aggiustarlo, non ne permettiamo alcuno
finestre rotte solo per vivere per pochi
settimane e dire che probabilmente sta andando a riparare
da soli ci immergiamo e qualche volta
potrebbe essere un errore nella nostra indicizzazione di ricerca
sull’ambiente di test non lo era
completamente giusto allora bene allora
eseguiremo il test non è dimostrato
eppure è un bug nell’app ma noi
devono indagare e seguire e
ultimamente ce l’abbiamo fatta, così noi
abbiamo cinque sviluppatori quindi abbiamo un giorno
una settimana ogni giorno in cui ci assicuriamo di
immergiti se qualcosa è rosso, quindi proviamo a farlo
condividere la responsabilità per quello sul
squadra che sta funzionando abbastanza bene e
poi a volte guardiamo bene
al nostro codice coraggio e per essere sicuri
che abbiamo coperto l’area diciamo che noi
voglio che ci aspettiamo di coprire e che noi
non ho lasciato nessuna grande parte e possiamo
usa anche questo per informare il nostro QA che noi
hanno certe aree che non abbiamo
stato in grado di trovare un buon modo semplice per
automatizzare qualsiasi test, quindi dovrebbe farlo
sicuro di farlo manualmente basta continuare
badate che il corso di codice non lo fa
necessariamente garantire che sia un bene
testarlo garantisce solo il codice
è stato toccato da alcune esecuzioni ma
se dimentichi di fare qualsiasi affermazione in
il tuo nei tuoi test bene allora potresti
lasciare che molta scatola passi inosservata così
CoCoRaHS non piace a quanto può vedere
che hai un test molto buono, solo loro
assicurarsi di avere una buona copertura a
Almeno ritoccando assicurandoti che non lo faccia
davvero crash sì sì uno dei vantaggi
dopo aver avuto tutto questo setup era quello ora
possiamo effettivamente così era la prima diapositiva
sull’essere continuo di consegna
qualcosa che potremmo fare un binario
quando e hablo
ogni volta che vogliamo e vogliamo prendere
vantaggio che in realtà sta iniziando a
pubblicando versioni più frequenti ma
perché ciò accadesse dovevamo convincere
il nostro proprietario del prodotto sulla nuova agilità
che ora abbiamo perché sono stati utilizzati
dovremmo prendere circa una settimana di
il calendario per preparare un pisolino faccio tutto
il test e il bug risolti perché noi
trovato la scatola nell’ultimo minuto e
quindi aggiustalo e ora loro sanno che noi
può piacere di ora in ora dirlo
direi che possiamo caricare o poi il prossimo
sprint possiamo possiamo farlo è mostrare noi
basta premere il pulsante e ottenere il
file e caricarlo e che è stato fatto
anche loro avevano paura di prima
che i clienti non volevano ottenere
infastidito dall’essere detto che è un nuovo aggiornamento
ma da quando Apple ha scoperto che è così
una buona idea con gli aggiornamenti automatici di apt
vediamo un tasso di adozione molto veloce
ogni volta che rilasciamo una nuova versione
non è più un grosso problema
fare rapide uscite e noi aiutiamo
il proprietario del prodotto che definisce il campo di applicazione
e sarebbe un buon momento e se noi
voglio rilasciare questo poi lo so
Almeno io alla scatola vorrei aggiustare e
uscire nella stessa versione, quindi aiutiamo
a vicenda e definendo la migliore versione
possibilità per voi di ridigitare il rilascio anche noi
trovato che dovevamo preparare la nostra appt
un po ‘per questo prima di tutto che abbiamo
costruito in un kill switch perché è un vero problema
significa che abbiamo molto vecchio
versioni in esecuzione e ad un certo punto voi
voglio iniziare a chiudere i vecchi a
forza le persone su quelle nuove che è
solo come una percentuale di qualcosa di
gli utenti che sono bloccati alle vecchie versioni
ma abbiamo un interruttore in modo che possiamo iniziare
bloggandoli su ogni app si avvia hey
questa è la nuova app nell’app store
dovrebbe andare a prendere e così possiamo risolvere
chiudilo e wanda sposato di tanto in tanto
e alla fine possiamo fare vestiti caldi
e dirà solo che non puoi usare
questa versione più devi andare e
aggiornamento che è anche una buona emergenza
freno nel caso in cui mandiamo un’app che
si schianterebbe per qualche motivo e questo può
in realtà succede nonostante tu stia facendo
test automatico o non così un kill switch
è una buona idea anche gli schermi di benvenuto
lo vedi in molte app che vuoi
per dirti di usarci cosa c’è di nuovo in questo
uno perché in realtà non lo fanno
questo è ciò che vediamo che non sono realmente
entra nelle storie delle app che cosa è nuovo
vedrai
punto blu un iOS sulla schermata principale
dicendo oh questa app è stata aggiornata loro
non ho idea di cosa abbiano appena fatto
nuove funzionalità in modo da poter essere in grado di
dillo alla tua app che qualcosa
grande è in questa nuova app così hai
tutta questa configurazione e se vuoi farlo
il tuo caricamento dell’appt è ancora più semplice
esaminare gli strumenti Fastlane per iOS che
ha un sacco di semplici modi per fare screenshot
e prepara il tuo iTunes Connect e
c’è ancora tutta questa parte a riguardo
essere il mondo delle app in modo che tu in realtà vada
sui dispositivi pupilla e sei tu
non può semplicemente essere distribuito su un server ma con
tutto questo setup si dovrebbe I tipi di invidia
il mio cane è davvero rilassato
è la sensazione che dovresti avere dopo di te
caricamento e tutti i test automatici sono
davvero verde sulla schiena
comodo non preoccuparti, farò semplicemente clic
il pulsante per rilasciarlo nell’app
memorizza quando è pronto se non lo fai
hai quella sensazione allora devi andare
torna alla diapositiva con la fiducia e guarda
se hai problemi di fiducia nel tuo
squadra e questo potrebbe essere collegato
sei ancora un po ‘preoccupato che stia andando
per stare bene o no e se non lo hai
qualsiasi problema di fiducia quindi l’ ultima opzione è
per ricordare solo di abbracciare i fallimenti
perché non si ottiene bak gratis
software non importa quanto sia difficile provare il
sarà ancora in scatola, ma il
il meglio che puoi fare è imparare e migliorare
dalla tua casella e costruendo nuovi test a
impedire qualsiasi bug che hai visto da
cielo ancora mai potuto farlo
con la schermata di blocco quindi non avrebbe
riapparso in iOS 9 e anche al posto di
quando qualcuno ha creato un dollaro e il
il test è rosso o qualcosa invece di
incolpando quello disponibile e gestendo un bambino
incolpare il gioco o qualsiasi altra cosa
e dire hey succede perché noi tutti
solo esseri umani che stiamo codificando solo
festeggia che hai una bella installazione
quello prenderà queste cose così tu giri
in una cosa positiva e dire di sì
avere coraggio prova coraggio automaticamente
appena diventato rosso perché qualcuno ha fatto un
errore che non è il caso, facciamolo
festeggia il test che ha trovato il dollaro
invece e ricorda di conoscere la tua app
la qualità in ogni momento è così insieme
senza stato di fatturazione che abbiamo
schermo che mostra il nostro così da
critica se vedi succedere picchi
dovresti agire prima che tu l’abbia usato
per iniziare a segnalarlo al cliente
servizio che abbiamo mai avuto quelli sono cattivi f
le recensioni dei negozi intervengono immediatamente così
assicurati di sapere che non sei f
qualità e quando cose come questo picco
succede che tu sia felice che tu entro un’ora
può essere eseguito in un blocco fisso e fare clic su
pulsante e crea un nuovo file e carica
ed e tiralo fuori subito e se
succede che dovrei sapere che questo
in realtà non faceva parte di una versione dell’app
Ero un componente di terze parti che lo ha fatto
questo Volevo solo mostrare che potremmo
agire subito e naturalmente
non abbiamo fatto questo bug io giuro
si si penso che sia quello
in realtà come sto facendo in tempo sì
e ricorda di valutare la sessione ora
dall’app e da eventuali domande
sai di nuovo come sai che abbiamo
questo accordo definito dal proprietario del nostro prodotto
prepara iTunes si collega perché loro
sapere cosa vogliono scrivere e
in realtà è molto raro che lo facciamo
cambiare un senso sottile le immagini che abbiamo
nell’app store perché è per questo che io
ha menzionato la schermata di benvenuto che vogliamo
evidenzia le novità all’interno dell’app
perché la maggior parte della gente torna al
la stessa app non ha veramente notato cosa c’è dentro
l’app store è ovviamente un nuovo cliente
lo vedremo lì ma noi
abbiamo solo modo di sostenere solo il danese
nella nostra app e ma se dovessimo sostenere
linguaggio multiplo che sicuramente guarderò
nello strumento corsia veloce , quindi se iOS che
può fare molto aiuto in realtà
inoltro all’app store, se lo si desidera
per automatizzare di più in quella parte, ma la nostra
l’automazione si arresta in modo che Jenkins possa costruire
lì e firmare il file API corretto per
caricando non dobbiamo fare nulla
su questo è sufficiente fare clic su un pulsante
manualmente e sarà pronto con il
binario da caricare ma il resto siamo noi
ancora non era manuale perché è così
così facile da fare per noi con solo uno
linguaggio ma più veloce in strumento così è
sicuramente qualcosa che vorrei guardare
in se avessi più lingue da supportare
e mi stavo chiedendo hey piacere di conoscerti
altri sei e
tracciamento su qualche tipo informato
indicatori per app native anche se
fai così come fai a testare
altro quello che non ho sentito la prima parte
si traccia come il cui fidanzamento e
cose come questa nella tua applicazione e
come sai la cinetica nella tua
applicazione
tu sei il proprietario di un test e so che noi
non ho un test automatico per quello che è
sulla nostra lista che vogliamo collegare e
verificare che facciamo il giusto monitoraggio e
abbiamo un progetto in arrivo dove noi
migliorare il nostro monitoraggio usando a
nomi obbedienti basati su globale per certo
cose e io penso a questo riguardo noi
potrebbe dover esaminare la raccolta del
rintracciare da qualche parte e quindi verificarlo
dopo, ma non lo facciamo al momento
ma è una grande idea quindi se ne hai uno
soluzione molto da ascoltare più
Buon Natale, grazie per
venuta
tu

Please follow and like us: