{'fraction_non_alphanumeric': 0.017793594306049824, 'fraction_numerical': 0.0, 'mean_word_length': 5.492307692307692, '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}}
Specification analysis and test data generation by solving Boolean combinations of numeric constraints

In the analysis of state-based requirement specifications and in software test data generation, one often has to determine the satisfiability of Boolean combinations of numeric constraints. Theoretically this problem is undecidable, and practically many problem instances are very difficult. In this paper an extension to a Boolean constraint solver is described. The new tool can deal with variables of other types (including the enumerated type, integers and reals). It combines Boolean logic reasoning with linear programming and bound propagation. Non-linear constraints are allowed, but the solving method is incomplete. Experimental results show that the tool can be quite useful in testing specifications as well as procedural code.