Anteprima
Vedrai una selezione di 20 pagine su 121
Appunti di Automated Software Testing Pag. 1 Appunti di Automated Software Testing Pag. 2
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Appunti di Automated Software Testing Pag. 6
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Appunti di Automated Software Testing Pag. 11
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Appunti di Automated Software Testing Pag. 16
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Appunti di Automated Software Testing Pag. 21
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Appunti di Automated Software Testing Pag. 26
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Appunti di Automated Software Testing Pag. 31
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Appunti di Automated Software Testing Pag. 36
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Appunti di Automated Software Testing Pag. 41
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Appunti di Automated Software Testing Pag. 46
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Appunti di Automated Software Testing Pag. 51
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Appunti di Automated Software Testing Pag. 56
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Appunti di Automated Software Testing Pag. 61
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Appunti di Automated Software Testing Pag. 66
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Appunti di Automated Software Testing Pag. 71
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Appunti di Automated Software Testing Pag. 76
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Appunti di Automated Software Testing Pag. 81
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Appunti di Automated Software Testing Pag. 86
Anteprima di 20 pagg. su 121.
Scarica il documento per vederlo tutto.
Appunti di Automated Software Testing Pag. 91
1 su 121
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

MAVEN

Per gestire correttamente le dipendenze di un progetto ed eseguire le operazioni di com-

pilazione (build) e test, è necessario utilizzare uno strumento da in

linea di comando

grado di scaricare tutte le dipendenze del progetto, compilare l’intera applicazione,

eseguire tutti i test e generare i report.

N.B: è importante separare le dipendenze del codice principale da quelle del codice di

test, per garantire un ambiente di testing coerente.

N.B: l’automatizzazione di queste operazioni semplifica notevolmente l’integrazione

con server di Continous Integration, che risulta particolarmente utile per gestire pro-

getti con numerosi test che richiedono tempi considerevoli per essere eseguiti. Inoltre

consente di gestire un ambiente comune tra più sviluppatori.

Quando il numero di dipendenze cresce, la gestione manuale del download dei file JAR

può diventare complessa e soggetta ad errori, specialmente considerando che alcune

dipendenze

librerie esterne potrebbero richiedere dipendenze aggiuntive (note come

transitive).

L’inclusione dei file JAR nel progetto e l’aggiunta al classpath introduce ulteriori com-

plessità nella distribuzione del progetto. Infatti, dopo aver rilasciato il progetto, do-

vremmo fornire agli utenti le informazioni necessarie per scaricare tutte le dipendenze.

Nel caso di una libreria o di un framework, gli sviluppatori interessati devono procedere

al download di tutte le dipendenze.

Invece, nel caso di un prodotto destinato agli utenti finali, è possibile incorporare tutte

le dipendenze nel file JAR finale. Tuttavia, dobbiamo includere soltanto le dipendenze

necessarie all’esecuzione dell’applicazione e non quelle specifiche per i test.

In ogni caso, la gestione manuale delle dipendenze rappresenta uno sforzo soggetto ad

errori.

Maven build)

è uno strumento di compilazione automatica (automatic e di gestione

management)

delle dipendenze (dependency per Java. Maven Cen-

In particolare, Maven fornisce un repository centrale remoto, noto come

tral, in cui sono disponibili tutte le librerie Java esistenti.

Maven segue un ciclo di vita ed altri meccanismi ben definiti basati su convenzioni.

Nonostante sia uno strumento molto rigido, consente alcune personalizzazioni.

Maven rappresenta un tentativo di applicare modelli alla complessità dell’infrastruttura

di sviluppo di un progetto per promuovere la comprensione e la produttività.

Fondamentalmente, Maven funge da strumento di gestione e comprensione dei progetti,

offrendo un approccio strutturato per gestire build, documentazioni, report, dipenden-

ze, Version Control Systms, release e distribution.

24

CAPITOLO 6. MAVEN 25

Attraverso questa organizzazione, Maven mira a semplificare il processo di sviluppo e

migliorare la collaborazione tra membri del team.

N.B: non combattere contro Maven, perderai.

Gli obiettivi di Maven includono:

artefatti

• Creare (come JAR, WAR, EAR, ecc...).

• Eseguire operazioni collaterali (come la creazione di una release completa e la sua

distribuzione su un repository remoto).

• Mantenere il processo di compilazione leggibile, riproducibile e consistente.

convenzioni configura-

Maven promuove un approccio basato sulle anziché sulla

zione. Ovvero, invece di scrivere comandi specifici per la compilazione ed il testing, è

sufficiente descrivere la struttura del progetto seguendo le convenzioni predefinite. Ad

esempio:

• I file sorgente devono essere collocati nella directory src/main/java.

• I test devono essere collocati nella directory src/test/java.

Maven conosce già i comandi da eseguire e li applica automaticamente in base alla

struttura del progetto. Inoltre, è possibile estendere le funzionalità di Maven attraverso

plug-in.

l’uso di

Maven semplifica il processo di gestione delle dipendenze e dei plug-in scaricandoli au-

tomaticamente dai repository Maven. Questi repository sono essenzialmente collezioni

remote accessibili tramite il web. Per impostazione predefinita, Maven utilizza il reposi-

Maven Central.

tory principale Questo repository contiene tutte le librerie Java ed i

plug-in Maven disponibili.

N.B: è possibile configurare Maven per utilizzare altri repository.

N.B: qualsiasi sviluppatore ha la possibilità di pubblicare i propri artefatti su Maven

Central, anche se questo processo è regolamentato da una serie di procedure burocrati-

che (disponibili nella Central Repository Documentation).

6.1 Installazione

Per installare Maven, seguire questi passaggi:

1. Scaricare i file binari dal sito ufficiale di Maven.

2. Dopo aver scaricato i file, aggiungerli al del Sistema Operativo.

PATH JDK Develop-

3. Assicurarsi di avere installato il compilatore Java, cioè (Java

ment Kit).

Possiamo anche utilizzare Maven da Eclipse, seguendo questi passaggi:

m2e - Maven Inte-

1. Assicurarsi di avere installato il plug-in di Eclipse chiamato

gration for Eclipse.

N.B: tipicamente è incluso nelle distribuzioni principali di Eclipse. Altrimenti,

può essere installato dal sito principale di Eclipse.

CAPITOLO 6. MAVEN 26

2. Una volta installato il plug-in m2e, non è necessario installare Maven separata-

mente nel Sistema Operativo. Il plug-in m2e contiene già una versione di Maven

integrata.

3. Possiamo eseguire Maven direttamente da Eclipse utilizzando il plug-in m2e.

N.B: non è richiesta l’esecuzione da riga di comando, a meno che non si voglia

eseguire Maven al di fuori dell’ambiente Eclipse (in questo caso, Maven deve

essere installato seguendo la precedente procedura). archetipi,

Per creare un nuovo progetto Maven, è possibile utilizzare gli che sono dei

template di progetti iniziali. Ad esempio, è possibile creare un progetto Maven per una

semplice applicazione Java o un’applicazione web Java.

Se Maven è installato nel Sistema Operativo, possiamo inzializzare un nuovo progetto

Maven direttamente da riga di comando:

1 mvn archetype:generate \

2 -DarchetypeGroupId=org.apache.maven.archetypes \

3 -DarchetypeArtifactId=maven-archetype-quickstart \

4 -DarchetypeVersion=1.4 \

5 -DgroupId=com.mycompany.app \

6 -DartifactId=my-app \

7 -DinteractiveMode=false

8

Questo comando utilizza l’archetipo per creare un pro-

maven-archetype-quickstart

getto Maven. Vediamo i parametri specificati cosa rappresentano:

• e specifica-

-DarchetypeGroupId -DarchetypeArtifactId -DarchetypeVersion

no l’archetipo da utilizzare.

• specifica il del progetto.

-DgroupId groupId

• specifica l’artifactId del progetto.

-DartifactId

• evita l’interazione interattiva durante la creazione del

-DinteractiveMode=false

progetto.

In alternativa, possiamo creare un nuovo progetto Maven direttamente da Eclipse (non

richiede l’installazione di Maven nel Sistema Operativo) seguento questi passaggi:

1. Aprire Eclipse ed assicurarsi che il plug-in m2e sia installato.

2. Selezionare “File” “New” “Other” nel menu di Eclipse.

→ →

3. Nella finestra di dialogo “Select a wizard”, espandere la categoria “Maven” e

selezionare “Maven Project”. Fare clic su “Next”.

CAPITOLO 6. MAVEN 27

Figura 6.1: Finestra di dialogo “Select a wizard”.

4. Assicurarsi che l’opzione “Create a simple project (skip archetype selection)” sia

selezionata. Fare clic su “Next”.

5. Nella schermata successiva, inserire le informazioni del gruppo e dell’artifact, co-

me ad esempio e Queste informazioni identificano univoca-

groupId artifactId.

mente il progetto. Fare clic su “Finish”.

Figura 6.2: Schermata per specificare i parametri dell’archetipo.

6. Maven utilizzerà un archetipo predefinito per creare la struttura di base del pro-

getto.

N.B: se si desidera utilizzare un archetipo specifico, è possibile selezionare “Crea-

te from archetype” nella schermata delle informazioni del progetto e scegliere

l’archetipo desiderato. In alternativa, tornare al passo 4 e deselezionare l’opzione

“Create a simple project (skip archetype selection)”. Quindi scegliere l’archetipo

desiderato.

CAPITOLO 6. MAVEN 28

Figura 6.3: Schermata di selezione dell’archetipo desiderato.

Una volta inizializzato il progetto, verranno create le cartelle ed i file necessari per il

progetto Maven all’interno della directory specificata dall’artifactId. La struttura

delle cartelle può variare in base all’archetipo utilizzato.

Figura 6.4: Struttura del progetto Maven utilizzando l’archetipo maven-archetype-quickstart.

Un progetto Maven creato al di fuori di Eclipse non contiene i metadati del progetto

Eclipse (cioè i file e Tuttavia, possiamo importare un progetto

.project .classpath).

Maven esistente in Eclipse seguendo i seguenti passaggi:

1. Aprire Eclipse e selezionare “File” Import.

2. Nella finestra di dialogo di importazione, espandere la categoria “Maven” e sele-

zionare “Existing Maven Projects”. Fare clic su “Next”.

3. Selezionare la Root Directory del progetto Maven esistente e fare clic su “Next”.

4. Fare clic su “Finish” per completare il processo di importazione. Eclipse importe-

rà automaticamente il progetto Maven esistente, creando i metadati del progetto

(come e e convertendolo in un progetto Eclipse.

.project .classpath)

CAPITOLO 6. MAVEN 29

La struttura del progetto Maven segue precise convenzioni per il codice principale e

per i test, con lo scopo di organizzare in modo ordinato il codice di produzione ed i

relativi test. In particolare, dobbiamo creare due cartelle separate (cioè, una per il

codice principale ed una per i test). In quetso contesto, Maven definisce le seguenti

convenzioni:

• Ciò che si trova in rappresenta il codice principale, ovvero il co-

src/main/java

dice di produzione. Il codice presente in questa cartella sarà incluso nel JAR fi-

nale dell’applicazione. In particolare, il codice contenuto in questa cartella verrà

compilato nella directory e impacchettato in un JAR.

target/classes

• Ciò che si trova in contiene i test. Il codice presente in questa

src/test/java

cartella non sarà incluso nel JAR finale dell’applicazione. In particolare, il co-

dice contenuto in questa cartella verrà compilato nella directory target/test-

Quindi, gli Unit Test veranno eseguiti seguendo una convenzione di

classes.

denominazione, ma non saranno impacchettati nel JAR finale dell’applicazione.

N.B: Maven è un framework test-oriented. Pertanto, il plug-in m2e imposta auto

Dettagli
Publisher
A.A. 2023-2024
121 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Delba1998 di informazioni apprese con la frequenza delle lezioni di Automated software testing e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Firenze o del prof Lorenzo Bettini.