Regression Verification - A Practical Way to Verify Programs

  • Authors:
  • Ofer Strichman;Benny Godlin

  • Affiliations:
  • Technion, Haifa, Israel;Technion, Haifa, Israel

  • Venue:
  • Verified Software: Theories, Tools, Experiments
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

When considering the program verification challenge [8] one should not forget a lesson learned in the testing community: when it comes to industrial size programs, it is not realistic to expect programmers to formally specify their program beyond simple assertions. It is well known that large parts of real code cannot be described naturally with high level invariants or temporal properties, and further that it is often the case that the process of describing what a code segment should do is as difficult and at least as complicated as the coding itself. Indeed, high-level temporal property-based testing, although by now supported by commercial tools such as Temporal-Rover[4], is in very limited use. The industry typically attempts to circumvent this problem with Regression Testing, which is probably the most popular testing method for general computer programs. It is based on the idea of reasoning by induction: check an initial version of the software when it is still very simple, and then check that a newer version of the software produces the same output as the earlier one, given the same inputs. If this process results with a counterexample, the user is asked to check whether it is an error or a legitimate change. In the latter case the testing database is updated with the new 'correct' output value.Regression Testing does not require a formal specification of the investigated system nor a deep understanding of the code, which makes it highly suitable for accompanying the development process, especially if it involves more than one programmer.We propose to learn from this experience and develop techniques for Regression Verification.The underlying proof engine is still a certifying compiler as envisioned by the grand challenge, so this proposal should be thought of as another application of this technology that makes the verification picture more complete.