Contact Person: Ivan Jovanovikj
Testing is an important activity in software engineering as it deals with observing the execution of a software system to validate whether it behaves as intended, i.e., as specified in the requirements. Beyond the basic task of checking a sample of runs, testing encompass a variety of techniques, actors, and activities, and poses a lot of complex challenges.
With the continuous growth of the software systems regarding the complexity, pervasiveness and criticality, ensuring that it behaves according to the specified requirements, from both functional and non-functional perspective, becomes more crucial but also more difficult and expensive. Software models are used in software development for different purposes, e.g. for specifying the requirements, for documenting design aspects or for code generation. Models can also be used for testing purposes, e.g. for generating test cases and test scripts, as test oracles, and for defining test selection criteria. Model-based testing (MBT) advocates the systematic use of models for testing activities. MBT mostly uses both models design phase or explicit test models.
Contribution and Topics
In our research, we study the problem of reusing test cases in software migration projects. Firstly, we assess the quality of the existing test cases in order to decide whether to migrate them or not. We propose test case quality plans for assessment of test case quality. It is a method that relies on GQM (Goal Question Metric) and standardized quality model like ISO 25000 and enables creation of quality plans that are context-specific.
By employing software reengineering techniques and situational method engineering, we enable creation of model-driven migration methods for test case . These methods are context-specific which means they are specially tailored to be executed in a certain environment for specific type of test cases. In the first step test models are extracted out of the existing test cases and then, if needed, restructuring of the test models is applied. The restructured test models are then used as basis for generating test cases for testing the migrated system. The last step is actually model-based testing or more specifically model-driven testing.
Last but not least, we do research regarding the correctness of the test case migration. Crucial requirement in test case migration is that the migrated test cases test the same functionality of the system as before the migration, i.e., a behavioral equivalence of the test cases must be proved. To address this requirement we apply mutation testing , as a technique to identify false positives and false negative among the test cases, i.e., to identify test cases which identify non-existing errors and test cases that fail to identify existing errors in the migrated system.
 Ivan Jovanovikj, Vishwak Narasimhan, Gregor Engels, Stefan Sauer: Context-specific Quality Evaluation of Test Cases, In: Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development (MODELSWARD'18) (2018).
 Ivan Jovanovikj, Gregor Engels, Anthony Anjorin and Stefan Sauer: Model-Driven Test Case Migration: The Test Case Reengineering Horseshoe Model, In Proceedings of the CAiSE'18 Forum at the 30th International Conference on Advanced Information Systems Engineering (CAiSE'18) (2018)
 Ivan Jovanovikj, Enes Yigitbas, Anthony Anjorin, Stefan Sauer: Who Guards the Guards? On the Validation of Test Case Migration. In Softwaretechnik-Trends, Proceedings of the 20th Workshop Software-Reengineering & Evolution (WSRE) (2018)