{'fraction_non_alphanumeric': 0.019029495718363463, 'fraction_numerical': 0.0, 'mean_word_length': 5.53416149068323, '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}}
Augmenting sequence constraints in Z and its application to testing

The paper introduces sequence constraints into a formal specification language Z. Formal specification languages have been used to specify safety-critical applications, and many static and dynamic aspects of the system can be specified. However, the method calling constraints, a runtime behavior, are often missed. The paper introduces two kinds of sequence constraints: those constraints with respect to a schema and those with respect to multiple schemas. Once sequence constraints are specified, together with parameter specifications already in Z, one can generate test cases including test inputs and their expected outputs using various testing strategies such as partition testing, boundary testing, random testing, stress testing, and negative testing. An application has been specified in Z using sequence constraints, and test cases generated have been used to test the software. The results show that the test cases generated successfully detected all the faults seeded.