Sviluppo di processi per l automatizzazione del testing per applicazioni Android



Documenti analoghi
Strumenti per il testing di applicazioni in ambiente Android

Progettaz. e sviluppo Data Base

Confronto sperimentale tra tecniche di testing automatico per applicazioni Android

Dispensa di Informatica I.1

Realizzazione di un Tool per l iniezione automatica di difetti all interno di codice Javascript

Un framework a supporto della sperimentazione di tecniche euristiche. per l ottimizzazione di pagine Web per Screen Readers

con ANTLR tesi di laurea Anno Accademico Relatore Ch.mo prof. Porfirio Tramontana Candidato Fabio Canova Matr

Sviluppo e integrazione di strumenti a supporto del reverse engineering di applicazioni flash

Tesi Di Laurea. Anno Accademico 2010/2011. relatore Ch.mo prof. Cinque Marcello. correlatore Ch.mo Ing. Catello Cacace

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Generazione Automatica di Asserzioni da Modelli di Specifica

Analisi dei requisiti e casi d uso

Strumenti per la gestione della configurazione del software

Realizzazione di Web Service per l estrazione di informazioni da siti web enciclopedici

Tesi di Laurea Automazione del testing delle Interfacce utente di applicazioni WEB:

Il documento rappresenta una guida sintetica per descrivere sia la filosofia che il modulo software per l implementazione dei workflow in recuper@2.

Volumi di riferimento

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Programmi e Oggetti Software

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

Gestione del workflow

Fasi di creazione di un programma

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

Analisi e sviluppo di un componente per un ESB open source

tesi di laurea Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana candidato Pasquale Ludi Matr. 534\000438

Uno strumento per la valutazione automatica dell accessibilità delle

Confronto tra strumenti e tecniche per il Reverse Engineering in Macromedia Flash e Microsoft Silverlight

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Strumenti di modellazione. Gabriella Trucco

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Progettazione di un tool a supporto di un metodo per la selezione delle tecniche di test

Concetti di base di ingegneria del software

Titolo della tesi Testing Black Box di un Web Service : sperimentazione su di un servizio con stato

UML Component and Deployment diagram

Test in automatico di programmi Android

Project Cycle Management La programmazione della fase di progettazione esecutiva. La condivisione dell idea progettuale.

SCUOLA PRIMARIA Anno Scolastico 2014/2015 CURRICOLO DI TECNOLOGIA OBIETTIVI DI APPRENDIMENTO AL TERMINE DELLA CLASSE TERZA DELLA SCUOLA PRIMARIA

La pista del mio studio Riflettiamo sulla pista. Guida per l insegnante

Sviluppo di strumenti per la valutazione automatica di accessibilità e usabilità di applicazioni web

DFD DISPENSA DEL CORSO DI SISTEMI INFORMATIVI UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna

MODULO PER LA GESTIONE DEI RESI

Architettura del calcolatore

In legenda sono riportate le fasi R, P, C/T e I/SA come specificato nella norma ISO/IEC

Project Planning. Politecnico di Milano. Progetto di Ingegneria del Software novembre Elisabetta Di Nitto Raffaela Mirandola

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

Realizzazione di interazioni sincrone e asincrone tra applicazioni Web 2.0

Piano di gestione della qualità

Automazione Industriale (scheduling+mms) scheduling+mms.

IL SOFTWARE SECONDO LA NORMA UNI EN ISO :2008 (IIA PARTE) 1

Operazioni sulla Retta Algebrica e riflessione sulla loro definizione nell insieme dei Naturali

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

EXPLOit Content Management Data Base per documenti SGML/XML

Il sistema operativo TinyOS

Modellazione di sistema

11. Evoluzione del Software

Capitolo 2. Operazione di limite

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

V= R*I. LEGGE DI OHM Dopo aver illustrato le principali grandezze elettriche è necessario analizzare i legami che vi sono tra di loro.

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

CONTROLLO NUMERICO Z32

Modellazione dei dati in UML

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

Funzioni in C. Violetta Lonati

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

PROCEDURA PER LA GESTIONE ESAMI DI STATO AREA ALUNNI AXIOS

Scenario di Progettazione

PLC Sistemi a Logica Programmabile Il linguaggi di programmazione

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

Design patterns in Java

Soluzione dell esercizio del 2 Febbraio 2004

Fare Efficienza Energetica attraverso l automazione degli edifici

Definizione di metodi e tecniche per il testing di applicazioni Android Sensor Based

Database. Si ringrazia Marco Bertini per le slides

Manuale di realizzazione dei modelli di documento

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Object Oriented Programming

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A

Elementi di UML (7): Diagrammi dei componenti e di deployment

Strumenti di gestione del ciclo di vita del software

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Progettazione ed implementazione di un tool per lo sviluppo di applicazioni in Esperanto

Studente: SANTORO MC. Matricola : 528

Linguaggi di programmazione

Presidenza del Consiglio dei Ministri

Algoritmi e diagrammi di flusso

COMUNICATO. Vigilanza sugli intermediari Entratel: al via i controlli sul rispetto della privacy

Informatica (Basi di Dati)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Diagrammi di Interazione

Politecnico di Bari Corso di Laurea Specialistica in Ingegneria Informatica A.A Casi di Studio. Traccia n 1

Prova di Laboratorio di Programmazione

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Transcript:

tesi di laurea Sviluppo di processi per l automatizzazione del testing per applicazioni Anno Accademico 2011/2012 relatori Ch.mo prof. Porfirio Tramontana candidato Enrico Solimeo Matr. 534002361

Contesto: Testing di applicazioni basate sul sistema operativo Obiettivi: Realizzare un processo per la generazione automatica di test per applicazioni a partire dal modello progettuale F.X.TG Test Cases Contenuti: Background Descrizione Applicazione Test Cases Processo F.X.TG Casi di studio F.X.TG : Processo per la generazione automatica dei Test Cases

Facoltà di Ingegneria Background 1/2 Framework Junit Modellazione F.S.M. Ogni applicazione è costituita da almeno : - Una Activity - Una moltitudine di Widgets Linguaggio XML Applicazione Activity Widgets Framework Junit Processo di Testing Il testing è u n punto cruciale nella realizzazione di ogni applicazione. A supporto del testing per applicazioni c è il Framework Junit che fornisce tutta una serie di strumenti ( ad esempio Stub e Mock ) per la realizzazione di test funzionali. I test realizzati con Junit sono programmi in grado di interagire con l applicazione sotto test. - Stub E Mock : si sostituiscono ai componenti reali e consentono di testare i componenti in isolamento

Background 2/2 Modellazione F.S.M. Ogni Applicazione interagisce con l ambiente esterno ed in particolare con l Utente. Essa, pertanto, muta il suo stato nel tempo. Il funzionamento di una applicazione è per certi versi riconducibile a quello di una macchina a stati finiti e, pertanto, può essere descritto in UML mediante uno statechart diagram. Stato Iniziale Stato 1 Stato 3 Stato finale stato Transizione Stato 2 Linguaggio XML Evento : Causa delle transizioni XML è un linguaggio di Markup basato su un meccanismo sintattico che consente di definire e controllare il significato degli elementi contenuti in u n documento e consente di definire tag per descrivere struttura e tipo dei dati Rubrica Nome : Enrico Cognome : Solimeo Numero : 534002361 Traduzione in XML <Rubrica> à nodo <Nome>Enrico</Nome> à tag <Cognome>Solimeo</Cognome> à tag <Numero>534002361</Numero> à tag </Rubrica>

Da modello descrittivo ad F.S.M. Il modello descrittivo di una applicazione fornisce una serie di caratteristiche delle quali solo alcune sono utili alla realizzazione di u n modello F. S. M. Scendendo nello specifico individuiamo precisamente tre elementi utili : Eventi ( interazione dell ambiente esterno con l applicazione ) Stati ( caratterizzati dai widgets e dal loro valore ) Transizioni ( caratterizzate d a stato iniziale, stato finale, evento, eventuali widgets coinvolti ) Da F.S.M. a modello XML Il modello XML è realizzato codificando informazioni ricavabili dal modello descrittivo a dal modello F. S. M. In Particolare saranno codificati : Eventi, Stati e Transizioni con relative caratteristiche così come individuabili sui modelli F. S. M. e Descrittivo Widgets ( tipo, valore e relativi attributi ), Funzioni ( eseguite dall applicazione ) ed altre eventuali informazioni <Elemento id="0"> <descrizione>stato stato</descrizione> <componte id= ><tipo>widget</tipo></componente> <Elemento id="1"> <descrizione>stato stato</descrizione> <componente id=><tipo>widget</tipo></componente> <Elemento id="0" tipo="click"> <descrizione>evento evento</descrizione> <Elemento id="0-1"stato_iniziale="0 stato_finale="1 evento="1 widget="3"> <descrizione>transizione ransizione</descrizione>

Processo F.X.TG 1/2 F.X.TG è un processo di generazione automatica di test funzionali per applicazioni. <ModelloApp> <Elemento>Stato <Elemento>evento <Elemento>transizione </ModelloApp> Modello descrittivo Diagramma F.S.M. Modello XML Test Generator Junit Test Punto d i partenza del processo è il modello descrittivo dell applicazione. Questo modello non è altro che una descrizione delle funzionalità e del comportamento dell interfaccia utente dell applicazione. Viene poi individuato ogni singolo componente dell applicazione evidenziandone il cambiamento d i valore in funzione del ciclo d i vita d i quest ultima. Successivamente vengono definiti i vari stati (in funzione dei componenti e del loro valore) e g li eventi che causano le transizioni da uno stato all altro. Una volta raccolte tutte queste informazioni è possibile realizzare uno statechart diagram che descrive il comportamento dell applicazione. Successivamente, tale diagramma sarà tradotto in linguaggio XML.

Processo F.X.TG 2/2 Punto molto importante del processo F. X. TG è la traduzione del diagramma F. S. M. in codice XML. Il file XML è strutturato in elementi (nodi). Ogni elemento ha u n tag che n e specifica il tipo ed eventuali nodi figlio a loro volta dotati di tag che n e specificano tipo e caratteristiche. Ultimo step del processo F. X. TG è il software Test Generator. Potremmo dire che esso d a un senso al lavoro svolto durante tutti gli step precedenti del processo fino alla realizzazione del dello XML. Rimane solo d a capire come il modello XML venga utilizzato Come viene usato il codice XML? Il softwaretest Generator è in grado di interpretare il valore di nodi e tag. Sulla base delle informazioni acquisite verranno modellati automaticamente i casi di Test. Possiamo sintetizzare il processo F.X.TG in 3 momenti Costruzione di un modello F.S.M. Traduzione del modello F.S.M. in codice XML Generazione dei Test attraverso il software TestGenerator

Criteri di generazione dei test Quando si scrivono dei test è importante : Controllare mediante degli assert che il programma si comporti come atteso Valutare quanto del programma è stato testato. Ogni test funzionale realizzato dal Test Generator è mirato a testare u n singolo cammino. Ogni cammino è costituito d a una o più transizioni e pertanto passerà attraverso u n numero variabile di stati dipendente dalla lunghezza del cammino in esame. Il buon esito del test su una transizione facente parte di u n determinato cammino implica la correttezza di tutte le transizioni che la precedono lungo tale cammino. Ad esempio Il buon esito della transizione n nel seguente cammino, implica il buon esito di tutte le transizioni che la precedono. Stato iniziale Stato 1 Stato n- 1 Stato n Stato finale Per valutare la copertura del codice utilizziamo il tool EMMA

CASI DI STUDIO D i seguito è schematizzato il processo F. X. TG (dal modello descrittivo all esecuzione dei test) relativo a due applicazioni utilizzate come casi di studio. L e applicazini in questione sono : Massimale : semplice applicazione pratica dedicata agli appassionati di fitness Calculator : applicazione che riproduce una semplice calcolatrice in grado di eseguire le quattro operazioni elementari Massimale Modello descrittivo F.S.M <Elemento id="0" tipo= "LinearLayout" valore=" " attributi="nn"> <descrizione>widget</descrizione> <Elemento id="1" tipo= "TextView" valore="programma PER IL CALCOLO DEL MASSIMALE" attributi="costante"> <descrizione>widget</descrizione> XML Esecuzione dei Test Calculator F.S.M <Elemento id="0" tipo= "LinearLayout" valore=" " attributi="nn"> <descrizione>widget</descrizione> <Elemento id="18" tipo= "LinearLayout" valore=" " attributi="nn"> <descrizione>widget</descrizione> Modello descrittivo XML Esecuzione dei Test

Sviluppi futuri Un limite dell attuale processo F.X.TG. è costituito dal tipo dei widgets gestibili con TestGenerator. Osservando da vicino i Test generati notiamo che essi si limitano ad un controllo sul valore degli EditText mediante l uso di assertequals. Le applicazioni prevedono widgets di svariata natura e l utilizzo di componenti software ed hardware anche abbastanza complessi. I punti cruciali da sviluppare sono pertanto : Ampliamento dei widgets gestibili Ampliamento del tipo di applicazioni testabili