Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Michaël Marcozzi is active.

Publication


Featured researches published by Michaël Marcozzi.


international workshop on testing database systems | 2012

Test input generation for database programs using relational constraints

Michaël Marcozzi; Wim Vanhoof; Jean-Luc Hainaut

Databases are ubiquitous in software and testing of programs manipulating databases is thus essential to enhance the reliability of software. In this paper, we describe a clean and unified approach to automatically generate test inputs for such database programs. First, we propose a formal language, called ImperDB, to model database programs. ImperDB allows to model common program behaviors and data structures, as well as typical interaction scenarios between programs and databases. Secondly, we present a static analysis technique to generate test inputs for ImperDB programs, according to any chosen structural adequacy criterion. The technique considers an ImperDB program as a sequence of operations over a set of relational variables, modeling both the database original content and the program inputs. The problem of finding test inputs forcing the execution of a given path can then be transformed into the problem of solving constraints over the relational variables associated to the program. These constraints are expressed with the Alloy language and solved by the Alloy analyzer.


source code analysis and manipulation | 2013

A relational symbolic execution algorithm for constraint-based testing of database programs

Michaël Marcozzi; Wim Vanhoof; Jean-Luc Hainaut

In constraint-based program testing, symbolic execution is a technique which allows to generate test data exercising a given execution path, selected within the program to be tested. Applied to a set of paths covering a sufficient part of the code under test, this technique permits to generate automatically adequate test sets for units of code. As databases are ubiquitous in software, generalizing such a technique for efficient testing of programs manipulating databases is an interesting approach to enhance the reliability of software. In this work, we propose a relational symbolic execution algorithmto be used for testing of simple Java methods, reading and writing with transactional SQL in a relational database, subject to integrity constraints. This algorithm considers the Java method under test as a sequence of operations over a set of constrained relational variables, modeling both the database tables and the method variables. By integrating this relational model of the method and database with the classical symbolic execution process, the algorithm can generate a set of Alloy constraints for any finite path to test in the control-flow graph of the method. Solutions of these constraints are data which constitute a test case, including valid content for the database, which exercises the selected path in the method. A tool implementing the proposed algorithm is demonstrated over a number of examples.


international conference on software testing verification and validation | 2017

Generic and Effective Specification of Structural Test Objectives

Michaël Marcozzi; Mickaël Delahaye; Sébastien Bardin; Nikolai Kosmatov; Virgile Prevosto

A large amount of research has been carried out to automate white-box testing. While a wide range of different and sometimes heterogeneous code-coverage criteria have been proposed, there exists no generic formalism to describe them all, and available test automation tools usually support only a small subset of them. We introduce a new specification language, called HTOL (Hyperlabel Test Objectives Language), providing a powerful generic mechanism to define a wide range of test objectives. HTOL comes with a formal semantics, and can encode all standard criteria but full mutations. Besides specification, HTOL is appealing in the context of test automation as it allows handling criteria in a unified way.


Science of Computer Programming | 2015

Relational symbolic execution of SQL code for unit testing of database programs

Michaël Marcozzi; Wim Vanhoof; Jean-Luc Hainaut

Symbolic execution is a technique enabling the automatic generation of test inputs that exercise a set of execution paths within a code unit to be tested. If the paths cover a sufficient part of the code under test, the test data offer a representative view of the actual behaviour of this code. This notably enables detecting errors and correcting faults. Relational databases are ubiquitous in software, but symbolic execution of code units that manipulate them remains a non-trivial problem, particularly because of the complex structure of such databases and the complex behaviour of SQL statements. Finding errors in such code units is yet critical, as it can avoid corrupting important data. In this work, we define a symbolic execution translating database manipulation code directly into constraints and integrate it with a more traditional symbolic execution of normal program code. The database tables are represented by relational symbols and the SQL statements by relational constraints over these symbols. An algorithm based on these principles is presented for the symbolic execution of simple Java methods that implement transactional use cases by reading and writing in a relational database, the latter subject to data integrity constraints. The algorithm is integrated in a test generation tool and experimented over sample code. The target language for the constraints produced by the tool is the SMT-Lib standard and the used solver is Microsoft Z3. The results show that the proposed approach enables generating meaningful test data, including valid database content, in reasonable time. In particular, the Z3 solver is shown to be more scalable than the Alloy solver, used in our previous work, for solving relational constraints. We define a symbolic execution for simple code mixing Java with SQL statements.SQL is directly translated into relational constraints, expressed in SMT-Lib v2.We build a test generation tool based on this symbolic execution and the Z3 solver.Tests, including database content, are efficiently generated for OLTP code units.The tested units read and write in a constrained database using SQL transactions.


Proceedings of the 6th International Workshop on Constraints in Software Testing, Verification, and Analysis | 2014

Towards testing of full-scale SQL applications using relational symbolic execution

Michaël Marcozzi; Wim Vanhoof; Jean-Luc Hainaut

Constraint-based testing is an automatic test case generation approach where the tested application is transformed into constraints whose solutions are adequate test data. In previous work, we have shown that this technique is particularly well-suited for testing SQL applications, as the semantics of SQL can be naturally transformed into standard SMT constraints, using so-called relational symbolic execution. In particular, we have demonstrated such testing to be possible in practice with current solver techniques for small-scale applications. In this work, we identify the main challenges and provide research directions towards constraint-based testing of full-scale SQL applications. We investigate the additional research work needed to integrate relational and dynamic symbolic execution, handle properly dynamic SQL, generate tractable SMT constraints for most SQL applications, detect SQL runtime errors and deal with non-deterministic SQL.


genetic and evolutionary computation conference | 2011

A novel probabilistic encoding for EAs applied to biclustering of microarray data

Michaël Marcozzi; Federico Divina; Jesús S. Aguilar-Ruiz; Wim Vanhoof

In this paper we propose a novel representation scheme, called probabilistic encoding. In this representation, each gene of an individual represents the probability that a certain trait of a given problem has to belong to the solution. This allows to deal with uncertainty that can be present in an optimization problem, and grant more exploration capability to an evolutionary algorithm. With this encoding, the search is not restricted to points of the search space. Instead, whole regions are searched, with the aim of individuating a promising region, i.e., a region that contains the optimal solution. This implies that a strategy for searching the individuated region has to be adopted. In this paper we incorporate the probabilistic encoding into a multi-objective and multi-modal evolutionary algorithm. The algorithm returns a promising region, which is then searched by using simulated annealing. We apply our proposal to the problem of discovering biclusters in microarray data. Results confirm the validity of our proposal.


Surface and Interface Analysis | 2007

Deposition of polysiloxane-like nanofilms onto an aluminium alloy by plasma polymerized hexamethyldisiloxane: characterization by XPS and contact angle measurements

Ammar Azioune; Michaël Marcozzi; V Revello; Jean-Jacques Pireaux


Archive | 2017

Freeing Testers from Polluting Test Objectives.

Michaël Marcozzi; Sébastien Bardin; Nikolai Kosmatov; Mike Papadakis; Virgile Prevosto; Loïc Correnson


arXiv: Software Engineering | 2015

A Symbolic Execution Algorithm for Constraint-Based Testing of Database Programs

Michaël Marcozzi; Wim Vanhoof; Jean-Luc Hainaut


arXiv: Software Engineering | 2015

A Direct Symbolic Execution of SQL Code for Testing of Data-Oriented Applications.

Michaël Marcozzi; Wim Vanhoof; Jean-Luc Hainaut

Collaboration


Dive into the Michaël Marcozzi's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Nikolai Kosmatov

University of Franche-Comté

View shared research outputs
Top Co-Authors

Avatar

Sébastien Bardin

Centre national de la recherche scientifique

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Federico Divina

Pablo de Olavide University

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge