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.
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.
Stefan Bogicevic, MSc Student, Modeling Product Line Variability in the Rail Vehicle Domain
Sidorela Suli, MSc Student, An Evaluation of Model-Based Testing for an Industrial Control System
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.
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.
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)
|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|
|Software Center: Aspects of Automated Testing (MDH)||active|
|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|