Go Test Training Camp


Details
Vi trovate spesso a rilasciare applicazioni buggate in produzione? E a introdurre nuovi bug quando provate a fixare i vecchi?
Avere una buona coverage delle nostre applicazioni è fondamentale per permetterci di modificarle ed evolverle senza rischi, e Go fornisce supporto ai test nella sua standard library. L’ecosistema circostante fornisce, inoltre, altri tool che ci permettono di scrivere test con minore sforzo.
Questo workshop pratico prenderà in esame una semplice applicazione cloud nativa legacy senza copertura e mostrerà le tecniche e gli strumenti più comuni per introdurre gradualmente la copertura, rendendo il comportamento dell'applicazione deterministico e senza regressioni.
Presenteremo strumenti sia per implementare test unitari rapidi da eseguire in isolamento, sia per capire come i test end-to-end (e il framework) garantiscano il corretto comportamento dell'applicazione nel suo ambiente. Esploreremo le best practice e le opzioni più comuni per framework e metodi di test.
Gli speaker
Federico Paolinelli e Francesco Romani lavorano da remoto per Red Hat.
Fanno parte di un team che ha come obiettivo l’implementazione di features di Kubernetes rilevanti nel contesto delle telecomunicazioni.
Federico lavora nella parte di networking ed è maintainer del progetto MetalLB, mentre Francesco contribuisce alla parte di compute e performance ed è committer di Kubernetes per la parte di sig-node.
Quali argomenti tratteremo durante la serata
- Perché testare e cosa testare
- Subtests; setup e teardown; table tests; sub tests
- Test fixtures; golden files
- Benchnmarking
- Integration and beyond: gingko/gomega
- Dependency injection
- Testing http / integration tests
- Container tests
- Avoiding flakes
- Wrap up
Tutti gli argomenti saranno separati da delle sessioni pratiche di approfondimento.
Obiettivi del workshop
Una panoramica delle metodologie per testare un’applicazione in Go e per rendere più testabile e facile da modificare il nostro software
Requisiti per la partecipazione
- Conoscenza base del linguaggio di programmazione Go
- Installazione di un ambiente di sviluppo con Go
- Un checkout del repository https://github.com/gotestbootcamp/go-todo-app

Go Test Training Camp