Eduard Paul Enoiu, Senior Lecturer

About me: I am a researcher and lecturer 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. 



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

[Show all publications]

[Google Scholar author page]

Latest publications:

Towards a Model of Testers' Cognitive Processes: Software Testing as a Problem Solving Approach (Nov 2020)
Eduard Paul Enoiu, Gerald Tukseferi , Robert Feldt
IEEE International Workshop on Human and Social Aspects of Software Quality (HASQ 2020)

Product Line Adoption in Industry: An Experience Report from the Railway Domain (Oct 2020)
Muhammad Abbas, Robbert Jongeling, Claes Lindskog , Eduard Paul Enoiu, Mehrdad Saadatmand, Daniel Sundmark
24th ACM International Systems and Software Product Line Conference (SPLC 2020)

Agent-Based Software Testing: A Definition and Systematic Mapping Study (Oct 2020)
Pavithra Perumal Kumaresen , Mirgita Frasheri , Eduard Paul Enoiu
IEEE International Workshop on Automated and Intelligent Software Testing (AIST 2020)

Verifiable and Scalable Mission-Plan Synthesis for Multiple Autonomous Agents (Sep 2020)
Rong Gu, Eduard Paul Enoiu, Cristina Seceleanu, Kristina Lundqvist

Automated Test Case Generation for Digital System Designs: A Mapping Study on VHDL, Verilog and SystemVerilog Description Languages (Aug 2020)
Ashish Alape Vivekananda , Eduard Paul Enoiu
MDPI Designs Journal (MDPI Designs)

Teaching Software Testing to Industrial Practitioners using Distance and Web-Based Learning (Jul 2020)
Eduard Paul Enoiu
International Workshop on Frontiers in Software Engineering Education (FISEE)

MSc theses supervised (or examined):
Thesis TitleStatus
Improved testing using real and simulated systems available
Software Engineering, Embedded System Development and Software Testing available
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
Test Generation For Digital Circuits – A Mapping Study on VHDL, Verilog and SystemVerilog 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
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
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