Eduard Paul Enoiu, Post Doc


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. 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;

SUPERVISION: If you are interested in doing a bachelor or a master thesis at Mälardalen University, and if you are a good and ambitious student interested in software engineering, embedded system development and software testing, then have a look on the available theses and some general topics listed below (these topics are not taken by any student). If you are interested in any of these please email me.

Available Theses (on 6 Dec 2017):

I advise bachelor and master’s theses in all areas that I actively conduct research in:

  • Software Testing, with a particular focus on test design and benchmarking of tests.

  • Embedded Systems, particularly the development of industrial control and safety-critical software.

  • Model Checking and Model-Based Testing, particularly the use of models (e.g., timed automata) for building better systems.

  • Human aspects of Software Engineering, particularly cognitive aspects of software development.

  • Engineering Digital Systems and Circuits, especially using Verilog and other HDL architectures, and particularly how they relate to testing.

PODCASTListen to my podcast on software engineering called Testing Habits. These are conversations with researchers, scientists and technologists about software testing and software engineering. 


Professional Preparation:
 
  • PhD Degree in Computer Engineering at Mälardalen University. Thesis: Automatic Test Generation for Industrial Control Software, Supervisors: Prof. Daniel Sundmark, Dr. Adnan Causevic, Prof. Paul Petterson, Thesis opponent: Prof. Mats Heimdahl, University of Minnesota. Industrial PhD Visit (40%) from 2014 to 2016 at Bombardier Transportation AB. Teaching and Research Visit (August-September 2015) at East China University of Science and Technology, China. 

  • 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. Supervisor: Assoc. Prof. Stefan Stancescu. Courses focused on software engineering, digital design and verification, electronics, physics and mathematics.  

Community Service:

  • Refereeing (selected): International Workshop on Formal Techniques for Safety-Critical Systems, 2015, International Symposium on Dependable Software Engineering, 2015, International Andrei Ershov Memorial Conference, 2015, International Workshop on Formal Techniques for Safety-Critical Systems, 2014, International Workshop on Formal Engineering approaches to Software Components and Architectures 2014, International Conference on Tools and Algorithms for the Construction and Analysis of Systems 2014, Workshop on Advances in Model Based Testing 2013, International Conference on Software Engineering Research, Management and Applications August 2013, Emerging Technologies and Factory Automation, 2012. 

  • Research Collaboration with Academia: Mälardalen University, Blekinge Institute of Technology, University of Namur, Swedish Institute of Computer Science, Politehnica University of Bucharest

  • 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. 

Mentoring

Courses

  • Model-Based Testing (PROMPT, Mälardalen University) 2017, Course responsible and lecturer.

  • Formal Verification of Reactive Systems (PROMPT) 2017, Course lecturer on timed automata and model checking.

  • Advanced Verification and Validation (Mälardalen University) 2016. Lecturing on timed automata, modeling real-time systems and model checking.

  • Software Testing Course (PROMPT Course for Industrial Professionals) 2014, 2015, 2016. Course development, lectures, supervision, exercises, creating/correcting exams

  • Software Verification and Validation (Mälardalen University) 2013, 2014, 2015. Guest lecture on Model Based Testing

  • Software Engineering (East China University of Science and Technology) 2015. Guest lecturing

  • Software Testing Commissioned Education (Mälardalen University and Ericsson) 2012, 2013. Lecturing on Model-based testing. Exercises, lab supervision.

  • Software Engineering Project Course (Mälardalen University) 2012 2013. Project supervision, exercises

  • Operating Systems Course (Polytechnic University of Bucharest) 2007 2008. Lab assistant.


I have developed, helped in the development, or led the construction of several software tools used in research and industry.

CompleteTestI developed a technique based on model-checking that works with IEC 61131-3 industrial control software. In my PhD thesis I show how automatic test generation for IEC 61131-3 programs, containing both functional and timing information, can be solved as a model checking problem for both code and mutation coverage criteria. The developed technique was implemented by me, Adnan Causevic, Daniel Sundmark and Paul Pettersson in the CompleteTest tool. A commercial version of the tool is developed by Compratio AB.

SeafoxThe only available combinatorial test suite generation tool for IEC 61131-3 control software. SEAFOX supports the generation of test suites using pairwise, base choice and random strategies. For pairwise generation, SEAFOX uses the IPOG algorithm as well as a first pick tie breaker. A developer using SEAFOX can automatically generate test suites needed for a given IEC 61131-3 program after manually providing the input parameter range information based on the defined behaviour written in the specification.

TiqvaAn automatic software complexity measurement tool for IEC 61131-3 FBD programs used in safety critical embedded development. It can measure  the Number of Elements, Cyclomatic Complexity Number, Halstead Metrics and Information Flow Metric for block diagrams.

MatsA tool for automatic test generation and test selection using mutation analysis for timed automata and Simulink models via the SIMPAAL tool. The tool is using UPPAAL SMC as the underlying engine.

VitalA tool which provides model-checking of EAST-ADL architectural models with regard to timing and behavioral requirements. It implements an automatic model transformation to UPPAAL PORT timed automata directly from EAST-ADL. The tool has been used in several industrial case studies.

ReseIDEA design tool for behaviour modelling of services based on the REMES language. NetBeans Visual Library API is used to display editable service diagrams with support for graph-oriented models. A textual dynamic service composition language was implemented, together with means to automatically verify the service composition correctness.

Automatic Test Generation

Since the early days of software testing, automatic test generation has been suggested as a way of allowing tests to be created at a lower cost. However, industrially useful and applicable tools for automatic test generation are still scarce. As a consequence, the evidence regarding the applicability or feasibility of automatic test generation in industrial practice is limited. This is especially problematic if we consider the use of automatic test generation for industrial safety-critical control systems, such as are found in power plants, airplanes, or trains.


Our results show that there are still challenges associated with the use of automatic test generation. In particular, we found that while automatically generated tests, based on code coverage or mutation, can exercise the logic of the software as well as tests written manually, and can do so in a fraction of the time, they do not show better fault detection compared to manually created tests. Our results highlight the need for improving the goals used by automatic test generation tools.



Combinatorial Testing

Combination test techniques are test generation methods where tests are created by combining the input values of the software based on a certain combinatorial strategy. Our results show that these techniques can be improved and be successfully used in industrial practice. We proposed the use of timed base-choice criterion for testing industrial control software.

The idea of using combinatorial testing in software testing practice stands as a significant progress in the development of automatic test generation approaches. Combinatorial testing is capable of aiding an engineer in testing of industrial software.

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 of 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

Service-oriented Systems (SOS) provide 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.

PhD students supervised as assistant supervisor:

Daniel Flemström