BE1023683B1 - Een werkwijze voor het testen van een software applicatie doorheen een grafische gebruikersinterface - Google Patents

Een werkwijze voor het testen van een software applicatie doorheen een grafische gebruikersinterface Download PDF

Info

Publication number
BE1023683B1
BE1023683B1 BE2015/5667A BE201505667A BE1023683B1 BE 1023683 B1 BE1023683 B1 BE 1023683B1 BE 2015/5667 A BE2015/5667 A BE 2015/5667A BE 201505667 A BE201505667 A BE 201505667A BE 1023683 B1 BE1023683 B1 BE 1023683B1
Authority
BE
Belgium
Prior art keywords
objects
list
user interface
graphical user
cells
Prior art date
Application number
BE2015/5667A
Other languages
English (en)
Other versions
BE1023683A1 (nl
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/5667A priority Critical patent/BE1023683B1/nl
Application granted granted Critical
Publication of BE1023683A1 publication Critical patent/BE1023683A1/nl
Publication of BE1023683B1 publication Critical patent/BE1023683B1/nl

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

Abstract

Een werkwijze voor het testen van een software applicatie doorheen een grafische gebruikersinterface, omvattende 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 c) het genereren van herwerkte lijst-informatie zoals die door de gebruiker ervaren wordt , gebaseerd op de resultaten van stap (a); d) het gebruiken van de herwerkte lijst-informatie tijdens het automatisch testen van de applicatie doorheen de gebruikersinterface; en geassocieerd computer programma.

Description

Een werkwijze voor het testen van een software applicatie doorheen een grafische gebruikersinterface.
De onderhavige uitvinding is gerelateerd tot het domein van het testen van software applicaties doorgeen een grafische gebruikersinterface.
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.
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.
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.
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.
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.
Samenvatting
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.
Dit word bereikt met de werkwijze van conclusie 1, en het software programma van conclusie 13.
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.
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.
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.
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.
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).
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 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.
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.
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 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 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 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 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 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 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.
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.
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.
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.
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.
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.
Gedetailleerde beschrijving van voorkeursuitvoerinasvormen.
De onderhavige uitvinding is gerelateerd aan het domein van het testen van een software applicatie doorheen een grafische gebruikersinterface.
Figuren 1 tot 3 illustreren problemen die voorkomen in de stand der techniek.
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.
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.
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.
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.
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”.
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.
Ook het volgende venster illustreert het ongelijk gebruik van een GUI lijst object A door de ontwikkelaar.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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);
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.
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.
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.
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 “...” .
De herkende rijen/kolommen zijn niet noodzakelijk onderdeel van lijsten.
Tussenliggende informatie tussen twee objecten van een rij kunnen maken dat de rij niet herkend wordt als een lijst.
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.
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.
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.
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.
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.
Voer dan de herkende lijst toe in het rooster.
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.
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.
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.
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.
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.
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.
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.
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).
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 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.
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.
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.
Bovenstaande werkwijze wordt iteratief toegepast op het telkens overblijvende rooster totdat er zich aan het rooster geen wijzingen meer voordoen.
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, “...” .)
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.

Claims (13)

  1. Conclusies
    1. Een werkwijze voor het testen van een software applicatie doorheen een grafische gebruikersinterface, omvattende 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; c) het genereren van herwerkte lijst-informatie zoals die door de gebruiker ervaren wordt, gebaseerd op de resultaten van stap (a); d) het gebruiken van de herwerkte lijst-informatie tijdens het automatisch testen van de applicatie doorheen de gebruikersinterface.
  2. 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.
  3. 3. Een werkwijze volgens één der voorgaande conclusies, waarin het 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 omvat: a) het identificeren van alle velden van het lijst-type; b) 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 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.
  4. 4. Een werkwijze volgens conclusie 3, waarin de vooraf bepaalde drempel afstand tussen twee cellen in de n-dimensionele ruimte een vooraf bepaald percentage betreft van de grootste van de twee afstanden van de respectievelijke cellen tot de oorsprong van de n-dimensionale ruimte.
  5. 5. Een werkwijze volgens één der voorgaande conclusies, verder 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; en c) het genereren van herwerkte lijst-informatie zoals die door de gebruiker ervaren wordt, gebaseerd op de resultaten van stappen (a) en (b).
  6. 6. Een werkwijze volgens conclusie 5, 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: 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.
  7. 7. Een werkwijze volgens conclusie 6, 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.
  8. 8. Een werkwijze volgens conclusie 7, omvattende het sequentieel aftoetsen volgens een voorafbepaalde leesrichting en nieuwe regel richting.
  9. 9. Een werkwijze volgens één der conclusies 5 tot 8, 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.
  10. 10. Een werkwijze volgens conclusie 9, 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.
  11. 11. Een werkwijze volgens één der voorgaande conclusies 5 tot 10, 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.
  12. 12. 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.
  13. 13. Een computer programma aangepast om een werkwijze volgens een der voorgaande conclusies uit te voeren, wanneer uitgevoerd op een computer.
BE2015/5667A 2015-10-16 2015-10-16 Een werkwijze voor het testen van een software applicatie doorheen een grafische gebruikersinterface BE1023683B1 (nl)

Priority Applications (1)

Application Number Priority Date Filing Date Title
BE2015/5667A BE1023683B1 (nl) 2015-10-16 2015-10-16 Een werkwijze voor het testen van een software applicatie doorheen een grafische gebruikersinterface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
BE2015/5667A BE1023683B1 (nl) 2015-10-16 2015-10-16 Een werkwijze voor het testen van een software applicatie doorheen een grafische gebruikersinterface

Publications (2)

Publication Number Publication Date
BE1023683A1 BE1023683A1 (nl) 2017-06-14
BE1023683B1 true BE1023683B1 (nl) 2017-06-14

Family

ID=54697408

Family Applications (1)

Application Number Title Priority Date Filing Date
BE2015/5667A BE1023683B1 (nl) 2015-10-16 2015-10-16 Een werkwijze voor het testen van een software applicatie doorheen een grafische gebruikersinterface

Country Status (1)

Country Link
BE (1) BE1023683B1 (nl)

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
BE1023683A1 (nl) 2017-06-14

Similar Documents

Publication Publication Date Title
US8832124B2 (en) Biometric matching engine
JP6951905B2 (ja) 手書きテキスト画像に対する行及び単語切り出し方法
US10565401B2 (en) Sorting and displaying documents according to sentiment level in an online community
US20190108203A1 (en) Automatically pairing fonts using asymmetric metric learning
AU2019208146B2 (en) Information transition management platform
US20150032708A1 (en) Database analysis apparatus and method
US20170060732A1 (en) Automated bug detection with virtual machine forking
JPWO2018142753A1 (ja) ディープラーニングを用いる情報処理装置、情報処理方法及び情報処理プログラム
Simond et al. Image aesthetics depends on context
CN106997350B (zh) 一种数据处理的方法及装置
US20220101643A1 (en) Information processing device, discerning method, and discerning program
JP6276126B2 (ja) 問題構造抽出支援システム、問題構造抽出支援方法及びプログラム
US20190171872A1 (en) Semantic normalization in document digitization
CN110147814A (zh) 一致性检测方法、装置、终端设备及计算机可读存储介质
BE1023683B1 (nl) Een werkwijze voor het testen van een software applicatie doorheen een grafische gebruikersinterface
BE1023690B1 (nl) Werkwijze voor het testen van een software applicatie doorheen een grafische gebruikersinterface.
US20230126022A1 (en) Automatically determining table locations and table cell types
US20180165290A1 (en) Media file browsing method and information processing device
JP6199497B2 (ja) データ処理システム
CN110033031B (zh) 群组检测方法、装置、计算设备和机器可读存储介质
Chernushenko et al. Crowd-labeling fashion reviews with quality control
WO2021075995A1 (ru) Способ формирования поисковой выдачи в рекламном виджите
TW202139054A (zh) 表單數據檢測方法、電腦裝置及儲存介質
JP2010237909A (ja) 知識補正プログラム、知識補正装置および知識補正方法
CN107391638A (zh) 规则关联模型的新概念发现方法及装置

Legal Events

Date Code Title Description
FG Patent granted

Effective date: 20170614

MM Lapsed because of non-payment of the annual fee

Effective date: 20171031