Loading...

Test based Software Repair Recommendation

Rasekhi, Mahnaz | 2022

177 Viewed
  1. Type of Document: M.Sc. Thesis
  2. Language: Farsi
  3. Document No: 55552 (19)
  4. University: Sharif University of Technology
  5. Department: Computer Engineering
  6. Advisor(s): Mirian Hosseinabadi, Hassan
  7. Abstract:
  8. Debugging programs is a time-consuming and error-prone activity. So far, much research has tried to repair the programs automatically. Many of them try to change the location of the fault for a faulty program that fails at least one of its test cases so that all cases in the test suite pass. However, in real projects, the test suite is usually not enough, and the methods that aim to pass the test suite, often lead to the production of incorrect repairs, which is known as overfitting or weak test suite. In this regard, attention to methods based on program specification and the use of static code analysis have shown promising results. In this thesis, a method is presented that recommends repairs that are more likely to be correct using program behavior modeling and its post-condition specification. Accordingly, a repair candidate is considered correct if, by applying it to the program's behavior model, no test case is found that violates its post-condition. The main attitude of the proposed method is that instead of finding the correctness of the repair candidate based on the existing test suite, using the program behavior model and the post-condition to look for the test case that if the repair candidate was incorrect, the program would not produce the expected output test case with that test case. If the candidate is a correct fix, confirm that the test case is not found so that the program does not produce the correct output. The proposed method uses Alloy language to model the behavior of the program and its analyzer to find the test case that violates the post-condition specification. It also uses techniques based on code coverage for fault localization and mutation operators to generate candidates at repairable locations. This method was evaluated in three ways. First, it was proved that the proposed method is sound and complete. Then the results of its evaluation were analyzed on several small programs and finally compared with the previous methods. Our preliminary evaluations show that the proposed semi-automated method is effective and can repair new kinds of faults and has the potential to be developed for fault location and repair.
  9. Keywords:
  10. Control Flow Graph ; Mutation Operator ; Alloy Language ; Program Behavior Modeling ; Specification-Based Model Validation ; Automated Program Repair

 Digital Object List

 Bookmark

No TOC