{'fraction_non_alphanumeric': 0.014298480786416443, 'fraction_numerical': 0.0017873100983020554, 'mean_word_length': 6.044025157232705, '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}}
Software Requirement Criteria based on Human Errors

Software requirement specifications have been observed to largely impact the dependability and the cost of software systems in software development and certification phases. Inappropriate specification of software requirements can cause software developers' erroneous mental representations, thus leading to defects that propagate into subsequent development phases. Understanding the human error mechanisms of software requirement representation is significant for reducing the defects originated from requirements. This paper proposes a theory on the human error mechanism of software requirement, and derived two new criteria to avoid requirement specification triggering the human errors of developers. The criteria were validated by an experiment. Results show that: 1) once a requirement specification contained the error-prone scenarios of the two proposed criteria, developers indeed committed corresponding errors; 2) violating the proposed criteria tended to cause common defects, which are the defects introduced by two or more developers in the same way.