Vai al blog

Comparazione Pdf: il nostro strumento per test automatici

di lettura
Eleonora Guidi
Articolo scritto in collaborazione con:
Marco Ricciardelli
thumbnail

Quando si opera in campo assicurativo-finanziario la precisione è fondamentale, in particolare se si parla di documenti contenenti atti formali. Per questo abbiamo adattato e combinato alcuni strumenti creando un sistema che ci permettesse di eliminare ogni errore, riducendo i tempi necessari per il controllo qualità a un terzo rispetto a prima.

Lavorando infatti con grandi compagnie del settore bancario, ci troviamo spesso a dover creare e manipolare documenti in formato pdf. Tutti i dati che inseriamo nelle nostre applicazioni, così come eventuali polizze assicurative istituite, sono esportati in pdf per il cliente. Per ogni documento creato occorre garantire che ogni singola sezione sia corretta e non ci siano modifiche non richieste nel corso delle versioni seguenti dell’applicazione. Errori di questo genere potrebbero costare anche l’invalidazione di una polizza o conseguenze legali per i nostri clienti.

I nostri QA svolgono test adeguati attraverso l’utilizzo di diversi tool di comparazione, ma questa operazione avrebbe avuto delle limitazioni: alcune delle lingue previste, come ad esempio il cinese, non vengono supportate da nessuno strumento. Svolgere a mano un’operazione di confronto di questo tipo è molto difficile e richiede molto tempo. Questo avrebbe causato, nel corso del progetto, diversi difetti sui documenti, che sarebbero stati trovati solo in fase avanzata.

Per questo abbiamo deciso di affiancare al sistema di test automatico per il controllo della qualità del codice, un ulteriore sistema automatico ad hoc che, facendo uso di librerie specifiche, potesse occuparsi di creare e confrontare pdf in maniera molto accurata. La precisione raggiunta è stata quella del pixel: il sistema è in grado di rilevare errori nella visualizzazione su schermo del documento con lo scarto di un pixel (pixel perfect).

Abbiamo quindi creato due librerie: una che si occupa della generazione di documenti pdf, mentre l’altra si occupa del loro confronto. Entrambe sono state sviluppate per applicazioni iOS e possono essere riutilizzate all’interno di qualsiasi nostro progetto con codice nativo. Le due librerie vanno poi a interagire tra loro quando procediamo al test automatico dei pdf. Il sistema è infatti in grado, ricevuti in ingresso un set di pdf da testare, di crearne automaticamente una copia, dato lo stato attuale del codice, e di comparare le due versioni. Il set di pdf di ingresso può essere passato a mano o può essere generato, attraverso il sistema, a partire da una versione precedente.
Il sistema è in grado di gestire due documenti con lunghezza di pagine differente o con diverse dimensioni (ad esempio A4 e A5). Il risultato ottenuto con queste librerie è la possibilità di svolgere test di comparazione in pochissimo tempo. Questo strumento può essere usato per aiutare sviluppatori e QA in tutte le fasi del processo di sviluppo e test di un documento pdf.

Un esempio del funzionamento del nostro sistema è illustrato nella seguente figura:

 

A sinistra vediamo una versione precedente del nostro pdf di esempio, mentre a destra abbiamo la versione attuale. Quella al centro, invece, è l’immagine risultante dal nostro test di comparazione: si nota chiaramente che si tratta dell’evidenziazione dei soli elementi mancanti sulla versione corrente. In questo caso il sistema ci fa notare che nell’aggiornamento, il logo Antreem e un titolo non sono più presenti. In questo modo siamo in grado di verificare se la modifica messa in luce dal test è stata richiesta o meno e, nel caso, risolvere eventuali problemi riscontrati.

All’interno del nostro progetto era già attivo un sistema di test automatici basato su Jenkins. Una volta completate le librerie, abbiamo trovato il modo di impostare un nuovo job per svolgere giornalmente il test di tutti i pdf. Ora siamo in grado di capire subito quando vengono introdotte regressioni e correggerle il più velocemente possibile.

Gli impatti sulle stime di progetto sono stati importanti: i tempi per l’esecuzione dei controlli di qualità si sono ridotti di quasi tre ordini di grandezza, è stata introdotta la possibilità di verificare i documenti prodotti durante tutto il processo di sviluppo e manutenzione e non si devono più riservare spazi di tempo dedicati a test manuali, soggetti comunque a errore umano. Infine, trattandosi di un test a livello di immagine e non di contenuto, non siamo vincolati all’utilizzo di una determinata lingua, ma possiamo testare qualsiasi cosa all’interno di un documento pdf, volendo anche ideogrammi o figure.

Eleonora Guidi
Scritto da
Eleonora Guidi
Eleonora è una delle sviluppatrici iOS ed HTML di Antreem. Si occupa di aggiornare e mantenere applicazioni di alto profilo internazionale. Spera un giorno di riuscire a creare qualcosa che possa migliorare, almeno in parte, la nostra società.