1 How to generate testing models into MDA approach to software development. A beginner’s point of view. Università degli Studi dell’Aquila Facoltà di Scienze Matematiche Fisiche e Naturali. Corso di Laurea Specialistica in Informatica Studente Luca Berardinelli Matr Prof. Henry Muccini Progetto per il Corso di Analisi e Testing. a.a. 2005/2006
2 INTRODUCTION Software Testing Obiettivo di questo report è focalizzare l’attenzione sulla generazione di modelli di test in UML attraverso l’uso del profilo UML2 Testing Profile (U2TP). L’adozione di questo profilo in MDA estende l’approccio Model Driven Development anche alla fase di software testing (Model Driven Testing) Model Driven Architecture Model Transformation UML2 Testing Profile ModelTransformation Application Introduzione Luca Berardinelli
3 SOFTWARE TESTING: the problem Software Testing Verification: "Are we building the product right?” The software, along the lifecycle, should conform to its specification. “Software Testing consists of the dynamic verification of the behaviour of a program on a finite set of test cases, suitably selected from the usually infinite executions domain, against the specified expected behaviour” Informazioni richieste: - è necessaria una adeguata specifica dei requisiti sul comportamento del sw; - è necessaria una versione eseguibile (o simulabile!) del sistema sw (o prototipo) - è necessaria una strategia di scelta di test case Altre scelte sono fondamentali: - scegliere quali documenti produrre - scegliere quale notazione utilizzare : formale, semi formale, informale. Luca Berardinelli
4 SOFTWARE TESTING/MDA. MDT approach Software Testing/MDA Requirements Architectural Design Design Implementation in gran parte testo Model transformation Testing Luca Berardinelli
5 SOFTWARE TESTING: answers&questions Altre scelte sono fondamentali: - scegliere quali documenti produrre. - scegliere quale notazione utilizzare : formale, semi formale, informale: Software Testing/MDA UML2 perché, nel contesto MDTesting permette di utilizzare una notazione comune tra design team e testing team. Migliorare il flusso di informazioni migliora il processo produttivo (maggiore efficienza, costi più contenuti) UML2 perché è supportato da CASE tool. Ma esistono tool che effettuano trasformazioni tra modelli? Esistono le trasformazioni di interesse per MDT (PIM PIT,PSM PST,PIT PST)? Se queste non esistono possiamo definirne di nostre?Con quale linguaggio? … ma cosa sono le model transformation? Luca Berardinelli
6 Model Transformation MDA/Model transform. Transformation definition : insieme di regole formalizzate(?) UML2 UML2 + MOF In base al linguaggio scelto e alla natura dei modelli source e target si distinguono diversi approcci alle model transformation. Scegliamo un linguaggio che ci permetta di specificare una trasformazione da PIM a PIT utilizzando il profilo U2TP: il processo di trasformazione sarà eseguito da una applicazione Java creata ad hoc. L’approccio adottato è denominato model2model direct manipulation approach. U2TP Ma prima capiamo cosa vogliamo ottenere come si modella un PIT? U2TP PIT CRM sw sysCRM test sys Luca Berardinelli
7 U2TP & PIT U2TP U2TP si propone come un linguaggio per il design, la visualizzazione, la specifica, l’analisi, la costruzione e la documentazione di artefatti di un test system utilizzabili con tecnologie Object / Component based. Gli elementi di modellazione introdotti dal profilo possono essere raggruppati in quattro grandi aree U2TP Luca Berardinelli
8 U2TP: Test Architecture U2TP Luca Berardinelli
9 U2TP: Test Behavior U2TP Va bene la teoria ma…quali quanti diagrammi costituiscono un test system? ESEMPIO PRATICO (CRM) Customer Resource Management Software System & Customer Resource Management Test System Luca Berardinelli
10 CRM Example: Software System CRM Example Luca Berardinelli
11 CRM Example: Test System CRM Example Luca Berardinelli
12 CRM Example: Test System Test Configuration CRM Example dbe:DataBaseEmulator > Luca Berardinelli
13 CRM Example: Test System Test Control CRM Example Luca Berardinelli
14 CRM Example: Test Objective e Use Case CRM Example Non è possibile fare tutto questo “lavoro” a mano! Ed è solo un esempio semplicissimo! Per farlo dobbiamo svelare i Luca Berardinelli
15 MDA in the middle knowing the “meta” ModelTransformation Application UML2 UML2 + MOF U2TP PIT CRM sw sysCRM test sys ModelTransformation Direct manipulation approach… …manipoliamo i metamodelli in questo caso UML2! Luca Berardinelli
16 A Transformation Tool ModelTransformation Application Eclipse UML2, un indispensabile COTS per accedere ad una implementazione open source del metamodello UML2 Luca Berardinelli
17 A Transformation Definition in Java ModelTransformation Application Luca Berardinelli
18 PIM e PIT in Eclipse ModelTransformation Application Luca Berardinelli
19 Conclusioni Conclusioni E’ possibile definire test system utilizzando il profilo U2TP in un approccio Model Driven Testing in ambito MDA U2TP contribuisce senz’altro a definire un vocabolario ed una notazione comune, a scegliere quali e quanti diagrammi realizzare Soffre degli stessi limiti di MDA: manca una suite standard di definizioni di trasformazioni tra modelli il campo delle model transformation è ancora giovane: bisogna adottare un linguaggio di definizione con un adeguato livello di astrazione. Bisogna senz’altro individuare e saper utilizzare CASE tool avanzati, in genere commerciali! Luca Berardinelli