{'fraction_non_alphanumeric': 0.01858736059479554, 'fraction_numerical': 0.0, 'mean_word_length': 5.029850746268656, '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}}
Unifying Models of Test Cases and Requirements

In industry, due to market pressures, it is common that the system requirements are out of date or incomplete for certain parts of the system. Nevertheless, we can always find up to date test cases which implicitly complements the related requirements. Therefore, instead of simply using test cases to detect software failures, in this paper we present an approach to update requirements using test cases. To accomplish this, we first assume that both requirements and test cases are formally documented; we reuse previous works that provide such models automatically as CSP formal specifications. Thus, we formally define a merge operation using the operational semantics of CSP. Finally, we use part of a real case study to experience the proposed approach.