• Non ci sono risultati.

5.2.1 Test di unit` a

I test realizzati sono stati implementati in modo tale da valutare al tempo stesso lo stato di avan-zamento del prodotto e la quantit`a di bug conosciuti ancora presenti al momento della verifica.

Quest’ultimo dato viene fornito in modo dettagliato da QUnit al termine dell’esecuzione dei test.

Tutti i test devono avere risultato positivo, ossia devono dare un responso di superamento del 100%.

test(“testing aggiungi staff”, function());

una singola funzione di test che testa la funzione addStaff() della classe Organo.

input: l’organo di staff da aggiungere, ovvero l’organo passato come parametro alla funzione add-Staff().

descrizione: il test intende verificare il corretto funzionamento del procedimento di aggiunta di un organo di staff.

Inizialmente `e stato creato il nodo radice, il quale ovviamente non `e un organo di staff. Per verificare il corretto funzionamento della funzione sono stati effettuati vari controlli.

Il primo controllo consiste nel verificare la lunghezza dell’array di organi di staff dell’organo radice. Dopo la creazione, la lunghezza dell’array deve essere 0, poi deve aumentare di una unit`a ogni qualvolta si aggiunge un organo di staff. Sono stati quindi aggiunti quattro organi di staff ed `e stata controllata la lunghezza dell’array prima e dopo ogni inserimento.

Il secondo controllo consiste nel verificare che gli organi dell’array di staff siano effettivamente quelli inseriti. Dopo aver aggiunto tutti gli organi di staff `e stato quindi controllato che gli elementi dell’array fossero esattamente quelli inseriti.

Il terzo ed ultimo controllo consiste nel verificare che il padre degli organi di staff sia effetti-vamente la radice. Per ogni organo di staff creato `e quindi stato fatto il controllo sul padre.

In realt`a, l’assegnamento del padre di un organo viene fatto al momento dell’inizializzazione, quindi in questo caso viene testata anche le funzione Init().

risultato: positivo, i valori ritornati erano quelli attesi, l’operazione di aggiunta di un organo di staff `e quindi stata implementata in modo corretto.

test(“testing aggiungi subordinato”, function());

una singola funzione di test che testa la funzione addSub() della classe Organo.

input: l’organo subordinato da aggiungere, ovvero l’organo passato come parametro alla funzione addSub().

descrizione: il test intende verificare il corretto funzionamento del procedimento di aggiunta di un organo subordinato.

Inizialmente `e stato creato un nodo radice ed altri organi suoi subordinati. Per alcuni

su-Anche in questo caso per verificare il corretto funzionamento della funzione sono stati effettuati vari controlli diversi tra loro.

Il primo controllo consiste nel verificare la lunghezza dell’array di organi subordinati di tutti gli organi. Dopo la creazione di un organo, la lunghezza dell’array deve essere 0, poi deve aumentare di una unit`a ogni qualvolta si aggiunge un organo subordinato. Sono quindi stati creati vari organi subordinati, come figli di diversi organi, ed `e stata controllata la lunghezza dell’array prima e dopo ogni inserimento.

Il secondo controllo consiste nel verificare che gli organi dell’array di subordinati siano effet-tivamente quelli inseriti. Dopo aver aggiunto gli organi subordinati, `e stato controllato, per ogni organo, che ogni elemento dell’array di subordinati fosse effettivamente quello inserito;

ovviamente se l’array `e vuoto, ovvero l’organo non ha alcun subordinato, non `e stato fatto nessun controllo.

Il terzo ed ultimo controllo consiste nel verificare che il padre degli organi subordinati sia effettivamente quello atteso. Per ogni organo subordinato creato `e quindi stato fatto il con-trollo sul padre. In realt`a, l’assegnamento del padre di un organo viene fatto al momento dell’inizializzazione, quindi in questo caso viene testata anche le funzione Init().

risultato: positivo, i valori ritornati erano quelli attesi, l’operazione di aggiunta di un organo subordinato `e quindi stata implementata in modo corretto.

test(“testing isDiscendente”, function());

una singola funzione di test che testa la funzione isDiscendente() della classe Organigramma.

input: gli organi dei quali si vuole testare la discendenza, ovvero gli organi passati come paramatri alla funzione.

descrizione: il test intende verificare il corretto funzionamento della funzione isDiscendente, la quale ritorna true se il primo organo passato come parametro `e discendete del secondo, false altrimenti.

Inizialmente sono stati creati cinque organi tra cui uno di staff.

La funzione isDiscendente() `e stata richiamata per tutte le permutazioni possibili degli organi creati, in modo da ottenere risultati negativi e positivi.

La funzione `e inoltre stata testata passando come parametro due volte lo stesso organo; in questo caso la funzione deve ritornare false in quanto un organo non `e discendente di se stesso.

risultato: positivo, i valori ritornati erano quelli attesi, l’operazione di verifica della discendenza di un organo rispetto ad un altro `e quindi stata implementata in modo corretto.

test(“testing aggiungi info”, function());

una singola funzione di test che testa la funzione aggiungiInfo() della classe Organo.

input: le informazioni da aggiungere all’organo, ovvero nome, cognome, ruolo e colore.

descrizione: il test intende verificare il corretto funzionamento della funzione di aggiunta di infor-mazioni. Dopo la creazione di due organi (uno autoritario e uno di staff) sono stati controllati i valori di nome, cognome e ruolo, i quali devono essere vuoti. `E stato inoltre controllato il valore del parametro colore, il quale deve essere diverso a seconda che si tratti di un organo di staff o meno.

Dopo la chiamata alla funzione `e stato verificato che i valori nome, cognome, ruolo e colore dell’organo corrispondessero ai valori passati come parametro.

risultato: positivo, i valori ritornati erano quelli attesi, l’operazione di aggiunta di informazioni `e quindi stata implementata in modo corretto.

test(“testing inserisciOrgano”, function());

una singola funzione di test che testa la funzione inserisciOrgano() della classe Organigramma.

input: il nome, cognome, ruolo dell’ente che si vuole aggiungere, un numero progressivo che funge da id e l’id del padre.

descrizione: il test intende verificare il corretto funzionamento della funzione inserisciOrgano della classe Organigramma. Tale funzione richiama a sua volta le funzioni, gi`a testate, addSubordi-nato() o addStaff() e aggiungiInfo() della classe Organo. Per testare il corretto funzionamento della funzione sono stati aggiunti sette organi e sono stati fatti due controlli.

Il primo consiste nel verificare che la lunghezza dell’array di organi della classe Organigramma corrisponda al numero di organi inseriti.

Il secondo controllo consiste nel verificare che gli elementi dell’array corrispondano effettiva-mente a quelli inseriti. Questo tipo di controllo `e stato fatto per ogni permutazione di coppie di elementi in modo tale da avere risultati positivi e negativi.

risultato: positivo, i valori ritornati erano quelli attesi, l’operazione di inserimento di un organo `e quindi stata implementata in modo corretto.

5.2.2 Test di sistema

Vengono qui di seguito elencati i requisiti obbligatori, definiti nel documento Analisi dei requisiti, che verranno testati tramite test di sistema. Per ognuno di tali requisiti verr`a data una descrizione di cosa dovr`a fare il test e il grado del suo soddisfacimento.

Tutti i requisiti testati fanno parte dello step 4 in quanto racchiude tutte le funzionalit`a disponibili nelle componenti dei test precedenti e ne implementa di aggiuntive.

Disegno organigramma

descrizione: il test deve verificare che all’apertura della pagina JSP generata da Portal Studio sia stato disegnato in modo corretto l’organigramma corrispondente ai dati inseriti nel database.

In particolare devono essere disegnati gli organi autoritari e subordinati, gli organi temporanei e di staff, e le connessioni che li collegano tra loro. All’interno degli organi devono essere scritte le informazioni relative all’ente quali nome, cognome e ruolo e, se presente nel database, l’immagine raffigurante l’ente.

soddisfacimento: parziale. La componente non disegna organi temporanei e relazioni di collabora-zione. Inoltre dall’organigramma non sono visibili immagini raffiguranti gli enti; tali immagini sono per`o visibili nella dialog delle informazioni aggiuntive.

Visualizzazione parte di organigramma

descrizione: il test deve verificare che al click dell’opportuno bottone del men`u, l’organigramma venga ridisegnato: l’organo selezionato dovr`a diventare l’organo con massima autorit`a, do-vranno quindi essere nascosti gli organi sovraposti a quello selezionato e quelli non collegati ad esso.

soddisfacimento: totale.

Visualizzazione globale

descrizione: il test deve verificare che dopo un’operazione di ridisegnamento sia possibile ritornare alla visualizzazione originale dell’organigramma cliccando sull’opportuno bottone del men`u.

soddisfacimento: totale.

Miglioramento visibilit`a

descrizione: il test deve verificare che, cliccando sul bottone di “compattamento”, venga ridise-gnato l’organigramma nascondendo tutti gli organi sottoposti a quello dal quale `e stata fatta l’operazione.

soddisfacimento: totale.

Spostamento organi

descrizione: il test deve verificare che, cliccando sul bottone di “spostamento”, sia possibile sele-zionare un organo, il quale sar`a il nuovo “padre” dell’organo da spostare. Il test deve inoltre verificare che l’organo venga spostato nella posizione attesa o, nel caso in cui l’organo selezio-nato come nuovo “padre” non possa essere effettivamente un organo autoritario (ad esempio l’organo selezionato `e un organo di staff), non venga fatta alcuna operazione di spostamento.

In caso di spostamento il test deve verificare che la nuova posizione dell’ente spostato sia stata memorizzata nel database.

soddisfacimento: totale.

Visualizzazione facilitata ente

descrizione: il test deve verificare che nella pagina JSP sia presente una select-box contenente tutti i nomi degli enti che fanno parte dell’organigramma. Il test deve inoltre verificare che alla selezione di un nome presente nella lista, ne venga evidenziato l’organo corrispondente nella struttura grafica.

soddisfacimento: totale.

Visualizzazione informazioni aggiuntive

descrizione: il test deve verificare che, cliccando nel bottone di “visualizzazione informazioni”

presente nel men`u, vengano visualizzate informazioni aggiuntive relative all’ente corrispondente all’organo dal quale `e stata effettuata l’operazione.

soddisfacimento: totale.

Documenti correlati