Research Interests: software testing; model checking; model-based testing; engineering of digital systems; embedded system development; cognitive psychology of software development;
Eduard Enoiu is an engineer interested in industrial control software and digital systems. A native of Bucharest, he earned his Engineer's degree at Polytechnic University in 2009 and his PhD from Mälardalen University in 2016.
Enoiu's research on automatic test generation and software testing using model checking has been published in international conferences and journals. He is teaching advanced test design techniques to industrial practitioners.
Eduard Enoiu is currently doing research on a diverse array of topics in software development, including the role of automatic test generation (where tests are intelligently and algorithmically created) in industrial practice; the use of model checking for engineering better systems; the nature of creating efficient and effective tests; the cognitive science of software testing; software complexity and autonomy;
Enoiu lives in Västerås with his wife and two jolly dandie dinmont terrier dogs.
Licentiate of Technology in Computer Science, Mälardalen University, 2014.Thesis: Model Checking-Based Software Testing for Function Block Diagrams. Supervisors: Prof. Paul Petterson, Prof. Daniel Sundmark, Dr. Adnan Causevic. Thesis opponent: Prof. Mohammad Reza Mousavi, Halmstad University. Performed research in close collaboration with industry. Worked within a large international consortium on advanced test automation (December 2011 – December 2013).
Master of Science in Embedded Systems, Mälardalen University, 2011. Thesis: A Design Framework for Service-oriented Systems. Supervisors: Assoc. Prof. Cristina Seceleanu and Dr. Aida Causevic. Courses focused on embedded systems engineering and artificial intelligence.
Engineer’s Degree in Computer Engineering, Politehnica University of Bucharest, 2009. Thesis: Efficient FPGA implementation of Reed Solomon encoding and decoding systems (only available in romanian language). Supervisor: Assoc. Prof. Stefan Stancescu. Courses focused on software engineering, digital design and verification, electronics, physics and mathematics.
Research Collaboration with Industry: Bombardier Transportation (development of an automated testing tool for train control software and training industrial engineers on software testing), Volvo GTT (development of a tool for verification and analysis of architectural models), Ericsson (one MSc thesis project).
Invited Talks (selected): TOCSYC Industrial Workshop, Skövde, Sweden: “Statistical Analysis of Resource Usage in Embedded Systems”, 2015. Workshop Bombardier Transportation, Västerås, Sweden: “Automated Test Case Generation for Train Control Software”, 2015. Workshop Ericsson, Kista, Sweden: “Advances on Model-Based Software Testing”, 2014.
Advisor and Supervisor (Bachelor and Master Level Theses)
A Model-based Test Generation Tool for Industrial Function Block Diagrams (BSc) - defended at University of the Balearic Islands.
A Study on Timed Base Choice Criteria for Testing Embedded Software (BSc)
An Empirical Exploration in the Study of Software-Related Fatal Failures (BSc)
Evaluation of Structural Testing Effectiveness in Industrial Model-driven Software Development (MSc) - conducted at Ericsson
Model Test Coverage Measurements in an Industrial Setting (MSc) - conducted at Bombardier Transportation.
On the Use of Base Choice Strategy for Testing Industrial Control Software (BSc)
Pairwise Testing for PLC Embedded Software (BSc)
Model-based Testing on Generated C Code (MSc)
Automated Test Case Generation for Function Block Diagrams using Java Path Finder and Symbolic Execution (MSc)
Automated Test Generation for Structured Text Language using UPPAAL Model Checker (MSc)
Automated Test Generation for Industrial and Safety-Critical Control Software
Automated test generation can be improved but software testers need to take caution in selecting generation objectives for automated testing, as well as establishing more effective test adequacy criteria. To achieve this, we should have a better view of what aspects of software testing affect test effectiveness. In this research we tried to decipher how automatic test generation works in industrial practice and how it can enable more efficient and effective software testing. Ultimately we want to use this knowledge to decode the complexities of testing software.
My collaborators in this work so far have included Daniel Sundmark, Paul Pettersson, Adnan Causevic, Robert Feldt, Thomas Ostrand, Elaine Weyuker, Kivanc Doganay, and Markus Bohlin.
Model-Based Analysis and Verification
Design models that can be introduced earlier in the development process provide a holistic system description that captures the structure and functionality of a software system, as well as related extra-functional information, e.g., timing properties and resource annotations. I was the coauthor on several studies that proposed efficient verification techniques, like model-checking, can be applied on high-level design artifacts to provide early information on the design and implementation of embedded software systems.
Design and Analysis of Software and System Services
The recently introduced paradigm of Service-oriented Systems (SOS) provides the basis for dealing with software integration and composition, by exploiting loosely coupled and autonomous abstract modeling entities called services. I was the coauthor on two studies showing a novel modeling and analysis tool for service-oriented systems. The tool enables graphical modeling of service-based systems, within the resource-aware timed behavioral language.
Together with my colleagues I have developed a graphical environment where services can be composed as desired by the user, together with a textual service composition interface in which compositions can also be checked for correctness.
My collaborators in this work so far have included Aida Causevic, Raluca Marinescu and Cristina Seceleanu.
Modelling Error Correction and Detection Systems
In information theory and in hardware and software engineering, error detection and correction are techniques that enable reliable delivery of data over noisy communication channels. I was the coauthor on two studies showing a methodology for designing error detection and correction systems using a modeling language such that an engineer can automatically obtain a reliable digital design or software implementation. This methodology can be applied for implementing various circuits and software.
My collaborators in this work so far have included Stefan Stancescu, Lavinia Neagoe and Raluca Marinescu.
An Energy-aware Mutation Testing Framework for EAST-ADL Architectural Models (Oct 2017) Raluca Marinescu, Predrag Filipovikj, Eduard Paul Enoiu, Jonatan Larsson , Cristina Seceleanu 29th Nordic Workshop on Programming Theory (NWPT'17)
Can Pairwise Testing Perform Comparably to Manually Handcrafted Testing Carried Out by Industrial Engineers? (Jul 2017) Peter Charbachi, Linus Eklund , Eduard Paul Enoiu International Workshop on Combinatorial Testing and its Applications (CTA'17)
Using Timed Base-Choice Coverage Criterion for Testing Industrial Control Software (Mar 2017) Henning Bergström , Eduard Paul Enoiu 6th International Workshop on Combinatorial Testing (IWCT'17)
Automatic Test Generation for Energy Consumption of Embedded Systems Modeled in EAST-ADL (Mar 2017) Raluca Marinescu, Eduard Paul Enoiu, Cristina Seceleanu, Daniel Sundmark ICST workshop on Testing Extra-Functional Properties and Quality Characteristics of Software Systems (ITEQS'17)
A Comparative Study of Manual and Automated Testing for Industrial Control Software (Mar 2017) Eduard Paul Enoiu, Adnan Causevic, Daniel Sundmark, Paul Pettersson International Conference on Software Testing, Verification and Validation (ICST 2017)
|ATAC - Advanced Test Automation for Complex Software-Intensive System (ITEA2/Vinnova)||finished|
|CEST - Commissioned Education in Software Testing||active|
|ITS-EASY Post Graduate School for Embedded Software and Systems||active|
|MegaMaRt2 - Megamodelling at Runtime (ECSEL/Vinnova)||active|
|PROMPT - Professional Master’s in Software Engineering (step II)||finished|
|PROMPT - Professional Master’s in Software Engineering (step II, phase B&C)||active|
|A Systematic Mapping Study on Combinatorial Software Testing||available|
|On the Combination of Runtime Verification and Automated Test Generation: A Systematic Mapping Study||available|
|Using Combinatorial Testing for Testing Industrial Control Software: A Study on Timed Systems||available|
|A Mutation Analysis Framework for Simulink Models||selected|
|Measuring Combinatorial Coverage of Manual Testing||selected|
|Testing of Industrial Control Software: A Systematic Mapping Study||selected|
|A Model-based Test Generation Tool for Industrial Function Block Diagrams||finished|
|A Study on Timed Base Choice Criteria for Testing Embedded Software||finished|
|An Empirical Exploration in the Study of Software-Related Fatal Failures||finished|
|Combinatorial Modelling and Testing of PLC Software using ACTS||finished|
|Evaluation of Structural Testing Effectiveness in Industrial Model-driven Software Development||finished|
|Model Test Coverage Measurements in an Industrial Setting||finished|
|On the Complexity Measurement of Industrial Control Software||finished|
|On the Use of Base Choice Strategy for Testing Industrial Control Software||finished|
|Pairwise Testing for PLC Embedded Software||finished|