DE102012223587A1 - Verfahren zum Testen einer Applikation - Google Patents

Verfahren zum Testen einer Applikation Download PDF

Info

Publication number
DE102012223587A1
DE102012223587A1 DE201210223587 DE102012223587A DE102012223587A1 DE 102012223587 A1 DE102012223587 A1 DE 102012223587A1 DE 201210223587 DE201210223587 DE 201210223587 DE 102012223587 A DE102012223587 A DE 102012223587A DE 102012223587 A1 DE102012223587 A1 DE 102012223587A1
Authority
DE
Germany
Prior art keywords
terminal
image
application
information
segments
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE201210223587
Other languages
English (en)
Other versions
DE102012223587B4 (de
Inventor
Erik Nijkamp
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sauce Labs Europe GmbH
Original Assignee
TestObject GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TestObject GmbH filed Critical TestObject GmbH
Priority to DE102012223587.6A priority Critical patent/DE102012223587B4/de
Publication of DE102012223587A1 publication Critical patent/DE102012223587A1/de
Application granted granted Critical
Publication of DE102012223587B4 publication Critical patent/DE102012223587B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Testen einer Applikation, wobei ein erstes Endgerät und mindestens ein weiteres Endgerät verwendet werden, wobei jedes der Endgeräte eine Bedienoberfläche zur Bedienung des Endgerätes aufweist. Das Verfahren umfasst einen Schritt, in dem eine Vielzahl von Schritten der Applikation auf dem ersten Endgerät ausgeführt wird, wobei jeder Schritt eine Benutzereingabe und eine Reaktion der Bedienoberfläche des ersten Endgerätes auf die Benutzereingabe umfasst, und wobei die Schritte als Testfall aufgezeichnet werden. Das Verfahren umfasst einen Schritt, in dem der Testfall auf dem mindestens einen weiteren Endgerät abgespielt wird. Das Verfahren sieht vor, dass für jede Benutzereingabe ein erstes Bild der Bedienoberfläche vor der Benutzereingabe und ein zweites Bild der Bedienoberfläche nach der Benutzereingabe erzeugt und gespeichert werden. Es ist vorgesehen, dass für das erste Endgerät für jeden Schritt der Applikation eine Differenz zwischen einer ersten Information, die von mindestens einem Teil des ersten Bildes abgeleitet wird, und einer zweiten Information, die von mindestens einem Teil des zweiten Bildes abgeleitet wird, berechnet wird, dass für das zweite Endgerät für jeden Schritt der Applikation eine Differenz zwischen einer ersten Information, die von mindestens einem Teil des ersten Bildes abgeleitet wird, und einer zweiten Information, die von mindestens einem Teil des zweiten Bildes abgeleitet wird, berechnet wird, und dass die Differenzen zwischen der ersten Information und der zweiten Information des mindestens einen weiteren Endgerätes mit den entsprechenden Differenzen zwischen der ersten Information und der zweiten Information des ersten Endgerätes verglichen werden, um festzustellen, ob jeder Schritt der Applikation auf dem mindestens einen weiteren Endgerät korrekt ausgeführt worden ist.

Description

  • Die Erfindung betrifft ein Verfahren zum Testen einer Applikation nach dem Oberbegriff des Anspruchs 1, eine Vorrichtung zum Testen der Applikation nach dem Oberbegriff des Anspruchs 22 und ein Computerprogrammprodukt mit einem Softwarecode zur Durchführung der Schritte des erfindungsgemäßen Verfahrens.
  • Wird eine neue Applikation entwickelt oder eine bereits existierende Applikation weiterentwickelt, ist es zweckmäßig zu prüfen, ob diese Applikation auf einem Endgerät korrekt ausgeführt wird. Da es eine Vielzahl an Endgeräten gibt, die sich mehr oder weniger in ihren Eigenschaften voneinander unterscheiden, ist es erforderlich, die Applikation auf möglichst vielen verschiedenen Endgeräten zu testen. Da ein an all diesen Endgeräten manuell auszuführender Test sehr zeit- und kostenintensiv ist, ist es sinnvoll, den Test (zum Teil) automatisiert auszuführen.
  • Aus dem Stand der Technik sind allgemein Verfahren zum automatisierten Testen von Softwareprodukten auf einer Vielzahl von Endgeräten bekannt. Bekanntermaßen umfassen diese Endgeräte einen Bildschirm, über den einem Benutzer Informationen angezeigt werden. Bei den bekannten Verfahren wird manuell auf einem ersten Endgerät eine Vielzahl von Schritten des zu testenden Softwareprodukts ausgeführt. Auf den weiteren Endgeräten wird dann die gleiche Vielzahl von Schritten in der gleichen Reihenfolge wie auf dem ersten Endgerät ausgeführt, wobei auf den weiteren Endgeräten jedoch die Schritte automatisiert ausgeführt werden. Bei jedem Schritt wird ein Bild des auf dem Bildschirm angezeigten Inhalts erzeugt. Anschließend werden die Bilder, die für die weiteren Endgeräte aufgezeichnet wurden, mit den entsprechenden Bildern, die für das erste Endgerät aufgezeichnet wurden, verglichen, um festzustellen, ob die einzelnen Schritte des Softwareproduktes auf den weiteren Endgeräten korrekt ausgeführt worden sind.
  • Nachteilig bei diesen aus dem Stand der Technik bekannten Verfahren ist, dass Bilder miteinander verglichen werden. Somit können kleine Änderungen in den Bildern, die jedoch für das Ausführen des Softwareproduktes als solches unerheblich sind, dazu führen, dass ein Schritt als nicht korrekt ausgeführt erkannt wird, obwohl er korrekt ausgeführt worden ist. Diese Verfahren zum Testen des Softwareprodukts können umständlich sein und fehlerbehaftete Ergebnisse liefern.
  • Der Erfindung liegt das Problem zugrunde, ein Verfahren und eine Vorrichtung zum Testen von Applikationen auf einer Vielzahl von Endgeräten anzugeben, das zuverlässige Ergebnisse liefert.
  • Dieses Problem wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 und eine Vorrichtung mit den Merkmalen des Anspruchs 22 gelöst.
  • Zur Durchführung eines Verfahrens der vorstehend genannten Art, welches zum Testen von Applikationen auf Endgeräten dient, werden ein erstes Endgerät und mindestens ein weiteres Endgerät verwendet. Jedes der Endgeräte weist eine Bedienoberfläche zur Bedienung des Endgerätes auf. Bei diesem Verfahren wird zunächst eine Vielzahl von Schritten der Applikation auf dem ersten Endgerät ausgeführt, wobei jeder Schritt der Applikation eine Benutzereingabe und eine Reaktion der Bedienoberfläche des ersten Endgerätes auf die Benutzereingabe umfasst. Auf dem ersten Endgerät können die Schritte beispielsweise von einem Benutzer ausgeführt werden. Die Schritte werden dabei als Testfall aufgezeichnet. Anschließend wird der Testfall auf dem mindestens einen weiteren Endgerät abgespielt. Unter Abspielen des Testfalls ist zu verstehen, dass die Schritte, die als Testfall aufgezeichnet wurden, automatisiert auf den weiteren Endgeräten ausgeführt werden.
  • Erfindungsgemäß wird sowohl beim Aufzeichnen des Testfalls auf dem ersten Endgerät als auch beim Abspielen des Testfalls auf dem mindestens einen weiteren Endgerät im Zusammenhang mit jeder Benutzereingabe ein erstes Bild der Bedienoberfläche vor der Benutzereingabe und ein zweites Bild der Bedienoberfläche nach der Benutzereingabe erzeugt und gespeichert. Für das erste Endgerät wird für jeden Schritt der Applikation eine Differenz zwischen einer ersten Information, die von mindestens einem Teil des ersten Bildes abgeleitet wird, und einer zweiten Information, die von mindestens einem Teil des zweiten Bildes abgeleitet wird, berechnet. Ebenso wird für das zweite Endgerät für jeden Schritt der Applikation eine Differenz zwischen einer ersten Information, die von mindestens einem Teil des ersten Bildes abgeleitet wird, und einer zweiten Information, die von mindestens einem Teil des zweiten Bildes abgeleitet wird, berechnet. Die Differenzen zwischen der ersten Information und der zweiten Information des mindestens einen weiteren Endgerätes werden dann mit den entsprechenden Differenzen zwischen der ersten Information und der zweiten Information des ersten Endgerätes verglichen, um festzustellen, ob jeder Schritt der Applikation auf dem mindestens einen weiteren Endgerät korrekt ausgeführt worden ist.
  • Das Verfahren beruht somit auf einem Vergleich von Informationen, die aus den Bildinhalten abgeleitet werden. Das Verfahren ist damit sehr robust, da kleine Änderungen in den Bildern der einzelnen Endgeräte, wie beispielsweise Farbe, exakte Form oder Größe einzelner Bildbestandteile bei der Ableitung der Informationen aus den Bildern gezielt ausgeschaltet werden können. Auch ist es von Vorteil, nicht die Informationen der Bildinhalte direkt miteinander zu vergleichen, sondern die Differenzen zwischen den Informationen aus dem ersten Bild (vor einer Benutzereingabe) und dem zweiten Bild (nach einer Benutzereingabe). Sollte beispielsweise eine Benutzereingabe eine Vielzahl solcher Differenzen zwischen dem ersten und dem zweiten Bild hervorrufen, ermöglicht das erfindungsgemäße Verfahren, einen Teil dieser Differenzen auszuwählen, die zur Beurteilung, ob ein Schritt der Applikation korrekt ausgeführt worden ist, herangezogen werden, während ein anderer Teil dieser Differenzen unberücksichtigt bleiben kann.
  • Das Verfahren kann insbesondere derart ausgelegt sein, dass die Information, die von mindestens einem Teil eines Bildes abgeleitet wird, ein abstraktes Modell ist. Dabei umfasst das abstrakte Modell eine Vielzahl von Segmenten, wobei jedes Segment einem Bestandteil des Bildes zugeordnet ist. Demnach kann für mindestens einen Teil jedes ersten Bildes (vor der Benutzereingabe) und für mindestens einen Teil jedes zweiten Bildes (nach der Benutzereingabe) ein abstraktes Modell erzeugt werden. Für jeden Schritt der Applikation kann eine Differenz zwischen den abstrakten Modellen des mindestens einen Teils des ersten Bildes und des zweiten Bildes berechnet werden.
  • Die Differenz zwischen den Modellen des ersten und des zweiten Bildes, die für jeden Schritt der Applikation berechnet werden kann, fasst im Prinzip den Vergleich zwischen den Segmenten, die den Bildbestandteilen des mindestens einen Teils des zweiten Bildes zugeordnet sind, und den Segmenten, die den Bildbestandteilen des mindestens einen Teils des ersten Bildes zugeordnet sind, zusammen.
  • Eine Benutzereingabe kann dazu führen, dass die Segmente, die den Bildbestandteilen des mindestens einen Teils des ersten Bildes zugeordnet sind, aktualisiert und/oder entfernt werden. Außerdem kann die Benutzereingabe nach sich ziehen, dass neue Segmente, die den Bildbestandteilen des mindestens einen Teils des zweiten Bildes, jedoch nicht des mindestens einen Teils des ersten Bildes, zugeordnet sind, addiert werden.
  • Regelmäßig soll ein Schritt der Applikation als korrekt ausgeführt gelten, wenn die Differenz zwischen den abstrakten Modellen des mindestens einen Teils des ersten Bildes und des zweiten Bildes des mindestens einen weiteren Endgerätes und die entsprechende Differenz zwischen den abstrakten Modellen des mindestens einen Teils des ersten Bildes und des zweiten Bildes des ersten Endgerätes innerhalb eines vorbestimmten Toleranzbereichs übereinstimmen. Der Toleranzbereich ist variabel für jeden Schritt der Applikation und kann zudem von einem Benutzer während der Anwendung des Verfahrens zum Testen der Applikation eingestellt werden.
  • Eine Identifikationslogik ist vorgesehen, die für den mindestens einen Teil jedes ersten Bildes und jedes zweiten Bildes Segmente als Bestandteile der abstrakten Modelle identifiziert und den jeweiligen Bildbestandteilen der Bilder zuordnet. Die Identifikationslogik ist derart ausgelegt, dass die Segmente durch Ausführen einer Vielzahl von Algorithmen ermittelt werden. Dabei liefert die Identifikationslogik pro Segment, das Teil des abstrakten Modells ist, eine Vielzahl von Vorschlägen, die jeweils mit einer Wahrscheinlichkeit behaftet sind. Das Verfahren kann dabei derart ausgelegt sein, dass für jeden Bildbestandteil der Vorschlag für ein Segment mit der jeweils höchsten Wahrscheinlichkeit ausgewählt wird und zur Erzeugung des abstrakten Modells herangezogen wird. Vorzugsweise wird der Vorschlag für ein Segment mit der jeweils höchsten Wahrscheinlichkeit zur Erzeugung des abstrakten Modells nur herangezogen, wenn die höchste Wahrscheinlichkeit größer oder gleich einem vorgegebenen Grenzwert ist. Der Grenzwert ist beispielsweise größer oder gleich 50%.
  • Die Wahrscheinlichkeit wird vorzugsweise auf Grundlage einer Vielzahl von Parametern berechnet, um möglichst allen Bildbestandteilen ein korrektes Segment zuzuordnen. In die Berechnung der Wahrscheinlichkeit können Parameter, die mindestens Form des Bildbestandteils, Position des Bildbestandteils, Farbe des Bildbestandteils und Hierarchie des Bildbestandteils in dem Bild berücksichtigen, sowie eine Klassenwahrscheinlichkeit, die weiter untern näher erläutert wird, einfließen.
  • Um pro Segment eine Vielzahl von Vorschlägen liefern zu können, umfasst die Identifikationslogik vorzugsweise mindestens einen primären Identifikationsalgorithmus, eine Vielzahl von sekundären Identifikationsalgorithmen und eine Vielzahl von Klassifikationsalgorithmen.
  • Der mindestens eine primäre Identifikationsalgorithmus tastet das jeweilige Bild bzw. einen Teil dieses Bildes ab und lokalisiert Segmente, die den Bildbestandteilen des Bildes bzw. des Teils dieses Bildes zuzuordnen sind. Der primäre Identifikationsalgorithmus kann demnach lediglich feststellen, ob es ein Segment gibt oder nicht. Um jedes der lokalisierten Segmente näher definieren zu können, tasten zusätzlich die sekundären Identifikationsalgorithmen und die Klassifikationsalgorithmen das Bild bzw. einen Teil dieses Bildes ab.
  • Die sekundären Identifikationsalgorithmen tasten dabei ähnlich zu dem primären Identifikationsalgorithmus das Bild bzw. einen Teil des Bildes ab. Jedoch können die sekundären Identifikationsalgorithmen die Form des Segments besser erkennen als der primäre Identifikationsalgorithmus, da sie in der Regel eine weniger grobe Granularität als der primäre Identifikationsalgorithmus aufweisen. Das heißt, die sekundären Identifikationsalgorithmen tasten das Bild bzw. einen Teil davon mit einer höheren Präzision / Auflösung ab. Auch können die sekundären Identifikationsalgorithmen eventuell vorhandene Segmente erkennen, aus denen ein Segment, das durch den primären Identifikationsalgorithmus lokalisiert wurde, zusammen gesetzt ist.
  • Die Klassifikationsalgorithmen sind vorgesehen, um jedem Segment, das durch die sekundären Identifikationsalgorithmen identifiziert wurde, eine Klasse zuzuordnen.
  • Dabei dient jeder Klassifikationsalgorithmus der Zuordnung der Segmente, die durch die sekundären Identifikationsalgorithmen identifiziert wurden, zu einer anderen Klasse. Die unterschiedlichen Klassen sind insbesondere Text und Bedienelemente. Der Begriff „Bedienelemente“ umfasst dabei beispielsweise Eingabefelder, Knöpfe, Optionsfelder, Auswahltasten, Dropdown-Listenfelder, Tabellen, Kombinationsfelder, Fenster, Hyperlinks und Checkboxen.
  • Dabei kann vorgesehen sein, dass für jedes Segment, das durch die sekundären Identifikationsalgorithmen identifiziert wurde, eine Klassenwahrscheinlichkeit für die Zugehörigkeit dieses Segmentes zu jeder der einzelnen Klassen bestimmt wird.
  • Sowohl die sekundären Identifikationsalgorithmen als auch die Klassifikationsalgorithmen können jeweils eine Reihe von Vorschlägen liefern. Aus jeder Reihe von Vorschlägen werden vorzugsweise die Vorschläge mit der höchsten Wahrscheinlichkeit ausgewählt. Im Ergebnis kann die Identifikationslogik für jeden Bildbestandteil eine Vielzahl von Vorschlägen für ein Segment liefern.
  • Das Verfahren sieht zudem vor, dass die Identifikationslogik kontinuierlich das Zuordnen von Klassen zu Segmenten durch Definition durch einen Benutzer erlernen kann. Dies ist besonders vorteilhaft, wenn eine bisher noch nicht mit dem erfindungsgemäßen Verfahren getestete Applikation getestet wird, die ungewöhnliche Bildschirminhalte aufweist.
  • Gemäß einer Ausführungsform kann vorgesehen sein, den Testfall nach dem Aufzeichnen zunächst auf dem ersten Endgerät abzuspielen, um zu überprüfen, ob der Testfall korrekt aufgezeichnet wurde. Wurde der Testfall durch das erste Endgerät bestätigt, so kann dieser auf dem mindestens einen weiteren Endgerät abgespielt werden.
  • Vorzugsweise wird am Ende des Verfahrens zum Testen einer Applikation dem Benutzer ein Bericht über korrekt und nicht korrekt ausgeführte Schritte der Applikation ausgegeben. Stellt der Benutzer fest, dass für ein Endgerät ein Schritt der Applikation nicht korrekt ausgeführt wurde, kann der Benutzer den jeweiligen Toleranzbereich variieren und den Test für das entsprechende Endgerät noch einmal ablaufen lassen. Alternativ kann der Benutzer die Applikation korrigieren und anschließend den Test für das entsprechende Endgerät noch einmal ablaufen lassen.
  • Die Endgeräte, auf denen die Applikation getestet werden soll, können virtuell oder real bereit gestellt werden. Vorzugsweise sind die Endgeräte virtuelle Endgeräte. Die Endgeräte können mobile oder fest installierte Computersysteme sein. Vorzugsweise sind die Endgeräte mobil. Die Endgeräte können insbesondere Smartphones, Tablet PCs, Computer oder Fernsehgeräte sein.
  • Eine Vorrichtung zum Testen einer Applikation ist in Anspruch 22 angegeben. Insbesondere kann die Vorrichtung eingerichtet und vorgesehen sein, das oben erläuterte Verfahren und seine Ausführungsformen auszuführen.
  • Ein Computerprogrammprodukt ist in Anspruch 24 angegeben. Dieses Computerprogrammprodukt kann insbesondere zur Durchführung des oben erläuterten Verfahrens vorgesehen sein. Vorzugsweise wird das Computerprogrammprodukt auf der oben bezeichneten Vorrichtung ausgeführt.
  • Die Erfindung wird nachfolgend anhand von Ausführungsbeispielen in Verbindung mit den Zeichnungen im Einzelnen beschrieben werden.
  • Es zeigen:
  • 1 eine schematische Darstellung einer Vorrichtung zum Testen einer Applikation gemäß einer Ausführungsform der Erfindung;
  • 2 eine schematische Darstellung von Schritten eines Verfahrens zum Testen einer Applikation;
  • 3A eine schematische Darstellung eines Bildes eines Endgerätes;
  • 3B eine schematische Darstellung von Segmenten, die für das Bild aus 3A durch Anwendung eines primären Identifikationsalgorithmus lokalisiert wurden;
  • 3C, 3D jeweils eine schematische Darstellung von Segmenten, die für das Bild aus 3A durch Anwendung von sekundären Identifikationsalgorithmen identifiziert und durch Anwendung von Klassifikationsalgorithmen je einer Klasse zugeordnet wurden;
  • 4A eine schematische Darstellung eines Bildes eines Endgerätes vor einer Benutzereingabe;
  • 4B eine schematische Darstellung eines Bildes des Endgerätes aus 4A nach der Benutzereingabe;
  • 5A eine schematische Darstellung eines abstrakten Modells, das für das Bild aus 4A durch Anwendung einer Identifikationslogik erzeugt wurde;
  • 5B eine schematische Darstellung eines abstrakten Modells, das für das Bild aus 4B durch Anwendung einer Identifikationslogik erzeugt wurde;
  • 6A eine hierarchische Darstellung des abstrakten Modells aus 5A;
  • 6B eine hierarchische Darstellung des abstrakten Modells aus 5B;
  • 7 eine schematische Darstellung einer Differenz, die zwischen dem abstrakten Modell aus 5B bzw. 6B und dem abstrakten Modell aus 5A bzw. 6A berechnet wurde;
  • 8 eine schematische Darstellung eines Schrittes des Verfahrens zum Testen einer Applikation, wobei die Differenz aus 7 des einen Endgerätes mit einer entsprechenden Differenz eines weiteren Endgerätes verglichen wird.
  • In der 1 ist eine Vorrichtung 2 zum Testen einer Applikation gemäß einer Ausführungsform der Erfindung dargestellt.
  • Die Vorrichtung 2 umfasst eine Recheneinheit 4, die eingerichtet und vorgesehen ist, um ein Verfahren 100 zum Testen einer Applikation gemäß der Erfindung auszuführen. Zu diesem Zweck umfasst die Recheneinheit 4 ein Computerprogrammprodukt 1000, das durch die Recheneinheit 4 ausgeführt wird. Die Recheneinheit 4 umfasst ferner eine Benutzeroberfläche 6, die als Schnittstelle zwischen der Recheneinheit 4 und einem Benutzer (nicht dargestellt) dient. Über die Benutzeroberfläche 6 kann der Benutzer Informationen mit der Recheneinheit 4 austauschen.
  • Die Vorrichtung 2 umfasst ferner ein erstes Endgerät 8 und mindestens ein weiteres Endgerät 10, auf denen die Applikation getestet werden soll. In der 1 ist lediglich ein weiteres Endgerät 10 dargestellt. Jedoch soll dieses lediglich exemplarisch eine Vielzahl weiterer Endgeräte 10 repräsentieren. Die Anzahl der weiteren Endgeräte 10 ist beliebig und kann je nach Anwendung der Vorrichtung 2 variieren. Die Endgeräte 8, 10 werden als virtuelle und/oder reale Endgeräte bereitgestellt. In der Ausführungsform in 1 sind die Endgeräte mobile Telekommunikationsgeräte, insbesondere Smartphones.
  • Jedes Endgerät 8, 10 umfasst eine Bedienoberfläche 12, die dem Benutzer regelmäßig dazu dient, Applikationen auf dem Endgerät 8, 10 anzuwenden. Vorliegend wird die zu testende Applikation nicht direkt durch einen Benutzer unter Verwendung der Bedienoberfläche 12 ausgeführt. Vielmehr führt die Recheneinheit 4 die Applikation auf dem Endgerät 8, 10 aus, so dass die Bedienoberfläche 12 lediglich als Bildschirm dient, dessen Inhalt dem Benutzer als Bild 14 dargestellt wird.
  • In der 1 ist die Recheneinheit 4 über Doppelpfeile mit der Benutzeroberfläche 6 und den Endgeräten 8, 10 verbunden. Die Doppelpfeile stellen dabei den Informationsfluss zwischen den einzelnen Komponenten aus der 1 untereinander bzw. zwischen der Benutzeroberfläche 6 und dem Benutzer dar.
  • Das Verfahren 100 zum Testen einer Applikation, das mit der Vorrichtung 2 aus 1 ausgeführt wird, gliedert sich in folgende in 2 skizzierte Schritte:
    Verfahrensschritt 200: Zunächst wird die zu testende Applikation auf der Recheneinheit 4 bereit gestellt. Der Benutzer wählt dann aus einer Vielzahl von Endgeräten 8, 10 ein erstes Endgerät 8 aus, auf dem eine Vielzahl von Schritten der Applikation durch den Benutzer über die Recheneinheit 4 ausgeführt wird. Dabei werden die Schritte der Applikation, die auf dem ersten Endgerät 8 ausgeführt werden, durch die Recheneinheit 4 als Testfall aufgezeichnet. Unter einem Schritt der Applikation ist eine Benutzereingabe 50 und eine entsprechende Reaktion der Bedienoberfläche 12 auf die Benutzereingabe 50 zu verstehen.
  • Verfahrensschritt 300: Für jede Benutzereingabe 50 auf dem ersten Endgerät 8 wird ein erstes Bild 14a der Bedienoberfläche 12 vor der Benutzereingabe 50 und ein zweites Bild 14b der Bedienoberfläche 12 nach der Benutzereingabe 50 erzeugt und gespeichert (siehe dazu auch die 3A, 4A und 4B).
  • Verfahrensschritt 400: Für jedes der in Schritt 300 erzeugten Bilder 14 wird ein abstraktes Modell 16 erzeugt, das eine Vielzahl von Segmenten A11, B11, B12, C11–C19 umfasst, wobei jedes Segment A11, B11, B12, C11–C19 einem Bestandteil des Bildes 14 zugeordnet ist (siehe dazu auch die 3A–D, 5A, 5B, 6A, 6B).
  • Verfahrensschritt 500: Es wird eine Differenz ∆E(1) zwischen dem Modell 16a, das für das erste Bild 14a des ersten Endgeräts 8 erzeugt wurde, und dem Modell 16b, das für das zweite Bild 14b des ersten Endgeräts 8 erzeugt wurde, berechnet.
  • Verfahrensschritt 600: Der Testfall wird dann durch die Recheneinheit 4 auf den weiteren Endgeräten 10 abgespielt, so dass auch für die weiteren Endgeräte 10 für jede Benutzereingabe 50 ein erstes Bild 14a der Bedienoberfläche 12 vor der Benutzereingabe 50 und ein zweites Bild 14b der Bedienoberfläche 12 nach der Benutzereingabe 50 erzeugt und gespeichert werden.
  • Verfahrensschritt 700: Die Bilder 14 der weiteren Endgeräte 10 werden analog zu den Bildern 14 des ersten Endgerätes 8 behandelt, so dass ebenso für die weiteren Endgeräte 10 Differenzen ∆E(2-n) zwischen dem Modell 16a, das für das erste Bild 14a des ersten Endgeräts 8 erzeugt wurde, und dem Modell 16b, das für das zweite Bild 14b des ersten Endgeräts 8 erzeugt wurde, berechnet werden, die je einem Schritt der Applikation zugeordnet sind.
  • Schritt 800: Nun wird für jeden Schritt der Applikation die Differenz ∆E(2-n) der weiteren Endgeräte 10 mit der entsprechenden Differenz ∆E(1) des ersten Endgerätes 8 verglichen, um zu beurteilen, ob der dazu gehörige Schritt der Applikation auf den weiteren Endgeräten 10 korrekt ausgeführt wurde oder nicht (siehe dazu auch die 8).
  • Im Folgenden wird Verfahrensschritt 400 im Zusammenhang mit den 3A–D beschrieben.
  • In 3A ist beispielhaft ein erstes Bild 14a der Bedienoberfläche 12 des ersten Endgerätes 8 dargestellt, wobei das erste Bild 14a vor einer Benutzereingabe 50 erzeugt wurde. Dieses erste Bild 14a wird von einem Rahmen 18 begrenzt und ist in zwei Abschnitte 20 unterteilt. Der eine der beiden Abschnitte 20 umfasst ein Textfeld 22. Der andere der beiden Abschnitte 20 umfasst acht Bedienelemente 24, die mit den Buchstaben a bis h gekennzeichnet und Teil einer Tastatur sind.
  • Im Verfahrensschritt 400 wird für das erste Bild 14a ein Modell 16a erzeugt, das eine Vielzahl von Segmenten A11, B11, B12, C11–C19 umfasst, wobei jedes Segment A11, B11, B12, C11–C19 einem Bestandteil des ersten Bildes 14a (ein Rahmen 18, zwei Abschnitte 20, ein Textfeld 22 und acht Bedienelemente 24) zugeordnet wird. Um das Modell 16a zu erzeugen, wird auf das erste Bild 14a eine Identifikationslogik 26 angewandt. Die Identifikationslogik 26 umfasst einen primären Identifikationsalgorithmus 28, eine Vielzahl von sekundären Identifikationsalgorithmen 30 und eine Vielzahl von Klassifikationsalgorithmen 32.
  • Der primäre Identifikationsalgorithmus 28 tastet das erste Bild 14a mit einer groben Granularität ab und erkennt, dass es Bildbestandteile gibt, denen er jeweils ein Segment A11, B11, B12, C11–C19 zuordnet. Durch Anwenden des primären Identifikationsalgorithmus 28 wird ermittelt, wie viele Segmente A11, B11, B12, C11–C19 dem ersten Bild 14a zuzuordnen sind. In der 3B sind die Segmente A11, B11, B12, C11–C19 dargestellt, die der primäre Identifikationsalgorithmus 28 für das erste Bild 14a lokalisiert hat. Dabei sind die Segmente A11, B11, B12, C11–C19 im oberen Teil der 3B in einer Anordnung dargestellt, die der Anordnung der Bildbestandteile des ersten Bildes 14a entspricht. Im unteren Teil der 3B ist ein Teil dieser Segmente in hierarchischer Struktur dargestellt, wobei identische Segmente A11, B11, B21, C16 in den beiden Darstellungen jeweils mit einer gestrichelten Linie verbunden sind.
  • Die sekundären Identifikationsalgorithmen 30 tasten das erste Bild 14a mit jeweils unterschiedlicher Granularität ab. Die gröbste Granularität, mit der die sekundären Identifikationsalgorithmen 30 arbeiten, ist nicht gröber als die Granularität mit der der primäre Identifikationsalgorithmus 28 arbeitet. Regelmäßig sind alle Granularitäten der sekundären Identifikationsalgorithmen 30 weniger grob als die Granularität des primären Identifikationsalgorithmus 28. Alternativ kann die Granularität eines sekundären Identifikationsalgorithmus 30 der Granularität des primären Identifikationsalgorithmus 28 entsprechen. Die Verwendung unterschiedlicher Granularitäten ermöglicht es, unterschiedlich feine / grobe Bildbestandteile wie zum Beispiel Buchstaben oder Bedienelemente jeweils als ein Segment c22–c29, c31 zu identifizieren.
  • Jeder sekundäre Identifikationsalgorithmus 30 identifiziert Segmente c22–c29, c31 mit einer vorgegebenen Granularität für das erste Bild 14a. Die sekundären Identifikationsalgorithmen 30 ermitteln jedoch nicht die Klasse, der ein Segment c22–c29, c31 angehört. Eine Klasse ist beispielsweise ein Text oder ein Bedienelement. Der Begriff „Bedienelement“ umfasst dabei beispielsweise Eingabefelder, Knöpfe, Optionsfelder, Auswahltasten, Dropdown-Listenfelder, Tabellen, Kombinationsfelder, Fenster, Hyperlinks und Checkboxen. Um die Klasse eines Segmentes c22–c29, c31 zu ermitteln, wird jeder der Klassifikationsalgorithmen 32 auf jedes der Segmente c22–c29, c31 angewandt, die durch Anwenden der sekundären Identifikationsalgorithmen 30 ermittelt wurden. Dabei dient jeder der Klassifikationsalgorithmen 32 der Zuordnung der Segmente c22–c29, c31 zu einer anderen Klasse. Alternativ kann nur ein Teil der Vielzahl der Klassifikationsalgorithmen 32 auf die Segmente c22–c29, c31 angewandt werden, die durch Anwenden der sekundären Identifikationsalgorithmen 30 ermittelt wurden, wobei für jedes dieser Segmente c22–c29, c31 ein anderer Teil der Vielzahl der Klassifikationsalgorithmen 32 angewandt werden kann.
  • Für jeden Vorschlag einer Klasse für ein Segment c22–c29, c31, das durch Anwenden der sekundären Identifikationsalgorithmen 30 ermittelt wurde, wird eine Klassenwahrscheinlichkeit bestimmt. Die Klassenwahrscheinlichkeit gibt an, mit welcher Wahrscheinlichkeit das entsprechende Segment c22–c29, c31 der ermittelten Klasse angehört. Der Vorschlag mit der höchsten Klassenwahrscheinlichkeit wird ausgewählt und dem jeweiligen Segment c22–c29, c31 als Klasse zugeordnet. Dabei muss die Klassenwahrscheinlichkeit der ausgewählten Klasse mindestens bei 70% liegen.
  • In der 3C sind die Segmente c22–c29 dargestellt, die einer der sekundären Identifikationsalgorithmen 30 für das erste Bild 14a lokalisiert hat, und die durch Anwenden der Vielzahl der Klassifikationsalgorithmen 32 der Klasse der Bedienelemente zugeordnet wurden. Dabei sind die Segmente c22–c29 im oberen Teil der 3C in einer Anordnung dargestellt, die der Anordnung der Bildbestandteile des ersten Bildes 14a entspricht. Im unteren Teil der 3C ist beispielhaft eines dieser Segmente in der hierarchischen Struktur dargestellt, in die es sich einordnet.
  • In der 3D ist das Segment c31 dargestellt, das ein anderer der sekundären Identifikationsalgorithmen 30 als der aus 3C für das erste Bild 14a lokalisiert hat, und das durch Anwenden der Vielzahl der Klassifikationsalgorithmen 32 der Klasse der Textfelder zugeordnet wurde. Dabei ist das Segment c31 im oberen Teil der 3D in einer Anordnung dargestellt, die der Anordnung der Bildbestandteile des ersten Bildes 14a entspricht. Im unteren Teil der 3D ist dieses Segment in der hierarchischen Struktur dargestellt, in die es sich eingliedert.
  • Die in den 3C und 3D dargestellten Segmente c31, c22–c29, die durch Anwenden der sekundären Identifikationsalgorithmen 30 und der Klassifikationsalgorithmen 32 ermittelt wurden, sind mit einer Wahrscheinlichkeit behaftet, dass sie jeweils einem der Segmente C11–C19, die durch Anwenden des primären Identifikationsalgorithmus 28 lokalisiert wurden, zuzuordnen sind. Die Wahrscheinlichkeit ergibt sich einerseits aus der Klassenwahrscheinlichkeit und andererseits aus Parametern, die die Form, Farbe, Position und Hierarchie des entsprechenden Bildbestandteils berücksichtigen. Die in den 3C und 3D dargestellten Segmente c31, c22–c29 konkurrieren jeweils mit analog durch andere sekundäre Identifikationsalgorithmen 30 ermittelte Segmentvorschläge. Letztlich wird der Vorschlag ausgewählt, der die größte Wahrscheinlichkeit hat. Dabei muss die Wahrscheinlichkeit des ausgewählten Segments bei mindestens 50% liegen.
  • In dem Ausführungsbeispiel in den 3B bis 3D wird dem Segment C11, das durch Anwenden des primären Identifikationsalgorithmus 28 lokalisiert wurde, das als Textfeld identifizierte Segment c31 zugeordnet. Stellvertretend für die Segmente C12–C19 ist in den 3B bis 3D dargestellt, dass dem Segment C16, das durch Anwenden des primären Identifikationsalgorithmus 28 lokalisiert wurde, das als Bedienelement identifizierte Segment c26 zugeordnet wird.
  • Analog wird für die Identifizierung und Klassifizierung der übrigen Segmente A11, B11, B12 verfahren, die in 3B eingetragen, in den obigen Ausführungen jedoch nicht gesondert erläutert sind. Das abstrakte Modell 16a des ersten Bildes 14a umfasst sämtliche Segmente A11, B11, B12, C11–C19, die durch Anwenden des primären Identifikationsalgorithmus 28 lokalisiert und durch Anwenden der sekundären Identifikationsalgorithmen 30 und der Klassifikationsalgorithmen 32 identifiziert und klassifiziert wurden. In dem in den 3A bis 3D dargestellten Ausführungsbeispiel sind der Übersicht halber nur zwei sekundäre Identifikationsalgorithmen 30 dargestellt. Das Verfahren 100 ist jedoch nicht auf die Anwendung von nur zwei sekundären Identifikationsalgorithmen 30 beschränkt. Vielmehr ist die Anzahl der sekundären Identifikationsalgorithmen in der Regel höher und kann je nach Anwendung des Verfahrens 100 variieren.
  • In analoger Weise wird das abstrakte Modell 16 auch für das zweite Bild 14b des ersten Endgerätes 8, sowie für sämtliche Bilder 14 des ersten und der weiteren Endgeräte 8, 10 erzeugt.
  • In den 4A bis 7 ist der Verfahrensschritt 500 veranschaulicht. 4A zeigt ein erstes Bild 14a des ersten Endgerätes 8, wobei das erste Bild 14a vor der Benutzereingabe 50 erzeugt wurde. Das erste Bild 14a weist beispielhaft einen Rahmen 18 auf und ist in zwei Abschnitte 20 untergliedert. Der eine der beiden Abschnitte umfasst zwei Textfelder 22 und ein Bedienelement 24. Der andere der beiden Abschnitte ist leer. 4B zeigt ein zweites Bild 14b des ersten Endgerätes 8, wobei das zweite Bild 14b nach der Benutzereingabe 50 erzeugt wurde und das erste Bild 14a aus 4A ersetzt. Das zweite Bild 14b weist beispielhaft ebenso den Rahmen 18 auf und ist wie das erste Bild 14a in zwei Abschnitte 20 untergliedert. Der eine der beiden Abschnitte 20 umfasst zwei Textfelder 22 und der andere der beiden Abschnitte umfasst ein Bedienelement 24.
  • Durch Anwenden des zuvor beschriebenen Verfahrensschrittes 400 auf das erste Bild 14a und das zweite Bild 14b wird jeweils ein abstraktes Modell 16a bzw. 16b erzeugt. Die abstrakten Modelle 16a, 16b sind in den 5A und 5B dargestellt, wobei die jeweiligen Segmente A11, B11, B12, C11–C13, A21, B21, B22, C21–C23 in einer Anordnung dargestellt sind, die der Anordnung der Bildbestandteile, denen sie zugeordnet sind, im ersten bzw. zweiten Bild 14a, 14b entspricht. Der äquivalente Informationsgehalt wird durch die hierarchische Darstellung der Modelle 16a, 16b in den 6A und 6B veranschaulicht.
  • Das Modell 16a des ersten Bildes 14a wird nun mit dem Modell 16b des zweiten Bildes 14b verglichen, wobei sämtliche Änderungen der Segmente A11, B11, B12, C11–C13, A21, B21, B22, C21–C23 betrachtet werden, die durch die Benutzereingabe hervorgerufen werden. Die Änderungen werden als Differenz ∆E(1) zusammengefasst (siehe 7). In dem in den 4A bis 7 dargestellten Ausführungsbeispiel wurden die Segmente A11, B11, B12, C11 und C12 aktualisiert, wobei vorliegend die aktualisierten Segmente A21, B21, B22, C21 und C22 jeweils der gleichen Klasse angehören wie die Segmente A11, B11 B12, C11 bzw. C12 und auch Form, Farbe, Position und Hierarchie jeweils übereinstimmen. Zudem wurde das Segment C13 entfernt und das Segment C23 addiert.
  • In analoger Weise wird eine Differenz ∆E(1), ∆E(2-n) zwischen dem ersten Bild 14a und dem zweiten Bild 14b für die anderen Schritte der Applikation, die auf dem ersten Endgerät 8 ausgeführt werden, sowie für sämtliche Schritte der Applikation, die auf den weiteren Endgeräten 10 ausgeführt werden, berechnet.
  • Alternativ kann für den Vergleich der Modelle 16a und 16b auch nur ein Teil der Segmente berücksichtigt werden. Dies ist insbesondere sinnvoll, wenn ein Bildbestandteil sich zwar zwischen dem ersten Bild 14a und dem zweiten Bild 14b verändert, für das Testen der Applikation jedoch unerheblich ist. Ein solcher Bildbestandteil ist beispielsweise die Anzeige einer Uhrzeit, die sowohl in dem ersten Bild 14a als auch in dem zweiten Bild 14b erscheint.
  • In Verfahrensschritt 800 werden die so ermittelten Differenzen ∆E(1) des ersten Endgerätes 8 mit den entsprechenden Differenzen ∆E(2-n) der weiteren Endgeräte 10 verglichen (siehe 8). Zunächst wird in einem Verfahrensschritt 810 eine Differenz ∆G zwischen der Differenz ∆E(2-n) des zweiten Endgerätes 10 und der Differenz ∆E(1) des ersten Endgerätes 8 berechnet. In einem sich anschließenden Verfahrensschritt 820 wird die Differenz ∆G zwischen der Differenz ∆E(2-n) des zweiten Endgerätes 10 und der Differenz ∆E(1) des ersten Endgerätes 8 mit einem Toleranzbereich ∆T abgeglichen. Liegt die Differenz ∆G zwischen der Differenz ∆E(2-n) des zweiten Endgerätes 10 und der Differenz ∆E(1) des ersten Endgerätes 8 innerhalb des Toleranzbereichs ∆T, so gilt der entsprechende Schritt auf dem jeweiligen weiteren Endgerät 10 als korrekt ausgeführt (siehe Box 830 in 8). Andernfalls gilt der entsprechende Schritt auf dem jeweiligen weiteren Endgerät 10 als nicht korrekt ausgeführt (siehe Box 840 in 8). Der Toleranzbereich ∆T ist für die verschiedenen Schritte der Applikation und für die einzelnen weiteren Endgeräte 10 variabel. Zudem kann der Benutzer während des Verfahrens zum Testen der Applikation den Toleranzbereich ∆T anpassen.
  • Die Informationen über korrekt und nicht korrekt ausgeführte Schritte der Applikation werden für jedes Endgerät 8, 10 in einem Bericht 34 gesammelt und dem Benutzer bereit gestellt. Gilt ein Schritt der Applikation als nicht korrekt ausgeführt, so bricht das Verfahren 100 zum Testen der Applikation auf dem jeweiligen weiteren Endgerät 10 nach diesem Schritt der Applikation ab. Somit gibt der Bericht 34 regelmäßig darüber Auskunft, ob sämtliche Schritte der Applikation, die als Testfall aufgezeichnet wurden, korrekt von dem jeweiligen weiteren Endgerät ausgeführt wurden bzw. bei welchem Schritt der Applikation ein Problem aufgetreten ist.

Claims (24)

  1. Verfahren zum Testen einer Applikation, wobei ein erstes Endgerät (8) und mindestens ein weiteres Endgerät (10) verwendet werden, wobei jedes der Endgeräte (8, 10) eine Bedienoberfläche (12) zur Bedienung des Endgerätes (8, 10) aufweist, und wobei das Verfahren folgende Schritte umfasst: – Ausführen einer Vielzahl von Schritten der Applikation auf dem ersten Endgerät (8), wobei jeder Schritt eine Benutzereingabe (50) und eine Reaktion der Bedienoberfläche (12) des ersten Endgerätes (8) auf die Benutzereingabe (50) umfasst, und wobei die Schritte als Testfall aufgezeichnet werden, und – Abspielen des Testfalls auf dem mindestens einen weiteren Endgerät (10), dadurch gekennzeichnet, dass für jede Benutzereingabe (50) ein erstes Bild (14a) der Bedienoberfläche (12) vor der Benutzereingabe (50) und ein zweites Bild (14b) der Bedienoberfläche (12) nach der Benutzereingabe (50) erzeugt und gespeichert werden, dass für das erste Endgerät (8) für jeden Schritt der Applikation eine Differenz (∆E(1)) zwischen einer ersten Information, die von mindestens einem Teil des ersten Bildes (14a) abgeleitet wird, und einer zweiten Information, die von mindestens einem Teil des zweiten Bildes (14b) abgeleitet wird, berechnet wird, dass für das zweite Endgerät (10) für jeden Schritt der Applikation eine Differenz (∆E(2-n)) zwischen einer ersten Information, die von mindestens einem Teil des ersten Bildes (14a) abgeleitet wird, und einer zweiten Information, die von mindestens einem Teil des zweiten Bildes (14b) abgeleitet wird, berechnet wird, und dass die Differenzen (∆E(2-n)) zwischen der ersten Information und der zweiten Information des mindestens einen weiteren Endgerätes (10) mit den entsprechenden Differenzen (∆E(1)) zwischen der ersten Information und der zweiten Information des ersten Endgerätes (8) verglichen werden, um festzustellen, ob jeder Schritt der Applikation auf dem mindestens einen weiteren Endgerät (10) korrekt ausgeführt worden ist.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass für jedes Bild (14) ein abstraktes Modell (16) erzeugt wird, das eine Vielzahl von Segmenten (A11, B11, B12, C11–C19, A21, B21, B22, C21–C23) umfasst, wobei jedes Segment (A11, B11, B12, C11–C19, A21, B21, B22, C21–C23) einem Bestandteil des Bildes (14) zugeordnet ist.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass für jeden Schritt der Applikation die Differenz (∆E(1), ∆E(2-n)) zwischen den abstrakten Modellen (16) des mindestens einen Teils des ersten Bildes (14a) und des zweiten Bildes (14b) berechnet wird.
  4. Verfahren nach Anspruch 2 oder 3, dadurch gekennzeichnet, dass für jeden Schritt der Applikation die Segmente (A21, B21, B22, C21–C23), die den Bildbestandteilen des mindestens einen Teils des zweiten Bildes (14b) zugeordnet sind, mit den Segmenten (A11, B11, B12, C11–C13), die den Bildbestandteilen des mindestens einen Teils des ersten Bildes (14a) zugeordnet sind, verglichen werden.
  5. Verfahren nach einem der Ansprüche 2 bis 4, dadurch gekennzeichnet, dass durch die Benutzereingabe (50) die Segmente (A11, B11, B12, C11–C13), die den Bildbestandteilen des mindestens einen Teils des ersten Bildes (14a) zugeordnet sind, aktualisiert und/oder entfernt werden und/oder neue Segmente (C21–C23), die den Bildbestandteilen des mindestens einen Teils des zweiten Bildes (14b) zugeordnet sind, addiert werden.
  6. Verfahren nach einem der Ansprüche 2 bis 5, dadurch gekennzeichnet, dass ein Schritt der Applikation als korrekt ausgeführt gilt, wenn die Differenz (∆E(2-n)) zwischen den abstrakten Modellen (16a, 16b) des mindestens einen Teils des ersten Bildes (14a) und des zweiten Bildes (14b) des mindestens einen weiteren Endgerätes (10) und die entsprechende Differenz (∆E(1)) zwischen den abstrakten Modellen (16a, 16b) des mindestens einen Teils des ersten Bildes (14a) und des zweiten Bildes (14b) des ersten Endgerätes (8) innerhalb eines vorbestimmten Toleranzbereichs übereinstimmen.
  7. Verfahren nach einem der Ansprüche 2 bis 6, dadurch gekennzeichnet, dass eine Identifikationslogik (26) für den mindestens einen Teil jedes ersten Bildes (14a) und jedes zweiten Bildes (14b) Segmente (A11, B11, B12, C11–C19, A21, B21, B22, C21–C23) als Bestandteile der abstrakten Modelle (16a, 16b) identifiziert, wobei die Identifikationslogik (26) einen primären Identifikationsalgorithmus (28) umfasst, der für den mindestens einen Teil jedes Bildes (14) Segmente (A11, B11, B12, C11–C19, A21, B21, B22, C21–C23) lokalisiert.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass die Identifikationslogik (26) eine Vielzahl von sekundären Identifikationsalgorithmen (30) umfasst, die für den mindestens einen Teil jedes Bildes (14) Segmente (c22–c29, c31) identifizieren, wobei die sekundären Identifikationsalgorithmen (30) den mindestens einen Teil des Bildes (14) mit jeweils unterschiedlicher Granularität abtasten.
  9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass die Identifikationslogik (26) eine Vielzahl von Klassifikationsalgorithmen (32) umfasst, die vorgesehen sind, um jedem Segment (c22–c29, c31), das durch die sekundären Identifikationsalgorithmen (30) identifiziert wurde, eine Klasse zuzuordnen.
  10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass jeder Klassifikationsalgorithmus (32) der Zuordnung der Segmente (c22–c29, c31), die durch die sekundären Identifikationsalgorithmen (30) identifiziert wurden, zu einer anderen Klasse dient.
  11. Verfahren nach Anspruch 9 oder 10, dadurch gekennzeichnet, dass jeder Klassifikationsalgorithmus (32) für jedes Segment (c22–c29, c31), das durch die sekundären Identifikationsalgorithmen (30) identifiziert wurde, eine Klassenwahrscheinlichkeit für die Zugehörigkeit zu der jeweiligen Klasse bestimmt.
  12. Verfahren nach einem der Ansprüche 9 bis 11, dadurch gekennzeichnet, dass die Klassen Text und Bedienelemente umfassen.
  13. Verfahren nach einem der Ansprüche 7 bis 12, dadurch gekennzeichnet, dass die Identifikationslogik (26) für jeden Bildbestandteil eine Vielzahl von Vorschlägen für ein Segment (A11, B11, B12, C11–C19, A21, B21, B22, C21–C23) liefert.
  14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass jedem Vorschlag eine Wahrscheinlichkeit zugeordnet wird.
  15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass für jeden Bildbestandteil der Vorschlag für ein Segment (A11, B11, B12, C11–C19, A21, B21, B22, C21–C23) mit der jeweils höchsten Wahrscheinlichkeit ausgewählt wird und zur Erzeugung des abstrakten Modells (16) herangezogen wird.
  16. Verfahren nach Anspruch 15, dadurch gekennzeichnet, dass für jeden Bildbestandteil der Vorschlag für ein Segment (A11, B11, B12, C11–C19, A21, B21, B22, C21–C23) mit der jeweils höchsten Wahrscheinlichkeit zur Erzeugung des abstrakten Modells (16) herangezogen wird, wenn die höchste Wahrscheinlichkeit größer oder gleich einem vorgegebenen Grenzwert ist.
  17. Verfahren nach einem der Ansprüche 14 bis 16, dadurch gekennzeichnet, dass zur Bestimmung der Wahrscheinlichkeit einerseits die Klassenwahrscheinlichkeit und andererseits Parameter berücksichtigt werden, die mindestens Form des Bildbestandteils, Position des Bildbestandteils, Farbe des Bildbestandteils und Hierarchie des Bildbestandteils in dem Bild (14) umfassen.
  18. Verfahren nach einem der Ansprüche 7 bis 17, dadurch gekennzeichnet, dass die Identifikationslogik (26) das Zuordnen von Klassen zu Segmenten (A11, B11, B12, C11–C19, A21, B21, B22, C21–C23) durch Definition durch einen Benutzer erlernt.
  19. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass vor dem Abspielen des Testfalls auf dem mindestens einen weiteren Endgerät (10), der Testfall auf dem ersten Endgerät (8) abgespielt wird, um zu überprüfen, dass der Testfall korrekt aufgezeichnet wurde.
  20. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass für das mindestens eine weitere Endgerät (10) ein Bericht (34) über korrekt und nicht korrekt ausgeführte Schritte der Applikation ausgegeben wird.
  21. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass die Endgeräte (8, 10) virtuell oder real bereit gestellt werden.
  22. Vorrichtung zum Testen einer Applikation umfassend – ein erstes Endgerät (8) und mindestens ein weiteres Endgerät (10), auf denen die Applikation getestet wird, – eine Recheneinheit (4), über die die Endgeräte (8, 10) gesteuert werden, wobei die Recheneinheit (4) eine Benutzeroberfläche (6) aufweist, die als Schnittstelle zwischen der Recheneinheit (4) und einem Benutzer dient und dem Benutzer ermöglicht, durch Benutzereingabe (50) eine Vielzahl von Schritten der Applikation auf dem ersten Endgerät (8) auszuführen, wobei jeder Schritt der Applikation eine Benutzereingabe (50) und eine Reaktion der Bedienoberfläche (12) des ersten Endgerätes (8) auf die Benutzereingabe (50) umfasst, dadurch gekennzeichnet, dass die Recheneinheit (4) eingerichtet und vorgesehen ist, um – die Schritte der Applikation, die auf dem ersten Endgerät (8) ausgeführt werden, als Testfall aufzuzeichnen, – den Testfall auf dem mindestens einen weiteren Endgerät (10) abzuspielen, – für jede Benutzereingabe (50) ein erstes Bild (14a) der Bedienoberfläche (12) vor der Benutzereingabe (50) und ein zweites Bild (14b) der Bedienoberfläche (12) nach der Benutzereingabe (50) zu erzeugen und zu speichern, – für das erste Endgerät (8) für jeden Schritt eine Differenz (∆E(1)) zwischen einer ersten Information, die von mindestens einem Teil des ersten Bildes (14a) abgeleitet wird, und einer zweiten Information, die von mindestens einem Teil des zweiten Bildes (14b) abgeleitet wird, zu berechnen, – für das zweite Endgerät (10) für jeden Schritt eine Differenz (∆E(2-n)) zwischen einer ersten Information, die von mindestens einem Teil des ersten Bildes (14a) abgeleitet wird, und einer zweiten Information, die von mindestens einem Teil des zweiten Bildes (14b) abgeleitet wird, zu berechnen, und – die Differenzen (∆E(2-n)) zwischen der ersten Information und der zweiten Information des mindestens einen weiteren Endgerätes (10) mit den entsprechenden Differenzen (∆E(1)) zwischen der ersten Information und der zweiten Information des ersten Endgerätes (8) zu vergleichen, um festzustellen, ob jeder Schritt der Applikation auf dem mindestens einen weiteren Endgerät (10) korrekt ausgeführt worden ist.
  23. Vorrichtung zum Testen einer Applikation dadurch gekennzeichnet, dass die Vorrichtung (2) eingerichtet und vorgesehen ist, ein Verfahren (100) nach einem der Ansprüche 2 bis 21 auszuführen.
  24. Computerprogrammprodukt mit einem Softwarecode zur Durchführung der Schritte (200800) des Verfahrens (100) nach einem der Ansprüche 1 bis 21, wenn das Computerprogrammprodukt (1000) auf einem Computer ausgeführt wird.
DE102012223587.6A 2012-12-18 2012-12-18 Verfahren zum Testen einer Applikation Active DE102012223587B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102012223587.6A DE102012223587B4 (de) 2012-12-18 2012-12-18 Verfahren zum Testen einer Applikation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102012223587.6A DE102012223587B4 (de) 2012-12-18 2012-12-18 Verfahren zum Testen einer Applikation

Publications (2)

Publication Number Publication Date
DE102012223587A1 true DE102012223587A1 (de) 2014-07-03
DE102012223587B4 DE102012223587B4 (de) 2019-11-14

Family

ID=50928427

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012223587.6A Active DE102012223587B4 (de) 2012-12-18 2012-12-18 Verfahren zum Testen einer Applikation

Country Status (1)

Country Link
DE (1) DE102012223587B4 (de)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105491592A (zh) * 2015-11-24 2016-04-13 航天恒星科技有限公司 一种信令生成和终端状态转移控制方法及装置
US10445221B2 (en) 2018-03-08 2019-10-15 Sauce Labs Inc. Automated application testing system
US10942837B2 (en) 2019-05-13 2021-03-09 Sauce Labs Inc. Analyzing time-series data in an automated application testing system
US11042472B2 (en) 2019-09-10 2021-06-22 Sauce Labs Inc. Authoring automated test suites using artificial intelligence
US11755919B2 (en) 2018-05-07 2023-09-12 Sauce Labs Inc. Analytics for an automated application testing platform

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120243745A1 (en) * 2009-12-01 2012-09-27 Cinnober Financial Technology Ab Methods and Apparatus for Automatic Testing of a Graphical User Interface

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120243745A1 (en) * 2009-12-01 2012-09-27 Cinnober Financial Technology Ab Methods and Apparatus for Automatic Testing of a Graphical User Interface

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ImageMagick v6 Examples - Image Comparing. 17.05.2012 [recherchiert am 19.09.2013], Im Internet: *
ImageMagick v6 Examples - Image Comparing. 17.05.2012 [recherchiert am 19.09.2013], Im Internet: <URL: http://www.imagemagick.org/Usage/compare/>

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105491592A (zh) * 2015-11-24 2016-04-13 航天恒星科技有限公司 一种信令生成和终端状态转移控制方法及装置
CN105491592B (zh) * 2015-11-24 2020-09-22 航天恒星科技有限公司 一种信令生成和终端状态转移控制方法及装置
US10445221B2 (en) 2018-03-08 2019-10-15 Sauce Labs Inc. Automated application testing system
US11416377B2 (en) 2018-03-08 2022-08-16 Sauce Labs Inc. Automated application testing system
US11755919B2 (en) 2018-05-07 2023-09-12 Sauce Labs Inc. Analytics for an automated application testing platform
US10942837B2 (en) 2019-05-13 2021-03-09 Sauce Labs Inc. Analyzing time-series data in an automated application testing system
US11042472B2 (en) 2019-09-10 2021-06-22 Sauce Labs Inc. Authoring automated test suites using artificial intelligence

Also Published As

Publication number Publication date
DE102012223587B4 (de) 2019-11-14

Similar Documents

Publication Publication Date Title
DE102012223587B4 (de) Verfahren zum Testen einer Applikation
DE102007028226A1 (de) Auswertungsverfahren für eine zeitliche Sequenz von Röntgenbildern und hiermit korrespondierende Gegenstände
AT15099U2 (de) System zur Überwachung einer technischen Vorrichtung
EP1638028A2 (de) Rechnergestützte Erzeugung und Änderungsmanagement für Bedienoberflächen
DE102016011020A1 (de) Kontaktplan-Überwachungsvorrichtung mit der Fähigkeit, zusätzlich eine Betriebssituation einer CNC in einem Kommentar anzuzeigen
DE202019006019U1 (de) Techniken zum Analysieren von Fahrzeugdesignabweichungen unter Verwendung von Deep Learning mit neuronalen Netzwerken
DE102019204139A1 (de) Training für künstliche neuronale Netzwerke mit besserer Ausnutzung der Lern-Datensätze
DE102016204506A1 (de) Fortdruckinspektion mit lokaler Optimierung
WO2016156377A1 (de) Verfahren zum bereitstellen von höheninformationen eines objekts in einem umgebungsbereich eines kraftfahrzeugs an einer kommunikationsschnittstelle, sensoreinrichtung, verarbeitungseinrichtung und kraftfahrzeug
EP2433185A1 (de) Vorrichtung und verfahren zum bearbeiten einer prozesssimulationsdatenbasis eines prozesses
DE102021204550A1 (de) Verfahren zum Erzeugen wenigstens eines Datensatzes zum Trainieren eines Algorithmus maschinellen Lernens
DE102019008515A1 (de) Informationsverarbeitungsvorrichtung
DE102013214197A1 (de) Entwicklungsverfahren für ein technisches Produkt
EP3629112B1 (de) Verfahren zur anzeige von diskrepanzen zwischen einem anwenderprogramm für eine speicherprogrammierbare steuerung und dessen kopie
AT522186B1 (de) Computerimplementiertes Verfahren zur rechnergestützten Erzeugung eines ausführbaren Steuerungsprogramms zur Steuerung und/oder Regelung eines technischen Prozesses
DE102010033873A1 (de) Selektorsystem für Textverarbeitungsstil mit Verwendung einer 2D-Matrix
DE102009058605A1 (de) Verfahren und Vorrichtung zum Erhöhen des Kontrastes eines Grauwertebildes
DE102016207768A1 (de) Vorrichtung und Verfahren zum Bereitstellen einer Menge von Modultypen
DE102019208945A1 (de) Verfahren und Vorrichtung zum Vergleichen eines ersten Datenpunktes mit einem zweiten Datenpunkt
DE102006048847A1 (de) Anpassung eines digitalen Bildes für die Anzeige auf einem Bildschirm
DE102022208083A1 (de) Trainieren eines neuronalen Netzwerks mit Hilfe von Wissensgraphen
DE102005037487A1 (de) Verfahren zum Erzeugen einer Stückliste eines Produkts mit Varianten
EP4315280A1 (de) Verfahren und vorrichtung zur automatischen analyse eines schaltbildes
DE102016001837B4 (de) Verfahren zur computerunterstützten Vorhersage der Form eines in einem Umformprozess umzuformenden Blech-Bauteils
DE102021006090A1 (de) Simulationsverfahren, Datenverarbeitungssystem und Computerprogramm

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: SAUCE LABS EUROPE GMBH, DE

Free format text: FORMER OWNER: TESTOBJECT GMBH, 13055 BERLIN, DE

R082 Change of representative

Representative=s name: MAIKOWSKI & NINNEMANN PATENTANWAELTE PARTNERSC, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final