Survey sui Framework per Testing di Sistemi Basati su Web Services



Похожие документы
Concetti di base di ingegneria del software

Introduzione ai Web Services Alberto Polzonetti

Automazione Industriale (scheduling+mms) scheduling+mms.

Generazione Automatica di Asserzioni da Modelli di Specifica

Lezione 1. Introduzione e Modellazione Concettuale

Sicurezza nei Web Services: Migrazione dell autenticazone di Web Services da ticket di sessione a WS-Security con token SAML

La Metodologia adottata nel Corso

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

03. Il Modello Gestionale per Processi

Soluzione dell esercizio del 2 Febbraio 2004

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

Fasi di creazione di un programma

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Lo sviluppo del software: usi e clausole commentate Aspetti Tecnici. Prof. Franco Sirovich Dipartimento di Informatica Università di Torino

Otto Principi sulla Gestione per la Qualità previsti dalla ISO 9000:2005

5. Requisiti del Software II

Modellazione di sistema

della manutenzione, includa i requisiti relativi ai sottosistemi strutturali all interno del loro contesto operativo.

Metodologie di programmazione in Fortran 90

Approccio stratificato

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Architetture Applicative

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

Progettaz. e sviluppo Data Base

Modellazione dei dati in UML

Organizzazione degli archivi

Traccia di soluzione dell esercizio del 25/1/2005

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

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

Software per Helpdesk

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A Marina Mongiello

Norme per l organizzazione - ISO serie 9000

Progettaz. e sviluppo Data Base

Introduzione alla Virtualizzazione

Real Time Control (RTC): modalità di invio dei dati

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio

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

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

TECNICHE DI SIMULAZIONE

Protezione. Protezione. Protezione. Obiettivi della protezione

Database. Si ringrazia Marco Bertini per le slides

Strumenti di modellazione. Gabriella Trucco

CAPITOLO 8 LA VERIFICA D IPOTESI. I FONDAMENTI

Presentazione di Cedac Software

Gestione del workflow

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Le fattispecie di riuso

Progettazione : Design Pattern Creazionali

7. Architetture Software

Introduzione all Architettura del DBMS

IL CASO DELL AZIENDA. Perché SAP.

Base di dati e sistemi informativi

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Class Discovery E.

Esercizio 1: trading on-line

Lezione 8. La macchina universale

Cap.1 - L impresa come sistema

Progettazione di Basi di Dati

La progettazione centrata sull utente nei bandi di gara

IL SISTEMA DI DELEGHE E PROCURE una tutela per la società e i suoi amministratori. Milano 18 novembre A cura di: Luca Ghisletti

Appunti sulla Macchina di Turing. Macchina di Turing

Sequence Diagram e Collaboration Diagram

Appendice III. Competenza e definizione della competenza

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo

Soluzione dell esercizio del 12 Febbraio 2004

Area Marketing. Approfondimento

Analisi dei requisiti e casi d uso

MANUALE DELLA QUALITÀ SIF CAPITOLO 08 (ED. 01) MISURAZIONI, ANALISI E MIGLIORAMENTO

Seminario di Sistemi Distribuiti RPC su SOAP

Pianificazione e progettazione

Artifact Centric Business Processes (I)

La Progettazione Concettuale

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Il modello veneto di Bilancio Sociale Avis

Reti di Telecomunicazione Lezione 6

11. Evoluzione del Software

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Ciclo di vita del progetto

e-dva - eni-depth Velocity Analysis

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

ALLINEARSI: IL DRIVER PER UNA INNOVAZIONE DI SUCCESSO!

Automazione Industriale 4- Ingegneria del Software

Reti di Telecomunicazione Lezione 8

Piano di gestione della qualità

Sviluppo di processi per l automatizzazione del testing per applicazioni Android

Dispensa di Informatica I.1

Facoltà di Farmacia - Corso di Informatica

SCHEDA PRODOTTO PAG. 1 J O B T I M E W F. Variazioni mensili al cartellino presenze. Versione 6.1. JOBTIME Work Flow

MODELLO RELAZIONALE. Introduzione

Raccolta dei Requisiti con i Casi D'uso. Corso di Ingegneria del Software Anno Accademico 2012/13

FONDAMENTI di INFORMATICA L. Mezzalira

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

Scenario di Progettazione

Tecniche di Simulazione: Introduzione. N. Del Buono:

Транскрипт:

Survey sui Framework per Testing di Sistemi Basati su Web Services Severoni Francesco Facoltà di Scienze Dipartimento di Informatica Università degli Studi - L Aquila 67100 L Aquila, Italia

Argomenti Trattati Introduzione Coyote: un framework basato su XML Test Harness: testing funzionale, del carico di lavoro e delle performance Auditorium: framework per testare l interoperabilità dei Web Services Tecnica di progressive group testing Automatic conformance testing Testing di Web Services basato sui contratti Stress test in applicazioni Web Services Testing dei Web Services basato sugli Scenari, con l utilizzo di agenti distribuiti Classificazione dei Framework Conclusioni

Introduzione Architetture Orientate ai Servizi e Web Services sono le tecnologie emergenti che hanno ereditato complessivamente vantaggi e svantaggi dell approccio basato su componenti, potenziando gli aspetti di libera associazione, distribuzione e dinamismo di componenti I Web Services supportano comunicazioni interoperabili fra applicazioni software La rilevanza dell interoperabilità è messa in luce dall emergenza delle iniziative WS-I, un consorzio che raggruppa le organizzazioni più importanti nella comunità Web Services L obiettivo delle WS-I è l introduzione di regole e profili specifici che dovrebbero ridurre i problemi di interoperabilità, per lo meno a livello di formati dei messaggi WS-I ha definito un profilo base che specifica differenti regole, anche nell organizzazione degli aspetti, e delle relazioni che devono essere considerare tra le parti di informazioni contenute nei relativi file WSDL, messaggi SOAP e UDDI entries, per facilitare la comunicazione fra diversi servizi.

Web Services & Testing Un Web services è un sistema software, modellato per permettere l interoperabilità macchina macchina. Ha una interfaccia descritta in un formato WSDL. Altri sistemi interagiscono con il Web Service nel modo prescritto dalla sua descrizione, usando messaggi SOAP, tipicamente convertiti con l uso di Http e serializzazione XML insieme agli altri standard relativi al Web Il Testing è la verifica dinamica del comportamento di un sistema, eseguita su un insieme finito di casi di test, opportunamente selezionati fra un dominio di input, rispetto alla specifica di un comportamento atteso

Testing di Web Services Disciplina immatura Forte bisogno di ricerca, sia nel campo accademico che in quello industriale La ricerca non da attenzione alla comunità di testing dei WSs Cause: Continua sovrapposizione con gli altri paradigmi emergenti ( CBSE) Dettagli tecnici che questa disciplina implica Il testing dei Web Services é una disciplina difficile Architetture debolmente accoppiate richiedono alta qualità Comportamento run time: scoperta e collegamento con altri Web Services Invocazioni da unità sconosciute, con richieste imprevedibili tra fornitore e richiedente Esecuzione concorrente e condivisione di oggetti Problemi di performance Problemi di sicurezza

Concetti Base L architettura dei Web Service è basata su tre elementi principali: WSDL (Web Service Description Language): linguaggio usato per descrivere WSs Basato su XML Specifica: Servizi offerti, Punti di accesso, Formato dei parametri di input/output Meccanismi usati per scambiare i messaggi UDDI (Universal Description and Discovery Integration): tecnologia sviluppata dal consorzio OASIS Definisce un meccanismo comune per fornire e recuperare le informazioni dei WS SOAP (Simple Object Access Protocol): protocollo usato per scambiare messaggi basati su XML Fornisce la comunicazione tra Web Services

Responsabile dello sviluppo e della pubblicazione del Web Service attraverso il Service Broker Architettura dei Web Services Coinvolge 3 Attori Service Requestor Responsabile dell invocazione del servizio Localizza il Web Service attraverso il service broker Invoca i servizi e li esegue Service Broker Comunemente conosciuto come registro dei servizi Responsabile della registrazione, ricerca e localizzazione dei servizi Service Provider

COYOTE FRAMEWORK DI TESTING BASATO SU XML

Coyote: un Framework di Testing basato su XML Usato per testare Web Services in modo rapido Composto da due componenti: Test Master: permette ai tester di specificare gli scenari ed i casi di test. Permette di eseguire analisi: delle dipendenze, di completezza e di consistenza, e convertire le specifiche WSDL in scenari di test Test Engine: interagisce con il Web Service sotto test e fornisce le informazioni esaminate Si focalizza sul testing di integrazione

Architettura di Coyote Test Master Mappa le specifiche WSDL in scenari di test Estrae le informazioni dalle interfacce del file WSDL e mappa gli scenari di test Test Engine Legge lo script di test prodotto dal test master ed esegue il test sul Web Services Registra traccia dell esecuzione Invia i risultati al test master

WS S TEST HARNESS A FUNCTIONAL, LOAD, AND PERFORMANCE TESTING FRAMEWORK FOR WSs

Web Service's Test Harness Supporta: Testing delle performance, Testing del carico di lavoro Stress testing CHO testing (ore continue di operazione) per Web Services. E un framework configurabile Permette la simulazione di utenti multipli Può variare il numero di iterazioni dei casi di test

THE AUDITION FRAMEWORK FOR TESTING WSs INTEROPERABILITY

The Audition Framework: per testare l Interoperabilità dei WSs Estendere il ruolo dell UDDI dal corrente servizio di directory passivo Valida i comportamenti dei WSs prima della registrazione reale Si focalizza sull interoperabilità dei WSs L audizione dipende dalle specifiche del Web Service Propone l estensione del WSDL Introduzione di Protocol State Machine: diagramma di comportamento appena introdotto in UML 2.0

Protocol State Machine Introdotto in UML 2.0 allo scopo di supportare lo sviluppo basato su componenti E un particolare tipo di macchina a stati che si focalizza su Transazione Stati Regole Dirige l ordine di esecuzione delle operazioni Fornisce regole chiare per descrivere interazioni di comunicazione tra differenti oggetti Etichette sulle transizioni [ pre condizione]operazione/[post condizione]

Architettura dell Audition

TESTING WSs USING PROGRESSIVE GROUP TESTING

Testing Web Services usando Progressive Group Testing Si focalizza sullo unit, e sull integration testing Propone tecniche di progressive group testing Testare un numero elevato di WSs L idea è testare in gruppo i WSs che realizzano stesse funzionalità Aumento progressivo dei casi di test Consiste di due fasi: Prescreening Testing group a run time Prescreening: processo veloce e sbrigativo Elimina immediatamente i candidati improbabili La fase di group testing: processo elaborato I risultati del test sono valutati con un meccanismo di voto basato su una maggioranza pesata Obiettivo: selezionare il WS migliore fra tutti quelli disponibili

Testing Web Services usando Progressive Group Testing Il servizio di voto è usato come oracolo: principio di maggioranza Peso del Web Service entrante = 0 Peso degli altri Web Service = Reliability Il peso di un WS aumenta se l output prodotto è uguale all output di maggioranza La raffinatezza del testing aumenta progressivamente ed il vincitore finale sarà testato in maniera rigorosa Le strategie per escludere un Web Service si basano sul Numero di Casi di Test che un Web Service fallisce ad un livello della gerarchia Criticità dei Casi di Test che un Web Service fallisce ad un livello della gerarchia Importanza dei Casi di Test che un Web Service fallisce ad un livello della gerarchia

Progressive Group Testing e Group testing Schema Il numero di casi di test applicato ad un Web Service aumenta in maniera progressiva rispetto al livello della gerarchia CSn è un composite service composto da S1, s2,,sn S1 è funzionalmente equivalente a S11, S12,,S1m S1 viene valutato

AUTOMATIC CONFORMANCE TESTING OF WSs

Automatic Conformance Testing di Web Services Esegue conformance e stress testing Introduce agenzie di high-quality service discovery forniscono garanzie sulla compatibilità delle interfacce e l implementazione dei servizi Utilizza discovery service per il testing automatico per la validazione dei WS prima della fase di registrazione Prevede l aumento della descrizione sintattica e comportamentale del servizio Utilizzo di regole GT specificano le operazioni individuali del servizio

Dinamica dell Automatic Conformance Testing 1. P fa l upload del documento WSDL e delle regole GT 2. U genera automaticamente un insieme di specifiche di test dalle regole GT 3. I casi di test concreti, sono generati ed eseguiti in remoto usando la testing interface T P = Fornitore U = Discovery Service 4. I risultati dei casi di test sono giudicati sulla base dei Risultati ritornati Stati concettuali del servizio

Il testing è quindi usato per dimostrare la conformità della specifica con l implementazione Descrizione dei Web Services con Regole GT Modellano il comportamento del servizio fornito, ed i requisiti del client Raffinano le signature del servizio specificando l utilizzo e la modifica dei parametri e dei dati interni Specificano i comportamenti del Web Services a livello concettuale Note: Lo stato del servizio di cui è descritta l evoluzione, non coincide con lo stato concreto dei dati Il testing è eseguito sull implementazione del Web Services I casi di test sono generati dalla specifica

Generazione di Casi di Test L idea è generare casi di test per testare: la conformità dell implementazione con l utilizzo di regole individuali generare sequenze di test stressando le interazioni fra le regole E possibile fare una distinzione fra Generazione dei casi di test per servizi singoli, Generazione di test per sequenze di operazioni. La generazione dei casi di test per servizi singoli usa una strategia basata sul dominio, conosciuta anche come partition testing La generazione di casi di test per sequenze di operazioni, garantisce che lo stato del sistema evolverà secondo la specifica, almeno per quanto riguarda le coppie di invocazione dei servizi.

Esecuzione di Casi di Test Un caso di test ha una pre condizione consiste in un insieme di vincoli, i quali devono essere soddisfatti nello stato corrente Assumiamo che un Web Service fornisca un interfaccia di testing con tre caratteristiche addizionali di base: La possibilità di settare lo stato iniziale del servizio Un insieme di operazioni Un implementazione della funzione di astrazione Uno stato che permette l esecuzione di un dato caso di test è ottenuto scegliendo uno stato iniziale dall insieme degli stati forniti dal Web Service, e cercando una sequenza adeguata di richieste che cambiano lo stato scelto in uno che soddisfa la pre condizione dello stato del caso di test. Nell esecuzione di un caso di test, lo stato finale del Web Service è recuperato e confrontato con lo stato finale generato dalle regole, nel caso siano uguali il caso di test è stato superato con successo.

TOWARD CONTRACT-BASED TESTING OF WSs

Testing basato sui Contratti Il meccanismo per realizzare questa visione architettura aperta e dinamica conta su due assunzioni: Che i servizi forniti siano funzionalmente corretti rispetto alle loro descrizioni Che il matching fra descrizioni ed esigenze sia sufficiente per stabilire l interoperabilità fra fornitore e richiedente. Design by Contract è una tecnica OO che ha delle somiglianze nell instaurare contratti legali Un contratto descrive cosa una componente si aspetta dai suoi client e cosa un client può aspettarsi dalla componente

Contratti Un contratto è definito tipicamente con asserzioni e concetti associati Una asserzione è una espressione booleana valutata a run time durante l esecuzione del sistema. In un sistema software valido, tutte le asserzioni sono valutate a vero Nel design by contract identifichiamo tre tipi di asserzioni: Pre Condizione: specifica le condizioni da considerate prima dell esecuzione di un operazione Post Condizione: valutate dopo il completamento di una operazione Invariant: valutato sempre prima e dopo l esecuzione di una operazione

Contratti Durante il processo di sviluppo di un Web Service siamo di fronte alla rappresentazione di tre livelli differenti di contratti: Livello Implementazione: gli attuali Web Services, sono nella maggior parte dei casi basati su linguaggi di programmazione orientati agli oggetti, e la maggior parte di questi linguaggi supporta solo contratti sintattici Livello XML: i linguaggi di descrizione dei Web Service definiscono le interfacce come una collezione di porte, in termini di signature e operazioni Livello di modello: il cui scopo è derivare contratti a livello di implementazione in modo automatico dalle specifiche e cioè dal modello

Specifiche di Contratti basate su modelli Un modello di un Web Service dovrebbe comprendere Interfacce fornite Modello di dati visibili all esterno del servizio (tutti i tipi di dati necessari per comunicare con i suoi clienti) Operazioni offerte dal servizio Per descrivere un interfaccia sono state usate interfacce UML Per rappresentare i modelli di dati di si utilizzano Class Diagram Ai Class Diagram si applicano Regole GT

Contratti Forniti e Richiesti Fornitore La parte sinistra della regola specifica le pre condizioni La parte destra della regola descrive la post condizione Richiedente La parte sinistra della regola rappresenta l informazione che questo è disposto a fornire al servizio La parte destra della regola rappresenta la situazione che questo vuole raggiungere usando il servizio.

In Conclusione Usare design by contract, a livello di implementazione è un modo per introdurre informazioni delle specifiche nel codice stesso Questo approccio si interessa al testing funzionale derivato dai contratti Assicura che il prodotto consegnato corrisponda alle specifiche Ha senso usare i contratti forniti per la creazione di casi di test che per l oracolo del test Potrebbe divenire impossibile o troppo costoso chiamare altri Web Services al solo scopo del testing Obiettivo del framework: usare i contratti richiesti per guidare la simulazione

STRESS TESTING WEB SERVICES

Stress Testing su Web Services Lo stress testing è un metodo valido per scoprire difetti di codice Creato per affaticare il software allocando un carico di lavoro molto elevato Può scoprire bug poco noti, che altre tecniche di testing non avrebbero mai rilevato Considerato uno dei Testing più efficienti Il processo è spesso confuso da altri elementi del sistema o di testing funzionali I metodi impiegati, a volte, non sono correttamente implementati oppure non hanno un giusto approccio

Bug Rilevati dallo Stress Testing Ci sono diversi tipi di bug che ci si aspetta di scoprire con lo stress testing Due di questi sono: Memory Leaks: estremamente difficile da rilevare con l utilizzo di semplici test funzionali. Richiede la ripetizione in successione di operazioni, al fine di un consumo elevato di memoria Concorrenza e Sincronizzazione: i test di stress primeggiano nella scoperta di problemi di concorrenza, dovuti ai differenti percorsi nel codice e alle condizioni temporali. Come regola generale, uno stress test esegue il più a lungo possibile, tutte, o quasi tutte le combinazioni dei path del codice, al fine di rilevare i problemi di concorrenza e sincronizzazione

Condizioni dello Stress Testing Ci sono quattro condizioni di base che i test di stress dovrebbero applicare: Ripetizione = Esecuzione ripetuta di una operazione (condizione più ovvia) Concorrenza = Esecuzione simultanea di differenti operazioni In pratica si eseguono diversi test nello stesso momento Dimensioni = Ammontare del carico di lavoro applicato ad ogni singola operazione Variazione Casuale = Elemento di casualità d ordine.

SCENARIO-BASED WEB SERVICE TESTING WITH DISTRIBUTED AGENTS

Testing di WSs basato sullo Scenario con Agenti Distribuiti Fornisce caratteristiche per effettuare testing funzionale e non funzionale Propone Verifica Automatica del Servizio con la Registrazione UDDI Estendere WSDL Dipendenze di input-output; Sequenze di invocazioni; Descrizioni funzionali gerarchiche; Specifiche di sequenze concorrenti. Scoperta e collegamento dinamico di WSs Analisi di Sistema Simulazione

Analisi e Specifica dello Scenario L interoperabilità dei Web Services definisce tre scenari di interazione One-Way Richiesta/Risposta Sincrona Basic Callback Per derivare gli scenari, il tester può usare tre passi Derivare le specifiche dello scenario per ogni sottosistema Specificare le interazioni fra ogni coppia di sottosistemi Derivare gli scenari globali per il sistema distribuito combinando gli scenari per i sottosistemi individuali

Testing di WSs basato sullo Scenario con Agenti Distribuiti

Componenti Utilizzate Test Master Amministra le informazioni d interazione e dipendenza tra i sistemi Genera gli script dei test e i casi di test Inizia il testing Verifica la struttura di interazione Test Agent Mappa le pre condizioni e gli eventi degli script dei test Esegue il testing Verifica i risultati confrontandoli con le post condizioni Invia i risultati del test al testmaster Test Monitor Controlla lo scambio dei messaggi Traccia i cambiamenti di stato del sistema

Algoritmo di Esecuzione Un tester specifica uno o un gruppo di scenari, ed inizia l esecuzione Il test master carica i dati dello scenario Il test master genera gli script di test con i dati dello scenario Il test master richiede al test agent di eseguire la funzione di sistema Il test agent unisce e invoca la funzione del sistema Il test monitor cattura i messaggi scambiati fra i sistemi, ed i cambiamenti di stato del sistema Il test monitor cattura le informazioni e le rimanda al test master e al test agent Il test master colleziona le informazioni relative allo scenario e verifica i risultati del test e l interazione fra i sistemi

ANALISI E CONFRONTO DEI FRAMEWORK ANALIZZATI

Componenti usate dai Framework Framework Testing Web Services Using Progressive Group Testing Coyote: An XML-Based Framework Web Service's test Harness: Testing di Web Service basato sullo Scenario con Agenti Distribuiti Componenti Usate WS- I Monitor: piazzato fra client e WS, registra tutti i messaggi: richieste e risposte; WS- I Analyzer: controlla ogni messaggio nel registro in previsione dei requisiti di interoperabilità. Test Master: permette ai tester di specificare gli scenari e i casi di test, così come eseguire le diverse analisi; Test Engine: interagisce con il WS sotto test e fornisce le informazioni esaminate. Configurator: fa il setting iniziale del test; Runtime Engine: amministra gli altri sottosistemi; Report Generator: processa i risultati dei test. Test Master: genera gli script e i casi di test; invia i commenti ai test agent; Test Agent: esegue e verifica i risultati del testing; Test Monitor: controlla lo scambio dei messaggi fra richiedenti e fornitore.

Definiscono generalmente interfacce chiare per specificare servizi, allo scopo di aumentare le probabilità che i servizi sviluppati indipendentemente potranno essere in grado di interoperare correttamente Stakeholder Interessati nel Testing dei Web Services Principalmente ci sono tre tipi di stakeholder: Sviluppatori di Web Services (Service Provider) Interessato nella valutazione del risultato, ed in particolare se questo corrisponde al risultato aspettato Valutazione in termini di funzionalità, interazione con altre componenti, e qualità del servizio Fornitore Intermediario del Servizio (Service Broker Provider) Interessate nel testing dei Web Services prima della registrazione Agenzie di Standard (Standards Body)

Stakeholder Interessati nel Testing dei Web Services Framework Sviluppatore Fornitore Intermedio Agenzia di Standard Audition Framework for Testing Web Services Interoperability X X Testing Web Services Using Progressive Group Testing X X X Coyote: An XML-Based Framework for Web Services Testing X Web Service's Test Harness X Automatic Conformance Testing of Web Services X X Towards Contract-based Testing of Web Services X X Stress Testing Web Services X X X Testing di Web Service basato sullo Scenario con Agenti Distribuiti X X X

Documenti Utilizzati per Derivare i Casi di Test Il documento su cui si basano i casi di test è il file WSDL Basato su XML Le informazioni all interno del file WSDL specificano Servizi offerti Punti di accesso, Formato dei parametri di input/output Meccanismi usati per scambiare i messaggi Queste informazioni sono usate per derivare casi di test, con cui verranno, poi, testati i Web Services Conclusione comune a tutti i framework Insufficienza e l inadeguatezza delle specifiche WSDL nel fornire informazioni adeguate su cui fondare i casi di test

Specifiche Utilizzate e Tipo di Estensioni Proposte Framework The Audition Framework for Testing Web Services Interoperability Testing Web Services Using Progressive Group Testing Coyote: An XML-Based Framework for Web Services Testing Specifiche e Documenti Utilizzati File WSDL + Protocol State Machine (PSM) File WSDL + Proposta di Estendere WSDL File WSDL Web Service's test Harness Automatic Conformance Testing of Web Services Towards Contract-based Testing of Web Services Stress Testing Web services Testing di Web Service basato sullo Scenario con Agenti Distribuiti File WSDL + Regole GT File WSDL + Contratto File WSDL + Proposta di Estendere WSDL

Tipi di Estensioni Proposte Protocollo State Machine Diagramma di comportamento UML Particolare tipo di macchina a stati Si focalizza nelle transazioni di stati e nelle regole Dirige l ordine di esecuzione delle operazioni Regole GT: specificano i comportamenti del Web Services a livello concettuale Raffina la signature del servizio A livello di modello, lo stato è rappresentato da un grafico degli attributi, visualizzato come un Object Diagram UML Contratto: accordo formale, in cui vengono espressi diritti e doveri di entrambe le parti Descrive cosa le componenti si aspettano dai Client e cosa questi possono aspettarsi dalle componenti

Tipo di Testing Supportato Prima classificazione Testing basato su codice Structural testing Testing basato sulla specifia Functional o conformance testing Seconda classificazione Unit Testing Integration Testing System Testing Recovery testing Security testing Stress testing Testing delle performance Regression testing Usato, di solito per verificare le funzionalità del sistema dopo aver effettuato modifiche.

Tipo di Testing Supportato Regression Testing Testing Funzionale Testing Carico di Lavoro Testing Performance Stress Testing Unit Testing Testing di Integrazione

Vantaggi e Innovazioni Framework The Audition Framework for Testing Web Services Interoperability Testing Web Services Using Progressive Group Testing Coyote: An XML-Based Framework for Web Services Testing Web Service's test Harness: A Functional, Load, and Performance Testing Framework for Web Services Vantaggi e Innovazioni Estende il ruolo dell UDDI dal vecchio servizio di directory passivo; Valuta dinamicamente l interoperabilità dei WS; Migliora le specifiche dei WS con i protocol state machine (PSM); Garantisce che tutti i servizi registrati possono collaborare. Introduce un sistema di voto pesato con il quale si costruisce l oracolo; I pesi dei voti si basano sull affidabilità dei WSs sotto test; Testa un gran numero di WSs; I WSs sono valutati sulla base di misure oggettive; Solo il migliore WS viene accettato; Il testing viene effettuato mentre il WS sta lavorando realmente nell ambiente operazionale reale, quindi non richiede tempo supplementare. Testa i WSs in modo rapido; Fornisce supporti per il regression testing; Può essere configurato per effettuare semplici test o testing distribuito. Supporta diversi tipi di testing: performance, carico di lavoro, stress testing e CHO testing; Si sta pensando di estendere Harness per applicazioni all infuori dei WSs.

Vantaggi e Innovazioni Automatic Conformance Testing of Web Services Towards Contract-based Testing of Web Services Stress Testing Web services Testing di Web Service basato sullo Scenario con Agenti Distribuiti Con questo framework il testing viene automatizzato; Aumento della descrizione sintattica del WS. Introduzione di regole di trasformazione grafiche per modellare il comportamento del servizio fornito ed i requisiti del client, permettendo la generazione automatica dei casi di test; Per risolvere il problema dei comportamenti scorretti di fornitori maliziosi, introduce un servizio High-Quality Service Discovery; Prevede la generazione di casi di test per servizi singoli e per sequenze di operazioni. Estende il WSDL con l uso di contratti; I contratti possono essere sviluppati su tre livelli differenti: implementazione, XML e di modello; Risolve i problemi: di costo nel chiamare altri WSs al solo scopo di testare un WS ed il problema che si verifica quando il WS sotto test chiama un WS non ancora conosciuto. Riesce a scoprire bug che altri testing non riescono a trovare; Fondamentale per migliorare la qualità dei WSs. Verifica automatica del servizio con la registrazione; Aggiunge quattro tipi di estensioni al WSDL: dipendenze di input/output, sequenze di invocazioni, descrizione funzionale gerarchica e specifiche di sequenze concorrenti di sequenze; Scoperta e collegamento dinamico dei WSs; Permette le seguenti analisi: completezza e consistenza, dei rischi, della tempestività, dell uso, e delle dipendenze. Migliora il servizio UDDI; Permette testing funzionale e non funzionale.

Svantaggi e Note Negative Framework The Audition Framework for Testing Web Services Interoperability Testing Web Services Using Progressive Group Testing Coyote: An XML-Based Framework for Web Services Testing Web Service's test Harness: A Functional, Load, and Performance Testing Framework for Web Services Svantaggi e Note Negative Richiede uno sforzo da parte degli sviluppatori dei servizi; La generazione automatica di un oracolo non è semplice e richiede molte informazioni; Se un fornitore disonesto sottomette migliaia di WS per ottenere la maggioranza, c è la possibilità che la maggioranza dei voti fallisca nello scegliere il miglior servizio. Ad una prima analisi non presenta grandi svantaggi. Ad una prima analisi non presenta grandi svantaggi.

Svantaggi e Note Negative Automatic Conformance Testing of Web Services Towards Contract-based Testing of Web Services Stress Testing Web services Testing di Web Service basato sullo Scenario con Agenti Distribuiti I fornitori del servizio possono fornire maliziosamente modelli migliori dei servizi. I contratti sviluppati a livello di Implementazione e XML sono difficili da leggere e da scrivere; Lascia molte questioni aperte: come la definizione di un linguaggio basato su XML per la rappresentazione di contratti; una notazione basata su UML per contratti; ed infine un motore di simulazione per i servizi richiesti. Non può essere visto come un Framework vero e proprio; Non è semplici da progettare; Richiede un esecuzione molto lunga. Non presenta note negative.

Conclusioni Problema dell inadeguatezza delle specifiche WSDL Idea: Trovare un formalismo comune che risolve il problema Inutile concentrare l attenzione sull architettura Presentazione IdealWSTF Impressioni sul lavoro svolto Realizzazione del lavoro e criteri utilizzati

DOMANDE?