{'fraction_non_alphanumeric': 0.019877675840978593, 'fraction_numerical': 0.0010193679918450561, 'mean_word_length': 5.543333333333333, '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}}
A discipline of specification-based test derivation

System-level requirements-based testing is an important task in software development, providing evidence that each requirement has been satisfied. There are two major problems with how these tests are derived. First, the notion of coverage is subjective, i.e., there is a lack of objective definitions of coverage criteria. Second, there is a surprising lack of automation in deriving system-level requirements-based tests. Research into solutions for these problems has led to the formulation of the discipline of specification-based test derivation presented in this dissertation. 
This discipline, which is based on predicate logic, provides a scientific foundation for objective definitions of coverage criteria and algorithms for partially automating test derivation. This dissertation defines some fundamental coverage criteria as examples. A general test frame generation process illustrates a general application of the discipline to a broad range of formal specifications, which can include existential and universal quantification. A refinement of the process can be applied to system-level requirements-based testing. 
The discipline leverages work invested in compiling the requirements specification. In addition to partially automating the task of verifying that the requirements have been satisfied, the refined process automates the traceability of requirements to test descriptions. Other applications of the discipline of specification-based test derivation include requirements validation and objective measurements for requirements complexity. The discipline can also be used to predict the expected number of tests to be derived, which can then be used for process statistics. The uses of this discipline as a basis for repeatable processes, definitions, and measurements imply that it can form part of software development processes at Capability Maturity Model (CMM) Levels 2 through 5.