FitNesse: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
 +Correggere  | 
				 →Collegamenti esterni:  Aggiunto il template "Portale" Etichette: Modifica da mobile Modifica da applicazione mobile Modifica da applicazione Android  | 
				||
| (6 versioni intermedie di 5 utenti non mostrate) | |||
Riga 1: 
'''FitNesse''' è un [[server web]] su interfaccia [[wiki]] per facilitare la fase di [[automazione del collaudo del software|test]] e verifica nello sviluppo del [[software]] in vari linguaggi di programmazione. 
Esso è basato  
FitNesse permette agli utenti anche non esperti di un sistema di inserire un input in un formato speciale, accessibile anche ai non-programmatori. Questo input  
FitNesse è scritto in [[Java (linguaggio di programmazione)|Java]] (da [[Robert Cecil Martin]] e altri). Il programma inizialmente supportava solamente Java, ma nel  
== Principi di FitNesse == 
Riga 12 ⟶ 11: 
FitNesse era stato inizialmente progettato come un'interfaccia altamente usabile nell'ambito della famiglia di FitNesse. La sua intenzione era quella di supportare una [[metodologia agile]] di ''[[black-box]] [[black-box testing|testing]]'', vale a dire un collaudo finale del software, senza conoscere ed entrare nel dettaglio della sua composizione, che si conclude con una accettazione o un rifiuto. In questo tipo di approccio, i collaudatori funzionali collaborano con i programmatori software per sviluppare uno strumento di testing dedicato. 
Il collaudatore funzionale è responsabile di progettare i test dal punto di vista funzionale (output che si ottiene in risposta a un certo input) e di implementarli in FitNesse, mentre lo sviluppatore software ha il compito di connettere lo strumento di testing di FitNesse col sistema sotto esame, in modo tale che FitNesse possa eseguire il  
L'idea sottostante descritta nel libro ''Fit for Developing Software''<ref>Rick Mugridge, Ward Cunningham, ''Fit for Developing Software: Framework for Integrated Tests'', ed. Prentice Hall, Giugno 2005</ref> è la seguente: una collaborazione forzata fra sviluppatori e tester migliorerà la comprensione reciproca del funzionamento del sistema e la definizione dei requisiti, costringendo due gruppi a organizzarsi in un linguaggio comune, mentre imparano a comunicare insieme. 
Riga 19 ⟶ 18: 
I test funzionali in FitNesse sono descritti come una sorta di coppia di input e output. Queste coppie sono espresse graficamente mediante una tabella di decisione (n campi con i valori per ogni variabile di input, e una colonna per l'azione decisa risultante). FitNesse supporta numerose di queste tabelle, spaziando da tabelle in cui la decisione è un campo testuale, a tabelle che eseguono query verso altre tabelle che eseguono degli script di verifica. La forma più generale è una tabella completamente vuota che può essere interpretata a piacere dal progettista. Tutti i test comunque sono espressi in un qualche tipo di tabella. 
FitNesse focalizza tester e sviluppatori nella creazione di test di qualità, senza perdersi nel meccanismo di questi test, perché: creazione agevole di tabelle,  
=== FitNesse come uno strumento software === 
FitNesse è scritto in  
Durante l'esecuzione, FitNesse lancia un server web interno, che mostra le pagine testate sia in locale sul computer,  
Dopo aver lanciato il web server, FitNesse apre il proprio motore wiki su tale server. Questo motore wiki è di nuovo caratterizzato dalla semplicità, nel senso che non richiede un database sottostante per funzionare, semplicemente crea una collezione di pagine wiki (navigabili ''offline'') che sono interpretate dal motore wiki e mostrate dal server interno. Il Wiki creato automaticamente da FitNesse include il manuale utente e vari esempi. La  
Il motore Wiki è minimale, ma offre tutte le funzionalità di base dei motori wiki: [[motore di ricerca]] interni e per il [[Web]], [[ChangeLog|cronologia delle modifiche]] di ogni pagina, e un indice del file, oltre ad alcune funzionalità che permettono di  
=== Esecuzione del test === 
L'esecuzione dei test coinvolge quattro componenti di FitNesse: 
* la pagina Wiki che esprime il test come una tabella di decisione 
* un motore per i test, che interpreta la pagina Wiki 
* una ''[[text fixture]]'', che è chiamata dal motore che esegue il test, e che a sua volta chiama il sistema oggetto del test 
* il sistema che deve essere testato. 
Il team di sviluppatori realizza due  
{| classe="wikitable" 
Riga 52 ⟶ 51: 
|} 
Il collegamento fra il motore di testing generico e il sistema oggetto di test, è  realizzato da un  
L'associazione fra la pagina Wiki e il codice detto ''fixture'' avviene tramite una mappatura con semplice [[notazione a cammello]]. Questa mappatura si applica per tutte le intestazioni di tabella (e colonna), e serve a identificare il nome della [[Classe (informatica)|classe]] di ''fixture'' (es. ''Division component test'') e dei suoi [[metodo (programmazione)|metodi]] (''num'' e ''denom''). 
Il codice in esame: 
* dichiara il tipo ''double'' delle variabili "numerator", "denominator", "result";  
* chiama le prime due (copia) dalla tabella di decisione; 
* 
* li passa come input al sistema sotto test visto come una generica funzione *.divide, 
*il sistema calcola la divisione, e restituisce un valore reale 
* il codice ''fixture'' lo assegna (copia) alla variabile "result". 
Una intestazione di colonna  
=== Motori di testing === 
La mappatura attuale sopra descritta (così come la chiamata dei metodi della fixture), è 
==== FIT ==== 
FIT è 
==== SLIM ==== 
SLIM (Simply List Invocatiin Method) è un'alternativa a FIT, cui negli ultimi anni è migrato lo stesso team di sviluppatori di FitNesse. Il motore SLIM è una implementazione del protocollo Slim. Invece di combinare tutti gli elementi di una pagina wiki per il testing, il motore SLIM si concentra invece sulla chiamata del codice ''fixture''; esso si comporta come un server separato che viene chiamato da  
In questo modo, il codice Java della ''fixture'' viene  
== Note == 
<references/> 
== Collegamenti esterni == 
* {{Collegamenti esterni}} 
{{Portale|informatica}} 
[[Categoria:Server web liberi]] 
 | |||