{'fraction_non_alphanumeric': 0.02280701754385965, 'fraction_numerical': 0.0, 'mean_word_length': 4.973821989528796, '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}}
Regression Testing of Object-Oriented Software: Towards a Hybrid Technique

We propose, in this paper, a hybrid regression testing technique and associated tool for object-oriented software. The technique combines, in fact, the analysis of UML models to a simple static analysis of the source code of the modified program. The basic models we use are use cases model and corresponding UML statechart and collaboration diagrams. The goal of the static analysis of the source code is to identify changes that are not visible in design models. The developed tool identifies the modified (and/or impacted by modifications) use cases and selects the appropriate test cases from an existing test suite. New (JUnit) test cases, covering new scenarios or those whose structure has been modified after changes, are generated when necessary. In this way, the technique supports an incremental update of the test suite. The selected JUnit test cases, including the new ones, are automatically executed. A case study is reported to provide evidence of the feasibility of the approach and its benefits in terms of reduction of regression testing effort.