This is documentation for Mathematica 4, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)

 Documentation /  Mathematica /  Das Mathematica Buch /  Eine praktische Einführung in Mathematica /  Spezielles Thema: Die Interna von Mathematica /

Das Software-Engineering von MathematicaInhalt

1.12.5 Test und Verifikation

Jede Mathematica-Version wurde einer großen Anzahl Tests unterzogen, bevor sie herausgebracht wurde. Der weitaus größte Teil dieser Tests wurde durch ein automatisiertes System vorgenommen, das in Mathematica geschrieben wurde.

Das automatisierte System füttert Mathematica mit Millionen von Eingaben und kontrolliert, ob die dann erhaltenen Ausgaben korrekt sind. Oft steckt einige Raffinesse in diesen Kontrollen. Man muß das unterschiedliche Verhalten von randomisierten Algorithmen oder solche Probleme, wie zum Beispiel die Unterschiede bei maschinengenauer Arithmetik auf verschiedenen Computern, berücksichtigen können.

Die Test-Eingaben, die von dem automatisierten System verwendet wurden, wurden auf unterschiedliche Weise erhalten:

FilledSmallSquare Für jede Mathematica-Funktion werden spezifische Eingaben erstellt, mit denen sowohl allgemeine als auch extreme Fälle durchexerziert werden können.

FilledSmallSquare Eingaben werden entwickelt, mit denen alle Teile des internen Codes durchlaufen werden können.

FilledSmallSquare Alle Beispiele aus diesem Buch und aus anderen Büchern über Mathematica werden verwendet.

FilledSmallSquare Für Test-Eingaben werden auf optischem Wege numerische Standard-Tabellen eingescannt.

FilledSmallSquare Formeln aus allen mathematischen Standardtabellen werden eingegeben.

FilledSmallSquare Übungen aus Fachbüchern werden eingegeben.

FilledSmallSquare Für Funktionspaare, wie Integrate und D bzw. Factor und Expand, werden Zufallsausdrücke erzeugt und getestet.

Während die Tests laufen, kontrolliert das automatisierte Testsystem nicht nur die Ergebnisse, sondern auch Nebeneffekte, wie Meldungen, Speicherbelegung und Geschwindigkeit.

Es gibt auch noch eine speziell ausgerüstete Mathematica-Version, die dafür eingerichtet ist, interne Konsistenz-Tests durchzuführen. Diese Mathematica-Version läuft mit einem Bruchteil der Geschwindigkeit, mit der das normale Mathematica läuft, kontrolliert aber bei jedem Schritt die interne Speicherkonsistenz, die Interruptfähigkeit usw.

Die speziell ausgerüstete Mathematica-Version registriert auch, auf welche Teile des Quellcodes zugegriffen wird. So läßt sich kontrollieren, ob alle verschiedenen internen Mathematica-Funktionen durch die ablaufenden Tests auch durchexerziert werden.

Alle Mathematica-Standardtests laufen routinemäßig mit jeder Mathematica-Version auf jedem der verschiedenen Computersysteme. Abhängig von der Geschwindigkeit des Computersystems, benötigen die Tests einige Tage bis zu einigen Wochen Computerrechenzeit.

Außerdem wird eine riesige Anzahl von Tests, die auf Zufallseingaben basieren, für eine Zeit durchgeführt, die viele Jahre Computerrechenzeit auf verschiedenen Computersystemen entspricht.

Trotz aller Tests ist es jedoch bei einem so komplexen System wie Mathematica unvermeidlich, daß Fehler übrigbleiben.

Die Standards für die Korrektheit sind für Mathematica sicherlich viel höher als für übliche mathematische Beweise. Aber genauso wie Beweise unvermeidlicherweise Fehler enthalten, die viele Jahre unentdeckt bleiben, so wird auch ein komplexes Softwaresystem wie Mathematica Fehler enthalten, die sogar dann noch unentdeckt bleiben, nachdem Millionen von Personen dieses System angewendet haben.

Nichtsdestoweniger ist die Wahrscheinlichkeit, daß Sie nach all den darauf angewendeten Tests im Verlauf Ihrer Arbeit tatsächlich einen Fehler in Mathematica entdecken, extrem gering.

Zweifellos kann es vorkommen, daß Mathematica Dinge tut, die Sie nicht erwarten. Aber Sie sollten wissen, daß es wesentlich wahrscheinlicher ist, daß etwas in Ihrer Mathematica-Eingabe falsch ist, oder, daß Sie nicht alles verstanden haben, was vor sich geht, als daß mit dem internen Code des Mathematica-Systems etwas nicht stimmt.

Wenn Sie glauben, daß Sie in Mathematica einen echten Fehler gefunden haben, dann sollten Sie mit Wolfram Research unter einer der am Anfang dieses Buches angegebenen Adressen Kontakt aufnehmen, so daß der Fehler für zukünftige Versionen korrigiert werden kann.

Das Software-Engineering von MathematicaInhalt