Supporto volontario e collaborativo per Joomla!® in italiano

Il Testing di Joomla!

Informazioni utiliIl problema: il testing del software è una sfida enorme da quando il software è in circolazione. Una gran parte è rappresentata dalla semplice matematica degli enunciati if / then

 

Per capire meglio

Se ogni istruzione crea due possibili percorsi di esecuzione attraverso un programma, il numero di percorsi possibili è approssimativamente 2 elevato all'ennesima potenza (2n), dove “n” è il numero di istruzioni “if”. Joomla ha oltre 12.000 istruzioni “if” ciò significa che vi è un numero ridicolo di combinazioni possibili che, in teoria, dovrebbero essere testate per Joomla! (servirebbe un tempo pari a 100 vite). Tralasciando il fatto che Joomla! viene eseguito in una vasta gamma di ambienti operativi (Linux, Windows, Apache, IIS, MySQL, SQL Server, e così via). Questo è sufficiente per dire che il test di Joomla! è un lavoraccio.

Prima di cedere alla disperazione, le cose non sono così tetre come potrebbe sembrare. Per esempio, scrivendo Joomla! utilizzando principalmente una progettazione object-oriented (orientata agli oggetti), si riduce l'interdipendenza tra le diverse parti del pacchetto. Da una prospettiva di testing, questo significa che possono essere testate molte parti del programma indipendentemente da altre parti. Questo riduce drasticamente il numero di casi di test possibili. Anche così, teoricamente, esistono molti più casi di quelli che un normale individuo possa sperare di testare.

 

Le soluzioni

Data l'impossibilità di verificare ogni percorso possibile per l'esecuzione e l'ambiente, come si può testare Joomla! per renderlo il più possibile privo di bug? La risposta è che sono usate un certo numero di differenti strategie di testing; nel loro insieme, forniscono un elevato grado di fiducia, che le versioni di Joomla rilasciate funzionino come sono state pubblicizzate e forniscono inoltre un meccanismo per il miglioramento continuo.


Unit Testing automatizzato

Unit testing è la forma più scientifica della sperimentazione. Vengono scritti programmi di test che mettono alla prova specifiche linee di codice nel pacchetto. Unit testing in Joomla! è usato principalmente per la piattaforma, in cui ogni programma fa un ben preciso lavoro di basso livello. Unit test automatici vengono eseguiti frequentemente e segnalano immediatamente se un cambiamento del programma causa un fallimento del test. Quando ciò accade, la modifica viene annullata fino a quando il problema non è stato risolto. Questo riduce notevolmente la possibilità che un cambiamento provochi nuovi bug. Inoltre, quando nuovi programmi vengono aggiunti alla piattaforma, generalmente richiedono che i test automatizzati per questi programmi vengano aggiunti contemporaneamente.

Con unit test, si può effettivamente misurare il numero esatto di righe di codice che vengono testate. A partire da questa affermazione, ci sono unit test automatici che testano circa il 40% di tutto il codice nella piattaforma. Codificatori volontari sono occupati tutto il tempo a scrivere più test, e questo numero è destinato a crescere. Unit testing è una componente importante nella strategia di test Joomla! e più codice sarà verificato in questo modo, meno bug avremo.

Se mai si raggiungesse il 100%, ciò significherebbe che non avremmo più nessun bug? Come potete immaginare, la risposta è no. Anche se tutto il codice della piattaforma fosse testato, c'è sempre spazio per l'errore umano nelle prove. Inoltre, anche se i programmi della piattaforma funzionano esattamente come previsto, i programmi a volte hanno difetti di progettazione che causano errori, oppure, i programmi della piattaforma possono essere utilizzati in modo non corretto da qualche altra parte in Joomla! Tuttavia, unit test riduce drasticamente la probabilità di errori.


System Test automatico

L'altro tipo di test che si usa in Joomla è il “system test” (test di sistema) automatizzato. Questo è molto più facile da capire, immaginate di scrivere un dettagliato libretto d'istruzioni di test come questo:

 

  1. Vai in Gestione Articolo e fai clic su Nuovo
  2. Crea un nuovo articolo dal titolo "Test" e assegnalo alla Home Page
  3. Vai sulla Home Page e assicurati che l'articolo sia presente

 

Test di sistema sono programmi software che seguono uno script di test esattamente così. Al posto di una persona a digitare e fare clic i test di sistema inviano combinazioni di tasti e click del mouse simulati al browser per lavorare attraverso scenari di utilizzo diversi, poi si può controllare automaticamente la pagina per assicurarsi che i risultati siano quelli che attesi.

Attualmente esiste una serie di 57 test di sistema, che in circa 40 minuti eseguono e verificano circa 3400 condizioni (l'equivalente di un test eseguito da una persona per diverse ore). Test di sistema vengono eseguiti automaticamente ogni notte e rilevano subito se una recente modifica ha causato qualche problema. Da quando vengono utilizzati i system test, è stata dimostrata la loro utilità nel rilevare numerosi bug prima che fossero rilasciati.

Così come è attualmente utilizzato, il test di sistema in Joomla!, non prova a testare tutti gli scenari di utilizzo ne tutte le estensione del core. I test di sistema sono più come un "reality check" per assicurare che le funzioni di base del sistema funzionino come previsto. Sarebbe utile avere più test di sistema per testare più funzionalità del core e più in dettaglio. Si tratta di un settore in cui è possibile avere maggiore aiuto, e non c'è bisogno di essere un programmatore super esperto per scrivere un test di sistema.


Bug Testing

Unità automatiche e Test di sistema aiutano a prevenire i bug prima che siano rilasciati. Tuttavia, come tutti sappiamo, il test più importante di qualsiasi pacchetto software è quando la gente lo usa, specialmente per un programma come Joomla! che viene utilizzato in milioni di siti web, spesso in modi che mai i progettisti del programma avrebbero immaginato. I bug segnalati dagli utenti sono assolutamente essenziali per mantenere e migliorare la qualità di Joomla!

Quando qualcuno segnala un bug in Joomla! viene creato un problema nel “Issue Tracker”. Prima che un bug-fix proposto venga applicato al codice vero e proprio, ci sono normalmente due persone (diverse dalla persona che ha codificato la correzione del bug) che provano la correzione proposta, il corretto funzionamento e ovviamente, che non provochi nuovi bug (il modo esatto in cui viene fatto dipende dalla natura del bug). In alcuni casi, dove il problema è più complicato e potrebbe potenzialmente causare problemi da qualche altra parte, sono richiesti ulteriori test prima di effettuare la modifica.

E’ importante capire che questo processo funziona solo se gli utenti della community prendono un po’ di tempo per segnalare i bug, la segnalazione dei bug è una delle cose più semplici eppure la più importante che gli utilizzatori di Joomla! possono fare per aiutare il progetto. Se un bug non viene segnalato, quasi certamente non verrà risolto.

Un altro punto importante è che la Bug Squad può sempre utilizzare più aiuto nel “bug testing”. Non è necessario essere un programmatore per essere nella Bug Squad. Se siete utenti responsabili di Joomla! la Bug Squad è in grado di utilizzare il vostro aiuto; in qualsiasi momento, ci sono decine di proposte di correzioni di bug che aspettano solo che qualcuno le provi. Se siete interessati ad aiutare, potete contattare direttamente Mark Dexter (Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.)


Release Testing

Quando ci si appresta a rilasciare una nuova versione di Joomla! si effettua qualche prova speciale. Vengono testati i pacchetti di download e gli aggiornamenti automatici per assicurarsi che funzionino correttamente e vengono eseguiti anche alcuni test di sistema per assicurarsi che qualcosa non vada storto nella costruzione dei pacchetti. Questo test è normalmente svolto dai volontari della Bug Squad.


Extension Testing

In un mondo perfetto, gli aggiornamenti di Joomla! non dovrebbero causare problemi con estensioni di terze parti. Tuttavia, ogni volta che viene fatta una modifica al core di Joomla! esiste sempre la possibilità che il cambiamento possa generare un problema con un’estensione. Idealmente, gli sviluppatori di estensioni dovrebbero controllare periodicamente che le loro estensioni funzionino correttamente sulla base di codice corrente. In questo modo, se una variazione causa un problema, può essere riportato e fissato prima di un rilascio. Se questo non è possibile, una seconda opzione è quella di testare le estensioni utilizzando i “proposed release packages” che vengono creati pochi giorni prima di ogni release.

Si tratta di un settore nel quale la Bug Squad lavora attivamente per migliorare il testing, un nuovo gruppo è stato creato appositamente per testare “versioni proposte” con estensioni di terze parti.


Come potete aiutare?!

Joomla! è un progetto basato sulla comunità. Tutte le codifiche e i test vengono svolti da volontari. Ci sono molti modi per aiutare Joomla! a migliorare ulteriormente. Eccone alcuni:

  1. Se trovate un bug, assicuratevi di segnalarlo. Se non siete sicuri, inserite prima una domanda nel forum di supporto
  2. Se sei un coder interessato a test automatici, offriti volontario per aiutare a scrivere Unit test o System test. Se non sei sicuro su come iniziare, chiedi a uno dei gruppi di Google o manda una mail a Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.
  3. Se volete aiutare a testare correzioni di bug o release nella Bug Squad, mandate una mail a Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.; ricordate, non è necessario conoscere la programmazione, per contribuire alla Bug Squad

Come abbiamo visto, il test Joomla! è un grande lavoro e vengono utilizzate diverse strategie di test. I numerosi volontari che aiutano con i test consentono di mantenere e migliorare la qualità di Joomla! Vi incoraggio a unirvi nello sforzo!

 

P.s. Traduzione dell'articolo di Mark Dexter su Joomla!Magazine



CommentaCommenta questo articolo sul forum