Publication | Closed Access
PEQCHECK: Localized and Context-aware Checking of Functional Equivalence
17
Citations
31
References
2021
Year
Unknown Venue
Software MaintenanceProgram CheckingContext-aware CheckingEngineeringVerificationComputer-aided VerificationSoftware EngineeringSoftware AnalysisFormal VerificationEquivalence CheckingCode SegmentPeqcheck TechniqueRuntime VerificationComputer ScienceStatic Program AnalysisSoftware DesignCode RefactoringSoftware VerificationLocalized CheckingAutomated ReasoningProgram AnalysisSoftware TestingFormal MethodsFunctional Verification
A refactoring must preserve the program's functionality. However, not all refactorings are correct. Thus, preservation of the functionality must be checked. Since programs are rarely formally specified, we use the original program as functional specification and check whether the original and refactored program are functionally equivalent. More concretely, our PEQCHECK technique follows a common approach and reduces equivalence checking to program verification. To increase efficiency, PEQCHECK generates several verification tasks, namely one per refactored code segment and not one per function as typically done by prior work. Additionally, PEQCHECK takes the context of the code segments into account. For example, only modified, live variables need to be equivalent and read-only variables can be shared between original and refactored code segments. We proved soundness of our PEQCHECK technique and implemented it in a prototype tool. Our evaluation shows that the localized checking of PEQCHECK can indeed be beneficial.
| Year | Citations | |
|---|---|---|
Page 1
Page 1