Eduard Paul Enoiu, Post Doc


About me: I am a postdoctoral researcher at Mälardalen University in Västerås, Sweden, primarily affiliated with the Software Testing Laboratory and the Formal Modelling and Analysis groups at the department of Networked and Embedded Systems. A native of Bucharest, I earned an Engineer's degree from Polytechnic University of Bucharest in 2009 and a PhD from Mälardalen University in 2016. 

My research interests span software engineering and empirical research, especially how to test, maintain, evolve and assure high-quality industrial software systems. I teach automated testing and model-based testing at the masters and PhD levels as well as to industrial practitioners. Currently I am 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 aspects of software testing.

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 some general topics listed below (these topics are not taken by any student). If you are interested in any of these please email me.

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:

  • Conference Duties: Publicity and Social Media Chair for ICST 2018.
 
  • Refereeing (selected): Software Quality Journal, Sensors Journal, Journal of Systems and Software, Nordic Workshop on Programming Theory 2017, ICECCS 2017, Software Testing, Verification and Reliability Journal, COMPSAC 2016, 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.

Cognitive Aspects of Software Testing

To improve software testing we do not only need more automation and tools, we also need a deeper understanding of how great testers think when conducting their work. However, no comprehensive model of testers' cognitive processes exists. I do research on understanding the psychology of software testing by using problem solving theory and empirical evaluations.

[Show all publications]

[Google Scholar author page]

Latest publications:

From Natural Language Requirements to Passive Test Cases using Guarded Assertions (Jul 2018)
Daniel Flemström, Eduard Paul Enoiu, Wasif Afzal, Daniel Sundmark, Thomas Gustafsson , Avenir Kobetski
The 18th IEEE International Conference on Software Quality, Reliability and Security (QRS18)

Combinatorial Modeling and Test Case Generation for Industrial Control Software using ACTS (Jul 2018)
Sara Ericsson , Eduard Paul Enoiu
The 18th IEEE International Conference on Software Quality, Reliability and Security (QRS18)

From Modeling to Test Case Generation in the Industrial Embedded System Domain (Jun 2018)
Aliya Hussain , Saurabh Tiwari, Jagadish Suryadevara, Eduard Paul Enoiu
First International Workshop on Model-Driven Engineering for Design-Runtime Interaction in Complex Systems (MDE@DeRun)

Improving Continuous Integration with Similarity-based Test Case Selection (Mar 2018)
Francisco Gomes de Oliveira Neto , Azeem Ahmad , Ola Leifler , Kristian Sandhal , Eduard Paul Enoiu
13th IEEE/ACM International Workshop on Automation of Software Test (AST'18)

Test Agents: Adaptive, Autonomous and Intelligent Test Cases (Feb 2018)
Eduard Paul Enoiu, Mirgita Frasheri
Computing Research Repository (CoRR)

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)

PhD students supervised as assistant supervisor:

Daniel Flemström

MSc theses supervised (or examined):
Thesis TitleStatus
A Systematic Literature Review Study on Testing Digital Logical Circuits in progress
An Evaluation of Model-based Testing in Industrial Practice: From System Modelling to Test Generation in progress
Combining Runtime Verification and Automated Test Generation for PLC Embedded Software in progress
Measuring Combinatorial Coverage of Manual Testing in progress
A Model-based Test Generation Tool for Industrial Function Block Diagrams finished
A Mutation Analysis Framework for Simulink Models 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
AN EVALUATION OF MODEL-BASED TESTING FOR AN INDUSTRIAL TRAIN CONTROL SOFTWARE finished
Automated Test Case Generation for Function Block Diagrams using Java Path Finder and Symbolic Execution finished
Automated Test Generation for Structured Text Language using UPPAAL Model Checker finished
Combinatorial Modelling and Testing of PLC Software using ACTS finished
EFFICIENT FBD TEST GENERATION THROUGH PROGRAM SLICING finished
Evaluation of Structural Testing Effectiveness in Industrial Model-driven Software Development finished
Model Test Coverage Measurements in an Industrial Setting finished
Model-based Testing on Generated C Code finished
Modeling Product Line Variability in the Rail Vehicle Domain 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
Testing of Industrial Control Software: A Systematic Mapping Study finished