-
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.