Software systems have become pervasive in everyday life and are the core component of many crucial activities. A software system is redundant when it performs the same functionality through the execution of different elements. An inadequate level of reliability may determine the commercial failure of a software product. Nevertheless, despite the commitment and the rigorous verification processes employed by developers, software is deployed with faults. To increase the reliability of software systems, Programmers and software developers need to embrace some of the redundancy techniques highlighted in this study. This study x-rayed previous works with the aim of getting best practices that will help in improving the quality of software. It further reviewed literatures on the subject and highlighted various fault tolerance taxonomy that can help a software developer or programmer in developing redundant components thereby increasing the reliability of a software system with improved overall quality.
Onuora et al. (Thu,) studied this question.