If you are using Oracle as your database and want to upgrade your Java app to Java 5, think again! We just uncovered an Oracle JDBC driver bug. Here is how to reproduce it:
J. Andrews, R. Fu, and V. Liu. ASE '02: Proceedings of the 17th IEEE international conference on Automated software engineering, page 275. Washington, DC, USA, IEEE Computer Society, (2002)ST: Nachtrag zum Paper "Testing using Log File Analysis: Tools, Methods, and Issues". Die dort vorgestellte Technik wird dahingehend erweitert, dass der Grad der Abdeckung der Transitionen des Orakels durch die Testfaelle gemessen werden kann. Außerdem können Testfaelle auf Basis des Orakels abgeleitet werden (Ist dass sinnvoll?) und das Testorakel kann automatisch validiert werden..
E. Chong, S. Das, G. Eadon, and J. Srinivasan. VLDB '05: Proceedings of the 31st international conference on Very large data bases, page 1216--1227. VLDB Endowment, (2005)
S. Edwards. Software Testing, Verification and Reliability, 10 (4):
249--262(January 2001)MR: Aus dem Text: Testing 'to contract' is at the heart of specification based testing. Es wird gezeigt wie ein Anzatz von Zweben1992 (der leider nicht auffindbar ist) sich praktisch umsetzen lässt. Dabei spielen die Contracts für die Generierung der Test(ein/aus)gabedaten grundlegende Rolle. Die getesteten Komponenten werden als Flowgraphs dargestellt, womit sie große Analogie zu Aktivitätsdiagrammen besitzen. Obwohl noch Probleme bei der Auswahl der Testdaten (infeasable paths) existieren, wurde gezeigt, dass dieser Ansatz großen Potential besitzt. Für das Experiment wurde Fehlerinjektionsmethoden angewendet (Mutation)..
T. O'Malley, D. Richardson, and L. Dillon. (1996)ST: Aehnliche vorgehensweise wie in "Testing using Log File Analysis: Tools, Methods, and Issues". Die Zustandsautomaten (Orakel) werden jedoch nicht manuell erstellt, sondern aus einer graphischen Repraesentation der LTL automatisch generiert. Die weitere Vorgehensweise ist gleich: Es werden waehrend der Ausfuehrung des Testfalls aufgezeichnete Programm-Traces mit dem Automat verglichen und auf Gueltigkeit überprueft..
B. Thome, D. Gawlick, and M. Pratt. SIGMOD '05: Proceedings of the 2005 ACM SIGMOD international conference on Management of data, page 863--867. New York, NY, USA, ACM, (2005)
L. Briand, Y. Labiche, and H. Sun. ISSTA '02: Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis, page 70--80. New York, NY, USA, ACM, (2002)ST: In diesem Paper wird untersucht, ob extern erstellte Testorakel durch Zusicherungen im Code ersetzt werden können. (vgl. Binder: Built-in Test Oracle, Seite 935)Diese Zusicherungen werden in OCL definiert (Pre-Postconditions, Invarianten) und mit Hilfe eines Tools in Java Code eingebettet. Diese eingebetteten Zusicherungen dienen als Testorakel. Ein Experiment zeigte, dass Durch diese Technik erfolgreich Testorakel in den Code eingebettet werden können und zum andreren die Diagnostizierbarkeit des Codes steigt. Wird eine Zusicherung verletzt, tritt eine Exception haeufig in der Nähe eines Code-Errors auf, so kann der Fehler leichter gefunden werden als bei einem herkömmlichen Orakel..
G. Xu, Z. Yang, H. Huang, Q. Chen, L. Chen, and F. Xu. apsec, (2004)ST: Interessant an diesem Paper ist die die Idee Testorakel mit Aspektorientierter Programmierung mit der Applikation zu verknüpfen. Wie im Paper "Investigating the use of analysis contracts to support fault isolation in object oriented code" untersucht, ist es sinnvoll Testorakel in Form von Zusicherungen in den Code zu schreiben. Diese Zusicherungen werden in Aspekte ausgelagert (separation of concerns). Nachteil: Es muss mit einem Programmiersprachenspezifischen AO-System gearbeitet werden..