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 .
Similar content being viewed by others
References
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
Alur R, Henzinger T (1989) A really temporal logic. In: Proc. 30th Annual Symp. Foundations of Computer Science, pp 164–169
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
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
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
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
Felder M, Morzenti A (1994) Validating real-time systems by history-checking TRIO specifications. ACM Trans Software Eng Method 3(4):308–339
Fisher M (1997) A normal form for temporal logics and its applications in theorem-proving and execution. J Logic Comput 7(4):429–456
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
Håkansson J (2000) Automated generation of test scripts from temporal logic specifications. Master’s thesis, Uppsala University
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
Holzmann GJ (1997) The model checker SPIN. IEEE Trans Softw Eng SE-23(5):279–295
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
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
Lamport L (1977) Proving the correctness of multiprocess programs. IEEE Trans Softw Eng 3(2):125–143
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
Manna Z, Pnueli A (1992) The temporal logic of reactive and concurrent systems. Springer, Berlin Heidelberg New York
Manna Z, Pnueli A (1995) Temporal verification of reactive systems: safety. Springer, Berlin Heidelberg New York
McMillan KL (1993) Symbolic model checking. Kluwer Academic, Boston, Mass., USA
Nielsen J (1998) Real-time specification using the TRIO language. Master’s thesis, Royal Institute of Technology Stockholm
O’Malley TO, Richardson DJ, Dillon LK (1996) Efficient specification-based test oracles for critical systems. In: Proc. California Software Symposium, April
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
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
Peters DK, Parnas DL (1998) Using test oracles generated from program documentation. IEEE Trans Softw Eng 24(3):161–173
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
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
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
Author information
Authors and Affiliations
Corresponding authors
Rights 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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-003-0107-8