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 18 January 2018):
Using Intelligent Agents for Testing Java Code
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.
PODCAST: Listen to my podcast on software engineering called Testing Habits. These are conversations with researchers, scientists and technologists about software testing and software engineering.
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.
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.
Daniel Flemström, PhD Student, SICS/MDH, co-advising with Wasif Afzal and Daniel Sundmark, Licentiate: Similarity-based Test Effort Reduction.
Adnan Muslija, MSc Student, On the Complexity Measurement of Industrial Control Software, Tiqva tool.
Jonatan Larsson, BSc Student, Automatic Test Generation and Mutation Analysis using UPPAAL SMC, Mats tool.
Sara Ericsson, BSc Student, Modelling and Testing of PLC Software using ACTS.
Gonzalo Laso Ferrer, MSc Student, A Model-based Test Generation Tool for Industrial Function Block Diagrams - defended at University of the Balearic Islands.
Henning Bergström, BSc Student, A Study on Timed Base Choice Criteria for Testing Embedded Software.
Nikolaos Sycofyllos, BSc Student, An Empirical Exploration in the Study of Software-Related Fatal Failures.
Mahdi Sarabi, MSc Student, Evaluation of Structural Testing Effectiveness in Industrial Model-driven Software Development - conducted at Bombardier Transportation.
Xiaowei Ma, MSc Student, Model Test Coverage Measurements in an Industrial Setting - conducted at Ericsson.
Simon Eklund, BSc Student, On the Use of Base Choice Strategy for Testing Industrial Control Software.
Linus Eklund, BSc Student, Pairwise Testing for PLC Embedded Software, Seafox tool.
Athanasios Stratis, MSc Student, Co-advising with Adnan Causevic, Model-based Testing on Generated C Code
Sebastian Kunze, MSc Student, Co-advising with Adnan Causevic, Automated Test Case Generation for Function Block Diagrams using Java Path Finder and Symbolic Execution
Filip Markovic, MSc Student, Co-advising with Adnan Causevic, Automated Test Generation for Structured Text Language using UPPAAL Model Checker.
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.
CompleteTest. I 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.
Seafox. The 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.
Tiqva. An 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.
Mats. A 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.
Vital. A 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.
ReseIDE. A 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.
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.
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|
|Combining Runtime Verification and Automated Test Generation for PLC Embedded Software||available|
|Tailoring Combinatorial Testing to Real-Time Embedded Systems||available|
|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|
|Measuring Combinatorial Coverage of Manual Testing||in progress|
|Modeling Product Line Variability in the Rail Vehicle Domain||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|
|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|
|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|