Rilevare anomalie ed errori nelle Applicazioni Web

Nonostante le promesse di nuovi prodotti per migliorare il web, le pagine internet esistenti sono generalmente di scarsa qualità e affidabilità; tale situazione vien generalmente descritta come “la crisi della rete”. Per migliorarne la qualità e l’affidabilità, i programmatori necessitano di un sistema di prova automatizzato per poter testare le applicazioni, prima che le versioni base in evoluzione vengano introdotte nel mercato.

I nostri programmi ReWeb e TestWeb supportano delle tecniche per l’analisi strutturale di applicazioni web. Le nostre ricerche si concentrano sulle anomalie e sugli errori trovati nelle applicazioni di rete. Noi consideriamo le anomalie associate alle strutture delle applicazioni di rete, come problemi di navigazione, quelle associate alla struttura delle pagine internet, come errori frame o cloni, e quelle in relazione alle applicazioni multilingue di rete, come mancanza di traduzioni e link malfunzionanti. La revisione critica, che è parte integrante del nostro lavoro empirico, mostra che solo il 40 per cento delle applicazioni di rete, da noi selezionate a caso per i nostri studi, sono esenti da anomalie e/o errori.

Alcuni software riescono a trovare automaticamente o semi-automaticamente delle anomalie o dei difetti, guidando l’utente mediante una finestra di dialogo nella quale vengono visualizzati i percorsi analitici e vengono comunicate le verifiche. I software a disposizione offrono funzionalità che vanno dalla correttura della sintassi alla verifica della validità dei link. Frameworks e librerie sono dunque accessibili per definire la struttura del web e per specificare dei test che non possono essere effettuati automaticamente. Solo pochi prototipi di ricerca supportano test strutturali per applicazioni di rete o modelli tecnici ricorsivi delle aziende.

Analisi e test

Attraverso delle analisi possiamo testare se un’applicazione di rete funziona correttamente ed eventualmente trovare possibili anomalie ed errori. ReWeb comprende diverse analisi per applicazioni Web, TestWeb supporta le applicazioni Web ancora in evoluzione.
L’ immagine uno rapp

resenta il funzionamento di questi due tools.

Per rilevare anomalie ed errori nelle applicazioni Web, l’utente deve eseguire le seguenti operazioni di base:

  • Inserire le informazioni di configurazione per far funzionare ReWeb e TestWeb nella fase di scaricamento e rilevamento.
  • Eseguire manualmente degli interventi per aggiungere informazioni ai programmi.
  • Interpretare i risultati della ricerca per determinare le anomalie
  • Analizzare i risultati di TestWeb per stabilire se l’applicazione Web ha passato il test di idoneità.

ReWeb

ReWeb contiene un sistema che scarica le pagine Web del sito scelto e le utilizza per produrre ed analizzare un modello grafico. ReWeb è strutturato in due parti:

  • Nel modo “vista strutturale”, i nodi corrispondono alle pagine di rete, e i bordi rappresentano i collegamenti virtuali tra loro.
  • Nel modo “vista di sistema”, che è più astratto del modo “vista strutturale”, i nodi rappresentano le directory, e i bordi esistono solamente se la pagina Web è collegata con una pagina Web di un’altra directory.

ReWeb implementa una vasta scelta di analisi. Alcune sono semplici, come quella delle pagine non raggiungibili (pagine disponibili sul server, però non raggiungibili dalla pagina principale) e pagine fantasma (pagine associate a collegamenti non ancora esistenti); altre invece sono più complesse, come le analisi per i frames raggiungibili, che hanno l’obiettivo di determinare in quale frame la pagina Web deve essere visualizzata. I progettatori di siti possono usare i risultati di quest’ultima analisi per capire l’assegnazione delle pagine nei frames. L’analisi rileva errori dei frames, come la visualizzazione di pagine Web nel frame superiore invece del frame principale, oppure un errore di caricamento della pagina in un frame, ma in un ambito temporale sbagliato.

Un’altra possibile anomalia è la suddivisione ricursiva di una pagina all’infinito. Questo accade quando una pagina suddivisa in frames è visualizzata all’interno di un altro frame. La causa è l’indirizzo sbagliato del collegamento ipertestuale della navigazione.

Ci sono anche analisi che permettono di controllare la consistenza e i collegamenti dei Web multilingue. Questi Web mettono a disposizione informazioni in varie lingue e quindi sono molto più complessi dei siti tradizionali monolingua. In particolare, le informazioni e i links devono avere una struttura funzionante. I contenuti non solo devono venire visualizzati in modo corretto, ma devono anche corrispondere nella lingua corretta.

L’analisi Clone di ReWeb ha lo scopo di visualizzare parti di pagine HTML statiche con lo stesso contenuto. Queste parti clonate possono recare problemi d’amministrazione. Normalmente questo tipo di problema appare quando si deve fare una modifica al codice HTML su diverse pagine con lo stesso contenuto.

ReWeb usa un metodo basato sulle parole chiavi per creare gruppi di pagine con il contenuto simile. Aiuta eventualmente anche i progettatori del sito a riorganizzare il sito internet in gruppi più appropriati.

TestWeb

Il test strutturale è basato sull’idea che ti puoi fidare degli script del software che contengono strutture che non vengono eseguite durante il test. Il test strutturale può essere impostato con diversi criteri di ricerca (ad esempio il test di ricerca delle pagine e dei collegamenti ipertestuali). Un sito internet è composto da diverse sequenze di pagine web e da variabili contenenti formulari. Perciò possiamo rappresentare una sequenza di pagine specificando la pagina che si attiva e le variabili di transito che sono contenute.

TestWeb, basandosi sui modelli generati da ReWeb, crea dei percorsi attraverso le pagine, i quali possono essere utilizzati per immettere delle variabili.

L’immagine due mostra il modello prodotto da ReWeb della pagina internet Merriam-Webster. TestWeb, basandosi su questi dati, genera poi i collegamenti con le variabili di transito e li analizza. Alla fine del test, l’amministratore può decidere se il sito ha superato il test strutturale.

Gli studi

Negli ultimi cinque anni sono stati eseguiti diversi studi per migliorare la qualità dei siti internet. Noi ne descriviamo quattro.

La qualità di un’applicazione internet ha diversi attributi complessi che includono, ad esempio, la correttezza, l’affidabilità, l’usabilità, l’accessibilità, la sicurezza, la prestazione e la compatibilità con gli standard. La nostra ricerca si concentra sulle possibili anomalie che possono verificarsi col sito internet.

La tabella 1 descrive le anomalie e gli errori dei nostri studi.

Descrizione uno: sito Ubicum

L’immagine tre rappresenta il diagramma del sito internet Ubicum (versione 2001); si tratta di un provider di rete. Questo sito statico (86 pagine HTML) è composto da otto siti virtuali associati a categorie e clienti differenti. Inoltre una parte elabora delle statistiche per il sito.

Il sito Ubicum presenta tre tipi di anomalie: cartelle irraggiungibili, problema di navigazione ed errore di frame.

Le parti del sito web “betty” e “len” sono irraggiungibili dalla cartella principale (rappresentata dall’ asterisco / immagine tre).

I problemi di navigazione del sito Ubicum sono stati riportati nella valutazione di ReWeb. Quest’ultima rivela che c’è un numero alto di collegamenti ipertestuali inutili tra le pagine. Certe pagine web contengono due menu di navigazione con più o meno gli stessi collegamenti (lo confermiamo guardando la struttura dell’applicazione web). Ubicum implementa un menu scritto in HTML e un altro in JavaScript. Una spiegazione possibile a quest’errore è che i programmatori del sito hanno aggiunto il menu in JavaScript dopo una ristrutturazione, duplicando così i collegamenti ipertestuali tra le pagine.

L’analisi per il corretto funzionamento dei frames rivela l’esistenza di un’ anomalia. Quest’ultima è rappresentata nell’immagine quattro.

Il menu di navigazione sulla sinistra non apre le pagine nel frame destro (questo significa che i frames non sono allineati). Questa anomalia può causare un ciclo ricursivo bloccando così l’intera applicazione web.

Descrizione due: sito dell’ Istituto nazionale d’elettrotecnica

Abbiamo eseguito il test per l’analisi della consistenza multilinguale del sito ufficiale dell’istituto nazionale d’elettrotecnica (IEN), “Galileo Ferraris” (Versione 2002). Quest’istituto è attivo nel settore metrologico riguardante il tempo e la frequenza, l’elettromagnetismo, la fotometria e l’acustica.

IEN è un sito bilingue di grandezza media (857 pagine HTML per un totale di 165’000 linee di codice, o 165 kLOC) che mette a disposizione le informazioni in italiano e in inglese. La pagina iniziale contiene due collegamenti ipertestuali per la versione italiana e quella inglese. La struttura delle pagine delle due versioni è in gran parte la stessa.

Un’analisi di una parte del sito della IEN rivela che ci sono due errori (rappresentati graficamente nell’immagine 5 e confermati nell’immagine 6): mancanza di traduzione e problemi coi collegamenti per cambiare lingua.

La pagina “pagina4.html” è disponibile solo in italiano; nonostante ciò due pagine in inglese (“index_e.html” e “services.html” hanno un collegamento ipertestuale su di essa. Inoltre da quest’ultima si può erroneamente accedere alla pagina inglese “stittime.html”. La stessa cosa avviene con le pagine “history.html”, “present.html” e “staff.html”.

I problemi di collegamento tra le due lingue posso provocare dei disagi: se un utente apre la pagina “pagina4.html” e poi apre “stittime.html”, si trova nella parte inglese del sito, sebbene la stessa pagina in italiano sia disponibile (“stittime_i.html”).

Descrizione tre: sito Amazon

Nel 2001 abbiamo controllato il sito di commercio online Amazon.com. Un’analisi di TestWeb ha rivelato che c’era un’anomalia con il funzionamento del carrello della spesa; concretamente veniva cambiata la quantità dei libri comperati.

Consideriamo la seguente situazione. Abbiamo un libro nel carrello della spesa e vogliamo eseguire le seguenti operazioni:

  • Cambiare la quantità del libro scelto, da uno a due, e
  • Incartare con carta da regalo i due libri.

Se eseguiamo queste due operazioni sequenzialmente, il risultato è che abbiamo due pacchi regalo contenenti ciascuno un libro con un messaggio. Se invece invertiamo le operazioni, selezionando innanzitutto di incartare i libri e poi di cambiare la quantità, abbiamo un altro risultato: un pacco regalo contenente due libri e un solo messaggio. Queste due operazioni non sono commutative (nella versione 2001 di Amazon.com).

Descrizione quattro: sito Naturalia

Nel 2004, usando ReWeb, abbiamo analizzato Naturalia, un sito di grandezza media (715 pagine) che promuove i parchi nazionali in Europa. La nostra analisi di raggruppamento ha proposto una soluzione totalmente differente da quella attualmente utilizzata. Al momento la struttura del sito è divisa per nazione; tuttavia il nostro algoritmo di ricerca delle parole chiavi con contenuto simile ha proposto di creare delle categorie secondo la località dei parchi.

L’analisi dei clone ha rilevato un altro problema: 16 pagine del sito sono state clonate, ossia hanno lo stesso codice sorgente. Una soluzione migliore sarebbe quella di creare uno script che legge le informazioni dei parchi da una banca dati e crea il codice html dinamico, per essere letto nel browser.

Altri tools

Ci sono vari programmi per analizzare e migliorare la qualità di un sito internet. Li abbiamo riassunti nella tabella 2 e li presentiamo brevemente.

Web spiders

Web spiders (ragno di rete o anche robot) sono programmi che scaricano completamente o anche solo una parte di un sito web. Normalmente scaricano le pagine web e creano una lista di collegamenti ipertestuali, in un secondo tempo scaricano i documenti (foto, script, ecc.) dei collegamenti raccolti. Il Webbot (http://www.w3/org/robot) è uno spider che supporta diverse modalità di ricerca, scelte dall’utente.

WebSphinx (http://www.cs.cmu.edu/rcm/websphinx) è una libreria JAVA appositamente creata per i Web spiders. Supporta degli spiders personalizzati programmati in JAVA. WebSphinx rappresenta con la GUI (interfaccia grafica) la struttura del sito in un grafico. La differenza tra lo spider di ReWeb e questi altri spiders è che ReWeb riesce a gestire anche le pagine dinamiche.

Ingegneria inversa

SmartSite è un programma che permette di analizzare un sito web da diversi punti di vista, principalmente mostra la struttura completa del sito.

Ware è simile a SmartSite. I risultati di Ware mostrano dei diagrammi (UML) rappresentanti la struttura astratta dei livelli del sito. Questi diagrammi aiutano a capire il funzionamento del sito e a capire la sua evoluzione. I risultati di Ware e ReWeb sono molto simili: aiutano i programmatori a capire e migliorare i siti internet. Tuttavia i due programmi implementano differenti analisi. Ware crea in particolare diagrammi più astratti di ReWeb (UML, …). Quest’ultimo, invece, elabora diagrammi strutturati in modo semplice da capire.

Test dei collegamenti

Link Valet (http://www.htmlhelp.com/tools/valet) analizza i collegamenti ipertestuali. Come parametro iniziale si deve immettere l’indirizzo internet, a questo punto Link Valet inizia a scansionare il sito web. Tutti i collegamenti vengono analizzati, e a seconda dello stato si evidenziano tramite dei codici. Ad esempio, l’errore 404 viene evidenziato quando non esiste il collegamento ipertestuale tra due oggetti. Confrontato con ReWeb, Link Valet dà risultati più dettagliati.

Valutazione e riparazione

Il consorzio World Wide Web (W3C;http://www.w3.org/WAI/ER/existingtools.html) contiene informazioni sui programmi di valutazione, riparazione e trasformazione che migliorano l’accessibilità dei siti internet. I programmi di valutazione del sito eseguono un’analisi delle pagine internet, concentrandosi sull’accessibilità. I software di riparazione aiutano l’amministratore del sito (attraverso trasformazioni semiautomatiche) a rendere le pagine più accessibili.

Bobby e Doctor HTML sono due programmi di valutazione. Bobby aiuta i progettatori del sito a determinare se le pagine sono accessibili a utenti con disabilità e analizza la compatibilità dei diversi browser. Doctor HTML analizza l’accessibilità e migliora la sintassi di alcuni comandi.

W3C convalida il codice sorgente comparandolo con la banca dati dei codici HTML standard W3C.
Demoronizer e Tidy sono due programmi di riparazione. Demoronizer rimuove certi comandi HTML superflui, invece Tidy controlla il codice sorgente e, dove necessario, inserisce i tags mancanti. Inoltre converte pagine HTML in XHTML.

Il funzionamento corretto di un’applicazione web è molto importante, ReWeb è stato basato su quest’affermazione. Vanderdonckt e Beirekdar eseguono diverse analisi completamente automatiche in riferimento all’usabilità e all’accessibilità dei siti. Brajnik ispeziona automaticamente l’usabilità di un software per analizzare i siti internet.

Sperimentazione

Recentemente solo pochi software per analizzare le funzioni dei siti internet sono stati approvati. Questi programmi registrano tutti i passi che un utente fa sul sito, per poi rianalizzarli e testarli. Web Art (http://www.webtesttools.com/webtesttools/score.asp?FileID=62713) è un esempio di software che analizza queste funzioni.

HttpUnit (http://httpunit.sourceforge.net/), è un’estensione di Junit ed una suite di Classic Java per analizzare le funzioni dei siti internet. HttpUnit emula il funzionamento di un browser, mandando delle richieste e ricevendo risposte da un sito internet. Riesce pure a gestire i cookies. Se, ad esempio, un’applicazione web include un negozio virtuale (e-shop), l’emulazione del browser imita un accesso salvando le impostazioni dell’utente in un cookie, poi mette un articolo nel carrello della spesa e infine disconnette l’utente.

Elbaum et al. è un software che permette di analizzare le funzioni dei siti attraverso le informazioni raccolte dalle sessioni degli utenti (salvate in un file log speciale). Invece che immettere questi dati manualmente (come TestWeb), Elbaum et al. riesce ad analizzare il sito mediante le informazioni dei log’s. Questo tipo di ricerca è comunque simile a quella di TestWeb.

Conclusione

Sebbene i software di analisi riescano a trovare anomalie ed errori nelle applicazioni web, solo ReWeb e TestWeb riescono ad offrire il massimo delle funzioni di ricerca, come le analisi strutturali e quelle di ingegneria inversa. Nessun tipo di software per analisi, commerciale o gratis, riesce ad analizzare le funzioni ed i collegamenti multilingue. Queste funzioni d’analisi estremamente complicate necessitano ancora di tempo ed esperienza per essere programmate ed essere pronte all’uso.

[Titolo originale in inglese: Detecting Anomaly and Failure in Web Applications, Autori: Filippo Rocca e Paolo Tonella, tradotto in italiano da L. Costa con l’aiuto di P. Costa]

2 Comments

on “Rilevare anomalie ed errori nelle Applicazioni Web
2 Comments on “Rilevare anomalie ed errori nelle Applicazioni Web
  1. ciao alessandro
    attenzione però che il testo che ho scritto non è attualissimo, è di circa 2-3 anni fa…
    se hai interesse posso procurarti il file originale (pdf) dell’articolo…
    saluti e grazie per l’interessamento 😉

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Time limit is exhausted. Please reload CAPTCHA.