RSS

Gli acid test: un aiuto per i programmatori di browser

22 Marzo 2010

Firefox, Internet

firefox-64

Nel lavoro di programmazione ci sono degli strumenti che possono tornare utili per verificare la correttezza dell’implementazione del programma realizzato. Tali strumenti altro non sono che dei test di cui, conoscendo a priori l’output che dobbiamo ottenere con i dati in ingresso, possono mostrarci dove la nostra implementazione risulta errata.
Spesso sono gli stessi programmatori che costruiscono questi test nel momento della creazione del programma, per verificare fin da subito la correttezza delle routine implementate. Ad esempio con Java è molto popolare ricorrere a JUnit, un framework nato appositamente per scrivere dei test.

I test possono comunque essere scritti anche da persone che in base alla loro conoscenza perfetta delle specifiche sottostanti, possono realizzare dei test mirati per scovare i più subdoli bug che un programmatore può aver inserito o implementazioni non aderenti alla perfezione alle specifiche.

Uno di questi prodotti che personalmente ho utilizzato è il “Commodore 64 Emulator Test Suite“, ovvero una serie di programmi per il Commodore 64, adatti a verificare la compatibilità di implementazioni di un emulatore di C64 e creati da Wolfgang Lorenz per proprio uso, ma poi donato a tutti i programmatori 🙂
Questi programmi danno per assodato che sia stato implementato un C64 secondo le specifiche, ma conoscendo i punti difficili e critici da implementare, il test è in grado di mostrare cosa non è stato emulato perfettamente (ad esempio indirizzamenti con lettura in prossimità di un salto pagina).

Ovviamente se non si fosse già implementato il 95% di un Commodore 64, questo programma semplicemente nemmeno partirebbe e non sarebbe in grado di mostrare ciò che non funziona.

Questi test sono utili anche quando il nostro programma ha superato con esito positivo lo stesso test, perchè se dovessimo mettere mano al codice (in altri punti del programma), possono servire per assicuraci che non siano state inserire regressioni nel codice.

Per il mondo più familiare dei browser web, esistono dei test denominati Acid (acidi, forse perchè difficili da superare), che mettono il browser di fronte a codice perfettamente aderente allo standard, ma in una modalità totalmente inusuale per una normale pagina web, tale per cui piccole discrepanze rispetto allo standard vengono subito a galla.

Esistono 3 Acid test rilasciati e un 4 è in fase di creazione:
Acid 1: http://acid1.acidtests.org/
Acid 2: http://acid2.acidtests.org/
Acid 3: http://acid3.acidtests.org/

L’Acid test 1 è il più vecchio e penso che ogni browser lo supporti, mentre il due e soprattutto il tre sono più recenti e non tutti i browser li supportano. Microsoft ha da sempre dichiarato che superare questi testi non sono la loro priorità, infatti i risultati di questi test sono parecchio scarsi e l’acid 2 è stato superato solo con l’arrivo di Internet Explorer 8, mentre il 3 si attesta su livelli base.

Bisogna ricordare che questi test nascono proprio per garantire che i browser web aderiscano perfettamente allo standard per cui è auspicabile che ogni produttore di browser ne assicuri la riuscita al 100%.

A questo punto diamo uno sguardo a ciò che sono in grado di fare Firefox e Konqueror (cito questi due browser perchè sono quelli che utilizzo quotidianamente su Linux).

Riguardo all’Acid test 2, ovvero un test che utilizza i markup dell’HTML, i stili di CSS 2.1, la trasparenza di PNG e i data URL, ma che simpaticamente è quello per cui bisogna ottenere una immagine di una faccina sorridente, abbiamo questa classifica:

  • Firefox fino alla versione 3.x: test non passato
  • Firefox dalla 3.5: test passato
  • Konqueror 3.5.10: test passato

L’Acid test 3, ovvero un test che testa soprattutto vari aspetti del DOM (Document Object Model, il JavaScript, SVG 1.1 e molti altri fattori, che ci si presenta con dei quadrati colorati e un punteggio che sale fino a 100, abbiamo:

  • Konqueror 3.5.10: test fallito senza possibilità di vedere il punteggio
  • Konqueror 4.4.1: punteggio di 89/100
  • Firefox da 1.5 fino a 2.x: punteggio di 53/100
  • Firefox 3: punteggio di 71/100
  • Firefox 3.6: punteggio di 94/100

Se siete spaventati dai risultati dell’ultimo test, tenete presente che ci sono browser che già superano il test al 100%, mentre di positivo c’è che i browser che uso normalmente stanno migliorando di versione in versione, perciò c’è da attendere che presto raggiungano anche loro la vetta!!

Tutto questo in attesa del rilascio dell’Acid Test 4 che sicuramente porterà nuova linfa per far migliorare i nostri browser 😉

Mi raccomando, sotto con le prove e riportate pure i risultati dei vostri browser 🙂

Acid Test 2: Firefox

Acid Test 2: Firefox <=3.x

Acid Test 2: risultato atteso

Acid Test 2: risultato atteso

Acid Test 3: Konqueror 3.3.10

Acid Test 3: Konqueror 3.3.10

Acid Test 3: Firefox 1.x/2.x

Acid Test 3: Firefox 1.x/2.x

Acid Test 3: Firefox 3.x

Acid Test 3: Firefox 3.x

Acid Test 3: Konqueror 4.4.1

Acid Test 3: Konqueror 4.4.1

Acid Test 3: Firefox 3.6

Acid Test 3: Firefox 3.6

Acid test 3: risultato atteso

Acid test 3: risultato atteso

No comments yet.

Leave a Reply