Mandingamethodology for automation testing integrating functional and non-functional aspects

  1. Toledo Rodríguez, Federico Leonardo
Dirigida por:
  1. Beatriz Pérez Lamancha Director/a
  2. Macario Polo Usaola Director/a

Universidad de defensa: Universidad de Castilla-La Mancha

Fecha de defensa: 07 de marzo de 2014

Tribunal:
  1. Mario G. Piattini Velthuis Presidente/a
  2. Danilo Caivano Secretario/a
  3. José Cristobal Riquelme Santos Vocal

Tipo: Tesis

Resumen

An Information System (IS) is a software system that allows the manipulation of structured data for a specific business goal, especially in a database. With the growth of the internet and web applications, and now with mobile applications, the use of these systems is embedded in our lives. As a result the importance of testing in the IS development process has being growing, looking for improvements in functional and non-functional aspects of quality. In model-driven testing approaches different models are usually used, with two aims, some models for functional testing and some other models for non-functional testing. Our approach moves away from this traditional practice and breaks down the boundaries between functional and non-functional testing, incorporating both aspects into a comprehensive testing model which will later be translated into test code and will be useful for performing functional and non-functional validations. Commonly, ISs consist of applications which deal with the information saved in relational databases, storing the data of different entities on the basis of particular business rules. Thus, there is a correspondence between the visual components (e.g. web forms), the data structures and the logic in the middle to accomplish the business rules. The basic operations to manipulate data structures are the CRUD operations (create, read, update, delete). For example, if values are updated in the user interface, this will produce the execution of an operation on an object in the middle layer, and then an update operation on the database. Taking this into account, the data model can be used as a basis to generate test cases, verifying the way that application layers manage these structures. This thesis proposes a methodology to automatically generate test cases from existing IS, paying special attention on CRUD operations. It takes a UML representation of the SUT which has been automatically obtained through reverse engineering from the IS database. A model-driven approach is then applied to obtain executable functional and non-functional test cases. In the middle, a set of model to model and model to text transformations are in charge of performing the main stages of MANDINGA. After reverse-engineering the IS, MANDINGA deals with different models to represent the aspects of the system which are interesting from the testing point of view: ¿ A Data Model to represent the database structure, including entities and relationships. ¿ A Graphic User Interface model to keep information about the elements with which the user interacts and the way they navigate on the IS. ¿ A Non-Functional Properties model to describe other aspects of system requirements such as dependability, performance, security, etc. ¿ A standard UML profile for Testing (UML Testing Profile) to represent the test model generated. ¿ Model-Implementation Mapping, in order to relate the model elements to the elements on the SUT, in order to be able to generate completely executable test cases. Transformations between models are carried out with ATL, the de facto standard for model-to-model transformations. The final generation of executable test code is made with Acceleo scripts, the pragmatic implementation of the standard for model-to-text transformations. One of the main contributions of this thesis is the return into the industry of the proposed methodology. The general framework was adapted for a specific model-driven environment called GeneXus, and its testing tool GXtest. The same scheme was developed and used within industry for this environment: test cases are generated from the data model, and then, with this test model, functional and non-functional validations can be performed automatically on IS developed with GeneXus. This set of tools have been used industrially in different real projects providing successful results, specially reducing costs in the preparation of automated test cases and performance testing.