
grazie, si, quindi spero che questo sia un
parla di come i test ti faranno
felice forse non non sono sicuro ma quello è
lo scopo che ho avuto un piccolo panico minuscolo questo
mattina quando ho capito che ho lasciato il mio cavo
al gruppo di utenti che ho parlato alla fine
notte e il mio portatile era completamente fuori
di batteria, quindi giocheremo a spot
le diapositive che Trish non ha avuto
possibilità di recuperare correttamente ieri
cosa potrebbe andare storto, giusto?
abbastanza su di me
voi ragazzi alzi la mano se sei uno sviluppatore
la maggior parte di voi alzi la mano se lo fai
identificare come più di un tester va bene
freddo
e non so che probabilmente ce ne fossero alcuni
sovrapposizione tra quelle due persone che è in
fantastico
così um ho intenzione di raccontare una storia su
come lavoro per i jetbrain che realizziamo
IntelliJ che sta usando IntelliJ o
Riposizionare un pezzo di te bene il resto
di te dovresti assolutamente farlo
prendi un volantino qui e vai avanti
subito ma questo non è un discorso
sui jetbrain o su IntelliJ o
sugli strumenti, questo è un discorso su e
quando ho lavorato in MongoDB che è il mio
ultimo lavoro come abbiamo cambiato il nostro approccio a
testare per MongoDB, quindi questo è un
user nuova tecnologia e tutto il tuo
i problemi saranno risolti parlare ora non lo è
meno male che non è uno di quelli
vado a toccare una tecnologia che sono
andando a parlare di una tecnologia che
ci ha aiutato ma ho intenzione di parlare di più
sul perché questa particolare tecnologia
risolto i nostri problemi particolari in giro
testare quindi voglio davvero parlare a
un po ‘di più sul perché noi come
gli sviluppatori non sono sempre fantastici
a scrivere test e guardare dentro
alcune delle ragioni per questo e come
puoi forse attaccare alcuni di quelli
problemi che è la teoria comunque in modo
diamo un’occhiata al motivo per cui non scriviamo
test ho intenzione di provare un po ‘di pubblico
la partecipazione potrebbe andare orribilmente
sbagliato quindi mi scuso ok andiamo
Sapevo che questa è una cattiva idea, ok, è così bello
questo è come una cosa tipo show quiz
quindi mi chiami una ragione per cui non lo fai
scrivi prove quando dovresti fare troppo duro
di istituire
hey hai letto che non è troppo difficile
impostare
va bene, facciamolo, oh cosa c’è
succedendo sapevo che non sarebbe successo
lavoro ho messo i miei vestiti qui e
tutto ciò che ho dovuto scrivere script VB
ieri è stato rivoltante
tutto il formato giusto facciamo la vecchia scuola
modo è probabilmente perchè il mio laptop ha esaurito
di batteria ieri giusto sì troppo duro
per impostare ben fatto sì sì buono
beh, in realtà ho intenzione di metterlo
troppo difficile da configurare perché il codice legacy
in genere non è progettato per essere bene
testato quindi devi mettere in atto
quadro sì
giusti i test diventano irrilevanti come il
le modifiche al codice sono buone e io
non avere quello sì
Va bene , non pensi che i test siano
molto prezioso che ho da qualche parte
non leggerlo bene, lo metto io
chiameremo il nostro sforzo rispetto al valore
e giusto questo è sì ho completamente fatto
questa chiacchiera di volte prima che tu possa
vedo totalmente questo lavoro, sì da qualche parte
qui qualcuno ha alzato la mano sì
difficile lavorare con le dipendenze okay
Ne ho uno anche io, oh, basta
leggendo tutti troppo duramente per deridere o
si sa per pugnalare o qualsiasi altra cosa sì sì
in realtà ho pensato che sarebbe stato il
la cosa numero uno che la gente ha detto di sapere
stai leggendo tutto questo per Spry e
otterrai le risposte giuste che otterremo
attraverso di esso più veloce e così sì numero
una ragione è che normalmente non ho tempo
scrivere test e poi ovviamente
arriva e ti morde nel culo più tardi
quando non hai tempo per il refactoring
entrambi e il tuo codice è un bel casino giusto
giusto lo classificherò anch’io
difficile da configurare e troppo difficile da deridere ma
sì hai ragione intendo codice legacy o
codice che è tipo di sì
l’evoluzione è difficile per i tester
supposto scrivere test va bene, questo è un
buon punto non ho quello sì
giusto così la persona che scrive il codice
non dovrebbe scrivere i test perché
sai come appare il codice
scriverete anche i test così
loro passano il tuo codice sì, assolutamente no
immagino che molte persone che
ha risposto a questo modulo oa persone di tipo TDD
è meno di un problema ancora a
problema yep come esagerato smettere
immediatamente giusto così lavorando per a
società che non ti lascia scrivere test
non è insolito ha funzionato sì non lo è
insolito ho avuto un numero di persone dire
che in realtà su Twitter non è permesso
scrivere test non l’ho messo giù
perché pensavo che fosse oltraggioso
e scioccante destra va bene così facciamo cerchiamo di
andare avanti prima che questo sia troppo coinvolto
giusto formato Oh Dio e sto usando Excel
e sto usando Windows ed è tutto
abbastanza nuovo per me un sacco di persone che dicono
codici monouso tali script
prototipazione one-off e poi più o
meno tutte quelle stesse persone in seguito
dicendo che vorrei davvero che avessi scritto dei test
per quella roba perché è finita
produzione ad un certo punto il codice è
potrebbero iniziare così, ma
quasi sicuramente non finisce qui
modo e il codice potrebbe essere semplice per te
ma il test non è necessariamente per te
il test potrebbe essere per il futuro manutentore
x ‘codice UI sì, è difficile è
sicuramente difficile da testare il codice UI unità non
abbastanza impegno nel tempo contro valore I’m the
solo manutentore quindi non ho bisogno di scrivere
test perché capisco il mio codice e
potrebbe essere vero per te fortuna ma io
Ho un ricordo di un pesce rosso che non ho
idea quello che il mio codice fa cinque secondi
più tardi e ho avuto altre due cose che io
volevo davvero mettere qui uno era e
Non scrivo test quando voglio farlo
cose nel modo più duro
Io sono masochista e poi l’altro
uno era che non scrivo test quando voglio
per infliggere dolore ai miei colleghi
okay e in effetti lasciami solo
disattivare rapidamente il mio Wi-Fi prima di qualcuno
tweets me qualcosa di inappropriato, giusto
non è mai successo a me
prima e ora sono bloccato perché sono dentro
la modalità sbagliata mi dispiace tanto per questo
Sono un presentatore professionista totale questo
è quello che faccio tutto il tempo
sì aspetta così non scriviamo test
perché non abbiamo abbastanza tempo
perché è difficile perché se abbiamo ragione
in secondi le cose sono difficili, quindi è così
difficile da scrivere test e la cosa divertente
sul fatto che fare dei test è difficile
come sviluppatori non abbiamo davvero un
problema con problemi difficili in realtà
come problemi difficili
se qualcuno dice se arriva un’azienda
noi e dice che ho questo problema
davvero difficile da fare si va si porti
su e poi se uno dice faresti
voglio testare questo sistema legacy come no
è davvero un po ‘difficile, quindi abbiamo questo
una specie di mentalità strana nei confronti del test
cosa cosa un test per test automatizzati o
anche test manuali cos’è che noi
pensiamo che stiamo facendo quando stiamo testando
roba bene che è evidente a destra siamo
controllando che il codice funzioni
questo è ciò che il test è per ma penso
questa è una delle cose che ci guida
in questa trappola di non scrivere test
perché sappiamo che il codice funziona, abbiamo scritto
il codice è perfetto o lo siamo
sta per scrivere il codice per farlo
pilotato da test in modo da scrivere il codice che controlla
il nostro codice funziona sembra un po ‘a
perdere tempo ci si sente spesso come a
duplicazione degli sforzi perché abbiamo
scritto il codice in modo da scrivere un test che
dimostra i codici oh abbiamo già fatto
che funzioni naturalmente è perfetto e
ma c’è un numero di cose che
i test sono effettivamente buoni per altri
controllando che il codice funzioni così
ovviamente c’è la cosa di qualità ma
non è solo un caso di esserne sicuri
i tuoi test funzionano proprio ora
è ovviamente test di regressione e
eseguendoli nel tempo, assicurandoti che
il tuo codice continua a funzionare nel
manutenibilità futura quindi non è solo
di controllare che una volta che ho scritto il mio
il codice funziona funziona per darmi il
sicurezza di fare cose come noi factoring così
Sì, quindi posso refactoring in sicurezza e sapere
che tutto funziona ancora il design
se stai facendo test in anticipo
test-driven sviluppo guidato da test
progettazione che scrive il test prima possibile
influenzare il design del tuo cappotto e
dovrebbe influenzare il design del tuo cappotto
ti permette di iniettare dipendenze esso
ti permette di rendere più facile testare a
molti di questi codici brownfield e legacy
sono difficili da testare perché loro
non sono stati scritti in prova prima così da
scrivere test se è il primo o
secondo, puoi influenzare il design di
il tuo software e l’affidabilità non lo sono
non comune per i test forse non così tanto
test unitari ma test di integrazione o
test di accettazione a volte fallire
e non in una specie di non in a
modo prevedibile , quindi a volte è a
segno di un test traballante ma a volte lo è
un segno di qualcosa di più profondo nel tuo
sistema in termini di affidabilità che può
punta a cose come le condizioni di gara
posso indicare che non conosco le dipendenze
su cose esterne che potrebbero non essere
super affidabile, quindi anche i test ti danno
un’idea dell’affidabilità del tuo
test e non lo sai sempre
se è l’affidabilità del tuo
test o l’affidabilità del tuo sistema
ma se hai questo come parametro da tenere
in mente e prendere sul serio questo è possibile
immergiti e scopri se è il tuo
il sistema è il problema con il tuo
tester abbiamo avuto uno strumento in Lmax
così ho usato per lavorare a microfoni L come Martin
Anche Thompson e noi facevamo molto
di questo materiale di prova abbastanza giusto e noi
ha avuto questi grandi test di accettazione che
prova tutto end-to-end e alcuni di
questi test fallirebbero perché il
la funzionalità è rotta o forse no
implementato ancora e alcuni di questi test
sarebbe solo a intermittenza fallire così il mio lavoro
all’inizio non ho firmato il mio lavoro
questo per me stesso, perché io sono un enorme LY
OCD e vedere il rosso sulla lavagna mi ha guidato
pazzo e quello che facevo nel
le mattine vorrei controllare per vedere quale
i test stavano davvero fallendo e quali
i test stavano fallendo a intermittenza
così qualcun altro ha deciso che era uno spreco
del mio tempo mi ha tolto metà del mio lavoro e
automatizzato questo e creato uno strumento chiamato
Trish automatico
che è bello e che usano ancora
ora e li ho lasciati come tre anni fa
e questo ti darà un’indicazione
l’affidabilità del sistema e
nel tempo perché hanno visibilità
hanno superato questi test intermittenti
potuto ottenere e affidabilità dal
i loro test e dal sistema che ha
in realtà ha permesso loro di vedere dove ci sono
sono problemi che possono risolvere non solo
non solo la correttezza di una coppia
di linee di affidabilità del codice nel complesso
la documentazione di sistema ora per me è tutto
più di una persona visiva quindi anche se io
in grado di leggere il codice e il tipo di capirlo
Potrei farlo per 15 anni che dovrei
per essere in grado di capirlo
Preferisco di gran lunga le prove per documentare cosa
Le cose dovrebbero fare le cose che posso
leggere un metodo e capire cosa
pensa che stia facendo quello che mi piace
test è che dovrebbero documentare ciò che voi
pensa che il sistema dovrebbe fare il comportamento
dovrebbe avere così se inserisco questo tipo
del documento in MongoDB dovrebbe fallire
con queste condizioni o non dovrebbe
fallire in queste circostanze così tu
posso documentare meglio con cui penso
test che con commenti o con
il codice anche con codice ben scritto
e infine questa è una specie di strano
in MongoDB ciò a cui stavo lavorando è un
Libreria Java che la tua applicazione JVM
può usare per parlare con MongoDB e quindi noi
non ho un’interfaccia utente nostra interfaccia utente se
ti piace è la nostra API così abbiamo effettivamente trovato
che scrivendo prove che esercitano il
API abbiamo un’idea di come sia utile
L’API è per gli sviluppatori Java quindi c’è un
diverso tipo di usabilità per fare clic
questo bottone qui e mettendoli
immagini in questa parte dello schermo ma è così
ti permette di avere un’idea per il
usabilità del tuo codice l’usabilità di
il tuo sistema da un punto di sviluppo di
vista e forse anche se stai facendo un
Anche l’interfaccia utente è in fase di test, ma non è un problema
area da guardare per un po ‘di tempo
come possiamo cambiare il culo come possiamo
passare da questo test è per assicurarsi
è l’ atteggiamento corretto e i miei codici
perfetto – il test ha una nascita è un
cittadino di prima classe appartiene come un vero e proprio
parte molto importante di ciò che facciamo
sviluppatori o cosa facciamo come una squadra e
quello che il nostro sistema dovrebbe fare è così
anche su documentazione e usabilità
e tutte queste altre cose Così come posso
fai mic come posso forzare i miei colleghi di lavoro
a vedere le cose allo stesso modo che faccio e
capisco davvero che il test è un
Cittadino di prima classe e in effetti lo è
non importa se altri
gli sviluppatori hanno esattamente nella loro mente
la stessa cosa che ho nella mia mente
ciò che conta per me è che si comportano
il modo in cui voglio che si comportino
Voglio che i miei colleghi di lavoro stiano scrivendo dei test
Voglio che stiano scrivendo dei test che
sono comprensibili sono buoni
test di documentazione che soddisfano tutti
quei criteri che avevamo su quello che il nostro
prova bene così non necessariamente
devono cambiare le menti delle persone in modo che
credi cose come religiosamente come me
fare o qualsiasi altra cosa devo farlo
facile per loro comportarsi in un modo che noi
ottenere valore dai nostri test credo di aver avuto
Troppo caffè stamattina sto parlando
troppo veloce
giusto così come possiamo cambiare il comportamento e
questo è uno stadio veramente instabile di
così ho intenzione di cadere e uccidere
me stesso in un minuto come possiamo cambiare
comportamento così per noi è stato utile
avere un campione che era gentile da parte mia
essendo il tipo di test OCD, non lo sono
andando a camminare perché è troppo
sveltina e così si avere un campione che
può essere la persona a cui importa davvero
la qualità dei test è un buon modo
per guidare la qualità generale per il tutto
squadra quindi per esempio uno dei miei primi lavori
se ti piace mi è stato assegnato
me stesso era quello che non mi piaceva quando io
il primo arrivato in squadra è quello su Jenkins
la costruzione fallirebbe molto spesso e noi
non sapevo davvero se lo fosse
perché abbiamo avuto un build durante la notte del
server che forse non ne ha forse fatto un po ‘
i contratti avevano cambiato alcuni comportamenti
cambiato o se i test erano frastagliati
o se il codice era cattivo e così
perché non sapevamo perché erano le cose
in mancanza noi li ignoravamo spesso, quindi leggi
le build erano come oh sì, è giusto
di nuovo così mi sento un po ‘fastidioso
Penso che non mi piaccia quella parola fastidiosa
è una parola molto femminile che faccio molto
guidare le persone nella direzione che voglio
loro di andare a casa così mi piacerebbe ottenere
sulla andare avanti per le chat o andare avanti per e-mail
e dire guarda la build è riletto
si presenta come qualcosa di questo Pleasants
impegnarsi in modo da rompere e si può andare su di esso
e aggiustarlo una delle cose che non ho fatto
è che non mi sono seduto lì e fisso
le build rotti di tutti perché è così
non il lavoro del campione il lavoro di
il campione è delegare ad altri
le persone e dicono guarda che dovresti preoccuparti
su queste cose quindi assicurandoti
prendemmo sul serio le bollette rosse
che abbiamo avuto cose come l’analisi statica
di nuovo gli strumenti credo che sia forse perché
Sono un po ‘OCD ma volevo che le persone lo facessero
prendere consistenza e stile molto
sul serio, quindi abbiamo avuto lo stile ceco e bene
bug e abbiamo risolto questi errori tra
noi li distribuiamo tra il tutto
squadra e poi ci siamo assicurati di averlo
zero stile ceco e ritrovamento di Feinberg
bug
errori in corso che fallirebbero il
costruisci se ci fossero degli errori cos’altro
oh sì e abbiamo fatto il codice di te così io
abbastanza come la programmazione di coppia che è
cosa abbiamo fatto a L max ma eravamo a
squadra distribuita, quindi dovevamo farlo
il codice di voi cosa più essere
della differenza di fuso orario rispetto al
distanza perché puoi farlo
in modo asincrono per la codifica delle persone
imparato molto velocemente che il primo
domanda che stavo per chiedere quando ero
rivedere il codice di qualcun altro è dove
sono i tuoi test e alcune persone dicono di me
ho un test intendo sì ma tu hai scritto
200 linee di codice e hai un test
probabilmente dovresti averne almeno due
cento righe di codice vale la pena di test e
Non voglio solo test di percorso felici
forse i test sono molto facili da scrivere
quando hai scritto il codice prima e poi
scrivi il test per verificare il codice
fa quello che pensavi che fosse dovuto
si fa ma ciò che si dovrebbe pensare è
okay, e se qualcuno lo chiama?
con qualcosa di strano che succede se
qualcuno mette un punto qui dentro cosa
succede se il server ritorna con un
errore o, naturalmente, il server può facilmente
tornare con niente perché la rete
la connessione potrebbe cadere così per ogni felice
prova di percorso mi aspetto che non lo sappia
tre quattro mezza dozzina di cammino infelice
test così stavo spingendo su quella roba così
mentre continuavo a spingere le persone in
direzione volevo che entrassero e
fare queste cose diventa un’abitudine
quindi mantenere Jenkins Green è qualcosa
che tutti facciamo in modo che i controlli
tessere passa è qualcosa che tutti noi facciamo
e assicurandoci di effettuare dei test
la revisione del codice è qualcosa che abbiamo appena
prendere l’ abitudine di fare questa roba
quindi non devo più tormentarmi e il
tutta la squadra lo fa solo perché lo fa
viene di routine diventa abitudine ora
questo può solo farti arrivare così lontano perché
soprattutto se stai cercando di cambiare
comportamento e non necessariamente
il buy-in di tutti nel pensare la stessa cosa
come te non puoi necessariamente ottenere
tutti a fare tutto il modo in cui
li vuoi soprattutto se sei il tuo io
trovato difficile articolare alcuni di
le cose che volevo da persone o e
perché volevo che i test fossero un particolare
modo non li voglio solo in qualche modo
scrivere test in un modo particolare come mi piace
abitudine, a memoria e senza pensare
che voglio loro di capire questo
roba e se non hanno se non ho
articolato molto bene
quindi non hanno intenzione di comprarlo così
avevamo ancora un mucchio di altri
problemi quindi non sono sicuro che tu possa leggere
che questo è dove avvistiamo le diapositive
che ho scritto su un pezzo di carta questo
mattina
Ho sentito dire che abbiamo avuto una serie di altri
problemi quindi abbiamo una matrice complicata
di capacità ciò che significa è questo
Abbiamo il nostro file jar può essere utilizzato da
chiunque è una libreria scaricabile così
ha bisogno di essere testato contro Java 6 Java 7
Java 8 dobbiamo essere in grado di correre contro
tutte le versioni più recenti del
server in modo che le versioni del server puntino a
diverso 42.6 3.0 quindi abbiamo già
avere una matrice comunicativa di cose su
in cima a questo abbiamo alcuni test che funzionano
contro la replica impostare alcuni test eseguiti
contro singoli server alcuni test che
corri nell’ambiente in modo uniforme così le cose
diventa un po ‘complicato che abbiamo ancora
questa tendenza a scrivere solo percorso felice
test di tipo non è solo non è
nella nostra natura per cercare di rompere il
sistema siamo sviluppatori che desideriamo
per assicurarsi che faccia ciò che abbiamo detto
andando a fare penso che questo è aggravato
dal fatto che il nostro team non ha avuto
qualsiasi persona del tipo QA o tester solo noi
ho sviluppatori e penso alle persone del QA
sono davvero brillanti nell’aiutare la guida
tu in questa mentalità di come posso rompere
ciò che potrebbe andare storto e gli sviluppatori
non sono così bravo in quello che non avevamo
qualsiasi test unitario che pensavo fosse un I
pensavo fosse un odore perché mi sento
come con unit test si possono eseguire
molto più veloce e puoi essere veloce
feedback e non tutto dovrebbe
richiede di avere il database su e
di conseguenza, perché avevamo un
molti lotti di test di integrazione funzionale
di test ha avuto un sacco di setup da ottenere
tutto nello stato giusto prima di noi
potremmo batterlo con qualunque valore noi
volevamo essere di nuovo segno della stessa cosa
problema di testare troppe cose così una volta
abbiamo fatto tutto quel complicato setup
siamo come se non lo faremo semplicemente
affermazione perché hai appena trascorso anni
configurando il server nello stato noi
voglio così affermeremo questo
asserisci questo prova questo fa l’altro e
è un po ‘certo quando sei
usando j-unit che non è molto buono
modello per seguire il test orribile strano
i nomi testano le stringhe di base con due stringhe
la prova mentale non fallisce bene, ecco
simpatico
difficile vedere cosa è sotto test quindi
perché abbiamo questo lungo set up perché
abbiamo complicato test funzionali voi
in realtà non si sa quando si sta guardando
una serie di 30 linee di codice di prova che bit
è un po
test e quale bit è la roba che
porta il server nello stato
potrebbe averne bisogno in conseguenza del loro
i test sono difficili da leggere e noi abbiamo
molti altri test simili e così
è una specie di buona pratica brevettata in
j-unit dove hai un test che
prova come input uno due tre altro
test che verifica l’input ABC e un altro
testare quali test input e null
dovrebbero essere test separati perché se
qualcosa va storto dovrebbero fallire
separatamente ma questo era un po ‘
ingombrare molto del nostro codice di test
base quindi per sistemare molti di questi
problemi e affrontare questi problemi noi
necessità di rendere il più semplice possibile per
gli sviluppatori di fare la cosa giusta così io
ho studiato un sacco di soluzioni che sono
non entrerò davvero nei dettagli
di questo perché le diapositive sono disponibili
online e puoi cercare tutti
queste cose, ma il punto di questa diapositiva
è davvero per mostrare che ne ho sentito parlare
Spock come una possibile soluzione per i test
problemi, ma non è stato il primo che ho
saltato addosso non è come se fossi al nostro posto
cutscene groovy che suona stupendo
non so groovy mi piacerebbe aggiungerlo a
il mio curriculum e quello non è passato per il mio
capo sono andato a un gruppo di questi altri
cose ma i miei ex colleghi che Lmax
Stavo giocando con Spock, quindi ho imparato
un po ‘di spock e ho deciso di farlo io
dare un’occhiata a ciò che Spock potrebbe fare
noi per risolvere alcuni dei nostri problemi rimanenti
ora normalmente non guarderei necessariamente
per una soluzione tecnica a un tipo di
processo problema perché poi tu
probabilmente finirà con due diversi
problemi soprattutto perché Spock è un
biblioteca scritta in groovy e tu hai
per scrivere i tuoi test in Groovy siamo a
I driver Java erano un po ‘di Java
sviluppatori da cui saremo abituati
Persone Java non sembra fare un
molto senso per portare su una JVM diversa
lingua per testare il nostro codice così ho voluto
stai molto attento per essere sicuro
Spock ha effettivamente risolto i problemi
stavamo avendo prima di fare il salto
ad un linguaggio JVM nuovo solo per
test in modo da dare una rapida occhiata a a
semplice test a caso c’è qualcuno qui
usando Spock Oh un bel po ‘di voi
bene
così voi ragazzi potete come sonnecchiare per il prossimo
dieci minuti va bene e chi sta usando
groovy in generale o ha consapevolezza di
groovy alcuni di voi e chi ben come
persone Java di altre persone o no
davvero a cuore la tecnologia Java
le persone sono a posto con te, va bene, e
al resto di voi non interessa
la tecnologia puoi anche posticipare
bene e quindi ho intenzione di passare attraverso a
un po ‘ di quello che sembra Spock
Mi piace perché quello che voglio fare è dire
il tipo di processo che ho passato in
valutando questo per aggiustare il nostro particolare
problemi nei test, quindi posso volere
per indicarlo ma sono un po ‘corto
c’è una serie di cose che accadono
io quando guardo questo è molto
semplice spot test, ma è un vero e proprio uno
che vive nel driver Java MongoDB
base di codice in primo luogo il metodo di prova è a
stringa il nome del metodo è una stringa e
in realtà per i test che è davvero bello
perché non devi che le persone si fermino
impazzendo per la scrittura del metodo lungo
nomi che possono effettivamente scrivere qualcosa
più descrittivo in là con roba
altro che solo lettere minuscole che puoi usare
caso cammello e qualunque cosa tu voglia e
quindi ti libera da questo test
fondamentale per la mentalità e la cosa che
mi ha davvero attratto da Spock
invece di avere un’annotazione come
prova a dire che questo è un metodo di prova tu
utilizzare una serie di etichette in questo caso
dato quando e poi ce ne sono altri
ma dato uno e poi il mio preferito
quelli in modo da farti entrare nello stile BDD
testare la mentalità ti costringe a dividere
il tuo test su questo è il set up
questa è la roba che è in realtà sotto
prova e queste sono le mie asserzioni e così via
dopo averlo diviso in questi tre
sezioni puoi iniziare a vedere gli odori
nel tuo test in modo da poter vedere oh ho
come 25 linee di installazione per una linea di
prova il minimo che potrei fare è estrarre
fuori in qualcosa di utile o
forse il mio test sta facendo troppe cose
cose o come abbastanza spesso capita a noi
specialmente quando traducevamo vecchi
prova in nuovi test quando arriviamo
capire cosa va sotto il bit quando
quindi non stiamo sicuramente testando il
cose giuste perché dovresti essere
pensando qual è la cosa che sono davvero
provando a
prova qui quando ciò che accade dovrebbe cosa
succede così sì e poi sotto il tuo
affermazioni ovviamente puoi dirlo
se hai troppe affermazioni
e potresti capire cosa è reale
asserzione ea volte sai quando
spargerai asserzioni e il set up
solo per assicurarmi che Mike abbia ragione
e potresti dire che lo sei
facendo questo se tu se segui questo
modello cos’altro sono una persona Java
e un sacco di persone si lamentano sempre di
Java boilerplate e quanto sia doloroso
e io ero uguale a qualsiasi cosa non facessi
cura perché come io sono una persona Java
ignora tutto il boilerplate fino a che io
è venuto a guardare il modo in cui sono fatte le mappe
in groovy e io ero come oh chiave
coppie di valori che sono belle
e devo fare un’appunta con due
i parametri sono un po ‘ più belli
quando è disposto come una coppia di valori chiave
MongoDB è un negozio di documenti e
i documenti sembrano JSON così tanti
quello che abbiamo fatto è stato creare queste mappe
oggetti da trasformare in JSON per andare
in MongoDB ed è brutto è
doloroso ma con il test noioso
trovato che la sintassi della mappa era molto di più
descrittivo ed è stato più chiaro per noi anche
come persone Java era più chiaro per noi
quali documenti stavamo creando e
cosa stavamo facendo con loro cos’altro
e tutte le affermazioni che puoi dire sono uguali
eguaglia equivale invece di asserire uguale
o asserire ciò o affermare falso così di nuovo
è un po ‘ più leggibile
quindi anche se hai fatto l’ unità J per
Non conosco sette otto anni come me
sono stato in realtà ho trovato questo un po ‘
un po ‘più facile da leggere rispetto ai test di unità J così
come fanno questi test di Spock a risolvere il problema
problemi particolari che abbiamo avuto bene
torneremo all’esempio che ho appena
ha mostrato uno dei problemi che abbiamo avuto
che erano difficili da leggere e tutti
i membri della squadra generalmente trovati
che i test di Spock erano più facili da leggere
per una serie di motivi uno il dato
quando e poi lo mette davvero nel tuo
cervello come quello che sta succedendo nel test
cosa è veramente sotto test cosa è stato creato
cosa sto cercando di fare davvero e il
anche i nomi dei metodi stringa lo rendono
è più facile dire cosa si suppone
sta succedendo nella tecnologia
così similmente abbiamo avuto questi test orribili
nomi così di nuovo i nomi dei metodi stringa
questo ci ha fatto test molto migliori
nomi e questo è in realtà uno dei
quelli più brevi non l’ho messo davvero
quelli descrittivi lì perché loro
non si sarebbe adattato alla diapositiva in modo che il
il problema era che è difficile
per dire quale cosa è davvero sotto test
e Spock ha un’annotazione chiamata
soggetto che non è obbligatorio ma tu
può metterlo lì come una sorta di
annotazione della documentazione in modo da poter dire
guarda in questo caso che stiamo testando
MapReduce quindi la classe di output MapReduce
è la cosa che è sotto test e il
cosa che succede dopo l’etichetta quando
questa è la cosa che stiamo testando in questo
test specifico quindi è diventato un po ‘più chiaro
quello che stavamo davvero cercando di ottenere
e ancora se stessimo facendo traduzione
dai nostri vecchi test a nuovi test in loco
e non siamo riusciti a capire cosa
soggetto era e ciò che il momento era che
il test ha avuto un valore molto limitato
imposta di nuovo lo stesso test qui se tu
hanno un sacco questo è ancora molto di più
esempio più breve in alcuni degli esempi
avevamo se si dispone di un sacco di messa a punto è
diventa molto ovvio che tu abbia
un sacco di setup perché è tutto in data
e quindi potresti voler riflettere questo
roba fuori o il caso peggiore che si tiene
tutto a posto ma puoi solo
ignoralo perché sai che l’ installazione
e salta direttamente a uno dei miei
testare quali sono le asserzioni che noi
non ha avuto alcun test unitario perché
beffarsi e stroncare è un po ‘complicato
e tipo di noi non volevamo molto
dipendenze del codice di produzione
zero dipendenze che non volevamo avere
un sacco di dipendenze sono nel nostro test
codice su cose come mockito o jmark o
qualunque cosa e così abbiamo trovato beffardo molto
impegnativo quando non hai un
beffardo biblioteca per aiutarvi con
Spock ti prende in giro gratis
ed è un po ‘ super facile, quindi basta
dì in alto che dici solo che sono
andando a deridere questa cosa e lo fa
per te magicamente e poi in fondo
queste sono le asserzioni che hai
i tuoi scherzi quindi questo è il controllo che se io
codificare un array che ottiene
sapete quei metodi particolari sulla
lo scrittore viene chiamato per quello che ero
imparare lo spagnolo dal modo in cui è
crisi una dos tres e quindi qui abbiamo detto
ci aspettiamo uno di questi uno di questi
di questi così diversi da molti altri
quadri di scherno che ho usato io
trovato questo facile indolore e leggibile in modo
Posso vedere cosa mi aspetto in
le asserzioni e le asserzioni sono al
fondo del metodo e diversamente
qualcosa come Jay segna dove sei
per impostare in alto quello che sei
aspettavo che il finto e lo stub facessero
c’è una specie di arretrato nel parlare tutti
il tutto deriderà tutte le asserzioni
sono in fondo dove ti aspetti
per essere noi eravamo terribili nello scrivere
test infelici / codice quindi cosa rende questo
un po ‘più facile anche perché noi
Potrebbe fare andare qui ho intenzione di
cambia i lati e puoi fare dei test che
assicurati che l’eccezione specifica sia
gettato non è un esempio fantastico
in realtà non solo puoi fare un test per
fare in modo che un esempio specifico è
lanciato perché puoi farlo nell’unità j
anche tu puoi ottenere quell’eccezione e
puoi interrogare cose come la causa principale
dell’eccezione o del o del messaggio
o qualsiasi altra cosa così puoi fare molto di più
asserzioni corrette sul tuo sul tuo
casi di fallimento, allora puoi goderti i mock
nell’unità j e in una delle altre cose
mi è piaciuto molto è esplicito su quando
le eccezioni non vengono generate così ci eravamo abituati
avere un sacco di test che avevano no
le asserzioni hanno fatto un sacco di cose e poi
non ho avuto alcuna affermazione e loro
non riuscivo a capire cosa stava testando
e naturalmente quello che sta provando sei tu
non ottenere un’eccezione
e io sono come bene che è un po ‘strano
siamo espliciti a riguardo, quindi eccomi qui
controllando che se faccio questo con loro un
URI non valido Non ottengo un’eccezione
è totalmente valido quindi se ne hai uno
una serie di test che sembrano davvero simili
sorta di test di copia / incolla con un sacco di
input e output leggermente diversi
Spock ha test basati sui dati, quindi posso
inserire come criterio qualcosa per
ordina per e quindi l’ID previsto per
esempio posso inserire ciò che voglio e
che mi permette di eseguire lo stesso tipo di
test
con diversi input e output e
questo è davvero potente specialmente per
qualcosa come un driver di database dove
ciò che facciamo è prendere in input qualcosa da fare
e mettiamo la nostra produzione e molto spesso
voglio inserire diversi tipi di input
allo stesso modo in modo simile quando abbiamo avuto
l’ altro problema che è un test
che mette alla prova tutto ciò che potremmo dividere
che di nuovo in uno di questi dati guidato
test e una delle cose veramente belle
sui test basati sui dati non è così
super chiaro ma se una di quelle menti
è una specie di rosso daltonico verde così
questo non è molto ovvio ma c’è
come un guasto all’arancia a metà strada
e se uno degli input e output
fallisce allora basta avere solo quella
fallimento in arrivo e puoi vedere tutto
gli altri sono gestiti e sono tutti verdi
quindi sai che il fallimento è solo su
quella particolare combinazione di input input
e non è detto qualcosa di sbagliato con
la codifica complessiva una dell’altra
le cose sono davvero fantastiche
asserzioni è davvero utile a
dicendoti cosa c’è di sbagliato in
il tuo codice che bit è quali bit
in mancanza se come qui di nuovo è così
bene bene io non credo, ma è possibile
vedere il valore della collezione il valore di
trova il valore dei criteri così tu
può vedere esattamente cosa ha causato il
problema abbiamo avuto questa matrice complicata
di una specie di versioni se ti piace ee
puoi farlo non è non penso
questa è solo una cosa di Spock che abbiamo appena trovato
è più facile in Spock che puoi ignorare se
quindi per esempio quando stavamo facendo
test su legacy legacy e cose
non abbiamo intenzione di eseguire questo sul 3.0
server perché non supporta questo
non abbiamo intenzione di eseguire questo particolare
cosa su Java 1 6 perché non è così
Lavoriamo e non stiamo andando a correre questo
è una cosa set di repliche perché non lo faccio
sappiate che non funziona con la replica
impostare ma ancora quel tipo di documenti il
aspettative di tali test e
in precedenza avevamo tipo se all’interno del nostro
i nostri metodi di prova e avrebbero solo
tipo di non correre ma non passerebbero
o fallire mentre questi sono letteralmente
sono test ignorati sotto il
circostanze in cui non sono supposti
eseguire in spock 1.0 che non ho usato
eppure c’è anche
richiede un’annotazione così gentile dell’altra
il modo in cui puoi dire richiede Java 8
se per esempio avessimo un po ‘di Java 8
roba specifica, giusto così è un po ‘
chiunque si sia addormentato può svegliarsi
ora così abbiamo tipo di correre con questo per
un bel po ‘ ho fatto una settimana
spike prima di assicurarmi che il mio
le domande hanno avuto risposta, ma ci siamo imbattuti in
per un po ‘e ovviamente quello che vogliamo
fare è continuare a controllare per essere sicuro
che Spock ci sta dando quello che vogliamo
strano i nostri test ci danno più valore di
erano prima che Spock ci fosse
ne vale la pena avere questa lingua diversa
per testare la libreria forse potremmo avere
ho appena imparato a scrivere test migliori quindi
Penso che i Jays parlino dopo questo
fai molto di più su come scrivi bene
test e ho deciso di andare per un
quadro che tipo di costringe a
scrivi nello stile BDD dato quando e
quindi piuttosto che cercare di allenare il
squadra su come scrivere test migliori in
j-unità che è interamente possibile ma non
richiede un po ‘più disciplina, quindi cosa io
trovato è così che volevo Spock in origine
per i test unitari perché è fantastico
beffardo e non avevamo nessuna unità
test e non volevo davvero
complicare le cose dicendo che stiamo andando
di avere test di integrazione a Spock e
Java avremo come il vecchio stile
Java prova nuovi e non troppo male Java
prova nuovi nuovi test di Spock e poi individua
Test di unità J perché ho solo pensato che
stava per essere pazzo, ma quello che è successo
tutti stavano godendo Spock così tanto
e l’ho trovato così leggibile e facile da usare
scrivere test hanno iniziato a scrivere
test funzionali in loro e loro
ha iniziato ad usare Spock come se fosse abbastanza
dovunque potevano perché era
più facile, più veloce e più descrittivo
scrivere test in questo modo quindi il fatto che
il resto della squadra, che non mi ottiene
sbagliato hanno scritto test ma lo erano
non molto entusiasta di scrivere test
stiamo facendo rotolare Spock in giro
tutta la biblioteca significa che nella mia mente
era il suo successo perché le persone lo erano
mi sto godendo i test di scrittura
godendo sì, certo che si stavano divertendo
ma preferivano scrivere test
in questo modo particolare piuttosto che in J
unità e cos’altro oh sì e lo ha dimostrato
stesso per sempre e ancora perché come noi
stavamo scrivendo più test perché lo era
Più facile
è un po ‘ più divertente nessuno sul
squadra era in realtà uno di questi sono e
dobbiamo imparare un nuovo tipo di lingua
cosa così non eravamo super eccitati
di scrivere test groovy solo per il
amore per l’ apprendimento groovy ma è stato gentile
di divertente imparare come usare groovy come
così come parte dei nostri test quindi abbiamo scritto
più test di quanto avremmo scritto
prima e ovviamente abbiamo iniziato a prendere
più fallimenti quindi più fallimenti nel nostro
codice e stavamo spesso correndo contro a
build notturno del server in modo che potessimo
restituire rapidamente al team del server se
qualcosa come un messaggio di errore
cambiato e loro non erano veramente
non hanno pubblicato queste cose
stavano cambiando così abbiamo ottenuto molto meglio a
trovare errori prima che i nostri utenti trovassero
errori che è una buona cosa ma noi
aveva ancora un numero di problemi oh sì, uno
delle altre cose interessanti e io
non so se fosse perché noi
ha iniziato a migliorare nei test o
se fosse solo un’evoluzione di MongoDB
come è diventato più maturo, ma abbiamo iniziato
scrivendo e abbiamo iniziato a scrivere
specifiche per come stavano andando le cose
per interagire con un server ma anche noi
alla fine, appena prima di partire, abbiamo iniziato
scrivere un tipo di tipo di kit di compatibilità
Le descrizioni in stile BDD di esso non lo erano
in realtà test ma descrizioni dei test
correre per assicurarsi che un autista si incontrasse
nuove specifiche dal server così noi
ho questa idea di test come documentazione
iniziando a venire attraverso il tutto
azienda non solo il team di Java, ma tutti
del team di guida e del team di server
così è stato semplicemente fantastico
iniziando a pensare ai test come a
modo molto migliore di descrivere il
comportamento rispetto alla documentazione o al comitato
riunioni o altro, ma avevamo ancora un
un sacco di problemi
ci siamo sempre sì um groovy prestazione è
diverso dalle prestazioni di Java è a
un po ‘più lento per eseguire singoli
test abbiamo scoperto che alcuni dei nostri
i test sensibili alle prestazioni no
corro sempre in groovy e non sempre
correre non ha sempre avuto successo nel loro groovy
scaduto prima di quanto fatto in Java
e non sono sicuro che dovremmo averlo
meglio a scrivere migliori test groovy
ma alla fine abbiamo scritto quei test
Java quelli sensibili alle prestazioni che
li ho scritti in Java perché Java
le prestazioni sono più prevedibili, non lo è
necessariamente Paul è meglio ma è così
non è così perché c’è più previsione
quindi abbiamo mantenuto le nostre prestazioni sensibili
prova in Java ed è stato più facile per noi
per tenerli in Java piuttosto che provare e
capire cosa fare in groovy da fare
cose migliori lingue dinamiche dinamiche
Digitazione dinamica Sono una persona Java che ho trovato
è un po ‘difficile, soprattutto quando si
tipo di miss tipo di nome del metodo o te
non sai di che tipo è qualcosa
perché tu l’hai definito come io no
cura di che tipo si tratta e ottieni solo
l’errore quando si esegue il test piuttosto
rispetto a quando l’ IDE dice che l’ hai fatto
qualcosa di stupido idiota, così è stato
tipo come se è un po ‘frustrante il
il ciclo di feedback su Groovy è un po ‘
più lento e quindi mi piacerebbe abbastanza
come la mia sicurezza tattile
avendo detto che il linguaggio dinamico è
è abbastanza bello per testare abbastanza a
molto del tempo perché soprattutto per
cose come le fate spesso non lo fai davvero
cura di che tipo è che non lo fai davvero
cura ciò che viene chiamato come argomenti te
voglio solo che funzioni fino a quando tu
digli di comportarsi in modo diverso e groovy
è molto molto buono per quello così da ottenere
torna al tipo di tre domande che
erano nel mio astratto come possiamo noi
gli sviluppatori scrivono test non come possiamo
come possiamo scrivere più test come puoi
entusiasti di scrivere test e o
come possiamo incoraggiare la nostra squadra a scrivere
test personalmente sono un grande fan della coppia
programmazione non l’ho fatto da allora
Lmax è triste per quanto riguarda l’ abbinamento
davvero onesto anche quando tu
normalmente non scriverebbe un test quando
il tuo partner non scrive test allora
sei come penso che dovresti scrivere un
prova per questo e poi ti dicono
dovrebbe scrivere il test per questo perché
stiamo accoppiando ok lo farò
quindi l’abbinamento è veramente buono al tipo di
mantenendoti onesto sulla scrittura dei test
ma in mancanza di ciò che dovresti fare
una sorta di recensione di codice o codice
dimostrazioni o presumibilmente dovresti
condividere con il resto della tua squadra
quello che hai raggiunto codice saggio e a
quel punto è un buon momento per chiedere il
domanda dove sono i tuoi test cosa fanno
lo fanno e l’ho trovato con il codice
recensioni trovo difficile leggere il codice
e fallo subito ma se c’è
test lì posso capire che cosa
lo sviluppatore pensava che stessero cercando di fare
con questo codice e quindi posso avere un
guarda attraverso il codice quindi è stato molto
più facile per me dire una sorta di dove sono
i tuoi test e dove sono i fallimenti
Astuccio
è per questi test renderlo semplice come
possibile scrivere test così nel nostro caso
abbiamo scoperto che Spock e Groovy ce l’hanno fatta molto
più facile per noi scrivere test così per
esempio ricreamo molte mappe in
la sintassi groovy map lo rende molto più semplice
ci hanno dato quando e poi la sintassi
ci costringe a pensare a cosa sia
stiamo davvero testando piuttosto che semplicemente
tipo di gettare insieme alcune cose e
assicurandoti che non sia un errore e quindi sì
che l’ha reso molto più semplice per noi
per scrivere i test abbiamo scoperto che ero io
personalmente forse non sono sicuro del
altri ho trovato più divertente scrivere
test in groovy e Spock è stato solo
tipo del suo tipo di più carina e mi piace
Java non fraintendermi e non lo sono
salta la nave al groovy ma mi è piaciuto
ho scritto i test su Spock l’ho pensato
era divertente solo scriverli
in questo modo sì e se capisci
perché stai scrivendo il test che è anche
un motivatore migliore quindi questo tipo di noi
scrivi test per verificare che il tuo codice funzioni
quello che pensavi di fare non è un grande
motivatore perché pensiamo ai nostri codici
bene, l’ abbiamo scritto , probabilmente manualmente
testato e va bene così è molto
poca motivazione per scrivere un test
controlla quello, ma quando pensi al
Infatti lo scopo del test è
qualcosa come l’affidabilità della documentazione
manutenibilità in modo che io possa tornare indietro
e refactoring questa roba più tardi quando io
voglio che tu sia un po ‘più motivato
per scrivere i test come possiamo scrivere
test leggibili astuti tra di voi
potrebbe notare che ho scambiato B e C dal
astratto ma al resto di voi non interessa
quindi va bene il mio OCD sta impazzendo
era come voglio scambiare questi in giro, ma
Ho detto che sarebbe stato diverso in
l’astratto così scrivendo test mutabili
per noi abbiamo trovato quel posto da groovy
ha reso il nostro test più scrivibile perché
destra molto più leggibile perché
porta via un sacco di testo standard di
java a cui in precedenza ho curato Hentry
riguardo ma non riguarda solo te
devo usare una nuova lingua per questo
c’è una biblioteca chiamata Gwen che era
creato da e dai ragazzi di Shazam e
questo è quello che ti permette di fare dato
quando e poi dentro un test di unità J così
è bello che posso costringerti a farlo
per creare questi test più leggibili e
puoi piangere
e l’ESL, quindi avevamo un dsl a Lmax
un DSL basato su java e lo abbiamo usato per
i nostri test di accettazione quindi la nostra accettazione
i test avrebbero letto qualcosa come utente
accedi con questo nome utente e password
e la DSL ti direbbe quello che puoi
fare con varie cose come ovviamente io
posso piazzare gli ordini che posso non so guardare
la mia cronologia degli ordini e l’abbiamo fatto con
un DSL e questo può solo migliorare le cose
leggibile e separando ciò che è sotto
prova quali sono le aspettative che cosa impostare
il backup di tutti che appena rende le cose più
leggibile e c’è più di un modo
di fare questo e penso di esserlo
sperando che la ghiandaia coprirà a
mazzo di questo e il suo discorso in seguito come
Beh, un test così leggibile è una cosa
posso scrivere un test leggibile che sia un po ‘
inutile posso scrivere un test leggibile per
un ghetto se vuoi non lo farò
approfondire perché testare i getter è stupido
e quindi ciò che vogliamo veramente è significativo
prova le prove ma dice alla gente che cos’è
comportamento che il loro sistema dovrebbe essere
e anche fallire per le giuste ragioni e
passare per le giuste ragioni e questo è
tipo di cosa difficile perché questo
richiederà il pensiero quale è
difficile trovo il dato quando e poi
la struttura è un ottimo modo per fare
test più significativi voglio dire che ci sono
ci sono anche altre cose quando noi
il test guidato dai dati non lo era
appena dato uno e poi ma questo tipo di
ti costringe a pensare a ciò che è
in realtà sotto test cosa sono veramente
cercando di raggiungere e quanta impostazione fare
Devo fare per farlo è questo
tipo di mentale forse dovrei girare questo
in un test unitario in modo da poter prendere in giro o
mozzare vari comportamenti quindi sì di nuovo
una biblioteca come Gwen che è l’altra
data una cosa poi o un DSL potrebbe anche
aiuta a scrivere test più significativi
la revisione del codice è davvero molto buona
posto per capire se i test significano
qualsiasi cosa o no perché quando qualcuno
non capisco davvero cosa
stai cercando di ottenere con questo test
allora probabilmente non hai scritto un
test significativo e leggibile sì
quindi di nuovo e comprendendo la comprensione
il ragionamento del perché scriviamo test è
un buon modo per motivarci a scrivere
test significativi quindi non solo per verificare
che il nostro codice funziona e lì
è perché ovviamente lo fa ma a
permettici di rifattarci più tardi per consentirci
non essere infastidito dai nuovi membri quando
si uniscono al team perché possiamo indicare
loro alla prova e loro possono capire
il comportamento per documentare così il sistema
uno dei miei lavori era andare su Stack
Overflow e rispondere a domande su come
usare il driver Java e il mio ideale era
essere in grado di dire loro qui è un test
per le case – come inserire in MongoDB
e tutte le cose che vuoi sapere
è in quella prova , togliendo il fardello
io come persona di sostegno in conclusione
voglio renderlo il più semplice possibile
scrivi test significativi e leggibili che vuoi
per automatizzare tutto ciò che non ho nemmeno
menzionato nell’esecuzione di questi test in CI
perché se non stai facendo test unitari
e la tua continua integrazione
ambiente bene stavo per dire
stai sbagliando ma hai un
vincita davvero veloce proprio qui, okay
dovrebbero essere in esecuzione questi test ogni
una volta sola si effettua il check-in e si dovrebbe
essere in esecuzione, se avete intenzione di fare ramo
sviluppo tipo si dovrebbe essere in esecuzione
li sui rami – così ce l’abbiamo fatta
Jenkins e abbiamo avuto cose su Travis così
che quando le persone hanno presentato richieste di pull
Travis ha detto che tutto è rotto possiamo
dì semplicemente no , non accetteremo
la tua richiesta pull in modo simile allo zero
tolleranza per i fallimenti quando le cose vanno
non capisco subito
accettabile per dire oh sto lavorando a
nuova funzionalità non riesco a risolvere la cosa io
rotto l’ultimo elemento perché tu
non ho ancora finito l’ultima funzione
fino a quando tutto diventa verde, quindi lascia perdere
tutto e lavorare su quei fallimenti
perché stai bloccando tutti gli altri no
uno dovrebbe essere impegnato a Jenkins se
è rosso perché poi non sai se
si sta solo aggravando il problema con
più errori in seguito aiuta ad avere un
campione non deve essere un tester
o un BA o può essere solo uno sviluppatore
chi è come OCD come me o può essere solo
qualcuno che pensa che potremmo essere
fare meglio e non deve essere un
persona anziana Non sono il caposquadra
questo sono solo io sono solo un altro sviluppatore
chi vuole solo che le cose vadano meglio così
avere un campione e preferibilmente ovviamente
dare loro il permesso di tormentare la gente e
dì loro che questa non è la testa, no
accettabile e dovremmo fare le cose
in questo modo una delle cose che ho dovuto
impara come lo era il campione OCD
alcune cose che non si sta per
sono davvero alcune cose che la squadra è
non andando a comprare e va bene
basta lasciarlo andare sarò canto che
tutto il giorno adesso um, lascialo andare
volevo che un posto fosse solo per unità
test e il team ha usato un po ‘di funzionalità
test di integrazione va bene così
bene, stanno scrivendo test così lascia andare
il tuo ID amore Spock è per i test unitari I
davvero ci voluto scrivere accettazione
prova il test end-to-end che esercita il
API e descrivere ai nostri utenti il
comportamento del sistema e noi mai
ho davvero ottenuto il massimo perché non l’ho mai fatto
potrebbe articolare esattamente quello che volevo
da quelle prove quindi so come lasciare
che vanno le pairing e le recensioni del codice
un po ‘di vitale non lasciare solo vecchi
la persona controlla solo il vecchio codice e
dì sì, funziona perché l’ ho provato
manualmente hai bisogno di quel tipo di sanità mentale
controlla per assicurarti di saperlo
mantenere le persone oneste con i test di scrittura
e scrivere prove di percorso infelici e felici
e tu sai e pensi al
scopi di test quindi ne ho nominati alcuni
delle cose che trovo utili
test di qualità di affidabilità
manutenibilità e quelli sono solo il
quelli a cui ho pensato sull’aereo
il modo in cui c’è probabilmente è come
35.000 diversi motivi per testare e per
il tuo team potrebbe essere diverso da cosa
loro sono della mia squadra
ma ci vogliono solo cinque minuti per sedersi
giù e pensa a quale valore possiamo uscire
di test diversi dal codice fa cosa
dovrebbe farlo, ne ho un po ‘
risorse non non per questo test ma se
non sei più per questo discorso, ma se
sei interessato a Spock e Groovy
e Java per testare e ho
un altro discorso su questo, ma anche link
per qualche informazione in più su Spock e
alcuni post del blog e cose del genere così
sì, se questo ti interessa, questo è tutto
lì le diapositive saranno disponibili
in linea quindi se non si ottiene la possibilità di
foto che poi dura e si
quindi non abbiamo tempo per le domande mi dispiace
ma sto attraversando il lato opposto del
strada attraverso la cosa laggiù verso il
sinistra
c’è un è stato chiamato il power lounge
e io sarò lì per un incontro e
saluta con Pearson così puoi venire
e chatta con me chiedimi domande
sarà nello stand JetBrains che
è appena uscito per il resto del
giorno quindi vieni e prendimi se ne hai
domande di qualunque tipo grazie mille
parla di come i test ti faranno
felice forse non non sono sicuro ma quello è
lo scopo che ho avuto un piccolo panico minuscolo questo
mattina quando ho capito che ho lasciato il mio cavo
al gruppo di utenti che ho parlato alla fine
notte e il mio portatile era completamente fuori
di batteria, quindi giocheremo a spot
le diapositive che Trish non ha avuto
possibilità di recuperare correttamente ieri
cosa potrebbe andare storto, giusto?
abbastanza su di me
voi ragazzi alzi la mano se sei uno sviluppatore
la maggior parte di voi alzi la mano se lo fai
identificare come più di un tester va bene
freddo
e non so che probabilmente ce ne fossero alcuni
sovrapposizione tra quelle due persone che è in
fantastico
così um ho intenzione di raccontare una storia su
come lavoro per i jetbrain che realizziamo
IntelliJ che sta usando IntelliJ o
Riposizionare un pezzo di te bene il resto
di te dovresti assolutamente farlo
prendi un volantino qui e vai avanti
subito ma questo non è un discorso
sui jetbrain o su IntelliJ o
sugli strumenti, questo è un discorso su e
quando ho lavorato in MongoDB che è il mio
ultimo lavoro come abbiamo cambiato il nostro approccio a
testare per MongoDB, quindi questo è un
user nuova tecnologia e tutto il tuo
i problemi saranno risolti parlare ora non lo è
meno male che non è uno di quelli
vado a toccare una tecnologia che sono
andando a parlare di una tecnologia che
ci ha aiutato ma ho intenzione di parlare di più
sul perché questa particolare tecnologia
risolto i nostri problemi particolari in giro
testare quindi voglio davvero parlare a
un po ‘di più sul perché noi come
gli sviluppatori non sono sempre fantastici
a scrivere test e guardare dentro
alcune delle ragioni per questo e come
puoi forse attaccare alcuni di quelli
problemi che è la teoria comunque in modo
diamo un’occhiata al motivo per cui non scriviamo
test ho intenzione di provare un po ‘di pubblico
la partecipazione potrebbe andare orribilmente
sbagliato quindi mi scuso ok andiamo
Sapevo che questa è una cattiva idea, ok, è così bello
questo è come una cosa tipo show quiz
quindi mi chiami una ragione per cui non lo fai
scrivi prove quando dovresti fare troppo duro
di istituire
hey hai letto che non è troppo difficile
impostare
va bene, facciamolo, oh cosa c’è
succedendo sapevo che non sarebbe successo
lavoro ho messo i miei vestiti qui e
tutto ciò che ho dovuto scrivere script VB
ieri è stato rivoltante
tutto il formato giusto facciamo la vecchia scuola
modo è probabilmente perchè il mio laptop ha esaurito
di batteria ieri giusto sì troppo duro
per impostare ben fatto sì sì buono
beh, in realtà ho intenzione di metterlo
troppo difficile da configurare perché il codice legacy
in genere non è progettato per essere bene
testato quindi devi mettere in atto
quadro sì
giusti i test diventano irrilevanti come il
le modifiche al codice sono buone e io
non avere quello sì
Va bene , non pensi che i test siano
molto prezioso che ho da qualche parte
non leggerlo bene, lo metto io
chiameremo il nostro sforzo rispetto al valore
e giusto questo è sì ho completamente fatto
questa chiacchiera di volte prima che tu possa
vedo totalmente questo lavoro, sì da qualche parte
qui qualcuno ha alzato la mano sì
difficile lavorare con le dipendenze okay
Ne ho uno anche io, oh, basta
leggendo tutti troppo duramente per deridere o
si sa per pugnalare o qualsiasi altra cosa sì sì
in realtà ho pensato che sarebbe stato il
la cosa numero uno che la gente ha detto di sapere
stai leggendo tutto questo per Spry e
otterrai le risposte giuste che otterremo
attraverso di esso più veloce e così sì numero
una ragione è che normalmente non ho tempo
scrivere test e poi ovviamente
arriva e ti morde nel culo più tardi
quando non hai tempo per il refactoring
entrambi e il tuo codice è un bel casino giusto
giusto lo classificherò anch’io
difficile da configurare e troppo difficile da deridere ma
sì hai ragione intendo codice legacy o
codice che è tipo di sì
l’evoluzione è difficile per i tester
supposto scrivere test va bene, questo è un
buon punto non ho quello sì
giusto così la persona che scrive il codice
non dovrebbe scrivere i test perché
sai come appare il codice
scriverete anche i test così
loro passano il tuo codice sì, assolutamente no
immagino che molte persone che
ha risposto a questo modulo oa persone di tipo TDD
è meno di un problema ancora a
problema yep come esagerato smettere
immediatamente giusto così lavorando per a
società che non ti lascia scrivere test
non è insolito ha funzionato sì non lo è
insolito ho avuto un numero di persone dire
che in realtà su Twitter non è permesso
scrivere test non l’ho messo giù
perché pensavo che fosse oltraggioso
e scioccante destra va bene così facciamo cerchiamo di
andare avanti prima che questo sia troppo coinvolto
giusto formato Oh Dio e sto usando Excel
e sto usando Windows ed è tutto
abbastanza nuovo per me un sacco di persone che dicono
codici monouso tali script
prototipazione one-off e poi più o
meno tutte quelle stesse persone in seguito
dicendo che vorrei davvero che avessi scritto dei test
per quella roba perché è finita
produzione ad un certo punto il codice è
potrebbero iniziare così, ma
quasi sicuramente non finisce qui
modo e il codice potrebbe essere semplice per te
ma il test non è necessariamente per te
il test potrebbe essere per il futuro manutentore
x ‘codice UI sì, è difficile è
sicuramente difficile da testare il codice UI unità non
abbastanza impegno nel tempo contro valore I’m the
solo manutentore quindi non ho bisogno di scrivere
test perché capisco il mio codice e
potrebbe essere vero per te fortuna ma io
Ho un ricordo di un pesce rosso che non ho
idea quello che il mio codice fa cinque secondi
più tardi e ho avuto altre due cose che io
volevo davvero mettere qui uno era e
Non scrivo test quando voglio farlo
cose nel modo più duro
Io sono masochista e poi l’altro
uno era che non scrivo test quando voglio
per infliggere dolore ai miei colleghi
okay e in effetti lasciami solo
disattivare rapidamente il mio Wi-Fi prima di qualcuno
tweets me qualcosa di inappropriato, giusto
non è mai successo a me
prima e ora sono bloccato perché sono dentro
la modalità sbagliata mi dispiace tanto per questo
Sono un presentatore professionista totale questo
è quello che faccio tutto il tempo
sì aspetta così non scriviamo test
perché non abbiamo abbastanza tempo
perché è difficile perché se abbiamo ragione
in secondi le cose sono difficili, quindi è così
difficile da scrivere test e la cosa divertente
sul fatto che fare dei test è difficile
come sviluppatori non abbiamo davvero un
problema con problemi difficili in realtà
come problemi difficili
se qualcuno dice se arriva un’azienda
noi e dice che ho questo problema
davvero difficile da fare si va si porti
su e poi se uno dice faresti
voglio testare questo sistema legacy come no
è davvero un po ‘difficile, quindi abbiamo questo
una specie di mentalità strana nei confronti del test
cosa cosa un test per test automatizzati o
anche test manuali cos’è che noi
pensiamo che stiamo facendo quando stiamo testando
roba bene che è evidente a destra siamo
controllando che il codice funzioni
questo è ciò che il test è per ma penso
questa è una delle cose che ci guida
in questa trappola di non scrivere test
perché sappiamo che il codice funziona, abbiamo scritto
il codice è perfetto o lo siamo
sta per scrivere il codice per farlo
pilotato da test in modo da scrivere il codice che controlla
il nostro codice funziona sembra un po ‘a
perdere tempo ci si sente spesso come a
duplicazione degli sforzi perché abbiamo
scritto il codice in modo da scrivere un test che
dimostra i codici oh abbiamo già fatto
che funzioni naturalmente è perfetto e
ma c’è un numero di cose che
i test sono effettivamente buoni per altri
controllando che il codice funzioni così
ovviamente c’è la cosa di qualità ma
non è solo un caso di esserne sicuri
i tuoi test funzionano proprio ora
è ovviamente test di regressione e
eseguendoli nel tempo, assicurandoti che
il tuo codice continua a funzionare nel
manutenibilità futura quindi non è solo
di controllare che una volta che ho scritto il mio
il codice funziona funziona per darmi il
sicurezza di fare cose come noi factoring così
Sì, quindi posso refactoring in sicurezza e sapere
che tutto funziona ancora il design
se stai facendo test in anticipo
test-driven sviluppo guidato da test
progettazione che scrive il test prima possibile
influenzare il design del tuo cappotto e
dovrebbe influenzare il design del tuo cappotto
ti permette di iniettare dipendenze esso
ti permette di rendere più facile testare a
molti di questi codici brownfield e legacy
sono difficili da testare perché loro
non sono stati scritti in prova prima così da
scrivere test se è il primo o
secondo, puoi influenzare il design di
il tuo software e l’affidabilità non lo sono
non comune per i test forse non così tanto
test unitari ma test di integrazione o
test di accettazione a volte fallire
e non in una specie di non in a
modo prevedibile , quindi a volte è a
segno di un test traballante ma a volte lo è
un segno di qualcosa di più profondo nel tuo
sistema in termini di affidabilità che può
punta a cose come le condizioni di gara
posso indicare che non conosco le dipendenze
su cose esterne che potrebbero non essere
super affidabile, quindi anche i test ti danno
un’idea dell’affidabilità del tuo
test e non lo sai sempre
se è l’affidabilità del tuo
test o l’affidabilità del tuo sistema
ma se hai questo come parametro da tenere
in mente e prendere sul serio questo è possibile
immergiti e scopri se è il tuo
il sistema è il problema con il tuo
tester abbiamo avuto uno strumento in Lmax
così ho usato per lavorare a microfoni L come Martin
Anche Thompson e noi facevamo molto
di questo materiale di prova abbastanza giusto e noi
ha avuto questi grandi test di accettazione che
prova tutto end-to-end e alcuni di
questi test fallirebbero perché il
la funzionalità è rotta o forse no
implementato ancora e alcuni di questi test
sarebbe solo a intermittenza fallire così il mio lavoro
all’inizio non ho firmato il mio lavoro
questo per me stesso, perché io sono un enorme LY
OCD e vedere il rosso sulla lavagna mi ha guidato
pazzo e quello che facevo nel
le mattine vorrei controllare per vedere quale
i test stavano davvero fallendo e quali
i test stavano fallendo a intermittenza
così qualcun altro ha deciso che era uno spreco
del mio tempo mi ha tolto metà del mio lavoro e
automatizzato questo e creato uno strumento chiamato
Trish automatico
che è bello e che usano ancora
ora e li ho lasciati come tre anni fa
e questo ti darà un’indicazione
l’affidabilità del sistema e
nel tempo perché hanno visibilità
hanno superato questi test intermittenti
potuto ottenere e affidabilità dal
i loro test e dal sistema che ha
in realtà ha permesso loro di vedere dove ci sono
sono problemi che possono risolvere non solo
non solo la correttezza di una coppia
di linee di affidabilità del codice nel complesso
la documentazione di sistema ora per me è tutto
più di una persona visiva quindi anche se io
in grado di leggere il codice e il tipo di capirlo
Potrei farlo per 15 anni che dovrei
per essere in grado di capirlo
Preferisco di gran lunga le prove per documentare cosa
Le cose dovrebbero fare le cose che posso
leggere un metodo e capire cosa
pensa che stia facendo quello che mi piace
test è che dovrebbero documentare ciò che voi
pensa che il sistema dovrebbe fare il comportamento
dovrebbe avere così se inserisco questo tipo
del documento in MongoDB dovrebbe fallire
con queste condizioni o non dovrebbe
fallire in queste circostanze così tu
posso documentare meglio con cui penso
test che con commenti o con
il codice anche con codice ben scritto
e infine questa è una specie di strano
in MongoDB ciò a cui stavo lavorando è un
Libreria Java che la tua applicazione JVM
può usare per parlare con MongoDB e quindi noi
non ho un’interfaccia utente nostra interfaccia utente se
ti piace è la nostra API così abbiamo effettivamente trovato
che scrivendo prove che esercitano il
API abbiamo un’idea di come sia utile
L’API è per gli sviluppatori Java quindi c’è un
diverso tipo di usabilità per fare clic
questo bottone qui e mettendoli
immagini in questa parte dello schermo ma è così
ti permette di avere un’idea per il
usabilità del tuo codice l’usabilità di
il tuo sistema da un punto di sviluppo di
vista e forse anche se stai facendo un
Anche l’interfaccia utente è in fase di test, ma non è un problema
area da guardare per un po ‘di tempo
come possiamo cambiare il culo come possiamo
passare da questo test è per assicurarsi
è l’ atteggiamento corretto e i miei codici
perfetto – il test ha una nascita è un
cittadino di prima classe appartiene come un vero e proprio
parte molto importante di ciò che facciamo
sviluppatori o cosa facciamo come una squadra e
quello che il nostro sistema dovrebbe fare è così
anche su documentazione e usabilità
e tutte queste altre cose Così come posso
fai mic come posso forzare i miei colleghi di lavoro
a vedere le cose allo stesso modo che faccio e
capisco davvero che il test è un
Cittadino di prima classe e in effetti lo è
non importa se altri
gli sviluppatori hanno esattamente nella loro mente
la stessa cosa che ho nella mia mente
ciò che conta per me è che si comportano
il modo in cui voglio che si comportino
Voglio che i miei colleghi di lavoro stiano scrivendo dei test
Voglio che stiano scrivendo dei test che
sono comprensibili sono buoni
test di documentazione che soddisfano tutti
quei criteri che avevamo su quello che il nostro
prova bene così non necessariamente
devono cambiare le menti delle persone in modo che
credi cose come religiosamente come me
fare o qualsiasi altra cosa devo farlo
facile per loro comportarsi in un modo che noi
ottenere valore dai nostri test credo di aver avuto
Troppo caffè stamattina sto parlando
troppo veloce
giusto così come possiamo cambiare il comportamento e
questo è uno stadio veramente instabile di
così ho intenzione di cadere e uccidere
me stesso in un minuto come possiamo cambiare
comportamento così per noi è stato utile
avere un campione che era gentile da parte mia
essendo il tipo di test OCD, non lo sono
andando a camminare perché è troppo
sveltina e così si avere un campione che
può essere la persona a cui importa davvero
la qualità dei test è un buon modo
per guidare la qualità generale per il tutto
squadra quindi per esempio uno dei miei primi lavori
se ti piace mi è stato assegnato
me stesso era quello che non mi piaceva quando io
il primo arrivato in squadra è quello su Jenkins
la costruzione fallirebbe molto spesso e noi
non sapevo davvero se lo fosse
perché abbiamo avuto un build durante la notte del
server che forse non ne ha forse fatto un po ‘
i contratti avevano cambiato alcuni comportamenti
cambiato o se i test erano frastagliati
o se il codice era cattivo e così
perché non sapevamo perché erano le cose
in mancanza noi li ignoravamo spesso, quindi leggi
le build erano come oh sì, è giusto
di nuovo così mi sento un po ‘fastidioso
Penso che non mi piaccia quella parola fastidiosa
è una parola molto femminile che faccio molto
guidare le persone nella direzione che voglio
loro di andare a casa così mi piacerebbe ottenere
sulla andare avanti per le chat o andare avanti per e-mail
e dire guarda la build è riletto
si presenta come qualcosa di questo Pleasants
impegnarsi in modo da rompere e si può andare su di esso
e aggiustarlo una delle cose che non ho fatto
è che non mi sono seduto lì e fisso
le build rotti di tutti perché è così
non il lavoro del campione il lavoro di
il campione è delegare ad altri
le persone e dicono guarda che dovresti preoccuparti
su queste cose quindi assicurandoti
prendemmo sul serio le bollette rosse
che abbiamo avuto cose come l’analisi statica
di nuovo gli strumenti credo che sia forse perché
Sono un po ‘OCD ma volevo che le persone lo facessero
prendere consistenza e stile molto
sul serio, quindi abbiamo avuto lo stile ceco e bene
bug e abbiamo risolto questi errori tra
noi li distribuiamo tra il tutto
squadra e poi ci siamo assicurati di averlo
zero stile ceco e ritrovamento di Feinberg
bug
errori in corso che fallirebbero il
costruisci se ci fossero degli errori cos’altro
oh sì e abbiamo fatto il codice di te così io
abbastanza come la programmazione di coppia che è
cosa abbiamo fatto a L max ma eravamo a
squadra distribuita, quindi dovevamo farlo
il codice di voi cosa più essere
della differenza di fuso orario rispetto al
distanza perché puoi farlo
in modo asincrono per la codifica delle persone
imparato molto velocemente che il primo
domanda che stavo per chiedere quando ero
rivedere il codice di qualcun altro è dove
sono i tuoi test e alcune persone dicono di me
ho un test intendo sì ma tu hai scritto
200 linee di codice e hai un test
probabilmente dovresti averne almeno due
cento righe di codice vale la pena di test e
Non voglio solo test di percorso felici
forse i test sono molto facili da scrivere
quando hai scritto il codice prima e poi
scrivi il test per verificare il codice
fa quello che pensavi che fosse dovuto
si fa ma ciò che si dovrebbe pensare è
okay, e se qualcuno lo chiama?
con qualcosa di strano che succede se
qualcuno mette un punto qui dentro cosa
succede se il server ritorna con un
errore o, naturalmente, il server può facilmente
tornare con niente perché la rete
la connessione potrebbe cadere così per ogni felice
prova di percorso mi aspetto che non lo sappia
tre quattro mezza dozzina di cammino infelice
test così stavo spingendo su quella roba così
mentre continuavo a spingere le persone in
direzione volevo che entrassero e
fare queste cose diventa un’abitudine
quindi mantenere Jenkins Green è qualcosa
che tutti facciamo in modo che i controlli
tessere passa è qualcosa che tutti noi facciamo
e assicurandoci di effettuare dei test
la revisione del codice è qualcosa che abbiamo appena
prendere l’ abitudine di fare questa roba
quindi non devo più tormentarmi e il
tutta la squadra lo fa solo perché lo fa
viene di routine diventa abitudine ora
questo può solo farti arrivare così lontano perché
soprattutto se stai cercando di cambiare
comportamento e non necessariamente
il buy-in di tutti nel pensare la stessa cosa
come te non puoi necessariamente ottenere
tutti a fare tutto il modo in cui
li vuoi soprattutto se sei il tuo io
trovato difficile articolare alcuni di
le cose che volevo da persone o e
perché volevo che i test fossero un particolare
modo non li voglio solo in qualche modo
scrivere test in un modo particolare come mi piace
abitudine, a memoria e senza pensare
che voglio loro di capire questo
roba e se non hanno se non ho
articolato molto bene
quindi non hanno intenzione di comprarlo così
avevamo ancora un mucchio di altri
problemi quindi non sono sicuro che tu possa leggere
che questo è dove avvistiamo le diapositive
che ho scritto su un pezzo di carta questo
mattina
Ho sentito dire che abbiamo avuto una serie di altri
problemi quindi abbiamo una matrice complicata
di capacità ciò che significa è questo
Abbiamo il nostro file jar può essere utilizzato da
chiunque è una libreria scaricabile così
ha bisogno di essere testato contro Java 6 Java 7
Java 8 dobbiamo essere in grado di correre contro
tutte le versioni più recenti del
server in modo che le versioni del server puntino a
diverso 42.6 3.0 quindi abbiamo già
avere una matrice comunicativa di cose su
in cima a questo abbiamo alcuni test che funzionano
contro la replica impostare alcuni test eseguiti
contro singoli server alcuni test che
corri nell’ambiente in modo uniforme così le cose
diventa un po ‘complicato che abbiamo ancora
questa tendenza a scrivere solo percorso felice
test di tipo non è solo non è
nella nostra natura per cercare di rompere il
sistema siamo sviluppatori che desideriamo
per assicurarsi che faccia ciò che abbiamo detto
andando a fare penso che questo è aggravato
dal fatto che il nostro team non ha avuto
qualsiasi persona del tipo QA o tester solo noi
ho sviluppatori e penso alle persone del QA
sono davvero brillanti nell’aiutare la guida
tu in questa mentalità di come posso rompere
ciò che potrebbe andare storto e gli sviluppatori
non sono così bravo in quello che non avevamo
qualsiasi test unitario che pensavo fosse un I
pensavo fosse un odore perché mi sento
come con unit test si possono eseguire
molto più veloce e puoi essere veloce
feedback e non tutto dovrebbe
richiede di avere il database su e
di conseguenza, perché avevamo un
molti lotti di test di integrazione funzionale
di test ha avuto un sacco di setup da ottenere
tutto nello stato giusto prima di noi
potremmo batterlo con qualunque valore noi
volevamo essere di nuovo segno della stessa cosa
problema di testare troppe cose così una volta
abbiamo fatto tutto quel complicato setup
siamo come se non lo faremo semplicemente
affermazione perché hai appena trascorso anni
configurando il server nello stato noi
voglio così affermeremo questo
asserisci questo prova questo fa l’altro e
è un po ‘certo quando sei
usando j-unit che non è molto buono
modello per seguire il test orribile strano
i nomi testano le stringhe di base con due stringhe
la prova mentale non fallisce bene, ecco
simpatico
difficile vedere cosa è sotto test quindi
perché abbiamo questo lungo set up perché
abbiamo complicato test funzionali voi
in realtà non si sa quando si sta guardando
una serie di 30 linee di codice di prova che bit
è un po
test e quale bit è la roba che
porta il server nello stato
potrebbe averne bisogno in conseguenza del loro
i test sono difficili da leggere e noi abbiamo
molti altri test simili e così
è una specie di buona pratica brevettata in
j-unit dove hai un test che
prova come input uno due tre altro
test che verifica l’input ABC e un altro
testare quali test input e null
dovrebbero essere test separati perché se
qualcosa va storto dovrebbero fallire
separatamente ma questo era un po ‘
ingombrare molto del nostro codice di test
base quindi per sistemare molti di questi
problemi e affrontare questi problemi noi
necessità di rendere il più semplice possibile per
gli sviluppatori di fare la cosa giusta così io
ho studiato un sacco di soluzioni che sono
non entrerò davvero nei dettagli
di questo perché le diapositive sono disponibili
online e puoi cercare tutti
queste cose, ma il punto di questa diapositiva
è davvero per mostrare che ne ho sentito parlare
Spock come una possibile soluzione per i test
problemi, ma non è stato il primo che ho
saltato addosso non è come se fossi al nostro posto
cutscene groovy che suona stupendo
non so groovy mi piacerebbe aggiungerlo a
il mio curriculum e quello non è passato per il mio
capo sono andato a un gruppo di questi altri
cose ma i miei ex colleghi che Lmax
Stavo giocando con Spock, quindi ho imparato
un po ‘di spock e ho deciso di farlo io
dare un’occhiata a ciò che Spock potrebbe fare
noi per risolvere alcuni dei nostri problemi rimanenti
ora normalmente non guarderei necessariamente
per una soluzione tecnica a un tipo di
processo problema perché poi tu
probabilmente finirà con due diversi
problemi soprattutto perché Spock è un
biblioteca scritta in groovy e tu hai
per scrivere i tuoi test in Groovy siamo a
I driver Java erano un po ‘di Java
sviluppatori da cui saremo abituati
Persone Java non sembra fare un
molto senso per portare su una JVM diversa
lingua per testare il nostro codice così ho voluto
stai molto attento per essere sicuro
Spock ha effettivamente risolto i problemi
stavamo avendo prima di fare il salto
ad un linguaggio JVM nuovo solo per
test in modo da dare una rapida occhiata a a
semplice test a caso c’è qualcuno qui
usando Spock Oh un bel po ‘di voi
bene
così voi ragazzi potete come sonnecchiare per il prossimo
dieci minuti va bene e chi sta usando
groovy in generale o ha consapevolezza di
groovy alcuni di voi e chi ben come
persone Java di altre persone o no
davvero a cuore la tecnologia Java
le persone sono a posto con te, va bene, e
al resto di voi non interessa
la tecnologia puoi anche posticipare
bene e quindi ho intenzione di passare attraverso a
un po ‘ di quello che sembra Spock
Mi piace perché quello che voglio fare è dire
il tipo di processo che ho passato in
valutando questo per aggiustare il nostro particolare
problemi nei test, quindi posso volere
per indicarlo ma sono un po ‘corto
c’è una serie di cose che accadono
io quando guardo questo è molto
semplice spot test, ma è un vero e proprio uno
che vive nel driver Java MongoDB
base di codice in primo luogo il metodo di prova è a
stringa il nome del metodo è una stringa e
in realtà per i test che è davvero bello
perché non devi che le persone si fermino
impazzendo per la scrittura del metodo lungo
nomi che possono effettivamente scrivere qualcosa
più descrittivo in là con roba
altro che solo lettere minuscole che puoi usare
caso cammello e qualunque cosa tu voglia e
quindi ti libera da questo test
fondamentale per la mentalità e la cosa che
mi ha davvero attratto da Spock
invece di avere un’annotazione come
prova a dire che questo è un metodo di prova tu
utilizzare una serie di etichette in questo caso
dato quando e poi ce ne sono altri
ma dato uno e poi il mio preferito
quelli in modo da farti entrare nello stile BDD
testare la mentalità ti costringe a dividere
il tuo test su questo è il set up
questa è la roba che è in realtà sotto
prova e queste sono le mie asserzioni e così via
dopo averlo diviso in questi tre
sezioni puoi iniziare a vedere gli odori
nel tuo test in modo da poter vedere oh ho
come 25 linee di installazione per una linea di
prova il minimo che potrei fare è estrarre
fuori in qualcosa di utile o
forse il mio test sta facendo troppe cose
cose o come abbastanza spesso capita a noi
specialmente quando traducevamo vecchi
prova in nuovi test quando arriviamo
capire cosa va sotto il bit quando
quindi non stiamo sicuramente testando il
cose giuste perché dovresti essere
pensando qual è la cosa che sono davvero
provando a
prova qui quando ciò che accade dovrebbe cosa
succede così sì e poi sotto il tuo
affermazioni ovviamente puoi dirlo
se hai troppe affermazioni
e potresti capire cosa è reale
asserzione ea volte sai quando
spargerai asserzioni e il set up
solo per assicurarmi che Mike abbia ragione
e potresti dire che lo sei
facendo questo se tu se segui questo
modello cos’altro sono una persona Java
e un sacco di persone si lamentano sempre di
Java boilerplate e quanto sia doloroso
e io ero uguale a qualsiasi cosa non facessi
cura perché come io sono una persona Java
ignora tutto il boilerplate fino a che io
è venuto a guardare il modo in cui sono fatte le mappe
in groovy e io ero come oh chiave
coppie di valori che sono belle
e devo fare un’appunta con due
i parametri sono un po ‘ più belli
quando è disposto come una coppia di valori chiave
MongoDB è un negozio di documenti e
i documenti sembrano JSON così tanti
quello che abbiamo fatto è stato creare queste mappe
oggetti da trasformare in JSON per andare
in MongoDB ed è brutto è
doloroso ma con il test noioso
trovato che la sintassi della mappa era molto di più
descrittivo ed è stato più chiaro per noi anche
come persone Java era più chiaro per noi
quali documenti stavamo creando e
cosa stavamo facendo con loro cos’altro
e tutte le affermazioni che puoi dire sono uguali
eguaglia equivale invece di asserire uguale
o asserire ciò o affermare falso così di nuovo
è un po ‘ più leggibile
quindi anche se hai fatto l’ unità J per
Non conosco sette otto anni come me
sono stato in realtà ho trovato questo un po ‘
un po ‘più facile da leggere rispetto ai test di unità J così
come fanno questi test di Spock a risolvere il problema
problemi particolari che abbiamo avuto bene
torneremo all’esempio che ho appena
ha mostrato uno dei problemi che abbiamo avuto
che erano difficili da leggere e tutti
i membri della squadra generalmente trovati
che i test di Spock erano più facili da leggere
per una serie di motivi uno il dato
quando e poi lo mette davvero nel tuo
cervello come quello che sta succedendo nel test
cosa è veramente sotto test cosa è stato creato
cosa sto cercando di fare davvero e il
anche i nomi dei metodi stringa lo rendono
è più facile dire cosa si suppone
sta succedendo nella tecnologia
così similmente abbiamo avuto questi test orribili
nomi così di nuovo i nomi dei metodi stringa
questo ci ha fatto test molto migliori
nomi e questo è in realtà uno dei
quelli più brevi non l’ho messo davvero
quelli descrittivi lì perché loro
non si sarebbe adattato alla diapositiva in modo che il
il problema era che è difficile
per dire quale cosa è davvero sotto test
e Spock ha un’annotazione chiamata
soggetto che non è obbligatorio ma tu
può metterlo lì come una sorta di
annotazione della documentazione in modo da poter dire
guarda in questo caso che stiamo testando
MapReduce quindi la classe di output MapReduce
è la cosa che è sotto test e il
cosa che succede dopo l’etichetta quando
questa è la cosa che stiamo testando in questo
test specifico quindi è diventato un po ‘più chiaro
quello che stavamo davvero cercando di ottenere
e ancora se stessimo facendo traduzione
dai nostri vecchi test a nuovi test in loco
e non siamo riusciti a capire cosa
soggetto era e ciò che il momento era che
il test ha avuto un valore molto limitato
imposta di nuovo lo stesso test qui se tu
hanno un sacco questo è ancora molto di più
esempio più breve in alcuni degli esempi
avevamo se si dispone di un sacco di messa a punto è
diventa molto ovvio che tu abbia
un sacco di setup perché è tutto in data
e quindi potresti voler riflettere questo
roba fuori o il caso peggiore che si tiene
tutto a posto ma puoi solo
ignoralo perché sai che l’ installazione
e salta direttamente a uno dei miei
testare quali sono le asserzioni che noi
non ha avuto alcun test unitario perché
beffarsi e stroncare è un po ‘complicato
e tipo di noi non volevamo molto
dipendenze del codice di produzione
zero dipendenze che non volevamo avere
un sacco di dipendenze sono nel nostro test
codice su cose come mockito o jmark o
qualunque cosa e così abbiamo trovato beffardo molto
impegnativo quando non hai un
beffardo biblioteca per aiutarvi con
Spock ti prende in giro gratis
ed è un po ‘ super facile, quindi basta
dì in alto che dici solo che sono
andando a deridere questa cosa e lo fa
per te magicamente e poi in fondo
queste sono le asserzioni che hai
i tuoi scherzi quindi questo è il controllo che se io
codificare un array che ottiene
sapete quei metodi particolari sulla
lo scrittore viene chiamato per quello che ero
imparare lo spagnolo dal modo in cui è
crisi una dos tres e quindi qui abbiamo detto
ci aspettiamo uno di questi uno di questi
di questi così diversi da molti altri
quadri di scherno che ho usato io
trovato questo facile indolore e leggibile in modo
Posso vedere cosa mi aspetto in
le asserzioni e le asserzioni sono al
fondo del metodo e diversamente
qualcosa come Jay segna dove sei
per impostare in alto quello che sei
aspettavo che il finto e lo stub facessero
c’è una specie di arretrato nel parlare tutti
il tutto deriderà tutte le asserzioni
sono in fondo dove ti aspetti
per essere noi eravamo terribili nello scrivere
test infelici / codice quindi cosa rende questo
un po ‘più facile anche perché noi
Potrebbe fare andare qui ho intenzione di
cambia i lati e puoi fare dei test che
assicurati che l’eccezione specifica sia
gettato non è un esempio fantastico
in realtà non solo puoi fare un test per
fare in modo che un esempio specifico è
lanciato perché puoi farlo nell’unità j
anche tu puoi ottenere quell’eccezione e
puoi interrogare cose come la causa principale
dell’eccezione o del o del messaggio
o qualsiasi altra cosa così puoi fare molto di più
asserzioni corrette sul tuo sul tuo
casi di fallimento, allora puoi goderti i mock
nell’unità j e in una delle altre cose
mi è piaciuto molto è esplicito su quando
le eccezioni non vengono generate così ci eravamo abituati
avere un sacco di test che avevano no
le asserzioni hanno fatto un sacco di cose e poi
non ho avuto alcuna affermazione e loro
non riuscivo a capire cosa stava testando
e naturalmente quello che sta provando sei tu
non ottenere un’eccezione
e io sono come bene che è un po ‘strano
siamo espliciti a riguardo, quindi eccomi qui
controllando che se faccio questo con loro un
URI non valido Non ottengo un’eccezione
è totalmente valido quindi se ne hai uno
una serie di test che sembrano davvero simili
sorta di test di copia / incolla con un sacco di
input e output leggermente diversi
Spock ha test basati sui dati, quindi posso
inserire come criterio qualcosa per
ordina per e quindi l’ID previsto per
esempio posso inserire ciò che voglio e
che mi permette di eseguire lo stesso tipo di
test
con diversi input e output e
questo è davvero potente specialmente per
qualcosa come un driver di database dove
ciò che facciamo è prendere in input qualcosa da fare
e mettiamo la nostra produzione e molto spesso
voglio inserire diversi tipi di input
allo stesso modo in modo simile quando abbiamo avuto
l’ altro problema che è un test
che mette alla prova tutto ciò che potremmo dividere
che di nuovo in uno di questi dati guidato
test e una delle cose veramente belle
sui test basati sui dati non è così
super chiaro ma se una di quelle menti
è una specie di rosso daltonico verde così
questo non è molto ovvio ma c’è
come un guasto all’arancia a metà strada
e se uno degli input e output
fallisce allora basta avere solo quella
fallimento in arrivo e puoi vedere tutto
gli altri sono gestiti e sono tutti verdi
quindi sai che il fallimento è solo su
quella particolare combinazione di input input
e non è detto qualcosa di sbagliato con
la codifica complessiva una dell’altra
le cose sono davvero fantastiche
asserzioni è davvero utile a
dicendoti cosa c’è di sbagliato in
il tuo codice che bit è quali bit
in mancanza se come qui di nuovo è così
bene bene io non credo, ma è possibile
vedere il valore della collezione il valore di
trova il valore dei criteri così tu
può vedere esattamente cosa ha causato il
problema abbiamo avuto questa matrice complicata
di una specie di versioni se ti piace ee
puoi farlo non è non penso
questa è solo una cosa di Spock che abbiamo appena trovato
è più facile in Spock che puoi ignorare se
quindi per esempio quando stavamo facendo
test su legacy legacy e cose
non abbiamo intenzione di eseguire questo sul 3.0
server perché non supporta questo
non abbiamo intenzione di eseguire questo particolare
cosa su Java 1 6 perché non è così
Lavoriamo e non stiamo andando a correre questo
è una cosa set di repliche perché non lo faccio
sappiate che non funziona con la replica
impostare ma ancora quel tipo di documenti il
aspettative di tali test e
in precedenza avevamo tipo se all’interno del nostro
i nostri metodi di prova e avrebbero solo
tipo di non correre ma non passerebbero
o fallire mentre questi sono letteralmente
sono test ignorati sotto il
circostanze in cui non sono supposti
eseguire in spock 1.0 che non ho usato
eppure c’è anche
richiede un’annotazione così gentile dell’altra
il modo in cui puoi dire richiede Java 8
se per esempio avessimo un po ‘di Java 8
roba specifica, giusto così è un po ‘
chiunque si sia addormentato può svegliarsi
ora così abbiamo tipo di correre con questo per
un bel po ‘ ho fatto una settimana
spike prima di assicurarmi che il mio
le domande hanno avuto risposta, ma ci siamo imbattuti in
per un po ‘e ovviamente quello che vogliamo
fare è continuare a controllare per essere sicuro
che Spock ci sta dando quello che vogliamo
strano i nostri test ci danno più valore di
erano prima che Spock ci fosse
ne vale la pena avere questa lingua diversa
per testare la libreria forse potremmo avere
ho appena imparato a scrivere test migliori quindi
Penso che i Jays parlino dopo questo
fai molto di più su come scrivi bene
test e ho deciso di andare per un
quadro che tipo di costringe a
scrivi nello stile BDD dato quando e
quindi piuttosto che cercare di allenare il
squadra su come scrivere test migliori in
j-unità che è interamente possibile ma non
richiede un po ‘più disciplina, quindi cosa io
trovato è così che volevo Spock in origine
per i test unitari perché è fantastico
beffardo e non avevamo nessuna unità
test e non volevo davvero
complicare le cose dicendo che stiamo andando
di avere test di integrazione a Spock e
Java avremo come il vecchio stile
Java prova nuovi e non troppo male Java
prova nuovi nuovi test di Spock e poi individua
Test di unità J perché ho solo pensato che
stava per essere pazzo, ma quello che è successo
tutti stavano godendo Spock così tanto
e l’ho trovato così leggibile e facile da usare
scrivere test hanno iniziato a scrivere
test funzionali in loro e loro
ha iniziato ad usare Spock come se fosse abbastanza
dovunque potevano perché era
più facile, più veloce e più descrittivo
scrivere test in questo modo quindi il fatto che
il resto della squadra, che non mi ottiene
sbagliato hanno scritto test ma lo erano
non molto entusiasta di scrivere test
stiamo facendo rotolare Spock in giro
tutta la biblioteca significa che nella mia mente
era il suo successo perché le persone lo erano
mi sto godendo i test di scrittura
godendo sì, certo che si stavano divertendo
ma preferivano scrivere test
in questo modo particolare piuttosto che in J
unità e cos’altro oh sì e lo ha dimostrato
stesso per sempre e ancora perché come noi
stavamo scrivendo più test perché lo era
Più facile
è un po ‘ più divertente nessuno sul
squadra era in realtà uno di questi sono e
dobbiamo imparare un nuovo tipo di lingua
cosa così non eravamo super eccitati
di scrivere test groovy solo per il
amore per l’ apprendimento groovy ma è stato gentile
di divertente imparare come usare groovy come
così come parte dei nostri test quindi abbiamo scritto
più test di quanto avremmo scritto
prima e ovviamente abbiamo iniziato a prendere
più fallimenti quindi più fallimenti nel nostro
codice e stavamo spesso correndo contro a
build notturno del server in modo che potessimo
restituire rapidamente al team del server se
qualcosa come un messaggio di errore
cambiato e loro non erano veramente
non hanno pubblicato queste cose
stavano cambiando così abbiamo ottenuto molto meglio a
trovare errori prima che i nostri utenti trovassero
errori che è una buona cosa ma noi
aveva ancora un numero di problemi oh sì, uno
delle altre cose interessanti e io
non so se fosse perché noi
ha iniziato a migliorare nei test o
se fosse solo un’evoluzione di MongoDB
come è diventato più maturo, ma abbiamo iniziato
scrivendo e abbiamo iniziato a scrivere
specifiche per come stavano andando le cose
per interagire con un server ma anche noi
alla fine, appena prima di partire, abbiamo iniziato
scrivere un tipo di tipo di kit di compatibilità
Le descrizioni in stile BDD di esso non lo erano
in realtà test ma descrizioni dei test
correre per assicurarsi che un autista si incontrasse
nuove specifiche dal server così noi
ho questa idea di test come documentazione
iniziando a venire attraverso il tutto
azienda non solo il team di Java, ma tutti
del team di guida e del team di server
così è stato semplicemente fantastico
iniziando a pensare ai test come a
modo molto migliore di descrivere il
comportamento rispetto alla documentazione o al comitato
riunioni o altro, ma avevamo ancora un
un sacco di problemi
ci siamo sempre sì um groovy prestazione è
diverso dalle prestazioni di Java è a
un po ‘più lento per eseguire singoli
test abbiamo scoperto che alcuni dei nostri
i test sensibili alle prestazioni no
corro sempre in groovy e non sempre
correre non ha sempre avuto successo nel loro groovy
scaduto prima di quanto fatto in Java
e non sono sicuro che dovremmo averlo
meglio a scrivere migliori test groovy
ma alla fine abbiamo scritto quei test
Java quelli sensibili alle prestazioni che
li ho scritti in Java perché Java
le prestazioni sono più prevedibili, non lo è
necessariamente Paul è meglio ma è così
non è così perché c’è più previsione
quindi abbiamo mantenuto le nostre prestazioni sensibili
prova in Java ed è stato più facile per noi
per tenerli in Java piuttosto che provare e
capire cosa fare in groovy da fare
cose migliori lingue dinamiche dinamiche
Digitazione dinamica Sono una persona Java che ho trovato
è un po ‘difficile, soprattutto quando si
tipo di miss tipo di nome del metodo o te
non sai di che tipo è qualcosa
perché tu l’hai definito come io no
cura di che tipo si tratta e ottieni solo
l’errore quando si esegue il test piuttosto
rispetto a quando l’ IDE dice che l’ hai fatto
qualcosa di stupido idiota, così è stato
tipo come se è un po ‘frustrante il
il ciclo di feedback su Groovy è un po ‘
più lento e quindi mi piacerebbe abbastanza
come la mia sicurezza tattile
avendo detto che il linguaggio dinamico è
è abbastanza bello per testare abbastanza a
molto del tempo perché soprattutto per
cose come le fate spesso non lo fai davvero
cura di che tipo è che non lo fai davvero
cura ciò che viene chiamato come argomenti te
voglio solo che funzioni fino a quando tu
digli di comportarsi in modo diverso e groovy
è molto molto buono per quello così da ottenere
torna al tipo di tre domande che
erano nel mio astratto come possiamo noi
gli sviluppatori scrivono test non come possiamo
come possiamo scrivere più test come puoi
entusiasti di scrivere test e o
come possiamo incoraggiare la nostra squadra a scrivere
test personalmente sono un grande fan della coppia
programmazione non l’ho fatto da allora
Lmax è triste per quanto riguarda l’ abbinamento
davvero onesto anche quando tu
normalmente non scriverebbe un test quando
il tuo partner non scrive test allora
sei come penso che dovresti scrivere un
prova per questo e poi ti dicono
dovrebbe scrivere il test per questo perché
stiamo accoppiando ok lo farò
quindi l’abbinamento è veramente buono al tipo di
mantenendoti onesto sulla scrittura dei test
ma in mancanza di ciò che dovresti fare
una sorta di recensione di codice o codice
dimostrazioni o presumibilmente dovresti
condividere con il resto della tua squadra
quello che hai raggiunto codice saggio e a
quel punto è un buon momento per chiedere il
domanda dove sono i tuoi test cosa fanno
lo fanno e l’ho trovato con il codice
recensioni trovo difficile leggere il codice
e fallo subito ma se c’è
test lì posso capire che cosa
lo sviluppatore pensava che stessero cercando di fare
con questo codice e quindi posso avere un
guarda attraverso il codice quindi è stato molto
più facile per me dire una sorta di dove sono
i tuoi test e dove sono i fallimenti
Astuccio
è per questi test renderlo semplice come
possibile scrivere test così nel nostro caso
abbiamo scoperto che Spock e Groovy ce l’hanno fatta molto
più facile per noi scrivere test così per
esempio ricreamo molte mappe in
la sintassi groovy map lo rende molto più semplice
ci hanno dato quando e poi la sintassi
ci costringe a pensare a cosa sia
stiamo davvero testando piuttosto che semplicemente
tipo di gettare insieme alcune cose e
assicurandoti che non sia un errore e quindi sì
che l’ha reso molto più semplice per noi
per scrivere i test abbiamo scoperto che ero io
personalmente forse non sono sicuro del
altri ho trovato più divertente scrivere
test in groovy e Spock è stato solo
tipo del suo tipo di più carina e mi piace
Java non fraintendermi e non lo sono
salta la nave al groovy ma mi è piaciuto
ho scritto i test su Spock l’ho pensato
era divertente solo scriverli
in questo modo sì e se capisci
perché stai scrivendo il test che è anche
un motivatore migliore quindi questo tipo di noi
scrivi test per verificare che il tuo codice funzioni
quello che pensavi di fare non è un grande
motivatore perché pensiamo ai nostri codici
bene, l’ abbiamo scritto , probabilmente manualmente
testato e va bene così è molto
poca motivazione per scrivere un test
controlla quello, ma quando pensi al
Infatti lo scopo del test è
qualcosa come l’affidabilità della documentazione
manutenibilità in modo che io possa tornare indietro
e refactoring questa roba più tardi quando io
voglio che tu sia un po ‘più motivato
per scrivere i test come possiamo scrivere
test leggibili astuti tra di voi
potrebbe notare che ho scambiato B e C dal
astratto ma al resto di voi non interessa
quindi va bene il mio OCD sta impazzendo
era come voglio scambiare questi in giro, ma
Ho detto che sarebbe stato diverso in
l’astratto così scrivendo test mutabili
per noi abbiamo trovato quel posto da groovy
ha reso il nostro test più scrivibile perché
destra molto più leggibile perché
porta via un sacco di testo standard di
java a cui in precedenza ho curato Hentry
riguardo ma non riguarda solo te
devo usare una nuova lingua per questo
c’è una biblioteca chiamata Gwen che era
creato da e dai ragazzi di Shazam e
questo è quello che ti permette di fare dato
quando e poi dentro un test di unità J così
è bello che posso costringerti a farlo
per creare questi test più leggibili e
puoi piangere
e l’ESL, quindi avevamo un dsl a Lmax
un DSL basato su java e lo abbiamo usato per
i nostri test di accettazione quindi la nostra accettazione
i test avrebbero letto qualcosa come utente
accedi con questo nome utente e password
e la DSL ti direbbe quello che puoi
fare con varie cose come ovviamente io
posso piazzare gli ordini che posso non so guardare
la mia cronologia degli ordini e l’abbiamo fatto con
un DSL e questo può solo migliorare le cose
leggibile e separando ciò che è sotto
prova quali sono le aspettative che cosa impostare
il backup di tutti che appena rende le cose più
leggibile e c’è più di un modo
di fare questo e penso di esserlo
sperando che la ghiandaia coprirà a
mazzo di questo e il suo discorso in seguito come
Beh, un test così leggibile è una cosa
posso scrivere un test leggibile che sia un po ‘
inutile posso scrivere un test leggibile per
un ghetto se vuoi non lo farò
approfondire perché testare i getter è stupido
e quindi ciò che vogliamo veramente è significativo
prova le prove ma dice alla gente che cos’è
comportamento che il loro sistema dovrebbe essere
e anche fallire per le giuste ragioni e
passare per le giuste ragioni e questo è
tipo di cosa difficile perché questo
richiederà il pensiero quale è
difficile trovo il dato quando e poi
la struttura è un ottimo modo per fare
test più significativi voglio dire che ci sono
ci sono anche altre cose quando noi
il test guidato dai dati non lo era
appena dato uno e poi ma questo tipo di
ti costringe a pensare a ciò che è
in realtà sotto test cosa sono veramente
cercando di raggiungere e quanta impostazione fare
Devo fare per farlo è questo
tipo di mentale forse dovrei girare questo
in un test unitario in modo da poter prendere in giro o
mozzare vari comportamenti quindi sì di nuovo
una biblioteca come Gwen che è l’altra
data una cosa poi o un DSL potrebbe anche
aiuta a scrivere test più significativi
la revisione del codice è davvero molto buona
posto per capire se i test significano
qualsiasi cosa o no perché quando qualcuno
non capisco davvero cosa
stai cercando di ottenere con questo test
allora probabilmente non hai scritto un
test significativo e leggibile sì
quindi di nuovo e comprendendo la comprensione
il ragionamento del perché scriviamo test è
un buon modo per motivarci a scrivere
test significativi quindi non solo per verificare
che il nostro codice funziona e lì
è perché ovviamente lo fa ma a
permettici di rifattarci più tardi per consentirci
non essere infastidito dai nuovi membri quando
si uniscono al team perché possiamo indicare
loro alla prova e loro possono capire
il comportamento per documentare così il sistema
uno dei miei lavori era andare su Stack
Overflow e rispondere a domande su come
usare il driver Java e il mio ideale era
essere in grado di dire loro qui è un test
per le case – come inserire in MongoDB
e tutte le cose che vuoi sapere
è in quella prova , togliendo il fardello
io come persona di sostegno in conclusione
voglio renderlo il più semplice possibile
scrivi test significativi e leggibili che vuoi
per automatizzare tutto ciò che non ho nemmeno
menzionato nell’esecuzione di questi test in CI
perché se non stai facendo test unitari
e la tua continua integrazione
ambiente bene stavo per dire
stai sbagliando ma hai un
vincita davvero veloce proprio qui, okay
dovrebbero essere in esecuzione questi test ogni
una volta sola si effettua il check-in e si dovrebbe
essere in esecuzione, se avete intenzione di fare ramo
sviluppo tipo si dovrebbe essere in esecuzione
li sui rami – così ce l’abbiamo fatta
Jenkins e abbiamo avuto cose su Travis così
che quando le persone hanno presentato richieste di pull
Travis ha detto che tutto è rotto possiamo
dì semplicemente no , non accetteremo
la tua richiesta pull in modo simile allo zero
tolleranza per i fallimenti quando le cose vanno
non capisco subito
accettabile per dire oh sto lavorando a
nuova funzionalità non riesco a risolvere la cosa io
rotto l’ultimo elemento perché tu
non ho ancora finito l’ultima funzione
fino a quando tutto diventa verde, quindi lascia perdere
tutto e lavorare su quei fallimenti
perché stai bloccando tutti gli altri no
uno dovrebbe essere impegnato a Jenkins se
è rosso perché poi non sai se
si sta solo aggravando il problema con
più errori in seguito aiuta ad avere un
campione non deve essere un tester
o un BA o può essere solo uno sviluppatore
chi è come OCD come me o può essere solo
qualcuno che pensa che potremmo essere
fare meglio e non deve essere un
persona anziana Non sono il caposquadra
questo sono solo io sono solo un altro sviluppatore
chi vuole solo che le cose vadano meglio così
avere un campione e preferibilmente ovviamente
dare loro il permesso di tormentare la gente e
dì loro che questa non è la testa, no
accettabile e dovremmo fare le cose
in questo modo una delle cose che ho dovuto
impara come lo era il campione OCD
alcune cose che non si sta per
sono davvero alcune cose che la squadra è
non andando a comprare e va bene
basta lasciarlo andare sarò canto che
tutto il giorno adesso um, lascialo andare
volevo che un posto fosse solo per unità
test e il team ha usato un po ‘di funzionalità
test di integrazione va bene così
bene, stanno scrivendo test così lascia andare
il tuo ID amore Spock è per i test unitari I
davvero ci voluto scrivere accettazione
prova il test end-to-end che esercita il
API e descrivere ai nostri utenti il
comportamento del sistema e noi mai
ho davvero ottenuto il massimo perché non l’ho mai fatto
potrebbe articolare esattamente quello che volevo
da quelle prove quindi so come lasciare
che vanno le pairing e le recensioni del codice
un po ‘di vitale non lasciare solo vecchi
la persona controlla solo il vecchio codice e
dì sì, funziona perché l’ ho provato
manualmente hai bisogno di quel tipo di sanità mentale
controlla per assicurarti di saperlo
mantenere le persone oneste con i test di scrittura
e scrivere prove di percorso infelici e felici
e tu sai e pensi al
scopi di test quindi ne ho nominati alcuni
delle cose che trovo utili
test di qualità di affidabilità
manutenibilità e quelli sono solo il
quelli a cui ho pensato sull’aereo
il modo in cui c’è probabilmente è come
35.000 diversi motivi per testare e per
il tuo team potrebbe essere diverso da cosa
loro sono della mia squadra
ma ci vogliono solo cinque minuti per sedersi
giù e pensa a quale valore possiamo uscire
di test diversi dal codice fa cosa
dovrebbe farlo, ne ho un po ‘
risorse non non per questo test ma se
non sei più per questo discorso, ma se
sei interessato a Spock e Groovy
e Java per testare e ho
un altro discorso su questo, ma anche link
per qualche informazione in più su Spock e
alcuni post del blog e cose del genere così
sì, se questo ti interessa, questo è tutto
lì le diapositive saranno disponibili
in linea quindi se non si ottiene la possibilità di
foto che poi dura e si
quindi non abbiamo tempo per le domande mi dispiace
ma sto attraversando il lato opposto del
strada attraverso la cosa laggiù verso il
sinistra
c’è un è stato chiamato il power lounge
e io sarò lì per un incontro e
saluta con Pearson così puoi venire
e chatta con me chiedimi domande
sarà nello stand JetBrains che
è appena uscito per il resto del
giorno quindi vieni e prendimi se ne hai
domande di qualunque tipo grazie mille
Please follow and like us: