BE1023690B1 - Method for testing a software application through a graphical user interface. - Google Patents

Method for testing a software application through a graphical user interface. Download PDF

Info

Publication number
BE1023690B1
BE1023690B1 BE2015/5668A BE201505668A BE1023690B1 BE 1023690 B1 BE1023690 B1 BE 1023690B1 BE 2015/5668 A BE2015/5668 A BE 2015/5668A BE 201505668 A BE201505668 A BE 201505668A BE 1023690 B1 BE1023690 B1 BE 1023690B1
Authority
BE
Belgium
Prior art keywords
objects
list
user interface
graphical user
aligned
Prior art date
Application number
BE2015/5668A
Other languages
Dutch (nl)
Other versions
BE1023690A1 (en
Inventor
Jacques WOUTERS
Original Assignee
Jamo Solutions Nv
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 Jamo Solutions Nv filed Critical Jamo Solutions Nv
Priority to BE2015/5668A priority Critical patent/BE1023690B1/en
Application granted granted Critical
Publication of BE1023690B1 publication Critical patent/BE1023690B1/en
Publication of BE1023690A1 publication Critical patent/BE1023690A1/en

Links

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/3684Test management for test design, e.g. generating new test cases
    • 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/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Een werkwijze voor het testen van een software applicatie doorheen een grafische gebruikersinterface, omvattende b) het automatisch onderzoeken van de grafische gebruikersinterface en het identificeren van verzamelingen van velden die door de gebruiker als respectievelijke lijsten ervaren worden; c) het genereren van herwerkte lijst-informatie zoals die door de gebruiken ervaren wordt,gebaseerd op de resultaten van stap (b); d) het gebruiken van de herwerkte lijst-informatie tijdens het automatisch testen van de applicatie doorheen de gebruikersinterface; en geassocieerd computer programma.A method of testing a software application through a graphical user interface, comprising b) automatically examining the graphical user interface and identifying sets of fields that the user perceives as respective lists; c) generating revised list information as perceived by the users based on the results of step (b); d) using the revised list information during automatic testing of the application throughout the user interface; and associated computer program.

Description

Werkwijze voor het testen van een software applicatie doorheen een grafische gebruikersinterface.Method for testing a software application through a graphical user interface.

De onderhavige uitvinding is gerelateerd tot het domein van het testen van software applicaties doorgeen een grafische gebruikersinterface.The present invention is related to the field of testing software applications by a graphical user interface.

De nodige functionaliteiten van een applicatie, omvattende de grafische gebruikersinterface (ENG: Graphical User Interface; GUI) ervan, zijn typisch vooraf generisch bepaald. Het is de taak van de ontwikkelaar om deze functionaliteiten in een grafische gebruikersinterface te voorzien. Een grafische gebruikerinterface is opgebouwd door gebruikersinterface objecten. De ontwikkelaar is typisch vrij, of heeft op zijn minst een ruim aantal vrijheidsgraden, om de GUI te ontwikkelen.The necessary functionalities of an application, including its graphical user interface (GUI), are typically generically determined in advance. It is the task of the developer to provide these functionalities in a graphical user interface. A graphical user interface is constructed by user interface objects. The developer is typically free, or at least has a large number of degrees of freedom, to develop the GUI.

De gebruikersinterface wordt typisch gebruikt in een verscheidenheid van contexten, e.g. een verscheidenheid van inrichtingen (bvb. desktop computer, mobiele telefoon , PDA , portable computer met klein scherm enz.) en besturingssystemen (inclusief verschillende versies van een besturingssysteem), alsook met een verscheidenheid aan software programma’s (e.g. browsers). Ook de schermgroote, aard en kwaliteit kan bvb een rol spelen, naast eventuele andere factoren zoals die gekend zijn door de vakman. Éénmaal de interface is opgemaakt, wordt deze typisch getest op onvolmaaktheden en fouten. Deze onvolmaaktheden kunnen typisch verschillend zijn voor verschillende contexten. In het bijzonder vormen velden van het lijst-type (lijstvelden) dikwijls een probleem. Lijst-objecten worden bijvoorbeeld dikwijls oneigenlijk gebruikt, zodat ze niet worden ervaard als een lijst door de gebruiker/tester. Dit maakt bvb. het automatisch testen van de GUI moeilijk. Anderzijds wordt bij elkaar horende informatie die door een gebruiker als een lijst wordt ervaard niet altijd als een lijst-object geprogrammeerd, wat testen ook bemoeilijkt.The user interface is typically used in a variety of contexts, eg a variety of devices (e.g., desktop computer, mobile phone, PDA, small screen portable computer, etc.) and operating systems (including different versions of an operating system), as well as with a variety to software programs (eg browsers). The screen size, nature and quality can also play a role, for example, in addition to any other factors that are known to those skilled in the art. Once the interface is formatted, it is typically tested for imperfections and errors. These imperfections can typically be different for different contexts. In particular, list-type fields (list fields) are often a problem. For example, list objects are often used improperly, so that they are not experienced as a list by the user / tester. This makes e.g. automatic testing of the GUI is difficult. On the other hand, related information experienced by a user as a list is not always programmed as a list object, which also makes testing more difficult.

Bvb., informatie die de gebruiker als een “lijst” ervaart, wordt bijvoorbeeld niet altijd door de ontwikkelaar opgebouwd met het GUI “lijst object”, maar kan bijvoorbeeld opgebouwd worden in een GUI “scroll object” waarin de elementen van een lijst zijn opgelijnd.For example, information that the user experiences as a "list" is not always built up by the developer with the GUI "list object", but can for example be built up in a GUI "scroll object" in which the elements of a list are aligned .

Anderzijds kan de ontwikkelaar een GUI “lijst object” enkel voor layout doeleinden gebruiken. De inhoud van elke cel in de lijst verschilt te veel van de andere cellen waardoor het menselijk oog de gehele inhoud van het UI lijst object niet ervaart als een lijst.On the other hand, the developer can only use a GUI "list object" for layout purposes. The contents of each cell in the list differ too much from the other cells, so the human eye does not experience the entire contents of the UI list object as a list.

Er bestaat dus een vraag naar werkwijzen en software oplossingen die toelaten van GUI’s context-onafhankelijk te testen. I.h.b. bestaat er een vraag naar werkwijzen en software oplossingen die toelaten rekening te houden met de manier waarop de gebruiker de GUI ervaart.There is therefore a demand for working methods and software solutions that allow context-independent testing of GUIs. I.h.b. there is a demand for working methods and software solutions that allow for the way in which the user experiences the GUI.

SamenvattingSummary

Het is een doel van de onderhavige uitvinding een werkwijze te voorzien voor het automatisch testen van een software applicatie doorheen een grafische gebruikersinterface, die toelaat van GUI’s context-onafhankelijk te testen.It is an object of the present invention to provide a method for automatically testing a software application through a graphical user interface, which allows context-independent testing of GUIs.

Dit word bereikt met de werkwijze van conclusie 1, en het software programma van conclusie 10.This is achieved with the method of claim 1, and the software program of claim 10.

Inderdaad, in een eerste aspect van de onderhavige uitvinding wordt een werkwijze voor het testen van een software applicatie doorheen een grafische gebruikersinterface beschreven, omvattende ten minste één van de stappen (a) en (b), met a) het automatisch onderzoeken van de grafische gebruikersinterface naar de aanwezigheid van velden van het lijst-type die door de gebruiker niet als lijsten ervaren worden, en het identificeren ervan; en b) het automatisch onderzoeken van de grafische gebruikersinterface en het identificeren van verzamelingen van velden die door de gebruiker als respectievelijke lijsten ervaren worden, en verder omvattende c) het genereren van herwerkte lijst-informatie zoals die door de gebruiker ervaren wordt, gebaseerd op de resultaten van stap (a) en/of (b); en d) het gebruiken van de herwerkte lijst-informatie tijdens het automatisch testen van de applicatie doorheen de gebruikersinterface.Indeed, in a first aspect of the present invention, a method for testing a software application through a graphical user interface is described, comprising at least one of the steps (a) and (b), with a) automatically examining the graphical user interface to the presence of list-type fields that are not experienced as lists by the user, and to identify them; and b) automatically examining the graphical user interface and identifying sets of fields experienced by the user as respective lists, and further comprising c) generating reworked list information as experienced by the user based on the results of steps (a) and / or (b); and d) using the reworked list information during automatic testing of the application through the user interface.

Het is een voordeel van de onderhavige uitvinding dat er een uniforme voorstelling van lijst-informatie wordt gemaakt, rekening houdend met de manier waarop de gebruiker de GUI ervaart. Deze herwerkte lijst-informatie kan gebruikt worden voor het contextonafhankelijk testen van de GUI.It is an advantage of the present invention that a uniform representation of list information is made, taking into account the way the user experiences the GUI. This reworked list information can be used for context-independent testing of the GUI.

In voorkeursuitvoeringsvormen, omvat de werkwijze het automatisch onderzoeken van de gebruikersinterface het automatisch analyseren van objecten (GUI objecten, object georiënteerde elementen) zoals deze gedefinieerd zijn door de ontwikkelaar van de applicatie.In preferred embodiments, the method includes automatically examining the user interface and automatically analyzing objects (GUI objects, object oriented elements) as defined by the application developer.

Het is een voordeel ten opzichte van eventuele andere technieken in de stand der techniek die gebruikt zouden kunnen worden voor herkenning van informatie, zoals bijvoorbeeld beeldherkenningstechieken (zoals bvb. optische character herkenning (ENG : Optical Character Recognition, OCR) technieken.It is an advantage over any other prior art techniques that could be used for information recognition, such as, for example, image recognition techniques (such as, for example, optical character recognition (OCR) techniques.

De werkwijze omvattende de stappen (a), (c) en (d) en de werkwijze omvattende de stappen (b) (c) en (d) bieden elk reeds voordelen ten opzichte van de stand der techniek. Indien de werkwijze zowel stappen (a) en (b) omvat, wordt stap (a) bij voorkeur uitgevoerd voor stap (b). De performantie van de werkwijze omvattende de stappen (a), (b) , (c) en (d) is typisch beter dan de performantie van de werkwijze die de stappen (b), (c) en (d) omvat maar niet de stap (a).The method comprising the steps (a), (c) and (d) and the method comprising the steps (b) (c) and (d) each already offer advantages over the prior art. If the method comprises both steps (a) and (b), step (a) is preferably performed before step (b). The performance of the method comprising steps (a), (b), (c) and (d) is typically better than the performance of the method comprising steps (b), (c) and (d) but not the step (a).

In voorkeursuitvoeringsvormen, omvat de werkwijze het automatisch onderzoeken van de grafische gebruikersinterface naar de aanwezigheid van velden van het lijst-type die door de gebruiker niet als lijsten ervaren worden, en het identificeren ervan, de volgende stappen: - het identificeren van alle velden van het lijst-type; - voor elk geidentificeerd veld van het lijst-type, i. voor elke cel ervan; - het identificeren van de inhoudelijke aard van de objecten in de cel, hierbij hun voorafbepaalde respectievelijke categorieën definiërend; - het berekenen van de relatieve oppervlakte van elk object; - het bepalen van de totale som van de relatieve oppervlaktes van de objecten die tot dezelfde categorie behoren, voor alle voorkomende categoriëen, hierbij een n-tuple (geordende set van n elementen) definiërend in een n-dimensionale ruimte, waarin n het aantal beschikbare categoriën voorstelt; ii. het bepalen van een afstand tussen elke twee cellen in de n-dimensionale ruimte, volgens een vooraf bepaalde metriek; iii. het vaststellen of alle cellen binnen een vooraf bepaalde drempel afstand van elkaar liggen, en bij gevolg als gelijk kunnen worden beschouwd; iv. het beslissen of er wel degelijk sprake is van een veld van het lijst-type die door de gebruiker als een lijst wordt ervaren gebaseerd op het al dan niet gelijk zijn van alle cellen in het respectievelijke veld.In preferred embodiments, the method comprises automatically examining the graphical user interface for the presence of list-type fields that are not experienced as lists by the user, and identifying them, the following steps: - identifying all fields of the list type; - for each identified field of the list type, i. for each cell thereof; - identifying the content nature of the objects in the cell, thereby defining their predetermined respective categories; - calculating the relative area of each object; - determining the total sum of the relative areas of the objects that belong to the same category, for all occurring categories, hereby defining an n-tuple (ordered set of n elements) in an n-dimensional space, where n is the number of available categories; ii. determining a distance between every two cells in the n-dimensional space, according to a predetermined metric; iii. determining whether all cells are within a predetermined threshold distance from each other and can therefore be considered equal; iv. deciding whether or not there is indeed a list-type field that is perceived by the user as a list based on whether or not all cells in the respective field are equal.

In voorkeursuitvoeringsvormen, betreft de vooraf bepaalde drempel afstand tussen twee cellen in de n-dimensionele ruimte een vooraf bepaald percentage van de grootste van de twee afstanden van de respectievelijke cellen tot de oorsprong van de n-dimensionale ruimte.In preferred embodiments, the predetermined threshold distance between two cells in the n-dimensional space is a predetermined percentage of the greater of the two distances of the respective cells to the origin of the n-dimensional space.

De vooraf bepaalde metriek kan bijvoorbeeld een n-dimensionale gewone metriek zijn (ook euclidische afstand genoemd) zijn waarvoor de afstand tussen twee vectoren x=(xi, x2,..., Xn) en y=(yi, y2,..., yn) gedefinieerd wordt als ((xi- yi)2+( x2- y2)2+...+ (xn- yn)2)1/2.The predetermined metric can be, for example, an n-dimensional ordinary metric (also called euclidean distance) for which the distance between two vectors x = (xi, x2, ..., Xn) and y = (yi, y2, ... , yn) is defined as ((xi-yi) 2+ (x2-y2) 2 + ... + (xn-yn) 2) 1/2.

In voorkeursuitvoeringsvormen, omvat het automatisch onderzoeken van de grafische gebruikersinterface en het identificeren van verzamelingen van velden die door de gebruiker als respectievelijke lijsten ervaren worden, de volgende stappen: a) het genereren van een oplijningsrooster voor de grafische gebruikersinterface, gebaseerd op het geheel van objecten aanwezig in de grafische gebruikersinterface, waarbij horizontale en verticale lijnen die het rooster definiëren en overeenstemmen met ten minste twee opgelijnde objecten; b) het bepalen of de objecten die opgelijnd zijn volgens de lijnen van het rooster een lijst vormen van geassocieerde elementen.In preferred embodiments, automatically examining the graphical user interface and identifying sets of fields that are perceived by the user as respective lists, comprises the following steps: a) generating an alignment grid for the graphical user interface based on the set of objects present in the graphical user interface, wherein horizontal and vertical lines defining the grid and corresponding to at least two aligned objects; b) determining whether the objects aligned along the lines of the grid form a list of associated elements.

In voorkeursuitvoeringsvormen, omvat het genereren van een oplijningsrooster het sequentieel aftoetsen, voor elke object, of er een of meerdere opgelijnd(e) object(en) aanwezig is/zijn in de grafische gebruikersinterface, en, indien dit het geval is, het genereren van de geassocieerde rooster lijn.In preferred embodiments, generating an alignment grid comprises sequentially testing, for each object, whether one or more aligned object (s) is / are present in the graphical user interface and, if this is the case, generating the associated schedule line.

In voorkeursuitvoeringsvormen, omvat de werkwijze het sequentieel aftoetsen volgens een voorafbepaalde (e.g. gangbare) leesrichting (bvb. regel leesrichting (bvb. van links naar rechts) en nieuwe regel richting (bvb. van boven naar onder)).In preferred embodiments, the method includes sequential testing according to a predetermined (e.g., conventional) reading direction (e.g., line reading direction (e.g., from left to right) and new control direction (e.g., from top to bottom)).

In voorkeursuitvoeringsvormen, omvat het bepalen of de objecten die opgelijnd zijn volgens de lijnen van het rooster een lijst vormen, de volgende stappen, voor elke reeks van opgelijnde objecten : a) het bepalen van een horizontale of verticale band in de grafische gebruikersinterface waarin deze objecten vervat zijn, bijvoorbeeld minimaal vervat zijn (in dat geval een minimale verticale of horizontale band); b) het bepalen of de opgelijnde objecten elkaar rechtstreeks opvolgen binnen de band, zonder gescheiden te zijn door andere objecten; c) indien (b) negatief is, het bepalen of the opgelijnde objecten gescheiden worden door andere objecten van de grafische gebruikersinterface die zich binnen de band bevinden en een regelmatig patroon vormen.In preferred embodiments, determining whether the objects aligned along the lines of the grid form a list comprises the following steps for each set of aligned objects: a) determining a horizontal or vertical band in the graphical user interface in which these objects be contained, for example minimally contained (in that case a minimal vertical or horizontal band); b) determining whether the aligned objects follow each other directly within the band, without being separated by other objects; c) if (b) is negative, determining whether the aligned objects are separated by other objects from the graphical user interface that are within the band and form a regular pattern.

In voorkeursuitvoeringsvormen, omvatten de horizontale en verticale banden de respectievelijke opgelijnde objecten en omvatten ze verder aan weerszijden van de objecten een marge/verbreding die een functie is van de dimensies van de objecten of van de minimale banden in de respectievelijke horizontale en verticale richtingen. De marges is aan weerzijden bij voorkeur groter dan 10%, of groter dan 20%, of groter dan 30%, of groter dan 50%, van de breedte van de minimale band die de opgelijnde objecten omvat.In preferred embodiments, the horizontal and vertical bands include the respective aligned objects and further comprise a margin / widening on either side of the objects that is a function of the dimensions of the objects or of the minimal bands in the respective horizontal and vertical directions. The margins on either side are preferably greater than 10%, or greater than 20%, or greater than 30%, or greater than 50%, of the width of the minimum band comprising the aligned objects.

In voorkeursuitvoeringsvormen, omvat de werkwijze verder het groeperen van eerder geidentificeerde lijsten van objecten, gebaseerd op het in de grafische gebruikersinterface omvattend zijn van objecten van een eerste lijst voor objecten van een tweede lijst, hierbij een nieuwe lijst vormend van cellen die meer dan één object per cel omvatten.In preferred embodiments, the method further comprises grouping previously identified lists of objects based on the inclusion in the graphical user interface of objects from a first list for objects from a second list, thereby forming a new list of cells containing more than one object per cell.

In voorkeursuitvoeringsvormen, omvat de werkwijze verder het groeperen van eerder geïdentificeerde lijsten van objecten en/of cellen, wanneer er een systematische verticale of horizontale oplijning bestaat tussen de respectievelijke objecten en/of cellen.In preferred embodiments, the method further comprises grouping previously identified lists of objects and / or cells when there is a systematic vertical or horizontal alignment between the respective objects and / or cells.

Een tweede aspect van de onderhavige uitvinding omvat een computer programma (of computer programma product) aangepast om een werkwijze volgens een der voorgaande conclusies uit te voeren, wanneer uitgevoerd op een computer.A second aspect of the present invention comprises a computer program (or computer program product) adapted to perform a method according to any one of the preceding claims, when executed on a computer.

Het valt verder op te merken dat de eigenschappen aanwezig in de beschrijving van verschillende aspecten van de uitvinding, eveneens toepasbaar zijn op de andere aspecten zoals dit zal begrepen worden door een vakman.It is further to be noted that the features present in the description of various aspects of the invention are also applicable to the other aspects as will be understood by those skilled in the art.

De bovenstaande en andere voordelige eigenschappen en doelen van de uitvinding zullen duidelijker worden en de uitvinding zal beter begrepen worden aan de hand van de volgende gedetailleerde beschrijving wanneer ze wordt gelezen in combinatie met de respectievelijke tekeningen.The above and other advantageous features and objects of the invention will become more apparent and the invention will be better understood with reference to the following detailed description when read in conjunction with the respective drawings.

De beschrijving van de aspecten van de onderhavige uitvinding gebeurt door middel van specifieke uitvoeringsvormen en met verwijzing naar, maar niet beperkt tot, bepaalde tekeningen. De afgebeelde figuren zijn slechts schematisch en zouden niet als beperkend moeten worden beschouwd. Bijvoorbeeld bepaalde elementen of eigenschappen kunnen buiten proportie of schaal zijn voorgesteld in verhouding tot andere elementen.The description of the aspects of the present invention takes place by means of specific embodiments and with reference to, but not limited to, certain drawings. The figures shown are merely schematic and should not be construed as limiting. For example, certain elements or properties may be presented out of proportion or scale in relation to other elements.

In de beschrijving van bepaalde uitvoeringsvormen volgens de onderhavige uitvinding, zijn verschillende eigenschappen soms gegroepeerd in een enkele uitvoeringsvorm, figuur, of beschrijving daarvan met als doel bij te dragen tot het begrip van een of meer van de verschillende inventieve stappen. Dit mag niet geinterpreteerd worden alsof alle eigenschappen van de groep noodzakelijk aanwezig zijn om een specifiek probleem op te lossen.In the description of certain embodiments of the present invention, various features are sometimes grouped in a single embodiment, figure, or description thereof for the purpose of contributing to the understanding of one or more of the various inventive steps. This should not be interpreted as if all the properties of the group are necessarily present to solve a specific problem.

Gedetailleerde beschrijving van voorkeursuitvoerinasvormen.Detailed description of preferred embodiments.

De onderhavige uitvinding is gerelateerd aan het domein van het testen van een software applicatie doorheen een grafische gebruikersinterface.The present invention is related to the field of testing a software application through a graphical user interface.

Figuren 1 tot 3 illustreren problemen die voorkomen in de stand der techniek.Figures 1 to 3 illustrate problems that occur in the prior art.

Bijvoorbeeld, de grafische gebruikersinterface omvat het menu afgebeeld in de Figuur 1; deze is door de ontwikkelaar opgebouwd als één lijst. De GUI stelt hier een website van een kledingzaak voor.For example, the graphical user interface includes the menu shown in Figure 1; this is built up by the developer as one list. The GUI proposes a website for a clothing store.

Het feit dat informatie uitgeklapt is, kan men enkel afleiden uit de alignering van de tekst. Mocht een test tool de lijst van de ontwikkelaar overnemen, dan moet de tester nog zelf code ontwikkelen om de alignatie van de tekst te onderzoeken. Indien men dan nog te maken heeft met bijvoorbeeld een multi-taal interface of een menu die dynamisch kan wijzigen, wordt dit een moeilijke taak.The fact that information has been expanded can only be deduced from the alignment of the text. If a test tool takes over the list from the developer, the tester still has to develop code to investigate the alignment of the text. If, for example, you are still dealing with a multi-language interface or a menu that can change dynamically, this becomes a difficult task.

Aspecten van de onderhavige uitvinding laten toe van, uitgaande van de definitie van de GUI objecten, deze lijst en zijn sub lijsten correct te herkennen, zodat de lijsten die het test tool herkent overeenkomen met de lijsten die de gebruiker van de GUI ervaart.Aspects of the present invention allow, based on the definition of the GUI objects, to correctly recognize this list and its sub-lists, so that the lists recognized by the test tool correspond to the lists experienced by the user of the GUI.

In een eerste aspect van de onderhavige uitvinding wordt er geverifieerd of een GUI lijst object samenhangende inhoud omvat. Met andere woorden, wordt er automatisch onderzocht of de grafische gebruikersinterface velden van het lijst-type omvat die door de gebruiker niet als lijsten ervaren worden, en worden deze geidentificeerd.In a first aspect of the present invention, it is verified whether a GUI list includes object-related content. In other words, it is automatically investigated whether the graphical user interface includes list-type fields that are not experienced as lists by the user, and are identified.

De GUI afgebeeld in Fig. 2 laat toe aan de gebruiker van zich aan te melden. Het deel A van het scherm is opgebouwd met een GUI lijst object. De afgebakende zones geven de verschillende cellen aan van de lijst. De cellen omvatten de velden: “bestaande gebruiker”, “paswoord”, “Log In”, “Paswoord vergeten ?”, “Nieuwe gebruiker”, “Maak account aan”.The GUI shown in FIG. 2 allows the user to log in. The part A of the screen is constructed with a GUI list object. The delimited zones indicate the different cells of the list. The cells include the fields: "existing user", "password", "Log In", "Forgot password?", "New user", "Create account".

Het is duidelijk dat de verschillende cellen van de lijst niet dezelfde inhoud weergeven. De ontwikkelaar heeft hier het GUI lijst object enkel (oneigenlijk) gebruikt om de informatie verticaal te aligneren.It is clear that the different cells of the list do not display the same content. Here the developer has only used the GUI list object (improperly) to align the information vertically.

Ook het volgende venster illustreert het ongelijk gebruik van een GUI lijst object A door de ontwikkelaar.The following window also illustrates the uneven use of a GUI list object A by the developer.

De gebruiker / het menselijk oog/brein ervaart echter een lijst I van foto’s (Foto 1, Foto 2) die bvb. aangeven of men informatie over mannen kleding of vrouwen kleding wilt bekomen. Het menselijk oog herkent ook een tweede lijst II, deze van de verschillende types van mannelijke kledingstukken (bvb. Text 1, Text 2).However, the user / human eye / brain experiences a list I of photos (Photo 1, Photo 2) that, for example, indicate whether they want to obtain information about men's clothing or women's clothing. The human eye also recognizes a second list II, that of the different types of male garments (eg Text 1, Text 2).

In een aspect van de onderhavige uitvinding wordt een algoritme voorzien dat toelaat van automatisch dit onderscheid te maken, i.h.b. dat toelaat van een oneigenlijk gebruik van een GUI lijst object automatisch te identificeren.In one aspect of the present invention, an algorithm is provided that allows to make this distinction automatically, in particular. that allows you to automatically identify an improper use of a GUI list object.

Eerst worden alle velden van het lijst-type in de grafische gebruikerinterface geidentificeerd. Voor elk geidentificeerd veld van het lijst-type, of elk van de velden die onderzocht moeten worden, wordt dan hetvolgende uitgevoerd: - voor elke cel van het lijst veld, o het identificeren van de inhoudelijke aard van de objecten in de cel, hierbij hun voorafbepaalde respectievelijke categorieën definiërend; o het berekenen van de relatieve oppervlakte van elk object; o het bepalen van de totale som van de relatieve oppervlaktes van de objecten die tot dezelfde categorie behoren, voor alle voorkomende categoriëen, hierbij een n-tuple (geordende set van n elementen) definiërend in een n-dimensionale ruimte, waarin n een natuurlijk getal is dat het aantal beschikbare of aanwezige categoriën voorstelt.All list-type fields are first identified in the graphical user interface. For each identified field of the list type, or each of the fields to be investigated, the following is then performed: - for each cell of the list field, o identifying the content nature of the objects in the cell, including their defining predetermined respective categories; o calculating the relative area of each object; o determining the total sum of the relative surfaces of the objects that belong to the same category, for all occurring categories, hereby defining an n-tuple (ordered set of n elements) in an n-dimensional space, where n is a natural number is that it represents the number of available or present categories.

De GUI objecten kunnen ingedeeld worden naar inhoudelijke aard in een aantal voorgedefinieerde categoriën, zoals bijvoorbeeld één, meerdere of allen van de volgende types (maar niet extensief; nog andere types zijn hierbij niet uitgesloten): Tekst object, Image object, Touch object, Input object, Numerieke input object.The GUI objects can be classified by content in a number of predefined categories, such as for example one, several or all of the following types (but not extensive; other types are not excluded here): Text object, Image object, Touch object, Input object, Numeric input object.

Voor elke cel wordt dan de relatieve oppervlakte in de grafische gebruikersinterface van alle objecten die erin vervat zitten bijvoorbeeld als volgt bepaald: Relatieve oppervlakte GUI object = oppervlakte GUI object / oppervlakte cel.For each cell, the relative area in the graphical user interface of all objects contained therein is determined, for example, as follows: Relative area GUI object = area GUI object / area cell.

In de veronderstelling dat er bijvoorbeeld vijf categorieën van GUI objecten aanwezig zijn, wordt er bijgevolg voor elke cel een vijf-tuple gegenereerd: (totale relatieve oppervlakte Tekst objecten, totale relatieve oppervlakte Image objecten, totale relatieve oppervlakte Touch objecten, totale relatieve oppervlakte Input objecten, totale relatieve oppervlakte Numerieke input objecten). - het bepalen van een afstand tussen elke twee cellen in de n-dimensionale ruimte, volgens een vooraf bepaalde metriek (gepaste metriek is gekend door de vakman; bvb. een n-dimensionale gewone metriek of n-dimensionale euclidische afstand); - het vaststellen of alle cellen binnen een vooraf bepaalde drempel afstand van elkaar liggen, en bij gevolg als gelijk kunnen worden beschouwd; - het beslissen of er wel degelijk sprake is van een veld van het lijst-type die door de gebruiker als een lijst wordt ervaren gebaseerd op het al dan niet gelijk zijn van alle cellen in het respectievelijke veld.For example, assuming that five categories of GUI objects are present, a five-tuple is generated for each cell: (total relative area Text objects, total relative area Image objects, total relative area Touch objects, total relative area Input objects , total relative area Numerical input objects). - determining a distance between every two cells in the n-dimensional space, according to a predetermined metric (appropriate metric is known to those skilled in the art; e.g. an n-dimensional ordinary metric or n-dimensional euclidean distance); - determining whether all cells are within a predetermined threshold distance from each other and can therefore be considered equal; - deciding whether there is indeed a list-type field that is perceived by the user as a list based on whether all cells in the respective field are the same or not.

Inderdaad, de categorieën zijn de dimensies van een n-dimensionale ruimte. In het voorbeeld bestaan er vijf categorieën en dus wordt een vijf- dimensionale ruimte gedefinieerd. De som waarde van de categorieën bepaalt de positie van de respectivelijke cel in deze ruimte. Twee cellen worden bijvoorbeeld aan elkaar gelijk beschouwd indien hun afstand kleiner is dan een bepaalde drempelafstand, bvb. 10% of 5% van hun grootste afstand tot het nulpunt van de ruimte.Indeed, the categories are the dimensions of an n-dimensional space. In the example there are five categories and so a five-dimensional space is defined. The sum value of the categories determines the position of the respective cell in this space. For example, two cells are considered equal to each other if their distance is less than a certain threshold distance, e.g. 10% or 5% of their greatest distance to the zero point of the room.

Van de lijst worden alle cellen met elkaar vergeleken. Indien twee cellen niet gelijk zijn, wordt het gehele GUI lijst object beschouwd als een layout object en niet meer als een lijst. De UI lijst verdwijnt en wordt vervangen door de samenstellende elementen in een interface naar een test-gebruiker van de GUI.All cells in the list are compared with each other. If two cells are not equal, the entire GUI list object is considered as a layout object and no longer as a list. The UI list disappears and is replaced by the constituent elements in an interface to a test user of the GUI.

In een verder aspect van de onderhavige uitvinding, wordt een algoritme voorzien dat toelaat van automatisch lijsten te herkennen, ook al werden die door de ontwikkelaar niet als lijst objecten gedefinieerd. In bepaalde uitvoeringsvormen, bij voorkeur, kan dit algoritme ook toegepast worden op GUI objecten die eerder oneigenlijk als GUI lijst objecten werden geimplementeerd, en door middel van het eerder beschreven algoritme als dusdanig werden geidentificeerd, waarna de GUI objecten van de “oneigenlijke lijst”-cellen als onafhankelijke objecten worden beschouwd.In a further aspect of the present invention, an algorithm is provided that allows automatic recognition of lists, even though those were not defined as list objects by the developer. In certain embodiments, preferably, this algorithm can also be applied to GUI objects that were previously improperly implemented as GUI list objects, and identified as such by the previously described algorithm, after which the GUI objects from the "improper list" - cells are considered to be independent objects.

Eerst wordt er een oplijningsrooster gegenereerd voor de grafische gebruikersinterface, gebaseerd op het geheel van objecten aanwezig in de grafische gebruikersinterface, waarbij horizontale (lijnen) en verticale lijnen (kolommen) het rooster definiëren en overeenstemmen met ten minste twee opgelijnde objecten. Dan wordt bepaald of de objecten die opgelijnd zijn volgens de lijnen van het rooster een lijst vormen van geassocieerde objecten.First, an alignment grid is generated for the graphical user interface, based on the set of objects present in the graphical user interface, with horizontal (lines) and vertical lines (columns) defining the grid and corresponding to at least two aligned objects. Then it is determined whether the objects aligned along the lines of the grid form a list of associated objects.

Het genereren van een oplijningsrooster omvat bijvoorbeeld het sequentieel of opeenvolgend aftoetsen, voor elke GUI object, of er een of meerdere opgelijnd(e) object(en) aanwezig is/zijn in de grafische gebruikersinterface, en, indien dit het geval is, het genereren van de geassocieerde rooster lijn. Dit gebeurt bij voorkeur in een volgorde volgens een voorafbepaalde leesrichting.Generating an alignment schedule includes, for example, sequential or sequential testing, for each GUI object, if one or more aligned object (s) is / are present in the graphical user interface and, if this is the case, generating of the associated schedule line. This is preferably done in a sequence according to a predetermined reading direction.

Een meer gedetailleerde werkwijze wordt nu beschreven. In een initiele fase maakt met een overzicht van de plaats van (linker bovenhoek voor onze leeswijze) de GUI objecten die inhoud bevatten voor de eindgebruiker. Eenmaal dit overzicht is opgebouwd gaat men rijen en kolommen van gealigneerde objecten herkennen. De rijen worden vastgelegd volgens volgende relaties: - Horizontaal gealigneerd met de top (yTop); - Horizontaal gealigneerd met het middelpunt (yCenter); - Horizontaal gealigneerd met de onderkant (yBottom); - Verticaal gealigneerd met de linkerkant (xLeft); - Verticaal gealigneerd met de het middelpunt (xCenter); - Verticaal gealigneerd met de rechterkant (xRight);A more detailed method is now described. In an initial phase, with an overview of the location of (top left corner for our reading method) the GUI creates objects that contain content for the end user. Once this overview has been established, rows and columns of aligned objects will be recognized. The rows are recorded according to the following relationships: - Horizontally aligned with the top (yTop); - Horizontally aligned with the center (yCenter); - Horizontally aligned with the bottom (yBottom); - Vertically aligned with the left side (xLeft); - Vertically aligned with the center point (xCenter); - Vertically aligned with the right side (xRight);

Het algoritme wordt bij voorkeur toegepast volgens de richting waarin geschreven wordt in de taal die de applicatie hanteert. Voor de westerse talen, bvb.de nederlandse en engelse taal schrijft en leest men van links naar rechts (regel leesrichting, rij richting) en is de volgende regel onder de vorige (nieuwe regel richting, kolom richting). Voor het Nederlands of andere Germaanse of Latijnse talen is dus de regel leesrichting (rij richting) horizontaal van links naar rechts, de nieuwe regel richting (kolom richting) is verticaal van boven naar beneden.The algorithm is preferably applied according to the direction in which writing is done in the language used by the application. For the western languages, eg the dutch and english language one writes and reads from left to right (line reading direction, row direction) and the next line is below the previous one (new line direction, column direction). For Dutch or other Germanic or Latin languages, the line reading direction (row direction) is horizontal from left to right, the new line direction (column direction) is vertical from top to bottom.

Men start vanaf het start punt volgens de leesrichting. In het Nederlands is dit de linker bovenhoek. Er wordt nagegaan of er voor dit GUI element volgens de yTop, yCenter of yBottom gealigneerd is met andere elementen met dezelfde implementatie op besturingssyteem (ENG : Operating system (OS)) niveau. Bijvoorbeeld, men heeft een knop op de GUI. Deze knop is geïmplanteerd door de klasse ‘UIButton’. Men zoekt dan naar andere knoppen geimplementeerd door “UIButton” die gealigneerd zijn. Voor het object gaan we niet alleen het horizontaal aligneren na maar ook het verticaal aligneren.You start from the starting point according to the reading direction. In Dutch this is the top left corner. It is checked whether for this GUI element according to the yTop, yCenter or yBottom there is alignment with other elements with the same implementation at operating system (ENG: Operating system (OS)) level. For example, one has a button on the GUI. This button is implanted by the "UIButton" class. You then search for other buttons implemented by "UIButton" that are aligned. For the object we not only examine the horizontal alignment but also the vertical alignment.

Figuur 4 (a) geeft een GUI weer met links op het scherm van een lijst van representatieve abeeldingen (F1, F2, F6) van video’s (bijvoorbeeld een www.voutube.com © gebruikersinterface). Het veld “website” omvat bijvoorbeeld de informatie “www.voutube.com". Een zoekveld “zoekveld” is aanwezig om videobestanden op te zoeken. De gesuggereerde videobestanden of opgezochte bestanden worden dan in de rest van de GUI afgebeeld (deel B). Elk van de bestanden wordt afgebeeld met een foto, die intern nog een bekeken-veld (BV) omvat dat aangeeft of het bestand al werd bekeken door de gebruiker, alsook een duur-veld (DV) dat aangeeft wat de normale afspeeltijd is van het bestand. Merk op dat de bekeken en duur velden steeds worden afgebeeld in de afbeeldingen (F1, F2, F3, F4, F5, F6). Rechts van de respectievelijke afbeeldingen staan telkens respectievelijke titel-velden (Tekst groot) en beschrijvings-velden (Tekst klein). Verder naar recht komt er steeds een “...” svmbool naast de respectievelijke Tekst Groot velden, die van het drukknop tvpe zijn en bijvoorbeeld kunnen aangeklikt worden om meer informatie over het videobestand op te halen. A priori vormen de opgelijste bestanden geen lijst, i.e. maken ze niet deel uit van een GUI lijst object. Ze worden echter door de gebruiker als een lijst ervaren.Figure 4 (a) shows a GUI with links on the screen of a list of representative images (F1, F2, F6) of videos (for example, a www.voutube.com © user interface). The "website" field, for example, contains the information "www.voutube.com". A search field "search field" is present to search for video files. The suggested video files or searched files are then displayed in the rest of the GUI (part B). Each of the files is displayed with a photo, which internally includes another viewed field (BV) that indicates whether the file has already been viewed by the user, as well as a duration field (DV) that indicates the normal playback time of the Note that the viewed and duration fields are always displayed in the images (F1, F2, F3, F4, F5, F6), to the right of the respective images are respective title fields (Large text) and description fields ( Text small) Further to the right there is always a "..." svmbool next to the respective Text Large fields, which are from the push button tvpe and can be clicked, for example, to retrieve more information about the video file. list files no list, i.e. they are not part of a GUI list object. However, they are perceived by the user as a list.

In Fig. 4(b) worden roosterlijnen afgebeeld met een punt voor de GUI objecten met inhoud voor de eindgebruiker, die gebaseerd op oplijning in eerste instantie worden herkend. De kolommen zijn gevisualiseerd door de verticale lijnen. Zes verticale roostenlijnen worden gegenereerd, die een eerste oplijningsrooster vormen. Deze komen overeen met opgelijnde objecten van de tvpes afbeelding, duurtijd, bekeken, titel, beschrijving en “...” .In FIG. 4 (b), grid lines are displayed with a dot for the GUI objects with content for the end user, which are initially recognized based on alignment. The columns are visualized by the vertical lines. Six vertical grid lines are generated, which form a first alignment grid. These correspond to aligned objects of the tvpes image, duration, views, title, description and "...".

De herkende rijen/kolommen zijn niet noodzakelijk onderdeel van lijsten.The recognized rows / columns are not necessarily part of lists.

Tussenliggende informatie tussen twee objecten van een rij kunnen maken dat de rij niet herkend wordt als een lijst.Intermediate information between two objects of a row can cause the row not to be recognized as a list.

Lijsten zijn opgebouwd uit cellen. Deze cellen hoeven niet op gelijke afstand van elkaar te staan gezien bijvoorbeeld de hoeveelheid informatie die ze bevatten verschillend kan zijn.Lists are made up of cells. These cells do not have to be at the same distance from each other, for example, the amount of information they contain can be different.

Het bepalen of de objecten die opgelijnd zijn volgens de lijnen van het rooster een lijst vormen, omvat bij voorkeur, voor elke reeks van opgelijnde objecten / geidentificeerde roosterlijn : a) het bepalen van een horizontale of verticale band in de grafische gebruikersinterface waarin deze objecten vervat zijn; b) het bepalen of de opgelijnde objecten elkaar rechtstreeks opvolgen binnen de band, zonder gescheiden te zijn door andere objecten; c) indien (b) negatief is, het bepalen of the opgelijnde objecten gescheiden worden door andere objecten van de grafische gebruikersinterface die zich binnen de band bevinden en een regelmatig patroon vormen.Determining whether the objects lined up along the lines of the grid form a list preferably includes, for each set of aligned objects / identified grid line: a) determining a horizontal or vertical band in the graphical user interface that includes those objects to be; b) determining whether the aligned objects follow each other directly within the band, without being separated by other objects; c) if (b) is negative, determining whether the aligned objects are separated by other objects from the graphical user interface that are within the band and form a regular pattern.

Bij voorkeur omvatten de horizontale en verticale banden de respectievelijke opgelijnde objecten minimaal, of omvatten de banden verder aan weerszijden van de objecten een marge/verbreding die bijvoorbeeld een functie is van de dimensies van de objecten in de respectievelijke horizontale en verticale richtingen, of bijvoorbeeld een functie is van de dimensies van de minimale banden.Preferably, the horizontal and vertical bands comprise the respective aligned objects at a minimum, or the bands further comprise a margin / widening on either side of the objects that is, for example, a function of the dimensions of the objects in the respective horizontal and vertical directions, or, for example, a function of the dimensions of the minimum bands.

Bijvoorbeeld, vertrekkend in het opgebouwde rooster terug vanaf het eerste GUI object volgens de leesrichting. Dit is in het Nederlands de linker bovenhoek. Indien hier twee GUI objecten zouden staan, vertrekt men bij voorkeur van het grootste element. Er wordt nagegeaan of dit UI object behoort tot een rij in de regel leesrichting. Indien dit het geval is, wordt er nagegaan of deze rij een nieuwe lijst is. Indien dit niet het geval is of indien de rij geen nieuwe lijst was, wordt er nagegaan of het GUI object behoort tot een rij in de nieuwe regel richting. Indien dit het geval is, wordt er nagegaan of deze kolom een nieuwe lijst is.For example, starting from the constructed schedule back from the first GUI object according to the reading direction. This is the top left corner in Dutch. If two GUI objects are to be found here, the largest element is preferably used. It is checked whether this UI object belongs to a row in the line reading direction. If this is the case, it is checked whether this row is a new list. If this is not the case or if the row was not a new list, it is checked whether the GUI object belongs to a row in the new line direction. If this is the case, it is checked whether this column is a new list.

Indien een nieuwe lijst herkend werd in de vorige paragraaf, wordt voor elk object van deze lijst het volgende uitgevoerd: - verwijder het object uit het rooster; - indien het object binnen zijn contour andere GUI objecten omvat, voer deze objecten dan toe tot de cel waartoe het omgevende object behoort, en verwijder deze objecten uit het rooster. Met andere woorden, de cel van de lijst groeit aan met objecten die omvat worden door het grootste object van die cel; - indien tussen twee opeenvolgende cellen van een lijst er objecten liggen binnen de band en die gedekt worden door een patroon, voeg dan deze tussenliggende objecten toe aan de eerste cel van de twee opeenvolgende cellen en verwijder deze objecten uit het rooster.If a new list was recognized in the previous paragraph, the following is performed for each object in this list: - remove the object from the grid; - if the object contains other GUI objects within its contour, then add these objects to the cell to which the surrounding object belongs, and remove these objects from the grid. In other words, the cell of the list grows with objects that are contained by the largest object of that cell; - if there are objects within the band between two consecutive cells of a list and are covered by a pattern, add these intermediate objects to the first cell of the two consecutive cells and remove these objects from the grid.

Voer dan de herkende lijst toe in het rooster.Then enter the recognized list in the schedule.

Een rij/kolom vormt een lijst indien hij aaneensluitend is of indien hij niet aaneensluitend is maar de objecten die de rij/kolom objecten scheiden liggen binnen een band en vormen een patroon. Met andere woorden een rij/kolom is een lijst wanneer: - er tussen de twee opeenvolgende objecten van de rij/kolom geen andere objecten zijn en dit binnen de band van de rij/kolom; of - er bevinden zich tussen de twee opeenvolgende objecten van de rij/kolom andere objecten, maar deze bevinden zich enkel in de band en een patroon kan toegepast worden voor deze objecten.A row / column forms a list if it is contiguous or if it is contiguous but the objects separating the row / column objects are within a band and form a pattern. In other words, a row / column is a list when: - there are no other objects between the two consecutive objects of the row / column within the band of the row / column; or - there are other objects between the two consecutive objects of the row / column, but these are only in the band and a pattern can be applied for these objects.

De aanwezigheid van een patroon kan bijvoorbeeld bepaald worden met een werkwijze die de volgende stappen omvat: - het indelen van de objecten die tussen de twee cellen (of objecten) in de band liggen volgens hun inhoud (categorie), bvb. zoals aangegeven in het eerder beschreven algoritme voor de identificatie van oneigenlijk gebruikte GUI lijst objecten; - het bepalen van een reeks gedefinieerd door de opeenvolgende veranderingen/variaties van categorieen van GUI objecten bij het doorlopen van de betreffende band tussen de twee cellen; - het bepalen of de reeks een opeenvolging vormt van een basispatroon of substrings van een basispatroon, waarbij de substrings telkens ten minste een voorste deel van het basispatroon omvatten.The presence of a pattern can, for example, be determined by a method comprising the following steps: - classifying the objects that lie between the two cells (or objects) in the band according to their content (category), e.g. as indicated in the previously described algorithm for the identification of improperly used GUI list objects; - determining a series defined by the successive changes / variations of categories of GUI objects when traversing the relevant band between the two cells; - determining whether the series forms a sequence of a basic pattern or substrings of a basic pattern, wherein the substrings each comprise at least a front part of the basic pattern.

Voorbeeld 1: wanneer de categorieën van objecten van een rij/kolom de volgende reeks zou definiëren: a b c a b b c a b c c c, dan wordt de reeks gedefinieerd door de opeenvolgende veranderingen/variaties van categorieen van GUI objecten bij het doorlopen van de betreffende rij/kolom: a b c a b c a b c. Deze reeks is een opeenvolging van herhalingen van het volledige basispatroon a b c. Er is bijgevolg een patroon aanwezig.Example 1: if the categories of objects of a row / column were to define the following series: a b c a b b c a b c c c, then the series is defined by the successive changes / variations of categories of GUI objects when going through the relevant row / column: a b c a b c a b c. This series is a sequence of repeats of the complete basic pattern a b c. A pattern is therefore present.

Voorbeeld 2: wanneer de categorieën van objecten van een rij/kolom de volgende reeks zou definiëren: a b c a b b a b c c c, dan wordt de reeks gedefinieerd door de opeenvolgende veranderingen/variaties van categorieën van GUI objecten bij het doorlopen van de betreffende rij/kolom: a b c a b a b c. Deze reeks is een opeenvolging van het basispatroon a b c, een substring a b die een voorste deel van het basispatroon a b c vormt, en een verder basispatroon a b c. Er is bijgevolg ook een patroon aanwezig.Example 2: if the categories of objects of a row / column were to define the following series: a b c a b b a b c c c, then the series is defined by the successive changes / variations of categories of GUI objects when going through the relevant row / column: a b c a b a b c. This series is a sequence of the basic pattern a b c, a substring a b that forms a front part of the basic pattern a b c, and a further basic pattern a b c. A pattern is therefore also present.

Dit wordt bijvoorbeeld geillustreerd in de gebruikerinterface afgebeeld in Fig. 5. In het afgebeelde scherm heeft men een aaneensluitende verticale kolom van tekst objecten X: “Alles”, “Collectie”, “Schoenen” en “tassen”, die en lijst vormen.This is illustrated, for example, in the user interface shown in FIG. 5. In the screen shown there is a contiguous vertical column of text objects X: "All", "Collection", "Shoes" and "bags", which form a list.

Een tweede kolom van objecten Y, omvattende “Vrouw”, “Man”, “Kinderen” en “Baby” betreft geen aaneensluitende kolom van tekst objecten, maar wordt onderbroken door een patroon, nml. telkens de lijsten van het type X. De tweede kolom van objecten Y vormt dus ook een lijst.A second column of objects Y, including "Woman", "Man", "Children" and "Baby" is not a contiguous column of text objects, but is interrupted by a pattern, nml. the X type lists each time. The second column of objects Y therefore also forms a list.

Men heeft opnieuw geen aaneensluitende rij van tekst gaande van “nieuw binnen” tot ‘Kinderen” in kolom Z, daar deze onderbroken wordt door een patroon, nml. telkens lijsten van het type Y. Bijgevolg vormt de kolom Z ook een lijst.Again, there is no contiguous row of text ranging from "new in" to "Children" in column Z, as this is interrupted by a pattern, nml. each type Y lists. Consequently, column Z also forms a list.

Na het toepassen van deze stap, zijn enkele rijen/kolommen uit het rooster verwijderd (samengevoegd) en heeft men nog een kleiner aantal lijsten over. In Figuur 6 wordt dit afgebeeld voor het video keuze scherm eerder beschreven in relatie met Fig. 4(a) en (b).After applying this step, a few rows / columns have been removed from the grid (merged) and there is still a smaller number of lists left. In Figure 6, this is depicted for the video selection screen previously described in relation to Figs. 4 (a) and (b).

De oorspronkelijke zes lijsten werden gereduceerd tot drie lijsten. Inderdaad, objecten van de oorspronkelijke lijsten afbeelding, duurtijd, bekeken, titel, beschrijving en “...” worden nu omvat in nieuwe lijsten (afbeelding, duurtijd, bekeken), (titel, beschrijving) en itThe original six lists were reduced to three lists. Indeed, objects from the original image, duration, views, title, description and “...” lists are now included in new lists (image, duration, views), (title, description) and it

In verdere voorkeursuitvoeringsvormen omvat de werkwijze het (eventueel verder) groeperen van eerder geidentificeerde lijsten van objecten en/of cellen wanneer er een systematische verticale of horizontale oplijning bestaat tussen de respectievelijke objecten en/of cellen, zoals geillustreerd in Fig. 7 en Fig. 8.In further preferred embodiments, the method comprises (optionally further) grouping previously identified lists of objects and / or cells when there is a systematic vertical or horizontal alignment between the respective objects and / or cells, as illustrated in FIG. 7 and FIG. 8.

Bijvoorbeeld, vertrek in het rooster met de eerste lijst volgens de leesrichting. In het Nederlands is dit de lijst die het meest bovenaan links staat. Deze wordt beschouwd als ankerlijst. Er wordt dan nagegaan (1) welk object in het rooster er naast de ankerlijst ligt volgens de richting orthogonaal op de richting van de lijst, en dit volgens de leesrichting; en (2) of dit object, of indien een lijst de samenstellende cellen samengevoegd met de ankerlijst een nieuwe lijst vormt. Bijvoorbeeld, bij een verticale lijst (kolom), ga na wat er aansluitend rechts van de lijst ligt. Neem het object dat in de aangegeven richting het dichtst bij de lijst ligt. Indien het object een lijst is en de lijst heeft dezelfde richting als de ankerlijst, ga dan na of de lijsten en hun cellen gealigneerd zijn in het rooster. Indien het object geen lijst is of indien het object een lijst is met een richting verschillend van de richting van de ankerlijst, ga dan na of het object gealigneerd is met de ankerlijst. De gealigneerde lijsten of objecten worden samengevoegd tot een nieuwe ankerlijst waarop men terug opnieuw deze stap toepast totdat er geen samenvoeging meer kan gebeuren met andere lijsten/objecten.For example, start in the timetable with the first list according to the reading direction. In Dutch this is the list that is at the top left. This is considered as an anchor list. It is then checked (1) which object in the grid is adjacent to the anchor frame in the direction orthogonal to the direction of the frame, and this in the reading direction; and (2) whether this object, or if a list, the constituent cells merged with the anchor list, forms a new list. For example, with a vertical list (column), check what is next to the right of the list. Take the object closest to the list in the direction indicated. If the object is a list and the list has the same direction as the anchor list, check if the lists and their cells are aligned in the grid. If the object is not a list or if the object is a list with a direction different from the direction of the anchor list, check whether the object is aligned with the anchor list. The inline lists or objects are merged into a new anchor list to which this step is applied again until no more merging can be done with other lists / objects.

De ankerlijst is gealigneerd met een naastliggende lijst in het rooster wanneer voor elke cel van de ankerlijst, de overlap/doorsnede tussen de aanliggende lijst en de projectie van die cel van de ankerlijst op de aanliggende lijst volgens de richting loodrecht op de richting van de ankerlijst (zijnde van de rij of kolom ; of van de betreffende roosterlijn) telkens samenvalt met één of meerdere cellen van de aanliggende lijst, ofwel ledig is. Met andere woorden, een ankerlijst is gealigneerd met een naastliggende lijst in het rooster wanneer voor elke cel in de ankerlijst telkens : - of, een oplijning bestaat met één of meerdere cellen van de aanliggende lijst; - of, er geen cellen in de naastliggende lijst aanwezig zijn.Figuren 7 en 8 illustreren dit principe.The anchor list is aligned with an adjacent list in the grid when for each cell of the anchor list, the overlap / cross-section between the adjacent list and the projection of that cell from the anchor list onto the adjacent list in the direction perpendicular to the direction of the anchor list (being from the row or column; or from the relevant grid line) each time coincides with one or more cells from the adjacent list, or is empty. In other words, an anchor list is aligned with an adjacent list in the grid when, for each cell in the anchor list: - or, an alignment exists with one or more cells of the adjacent list; - or, there are no cells in the adjacent list. Figures 7 and 8 illustrate this principle.

Bovenstaande werkwijze wordt iteratief toegepast op het telkens overblijvende rooster totdat er zich aan het rooster geen wijzingen meer voordoen.The above method is applied iteratively to the remaining grid until there are no more changes to the grid.

Wanneer men deze verdere groepering toepast op het video selectie scherm zoals beschreven in relatie met Fig. 6, verkrijgt men een enkele lijst zoals ervaren door de gebruiker, nml. waarin ook de drie eerder bekomen lijsten worden samengevoegd tot één lijst, met in elke cel (afbeelding, duurtijd, bekeken, titel, beschrijving, “...” .)When applying this further grouping to the video selection screen as described in relation to FIG. 6, one obtains a single list as experienced by the user, nml. in which also the three previously obtained lists are merged into one, with in each cell (image, duration, viewed, title, description, "...".)

Terwijl de beginselen van de uitvinding hierboven beschreven zijn in verband met specifieke uitvoeringsvormen, moet het duidelijk begrepen worden dat deze beschrijving slechts gemaakt is bij wijze van voorbeeld, en niet beperkend is voor het bereik van bescherming die bepaald is door de toegevoegde conclusies. Terwijl sommige hierin beschreven uitvoeringsvormen sommige maar geen andere eigenschappen begrepen in andere uitvoeringsvormen omvatten, zijn combinaties of eigenschappen van verschillende uitvoeringsvormen bedoeld om zich binnen het bereik van de uitvinding te bevinden, en verschillende uitvoeringsvormen te vormen, zoals begrepen zou worden door de vakman.While the principles of the invention have been described above in connection with specific embodiments, it is to be clearly understood that this description is made by way of example only, and is not limitative of the scope of protection defined by the appended claims. While some embodiments described herein include some but no other features included in other embodiments, combinations or features of different embodiments are intended to be within the scope of the invention, and to form different embodiments, as would be understood by those skilled in the art.

Claims (10)

ConclusiesConclusions 1. Een werkwijze voor het testen van een software applicatie doorheen een grafische gebruikersinterface, omvattende b) het automatisch onderzoeken van de grafische gebruikersinterface en het identificeren van verzamelingen van velden die door de gebruiker als respectievelijke lijsten ervaren worden; c) het genereren van herwerkte lijst-informatie zoals die door de gebruiker ervaren wordt, gebaseerd op de resultaten van stap (b); d) het gebruiken van de herwerkte lijst-informatie tijdens het automatisch testen van de applicatie doorheen de gebruikersinterface.A method for testing a software application through a graphical user interface, comprising b) automatically examining the graphical user interface and identifying sets of fields experienced by the user as respective lists; c) generating reworked list information as experienced by the user based on the results of step (b); d) using the reworked list information during automatic testing of the application through the user interface. 2. Een werkwijze volgens conclusie 1, waarin het automatisch onderzoeken van de gebruikersinterface het automatisch analyseren omvat van objecten zoals deze gedefinieerd zijn door de ontwikkelaar van de applicatie.A method according to claim 1, wherein automatically examining the user interface comprises automatically analyzing objects as defined by the application developer. 3. Een werkwijze volgens één der voorgaande conclusies, waarin het automatisch onderzoeken van de grafische gebruikersinterface en het identificeren van verzamelingen van velden die door de gebruiker als respectievelijke lijsten ervaren worden, de volgende stappen omvat: - het genereren van een oplijningsrooster voor de grafische gebruikersinterface, gebaseerd op het geheel van objecten aanwezig in de grafische gebruikersinterface, waarbij horizontale en verticale lijnen die het rooster definiëren en overeenstemmen met ten minste twee opgelijnde objecten; - het bepalen of de objecten die opgelijnd zijn volgens de lijnen van het rooster een lijst vormen van geassocieerde elementen.A method according to any one of the preceding claims, wherein automatically examining the graphical user interface and identifying sets of fields experienced by the user as respective lists, comprises the following steps: - generating an alignment grid for the graphical user interface based on the entirety of objects present in the graphical user interface, wherein horizontal and vertical lines defining the grid and corresponding to at least two aligned objects; - determining whether the objects aligned along the lines of the grid form a list of associated elements. 4. Een werkwijze volgens conclusie 3, waarin het genereren van een oplijningsrooster het sequentieel aftoetsen omvat, voor elke object, of er een of meerdere opgelijnd(e) object(en) aanwezig is/zijn in de grafische gebruikersinterface, en, indien dit het geval is, het genereren van de geassocieerde rooster lijn.A method according to claim 3, wherein generating an alignment grid comprises sequential testing, for each object, whether one or more aligned object (s) is / are present in the graphical user interface, and if this is the case, generate the associated grid line. 5. Een werkwijze volgens conclusie 4, omvattende het sequentieel aftoetsen volgens een voorafbepaalde leesrichting en nieuwe regel richting.A method according to claim 4, comprising sequential testing according to a predetermined reading direction and new control direction. 6. Een werkwijze volgens één der conclusies 3 tot 5, waarin het bepalen of de objecten die opgelijnd zijn volgens de lijnen van het rooster een lijst vormen, de volgende stappen omvat, voor elke reeks van opgelijnde objecten : a. het bepalen van een horizontale of verticale band in de grafische gebruikersinterface waarin deze objecten vervat zijn; b. het bepalen of de opgelijnde objecten elkaar rechtstreeks opvolgen binnen de band, zonder gescheiden te zijn door andere objecten; c. indien b. negatief is, het bepalen of the opgelijnde objecten gescheiden worden door andere objecten van de grafische gebruikersinterface die zich binnen de band bevinden en een regelmatig patroon vormen.A method according to any of claims 3 to 5, wherein determining whether the objects that are aligned along the lines of the grid form a list comprises the following steps for each series of aligned objects: a. Determining a horizontal or vertical band in the graphical user interface that contains these objects; b. determining whether the aligned objects follow each other directly within the band, without being separated by other objects; c. if b. negative, determining whether the aligned objects are separated by other objects from the graphical user interface that are within the band and form a regular pattern. 7. Een werkwijze volgens conclusie 6, waarin de horizontale en verticale banden de respectievelijke opgelijnde objecten minimaal omvatten en verder aan weerszijden van de objecten een marge omvatten die een functie is van de dimensies van de objecten in de respectievelijke horizontale en verticale richtingen.A method according to claim 6, wherein the horizontal and vertical bands comprise the respective aligned objects as a minimum and further comprise a margin on either side of the objects that is a function of the dimensions of the objects in the respective horizontal and vertical directions. 8. Een werkwijze volgens één der voorgaande conclusies 3 tot 7, verder omvattende het groeperen van eerder geidentificeerde lijsten van objecten, gebaseerd op het in de grafische gebruikersinterface omvattend zijn van objecten van een eerste lijst voor objecten van een tweede lijst, hierbij een nieuwe lijst vormend van cellen die meer dan één object per cel omvatten.A method according to any one of the preceding claims 3 to 7, further comprising grouping previously identified lists of objects based on being objects of a first list for objects of a second list, including a new list, in the graphical user interface forming cells comprising more than one object per cell. 9. Een werkwijze volgens één der voorgaande conclusies, werder omvattende het groeperen van eerder geidentificeerde lijsten van objecten en/of cellen wanneer er een systematische verticale of horizontale oplijning bestaat tussen de respectievelijke objecten en/of cellen.A method according to any one of the preceding claims, further comprising grouping previously identified lists of objects and / or cells when there is a systematic vertical or horizontal alignment between the respective objects and / or cells. 10. Een computer programma aangepast om een werkwijze volgens een der voorgaande conclusies uit te voeren, wanneer uitgevoerd op een computer.A computer program adapted to perform a method according to any one of the preceding claims, when executed on a computer.
BE2015/5668A 2015-10-16 2015-10-16 Method for testing a software application through a graphical user interface. BE1023690B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
BE2015/5668A BE1023690B1 (en) 2015-10-16 2015-10-16 Method for testing a software application through a graphical user interface.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
BE2015/5668A BE1023690B1 (en) 2015-10-16 2015-10-16 Method for testing a software application through a graphical user interface.

Publications (2)

Publication Number Publication Date
BE1023690B1 true BE1023690B1 (en) 2017-06-15
BE1023690A1 BE1023690A1 (en) 2017-06-15

Family

ID=54697409

Family Applications (1)

Application Number Title Priority Date Filing Date
BE2015/5668A BE1023690B1 (en) 2015-10-16 2015-10-16 Method for testing a software application through a graphical user interface.

Country Status (1)

Country Link
BE (1) BE1023690B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1650660A2 (en) * 2004-10-15 2006-04-26 Microsoft Corporation System and method for making user interface elements visible
US20090273597A1 (en) * 2008-05-05 2009-11-05 International Business Machines Corporation User interface screen layout analysis using hierarchical geometric features
US20110173552A1 (en) * 2008-09-29 2011-07-14 Nec Corporation Gui evaluation system, gui evaluation method, and gui evaluation program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1650660A2 (en) * 2004-10-15 2006-04-26 Microsoft Corporation System and method for making user interface elements visible
US20090273597A1 (en) * 2008-05-05 2009-11-05 International Business Machines Corporation User interface screen layout analysis using hierarchical geometric features
US20110173552A1 (en) * 2008-09-29 2011-07-14 Nec Corporation Gui evaluation system, gui evaluation method, and gui evaluation program

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PEKKA AHO ET AL: "Dynamic reverse engineering of GUI models for testing", 2013 INTERNATIONAL CONFERENCE ON CONTROL, DECISION AND INFORMATION TECHNOLOGIES (CODIT), 1 May 2013 (2013-05-01), pages 441 - 447, XP055257402, ISBN: 978-1-4673-5547-6, DOI: 10.1109/CoDIT.2013.6689585 *
VAN BEUSEKOM J ET AL: "Distance Measures for Layout-Based Document Image Retrieval", DOCUMENT IMAGE ANALYSIS FOR LIBRARIES, 2006. DIAL '06. SECOND INTERNAT IONAL CONFERENCE ON LYON, FRANCE 27-28 APRIL 2006, PISCATAWAY, NJ, USA,IEEE, 27 April 2006 (2006-04-27), pages 232 - 242, XP010912524, ISBN: 978-0-7695-2531-0, DOI: 10.1109/DIAL.2006.16 *

Also Published As

Publication number Publication date
BE1023690A1 (en) 2017-06-15

Similar Documents

Publication Publication Date Title
US20150242761A1 (en) Interactive visualization of machine-learning performance
CA2791590C (en) Biometric matching engine
JP7289047B2 (en) Method, computer program and system for block-based document metadata extraction
JP6951905B2 (en) How to cut out lines and words for handwritten text images
US10565401B2 (en) Sorting and displaying documents according to sentiment level in an online community
KR20160132842A (en) Detecting and extracting image document components to create flow document
US20160034433A1 (en) Digital document change conflict resolution
CN108509436A (en) A kind of method, apparatus and computer storage media of determining recommended
CN103714450A (en) Natural language metric condition alerts generation
US10572769B2 (en) Automatic image piling
EP2782030A1 (en) Method and system for resolving search query ambiguity in a product search engine
CN110175609A (en) Interface element detection method, device and equipment
AU2019208146A1 (en) Information transition management platform
US10963686B2 (en) Semantic normalization in document digitization
EP4085367A1 (en) Automatic generation of alternative content layouts
JP6276126B2 (en) Problem structure extraction support system, problem structure extraction support method and program
CN110147814A (en) Consistency detecting method, device, terminal device and computer readable storage medium
US20160055413A1 (en) Methods and systems that classify and structure documents
BE1023690B1 (en) Method for testing a software application through a graphical user interface.
BE1023683B1 (en) A method for testing a software application through a graphical user interface
Banerjee et al. Impact of cultural-shift on multimodal sentiment analysis
CN110033031B (en) Group detection method, device, computing equipment and machine-readable storage medium
Chernushenko et al. Crowd-labeling fashion reviews with quality control
KR101697992B1 (en) System and Method for Recommending Bug Fixing Developers based on Multi-Developer Network
JP2019086934A (en) Document search device and method

Legal Events

Date Code Title Description
FG Patent granted

Effective date: 20170615

MM Lapsed because of non-payment of the annual fee

Effective date: 20171031