Unit testing: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m typos e virgole |
→Collegamenti esterni: Aggiunto il template "Portale" Etichette: Modifica da mobile Modifica da applicazione mobile Modifica da applicazione Android |
||
(5 versioni intermedie di 4 utenti non mostrate) | |||
Riga 1:
{{F|informatica|gennaio 2024}}
In [[ingegneria del software]], per '''unit testing''' ('''testing d'unità''' o '''testing unitario'''<ref name="glossario">[http://www.analisi-disegno.com/testing/glossario-testing/ Glossario sul software testing]</ref>) si intende l'attività di ''testing''<ref>Nella terminologia inglese, diffusa anche nella letteratura italiana ma non sempre adottata in modo coerente, la parola ''testing'' indica l'attività di prova nel suo insieme; una singola prova viene chiamata ''test''.</ref> (prova, collaudo) di singole unità [[software]]. Per unità si intende normalmente il minimo componente di un [[programma (informatica)|programma]] dotato di funzionamento autonomo; a seconda del [[paradigma di programmazione]] o [[linguaggio di programmazione]], questo può corrispondere per esempio a una singola [[funzione (informatica)|funzione]] nella [[programmazione procedurale]], o una singola [[classe (informatica)|classe]] o un singolo [[metodo (programmazione)|metodo]] nella [[programmazione a oggetti]].▼
▲In [[ingegneria del software]], per '''''unit testing'''
Lo ''unit testing'' viene normalmente eseguito dagli [[Sviluppatore software|sviluppatori]], e può essere occasionalmente [[glass box testing|glass box]], ovvero essere esplicitamente basato sulla conoscenza dell'architettura e del funzionamento interno di un componente oltre che sulle sue funzionalità esternamente esposte.<ref name="glossario"/> Lo unit testing è tipicamente [[Automazione del collaudo del software|automatico]], ed è implementato utilizzando librerie predisposte per ciascun linguaggio di programmazione (per esempio JUnit in Java, da cui prendono spunto anche la maggior parte delle altre librerie software di Unit Testing). Lo sviluppo dei [[caso di test|test case]] (cioè delle singole procedure di test) può essere considerato parte integrante dell'attività di sviluppo (per esempio, nel caso dello [[test driven development|sviluppo guidato da test]]) ed è una best practice raccomandata sempre durante lo sviluppo software in quanto è in grado di verificare il buon funzionamento di ogni singola componente del software in poco tempo e con grande affidabilità <ref>{{Cita web|url=https://testing.googleblog.com/2015/04/just-say-no-to-more-end-to-end-tests.html|titolo=Just Say No to More End-to-End Tests|sito=Google Testing Blog|lingua=en|accesso=2022-01-14}}</ref>.▼
▲Lo ''unit testing'' viene normalmente eseguito dagli [[Sviluppatore software|sviluppatori]], e può essere occasionalmente [[
== Vantaggi ==
Lo scopo dello unit testing
===Semplifica le modifiche===
Line 37 ⟶ 39:
== Separazione dell'interfaccia dall'implementazione ==
Poiché alcune classi possono far riferimento ad altre, il test di una classe spesso si propaga alle altre. Un esempio è una classe che interagisce con
== Applicazioni ==
===Extreme Programming===
{{Vedi anche|Extreme programming}}
Lo unit testing è la parte fondamentale dell'''[[
L'Extreme Programming usa la creazione di unit test per lo
Tutte le classi sono testate in questo modo e lo sviluppatore rilascia il codice di test insieme al codice funzionale da esso testato. La XP, con uno unit testing approfondito, presenta tutti i benefici descritti sopra e i test sono utilizzati successivamente come test di regressione.
Line 58 ⟶ 61:
In un framework automatizzato lo sviluppatore codifica i casi da testare in modo che verifichino la correttezza del modulo e durante l'esecuzione venga riportato l'eventuale fallimento di ogni test. In alcuni casi di fallimento di test critici, l'intera procedura di test viene fermata.
La conseguenza dello unit testing è un approccio alla programmazione che favorisce la scrittura di codice in moduli indipendenti ed interoperanti, che a sua volta contribuisce, insieme ai ''[[
===Unit testing framework===
Line 73 ⟶ 76:
* [[Regression testing]]
* [[Software testing]]
* [[JUnit]]
==Collegamenti esterni==
* {{FOLDOC||unit testing}}
* {{cita web |1=http://www.xprogramming.com/testfram.htm |2=L'originale unit testing di Kent Beck per il framework(in inglese) |accesso=13 ottobre 2007 |urlarchivio=https://web.archive.org/web/20150315073817/http://www.xprogramming.com/testfram.htm# |dataarchivio=15 marzo 2015 |urlmorto=sì }}
* {{cita web|url=http://www.softdevarticles.com/modules/weblinks/viewcat.php?cid=34|titolo=Una lista di articoli sull'unit testing(in inglese)|accesso=13 ottobre 2007|urlarchivio=https://web.archive.org/web/20071013132751/http://softdevarticles.com/modules/weblinks/viewcat.php?cid=34|dataarchivio=13 ottobre 2007|urlmorto=sì}}
* {{cita web | 1 = http://shebanation.com/2007/08/21/a-brief-history-of-test-frameworks/ | 2 = La storia dell'unit testing per il framework di Andrew Shebanow(in inglese) | accesso = 13 ottobre 2007 | urlarchivio = https://web.archive.org/web/20071013141402/http://shebanation.com/2007/08/21/a-brief-history-of-test-frameworks/ | dataarchivio = 13 ottobre 2007 | urlmorto = sì }}
{{Portale|informatica|ingegneria}}
[[Categoria:Ingegneria del software]]
|