Checking the Robustness of Code Using Mutation Testing
摘要
Due to the rapid development of technology in the modern world, software has become a very important and essential aspect of modern life and it opens the door to operate and manage hardware devices. However, using non-standard software has the potential to seriously harm users’ lives and cause severe consequences. This emphasizes how crucial error-free, high-quality software is. Software testing is a crucial step in the verification and validation process, which is essential to guaranteeing high-quality software development. While code coverage is the most common approach to assess test suite efficacy, it is not without its drawbacks. Mutation testing is therefore suggested as a solution to deal with these drawbacks. Additionally, mutation testing is acknowledged as a technique for controlling the creation of new test cases and assessing the efficiency of test suites. The suggested approach entails the self-learning of mutations from faults in actual software. First, the method extracts fixes for bugs at the method level, codes them based on mutation types, and applies code abstraction. After that, this method creates mutational models using a deep learning method based on neural machine translation. The experimental assessment results show that, in certain circumstances, the models are able to anticipate mutations that resemble cured errors. With optimal accuracy, the models duplicate the original problem, effectively return the hardcode to its original version, and generate multiple extra error codes.