{'fraction_non_alphanumeric': 0.01739788199697428, 'fraction_numerical': 0.007564296520423601, 'mean_word_length': 5.3, '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}}
An evaluation of software fault tolerance techniques for optimality

Chances of occurrence of fault increases when program goes beyond few thousand lines, even with the use of formal methods for fault prevention. These faults need very exhaustive testing to be removed, which is infeasible. This implies the indispensability of software fault tolerance (SFT) before facing the consequences of faults. Since 1972, several different SFT techniques have been proposed. But still occurrence of failures imply the failure of existing SFT techniques in considering all the required parameters. In this paper we analyze 16 replication based SFT techniques proposed after 1972 that have long-term influence or some paramount significance. We put them in classification based upon diversity they offer, adjudication mechanism they use & whether or not they are adaptive. Then we catalog the essential parameters for optimal adjudication, diversity & adaptiveness along with suggestions to incorporate those parameters. Finally, we map the listed techniques on these parameters. We came up with the result that none amongst the existing technique addresses all the essential parameters. This paper serves as a touch stone to evaluate any SFT technique & provides substantial guide for the researchers in proposing new SFT technique.