Abstract Practitioners and researchers strive for the development of software systems with a higher degree of reuse, shorter time to market and cost reduction. Two paradigms have recently risen up with these objectives in mind: Model-driven engineering and Software Product Line development.
Model-driven engineering (MDE) proposes an automated process where models are used as first-class artefacts of a development process, using model transformation as the core mechanism for the automation. Software Product Line (SPL) development is an approach to develop families of related systems based on the usage of reusable assets, with the aim of sharing the development efforts. A feature is an increment in system functionality, each system in the SPL is defined by a unique combination of features.
The use of a model to describe the behaviour of a system can be utilised in several stages in the development process: requirements, design, code and testing. For the testing stage, models helps to understand the functionalities to test and also to represent the way they are tested. Models can be input and output artefacts in testing tasks. Model-driven testing (MDT) uses the MDE principles to obtain test artefacts from the models that describe the system, using model transformation to automate the process.
In this thesis, a methodology for model-driven testing is defined with the aim of applying it in development processes that use models as main artefacts. A model-driven testing methodology requires to define the metamodels, model transformations and tools and the abstraction level in which test artefacts will be generated. Our proposal uses the Unified Modeling Language (UML) as a metamodel to define the system¿s functionalities. Specifically, UML uses cases; UML sequence diagrams and UML state machines are used to represent the System Under Test (SUT).
The testing artefacts are represented at two abstraction levels: test model and test code. The UML Testing Profile (UTP) is used to represent the test models and, to represent the test code, the xUnit framework is used. Two different types of model transformations are developed in this thesis: model-to-model transformations that generate test model from design models and model-to-text transformations that obtain the test code from the test models.
This thesis brings three main contributions, the first is the Methodology for Automated Model-Driven Testing (MATE). This methodology can be applied to obtain automated test cases for traditional software development and MDE development. As a result, executable test cases are obtained, and these are composed of: (i) Test case procedure, (ii) Parameterised input test data and (iii) Oracle procedure.
The second contribution, is the extension of MATE to SPL testing. Testing a SPL poses a number of new challenges as compared to testing single systems. An extension of MATE is defined for SPL: MATE for Product Line usages (MATE PLus). In MATE PLus, commonalities and features are represented using UML models, and the test cases are automatically generated using a model-driven testing. The number of programs that can be generated from an SPL have an exponential growth in the number of features, and testing each product individually is not feasible in practice. In MATE PLus, a combinatorial testing approach is used to define the set of individual products to test.
The third contribution, are the tools that automate the testing tasks in MATE and MATE Plus. Most of the testing tasks in MATE and MATE Plus were supported by market modelling tools. To fully automate all testing tasks, a web application called CTWeb was developed. This web application allows the execution of combinatorial testing and state machine-based testing.
This thesis is illustrated using the Monica Mobile software product line as a running example. Monica Mobile is usually employed in the monitoring of the sensor system in a truck.
© 2008-2024 Fundación Dialnet · Todos los derechos reservados