Als ontwikkelaar beschouw je deze tool eerst als weer een hulpmiddel voor opnemen en afspelen van testcases. Maar het leverde eigenlijk geweldige resultaten op in onze uitdagingen. In deze blogpost delen we onze ervaringen, voor- en nadelen, tips en trucs over deze tool van Trendic.
De uitdaging en aanpak
Binnen een project hadden we de taak inzicht te geven in de kwaliteit van de geüpgradede werkstations inclusief software-installaties. Daarbij ging het om negen verschillende werkstations met softwareapplicaties zoals Firefox, Chrome, Microsoft Edge, Office, Adobe PDF-reader en enkele specifieke applicaties. We moesten ook controleren of de prestaties van deze applicaties niet achteruitgingen na de upgrades van het werkstation, zoals hardware en besturingssysteem.
Uiteraard wilden wij niet handmatig gegevens verzamelen. Daarom onderzochten wij wat ICTestAutomation te bieden had. We stonden versteld van de effectiviteit en efficiëntie van de tool.
De eerste stap was het specificeren van de testdoelen. We zijn in gesprek gegaan met de belangrijkste gebruikers van de organisatie om de verificatievereisten en succescriteria voor elke doelstelling te identificeren.
Omdat we verschillende testcases op verschillende werkstations moesten opzetten, hebben we globale bestanden en functies gebruikt om de verschillende teststappen te identificeren. Deze globale functies werden uiteraard gebruikt om redundantie te vermijden. Binnen deze globale functies zijn we begonnen met het programmeren/automatiseren van de vereiste stappen om de userinterface te bedienen. We gebruikten trefwoorden zoals Click, WaitFor en Enter voor UI-elementen die worden gerepresenteerd door afbeeldingen. We hebben er ook voor gezorgd dat alle afbeeldingen die gebruikt zijn tijdens de testuitvoering, werden vastgelegd in een standaardresolutie en andere gerelateerde beeldinstellingen. Dat vereiste dat alle werkstations dezelfde weergave-instellingen moesten hebben om dubbele afbeeldingen te voorkomen.
De voor- en nadelen
Na het project hebben we de voor- en nadelen die ontstaan bij het gebruik van ICTestAutomation op een rij gezet.
Voordelen
- Je kunt snel aan de slag
- Bedrijfsprocessen zijn eenvoudig te testen, niet slechts één applicatie
- Doorgeven van parametersmaakt hergebruik mogelijk
- Geen installatie op het te testen systeem vereist
- Geen specifieke kennis vereist voor object-ID’s van besturingselementen
- Trendic reageert snel op supportvragen
Nadelen
- Je bent afhankelijk van de visuele instellingen van Windows
- Niet mogelijk om te debuggen
- IDE wordt als traag ervaren
- Geen actieve community. Misschien moet er een blogpost komen? :-)
- Te saai voor echte programmeurs?
De geleerde lessen
Hieronder vind je onze learnings die we gebruiken als tips en trucs voor volgende ICTestAutomation implementaties.
1.RDP-instellingen voor beeldkwaliteit en resolutie:
- Gebruik een Remote Desktop-Protocol (of VNC) om een vaste resolutie in te stellen;
- Zorg ervoor dat je in de RDP-instellingen de verbindingssnelheid voor prestaties instelt op “LAN” (10 Mbps of hoger) en schakel alles onder “allow the following” uit;
- Schakel in Windows (SUT) “ClearType” uit;
- Stel in Windows (SUT) “Visual Effects” in op “Best Performance” met SystemPropertiesPerformance.exe;
- Gebruik geen .ini-parameters voor afbeeldingen. Tijdens de ontwikkeling wil je de afbeeldingen via de IDE kunnen zien, in plaats van handmatig het pad op te zoeken.
2. Stabiele CKEY-uitvoering: gebruik kleine (milliseconden) vertragingen als je CKEY gaat gebruiken (tabbladen en andere toetsen). Soms is de SUT te traag om de toetsaanslagen te interpreteren.
3. CI-integratie: ICTestAutomation kan worden geïntegreerd met externe tools. Deze integraties worden gerealiseerd met de ICTestAutomation module ”ICConnect”. De mate van integratie hangt af van de mogelijkheden van de externe oplossing. Bij gebruik van Jenkins is het mogelijk om vanuit Jenkins een automatische regressietest te starten in ICTestAutomation, waarna de resultaten van die test terug kunnen worden ontvangen in Jenkins. Om dit te configureren, moet eerst de Pipeline REST API-plug-in in Jenkins worden geïnstalleerd. Een curl-aanroep naar het externe IC Portal-systeem is vereist om de uitvoering te starten, waarbij een callback-URL wordt doorgegeven volgens het asynchrone pipeline principe.
4. Versiebeheer: gebruik een versiebeheersysteem (zoals git) in plaats van één Windows-bestandsshare. IC Define crasht regelmatig wanneer gebruikers dezelfde bestanden openen tijdens de ontwikkeling.
5. E-mailalerts: In de afspeelopties van CitraTest kun je e-mailalerts instellen. Controleer alerts bij scriptfout, vink alerts-e-mails inschakelen aan, vul bestemmingsadressen en SMTP-server in.
6. Time-outs voor de uitvoering van Runner: Pas de time-out voor de uitvoering van IC Runner aan voor elke client. De ICConsole time-out geldt alleen voor de loper die via ICPortal is gestart. Bewerk TrendIC.ICConsole.exe.config in map C:/Program Files(x86)/ICTestAutomation/ICConsole
<add key=”RunnerExecutionTimeOutInSeconds” value=”600″ />
Waarde -1 kan worden ingevoerd voor een oneindige time-out.
7. IDE IC Define uitvoering time-outs: De IC Define time-out is alleen van toepassing op het uitvoeren van testgevallen met ICDefine. Bewerk Trendic.ICDefine.exe.config in map C:/Program Files(x86)/ICTestAutomation/ICDefine
<add key=”TimeOut” value=”600000” />.
Hier is de time-out in milliseconden.
Waarde -1 kan worden ingevoerd voor een oneindige time-out.
Het resultaat
Het eindresultaat was indrukwekkend en onze opdrachtgever is blij. We bouwden een testsuite van meer dan 70 testcases, die meer dan zes maanden werden gebruikt om de veranderingen van de werkstations na upgrades te monitoren. We hebben enkele interessante prestatieknelpunten gevonden en kwaliteitsgegevens geleverd om inzicht te geven in de vervolgstappen. Het was interessant om een testautomatiseringtool te gebruiken die onafhankelijk is van de onderliggende programmacode, object-ID’s of besturingselementen. Een tool die objecten en bedieningselementen herkent via OCR en beeldherkenningstechnieken.
Er zijn zeker enkele verbeteringen aan te brengen in ICTestAutomation, de tool is nog niet uitontwikkeld. We zouden ICTestAutomation aanraden in omgevingen waar je acties over verschillende applicaties moet automatiseren en verifiëren. Je zult je automatiserings-mindset moeten veranderen door in afbeeldingen en snapshots te denken in plaats van object-ID’s. Als je daar eenmaal bent, kun je nog steeds al je automatiseringsprincipes en -praktijken toepassen om ervoor te zorgen dat je een onderhoudbare oplossing bouwt.
Test Engineer Regio West
- 32 - 40 uur
- €3.000 - €5.500 bruto
- Onbeperkt opleidingsbudget