{'fraction_non_alphanumeric': 0.014964216005204945, 'fraction_numerical': 0.0, 'mean_word_length': 5.46218487394958, '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}}
Model-based abductive reasoning in automated software testing

Automated software testing using model checking is in this paper epistemologically analysed in order to argue in favour of the model-based abductive reasoning paradigm in the computer science field. Preliminary, it is shown how both deductive and inductive reasoning are insufficient to determine whether a given piece of software is correct with respect to specified behavioural properties. In Automated software testing computational models are algorithmically checked to find paths that satisfy or falsify the properties of interest; such paths are used to select executions to be observed in software testing. Models developed in model checking are acknowledged as scientific models according to the set-theoretic approach to models, and isomorphisms between such models and the target system are shown to hold. A study case exemplifies how, using different models built upon the same system data set, contradictory results can be obtained in software testing. This is used to show the hypothetical nature of analogical models in automated software testing. The model assumption – algorithmic check – software testing course is understood as the abduction – deduction – induction circle defining the selective abduction and turned to isolate a set of model-based hypotheses about the target system behaviours. A manipulative abduction process is finally recognized in the practice of adapting, abstracting, and refining models that do not provide successful predictions.