Gino Lacquaniti e Collaudo del software: differenze tra le pagine

(Differenze fra le pagine)
Contenuto cancellato Contenuto aggiunto
 
Luigi923 (discussione | contributi)
Senza fonte
 
Riga 1:
{{Nota disambigua|l'album di [[ASAP Rocky]] del 2018|Testing (album)|Testing}}
{{Bio
{{F|ingegneria del software|maggio 2012}}
|Nome = Gino
Il '''collaudo del software''' (detto anche '''testing''' o '''software testing''' secondo le denominazioni [[lingua inglese|inglesi]]), in [[informatica]], indica un procedimento, che fa parte del [[ciclo di vita del software]], utilizzato per individuare le carenze di [[Correttezza (logica matematica)|correttezza]], [[Specifica (ingegneria del software)#Completezza|completezza]] e [[affidabilità]] delle componenti [[software]] in corso di sviluppo. Consiste nell'eseguire il software da collaudare, da solo o in combinazione ad altro software di servizio, e nel valutare se il comportamento del software rispetta i requisiti.
|Cognome = Lacquaniti
|PostCognomeVirgola = all'anagrafe '''Luigi Lacquaniti'''
|Sesso = M
|LuogoNascita = Palmi
|GiornoMeseNascita = 11 novembre
|AnnoNascita = 1901
|LuogoMorte = Palmi
|GiornoMeseMorte = 31 maggio
|AnnoMorte = 1982
|Attività = geografo
|Attività2 = poeta
|Attività3 = saggista
|Epoca = 1900
|Nazionalità = italiano
|Immagine = Luigi_Lacquaniti.jpeg
}}
 
A volte il collaudo viene confuso con il [[debugging]], con il [[Profiling (programmazione)|profiling]], o con il [[benchmark (informatica)|benchmarking]]. Fa parte delle procedure di [[assicurazione di qualità]].
== Biografia ==
Gino (Luigi) Lacquaniti è nato a [[Palmi]]<ref>L'Amministrazione Comunale di Palmi nel 2001 ha inserito il suo nome nella toponomastica urbana.</ref> ([[Reggio Calabria]]) l’11 novembre 1901. Conseguita la licenza ginnasiale presso il locale R. Ginnasio e successivamente il diploma del R. Corso Magistrale della città, insieme con [[Felice Battaglia]], [[Domenico Antonio Cardone]], Nino Fondacaro, Michele Loiaconi e altri, fondò un periodico letterario ''[[Ebe]]'' a cui aderirono anche professionisti affermati nell’insegnamento e nell’attività forense. Il sodalizio culturale però, tra il [[1921]] e il [[1925]], temporaneamente si sciolse perché i più giovani collaboratori si trasferirono in altre città per frequentare l’università e il Lacquaniti, chiamato a prestare servizio militare di leva, partì per [[Torino]] per frequentare la Scuola Allievi Ufficiali nell’Arma di Artiglieria Alpina del [[Regio Esercito]]. Nominato Sottotenente, concluse il servizio militare nel [[1923]] e tornato a Palmi intraprese la carriera dell’insegnamento elementare. Nel [[1925]] i vecchi amici, nel frattempo riunitisi, diedero vita ad un sodalizio più complesso che si chiamò “Rivista del Fondaco di Cultura”. La poesia, sua prima forma espressiva letteraria, trova forma e organizzazione in un volume intitolato ''Strade e cieli'' <ref>{{cita|Strade e cieli}}</ref> che appare nel [[1934]] edito dalla casa editrice Appennia, Palmi. Nello stesso anno il Lacquaniti, incoraggiato dal Commissario Prefettizio del tempo, costituì ''ex novo'' il primo nucleo della [[biblioteca comunale Domenico Topa|Biblioteca comunale ''Domenico Topa'']]<ref>{{Cita web|url=http://www.comune.palmi.rc.it/index.php?action=index&p=343|titolo=Biblioteca Comunale "Domenico Topa" - Comune di Palmi|sito=www.comune.palmi.rc.it|accesso=2017-04-02}}</ref> di Palmi di cui si occupò fino al [[1940]], con una interruzione nel periodo 1935/38, durante il quale prese parte alle operazioni militari in [[Africa]].<ref>{{cita|AMICO|p. 59}}</ref>
 
== Descrizione generale ==
Nel [[1939]], a cura della casa editrice Saturnia di [[Alessandria]], vede la luce una seconda raccolta poetica ''Luci sul mare'' <ref>{{cita|Luci sul mare}}</ref>, dove, come nella prima antologia, Lacquaniti manifesta la sua verve poetica molto vicina alle correnti crepuscolari e decadenti <ref>{{cita|Luigi Lacquaniti – Poeta e Geografo|pag. 62}}</ref>. È in questo periodo che Lacquaniti per rendere gli studi multidisciplinari, fino a quel momento coltivati, meno dispersivi e frammentari nonostante la sua non comune versatilità, e per dare una risposta adeguata agli impegni culturali e organizzativi, operò una decisa scelta di campo, avviandosi allo studio sistematico della [[Geografia]] e alle ricerche geografiche. Un interesse, questo per la Geografia, che risaliva ai banchi di scuola e che si sarebbe ben presto trasformato in una vera vocazione che aveva tratto impulso, da un lato, dalla lettura di alcune riviste geografiche capitate casualmente tra le mani e che gli avevano fatto scoprire una geografia ''diversa'' di quella dei testi scolastici, e, dall’altro, dagli ampi panorami che si godono dalla villa comunale e dal [[Monte Sant'Elia (Palmi)|Monte Sant’Elia]], che hanno avuto un valore autodidattico rilevante perché hanno affinato il suo spirito di osservazione, reso più acuto il suo senso estetico e più profondi i sentimenti verso la natura.
In generale, occorre distinguere i "malfunzionamenti" del software (in inglese, "failure"), dai "difetti" (o "errori" o "bachi") del software (in inglese, "fault" o "defect" o "bug"). Un ''malfunzionamento'' è un comportamento del software difforme dai requisiti espliciti o impliciti. In pratica, si verifica quando, in assenza di malfunzionamenti della piattaforma (hardware + software di base), il sistema non fa quello che l'utente si aspetta.
 
Un '''difetto''' è una sequenza di istruzioni, sorgenti o eseguibili, che, quando eseguita con particolari dati in input, genera un malfunzionamento. In pratica, si ha un malfunzionamento solo quando viene eseguito il codice che contiene il difetto, e solo se i dati di input sono tali da evidenziare l'errore. Per esempio, se invece di scrivere "a >= 0", il programmatore ha erroneamente scritto "a > 0" in una istruzione, si può avere un malfunzionamento solo quando viene eseguita quell'istruzione mentre la variabile "a" vale zero. Lo scopo del collaudo è di rilevare i difetti tramite i malfunzionamenti, al fine di minimizzare la probabilità che il software distribuito abbia dei malfunzionamenti nella normale operatività.
Il sentiero della Geografia percorso dal Lacquaniti fu difficile, lungo e solitario perché lo sviluppo della sua personalità geografica avvenne senza una guida, lontano dal mondo accademico, e maturò in un contesto culturale che, decisamente orientato in senso umanisticamente filosofico e letterario, era chiuso alla Geografia ritenuta una disciplina naturalistica.
Il suo primo articolo su ''I bradisismi calabresi'' <ref>{{cita|I bradisismi calabresi}}</ref> lo pubblicò nel [[1926]] nella rassegna locale “Albori”, a cui fecero seguito alcuni articoli divulgativi tra cui ''Bellezze naturali della Calabria: il monte S. Elia'' ([[1929]]) <ref>{{cita|Bellezze naturali della Calabria: Il monte S. Elia}}</ref>, in cui aspetti fisici ed aspetti estetici trovano un felice momento di sintesi. Nel frattempo, non più tanto giovane, e sposato con figli, si era iscritto al Magistero di [[Messina]], dove conseguì la laurea in Lettere che gli aprì la strada all'insegnamento secondario.
 
Nessun collaudo può ridurre a zero tale probabilità, in quanto le possibili combinazioni di valori di input validi sono enormi, e non possono essere riprodotte in un tempo ragionevole; tuttavia un buon collaudo può rendere la probabilità di malfunzionamenti abbastanza bassa da essere accettabile dall'utente.m L'accettabilità di una data probabilità di malfunzionamento dipende dal tipo di applicazione.
Gli anni ’40 furono gli anni nel quale Lacquaniti cominciò a cogliere le prime significative affermazioni. I suoi articoli e note originali venivano pubblicate nelle riviste specializzate di Geografia (“Rivista geografica Italiana”, “Bollettino della [[Società Geografica Italiana]]”, “L’Universo”) e a riconoscimento della attività scientifica venne chiamato ([[1945]]) a coprire il posto di assistente straordinario di Geografia presso l’[[Istituto Universitario Orientale di Napoli]], dove rimase fino al [[1950]], stimato collaboratore del prof. [[Elio Migliorini]] direttore dell’Istituto e ordinario di Geografia Politica ed Economica.
Nel [[1941]] pubblicò una ''Nota sugli studi per la conoscenza geografica della Calabria'' <ref>{{cita|Nota sugli studi per la conoscenza geografica della Calabria}}</ref>, che rappresentò il primo studio completo di bibliografia geografica ragionata sulla [[Calabria]], ma anche il primo lavoro con cui un calabrese dimostrava interesse per tale genere di studi, rompendo una tradizione culturale che non aveva mai avuto aperture verso la Geografia.
Seguirono articoli e note che si segnalavano per le osservazioni geografiche, ma anche perché aprivano alla conoscenza di temi e problematiche di geografia fisica e antropica della Calabria. Si ricordano un breve ma conciso scritto sugli ''Spostamento di sito di alcuni centri abitati della [[Piana di Gioia Tauro|Piana di Palmi]] in relazione ai terremoti del [[1783]]'' ([[1942]]) <ref>{{cita|Spostamento di sito di alcuni centri abitati della Piana di Palmi in relazione ai terremoti del 1783}}</ref>; una sintetica nota su ''[[Agricoltura]], vie di comunicazione e porti in Calabria secondo la morfologia'' ([[1942]]) <ref>{{cita|Agricoltura, vie di comunicazione e porti in Calabria secondo la morfologia}}</ref>, che offriva interessanti spunti per eventuali successivi studi; un breve ma compiuto articolo sull’evoluzione degli insediamenti umani in Calabria ([[1946]]) <ref>{{cita|Morfologia ed evoluzione degli abitati della Calabria. Considerazioni antropogeografiche}}</ref> e poi un’importante ricerca ([[1949]]) sul ''glacialismo [[quaternario]] in Calabria'' <ref>{{cita|I circhi glaciali della Serra Cannavi nell’Aspromonte ed il limite altimetrico wurmiano delle nevi (Appennino Calabrese)}}</ref>, che, individuando forme glaciali in [[Aspromonte]], sovvertiva il convincimento che la Calabria fosse rimasta esclusa da un tale fenomeno e apriva una capitolo nuovo per studi più approfonditi; e ancora una breve ma succosa monografia su ''Il Dossone della [[Scilla (Italia)|Melia]]'' ([[1950]]) <ref>{{cita|Il Dossone della Melia (Calabria Meridionale)}}</ref>, a dimostrazione che il breve istmo montagnoso di collegamento tra il gruppo della Serra e l’Aspromonte è una compiuta regione geografica <ref>Il criterio metodologico di geografia "fatta a piedi" è stato per Lui, e da sempre, uno dei punti fermi nell'ambito della ricerca, dotato com'era di acuto spirito di osservazione e di un intuito straordinario. ''Scritti Geografici 1941-1976'', pag.17</ref>. Nel [[1952]] individuò, con un gruppo di volontari, la cripta di san [[Fantino il Vecchio]] tra le rovine dell'antica [[Tauriana]].
 
Il software per cui è richiesta la massima qualità, è quello cosiddetto "life-critical", cioè in cui un malfunzionamento può mettere a rischio la vita umana, come quello per apparecchiature medicali o aeronautiche. Per tale software è accettabile solo una probabilità di malfunzionamento molto bassa, e pertanto il collaudo è molto approfondito e rigoroso. Per rilevare il maggior numero possibile di difetti, nel collaudo si ''sollecita'' il software in modo che sia eseguita la maggior quantità possibile di codice con svariati dati di input.
Dal 1º ottobre [[1953]], vincitore di concorso, venne nominato straordinario di Storia e Geografia presso l’[[Istituto Nautico]] di [[Riposto]] ([[Catania]]) e nell’anno successivo venne trasferito in quello di Messina dove rimase fino al 30 settembre [[1962]] poiché dal 1º ottobre dello stesso anno andò, con passaggio alla cattedra di Italiano e Storia, a Palmi presso l’[[Istituto Tecnico Commerciale]], dove gli venne affidata la presidenza che mantenne fino alla fine della carriera. Nel [[1955]], in collaborazione con [[Antonino Basile]], [[Casa della cultura#Antiquarium Nicola De Rosa|Nicola De Rosa]], Giuseppe Pignataro, Francesco Salerno, Francesco Cipri e Antonino Nasso, fondò il [[Casa della cultura#Museo di etnografia e folklore Raffaele Corso|museo di etnografia e folklore "Raffaele Corso"]]<ref>{{Cita web|url=http://www.comune.palmi.rc.it/index.php?action=index&p=348|titolo=Museo etnografico "Raffaele Corso" - Comune di Palmi|sito=www.comune.palmi.rc.it|accesso=2017-04-02}}</ref> sito in Palmi all'interno di [[Palazzo San Nicola]]. Negli anni di insegnamento secondario a Messina, nonostante facesse il pendolare da Palmi, continuò a pubblicare articoli e note che erano soprattutto spunti per nuove ricerche in una regione che negli aspetti geografici era tutta da esplorare. Si ricordano gli articoli su ''Lo stato attuale delle conoscenze sul [[Carsismo]] e sulla [[idrografia]] sotterranea in Calabria'' (1955) <ref>{{cita|Lo stato attuale delle conoscenze del carsismo e sull’idrografia sotterranea in Calabria}}</ref>, che rappresentava il primo contributo di un certo interesse in questo campo; sugli ''Aspetti geografici della vita agricola e pastorale del [[Monte Poro|Poro]] in Calabria'' ([[1957]]) <ref>{{cita|Aspetti geografici della vita agricola e pastorale dell’Altopiano del Poro in Calabria}}</ref>, in cui venivano messi in evidenza gli aspetti geografici del fatto turistico. Intanto aveva ottenuto nell'anno accademico 1955/56 l’incarico di insegnamento presso la cattedra di Geografia Economica dell’[[Università degli Studi di Messina]], incarico che mantenne fine al limite della carriera (1971/72), nel frattempo aveva conseguito la libera docenza in Geografia ([[1959]]).<ref>La Facoltà di Economia dell'ateneo messinese, nel 1987, ha voluto ricordarlo, per i suoi meriti scientifici e di magistero, intitolandogli il laboratorio di Geografia Economica.</ref>
 
Può anche darsi che un errore nel codice sorgente generi un malfunzionamento solo se si utilizza un particolare [[compilatore]] o [[Interprete (informatica)|interprete]], o solo se eseguito su una particolare piattaforma. Pertanto può essere necessario collaudare il software con vari ambienti di sviluppo e con varie piattaforme di utilizzo.
Negli anni ’60 e ’70, se si escludono alcuni articoli divulgativi pubblicati su “Tuttitalia” e riferiti alla Piana di Palmi ([[1963]]) e al gruppo della Serra (1963) <ref>{{cita|Boscose serre}}</ref>, uno scritto su ''Le aree secondarie socio-economiche della Calabria'' ([[1969]]) <ref>{{cita|Le aree secondarie socio-economiche della Calabria}}</ref> e una nota di aggiornamento – “Calabria oggi” ([[1973]]) – sulle condizioni antropiche ed economiche della regione, la produzione è rivolta prevalentemente al turismo ed ai suoi aspetti geografici ([[1975]] e [[1976]]), visti anche in funzione di una programmazione turistica (1973) <ref>{{cita|Aspetti geografici della programmazione turistica}}</ref> e altresì alla geografia umana della Calabria, con la pubblicazione di un volumetto ''Calabria – Natura e storia'' <ref>{{cita|Calabria. Natura e storia}}</ref> in cui il Lacquaniti, in undici agili saggi, descrive le sub regioni umane in cui è divisibile la Calabria, e per ognuna di esse mette in evidenza la personalità e gli aspetti geografici. Nello stesso periodo egli fu fondatore e presidente della sezione regionale calabrese dell'[[Associazione italiana insegnanti di geografia]].
 
Le tecniche di collaudo possono essere classificate in molti modi. I principali sono i seguenti:
Il prof. Lacquaniti è morto il 31 maggio 1982 a Palmi.<ref>{{cita|AMICO|pp. 60-63}}</ref>
* Per modello di sviluppo: a cascata, guidato dal collaudo.
* Per livello di conoscenza delle funzionalità interne: a scatola bianca, a scatola nera.
* Per appartenenza o meno dei collaudatori all'organizzazione che modifica i sorgenti, nonché per fase di sviluppo: Alfa, Beta.
* Per grado di automazione: manuale, semi-automatizzato, completamente automatizzato.
* Per granularità: collaudo di modulo, collaudo di sistema.
* Per grado di formalità: da informale a formale.
 
=== Verifica e validazione ===
== Opere scientifiche ==
La fase di '''verifica''' e di '''validazione''' serve ad accertare che il [[software]] rispecchi i requisiti e che li rispetti nella maniera dovuta.
* {{cita libro|''I bradisismi calabresi'', Monografia - Testo a stampa, Albori: rassegna quindicinale di vita e cultura calabrese, Stab. tip. A. Genovesi & Figli, 1926, Palmi|cid=I bradisismi calabresi}}
* {{cita libro|''Bellezze naturali della Calabria: Il monte S. Elia'', Monografia - Stab. tip. Orfanelli, 1929, [[Polistena]]|cid=Bellezze naturali della Calabria: Il monte S. Elia}}
* ''Morfologia e toponomastica nell'Aspromonte nordoccidentale'', l’Universo, XII (1941), pp.&nbsp;99–106.
* {{cita libro|''Nota sugli studi per la conoscenza geografica della Calabria'', Archivio storico per la Calabria e la [[Lucania]], XI (1941), pp.&nbsp;269–84|cid=Nota sugli studi per la conoscenza geografica della Calabria}}
* {{cita libro|''Spostamento di sito di alcuni centri abitati della Piana di Palmi in relazione ai terremoti del 1783'', Boll. Soc. Geogr. Ital., vol. VIII, Sr. VII (1942), pp.&nbsp;40–42|cid=Spostamento di sito di alcuni centri abitati della Piana di Palmi in relazione ai terremoti del 1783}}
* ''Domenico Topa (nota necrologica)'', Archivio Storico per la Calabria e la Lucania, XII (1942), pp.&nbsp;19–21.
* {{cita libro|''Agricoltura, vie di comunicazione e porti in Calabria secondo la morfologia'', Boll. Soc. Geogr. Ital., vol. VIII, Sr. VII (1942), pp.&nbsp;167–69|cid=Agricoltura, vie di comunicazione e porti in Calabria secondo la morfologia}}
* ''Il Paleotimavo e l’antica idrografia subaerea del [[Carso]] Triestino'', Boll. Soc. Geogr. Ital., Sr. VII (1942), pp.&nbsp;108–9.
* ''La Piana di Palmi'', L’Universo, XXIV (1943), pp.&nbsp;215–20.
* {{cita libro|''Morfologia ed evoluzione degli abitati della Calabria. Considerazioni antropogeografiche'', Boll. Soc. Geogr. Ital., vol. XI, Sr. VII (1946), pp.&nbsp;31–6|cid=Morfologia ed evoluzione degli abitati della Calabria. Considerazioni antropogeografiche}}
* ''La colonizzazione della [[Nigeria]] Francese'', Boll. Soc. Geogr. Ital., vol. VIII, Sr. VII (1947), pp.&nbsp;31–3.
* ''La frana quaternaria del Monte Peròn nelle [[Dolomiti]] ([[Masiere]] di Vedana)'', L’Universo, XXVII (1947), pp.&nbsp;347–57.
* ''Caratteri morfologici della valle del [[Piave]] tra [[Longarone]] e Ferer. Considerazioni antropogeografiche'', Boll. Soc. Geogr. Ital., vol. XII, Sr. VII (1947), pp.&nbsp;128–31.
* ''Programma di ricerche [[sovietiche]] nell’[[Oceano Pacifico]]'', Boll. Soc. Geogr. Ital., VII (1947), pp.&nbsp;134–5.
* ''Note antropogeografiche sui Piani d’Aspromonte'', Rivista Geog. Ital., LV (1948), pp.&nbsp;172–85.
* ''Costituzione geologica degli insediamenti urbani nell’[[Albania]]. Forma di abitati e caratteristiche dell’abitazione'', Boll. Soc. Geogr. Ital., VII (1948), pp.&nbsp;243–7.
* ''Vita e abitazioni temporanee nel Piano di Arano (Altopiani d’[[Abruzzo]])'', Folklore, III (1948), pp.&nbsp;24–8.
* ''L’escursione geografica interuniversitaria nel Salernitano'', Boll. Soc. Geogr. Ital., vol. II, VIII (1949), pp.&nbsp;331–4.
* {{cita libro|''I circhi glaciali della Serra Cannavi nell’Aspromonte ed il limite altimetrico wurmiano delle nevi ([[Appennino]] Calabrese)'', Boll. Soc. Natur. [[Napoli]], LVIII (1949), pp.&nbsp;81–91|cid=I circhi glaciali della Serra Cannavi nell’Aspromonte ed il limite altimetrico wurmiano delle nevi (Appennino Calabrese)}}
* {{cita libro|''Il Dossone della Melia (Calabria Meridionale)'', Riv. Geogr. Ital., LVII (1950), pp.&nbsp;20–39|cid=Il Dossone della Melia (Calabria Meridionale)}}
* ''Le tracce glaciali quaternarie e l’antico limite altimetrico delle nevi nell’Aspromonte'', Atti della XLII Riun. della Soc. per il Progresso delle Scienze, [[Roma]] 1948, Roma, 1951 pp.&nbsp;141–6.
* ''Variazioni di linee di spiaggia nei [[Golfo di Sant'Eufemia|golfi di Sant’Eufemia]] e di [[Golfo di Gioia Tauro|Gioia]] (Calabria Tirrenica)'', Atti del XV Congr. Geogr. Ital., Torino 1950, vol. I, pp.&nbsp;278–83.
* ''La Piana di Palmi in Calabria. Contributo nel repertorio dei nomi territoriali italiani'', Atti del XV Congr. Geogr. Ital., Torino 1950, vol. II, pp.&nbsp;826–30.
* ''XVII Escursione geografica interuniversitaria (Calabria meridionale)'', 29 maggio – 3 giugno 1951, Palmi, Tip. G. Palermo, 1951, p.&nbsp;19.
* ''Forme di erosione della costa tirrenica della Calabria meridionale'', Riv. Geogr. Ital., LIX (1952), pp.&nbsp;261–9.
* ''Note morfologiche su un lembo di calcari concrezionati presso Palmi (Calabria)'', Riv. Geogr. Ital., LXII (1955), pp.&nbsp;139–42.
* ''Le case rurali e le capanne del Monte Poro in Calabria'', Folklore della Calabria, II (1957), Palmi, Tip. Palermo, pp.&nbsp;84–91.
* {{cita libro|''Lo stato attuale delle conoscenze del carsismo e sull’idrografia sotterranea in Calabria'', Atti XVII Congr. Geogr. Ital., [[Bari]], 1957, Vol. II, pp.&nbsp;113–23|cid=Lo stato attuale delle conoscenze del carsismo e sull’idrografia sotterranea in Calabria}}
* ''Attualità e potenzialità del movimento turistico in Calabria'', Atti XVII Congr. Geogr. Ital., Bari, 1957, Vol. II, pp.&nbsp;608–16.
* {{cita libro|''Aspetti geografici della vita agricola e pastorale dell’Altopiano del Poro in Calabria'', Atti XVII Congr. Geogr. Ital., Bari, 1957, Vol. III, pp.&nbsp;459–67|cid=Aspetti geografici della vita agricola e pastorale dell’Altopiano del Poro in Calabria}}
* ''Alcune notizie sulle grotte marine della Calabria'', Atti XVII Congr. Geogr. Ital., Bari, 1957, Vol. III, pp.&nbsp;94–95.
* ''Studi sulla geografia della Calabria'', Almanacco Calabrese, Roma, Ist. Grafico Tiberino, 1958, pp.&nbsp;149–56.
* ''Ricordo di Gian Ludovico Bertolini'', La Geografia nelle Scuole, IV (1959), pp.&nbsp;132–4.
* ''Anfiteatro sul [[Tirreno]]'', Tuttitalia, Enciclopedia dell’Italia antica e moderna, Calabria, n. 142, 1963 pp.&nbsp;116–22.
* ''Considerazioni sulle premesse geografiche dei piani di sviluppo economico'', La Geografia nella Scuola., VII (1963), pp.&nbsp;140–2.
* {{cita libro|''Boscose serre'', Tuttitalia, Enciclopedia dell’Italia antica e moderna, Calabria, n. 142, 1963 pp.&nbsp;164–6|cid=Boscose serre}}
* ''Cenni sulle condizioni geografiche della provincia di Reggio Calabria e itinerari delle escursioni'', Monografia - Testo a stampa, Convegno nazionale AIIG, Reggio Calabria-Palmi-[[Locri]], 27-30 dicembre 1965, Napoli, La buona stampa, 1965.
* ''Geografia Economica d’Italia: Basilicata e Calabria'', intervista televisiva, [[RAI TV]], 9 luglio 1968.
* {{cita libro|''Le aree secondarie socio-economiche della Calabria'', [[Il Tempo]], Roma, 22 aprile 1969|cid=Le aree secondarie socio-economiche della Calabria}}
* ''La Piana di Palmi negli scritti dei geografi del ‘700 e dell’’800'', Historica, n.3, XXIV (1971), pp. 153-65.
* ''Palmi e la Piana'', Monografia, Rotary Club Palmi, Ed. De Luca, Salerno (1971).
* {{cita libro|''Aspetti geografici della programmazione turistica'', Calabria Turismo, aprile-giugno 1973, pp. 23-28|cid=Aspetti geografici della programmazione turistica}}
* ''Calabria oggi'', La Geografia nella Scuola, n. 6, XVIII (1973), pp. 2017-13.
* ''Una piccola regione della Calabria. Il Poro'', Scritti geografici in onore di [[Riccardo Riccardi]], Parte I, Memorie della Soc. Geogr. Ital., Vol. XXXI, Roma, 1974, pp. 385-94.
* ''Turismo e paesaggio geografico nella Calabria tirrenica'', Calabria Turismo, n. 22-23, 1975, pp. 27-30.
* ''Aspetti geografici e turistici dell’Aspromonte'', Calabria Turismo, n. 30, 1976, pp. 31-36.
* {{cita libro|''Calabria. Natura e storia'', Edizioni Frama Sud, [[Chiaravalle Centrale]] (CZ), 1979|cid=Calabria. Natura e storia}}
* ''La [[Varia di Palmi]]'', [[Calabria Sconosciuta]], rivista trimestrale di cultura e turismo , 7/8 (1979) , P. 16-20
 
Precisamente la verifica serve a stabilire che il software rispetti i requisiti e le specifiche, quindi ad esempio che non ci siano requisiti mancanti, mentre la validazione serve ad accertare che i requisiti e le specifiche siano anche rispettati nella maniera giusta.
== Raccolte poetiche ==
* {{cita libro|''Strade e cieli'', Ed. Appennia, 1934, Palmi.|cid=Strade e cieli}}
* {{cita libro|'' Luci sul mare'', Ed. Saturnia, 1939, Alessandria.|cid=Luci sul mare}}
 
Questa fase, infatti, è molto delicata in quanto, dopo tutto il processo si può ottenere un [[software]] perfettamente funzionante, senza errori, ma del tutto inutile in quanto non rispecchia quanto era stato chiesto all'inizio.
== Saggi ==
* ''Caratteristiche feste calabresi - La Varia con notizie storiche sul culto e la festa della Madonna della Sacra Lettera che si venera in Palmi'', Ed. G.Palermo, 1938, Palmi.
* ''La "Varia" di Palmi: Origine e significato di una caratteristica festa religiosa'', Tip. Zappone, 1948, Palmi
 
Secondo il modello applicato questa fase si applica su stadi intermedi o su tutto il software.
==Riconoscimenti==
* [[1977]], Premio Letterario ''Nosside'' - [[Rotary International]], 210º Distretto, Club di Locri.
* [[1987]], intitolazione laboratorio di Geografia Economica presso la facoltà di Economia, Università degli Studi di Messina.
* [[1992]], intestazione Borsa di Studio "[[Fondazione Bonino-Pulejo]]", Università degli Studi di Messina.
* [[1996]], intitolazione via cittadina, Città di [[Catanzaro]].
* [[2001]], omaggio a Luigi Lacquaniti a cent'anni dalla nascita (posa di epigrafe), Città di Palmi, [[Pro loco]] di Palmi.
* [[2014]], omaggio a Luigi Lacquaniti<ref>https://www.youtube.com/watch?v=RRE-RwI8WFs</ref>, poeta, geografo, preside emerito dell'ITC "Einaudi", Istituto d'Istruzione Superiore "L. Einaudi"<ref>http://www.iiseinaudipalmi.gov.it/</ref>, Comune di Palmi.
 
La verifica può essere ''statica'', se effettuata su carta, cioè sul progetto, o ''dinamica'', se effettuata attraverso il [[collaudo]] dello stesso software con dati di test.
== Onorificenze ==
{{Onorificenze
|immagine=Medaglia_commemorativa_delle_operazioni_militari_in_Africa_Orientale_1935-1936.gif
|nome_onorificenza=Medaglia commemorativa delle operazioni militari in Africa Orientale
|collegamento_onorificenza=Medaglia_commemorativa_delle_operazioni_militari_in_Africa_Orientale
|motivazione=
|luogo=[[Roma]], [[1942]]
}}
{{Onorificenze
|immagine=Croce_al_merito_di_guerra_-_1%C2%B0_concessione_(dal_1947).jpg
|nome_onorificenza=Croce al merito di guerra
|collegamento_onorificenza=Croce_al_merito_di_guerra
|motivazione=
|luogo=[[Palermo]], [[1956]]
}}
 
== NoteModello di sviluppo ==
=== Sviluppo a cascata ===
<references />
 
Il procedimento tradizionale di sviluppo del software, detto "a cascata" (in inglese "waterfall"), prescrive di iniziare il collaudo appena è completata la prima versione del prodotto. I risultati del collaudo vengono utilizzati per rivedere i requisiti, o il progetto, o il codice, e produrre così la versione successiva.
== Bibliografia ==
* Alberto Busignani, ''Calabria : Reggio e l'Aspromonte, la piana di Gioia e la piana di Locri, Catanzaro e le Serre, il Marchesato, Cosenza e la Sila, da Praia a Amantea, Sibari, Castrovillari e Rossano'', Ed. Sadea [[Sansoni]], [[Firenze]], 1963, pagg. 116-22.
* {{cita libro|[[Rotaract Club]] di Palmi (a cura di), ''AMICO'', Edizioni Marafioti, Polistena (RC), 1982.|cid=AMICO}}
* Domenico Ferraro, ''Palmi - immagini, cronaca, storia'', Relazione editoriale a cura della Banca Popolare Cooperativa di Palmi, stampa [[Istituto Poligrafico e Zecca dello Stato]], Roma, 1982, pagg. 11-12, 167.
* Giuseppe Polimeni, ''Tristia: Luigi Lacquaniti'', ‘Calabria Sconosciuta’, n.20, Ottobre-Dicembre 1982.
* Giuseppe Chiofalo, ''Espressività ed intensionalità nella poesia di Luigi Lacquaniti'', ‘Calabria Sconosciuta’, n.24, 1983, pagg. 25-28.
* Antonio Pipino - A.I.I.G. sez. Calabria (a cura di), ''Luigi Lacquaniti - Scritti Geografici 1941-1976'', Arti Grafiche [[Rubbettino Editore]] S.r.l., [[Soveria Mannelli]] (CZ), 1989, ISBN 978-88-4984-115-2.
* Domenico Ferraro (a cura di), ''[[Luigi Parpagliolo]], Italia (negli scrittori italiani e stranieri) VII volume - Calabria'', ed. Tipolitografia Varano, pp.&nbsp;355–365, Polistena, 1993.
* Giuseppe Naccari, ''Un poeta da ricordare - Luigi Lacquaniti'', periodico ‘Banca Popolare Cooperativa di Palmi’, ed. 1994.
* Santino Salerno, ''Luigi Lacquaniti'', ‘Calabria’, mensile di notizie e commenti del [[Consiglio regionale della Calabria]], n. 36, Giugno 1997, pag. 52.
* Giuseppe Polimeni, ''Luigi Lacquaniti'', ‘Calabria Sconosciuta’, n.75, Luglio-Settembre 1997.
* Bruno Zappone, ''Uomini da ricordare'', Ed. AGE, Napoli, giugno 2000.
* Pasquale Tuscano (a cura di), ''Poesie: 1934-1939 - Luigi Lacquaniti'', Ed. Iride, Soveria Mannelli (CZ), 2004, ISBN 978-88-8894-712-9.
* Nino Tripodi, ''La poesia solare di Luigi Lacquaniti'', ‘Calabria Sconosciuta’, n. 111 (lug.-set.), pp.&nbsp;45–46, 2006.
* Carmela Galasso, ''Biografia di personaggi noti e meno noti della Calabria'', Luigi Pellegrini Editore, pp.&nbsp;245–246, Cosenza, 2009, ISBN 978-88-8101-610-5.
* Raffaele Gaetano, ''Avanti all'anima mia. Il paesaggio calabrese nello sguardo di Theodore Brenson. Con i 52 disegni del viaggio in Calabria e l'epistolario inedito Brenson-Lacquaniti'', Città del Sole Edizioni, Reggio Calabria, 2014, ISBN 978-88-7351-798-6.
* {{cita libro|Santino Salerno e Celestina La Capria (a cura di), ''Luigi Lacquaniti – Poeta e Geografo'', Ed. per conto dell’IIS “[[Luigi Einaudi]]” – Palmi (RC), stampa Rubbettino Print, Soveria Mannelli (CZ), 2014|cid=Luigi Lacquaniti – Poeta e Geografo}}
 
Questo procedimento è stato sottoposto a una severa critica in quanto ha i seguenti svantaggi:
== Collegamenti esterni ==
* Se è giunta la data prevista per il completamento del prodotto, si tende a consegnarlo anche se il collaudo non è stato completato o ha dato esito negativo, il che significa che probabilmente si sta consegnando un prodotto scadente.
* {{Cita web|url = http://www.comune.palmi.rc.it/index.php?action=index&p=220|titolo=Comune palmi}}
* Probabilmente, tra i requisiti non è stata inclusa la "collaudabilità" (in inglese, "testability"), cioè il progetto e il codice non contengono accorgimenti che agevolino il collaudo. In tal caso, il collaudo risulterà molto più costoso e meno efficace.
* {{Cita web|url = http://opac.sicilia.metavista.it/opac_sicilia/opaclib?db=solr_sicilia&resultForward=opac/sicilia/brief.jsp&from=1&nentries=50&searchForm=opac/sicilia/error.jsp&do_cmd=search_show_cmd&item:1003:Nomi::@frase@=%20Lacquaniti,%20Luigi|titolo=Biblioteca centrale della Regione Siciliana 'A. Bombace' Palermo}}
* Più tempo passa tra l'introduzione di un errore in un sistema e la segnalazione di un malfunzionamento dovuto a tale errore, più risulta difficile e costoso rimediarvi.
* {{Cita web|url = http://opac.sbn.it/opacsbn/opaclib?db=solr_iccu&nentries=10&select_db=solr_iccu&from=1&searchForm=opac/iccu/free.jsp&resultForward=opac/iccu/brief.jsp&do_cmd=search_show_cmd&format=xml&rpnlabel=+Tutti+i+campi+%3D+luigi+lacquaniti+%28parole+in+AND%29+&rpnquery=%40attrset+bib-1++%40attr+1%3D1016+%40attr+4%3D6+%22luigi+lacquaniti%22&totalResult=66|titolo=Catalogo del Servizio Bibliotecario Nazionale}}
 
* {{Cita web|url = http://www.bibliotechecalabria.it/SebinaOpac/query/KF_AU:%22lacquaniti%20luigi%22?context=catalogo|titolo=BibliotecheCalabria.it}}
=== Sviluppo guidato dal collaudo ===
* {{Cita web|url = http://www.bncs.beniculturali.it/opac_cosenza/opaclib?db=solr_cosenza&resultForward=opac/cosenza/brief.jsp&from=1&nentries=50&searchForm=opac/cosenza/error.jsp&do_cmd=search_show_cmd&item:1003:Nomi::@frase@=%20Lacquaniti,%20Luigi|titolo=Biblioteca Nazionale di Cosenza}}
{{Vedi anche|Test Driven Development}}
* {{Cita web|url = https://scoprirete.bibliotecheromagna.it/SebinaOpac/query/lacquaniti%20luigi?context=catalogo|titolo=Rete bibliotecaria di Romagna e San Marino}}
 
* {{Cita web|url = https://opac.bncf.firenze.sbn.it/opac/controller?action=search_byautoresearch&query_fieldname_1=vidtutti&query_querystring_1=CFIV095846|titolo=Biblioteca Nazionale Centrale di Firenze}}
Un procedimento più recente, detto "guidato dal collaudo" (in inglese, "test driven"), proposto a partire dall'inizio degli anni 1990, consiste nel considerare il collaudo una parte integrante del prodotto:
* {{Cita web|url = https://polobasilicatasbn.sebina.it/SebinaOpac/query/KF_AU:%22lacquaniti%20luigi%22?context=catalogo|titolo=Leggere in Basilicata}}
* Quando si analizzano i requisiti del software da produrre, si analizzano i requisiti del collaudo.
* {{Cita web|url = http://www.istituticulturalidiroma.it/result.php?dove=breve&useq=1&nf=va&vf=CFIV095846&startp=semplice|titolo=IEI Istituti Culturali di Roma}}
* Quando si progetta l'architettura del software da produrre, si progetta l'architettura del collaudo.
* {{Cita web|url = https://archive.org/details/bollettin586119491952soci/page/n91?q=Luigi+Lacquaniti|titolo=Bollettino della Società dei naturalisti in Napoli}}
* Quando si scrive il codice del software da produrre, si scrive il codice delle routine di collaudo automatizzato o si preparano i dati e si scrivono le istruzioni per il collaudatore manuale.
* Quando si costruiscono gli eseguibili compilando i sorgenti, se la compilazione va a buon fine, vengono automaticamente eseguite le routine di collaudo automatizzato. Le prove inerentemente interattive vengono tuttavia relegate a una procedura parzialmente manuale.
* Quando si archivia o si recupera una versione dei sorgenti, si archiviano o si recuperano tutti i suddetti documenti relativi al collaudo. Anzi, tali documenti devono essere intesi come parti integranti dei sorgenti.
 
== Fasi di distribuzione ==
=== Il collaudo Alpha ===
{{Vedi anche|Versione alpha}}
Appena un software è stato costruito, prima di distribuirlo fuori dall'azienda, viene normalmente sottoposto a un collaudo interno all'azienda.
 
Il collaudo Alpha può essere eseguito dagli stessi programmatori o da altro personale dell'azienda.
 
Spesso, il software prodotto per il collaudo Alpha viene arricchito di istruzioni di controllo a run-time che facilitano il rilevamento degli errori. Esempi di tali istruzioni sono:
* il controllo che non si acceda a indici non validi di array;
* il controllo che tutta la memoria allocata venga disallocata prima della terminazione;
* asserzioni dichiarative scritte dal programmatore.
 
In alcuni casi, in particolare per lo sviluppo di software di sistema o di software embedded, si utilizza un ambiente hardware di esecuzione che supporta specificamente il debugging e il testing.
 
=== Il collaudo Beta ===
{{Vedi anche|Versione beta}}
Spesso, quando un prodotto ha superato il collaudo Alpha, viene distribuito all'esterno dell'azienda ad alcuni clienti selezionati o anche a tutti i clienti, avvertendo gli utenti che il prodotto distribuito potrebbe non essere di qualità elevata e probabilmente richiede ulteriori correzioni.
 
Gli utenti della versione Beta possono simulare l'utilizzo del software in casi realistici, e inviare al produttore resoconti dei malfunzionamenti riscontrati. Tale tipo di collaudo eseguito gratuitamente dagli utenti viene detto "collaudo Beta" (in inglese "Beta testing").
 
Possono esserci più versioni Beta, man mano che vengono corretti gli errori.
Quando la frequenza delle segnalazioni d'errore diventa bassa, è il momento di distribuire la versione ufficiale.
 
Anche dopo che sono state distribuite delle versioni Beta, e quindi si è in fase di collaudo Beta, all'interno dell'azienda può continuare il collaudo Alpha.
 
== [[Automazione del collaudo del software|Automazione del collaudo]] ==
Se il collaudo consiste nell'utilizzo del prodotto quasi come se fosse la normale operatività, si parla di "collaudo manuale".
 
Se il collaudo consiste nello sviluppo di apposito software che interagisce con il software da collaudare e fornisce un rapporto di qualità in assenza di personale, si parla di "collaudo automatizzato".
 
== Granularità ==
=== Il collaudo di modulo ===
{{Vedi anche|Unit testing}}
Quando si costruisce un'automobile, non ci si limita a costruire e ad assemblare i pezzi e alla fine girare la chiave per vedere se tutto funziona. Questo per tre motivi:
* Alcuni difetti producono malfunzionamenti solo dopo un utilizzo prolungato, ma sono facilmente identificabili esaminando i singoli pezzi prima dell'assemblaggio.
* Se dopo aver girato la chiave la macchina non si accende, risulta molto difficile capire qual è il difetto.
* Se dopo aver girato la chiave la macchina non si accende, risulta molto costoso smontare la macchina, sostituire il pezzo difettoso e rimontarla.
 
Ragionamenti analoghi valgono per il software. Pertanto, come i singoli pezzi di un macchina vengono sottoposti al controllo di qualità prima dell'assemblaggio, così è opportuno collaudare separatamente le singole componenti di un sistema software.
 
Le componenti collaudabili di un sistema software prendono il nome di "moduli" o "unità", per cui si parla di "collaudo di modulo" (in inglese, si usa l'espressione "unit testing").
 
Un modulo può avere una granularità variabile da una singola routine, a un insieme di alcune decine di routine, a un sottosistema comprendente migliaia di routine. Nella [[programmazione orientata agli oggetti]] la tipica componente da collaudare è la [[classe (informatica)|classe]].
 
Siccome un modulo, per definizione, non è un programma completo, mentre il concetto stesso di collaudo richiede l'esecuzione di un programma, per eseguire il collaudo di modulo si deve costruire un apposito programma che contiene il modulo da collaudare.
 
In un programma completo, tutti i moduli, eccetto quelli di livello più basso, richiamano routine di altri moduli, e tutti i moduli, eccetto quelli di livello più alto, contengono routine a disposizione di altri moduli.
 
Per costruire un programma intorno a un modulo, è necessario fornire delle routine banali che possano essere chiamate dal modulo, finché non saranno pronte le routine complete. Tali routine banali sono dette [[Stub (informatica)|stub]] (che in inglese significa "mozzicone", "moncherino").
 
Per mandare in esecuzione il codice contenuto nel modulo occorre invocarne le routine. Viene pertanto scritto un apposito programma che richiama le routine del modulo, passandole in sequenza vari parametri e verificando che le routine rendano i valori attesi. Tale programma viene detto "driver" (che in inglese significa "guidatore", "conduttore").
 
Normalmente, per rendere più flessibile e modificabile il collaudo, il driver preleva da un file di dati i parametri che dovrà passare alle routine del modulo da collaudare, e confronta i risultati ottenuti con il contenuto di un altro file di dati. Per ogni discrepanza riscontrata tra i dati ottenuti e quelli attesi, viene generato un messaggio d'errore in un terzo file di resoconto.
 
Con tale architettura, se si vuole aggiungere una combinazione di valori a quelle esistenti, basta modificare i file di dati.
 
=== Il collaudo di sistema ===
 
Anche se i singoli moduli sono corretti, il sistema ottenuto integrandoli potrebbe non esserlo. Pertanto è sempre necessario collaudare il sistema completo.
 
Per collaudare un sistema completo si deve utilizzare il software in modo il più possibile simile a come verrà utilizzato nella normale operatività, ma con le seguenti differenze:
* Per il software interattivo, la normale operatività consiste in una persona che interagisce con il software. Questo si ottiene con il collaudo manuale, che è sempre utile, ma ha vari svantaggi. Il collaudo automatizzato di un programma interattivo è difficile da ottenere, se non rinunciando a parte del concetto di ''normale operatività''.
* Nella normale operatività di un sistema software, per ogni singola installazione del sistema, l'utilizzo segue un certo andamento ripetitivo. Siccome nel collaudo si deve simulare il maggior numero possibile di situazioni, normalmente si rinuncia alla ripetitività tipica delle situazioni reali, e invece si simulano utilizzi molto variegati.
 
== Conoscenza delle funzionalità interne ==
=== Il collaudo a scatola bianca ===
Il collaudo a scatola bianca, noto anche con le denominazioni [[lingua inglese|inglesi]] ''white box testing'' o ''clear/glass box testing'' ("collaudo a scatola trasparente") o ''structural testing'' ("collaudo strutturale") è una forma di collaudo che verifica il funzionamento ''interno'' di un componente software, piuttosto che le sue funzionalità. Poiché richiede la conoscenza e la comprensione della struttura interna del software sotto test (eventualmente anche del suo [[codice sorgente]]), questa forma di testing è in genere a carico di un programmatore, spesso lo stesso che ha scritto il codice. Benché il concetto si possa applicare a diversi livelli, il collaudo a scatola bianca è tipicamente [[unit testing|unitario]]. Il collaudo a scatola bianca può facilitare il compito di garantire una copertura esaustiva dei [[test case]] rispetto al codice sorgente; la sua controindicazione principale è che esso costituisce una deroga al principio dell'[[incapsulamento]]: in particolare, un test case esistente può fallire a seguito di una modifica strutturale di un componente (per esempio in seguito a [[refactoring]]) anche quando questa modifica preservi correttamente la funzionalità del componente stesso.
 
=== Il collaudo a scatola nera ===
 
Il collaudo effettuato accedendo al software solamente tramite l'interfaccia utente, oppure tramite interfacce di comunicazione tra processi, viene detto "collaudo a scatola nera" (in inglese, "black box testing").
 
Può essere manuale oppure automatizzato, e tipicamente è utilizzato per il collaudo di sistema, in quanto per collaudare l'intero sistema normalmente non è necessario richiamare singole routine.
 
Se si tratta di un collaudo automatizzato, le routine di collaudo sono prevalentemente scritte in un linguaggio di livello più alto del linguaggio con cui è stata scritta l'applicazione, a volte in un linguaggio progettato appositamente per il collaudo.
 
Il software da collaudare e il software di collaudo costituiscono processi distinti comunicanti.
 
Per il collaudo a scatola nera manuale non è richiesta l'opera di un programmatore, e per quello automatizzato è sufficiente un programmatore con modeste competenze.
Spesso il collaudo a scatola nera è effettuato da persone che non fanno parte dell'organizzazione che sviluppa il software; si tratta degli utilizzatori stessi che effettuano il collaudo Beta.
 
Un esempio di una tecnica di collaudo a scatola nera automatizzata consiste nel registrare l'interazione dell'utente in un file, e poi ripetere la registrazione simulando il comportamento dell'utente.
 
Un vantaggio del collaudo a scatola nera sta, nei casi in cui il codice sorgente e la documentazione di progetto sono segreti industriali, nel fatto che tale collaudo può essere effettuato anche da persone esterne all'azienda.
 
Un altro vantaggio sta nel fatto che per tale tipo di collaudo non sono necessari programmatori esperti e che conoscano gli aspetti interni del software da collaudare. Pertanto, si possono trovare molti più collaudatori, senza dover investire nell'addestramento.
 
== Collaudo formale e informale ==
=== Il collaudo informale ===
 
Nelle piccole organizzazioni, o per prodotti software di poco valore, il collaudo è normalmente informale, cioè non esiste a livello organizzativo una mansione riconosciuta come "collaudo del software".
 
Il programmatore, appena dopo aver apportato una modifica al software, manda in esecuzione il software modificato e verifica interattivamente se il funzionamento è quello atteso. Se il comportamento è insoddisfacente, apporta altre modifiche e reitera il procedimento.
 
Quando il programmatore è soddisfatto del comportamento del software, invia il software al suo superiore, che effettua un ulteriore rapido collaudo manuale. A questo punto, se non si tratta di modifiche che devono urgentemente essere rese operative, la nuova versione viene inviata agli utenti e al personale di assistenza ("help desk") come versione Beta. Gli utenti e il personale vengono addestrati alle nuove modifiche, e tale addestramento costituisce l'occasione per la rilevazione di ulteriori malfunzionamenti.
 
In tale procedimento informale di collaudo, la segnalazione di malfunzionamenti e di nuove versioni non segue un iter ben definito. Si usano comunicazioni di persona, telefoniche, e-mail, e appunti su biglietti.
 
=== Il collaudo formale ===
 
Il collaudo del software importante in grandi organizzazioni segue invece iter procedurali più rigorosi, analoghi a quelli dei progetti ingegneristici.
 
Per eseguire un collaudo formale, cioè rigorosamente pianificato, si scrive un "piano di collaudo" (in inglese, "test plan"), in cui si descrive dettagliatamente come deve essere svolto il collaudo.
 
Ci sono due strategie fondamentali per organizzare il collaudo: la "batteria di prove" (in inglese "test suite"), e lo "scenario di collaudo" (in inglese "test scenario"). Spesso si utilizzano in combinazione, cioè si pianificano una o più batterie di prove e una serie di scenari di collaudo.
 
Una batteria di prove è un insieme di collaudi elementari, ognuno dei quali è detto "prova" (in inglese "[[caso di test|test case]]"). Ogni prova ha almeno i seguenti attributi:
* Spesso ha un identificatore o numero progressivo.
* Talvolta ha una descrizione dello scopo della prova.
* Una sequenza di operazioni necessarie per portare il sistema nelle condizioni iniziali per la prova.
* Una sequenza di operazioni necessarie per riportare il sistema nelle condizioni di base dopo la prova.
* Le dipendenze, cioè gli identificatori dei casi di prova che devono aver avuto successo affinché abbia senso effettuare questa prova. Per esempio, se una prova consiste nell'aprire un file e chiuderlo, e un'altra prova consiste nel leggere lo stesso file, la seconda prova dipende dalla prima, in quanto non ha senso tentare di leggere un file che non è stato possibile aprire.
* Le operazioni che sollecitano il software da collaudare.
* Il risultato atteso.
* Talvolta, il tempo massimo ammissibile per ricevere il risultato.
Spesso vengono aggiunti altri attributi.
 
Nel caso di collaudo manuale, queste informazioni possono essere stampate e tenute come linea guida per il collaudatore. Nel caso di collaudo automatizzato, queste informazioni sono le specifiche per il programmatore che deve realizzare il software di collaudo.
 
Quando una prova viene eseguita, si registrano altre informazioni, tra cui le seguenti:
* Autore della prova.
* Data e ora di esecuzione.
* Identificatore della versione collaudata.
* Esito (successo o fallimento).
* In caso di fallimento, breve descrizione del tipo di fallimento.
 
Uno scenario di collaudo è un utilizzo realistico non banale del software da collaudare. Mentre le prove di collaudo considerano le funzionalità elementari, ogni scenario prende in considerazione una tipologia di utente e una situazione verosimile e complessa in cui tale utente può trovarsi. Il collaudo di scenario percorre tutti i passi che l'utente percorrerebbe in tale situazione. Il collaudo Beta è di fatto un collaudo di scenario, sebbene informale. Il collaudo di scenario è necessariamente un collaudo di sistema, e tipicamente è manuale o semiautomatico.
 
== Altri tipi di collaudo ==
=== Collaudo Prestazionale (Performance Test) ===
 
Tra i requisiti di qualità di un'applicazione, non c'è solo la correttezza, ma anche l'efficienza, o comunque vengono definiti requisiti prestazionali il cui soddisfacimento deve essere verificato prima di utilizzare il software prodotto. Le attività finalizzate a determinare se un dato prodotto software soddisfa specificati requisiti prestazionali è chiamata "collaudo prestazionale" (o "performance testing"). Il suo scopo non è quindi rilevare errori nell'applicazione, ma verificare che l'applicazione soddisfi i requisiti prestazionali richiesti in fase di esplicitazione dei requisiti.
 
Solitamente, si definiscono per vari tipi di operazioni dei tempi massimi di esecuzione (ovvero, si definiscono delle "baseline") e si verifica che il prodotto software non superi tali tempi limite. Con l'evolvere dei software e dell'hardware, anche le baseline possono venire modificate. Per esempio, se il software viene sviluppato adottando una libreria meno efficiente, si ammette che le varie operazioni possano essere un po' più lente; d'altra parte, se il collaudo viene fatto su un sistema multiprocessore, si richiede che, a parità di velocità dei processore, le varie operazioni debbano essere più veloci. Le baseline possono essere semplicemente ottenute misurando i tempi di esecuzione di un sistema esistente. Da un punto di vista di test, queste attività sono tutte del tipo white-box, dove il sistema è ispezionato e controllato "dall'interno verso l'esterno" e da vari angoli. Una volta raccolte le misure e analizzate, come risultato, si effettua un tuning applicativo.
 
Tuttavia, a volte si usa anche un approccio black-box effettuando un test di carico sul sistema. Per una applicazione web, ad esempio, si usano tool che simulano un certo numero di utenti/connessioni http concorrenti e si misura il “response time”.
 
Il collaudo prestazionale può essere integrato nel collaudo di regressione per verificare che le modifiche non abbiano introdotto rallentamenti.
 
=== Collaudo di Carico/Volume (Load/Volume Test) ===
 
Questo tipo di test in genere è parte del performance testing e tuning. In tale contesto, significa aumentare costantemente il carico sul sistema tramite strumenti automatici. Per una applicazione web, ad esempio, il carico è il numero di utenti/connessioni HTTP concorrenti.
 
In letteratura, il termine load testing è di solito definito come il processo di esercizio del sistema sotto test alimentandolo in modo da fargli eseguire i task più grandi con cui esso può operare. Il test di carico è talvolta chiamato anche volume testing, o longevity/endurance testing.
 
Esempi di volume testing:
* test di un word processor editando un documento molto grande;
* test di una stampante inviandogli un job molto grande;
* test di un mail server con migliaia di mailbox utente;
* un caso specifico di volume testing è il cosiddetto “zero-volume testing”, dove il sistema viene alimentato con task “vuoti”.
 
Esempi di longevity/endurance testing:
* test di una applicazione client-server eseguendo il client in un loop di accessi alla componente per un periodo di tempo esteso.
 
Scopi del load testing:
* scoprire bug non emersi in fase di test, quali errori del tipo “memory management”, “memory leaks”, “buffer overflow”, ecc.;
* assicurare che l'applicazione soddisfa le prestazioni di “baseline” stabilite durante il “performance testing”. Questo viene fatto effettuando un test di regressione sull'applicazione con uno specifico carico massimo.
 
Nonostante il “performance testing” e il “load testing” possano sembrare similari, il loro scopo è differente. Da un lato, il “performance testing” utilizza tecniche e strumenti di “load testing” per la misurazione e allo scopo di effettuare misure di “benchmarking” utilizzando vari livelli di carico. Dall'altro, il “load testing” opera ad un predefinito livello di carico, di solito il massimo carico che il sistema può accettare continuando a funzionare regolarmente. Lo scopo non è di “rompere” il sistema sovraccaricandolo, ma invece provare a mantenere il sistema costantemente attivo come una “macchina ben oliata”. È necessario enfatizzare l'importanza di questo tipo di test. L'esperienza ha infatti mostrato che molti bug importanti non emergono fintanto che il sistema non ha a che fare con una mole di dati veramente vasta, come ad esempio migliaia di utenti in repository quali LDAP/NIS/Active Directory, migliaia di caselle di posta utente su server-mail, tabelle multi-gigabyte nei database, lunghissime gerarchie di file/directory sui file-system, ecc. In questi casi, quasi sempre c'è l'esigenza di utilizzare tool automatizzati che generino una tale mole di dati, ma fortunatamente con un qualunque buon linguaggio di scripting questo risulta un compito molto facile.
 
=== Collaudo di Stress (Stress Test) ===
 
Lo “stress test” ha lo scopo di provare a “rompere” il sistema sotto test sovraccaricando le sue risorse o sottraendogli risorse (in tale caso viene anche chiamato “negative testing”). Lo scopo principale di queste attività è verificare che il sistema va in “fault” e successivamente (eventualmente) recupera in maniera “indolore” – questo aspetto qualitativo è noto come recoverability (sistemi [[fault tolerance|fault-tolerant]]).
 
Mentre il “performance test” richiede un ambiente controllato e misure ripetibili, lo stress test provoca caos e impredicibilità. Per rifare ancora un esempio per una applicazione web, alcuni modi in cui si può stressare il sistema:
* raddoppiare il numero di utenti/connessioni HTTP previste in baseline
* in maniera casuale spegnere e riavviare porte dei switch/router di rete che collegano i server (via comandi SNMP ad esempio)
* mettere offline il database, e farlo ripartire
* effettuare un rebuild di un array RAID mentre il sistema è funzionante
* eseguire processi che consumano risorse (CPU, memoria, disco, rete) sui web-server sui database-server.
 
La lista può essere ovviamente arricchita. Comunque, lo stress test non è fatto al puro scopo di far andare in crash il sistema, ma piuttosto deve servire per osservare come il sistema reagisce alle failure. Riesce a salvare il suo stato o va in crash nuovamente/continuamente? Si ferma improvvisamente, bloccandosi, o in maniera controllata? Al riavvio, è in grado di recuperare dall'ultimo stato corretto? Visualizza messaggi di errore comprensibili all'utente, o si limita a visualizzare incomprensibili elenchi di codice esadecimale? La sicurezza del sistema è compromessa a causa di un failure inatteso? E così via.
 
== Il collaudo di regressione ==
Uno scopo del collaudo è verificare che i nuovi prodotti e le nuove funzionalità aggiunte a vecchi prodotti siano di alta qualità. Tuttavia, nel software capita spesso che l'introduzione di una nuova funzionalità a un vecchio prodotto comprometta la qualità di funzionalità preesistenti del prodotto stesso. Pertanto, per assicurarsi la qualità del prodotto bisognerebbe ripetere l'intero collaudo ad ogni modifica. Il collaudo di funzionalità preesistenti e già collaudate, eseguito per assicurare che modifiche al prodotto non ne abbiano compromesso la qualità si chiama "collaudo di regressione" (in inglese, "regression testing"), in quanto si vuole verificare se la qualità sia ''regredita''.
 
Se sono stati predisposti dei collaudi automatizzati, tramite appositi strumenti software e script dedicati, il collaudo di regressione ha normalmente un basso costo, in quanto si tratta solo di lanciare le procedure di collaudo esistenti, eventualmente ritoccate e confrontare i risultati prodotti con quelli corretti. Un completo collaudo di regressione manuale sarebbe invece enormemente costoso, soprattutto se il sistema deve essere collaudato con molti utenti simultanei.
 
Per tale motivo normalmente il collaudo di regressione manuale è più sbrigativo del collaudo originale e anche molto più pericoloso.
 
== Metriche ==
Ci sono [[metrica del software|metriche]] che vengono sviluppate per misurare l'efficacia del collaudo. La principale è l'analisi della copertura del codice ottenuta tramite un profiler. Il profiler indica quante volte è stata eseguita ogni istruzione durante il collaudo. Le istruzioni eseguite almeno una volta sono dette "coperte". L'obiettivo è coprire il maggior numero possibile di istruzioni.
 
Un'altra metrica utile è il rapporto tra il numero di difetti trovati in un modulo e il numero di istruzioni modificate. Se si trova che in un modulo sono state modificate molte istruzioni ma sono stati trovati pochi difetti, si può dubitare dell'efficacia del collaudo di tale modulo.
 
== Certificazioni ==
Il software testing sta assumendo sempre di più il ruolo centrale nell'ambito dell'ingegneria del software. È quindi sempre più importante riuscire a qualificare, in maniera oggettiva, professionisti nell'ambito del testing. Sono quindi nati a livello mondiale percorsi di certificazione delle conoscenze. L'[[International Software Testing Qualifications Board]] (ISTQB) è l'ente più importante a livello mondiale che si occupa di queste certificazioni.
 
== Voci correlate ==
* [[International Software Testing Qualifications Board]]
* [[Software]]
* [[Ciclo di vita del software]]
* [[Modello a cascata]]
* [[Modello a spirale]]
 
== Altri progetti ==
{{interprogetto}}
 
== Collegamenti esterni ==
{{Controllo di autorità}}
* {{cita web|http://www.ruleworks.co.uk/testguide|The Test Management Guide - A to Z and FAQ Knowledgebase}}
{{Portale|biografie|geografia|letteratura}}
* {{cita web|http://www.testingstandards.co.uk/bs_7925-1_online.htm|BS 7925-1 Vocabulary of terms in software testing - ver. 6.3}}
* {{cita web|http://www.testcompanies.com/|Global directory of software testing companies}}
 
{{Collaudo del software}}
{{Portale|informatica}}
 
[[Categoria:ProfessoriSviluppo all'Università degli Studi di Messinasoftware]]
[[Categoria:Ingegneria del software]]
[[Categoria:Gestione del software]]