Experiences with the design of a run-time check

  • Authors:
  • Meine J. P. van der Meulen;Miguel A. Revilla

  • Affiliations:
  • Centre for Software Reliability, City University, London, UK;University of Valladolid, Valladolid, Spain

  • Venue:
  • SAFECOMP'06 Proceedings of the 25th international conference on Computer Safety, Reliability, and Security
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Run-time checks are often assumed to be a cost-effective way of improving the dependability of software components, by checking required properties of their outputs and flagging an output as incorrect if it fails the check. Run-time checks' main point of attractiveness is that they are supposed to be easy to implement. Also, they are implicitly assumed to be effective in detecting incorrect outputs. This paper reports the results of an experiment designed to challenge these assumptions about run-time checks. The experiment uses a subset of 196 of 867 programs (primaries) solving a problem called “Make Palindrome”. This is an existing problem on the “On-Line Judge” website of the university of Valladolid. We formulated eight run-time checks, and posted this problem on the same web-site. This resulted in 335 programs (checkers) implementing the run-time checks, 115 of which are used for the experiment. In this experiment: (1) the effectiveness of the population of possibly faulty checkers is very close to the effectiveness of a correct checker; (2) the reliability improvement provided by the run-time checks is relatively small, between a factor of one and three; (3) The reliability improvement gained by using multiple-version redundancy is much higher. Given the fact that this experiment only considers one primary/Run-Time Check combination, it is not yet possible to generalise the results.