{'fraction_non_alphanumeric': 0.02592087312414734, 'fraction_numerical': 0.0, 'mean_word_length': 5.323275862068965, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Combining Model Inference and Passive Testing in the Same Framework to Test Industrial Systems

Many software engineering approaches often rely on formal models to automate some steps of the software life cycle, particularly the testing phase. Even though automation sounds attractive, writing models is usually a tedious and error-prone task. In addition, with industrial software systems, models, when they exist, are often not up-to-date. Hence, testing these systems becomes problematic. In this context, this paper proposes a method and a framework called Autofunk to test production systems by combining two approaches: model generation and passive testing. Given a large set of events collected from a production system, Autofunk combines the notions of expert system, formal models and machine learning to infer symbolic models while preventing over-generalisation (i.e., the models should not capture more behaviours than those possible in the real system). Afterwards, these models are considered to passively test whether another system is conforming to the models. As the generated models do not express all the possible behaviours that should happen, we define conformance with four specialised implementation relations. Two relations are dedicated for offline passive testing (events are collected, while the system is running, the tester gives verdicts afterwards). The two remaining relations are for the online mode (events are analysed on the fly).