Die unglaubliche Maschine oder mein bester Test

    Guten Tag. Ich erinnere mich, dass sie in einer Episode über die Studenten eine Stereoanlage in der Reichweite ihrer eigenen Hände von einem Computer aus betrieben und ein Signal über das Internet über den gesamten Planeten übertragen haben. Das vernünftige Mädchen, das sie überraschen wollten, war nicht beeindruckt, weil sie glaubte, dass die übliche Fernbedienung billiger und einfacher ist.

    Bild

    Trotzdem gibt es gute Nachrichten: Eine unglaubliche Maschine kann immer noch nützlich sein. Zum Beispiel zum Testen von Softwaresystemen.

    Während der Arbeit an dem großen OpenPapyrus ERP-System , das unter anderem Barcode-Bilder mit unterschiedlichen Standards und Eigenschaften anzeigen soll, haben wir die beliebte zint- Bibliothek für das Barcode-Rendering angeschlossen. Die Bibliothek integriert und verdient. Sie müssen das Ergebnis jedoch noch testen.

    Die am besten geeignete Option für den Test wäre das Testen mit der inversen Funktion:

    Bild

    zufällige Daten werden eingegeben, nach Funktion konvertiert $ f $, dann wird die Funktion auf das Ergebnis angewendet $ f ^ {- 1} $umgekehrt zu $ f $und vergleicht die Ausgabe mit den Originaldaten. Zwei Funktionen werden sofort mit einem durchschlagenden Nachweis der korrekten Funktionsweise getestet (natürlich keine Algorithmen, sondern Implementierungen).

    Die Umkehrung der Barcode-Wiedergabe ist offensichtlich die Barcode-Bilderkennung. Gesagt, getan. Sie nahmen eine andere Open-Source- Zbar- Bibliothek . Integriert - verdient.

    Bild

    Jetzt hat das Testschema ganz klar Gestalt angenommen: Die Eingabe ist eine Textdarstellung des Barcodes und seines Standards (ean-13, ean-8, upc-a, Code-39, qr usw.). Diese Darstellung wird in ein Bild umgewandelt, das sofort erkannt wird, und als Ergebnis erhalten wir wieder eine Textdarstellung und einen Standard.

    Daher haben wir folgende Komponenten getestet:

    • Zint-Bibliothek
    • Bibliothek von der libpng (die Ableitung und Erkennungscode im PNG - Format)
    • Zlib- Bibliothek (wird von libpng und vielen anderen Subsystemen verwendet)
    • Libjpeg- Bibliothek (bei der Ausgabe und Erkennung von JPEG-Code)
    • Zbar Bibliothek
    • Eigene Infrastruktur, die all dies integriert und verbindet

    Wir haben noch einen Schritt vor uns: zint kann einen Barcode im Vektor-SVG-Format ausgeben, zbar versteht dieses Format jedoch nicht mit eigenen Mitteln, verfügt jedoch über eine eigene Infrastruktur zum Lesen und Rendern von SVG-Bildern. Fügen Sie unserer Schaltung einen weiteren Knoten hinzu und nehmen Sie ihn in den Test auf. Alles arbeitet.

    Bild

    Jetzt können wir der Liste der getesteten Komponenten hinzufügen:

    • Modul zum Lesen und Konvertieren von SVG-Dateien in das interne Vektorformat
    • Vektor-Bildwiedergabemodul

    Kurze Gesamtsumme


    Der beschriebene Test zeichnet sich dadurch aus, dass er eine erhebliche Anzahl von Modulen für verschiedene Zwecke verwendet, die unabhängig voneinander implementiert werden. Eine weitere wertvolle Eigenschaft ist die Konvertierung von Daten zwischen qualitativ unterschiedlichen Formen (Text - Vektorbild - Rasterbild - Text).

    Und eine Fliege in der Salbe: Ein solcher Test mit hervorragender Beweiskraft ist nicht ausreichend. Er überprüft die Funktionalität der Komponenten in einem sehr engen Bereich von Definitionsbereichen für jeden von ihnen. Mit der Vollständigkeit des Testens mit der unglaublichen Maschinenmethode zu rechnen (interessanterweise hat jemand diesen Begriff schon einmal in diesem Zusammenhang verwendet?), Ist leider unmöglich. Detaillierte Tests einzelner Funktionen bricht er nicht ab.

    Vielen Dank für Ihre Aufmerksamkeit.

    Jetzt auch beliebt: