Skip to main content
Log in

Generating online test oracles from temporal logic specifications

  • Special section: An experience in the establishment of collaboration between academia and industry
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

Abstract

This paper is concerned with the problem of checking, by means of testing, that a software component satisfies a specification of temporal safety properties. Checking that an actual observed behavior conforms to the specification is performed by a test oracle, which can be either a human tester or a software module. We present a technique for automatically generating test oracles from specifications of temporal safety properties in a metric temporal logic. The logic can express quantitative timing properties, and can also express properties of data values by means of a quantification construct. The generated oracle works online in the sense that checking is performed simultaneously with observation. The technique has been implemented and used in case studies at Volvo Technical Development Corporation .

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. Abarbanel Y, Beer I, Gluhovsky L, Keidar S, Wolfsthal Y (2000) FoCS: Automatic generation of simulation checkers from formal specifications. In: Emerson, Sistla (eds) Proc. 12th Int. Conf. on Computer Aided Verification, Lecture Notes in Computer Science, vol. 1855. Springer, Berlin Heidelberg New York, pp 538–542

  2. Alur R, Henzinger T (1989) A really temporal logic. In: Proc. 30th Annual Symp. Foundations of Computer Science, pp 164–169

  3. Daniele M, Giunchiglia F, Vardi MY (1999) Improved automata generation for linear temporal logic. In: Proc. 11th Int. Conf. on Computer Aided Verification, Lecture Notes in Computer Science vol. 1633. Springer, Berlin Heidelberg New York, pp 249–260

  4. Drusinsky D (2000) The temporal rover and the ATG rover. In: Havelund K (ed) SPIN Model Checking and Software Verification, Proc. 7th SPIN Workshop, Lecture Notes in Computer Science vol. 1885. Springer, Berlin Heidelberg New York, Stanford, Calif., USA, pp 323–330

  5. Dwyer MB, Avrunin GS, Corbett JC (1999) Patterns in property specifications for finite-state verification. In: Proc. 21st Int. Conf. on Software Engineering. IEEE Computer Society, New York, pp 411–420

  6. Etessami K, Holzmann G (2000) Optimizing Büchi automata. In: Palamidessi C (ed) Proc. CONCUR 2000 11th Int. Conf. on Concurrency Theory, Lecture Notes in Computer Science, vol. 1877. Springer, Berlin Heidelberg New York, pp 153–167

  7. Felder M, Morzenti A (1994) Validating real-time systems by history-checking TRIO specifications. ACM Trans Software Eng Method 3(4):308–339

  8. Fisher M (1997) A normal form for temporal logics and its applications in theorem-proving and execution. J Logic Comput 7(4):429–456

  9. Gastin P, Oddoux D (2001) Fast LTL to Büchi automata translation. In: Berry, Comon, Finkel (eds) Proc. 13th Int. Conf. on Computer Aided Verification Lecture Notes in Computer Science, vol. 2102. Springer, Berlin Heidelberg New York, pp 53–65

  10. Håkansson J (2000) Automated generation of test scripts from temporal logic specifications. Master’s thesis, Uppsala University

  11. Havelund K, Rosu G (2002) Synthesizing monitors for safety properties. In: Katoen JP, Stevens P (eds) Proc. TACAS ’02 8th Int. Conf. on Tools and Algorithms for the Construction and Analysis of Systems, Lecture Notes in Computer Science vol. 2280. Springer, Berlin Heidelberg New York, pp 324–356

  12. Holzmann GJ (1997) The model checker SPIN. IEEE Trans Softw Eng SE-23(5):279–295

  13. Kesten Y, Manna Z, McGuire H, Pnueli A (1993) A decision algorithm for full propositional temporal logic. In: Courcoubetis (ed) Proc. 5th Int. Conf. on Computer Aided Verification, Lecture Notes in Computer Science vol. 697. Springer, Berlin Heidelberg New York, pp 97–109

  14. Kesten Y, Pnueli A, Raviv L (1998) Algorithmic verification of linear temporal logic specifications. In: Proc. ICALP ’98 25th International Colloquium on Automata Languages and Programming, Lecture Notes in Computer Science vol. 1443. Springer, Berlin Heidelberg New York, pp 1–16

  15. Lamport L (1977) Proving the correctness of multiprocess programs. IEEE Trans Softw Eng 3(2):125–143

  16. Mandrioli D, Morasca S, Morzenti A (1995) Generating test cases for real-time systems from logic specifications. ACM Trans Comput Syst 13(4):365–398

  17. Manna Z, Pnueli A (1992) The temporal logic of reactive and concurrent systems. Springer, Berlin Heidelberg New York

  18. Manna Z, Pnueli A (1995) Temporal verification of reactive systems: safety. Springer, Berlin Heidelberg New York

  19. McMillan KL (1993) Symbolic model checking. Kluwer Academic, Boston, Mass., USA

  20. Nielsen J (1998) Real-time specification using the TRIO language. Master’s thesis, Royal Institute of Technology Stockholm

  21. O’Malley TO, Richardson DJ, Dillon LK (1996) Efficient specification-based test oracles for critical systems. In: Proc. California Software Symposium, April

  22. Ouabdesselam F, Parissis I (1994) Testing synchronous critical software. In: Proc. 5th Int. Symp. on Software Reliability Engineering, Monterey, Calif., USA, November, pp 239–248

  23. Parissis I, Ouabdesselam F (1996) Specification-based testing of synchronous software. In: Proc. 4th ACM SIGSOFT Symp. on Foundations of Software Engineering. ACM, New York, pp 127–134

  24. Peters DK, Parnas DL (1998) Using test oracles generated from program documentation. IEEE Trans Softw Eng 24(3):161–173

  25. Raymond P, Nicollin X, Halbwachs N, Weber D (1998) Automatic testing of reactive systems. In: Proc. 19th IEEE Real-Time Systems Symposium. IEEE Computer Society, New York, pp 200–209

  26. Somenzi F, Bloem R (2000) Efficient Büchi automata from LTL formulae. In: Proc. 12th Int. Conf. on Computer Aided Verification, Lecture Notes in Computer Science, vol 1855. Springer, Berlin Heidelberg New York, pp 247–263

  27. Vardi M.Y, Wolper P (1986) An automata-theoretic approach to automatic program verification. In: Proc. LICS ’86 1st IEEE Int. Symp. on Logic in Computer Science, June, pp 332–344

Download references

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to John Håkansson , Bengt Jonsson or Ola Lundqvist .

Rights and permissions

Reprints and permissions

About this article

Cite this article

Håkansson , J., Jonsson , B. & Lundqvist , O. Generating online test oracles from temporal logic specifications. STTT 4, 456–471 (2003). https://doi.org/10.1007/s10009-003-0107-8

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-003-0107-8

Keywords

Navigation