Un progetto non può dirsi terminato senza una fase di verifica del suo funzionamento. Una fase, apparentemente semplice e secondaria ma fondamentale, viene compiuta tramite tool di automazione testing e di integrazione tra le varie componenti di un progetto. Questo è l'oggetto del corso, in cui verrà inoltre illustrata la sincronizzazione del repository e del versioning e svariati framework come: Selenium, JUnit, Maven, Jenkins, XVFB, etc.
- Requisiti: conoscenza di uno o più linguaggi di programmazione, familiarità con ambienti di sviluppo e con l'utilizzo di framework, basi di integrazione
- Durata base: 5 giornate (40 h), da confermare a seguito di colloquio tecnico in base alle specifiche esigenze.
- Destinatari: aziende
- Sede: in aula a Roma o presso la sede del Cliente
- Durata base: 5 giornate (40 h), da confermare a seguito di colloquio tecnico in base alle specifiche esigenze.
- Destinatari: aziende
- Sede: in aula a Roma o presso la sede del Cliente
Giorno 1
Panoramica sul testing
- Che cosa è il testing e perché è così importante: costo economico della soluzione un bug in base a quando viene scoperto
- Ruoli nel testing: Quality Assurance manager, sviluppatore, tester
- Sviluppo guidato dai test (test-driven development)
- Sviluppo guidato dai comportamenti (behavior-driven development)
- Testing funzionale
Unit Testing
- Smoke Testing / Sanity Testing
- Integration Testing
- Test strutturale (white box testing)
- Approccio a scatola nera (Black Box testing)
- User Acceptance testing
- Regression Testing
- Testing non funzionale
Performance Testing
- Load Testing
- Volume Testing
- Stress Testing
- Security Testing
- Installation Testing
- Penetration Testing
- Compatibility Testing
- Migration Testing
- Maven e Junit
Installazione ed esecuzione di Maven
- Struttura di un progetto Maven
- Gestione delle dipendenze
- Gestione dei plugin e plugin più comuni
- Ciclo di vita del build di Maven
- Principali annotation di Junit: Test, Ignore, Before, BeforeClass, After, AfterClass
- Esercitazioni
Giorno 2
Il web
- Architetture client-server
- Struttura di pagina web
- Document Object Model
- Chrome DevTools
- Mozilla Development Tools
- Sintassi Xpath
- Sintassi JavaScript per selezionare elementi del Document Object Model
- Selettori CSS
- Selenium
Introduzione a Selenium
- Approccio capture and replay
- Installazione del plugin Selenium IDE
- Registrazione di una serie di passi e trasformazione in test Junit
- Aggiunta di nuovi filtri
- Utilizzo di JavaScript per la selezione di elementi del DOM
- Dipendenze Maven necessarie al funzionamento di Selenium
- Parametrizzazione ed esecuzione dei test di Selenium all'interno di Eclipse con Maven
- Esercitazioni
Giorno 3
Selenium grid
- Architettura di Selenium Grid
- Come avviare un hub
- Come avviare un nodo
- Scrivere dei test con TestNG
- Continuous integration
Integration hell: l'inferno dell'integrazione e come si risolve
- Mantenere un repository del codice sorgente
- Automatizzare la build
- Rendere la build auto testante
- Eseguire una commit sulla baseline ogni giorno
- Ogni commit fa partire una build
- Fare in modo che la build sia veloce
- Eseguire i test in un clone dell'ambiente di produzione
- Rendere semplice l'accesso all'ultima versione dei pacchetti
- Rendere trasparente lo stato dei test
- Automatizzare il deploy sui server di test Jenkins
Come Jenkins ci permette di raggiungere molti degli obiettivi della Continuous Integration
- Come installare e configurare Jenkins
- Aggiungere dei progetti ed eseguire i test
- Vedere gli esiti e l'andamento dei test
- Plugin di Jenkins e la loro installazione
- Plugin per Selenium grid
- Esercitazioni
Giorno 4
Design patterns
- Introduzione ai design pattern
- Page Object pattern: punti di forza e debolezza
- Page Factory pattern
- Advanced User Interactions
Interazioni legate alla tastiera
- Interazioni legate al mouse
- Drag and drop
- Esercitazioni
Giorno 5
X Virtual Frame Buffer
- Introduzione a X Virtual Frame Buffer
- Come eseguire dei test dell'interfaccia utente completamente in memoria
- X Virtual Frame Buffer e Selenium
BrowserMob Proxy
- Controllare lo scambio di informazioni tra server e browser
- BrowserMob Proxy e Selenium
*Per i corsi aziendali e individuali, il programma potrà essere customizzato così come la durata
Panoramica sul testing
- Che cosa è il testing e perché è così importante: costo economico della soluzione un bug in base a quando viene scoperto
- Ruoli nel testing: Quality Assurance manager, sviluppatore, tester
- Sviluppo guidato dai test (test-driven development)
- Sviluppo guidato dai comportamenti (behavior-driven development)
- Testing funzionale
Unit Testing
- Smoke Testing / Sanity Testing
- Integration Testing
- Test strutturale (white box testing)
- Approccio a scatola nera (Black Box testing)
- User Acceptance testing
- Regression Testing
- Testing non funzionale
Performance Testing
- Load Testing
- Volume Testing
- Stress Testing
- Security Testing
- Installation Testing
- Penetration Testing
- Compatibility Testing
- Migration Testing
- Maven e Junit
Installazione ed esecuzione di Maven
- Struttura di un progetto Maven
- Gestione delle dipendenze
- Gestione dei plugin e plugin più comuni
- Ciclo di vita del build di Maven
- Principali annotation di Junit: Test, Ignore, Before, BeforeClass, After, AfterClass
- Esercitazioni
Giorno 2
Il web
- Architetture client-server
- Struttura di pagina web
- Document Object Model
- Chrome DevTools
- Mozilla Development Tools
- Sintassi Xpath
- Sintassi JavaScript per selezionare elementi del Document Object Model
- Selettori CSS
- Selenium
Introduzione a Selenium
- Approccio capture and replay
- Installazione del plugin Selenium IDE
- Registrazione di una serie di passi e trasformazione in test Junit
- Aggiunta di nuovi filtri
- Utilizzo di JavaScript per la selezione di elementi del DOM
- Dipendenze Maven necessarie al funzionamento di Selenium
- Parametrizzazione ed esecuzione dei test di Selenium all'interno di Eclipse con Maven
- Esercitazioni
Giorno 3
Selenium grid
- Architettura di Selenium Grid
- Come avviare un hub
- Come avviare un nodo
- Scrivere dei test con TestNG
- Continuous integration
Integration hell: l'inferno dell'integrazione e come si risolve
- Mantenere un repository del codice sorgente
- Automatizzare la build
- Rendere la build auto testante
- Eseguire una commit sulla baseline ogni giorno
- Ogni commit fa partire una build
- Fare in modo che la build sia veloce
- Eseguire i test in un clone dell'ambiente di produzione
- Rendere semplice l'accesso all'ultima versione dei pacchetti
- Rendere trasparente lo stato dei test
- Automatizzare il deploy sui server di test Jenkins
Come Jenkins ci permette di raggiungere molti degli obiettivi della Continuous Integration
- Come installare e configurare Jenkins
- Aggiungere dei progetti ed eseguire i test
- Vedere gli esiti e l'andamento dei test
- Plugin di Jenkins e la loro installazione
- Plugin per Selenium grid
- Esercitazioni
Giorno 4
Design patterns
- Introduzione ai design pattern
- Page Object pattern: punti di forza e debolezza
- Page Factory pattern
- Advanced User Interactions
Interazioni legate alla tastiera
- Interazioni legate al mouse
- Drag and drop
- Esercitazioni
Giorno 5
X Virtual Frame Buffer
- Introduzione a X Virtual Frame Buffer
- Come eseguire dei test dell'interfaccia utente completamente in memoria
- X Virtual Frame Buffer e Selenium
BrowserMob Proxy
- Controllare lo scambio di informazioni tra server e browser
- BrowserMob Proxy e Selenium
*Per i corsi aziendali e individuali, il programma potrà essere customizzato così come la durata
I nostri corsi:
Richiedi Info/Iscriviti al corso