Final Fantasy X e Collaudo del software: differenze tra le pagine

(Differenze fra le pagine)
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
 
Luigi923 (discussione | contributi)
Senza fonte
 
Riga 1:
{{Nota disambigua|l'album di [[ASAP Rocky]] del 2018|Testing (album)|Testing}}
{{Avvisounicode}}
{{F|ingegneria del software|maggio 2012}}
{{Videogioco
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.
|nomegioco=Final Fantasy X
|nomeoriginale=ファイナルファンタジーX
|immagine=Final Fantasy Logo X.jpeg
|didascalia=Logo di ''Final Fantasy X''
|sviluppo=[[Square (azienda)|Square]]
|pubblicazione=[[Square (azienda)|Square]]
|pubblicazione2=[[Sony Computer Entertainment]]
|testopubblicazione=[[Square (azienda)|Square]] <small>(Giappone e Nord America)</small><br />[[Sony Computer Entertainment|SCEI]] <small>(Europa)</small>
|ideazione=[[Yoshinori Kitase]]
|serie=[[Final Fantasy]]
|anno=2001
|data={{uscita videogioco|titolo=PlayStation 2|JP=19 luglio 2001|NA=17 dicembre 2001|PAL=24 maggio 2002|AUS=17 maggio 2002}}
{{uscita videogioco|titolo=Versione internazionale|JP=31 gennaio 2002}}
{{uscita videogioco|titolo=PlayStation Vita, PlayStation 3|JP=26 dicembre 2013|NA=18 marzo 2014||PAL=21 marzo 2014|AUS=20 marzo 2014}}
{{uscita videogioco|titolo=PlayStation 4|NA=12 maggio 2015|JP=14 maggio 2015|PAL=15 maggio 2015|AUS=14 maggio 2015}}
{{uscita videogioco|titolo=Microsoft Windows|NA=12 maggio 2016|JP=12 maggio 2016|PAL=12 maggio 2016|AUS=12 maggio 2016}}
|genere=[[Videogioco di ruolo alla giapponese]]
|tema=[[Fantasy]]
|modigioco=[[Giocatore singolo]]
|piattaforma=[[PlayStation 2]]
|piattaforma2=[[PlayStation Vita]]
|piattaforma3=[[PlayStation 3]]
|piattaforma4=[[PlayStation 4]]
|tipomedia=1 [[DVD]]
|età={{Classificazione videogioco|ACB=MA15+|CERO=B|ELSPA=11+|ESRB=T|USK=12}}
|periferiche=[[Gamepad]]
|preceduto=[[Final Fantasy IX]]
|seguito=[[Final Fantasy XI]]
}}
{{Nihongo|'''''Final Fantasy X'''''|ファイナルファンタジーX|Fainaru Fantajī Ten}} è un [[Gioco di ruolo giapponese|videogioco di ruolo giapponese]] creato dalla casa di sviluppo [[Square (azienda)|Square]] nel 2001 come decimo capitolo della serie ''[[Final Fantasy]]''. Fu il primo gioco della serie ad essere pubblicato per [[PlayStation 2]]. Dal punto di vista tecnico questo capitolo segna il passaggio definitivo alla [[Computer grafica 3D|grafica interamente tridimensionale]] e costituisce il primo titolo della serie a introdurre il [[doppiaggio]] sonoro. Il sistema di combattimento "[[Active Time Battle]]" (ATB) utilizzato fino a quel momento viene sostituito dal "[[Conditional Turn Based]]" (CTB); viene inoltre utilizzato un inedito sistema di sviluppo dei personaggi chiamato "Sferografia" e a differenza degli altri capitoli i personaggi non sono dotati di un [[Livello (videogiochi)|livello]] che ne indichi i progressi.
 
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à]].
Ambientato nell'immaginario mondo di [[Spira (Final Fantasy)|Spira]], la storia ruota attorno ad un gruppo di avventurieri e alla loro missione: distruggere il mostro conosciuto come [[Personaggi di Final Fantasy X#Sin|Sin]]. Il protagonista è [[Tidus]], un giocatore di [[Blitzball]] che viene trasportato su Spira quando Sin attacca la sua città natale, Zanarkand. Durante il viaggio Tidus, insieme agli altri compagni, aiuta l'[[Invocatore|invocatrice]] [[Yuna]] nel suo pellegrinaggio per ottenere l'Invocazione Suprema e distruggere Sin.
 
== Descrizione generale ==
Lo sviluppo di ''Final Fantasy X'' iniziò nel 1999 con un budget di oltre 4 miliardi di [[yen giapponese|yen]]<ref name="budget"/> e uno staff di più di 100 persone. Il gioco fu il primo della serie a non essere interamente arrangiato da [[Nobuo Uematsu]], che fu coadiuvato nel suo lavoro da [[Masashi Hamauzu]] e Junya Nakano. ''Final Fantasy X'' godette di un ampio successo critico e commerciale, vendendo circa 8 milioni di copie in tutto il mondo<ref name="vendite">{{cita web|url=http://www.ffworld.com/?rub=square&page=chiffres|titolo=Chiffres de vente|editore=FFWorld.com|accesso=2 novembre 2015|lingua=fr}}</ref>. Nel 2003 gli succedette ''[[Final Fantasy X-2]]'', rendendolo il primo capitolo di ''Final Fantasy'' ad avere un [[sequel]] diretto. Il 18 marzo 2014 il gioco fu ridistribuito insieme al suo seguito in un [[Portabilità|porting]] ad [[alta definizione]] per [[PlayStation 3]] e [[PlayStation Vita]] intitolato ''Final Fantasy X/X-2 HD Remaster''<ref name="FFX HD 1">{{cita web|url=http://www.ign.com/articles/2011/09/14/tgs-final-fantasy-x-hd-coming-to-ps3-vita|titolo=Final Fantasy X HD Remake Coming to Vita and PS3|editore=IGN|data=13 settembre 2011|accesso=2 novembre 2015|lingua=en}}</ref><ref name="FFX HD 5">{{cita web|url=http://www.siliconera.com/2013/03/20/yes-final-fantasy-x-2-is-getting-an-hd-remaster-too/|titolo=Yes, Final Fantasy X-2 Is Getting An HD Remaster, Too|editore=Siliconera.com|data=20 marzo 2013|accesso=2 novembre 2015}}</ref>. Nel maggio 2015 il gioco venne rimasterizzato anche per [[PlayStation 4]]<ref name="PS4">{{cita web|url=http://eu.square-enix.com/en/blog/final-fantasy-xx-2-coming-ps4-15th-may-exclusive-steelbook|titolo=Final Fantasy X/X-2 coming to PS4 on 15th May 2015|autore=Dan Seto|editore=Square Enix|data=3 marzo 2015|accesso=2 novembre 2015|lingua=en}}</ref>.
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à.
== Trama ==
=== Ambientazione e personaggi ===
{{vedi anche|Spira (Final Fantasy)|Personaggi di Final Fantasy X}}
''Final Fantasy X'' è ambientato nel mondo immaginario di Spira, composto da un continente centrale circondato da un numero di piccole isole. Il clima varia dal tropicale di Besaid e Kilika, alla regione temperata di Mihen, al clima polare di Macalania e del Monte Gagazet. Sebbene prevalentemente abitata da umani, Spira presenta una varietà di popoli e razze diverse: tra essi gli Albhed, un popolo tecnologicamente avanzato ma osteggiato dal resto della popolazione, con distintivi occhi verdi e lingua propria; i Guado, dagli arti allungati; e i Ronso, un fiero popolo di guerrieri dai tratti leonini. In seguito a una sanguinosa guerra combattuta mille anni prima dell'inizio della storia con l'utilizzo di potenti macchine e armi, la società ha rinunciato all'uso della tecnologia e si è adattata a vivere in piccoli insediamenti. La costante minaccia di un mostro conosciuto come [[Personaggi di Final Fantasy X#Sin|Sin]] ha inoltre portato la maggior parte della popolazione a cercare rifugio in Yevon, un credo che predica sacrifici e penitenze al fine di espiare i propri peccati.
 
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.
Esistono sette [[Personaggio giocante|personaggi giocanti]], tra cui il protagonista [[Tidus]], un ragazzo allegro e gioviale e un asso del [[Blitzball]], che cerca un modo per tornare a Zanarkand dopo che Sin lo ha condotto a Spira. Per fare ciò, si unisce a [[Yuna]], un'[[invocatore|invocatrice]] in pellegrinaggio per ottenere l'Invocazione Suprema e sconfiggere così Sin. In viaggio con loro in qualità di guardiani di Yuna vi sono: [[Kimahri]], un guerriero della tribù dei Ronso che ha protetto Yuna fin dalla più tenera età; [[Wakka]], un giocatore di Blitzball il cui fratello minore è stato ucciso da Sin; e [[Lulu (Final Fantasy)|Lulu]], una severa maga nera cresciuta con Yuna e Wakka. Durante il viaggio al gruppo si uniscono anche [[Auron (Final Fantasy)|Auron]], un ex-monaco guerriero che aiutò [[Personaggi di Final Fantasy X#Braska|Braska]], il padre di Yuna, e [[Jecht]], il padre di Tidus, nello sconfiggere Sin dieci anni prima dell'inizio della storia; e [[Rikku]], una vivace ragazza Albhed e la prima persona amica ad assistere Tidus al suo arrivo a Spira.
 
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.
=== Storia ===
[[File:Anime Expo 2010 - LA (4836637317).jpg|thumb|upright=1.2|Cosplayer di alcuni dei personaggi principali del gioco. Da sinistra a destra: Auron, Rikku, Yuna, Lulu e Jecht.]]
 
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.
Quando la gigantesca metropoli di Zanarkand viene attaccata da un'entità malvagia di nome Sin, Tidus, giovane campione di Blitzball, e Auron, un suo conoscente non proveniente da Zanarkand, si ritrovano trasportati su Spira. Qui Tidus è salvato da un gruppo di Albhed guidato da Rikku e scopre che in questo mondo Zanarkand è stata distrutta da Sin mille anni prima. In seguito ad un nuovo attacco del mostro, Tidus è separato dal gruppo e giunge sull'isola di Besaid, dove incontra Wakka, capitano della locale formazione di Blitzball, Lulu, Kimahri e Yuna, una giovane invocatrice che si appresta ad iniziare il suo pellegrinaggio per ottenere l'Invocazione Suprema e sconfiggere Sin. Tidus si unisce alla comitiva per aiutare Wakka e la sua squadra nell'imminente torneo di Blitzball e per trovare il modo di ritornare a casa. Nel loro viaggio attraverso Spira i cinque si recano ai templi di Yevon per ottenere Eoni e devono affrontare mostri e "scaglie" di Sin. Dopo il torneo Auron si unisce al gruppo e convince Tidus a diventare guardiano di Yuna e continuare con loro il viaggio. Egli rivela inoltre al ragazzo di aver effettuato dieci anni prima lo stesso pellegrinaggio in compagnia di Braska, il padre di Yuna, e Jecht, il padre di Tidus; una notizia che confonde il ragazzo che credeva che il genitore fosse morto in mare. In seguito anche Rikku, che si scoprirà essere la cugina di Yuna, entra a far parte del gruppo.
 
Le tecniche di collaudo possono essere classificate in molti modi. I principali sono i seguenti:
Quando il gruppo giunge a Guadosalam, il leader dei Guado, [[Personaggi di Final Fantasy X#Seymour Guado|Seymour]], chiede la mano di Yuna affermando che un'unione tra i due allevierebbe le sofferenze di Spira. Al Tempio di Macalania, tuttavia, il gruppo trova un messaggio del padre di Seymour, Jyscal, in cui l'uomo rivela di essere stato ucciso da suo figlio, il quale desidera distruggere Spira. Yuna e i guardiani affrontano quindi Seymour in combattimento, uccidendolo e finendo quindi scomunicati; subito dopo Sin attacca, separando Yuna dal resto del gruppo. Nel cercare la ragazza a Bikanel, la patria degli Albhed dove il gruppo si è ritrovato, Tidus è traumatizzato nello scoprire che gli invocatori muoiono dopo aver utilizzato l'Invocazione Suprema e si ripromette di trovare un modo per sconfiggere Sin mantenendo al tempo stesso Yuna in vita. Il gruppo ritrova Yuna a Bevelle e interrompe il matrimonio forzato della ragazza con il "non-morto" Seymour. Dopo essere stati arrestati come traditori ed essere successivamente evasi, i pellegrini giungono alle Rovine di Zanarkand.
* 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 ===
Lungo il tragitto Tidus si rassegna al fatto che non tornerà più a casa e apprende che lui, Jecht e la Zanarkand da cui provengono sono entità illusorie che esistono solo come proiezione della Zanarkand originale e dei suoi abitanti. Quando mille anni prima dell'inizio della storia Zanarkand affrontò e venne sconfitta da Bevelle in battaglia, infatti, i superstiti di Zanarkand divennero [[Spira (Final Fantasy)#Eoni e intercessori|intercessori]], in modo da poter ricreare la loro distrutta città a partire dai loro ricordi<ref>{{cita|''Final Fantasy X Ultimania Omega''|p. 84}}.</ref>. A distanza di secoli dalla loro creazione gli intercessori si sono stancati di sognare Zanarkand, ma sono impossibilitati a smettere a causa dell'influenza di Sin.
La fase di '''verifica''' e di '''validazione''' serve ad accertare che il [[software]] rispecchi i requisiti e che li rispetti nella maniera dovuta.
 
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.
A Zanarkand, [[Personaggi di Final Fantasy X#Yunalesca|Yunalesca]] — la prima invocatrice a sconfiggere Sin e non-morta da allora<ref>{{cita|''Final Fantasy X Ultimania Omega''|p. 82}}.</ref> — rivela al gruppo che l'Invocazione Suprema è creata dal sacrificio di una persona cara all'invocatore. Sconfitto Sin, l'Invocazione Suprema uccide l'invocatore e si trasforma nel nuovo Sin, causando il ripetersi del suo circolo di rinascita. Yuna decide di rinunciare all'Invocazione Finale, per via della sua inefficacia e dei futili sacrifici che richiede, scatenando così le ire di Yunalesca che cerca di uccidere il gruppo; viene però sconfitta, mettendo per sempre fine alla possibilità di ottenere l'Invocazione Suprema. Dopo la battaglia il gruppo apprende che [[Personaggi di Final Fantasy X#Yu Yevon|Yu Yevon]], un invocatore che ha perso la sua umanità, è il responsabile del ciclo di rinascita di Sin; Yuna e gli invocatori decidono quindi di infiltrarsi all'interno di Sin, dove affrontano e sconfiggono in battaglia lo spirito di Jecht e lo stesso Yu Yevon. Il ciclo di rinascita di Sin è quindi interrotto e gli intercessori sono liberati dalla loro prigionia. Auron, rivelatosi un non-morto, si reca nell'Oltremondo per riposare in pace, mentre la Zanarkand di Tidus e il ragazzo stesso scompaiono ora che gli intercessori hanno interrotto il loro sogno.
 
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.
== Modalità di gioco ==
''Final Fantasy X'' presenta una visuale di gioco in terza persona, con il giocatore che può controllare direttamente gli spostamenti del personaggio principale, Tidus, e interagire con oggetti e altri personaggi. A differenza dei precedenti titoli della serie, tuttavia, il mondo di gioco e i personaggi sono stati resi in scala 1:1. Il [[gameplay]] di ''Final Fantasy X'' differisce inoltre da quello dei ''Final Fantasy'' precedenti per la mancanza di una mappa di navigazione del mondo con visuale bidimensionale dall'alto. Nel gioco tutti i luoghi sono presentati senza soluzione di continuità e i collegamenti tra le diverse località avvengono in modo lineare formando un unico percorso, con l'inquadratura che segue costantemente i movimenti del personaggio giocante<ref>{{cita web|url=http://www.ign.com/articles/2001/11/26/final-fantasy-x-3|titolo=Final Fantasy X|editore=[[IGN (sito web)|IGN]]|autore=Dave Zdyrko|data=26 novembre 2001|accesso=18 febbraio 2016|lingua=en}}</ref>. Più avanti nel gioco il giocatore ottiene l'accesso ad un'aeronave, che permette di navigare Spira in modo più rapido.
 
Secondo il modello applicato questa fase si applica su stadi intermedi o su tutto il software.
Ogniqualvolta si incontra un nemico, l'ambientazione passa a un'arena di battaglia tridimensionale in cui è necessario impartire un comando ai personaggi, i quali si muoveranno automaticamente per eseguirlo<ref name="EuroG">{{cita web|url=http://www.eurogamer.net/article.php?article_id=3204|titolo=Final Fantasy X Review|editore=[[Eurogamer]]|autore=Tom Bramwell|data=16 giugno 2002|accesso=2 novembre 2015|lingua=en}}</ref>. Come altri titoli della serie, ''Final Fantasy X'' presenta numerosi [[minigioco|minigiochi]], il più rilevante dei quali è lo sport acquatico [[Blitzball]], che riveste anche un ruolo importante nella trama<ref>{{cita web|url=http://ps2.ign.com/articles/134/134008p1.html|titolo=Final Fantasy X Preview|editore=[[IGN (sito web)|IGN]]|autore=Dave Zdyrko|data=26 novembre 2001|accesso=2 novembre 2015|lingua=en}}</ref>.
 
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.
=== Combattimenti ===
[[File:Final Fantasy X.jpg|upright=1.2|thumb|Schermata di gioco ''[[HUD (videogiochi)|heads-up display]]'' durante un combattimento. Si notino i tre personaggi in campo, la linea del tempo che indica i turni in alto a destra e il Turbo (''Overdrive'') carico.]]
 
== Modello di sviluppo ==
''Final Fantasy X'' introduce il sistema di combattimento [[Conditional Turn Based]] (CTB) al posto del tradizionale [[Active Time Battle]] (ATB) usato nella serie a partire da ''[[Final Fantasy IV]]''. Mentre nell'ATB le battaglie si svolgono parzialmente in tempo reale, il CTB è un sistema di combattimento a turni in cui il gioco è messo in pausa durante ogni turno del giocatore, permettendogli di scegliere un'azione senza limiti di tempo. Una linea del tempo nell'angolo in alto a destra dello schermo indica i turni dei vari personaggi e nemici e l'influenza delle varie azioni intraprese sull'ordine di battaglia successivo. Il giocatore può controllare fino a tre personaggi in battaglia, con un sistema di rotazione che permette di sostituire i personaggi attivi con quelli "in panchina" in ogni momento.
=== Sviluppo a cascata ===
 
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.
Sconfiggendo un nemico si ottengono [[punti esperienza]], denaro e occasionalmente oggetti ed equipaggiamento. Con un colpo di grazia particolarmente efficace si guadagna il bonus "Ultracidio", che aumenta del 50% l'esperienza ed il denaro ottenuto dalle battaglie, oltre a far ottenere oggetti aggiuntivi spesso rari o preziosi. A differenza dei capitoli precedenti della saga, in ''Final Fantasy X'' le armi e le protezioni non aumentano le caratteristiche dei personaggi: ognuna di esse, infatti, presenta degli slot, da uno a quattro, in cui sono presenti delle abilità prettamente di supporto. Nel corso del gioco al giocatore verrà inoltre concesso la possibilità di aggiungere delle proprietà al proprio equipaggiamento, se quest'ultimo avrà slot vuoti in cui inserirle.
 
Questo procedimento è stato sottoposto a una severa critica in quanto ha i seguenti svantaggi:
Gli attacchi speciali di ogni personaggio, introdotti in ''[[Final Fantasy VII]]'' come "Limit Break", ritornano in questo capitolo con il nome di "Turbo". La maggior parte di essi sono interattivi e richiedono l'immissione di una sequenza di tasti per aumentare la loro efficacia. Sebbene inizialmente le barre Turbo si ricarichino quando i personaggi subiscono danni, proseguendo nel gioco è possibile sbloccare ulteriori modalità che permettono di ottenere punti Turbo<ref>{{cita web|url=http://www.rpgamer.com/games/ff/ff10/reviews/ff10strev1.html|titolo=Final Fantasy X – Review|editore=RPGamer|autore=Mickel Tidwell|accesso=2 novembre 2015|lingua=en}}</ref>.
* 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.
* 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.
* 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.
 
=== Sviluppo guidato dal collaudo ===
Nel controllare Yuna, il giocatore può invocare potenti creature chiamate [[Eoni (Final Fantasy)|Eoni]]. Mentre nei ''Final Fantasy'' precedenti le invocazioni apparivano per un breve periodo di tempo affinché infliggessero danno al nemico prima di scomparire, in ''Final Fantasy X'' gli Eoni prendono il posto del party e combattono al suo posto fino a quando vincono la battaglia, sono sconfitti o vengono ritirati dal giocatore. Ogni Eone ha proprie statistiche, comandi, attacchi speciali, poteri e Turbo. Nel corso del gioco il giocatore ottiene cinque Eoni diversi, con tre creature addizionali che possono essere ottenute tramite missioni secondarie.
{{Vedi anche|Test Driven Development}}
 
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:
=== Sferografia ===
* Quando si analizzano i requisiti del software da produrre, si analizzano i requisiti del collaudo.
Il sistema di potenziamento dei personaggi di ''Final Fantasy X'' rappresenta una novità rispetto al passato ed al consueto sistema basato su punti esperienza e livelli. Al termine di una battaglia, un personaggio guadagna un certo numero di Punti Abilità (AP); raggiunta una certa soglia si ottiene un Livello Sfera (LS), che consente di spostarsi in una tavola denominata Sferografia. In ogni casella della Sferografia è presente una somatosfera, che se attivata potenzia il personaggio, incrementandone un parametro delle statistiche o facendogli apprendere una tecnica o un'abilità.
* Quando si progetta l'architettura del software da produrre, si progetta l'architettura del collaudo.
* 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 ==
La Sferografia e il percorso di crescita permettono al giocatore di personalizzare i vari personaggi andando anche contro il loro ruolo "naturale" all'interno del gioco. Le versioni ''International'' e [[PAL]] di ''Final Fantasy X'' includono inoltre una modalità Master della Sferografia oltre a quella Standard: la prima fa iniziare tutti i personaggi al centro, risultando più flessibile, mentre la seconda guida il giocatore entro binari prestabiliti rendendo più facile lo sviluppo<ref name="International">{{cita web|url=http://www.rpgfan.com/reviews/finalfantasy10-intl/index.html|titolo=Final Fantasy X International|editore=RPGFan|autore=James Quentin Clark|data=6 ottobre 2008|accesso=2 novembre 2015|lingua=en}}</ref>.
=== 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.
== Sviluppo ==
[[File:Final Fantasy Beta Logo X.jpg|thumb|Il logo originale del gioco, mostrato in un video al Millennium Square Event nel 2000. Il viso di Yuna è visibile sulla sinistra, di fronte a chi guarda, con la mano destra sollevata verso l'alto, e una figura alata sullo sfondo.]]
 
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:
Lo sviluppo di ''Final Fantasy X'' iniziò nel 1999, con un budget di circa 4 miliardi di [[yen giapponese|yen]]<ref name="budget">{{cita web|url=http://rpgamer.com/news/Q3-2001/071201c.html|titolo=Financial Fantasy X|autore=Andrew Long|editore=RPGamer|accesso=2 novembre 2015|lingua=en}}</ref> e uno staff di oltre 100 persone, la maggior parte delle quali aveva già lavorato a precedenti titoli della serie. [[Yoshinori Kitase]] rivestì il ruolo di produttore e capo-direttore, mentre la direzione degli eventi, delle mappe e delle battaglie venne suddivisa tra Motomu Toriyama, Takayoshi Nakazato e Toshiro Tsuchida rispettivamente<ref>{{cita web|url=http://www.coremagazine.com/news/3808.php3|titolo=Interview: Final Fantasy X|editore=Core Magazine|data=6 marzo 2001|accesso=2 novembre 2015|lingua=en|urlarchivio=http://web.archive.org/web/20010413205127/http://www.coremagazine.com/news/3808.php3|dataarchivio=13 aprile 2001}}</ref><ref>{{cita web|url=http://www.mmcafe.com/news/news01-9-01.htm|titolo=Interview with Final Fantasy X Developers|editore=The Madman's Cafe|data=19 gennaio 2001|accesso=2 novembre 2015|lingua=en}}</ref><ref name="ultimaniaomega">{{cita|''Final Fantasy X Ultimania Omega''|pp. 191-193, 476}}.</ref>. La scrittura della sceneggiatura richiese tra i tre e i quattro mesi, e altrettanto tempo venne dedicato in seguito alla registrazione del doppiaggio vocale<ref name="cvg">{{cita web|url=http://m.computerandvideogames.com/27968/interviews/interview-square-invades-london?ns_campaign=mobile-yml&ns_mchannel=mobile-site&ns_source=cvg&ns_linkname=0&ns_fee=0|titolo=Interview: Square invades London|editore=[[Computer and Video Games]]|data=14 aprile 2002|accesso=2 novembre 2015|lingua=en|urlarchivio=http://web.archive.org/web/20130414084205/m.computerandvideogames.com/27968/interviews/interview-square-invades-london?ns_campaign=mobile-yml&ns_mchannel=mobile-site&ns_source=cvg&ns_linkname=0&ns_fee=0|dataarchivio=14 aprile 2013}}</ref>. [[Kazushige Nojima]] collaborò con Daisuke Watanabe, Toriyama e Kitase alla creazione dello scenario<ref name="ultimaniaomega"/><ref name="cvg"/>. Nojima si sforzò di instaurare una sorta di rapporto tra il giocatore e il personaggio principale; scrisse così la storia in modo tale che i progressi del giocatore nel mondo e la comprensione delle sue dinamiche si riflettessero nelle conoscenze e nella narrazione di Tidus<ref name="bff">{{cita video|titolo=Beyond Final Fantasy|editore=Square Enix|url=http://www.dailymotion.com/video/x18osb3_final-fantasy-x-developer-interviews_videogames|accesso=27 ottobre 2015|lingua=ja}}</ref>.
* 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 decimo capitolo di ''Final Fantasy'' introdusse numerose novità all'interno della serie, come il passaggio a sfondi [[rendering|renderizzati]] in 3D, il [[doppiaggio]] vocale e la transizione a una narrazione in tempo reale. Il produttore esecutivo [[Hironobu Sakaguchi]] dichiarò che sebbene inizialmente fosse preoccupato dal numero di novità e dalla loro accoglienza da parte del pubblico, il successo della serie risiedeva proprio nell'abilità del team di sviluppo di mettersi in discussione e sperimentare nuove cose<ref name=bff />.
 
=== InfluenzeIl collaudo Beta ===
{{Vedi anche|Versione beta}}
Nel cercare ispirazione per Spira, Kitase prese atto del fatto che i giocatori erano rimasti delusi dalle atmosfere [[fantascienza|fantascientifiche]] di ''Final Fantasy VII'' e ''[[Final Fantasy VIII]]'', preferendo un "semplice mondo fantastico". Desiderando liberarsi dal retaggio di medioevo europeo che era spesso associato al termine "[[fantasy]]", Kitase prese a ideare un mondo che ridefinisse deliberatamente lo stereotipo impresso nelle menti dei giocatori<ref name="bff"/>. Con gran parte del team di sviluppo interessato a temi orientali nelle prime fasi di ''concept'', l'ambientazione assunse uno stile asiatico, con [[Australasia]], [[Thailandia]] e [[Giappone]] identificati da Kitase come le maggiori influenze dal punto di vista culturale e geografico sul design di Spira, specialmente per quanto riguarda le ambientazioni di Besaid e Kilika<ref name="bff"/>. Nomura si sforzò di mantenere alto il livello di dettaglio di Spira durante la fase di creazione. Fumi Nakashima, il reponsabile del design dei personaggi secondari, volle attribuire a personaggi di diverse regioni e culture degli abbigliamenti caratteristici. Per far risaltare la cultura Albhed, tecnologicamente molto avanzata, Nakashima gli fece portare maschere e occhialini, per conferirgli un aspetto "strano ed eccentrico"<ref name="bff"/>.
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").
=== Design e doppiaggio ===
Inizialmente il gioco avrebbe dovuto incorporare alcuni elementi online, attraverso il servizio di Square PlayOnline; tuttavia durante la fase di realizzazione queste caratteristiche furono eliminate e il [[gioco in rete]] entrò a far parte della serie solo con ''[[Final Fantasy XI]]''<ref>{{cita pubblicazione|titolo=Monitor: Final Fantasy X Goes Offline|rivista=PlayStation: The Official Magazine|numero=42|data=febbraio 2001|pagina=18|lingua=en}}</ref><ref>{{cita web|url=http://rpgamer.com/news/Q4-2000/112000b.html|titolo=Final Fantasy X Not Online-Capable|autore=Jimmy Avistetto|editore=RPGamer|accesso=2 novembre 2015|lingua=en}}</ref>. Il direttore delle mappe Nakazato volle introdurre un concetto di mappa del mondo che presentasse un approccio più realistico di quello dei precedenti ''Final Fantasy'', in linea con il realismo degli sfondi 3D al posto dei fondali pre-renderizzati<ref name=bff />. Avendo giocato di persona ai precedenti titoli della serie, il direttore delle battaglie Tsuchida cercò di ricreare in ''Final Fantasy X'' quegli elementi che aveva trovato interessanti, portandolo ad abbandonare il sistema di combattimento [[Active Time Battle]] e ad introdurre il più strategico [[Conditional Turn Based]]<ref name="bff"/>. Originariamente il gioco avrebbe dovuto presentare nemici in movimento e visibili sulla mappa, transizioni senza soluzione di continuità dalla navigazione alle battaglie e la possibilità per i giocatori di spostarsi sulla mappa durante gli incontri con i nemici<ref name="battleandvoice">{{cita|''Final Fantasy X Official Strategy Guide''|p. 268}}.</ref>. Il direttore artistico delle battaglie, Shintaro Takai, affermò infatti che era sua intenzione rendere le battaglie una parte naturale della storia e non un elemento indipendente<ref name="bff"/>. Tuttavia, a causa di limitazioni nell'[[hardware]], queste idee non vennero applicate. La Sferografia venne invece pensata come un mezzo per aumentare le statistiche dei personaggi in modo interattivo, così che i giocatori avrebbero potuto sperimentare di persona lo sviluppo delle abilità dei loro personaggi<ref>{{cita|''Final Fantasy X Official Strategy Guide''|p. 266}}.</ref>.
 
Possono esserci più versioni Beta, man mano che vengono corretti gli errori.
Col passaggio alla piattaforma [[PlayStation 2]], Square poté sfruttare la maggiore potenza di calcolo della console per creare un [[motore grafico]] di nuova generazione. Per quanto riguarda gli ambienti, questi sono realizzati interamente in 3D e renderizzati in tempo reale. Grazie all'uso della [[computer grafica]] si poté inserire inoltre alcuni filmati in full motion video, che vengono utilizzati in alcune tappe fondamentali del gioco<ref name="EuroG"/>. I personaggi stessi sono completamente tridimensionali e i loro dettagli facciali sono stati curati per permettere il rendering in tempo reale delle espressioni, attraverso la tecnica del [[motion capture]] e della skeletal animation. Questa tecnologia permise agli animatori di creare movimenti labiali realistici, i quali vennero poi programmati per adattarsi alle battute dei doppiatori<ref name="bff"/>.
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.
Nojima dichiarò che l'uso del doppiaggio gli permise di esprimere le emozioni in modo più efficace rispetto al passato e riuscì pertanto a mantenere la trama più semplice. La presenza di doppiatori lo costrinse inoltre ad effettuare vari cambiamenti alla sceneggiatura, in modo da far combaciare la personalità degli attori con i personaggi che interpretavano<ref>{{cita web|url=http://www.gamespot.com/articles/final-fantasy-x/1100-2829055/|titolo=Final Fantasy X|editore=[[GameSpot]]|data=30 novembre 2001|accesso=2 novembre 2015|lingua=en}}</ref>. L'inclusione del doppiaggio creò tuttavia dei problemi nella [[Localizzazione (software)|localizzazione]] del gioco. Con i filmati programmati in base alla lingua giapponese, il team di localizzazione inglese dovette affrontare l'ostacolo di svolgere una traduzione che fosse plausibile e che si adattasse al ritmo delle battute e ai movimenti delle labbra dei personaggi. Alexander O. Smith paragonò il lavoro di adattamento del gioco a "scrivere quattro o cinque film di dialogo interamente in ''[[haiku]]'' [e] ovviamente gli attori dovevano recitare e recitare bene, all'interno di queste restrizioni"<ref name="battleandvoice"/>.
 
== [[Automazione del collaudo del software|Automazione del collaudo]] ==
== Colonna sonora ==
Se il collaudo consiste nell'utilizzo del prodotto quasi come se fosse la normale operatività, si parla di "collaudo manuale".
{{vedi anche|Final Fantasy X Original Soundtrack}}
''Final Fantasy X'' segna il primo gioco della serie principale in cui [[Nobuo Uematsu]], compositore storico della saga, venne assistito nel suo lavoro. A redigere la colonna sonora vennero chiamati anche [[Masashi Hamauzu]] e Junya Nakano<ref name="IGN">{{cita web|url=http://www.ign.com/articles/2001/12/19/final-fantasy-x|titolo=Final Fantasy X Review|editore=IGN|data=18 dicembre 2001|autore=David Smith|accesso=2 novembre 2015|lingua=en}}</ref>, che furono scelti per la loro abilità di creare musiche diverse dallo stile di Uematsu, ma in grado di armonizzarsi con esse<ref>{{cita web|url=http://www.nobuouematsu.com/rbaby.html|titolo=Interview by RocketBaby.net|autore=Michael Huang|editore=nobuouematsu.com|accesso=2 novembre 2015|lingua=en}}</ref>. Il gioco include tre canzoni cantate. La prima è una ballata [[j-pop]] intitolata {{nihongo|''Suteki da ne''|素敵だね||lett. "Non è meraviglioso?"}} presente sia in versione normale che in versione orchestrata per i titoli di coda. L'arrangiamento venne composto da Uematsu, mentre le parole sono di Kazushige Nojima. Il brano è interpretato dalla cantante [[musica folk|folk]] giapponese [[Rikki]], che l'equipe musicale scovò cercando un cantante la cui musica riflettesse le atmosfere delle isole di [[Okinawa]]<ref name="bff"/>. La seconda è il brano [[heavy metal]] ''Otherworld'', opera del gruppo [[The Black Mages]], fondato proprio da Uematsu, e cantata in inglese da Bill Muir. La composizione è udibile in una delle scene di apertura e viene ripresa in uno degli scontri che precedono la fine del gioco. Infine l'{{nihongo|Inno dell'intercessore|祈りの歌|Inori no uta|lett. "Canzone di preghiera"}} è un brano che utilizza sillabe giapponesi e ricorre di frequente nel gioco<ref name="RPGFOST">{{cita web|autore=Patrick Gaan, Ben Schweitzer|url=http://www.rpgfan.com/soundtracks/ff10ost/index.html|titolo=Final Fantasy X OST|editore=RPGFan|accesso=2 novembre 2015|lingua=en}}</ref>.
 
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".
La colonna sonora venne raccolta in 91 tracce suddivise in quattro CD. Venne pubblicata in Giappone il 1º agosto 2001 da DigiCube e riedita il 10 maggio 2004 da Square Enix<ref name="RPGFOST"/>. Altri dischi correlati includono ''feel/Go dream: Yuna & Tidus'', pubblicato in Giappone da DigiCube l'11 ottobre 2001 e contenente brani di Tidus e Yuna<ref>{{cita web|autore=Lucy Rzeminski|url=http://www.rpgfan.com/soundtracks/ff10tribute/index.html|titolo=feel/Go dream ~ Yuna & Tidus|editore=RPGFan|accesso=2 novembre 2015|lingua=en}}</ref>; ''Piano Collections Final Fantasy X'', una raccolta di musiche del gioco<ref>{{cita web|autore=Liz Maas, Damian Thomas|url=http://www.rpgfan.com/soundtracks/ff10pc/index.html|titolo=Piano Collections Final Fantasy X|editore=RPGFan|accesso=2 novembre 2015|lingua=en}}</ref>; e ''Final Fantasy X Vocal Collection'', una compilation di dialoghi dei personaggi e canzoni<ref>{{cita web|autore=Lucy Rzeminski|url=http://www.rpgfan.com/soundtracks/ff10vc/index.html|titolo=Final Fantasy X Vocal Collection|editore=RPGFan|accesso=2 novembre 2015|lingua=en}}</ref>.
 
== Granularità ==
The Black Mages hanno riarrangiato tre brani della colonna sonora di ''Final Fantasy X'' in stile [[rock]]: ''Fight With Seymour'', nel loro album ''[[The Black Mages (album)|The Black Mages]]'' del 2003 e ''Otherworld'' e ''The Skies Above'', contenute nell'album ''[[The Black Mages II: The Skies Above]]'' del 2004. Uematsu continua inoltre a suonare alcuni pezzi nella sua serie di concerti ''Dear Friends: Music from Final Fantasy''<ref>{{cita web|autore=Peer Schnieder|url=http://www.ign.com/articles/2004/05/11/dear-friends-music-from-final-fantasy|titolo=Dear Friends: Music from Final Fantasy|editore=IGN|data=11 maggio 2004|accesso=2 novembre 2015|lingua=en}}</ref>. Le musiche di ''Final Fantasy X'' sono apparse anche in vari concerti e album live come ''20020220 Music from Final Fantasy'', una registrazione live di un'orchestra che eseguiva brani della serie, inclusi alcuni pezzi del gioco<ref>{{cita web|autore=Liz Maas|url=http://www.rpgfan.com/soundtracks/20020220/index.html|titolo=20020220 - Music from Final Fantasy|editore=RPGFan|accesso=2 novembre 2015|lingua=en}}</ref>. ''Swing de Chocobo'' venne inclusa dall'[[Orchestra Filarmonica Reale di Stoccolma]] nel loro tour ''Distant Worlds – Music from Final Fantasy''<ref>{{cita web|url=http://www.squareenixmusic.com/albums/f/ffdistantworlds.shtml|titolo=Distant Worlds – Music from Final Fantasy|editore=Square Enix Music Online|accesso=2 novembre 2015|lingua=en}}</ref>, mentre ''To Zanarkand'' venne eseguita dalla [[New Japan Philharmonic]] nella serie di concerti ''[[Tour de Japon]]''<ref>{{cita web|url=http://www.squareenixmusic.com/albums/dvds/tourdejapon.shtml|titolo=Tour de Japon: Music from Final Fantasy DVD|editore=Square Enix Music Online|accesso=2 novembre 2015|lingua=en}}</ref>.
=== 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.
== Distribuzione ==
''Final Fantasy X'' venne pubblicato in Giappone il 19 luglio 2001 e in Nord America il 17 dicembre 2001. Nel 2002 seguirono le distribuzioni in Australia, il 17 maggio, e in Europa, il 24 maggio<ref>{{cita web|url=http://www.gamefaqs.com/ps2/197344-final-fantasy-x/data|titolo=Final Fantasy X Release Information|editore=[[GameFAQs]]|accesso=2 novembre 2015|lingua=en}}</ref>. La versione europea in particolare, pur basandosi sull'edizione nordamericana, presenta svariate aggiunte. Nei due [[DVD]] del set completo si trovano in più i Dark Eoni e il super-boss Der Richter, nuove armi, armature e abilità, la Sferografia Master, interviste ai produttori e agli artisti, una raccolta dei trailer e delle pubblicità filmate della prima uscita, un video musicale con opzione audio 5.1 per il brano ''Suteki da ne'' e infine diversi trailer dei progetti in arrivo da Square durante l'anno, tra cui ''[[Blue Wing Blitz]]'', ''[[Kingdom Hearts]]'' e ''[[Final Fantasy (film)|Final Fantasy: The Spirits Within]]''<ref>{{cita web|url=http://www.rpgfan.com/news/2001/1259.html|titolo=Final Fantasy X Ships, Includes FFXI Trailer|editore=RPGFan|data=19 luglio 2001|accesso=2 novembre 2015|lingua=en}}</ref>.
 
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").
Il 31 gennaio 2002 venne pubblicata in esclusiva per il mercato nipponico una [[versione internazionale]] del gioco denominata ''Final Fantasy X International'', con doppiaggio in inglese e sottotitoli in giapponese<ref name="International"/>. Rispetto all'originale, la nuova edizione comprende diverse aggiunte tra cui un filmato inedito ambientato due anni dopo la fine della storia principale che costituisce il prologo di ''[[Final Fantasy X-2]]''<ref name="FFX-2">{{cita web|autore=Jeremy Dunham|url=http://uk.ign.com/articles/2003/11/25/final-fantasy-x-2-developer-interview|titolo=Final Fantasy X-2 Developer Interview|editore=IGN|data=24 novembre 2003|accesso=2 novembre 2015|lingua=en}}</ref>, insieme a diversi trailer di giochi in arrivo e interviste ai doppiatori statunitensi e giapponesi. Una compilation contenente ''Final Fantasy X'' e ''Final Fantasy X-2'' ed intitolata ''Final Fantasy X/X-2 Ultimate Box'' venne messa sul mercato in Giappone a partire dall'8 settembre 2005<ref>{{cita web|url=http://www.ign.com/articles/2005/07/01/square-enix-announces-ultimate-hits-collection|titolo=Square Enix Announces Ultimate Hits Collection|editore=IGN|data=1º luglio 2005|accesso=2 novembre 2015|lingua=en}}</ref>.
 
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]].
=== ''Final Fantasy X/X-2 HD Remaster'' ===
Il 13 settembre 2011 [[Square Enix]] annunciò che ''Final Fantasy X'' sarebbe stato rimasterizzato in [[alta definizione]] per [[PlayStation 3]] e [[PlayStation Vita]], in occasione del decimo anniversario dell'uscita del gioco<ref name="FFX HD 1"/>. Il 19 marzo 2013 venne confermato che la versione per PS3 avrebbe contenuto anche il sequel ''X-2'' rimasterizzato in HD. I due giochi vennero pubblicati per PS3 in un unico [[Blu-ray Disc]] con il titolo ''Final Fantasy X/X-2 HD Remaster''<ref name="FFX HD 4">{{cita web|url=http://www.finalfantasyxhd.com/us/index.php|titolo=Final Fantasy X/X-2 HD Remaster|editore=Square Enix|accesso=2 novembre 2015|lingua=en}}</ref>, mentre in cartucce separate per Vita<ref name="FFX HD 5"/>. Durante la conferenza stampa di PlayStation China che si è tenuta a [[Shanghai]] l'11 dicembre 2014, Square Enix confermò che ''Final Fantasy X/X-2 HD Remaster'' sarebbe stato reso disponibile anche per [[PlayStation 4]] nella primavera del 2015<ref name="PS4"/>. Il [[Portabilità|porting]] venne effettivamente pubblicato in tutto il mondo tra il 12 e il 15 maggio 2015<ref name="PS4"/>.
 
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.
== Accoglienza ==
=== Vendite ===
A causa della limitata diffusione della PlayStation 2, la Square si aspettava dei volumi di vendita iniziali di ''Final Fantasy X'' inferiori ai precedenti tre capitoli della serie, reputando un successo la vendita di almeno due milioni di copie in tutto il mondo<ref>{{cita web|url=http://www.gamespot.com/features/vgs/universal/finalfantasy_hs/sec1_10.html|titolo=The History of Final Fantasy|editore=GameSpot|accesso=2 novembre 2015|lingua=en|urlarchivio=http://web.archive.org/web/20040606004506/http://www.gamespot.com/features/vgs/universal/finalfantasy_hs/sec1_10.html|dataarchivio=6 giugno 2004}}</ref>. Tuttavia, nei primi quattro giorni di disponibilità, il gioco vendette più di 1,4 milioni di copie in pre-ordini, fissando un record per il videogioco di ruolo a vendere più rapidamente<ref>{{cita web|url=http://www.ign.com/articles/2001/07/19/final-fantasy-x-sells-like-crazy-world-not-shocked|titolo=Final Fantasy X Sells Like Crazy; World Not Shocked|editore=IGN|data=19 luglio 2001|accesso=2 novembre 2015|lingua=en}}</ref><ref name="GWR08-RPG">{{cita libro|curatore=Craig Glenday|titolo=Guinness World Records Gamer's Edition 2008|editore=Guinness|data=11 marzo 2008|isbn=978-1-904994-21-3|pagine=156-167|capitolo=Record Breaking Games: Role-Playing Games|lingua=en}}</ref> e superando i risultati di ''Final Fantasy VII'' e ''Final Fantasy IX'' nello stesso periodo<ref>{{cita web|url=http://www.ign.com/articles/2001/07/24/final-fantasy-x-approaches-2-million-copies-sold|titolo=Final Fantasy X Approaches 2 Million Copies Sold|editore=IGN|data=24 luglio 2001|accesso=2 novembre 2015|lingua=en}}</ref>. ''Final Fantasy X'' divenne inoltre il primo videogioco per PS2 a raggiungere i due e i quattro milioni di copie vendute<ref>{{cita web|url=http://www.ign.com/articles/2002/01/08/ffx-tops-sales-charts|titolo=FFX Tops Sales Charts|editore=IGN|data=7 gennaio 2002|accesso=2 novembre 2015|lingua=en}}</ref><ref>{{cita web|autore=Giancarlo Varanini|url=http://www.gamespot.com/articles/final-fantasy-x-sales-meet-expectations/1100-2843955/|titolo=Final Fantasy X sales meet expectations|editore=GameSpot|data=30 gennaio 2002|accesso=2 novembre 2015|lingua=en}}</ref>. In totale in gioco ha venduto circa otto milioni di copie in tutto il mondo<ref name="vendite"/><ref>{{cita web|url=http://www.vgchartz.com/game/759/final-fantasy-x/|titolo=Final Fantasy X|editore=vgchartz.com|accesso=2 novembre 2015|lingua=en}}</ref>.
 
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.
=== Critica ===
{| class="sinottico" style="font-size: 90%; text-align: center;"
|-
! colspan="2" style="background:lightsteelblue; text-align: center;"| Accoglienza
|-
! style="width:13em; background:gainsboro; text-align: center;" | Recensione
! style="width:7em; background:gainsboro; text-align: center;" | Giudizio
|-
| align = "center" style = "background:whitesmoke; text-align: center; vertical-align:middle;"| [[GameRankings]]
| align = "center" style = "background:whitesmoke; text-align: center; vertical-align:middle;"| 91,73%<ref name="gr"/>
|-
| align = "center" style = "background:lavender; text-align: center; vertical-align:middle;" | [[Metacritic]]
| align = "center" style = "background:lavender; text-align: center; vertical-align:middle;"| 92/100<ref name="mc"/>
|-
| align = "center" style = "background:whitesmoke; text-align: center; vertical-align:middle;"| ''[[Edge (rivista)|Edge]]''
| align = "center" style = "background:whitesmoke; text-align: center; vertical-align:middle;"| 6/10<ref name="edge"/>
|-
| align = "center" style = "background:lavender; text-align: center; vertical-align:middle;" | [[Eurogamer]]
| align = "center" style = "background:lavender; text-align: center; vertical-align:middle;"| 9/10<ref name="EuroG"/>
|-
| align = "center" style = "background:whitesmoke; text-align: center; vertical-align:middle;"| ''[[Famitsū]]''
| align = "center" style = "background:whitesmoke; text-align: center; vertical-align:middle;"| 39/40<ref>{{cita web|url=http://fs.finalfantasytr.com/search.asp?query=final+fantasy|titolo=Final Fantasy – Famitsu Scores Archive|editore=[[Famitsū]]|accesso=3 novembre 2015|lingua=ja|urlarchivio=http://web.archive.org/web/20090425082913/http://fs.finalfantasytr.com/search.asp?query=final+fantasy|dataarchivio=25 aprile 2009}}</ref>
|-
| align = "center" style = "background:lavender; text-align: center; vertical-align:middle;" | ''[[Game Informer]]''
| align = "center" style = "background:lavender; text-align: center; vertical-align:middle;"| 9,75/10<ref name="GI"/>
|-
| align = "center" style = "background:whitesmoke; text-align: center; vertical-align:middle;" | ''[[GamePro]]''
| align = "center" style = "background:whitesmoke; text-align: center; vertical-align:middle;"| {{Giudizio|5|5}}<ref name="Gpro"/>
|-
| align = "center" style = "background:lavender; text-align: center; vertical-align:middle;" | [[GameSpot]]
| align = "center" style = "background:lavender; text-align: center; vertical-align:middle;"| 9,3/10<ref name="GSpot"/>
|-
| align = "center" style = "background:whitesmoke; text-align: center; vertical-align:middle;"| [[GameSpy]]
| align = "center" style = "background:whitesmoke; text-align: center; vertical-align:middle;"| {{Giudizio|4.5|5}}<ref name="GSpy"/>
|-
| align = "center" style = "background:lavender; text-align: center; vertical-align:middle;"| [[IGN (sito web)|IGN]]
| align = "center" style = "background:lavender; text-align: center; vertical-align:middle;"| 9,5/10<ref name="IGN"/>
|}
 
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").
''Final Fantasy X'' venne accolto molto positivamente dalla critica specializzata. Le riviste giapponesi di videogiochi ''[[Famitsū]]'' e ''Famitsū PS2'' assegnarono al titolo un punteggio quasi perfetto di 39/40<ref name="famitsu">{{cita web|url=http://www.ign.com/articles/2001/07/13/final-fantasy-x-gets-rated-in-japan|titolo=Final Fantasy X Gets Rated in Japan|editore=IGN|data=13 luglio 2001|accesso=3 novembre 2015|lingua=en}}</ref>. Un altro magazine videoludico giapponese, ''The Play Station'', diede una valutazione di 29/30. Le tre testate espressero particolare apprezzamento per la trama, la grafica e i full motion video del gioco<ref name="famitsu"/>. Il titolo detiene una percentuale di apprezzamento del 91,73% su [[GameRankings]] e un punteggio di 92 su 100 su [[Metacritic]]<ref name="gr">{{cita web|url=http://www.gamerankings.com/ps2/197344-final-fantasy-x/index.html|titolo=Final Fantasy X Reviews|editore=[[GameRankings]]|accesso=3 novembre 2015|lingua=en}}</ref><ref name="mc">{{cita web|url=http://www.metacritic.com/game/playstation-2/final-fantasy-x|titolo=Final Fantasy X for PlayStation 2 Reviews|editore=[[Metacritic]]|accesso=3 novembre 2015|lingua=en}}</ref>. Il produttore Shinji Hashimoto affermò che l'accoglienza del gioco fu "eccellente", a causa degli apprezzamenti diffusi e dei molti premi ricevuti<ref name="cvg"/>.
 
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").
David Smith di [[IGN (sito web)|IGN]] lodò il doppiaggio e le innovazioni nel gameplay, in particolar modo l'approccio alle battaglie, il sistema di invocazione, la possibilità di cambiare membri del party, lo sviluppo dei personaggi e il sistema di catalogazione e personalizzazione dell'inventario. Ritenne inoltre che la grafica del gioco era migliorata rispetto ai suoi predecessori in ogni aspetto e che il gioco nel suo complesso era esteticamente "il più bello della serie [e] presumibilmente quello con la miglior [[giocabilità]]"<ref name="IGN"/>. Greg Kasavin di [[GameSpot]] apprezzò molto la trama, definendola sorprendentemente complessa, il suo finale soddisfacente e l'assenza di ''cliché'' tipici dei giochi di ruolo encomiabile. Lodò inoltre la musica, reputandola "variegata e adatta alle diverse scene del gioco"<ref name="GSpot">{{cita web|url=http://www.gamespot.com/reviews/final-fantasy-x-review/1900-2832771/|titolo=Final Fantasy X Review|autore=Greg Kasavin|editore=GameSpot|data=14 dicembre 2001|accesso=3 novembre 2015|lingua=en}}</ref>. Allo stesso modo, ''[[GamePro]]'' descrisse il sistema di sviluppo dei personaggi e quello di battaglia come "due delle migliori innovazioni della serie"<ref name="Gpro">{{cita web|url=http://www.gamepro.com/article/reviews/19160/final-fantasy-x/|titolo=GamePro: Final Fantasy X|autore=Mike Weigand|editore=GamePro|data=14 dicembre 2001|accesso=3 novembre 2015|lingua=en|urlarchivio=http://web.archive.org/web/20100927063641/http://www.gamepro.com/article/reviews/19160/final-fantasy-x/|dataarchivio=27 settembre 2010}}</ref>. La grafica del gioco fu particolarmente apprezzata da Raymond Padilla di [[GameSpy]], che la definì "di prima qualità", oltre a lodare i modelli dei personaggi, gli sfondi, gli eventi e le animazioni<ref name="GSpy">{{cita web|url=http://ps2.gamespy.com/playstation-2/final-fantasy-x/539181p1.html|titolo=Final Fantasy X Review|editore=GameSpy|autore=Raymond Padilla|data=15 dicembre 2001|accesso=3 novembre 2015|lingua=en}}</ref>. Game Revolution invece ritenne il lavoro dei doppiatori "sopra la media" e definì la musica "ricca"<ref name="Grev">{{cita web|url=http://www.gamerevolution.com/review/ps2/final-fantasy-x|titolo=GameRevolution: Final Fantasy X|autore=Johnny Liu|editore=Game Revolution|data=1º dicembre 2001|accesso=3 novembre 2015|lingua=en}}</ref>.
 
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.
''[[Edge (rivista)|Edge]]'' giudicò il gioco meno positivamente, criticandone molti aspetti come noiosi e poco innovativi e descrivendo i dialoghi come "nauseanti", stroncando in particolare il personaggio di Tidus<ref name="edge">{{cita pubblicazione|titolo=Final Fantasy X|rivista=[[Edge (rivista)|Edge]]|data=febbraio 2002|numero=107|pagine=76-77|lingua=en}}</ref>. Andrew Reiner di ''Game Informer'' criticò la linearità del gioco e il fatto che ai giocatori non era più data la possibilità di attraversare il mondo in [[Chocobo]] o di controllare l'aeronave<ref name="GI">{{cita web|url=http://www.gameinformer.com/Games/Review/200201/R03.0801.1256.47994.htm|titolo=Final Fantasy X|editore=Game Informer|autore=Justin Leeper|accesso=3 novembre 2015|lingua=en|urlarchivio=http://web.archive.org/web/20050224045521/http://www.gameinformer.com/Games/Review/200201/R03.0801.1256.47994.htm|dataarchivio=22 febbraio 2005}}</ref>. Tom Bramwell di [[Eurogamer]] ritenne i segmenti a rompicapo "deprimenti" e "superflui" e che nonostante la Sferografia fosse "un bel tocco", occupava troppa parte del gioco<ref name="EuroG"/>. La linearità del gioco fu apprezzata da ''[[GamePro]]'', poiché per raggiungere la fine ai giocatori non era richiesto completare tutte le missioni secondarie o i [[minigioco|minigiochi]], ritenendo alcuni di essi non attraenti<ref name="Gpro"/>. Game Revolution notò che alcuni video erano troppo lunghi, senza possibilità di saltarli<ref name="Grev"/>.
 
Con tale architettura, se si vuole aggiungere una combinazione di valori a quelle esistenti, basta modificare i file di dati.
=== Riconoscimenti ===
''Final Fantasy X'' vinse il premio come miglior gioco ai Japan Game Award per il 2001-2002<ref>{{cita web|url=http://www.gpara.com/news/02/10/news200210280717.htm|titolo=最優秀賞は「FF10」!! 「第6回 CESA GAME AWARDS」授賞式|editore=gpara.com|data=28 ottobre 2002|accesso=3 novembre 2015|lingua=ja}}</ref>. I lettori di ''Famitsū'' lo elessero miglior videogioco di tutti i tempi nel 2006<ref>{{cita web|url=http://www.next-gen.biz/features/japan-votes-all-time-top-100|titolo=Japan Votes on All Time Top 100|editore=next-gen.biz|data=3 marzo 2006|accesso=3 novembre 2015|lingua=en|urlarchivio=https://web.archive.org/web/20110314014742/http://www.next-gen.biz/features/japan-votes-all-time-top-100|dataarchivio=14 marzo 2011}}</ref>. Nel 2007 si aggiudicò il dodicesimo posto nella lista di IGN dei migliori 25 giochi della PS2 e il sesto nell'elenco dei giochi esteticamente più validi per la stessa console<ref>{{cita web|url=http://www.ign.com/articles/2008/11/14/top-25-ps2-games?page=6|titolo=Top 25 PS2 Games|pagina=6|editore=IGN|data=14 novembre 2008|accesso=3 novembre 2015|lingua=en}}</ref><ref>{{cita web|url=http://www.ign.com/articles/2010/05/07/the-top-10-best-looking-ps2-games-of-all-time?page=2|titolo=The Top 10 Best Looking PS2 Games of All Time|pagina=2|editore=IGN|data=7 maggio 2010|accesso=3 novembre 2015|lingua=en}}</ref>. In una lista simile stilata da GameSpy, si piazzò al 21º posto<ref>{{cita web|url=http://ps2.gamespy.com/articles/693/693430p6.html|titolo=Top 25 PS2 Games|pagina=6|editore=GameSpy|accesso=3 novembre 2015|lingua=en}}</ref>. [[1UP.com]] votò la rivelazione contenuta nel finale come uno dei più grandi [[Spoiler (cinema)|spoiler]] nella storia videoludica, mentre IGN classificò il finale al quinto posto nella lista dei migliori video pre-renderizzati<ref>{{cita web|url=http://www.1up.com/do/feature?cId=3168011|titolo=Top 5 Videogame Spoilers|editore=[[1UP.com]]|accesso=3 novembre 2015|lingua=en}}</ref><ref>{{cita web|url=http://www.ign.com/articles/2006/06/21/top-10-tuesday-best-pre-rendered-cutscenes|titolo=Top 10 Tuesday: Best Pre-Rendered Cutscenes|editore=IGN|data=20 giugno 2006|accesso=3 novembre 2015|lingua=en}}</ref>.
 
=== Il collaudo di sistema ===
Nel 2004 ''Final Fantasy X'' fu incluso nella lista dei migliori videogiochi secondo [[GameFAQs]]<ref>{{cita web|url=http://www.gamefaqs.com/features/c04spr|titolo=Spring 2004: Best. Game. Ever.|editore=GameFAQs|accesso=3 novembre 2015|lingua=en}}</ref> e a novembre 2005 venne classificato come il 12º miglior titolo di tutti i tempi secondo il sito web<ref>{{cita web|url=http://www.gamefaqs.com/features/10year|titolo=Fall 2005: 10-Year Anniversary Contest—The 10 Best Games Ever|editore=GameFAQs|accesso=3 novembre 2015|lingua=en}}</ref>. In una panoramica generale sulla serie, GamesRadar e IGN ritennero ''Final Fantasy X'' rispettivamente il terzo e quarto miglior titolo della saga<ref>{{cita web|url=http://www.gamesradar.com/best-final-fantasy-games/|titolo=The 25 best Final Fantasy games|editore=GamesRadar|data=16 marzo 2015|accesso=3 novembre 2015|lingua=en}}</ref><ref>{{cita web|url=http://www.ign.com/articles/2009/12/29/ranking-the-final-fantasy-series|titolo=Ranking the Final Fantasy Series|editore=IGN|autore=Crystal Defenders|data=29 dicembre 2009|accesso=3 novembre 2015|lingua=en}}</ref>. Alla fine del 2007 il ''[[Guinness World Records]]'' inserì il gioco al nono posto nella lista dei giochi di ruolo più venduti<ref name="GWR08-RPG"/>. Nel 2008 i lettori della rivista ''[[Dengeki Daioh]]'' lo votarono al secondo posto come miglior videogioco, dietro a ''[[Final Fantasy VII]]''<ref>{{cita web|autore=Brian Ashcraft|url=http://kotaku.com/364353/dengeki-readers-say-fav-2007-game-fav-of-all-time|titolo=Dengeki Readers Say Fav 2007 Game, Fav of All Time|editore=Kotaku|accesso=3 novembre 2015|lingua=en|urlarchivio=https://web.archive.org/web/20090807024238/http://kotaku.com/364353/dengeki-readers-say-fav-2007-game-fav-of-all-time|dataarchivio=7 agosto 2007}}</ref>. In un sondaggio condotto da ''Famitsū'' e ''Dengeki'' sui videogiochi più commoventi di sempre, emerse al primo posto<ref>{{cita web|autore=Sal Romano|url=http://gematsu.com/2011/12/famitsus-top-20-list-of-tear-inducing-games|titolo=Famitsu's top 20 list of tear-inducing games|editore=Gematsu|data=29 dicembre 2011|accesso=3 novembre 2015|lingua=en}}</ref><ref>{{cita web|url=http://dengekionline.com/elem/000/000/113/113442/|titolo=【アンケート結果発表】感動して泣いてしまったゲームはありますか?|editore=[[ASCII Media Works]]|data=15 ottobre 2008|accesso=3 novembre 2015|lingua=ja}}</ref>.
 
Anche se i singoli moduli sono corretti, il sistema ottenuto integrandoli potrebbe non esserlo. Pertanto è sempre necessario collaudare il sistema completo.
== Eredità culturale ==
In virtù del successo commerciale e di critica di ''Final Fantasy X'', Square Enix pubblicò un sequel diretto al videogioco nel 2003, intitolato ''[[Final Fantasy X-2]]''<ref name="FFX-2"/>. L'opera è ambientata due anni dopo la fine di ''Final Fantasy X'' e introduce nuovi conflitti ed enigmi, risolvendo le questioni lasciate in sospeso dal capitolo precedente. I progressi introdotti nel titolo nel rappresentare emozioni realistiche attraverso il doppiaggio ed espressioni facciali sempre più dettagliate sono da allora diventate un marchio di fabbrica della serie. L'attraversamento di ambienti 3D renderizzati in tempo reale al posto di una mappa del mondo, di cui ''Final Fantasy X'' fu un pioniere, è diventato allo stesso modo uno standard della saga<ref>{{cita web|url=http://www.gametrailers.com/full-episodes/r0ogno/gt-retrospectives-final-fantasy-retrospective--part-vii|titolo=Final Fantasy Retrospective Part VII|editore=GameTrailers|data=28 agosto 2007|accesso=3 novembre 2015|lingua=en}}</ref>.
 
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:
== Note ==
* 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à''.
{{references}}
* 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 ==
== Bibliografia ==
=== Il collaudo a scatola bianca ===
* {{cita libro|titolo=Final Fantasy X Ultimania Omega|curatore=BentStuff|data=31 gennaio 2002|editore=DigiCube/Square Enix|isbn=4-88787-021-3|lingua=ja|cid=''Final Fantasy X Ultimania Omega''}}
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.
* {{cita libro|autore=Dan Birlew|titolo=Final Fantasy X Official Strategy Guide|anno=2001|editore=Brady Games|isbn=0-7440-0140-4|lingua=en|cid=''Final Fantasy X Official Strategy Guide''}}
 
=== 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|commons=Category:Final Fantasy X|q}}
 
== Collegamenti esterni ==
* {{cita web|http://www.ruleworks.co.uk/testguide|The Test Management Guide - A to Z and FAQ Knowledgebase}}
*[http://www.ffx-europe.com/flash/flash_it/ffx_main.html Sito ufficiale].
* {{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:Sviluppo software]]
{{Final Fantasy|FF=FFX}}
[[Categoria:Ingegneria del software]]
{{Portale|PlayStation|videogiochi}}
[[Categoria:Gestione del software]]