# data[].attributes.body
Viene cambiato quando si fa manutenzione del codice o si fanno piccole modifiche alle funzionalità.

# data[].attributes.body
Viene cambiato questo numero quando si fanno modifiche importanti nelle funzionalità del codice.

# data[].attributes.body
utilizzata per testare il programma conoscendo i requisiti e avendo limitata conoscenza della realizzazione, è fondamentale durante la realizzazione di un test l' esperienza del programmatore

# data[].attributes.body
spesso viene applicata una strategia con criteri sia funzionali che strutturali

# data[].attributes.body
producono un insieme di dati di ingresso che è determinato dalla struttura del programma e non ha alcun legame con le sue funzionalità

# data[].attributes.body
utilizzati per la progettazione di test e la realizzazione degli ambienti di test

# data[].attributes.body
- si basano sulla struttura del codice;
-testare ogni parte del codice;
-si basano sul flusso di controllo o del flusso dati di un programma.

# data[].attributes.body
-si basano sui requisiti del programma;
-vengono testate le caratteristiche esterne del programma (interfaccia I/O e l' ambiente di esecuzione);
- devo definire un insieme di ingressi con i relativi esiti desiderati (per eseguire l' analisi con esiti).

# data[].attributes.body
Aggiunge il nome dell'eccezione specificato e la sua descrizione

# data[].attributes.body
Aggiunge "Returns" e la descrizione del valore di ritorno.

# data[].attributes.body
Aggiunge il nome parametro specificato e la sua descrizione

# data[].attributes.body
Aggiunge "See Also: <riferimento>"

# data[].attributes.body
Aggiunge "Version: <versione>"

# data[].attributes.body
Aggiunge "Author: <nome dell'autore/degli autori>"

# data[].attributes.body
Un commento in Javadoc è un testo HTML racchiuso tra i tag ' /** ' e ' */ '.
All'interno di questi tag sarà possibile scrivere descrizioni riguardanti il codice avvalendosi anche di uno o più tag tramite il simbolo " @ ". I tag possono descrivere Classi e Metodi e sono:

# data[].attributes.body
Il codice sorgente verrà analizzato e successivamente dopo l'esecuzione del "Parser" verrà generato un ipertesto HTML contenente le informazione contenute in tutti i tag "Javadoc" all'interno del codice.
All'interno si può trovare un indice, elenco dei metodi e altri strumenti per facilitare la consultazione del documento

# data[].attributes.body
I bug e gli errori individuati nelle analisi vengono risolti

# data[].attributes.body
I dati, i risultati e i comportamenti registrati dall'esecuzione dei test nell'Ambiente di Test vengono confrontati con i risultati attesi e, in caso di discordie con questi, si cercano i punti sensibili e i problemi nel codice.

# data[].attributes.body
1. Simula l'ambiente di esecuzione finale (ossia che verrà usato per far funzionare il programma).

2. È un ambiente a esecuzione controllata (terze parti non possono interferire con i test) che registra i comportamenti del software in base agli input forniti.

3. Permette l'esecuzione in conteporanea di più programmi e richiede la massima potenza di calcolo.

4. È configurabile e controllabile.

# data[].attributes.body
1. I test possono essere pianificati alla raccolta dei requisiti;

2. Si individuano gli input che potrebbero dar problemi;

3. Il codice deve essere coperto al 100% da errori o bug, quindi devono essere testate tutte le funzionalità del programma.

# data[].attributes.body
La javadoc è uno strumento che permette di documentare i codici sorgente di un programma all'interno dei codici sorgente stessi
Il programmatore inserisce nei codici sorgente, anziché scriverlo in un file separato, dei commenti con una particolare sintassi, che verrà mostrata in seguito tramite formato html

# data[].attributes.body
Un software è composto da diverse versioni e usualmente viene rappresentato con due cifre (es 1.0).  Quando  si crea una nuova versione o si implementano nuove funzioni nel  codice, essa deve essere riconoscibile in base alle cifre che lo compongono.

# data[].attributes.body
Realizzata dalla Sun Microsystems nel 1990, insieme allo sviluppo del linguaggio Java, e ha il compito di documentare il proprio progetto.

# data[].attributes.body
- Serve definire l'insieme dei casi di test
- Per ogni caso specifico:
1) dati di input
2) risultati attesi
3) descrizione dell'ambiente di esecuzione
- La batteria di test (test suite) è un insieme di casi di test
- Non esistono test validi in generale _ ogni test deve essere costituito su misura
- Dobbiamo tenere a mente:
1) la probabilità di rilevare un maggior numero di malfunzionamenti (aumenta proporzionalmente al n° di test eseguiti)
2) il controllo di qualità (test) ha un costo che bisogna tenere basso
3) test condotti in modo da valutare oggettivamente il risultato
4) dobbiamo definire l'oracolo che genera i valori con cui confrontare i risultati dei test per evidenziare i malfunzionamenti

# data[].attributes.body
Tecnica che impedisce a 2 sviluppatori la modifica dei file in contemporanea. Poco efficiente per il lavoro in parallelo.

# data[].attributes.body
Nella fase di write viene mandato un errore  di conflitto se ci sono incongruenze nelle modifiche.
Chi deve eseguire il commit è tenuto a risolvere il conflitto.

# data[].attributes.body
1)La versione del codice non deve necessariamente essere 1.9 per passare alla 2.0.
2) Bisogna fare un back-up delle vecchie versioni del codice.

# data[].attributes.body
1) rilevazione dei malfunzionamenti
2) verifica della conformità ai requisiti del codice eseguibile

RISOLVERE BUG EVIDENZIATI DAL COMMITTENTE PUO' ESSERE MOLTO COSTOSO:
-> cliente senza SW (€€)
-> cliente scontento e quindi non torna

# data[].attributes.body
Viene utilizzato per la gestione delle versioni dei file.

Vengono mantenute le vecchie versioni.

Gestisce i codici in 2 modi differenti.

# data[].attributes.body
1. Black-Box: non consente un'analisi del codice, ma solo dell'interfaccia grafica. Questo test è progettato sulle direttive del cliente. Si cerca di approssimare il risultato alle aspettative del cliente. Gli errori possono essere causati da mala-comprensione o da mala-programmazione;

2. White-Box: permette l'analisi del codice. Il test deve permettere una copertura totale del codice da bug o errori di sistema;

3. Regressione: serve per testare la compatibilità di codice fatto da terze parti (che sia nuovo o antiquato e modificato). Il test serve per rilevare problemi di compatibilità;

4. Unitari: sono dei test eseguiti sulle singole untià del codice (ad esempio funzioni, if , for, ecc.). Questi test sono automatizzati perché è il compilatore stesso che rileva i bug;

5. Integrazione e Accettazione: si accerta il corretto funzionamento di tutte le unità di codice insieme.

# data[].attributes.body
I test servono per controllare il corretto funzionamento del software e per garantire fattori di qualità (come affidabilità, usabilità o efficienza). Servono per provocare malfunzionamenti nel software. I test sulla qualità sono garantiti da:

# data[].attributes.body
Si utilizza un repository per la gestione delle versioni del codice.

Si scaricano i file dal repository per poterli modificare con il check-out.

Viene fatta una copia per modificarli.

Si esegue il commit per salvare nel repository il file modificato cambiando il numero della versione.

# data[].attributes.headline
Pianificazione e documentazione dei test

# data[].attributes.subject
Pianificazione e documentazione dei test

# data[].attributes.body
- E' fondamentale per garantire che i test del SW siano eseguiti in modo esaustivo senza escludere la verifica di alcuna funzionalità o condizione
- L'attività dei test di un programma prevede una o più serie di casi di test (test case)   . per ciascuno dei quali sono specificati:
1) Precondizioni per la corretta esecuzione del caso
2) Le azioni per l'esecuzione del test
3) I risultati attesi dall'esecuzione del caso e i criteri per dichiarare l'esito positivo o   negativo

# data[].attributes.headline
Gestione delle versioni del codice con Subversion

# data[].attributes.subject
Gestione delle versioni del codice con Subversion

# data[].attributes.body
Permette la compilazione automatica di tutti i file di codice sorgente che costituiscono un programma

Riconduce / Associa i singoli messaggi di errore / avviso alla linea del codice che li ha generati

# data[].attributes.body
Permette l'esecuzione e il controllo degli errori nel codice e consente l'utilizzo dei breakpoint al suo interno. Permette inoltre di tenere sotto controllo il valore delle variabili.

# data[].attributes.body
Integrated Development Enviroment

# data[].attributes.body
Enfatizza la sintassi (parole chiave, identificatori, ecc…) e struttura (classi, funzioni) del codice

Evidenzia errori sintattici in fase di codifica o completa automaticamente le parole

# data[].attributes.body
La documentazione del codice  è un insieme di istruzioni scritte che servono a descrivere il funzionamento del  codice. Per essere di facile comprensione, oltre che ordinata e facilmente leggibile, viene scritte tramite l'uso di regole specifiche

# data[].attributes.headline
Utilizzo di nomi significativi per le funzioni, le variabili e i parametri

# data[].attributes.subject
Utilizzo di nomi significativi per le funzioni, le variabili e i parametri

# data[].attributes.headline
Inserimento di commenti esplicativi (definisce lo scopo della funzione significato dei parametri)

# data[].attributes.subject
Inserimento di commenti esplicativi (definisce lo scopo della funzione significato dei parametri)

# data[].attributes.headline
Decomposizione del codice utilizzano funzioni

# data[].attributes.subject
Decomposizione del codice utilizzano funzioni

# data[].attributes.headline
Uso di convenzioni per i nomi delle funzioni e delle variabili

# data[].attributes.subject
Uso di convenzioni per i nomi delle funzioni e delle variabili

# data[].attributes.body
Il software ha  avuto un importante cambiamento nelle funzionalità  del codice.

# data[].attributes.body
Serve per piccoli cambiamenti o per l' aggiunta di nuove piccole funzionalità nel codice.