Compatibiliteitstests zijn een integraal onderdeel van veel kwaliteitsborgingsstrategieën, waarmee bedrijven kunnen zien of hun software correct presteert op verschillende platforms. Zelfs voor een programma dat alleen op een desktop werkt, moet je rekening houden met verschillende grote besturingssystemen en honderden, zo niet duizenden hardwareverschillen die de stabiliteit kunnen beïnvloeden. Inzicht in het compatibiliteitstestproces en de gebruikelijke voordelen ervan kunnen helpen bij het garanderen van een effectieve productlancering die het grootst mogelijke publiek van gebruikers kan bereiken.
Hoewel compatibiliteitstesten een aantal voordelen kunnen bieden, zijn er ook een aantal belangrijke uitdagingen die een software testteam moet overwinnen om het potentieel van deze techniek te maximaliseren. Er zijn ook specifieke werkwijzen die deze afdelingen moeten toepassen om de beste resultaten te krijgen – en een uitgebreide algehele testdekking te garanderen.
In dit artikel gaan we dieper in op compatibiliteitstesten, inclusief de essentiële stappen die teams moeten volgen en de nuttigste testtools die momenteel beschikbaar zijn.
Wat is compatibiliteitstesten in
software testen & engineering?
Compatibiliteitstests onderzoeken software op verschillende apparaten, hardware en firmware om ervoor te zorgen dat de software presteert volgens de verwachtingen van het team. Elke gebruiker gebruikt zijn programma misschien op een nieuw apparaat en daarom is het belangrijk dat het bedrijf kan garanderen dat ze allemaal dezelfde ervaring hebben. Compatibiliteitstests kunnen bijvoorbeeld inhouden dat elke functie van een app wordt gecontroleerd om er zeker van te zijn dat deze werkt op elk belangrijk besturingssysteem.
Zonder grondige compatibiliteitstests is het heel goed mogelijk dat een bedrijf een applicatie uitbrengt die niet werkt voor bepaalde populaire apparaten. Deze controles moeten volledig zijn omdat een probleem zich op verschillende manieren kan voordoen – deze toepassing werkt bijvoorbeeld niet met een heel specifiek type grafische kaart. In combinatie met andere vormen van softwaretests kunnen teams voor kwaliteitsborging ervoor zorgen dat hun programma klaar is voor vrijgave.
1. Wanneer en waarom moet je compatibiliteitstests uitvoeren voor mobiele applicaties, websites, systemen en cross-browser?
Bedrijven voeren compatibiliteitstesten uit in hun softwaretestfase, met name wanneer ze een ‘stabiele’ versie van het programma hebben die nauwkeurig weergeeft hoe het zich voor klanten zal gedragen. Dit gaat verder na alfa-, acceptatie- en andere vormen van testen waarbij vaak wordt gekeken naar algemene stabiliteit en functiegerelateerde problemen. Als een applicatie problemen ondervindt tijdens de compatibiliteitstestfase, is dit meestal te wijten aan specifieke compatibiliteitsproblemen. Het te vroeg uitvoeren van deze controles kan ze in feite overbodig maken, omdat kleine veranderingen later in de ontwikkelcyclus van het programma de compatibiliteit radicaal kunnen beïnvloeden.
Compatibiliteitstests voor browsers en software zijn belangrijk omdat het bedrijven helpt een applicatie uit te brengen waarvan ze weten dat die goed werkt op vrijwel elk mogelijk apparaat. Bijvoorbeeld, cross-browser compatibiliteitstesten in het bijzonder helpen ervoor te zorgen dat mensen die Opera gebruiken dezelfde ervaring hebben als mensen die Firefox en andere belangrijke browsers gebruiken. Het team test meestal zoveel hardware/software-variaties als hun tijd en budget toelaten. Dit betekent dat ze op intelligente wijze prioriteit moeten geven aan systemen of browsers die hun klanten waarschijnlijk zullen gebruiken, zodat ze een brede testdekking en een levensvatbaar product kunnen garanderen.
2. Wanneer je geen softwarecompatibiliteitstest hoeft te doen
Bedrijven kunnen een applicatie op maat maken voor een specifiek besturingssysteem of model, waardoor het aantal noodzakelijke controles enorm wordt beperkt. Het testen van cross-browser compatibiliteit bij het testen van software kan bijvoorbeeld overbodig zijn als dit programma geen browser nodig heeft. Tijd kan ook een serieuze factor zijn in de mogelijkheid van een bedrijf om deze tests uit te voeren, hoewel testteams nog steeds moeten werken om te garanderen dat de belangrijkste systemen en browsers compatibel zijn met de software. Er zijn ook bepaalde projecten die niet kunnen profiteren van basale compatibiliteitstests.
3. Wie is betrokken bij compatibiliteitstesten?
Dit zijn de belangrijkste mensen die compatibiliteitstesten uitvoeren bij het testen van software:
1. Ontwikkelaars
Het ontwikkelingsteam controleert tijdens de ontwikkeling de prestaties van de applicatie op één platform en dit kan zelfs het enige apparaat zijn waarop het bedrijf het programma wil uitbrengen.
2. Testers
Kwaliteitsteams, binnen het bedrijf of extern ingehuurd, controleren vele mogelijke configuraties als onderdeel van de compatibiliteitstestfase van de applicatie, inclusief alle belangrijke besturingssystemen en browsers.
3. Klanten
De klanten van het bedrijf hebben mogelijk hardware of configuraties die het team niet grondig heeft kunnen testen, waardoor hun gebruikerservaring mogelijk de eerste echte controle van die specifieke opstelling is.
Voordelen van compatibiliteitstesten
De gebruikelijke voordelen van het testen van softwarecompatibiliteit zijn onder andere:
1. Breder publiek
Hoe grondiger een team zijn software test, hoe meer apparaten het met een gerust hart kan uitbrengen, zodat een breed publiek op verschillende platforms kan genieten van de toepassing. Dit stelt bedrijven in staat om meer producten te verkopen via het programma en kan ook het aantal positieve beoordelingen dat deze software ontvangt van gebruikers verbeteren.
2. Verbetert de stabiliteit
Compatibiliteitstests in softwaretests zijn essentieel om stabiliteits- en prestatieproblemen aan het licht te brengen, die vaak meer uitgesproken zijn op verschillende apparaten – vooral als de ontwikkelaars deze applicatie slechts voor één platform hebben ontworpen. Een systeemcompatibiliteitstest laat het bedrijf zien wat gebruikers (op een groot aantal apparaten) kunnen verwachten van de algehele prestaties van de software.
3. Verfijnt ontwikkeling
Deze tests hebben ook aanzienlijke langetermijngevolgen voor een ontwikkelteam. Het testen van mobiele compatibiliteit kan bijvoorbeeld waardevolle informatie opleveren over de ontwikkeling van apps waarmee bedrijven rekening kunnen houden als ze extra programma’s maken. Dit kan de kosten van compatibiliteitstesten voor toekomstige projecten aanzienlijk verlagen, waardoor ze de lessen die ze uit dit proces trekken opnieuw kunnen gebruiken.
4. Verifieert andere tests
De meeste vormen van testen tot nu toe hebben een beperkte reikwijdte en testen niet elke mogelijke hardware- of softwarecombinatie. Cross-browser compatibiliteitstests valideren bijvoorbeeld de reeds bestaande kwaliteitsborgingsstappen door aan te tonen dat de resultaten hetzelfde zijn wanneer de gebruiker een andere browser gebruikt.
5. Vermindert kosten
Compatibiliteitstesten kunnen ook de kosten voor het huidige programma verlagen, omdat ze teams helpen problemen op te sporen voordat een app wordt uitgebracht – op dat moment wordt het herstellen van fouten duurder. Hoe gevarieerder de tests van een team zijn (en hoe hoger hun testdekking), hoe goedkoper het is om fouten te verwijderen als en wanneer ze opduiken.
Uitdagingen van compatibiliteitstesten
Hier zijn veelvoorkomende uitdagingen waar bedrijven mee te maken kunnen krijgen als ze compatibiliteitstesten implementeren bij het testen van software:
1. Beperkte tijd
Hoewel automatiseringstools en andere oplossingen compatibiliteitstests aanzienlijk kunnen versnellen door een reeks apparaten te simuleren, moet dit proces nog steeds binnen het ontwikkelingsschema van het bedrijf blijven. Dit betekent dat het testteam prioriteit moet geven aan de meest gebruikte apparaten en browsers om te garanderen dat ze het breedste (en dichtstbevolkte) publiek ontvangen.
2. Gebrek aan echte apparaten
Bij deze controles worden vaak virtuele machines gebruikt die de onderdelen en omstandigheden van echte apparaten simuleren; dit is veel goedkoper (en sneller) dan het onafhankelijk aanschaffen van de relevante onderdelen en platforms. Dit kan echter de nauwkeurigheid van deze resultaten beïnvloeden, vooral omdat de prestaties vaak afhangen van hoe gebruikers een echt apparaat bedienen.
3. Moeilijk toekomstbestendig te maken
Compatibiliteitstesten kunnen alleen betrekking hebben op platforms die al bestaan; dit betekent dat ze niet kunnen garanderen dat de applicatie naar verwachting zal draaien op toekomstige versies van Windows en Google Chrome. Organisaties zijn alleen in staat om dit na de lancering te herstellen, wat vaak duurder is, en de applicatie kan hierdoor uiteindelijk verouderd zijn.
4. Onderhoud van de infrastructuur
Als een team besluit om een aanzienlijk aantal platforms intern te controleren, kan dit leiden tot hoge infrastructuurkosten. Compatibiliteitstests voor mobiele applicaties kunnen bijvoorbeeld inhouden dat er een aantal echte mobiele apparaten worden gebruikt. Hoewel dit nauwkeuriger is dan gesimuleerde hardwarecompatibiliteitstests, is het duur en gaat het meestal gepaard met regelmatig onderhoud.
5. Hoog aantal combinaties
Compatibiliteitstesten houden rekening met veel kruisende factoren, zoals het besturingssysteem, de browser, hardware, firmware en zelfs de schermresolutie. Zelfs als het testteam veel tijd heeft, zou het in feite onmogelijk zijn om met elke mogelijkheid rekening te houden. Configuratie- en compatibiliteitstesten moeten opnieuw prioriteit geven aan de meest waarschijnlijke apparaatcombinaties.
Kenmerken van compatibiliteitstesten
De belangrijkste kenmerken van compatibiliteitstests zijn:
1. Grondig
Deze controles moeten mogelijke compatibiliteitsproblemen tussen apparaten kunnen isoleren, anders kan het team een fout programma uitbrengen. Deze controles moeten er bijvoorbeeld voor zorgen dat elke functie van de applicatie wordt weergegeven zoals verwacht, ongeacht de schermresolutie van de gebruiker.
2. Expansief
De tests moeten een balans houden tussen diepgang en breedte, zodat teams een aantal problemen kunnen onderzoeken bij veel apparaatconfiguraties. Bij cross-browser compatibiliteitstests wordt gekeken naar een uitgebreide reeks combinaties van besturingssystemen en browsers, waarbij een hoge dekkingsgraad wordt gegarandeerd – soms met behulp van een geautomatiseerde oplossing.
3. Bidirectioneel
Dit proces omvat zowel achterwaartse als voorwaartse compatibiliteitstests; met de eerste kan het team zien hoe hun app zal werken op oudere hardware. Dit laatste geeft het team toegang tot geavanceerde platforms en helpt hen om succesvolle prestaties op de lange termijn te garanderen, ook al zijn hun toekomstbestendige capaciteiten vrij beperkt.
4. Herhaalbaar
De problemen die deze controles aan het licht brengen, moeten gemakkelijk te herhalen zijn door andere testers en afdelingen – om aan te tonen dat ze fouten weergeven die gebruikers waarschijnlijk tegenkomen. Als uit een compatibiliteitstest van een website blijkt dat bepaalde functies niet werken in een bepaalde browser, helpt herhaalbaarheid ontwikkelaars om het probleem aan te pakken.
Soorten compatibiliteitstests
De belangrijkste soorten compatibiliteitstesten zijn de volgende:
1. Testen op achterwaartse compatibiliteit
Het testen van achterwaartse compatibiliteit houdt in dat de app wordt gecontroleerd met oudere versies van de huidige hardware – dit is essentieel omdat het beperken van deze controles tot moderne apparaten het aantal gebruikers aanzienlijk kan beperken. Veel mensen maken nog gebruik van oudere besturingssystemen, zoals Windows 8.
2. Testen op compatibiliteit
Het testen van de compatibiliteit is vergelijkbaar, maar in plaats daarvan wordt er gekeken naar moderne of opkomende technologieën om te zien of de app waarschijnlijk nog jaren zal blijven werken ondanks de vooruitgang en updates. Zonder deze tests zou de software zelfs kunnen stoppen met functioneren met bijvoorbeeld de volgende browserupdate.
3. Browsercompatibiliteitstests
Browsercompatibiliteitstests voor websites zorgen ervoor dat een webapplicatie of site kan werken op verschillende browsers; dit is essentieel omdat ze verschillende opmaakprogramma’s gebruiken. Kwaliteitsteams testen zelfs cross-browser compatibiliteit, wat betekent dat ze controleren of elke browser de applicatie kan verwerken op verschillende besturingssystemen.
4. Testen op mobiele compatibiliteit
Het testen van mobiele apps is een vergelijkbaar proces als het controleren van desktop- en webapplicaties, vooral omdat het besturingssysteem van de telefoon een andere belangrijke factor is. Android- en iOS-apps zijn er bijvoorbeeld in totaal verschillende formaten en vereisen een geheel apart ontwikkel- en testproces voor beide.
5. Hardwarecompatibiliteitstests
Deze controles kijken naar de specifieke onderdelen waaruit de machine is opgebouwd en hoe deze een programma kunnen beïnvloeden; dit is cruciaal voor vrijwel elk type apparaat. Een computer kan bijvoorbeeld een grafische kaart hebben die de interface van een webapplicatie niet goed kan weergeven.
6. Compatibiliteitstests voor apparaten
Sommige applicaties maken verbinding met externe apparaten via Bluetooth, breedband of een bekabelde verbinding. Een app moet bijvoorbeeld verbinding maken met een printer. Deze tests moeten ervoor zorgen dat het programma verbinding maakt met de eigen verbindingen van het platform en alle apparaten waartoe het toegang heeft.
7. Testen van netwerkcompatibiliteit
Als een applicatie netwerkfunctionaliteit nodig heeft om te kunnen draaien – bijvoorbeeld door verbinding te maken met een online database via de server van het bedrijf – dan vereist dit talloze compatibiliteitscontroles. Dit zorgt ervoor dat het programma op een geschikte snelheid kan draaien met een Wi-Fi-, 4G- of 3G-netwerkverbinding.
Wat testen we in compatibiliteitstests?
Compatibiliteitstesters controleren meestal het volgende:
1. Prestaties
Een van de belangrijkste doelen van compatibiliteitstesten is om stabiliteit te garanderen, aangezien sommige aspecten van de applicatie volledig incompatibel kunnen zijn met gangbare platforms. Door te kijken naar de algehele reactiesnelheid van dit programma, zorgt het testteam ervoor dat er geen ernstige crashes zijn op bepaalde apparaten.
2. Functionaliteit
Compatibiliteitstesten controleren ook de algemene kenmerken en functies van een applicatie om ervoor te zorgen dat de software de juiste resultaten kan leveren. Een klantrelatiebeheersysteem kan bijvoorbeeld geen verkoopgegevens of algemene analyses bieden voor gebruikers met een verouderd besturingssysteem.
3. Grafische
Sommige browsers of apparaten kunnen om een aantal redenen moeite hebben met het weergeven van bepaalde grafische elementen – en compatibiliteitscontroles kunnen hierbij helpen. Een programma kan mogelijk alleen werken op specifieke schermresoluties, tenzij de ontwikkelaars veranderen hoe het programma de inhoud weergeeft.
4. Connectiviteit
Compatibiliteitstests kijken ook naar hoe het programma specifiek integreert met zowel het apparaat van de gebruiker als zijn eigen database, waardoor het apparaten zoals printers kan detecteren. Uit deze controles kan bijvoorbeeld blijken dat de app geen verbinding kan maken met zijn eigen database op 3G-netwerken.
5. Veelzijdigheid
Deze controles zorgen ervoor dat de applicatie van het bedrijf veelzijdig genoeg is om te werken op oude en nieuwe versies van hetzelfde besturingssysteem via achterwaartse en voorwaartse compatibiliteitstests. Dit zorgt ervoor dat gebruikers niet worden uitgesloten van het programma als hun software een paar jaar verouderd is.
Typen uitvoer van compatibiliteitstests
De drie belangrijkste resultaten van compatibiliteitstesten zijn:
1. Testresultaten
De meest voorkomende output voor deze controles zijn de resultaten zelf, die vele vormen kunnen aannemen. Uit browsercompatibiliteitstests kan bijvoorbeeld blijken dat een webapp leidt tot een geheugenlek op Microsoft Edge, terwijl dezelfde app geen negatieve effecten heeft op Chrome-gebaseerde browsers. Een andere mogelijkheid is dat de applicatie precies zo werkt als het team verwacht op de relevante platforms.
2. Testlogboeken
De testresultaten komen ook naar voren in de vorm van de logboeken van de applicatie zelf, die door middel van foutmeldingen eventuele softwareproblemen aan het licht brengen. Deze logs kunnen zelfs het specifieke deel van een programma identificeren dat deze fout veroorzaakt. Met name voor compatibiliteitstesten moeten testers bekend zijn met hoe deze logs zich manifesteren en deze problemen presenteren op verschillende platforms.
3. Testgevallen
Compatibiliteitstestcases leggen vast welke tests het team gaat uitvoeren en bieden ruimte om de resultaten in een eenvoudig formaat vast te leggen. De testers moeten hun kennis van de software in combinatie met de resultaten en logboeken gebruiken om de oorzaak van een probleem te achterhalen. Hoe meer informatie ze geven, hoe sneller de ontwikkelaars bugfixes kunnen uitvoeren.
Soorten defecten die zijn gedetecteerd
door middel van compatibiliteitstesten
Hier zijn de meest voorkomende fouten die compatibiliteitstests kunnen identificeren:
1. Lay-out schalen
Een websitecompatibiliteitstest kan aantonen of de elementen waaruit een webapp of zelfs webpagina’s bestaan, passen bij het apparaat van de gebruiker, met name de resolutie en grootte van hun scherm. Hierdoor kunnen sommige afbeeldingen moeilijk te zien zijn op bepaalde browsers.
2. Software crasht
Compatibiliteitstests maken het eenvoudiger om te zien of een applicatie zelfs op sommige platformen kan draaien. Een ontwikkelaar van een game kan bijvoorbeeld de minimale systeemvereisten van zijn product ontdekken door te controleren welke apparaten crashen door onvoldoende RAM en processorsnelheid wanneer testers de game starten.
3. HTML/CSS-validatieproblemen
Verschillende browsers en apparaten lezen code op verschillende manieren, waarbij sommige automatisch eenvoudige typefouten corrigeren, zoals het niet goed sluiten van een HTML-tag. Browsercompatibiliteitstests kunnen gevallen van ongeldige CSS identificeren, waardoor de app zijn inhoud en zelfs basisfuncties niet kan genereren.
4. Fouten bij het afspelen van video
Veel moderne videospelers maken gebruik van HTML5 om video’s online te streamen en dit kan een belangrijk onderdeel zijn van de webapp van een bedrijf. Teams die de browsercompatibiliteit van websites controleren, kunnen er echter achter komen dat de videofuncties van hun app niet compatibel zijn met verouderde browsers.
5. Bestandsbeveiliging
Compatibiliteitstesten in software-engineering kunnen ook problemen vinden met bestandsbeveiliging en hoe deze verschilt tussen apparaten. Nieuwere versies van Windows hebben bijvoorbeeld een robuustere beveiliging voor invoer/uitvoer. Dit kan ertoe leiden dat de toepassing (zoals antivirussoftware) moeite heeft om toegang te krijgen tot de bestanden op het apparaat.
Compatibiliteitstesten
De gebruikelijke stappen van compatibiliteitstesten zijn:
1. Stel een testplan op
Een uitgebreid testplan is cruciaal voor compatibiliteitstesten; het kwaliteitsborgingsteam kan hier indien nodig naar verwijzen tijdens hun controles. Hierin staat bijvoorbeeld welke apparaten ze gaan testen en wat de criteria zijn voor slagen of zakken; ze moeten ook vaststellen of ze robotische procesautomatisering gaan gebruiken.
2. Testgevallen configureren
Testcases zijn net zo belangrijk omdat ze ingaan op de specifieke compatibiliteitscontroles die de teams uitvoeren en de specifieke apparaten waarmee ze werken. Dit bevat ook de exacte stappen die de testers zullen nemen en voldoende ruimte voor hen om het resultaat en alle informatie die de ontwikkelaars kan helpen om compatibiliteit af te dwingen te noteren.
3. De testomgeving opzetten
Een geïsoleerde en onafhankelijke testomgeving die vrij is van invloeden van buitenaf is nodig om nauwkeurige tests te garanderen en het kwaliteitsborgingsteam in staat te stellen te bepalen waar de problemen die ze aan het licht brengen vandaan komen. Bovendien kunnen de testers hun controles op de applicatie uitvoeren zonder de ‘echte’ versie op welke manier dan ook aan te tasten.
4. De tests uitvoeren
Als de testgevallen en de omgeving volledig zijn voorbereid, kan het team beginnen met de compatibiliteitstests – zelfs met een geautomatiseerde oplossing hebben ze maar een beperkte hoeveelheid tijd. Testers moeten de meest voorkomende besturingssystemen en apparaatconfiguraties prioriteren om hiermee rekening te houden en ondanks deze beperkingen een brede testdekking te garanderen.
5. Hertest
Zodra de tests zijn voltooid en de ontwikkelaars de testcases hebben ontvangen, zullen ze de applicatie aanpassen op manieren die de compatibiliteit verbeteren, hoewel dit mogelijk niet voor alle apparaten mogelijk is. De testers controleren de app dan opnieuw en controleren of de problemen die ze eerder hebben ontdekt niet meer aanwezig zijn en of er geen nieuwe grote fouten zijn.
Algemene compatibiliteitstesten
Hier zijn enkele veelgebruikte meetmethoden die worden gebruikt voor compatibiliteitstests:
1. Bandbreedte
Netwerkcompatibiliteitstests meten hoe de applicatie omgaat met verschillende netwerken, waaronder breedband- en mobiele datanetwerken. De minimale bandbreedte die het programma nodig heeft om zijn gebruikelijke taken uit te voeren en verbinding te maken met de database van het bedrijf kan bijvoorbeeld te hoog zijn voor de gemiddelde 3G-verbinding.
2. CPU-gebruik
Een manier waarop prestatieproblemen zich manifesteren is door onevenredig hoog CPU-gebruik – dit kan betekenen dat het apparaat simpelweg niet voldoet aan de minimale eisen van het programma. CPU-problemen kunnen ook van invloed zijn op de reactietijd van de applicatie, waardoor de functionaliteit wordt beperkt en er genoeg vertraging optreedt om gebruikers af te schrikken.
3. Schaal voor systeembruikbaarheid
De System Usability Scale is een veelgebruikte manier om subjectieve details van een programma te meten en bestaat uit tien basisvragen over de bruikbaarheid van een app. De resulterende SUS-score is van 100 en kan per platform verschillen door grafische fouten.
4. Totaal aantal defecten
Deze metriek is een constante voor de meeste testtypes en geeft testers inzicht in de huidige gezondheid van het programma. Het is voor het team ook mogelijk om de defecttotalen tussen verschillende platforms te vergelijken. Op deze manier kunnen de testers de fouten markeren die te wijten zijn aan incompatibiliteit.
5. SUPRQ Score
Net als de SUS-score van een applicatie is de Standardized User Experience Percentile Rank Questionnaire een manier voor testers om een applicatie te beoordelen op verschillende belangrijke factoren, waaronder bruikbaarheid en uiterlijk. Dit helpt hen te identificeren hoe klanten moeite hebben met het gebruik van de applicatie op bepaalde apparaten.
7 fouten en valkuilen bij het implementeren van compatibiliteitstests
Hier zijn zeven belangrijke fouten die je moet vermijden als je compatibiliteitstests uitvoert:
1. Gebrek aan echte apparaten
Hoewel het onmogelijk is om op elke mogelijke apparaatcombinatie te testen, kan een testteam toch baat hebben bij het gebruik van zoveel mogelijk echte apparaten. Verschillende platformen bieden ‘echte’ apparaten via cloudoplossingen om cross-browser compatibiliteitstests mogelijk te maken op een manier die native prestaties kan weerspiegelen.
2. Oudere apparaten vermijden
Veel gebruikers gebruiken hun applicaties nog steeds op oudere versies van Windows of iOS; je volledig richten op nieuwe edities van populaire apparaten en besturingssystemen kan het bereik van een product beperken. Als het team hun tests niet uitbreidt naar ‘verouderde’ apparaten, kan een aanzienlijk deel van hun publiek moeite hebben om het programma te gebruiken.
3. Verkeerd tijdsbeheer
Er is vaak een groot aantal apparaten en configuraties waarvoor een compatibiliteitstest nodig is, wat betekent dat het team zijn tijd moet indelen om er zoveel mogelijk te controleren. Dit is belangrijk omdat de tests meestal nog bezig zijn aan het einde van de ontwikkeling; wanbeheer zou het aantal controles enorm kunnen beperken.
4. Onjuiste planning
Het is ook van het grootste belang dat teams ervoor zorgen dat ze deze tests uitvoeren in een redelijk stadium van de ontwikkeling van het programma, bij voorkeur na alfatests en de meeste vormen van functioneel testen. Dit maakt het makkelijker om te zien of een probleem een algemeen defect is of specifiek voor de apparaten waar het team naar kijkt.
5. Geen rekening houden met schermresolutie
Schermresolutie kan een veel grotere factor in compatibiliteit zijn dan veel testteams erkennen – vooral omdat dit aanpasbaar is en invloed heeft op hoe een apparaat grafische elementen weergeeft. Zelfs met een naderende deadline voor compatibiliteitstests is het van vitaal belang dat testteams dit in hun strategie opnemen.
Gebrek aan expertise
Testers moeten zeer bekwaam zijn om de compatibiliteit van websites, browsers en software te controleren, naast de vele andere vormen die deze tests kunnen aannemen. Als een testleider een van zijn teamleden toewijst om compatibiliteitscontroles uit te voeren en deze heeft onvoldoende ervaring, dan kan dit de tests vertragen en de nauwkeurigheid ervan beperken.
6. Geen voorafgaande discussie
Omdat compatibiliteitstests vaak tijdrovend zijn (en mogelijk een breed scala aan apparaten vereisen), moeten teams de reikwijdte van hun controles vroeg in de kwaliteitsborgingsfase volledig vaststellen. Ze moeten bijvoorbeeld een duidelijk idee hebben van welke specifieke apparaten of configuraties ze van plan zijn te testen voordat hun controles beginnen.
Beste praktijken voor compatibiliteitstests
De beste manieren om compatibiliteitstests van hoge kwaliteit te garanderen zijn onder andere:
1. Testen tijdens de ontwikkeling
Omdat software van week tot week aanzienlijk verandert, kan dit invloed hebben op hoe compatibel het programma is met de apparaten waarvoor het bedoeld is. Teams moeten herhaaldelijk software en cross-browser compatibiliteitstesten uitvoeren om er zeker van te zijn dat de applicatie nog steeds goed draait op deze platformen na wijzigingen in de ontwikkeling.
2. Echte apparaten gebruiken
Sommige tools voor compatibiliteitstesten bieden toegang tot ‘echte’ gesimuleerde apparaten die de gebruikerservaring voor dat platform zo goed mogelijk benaderen. Hierdoor kun je de compatibiliteit met meer apparaten garanderen, terwijl je een hoge mate van nauwkeurigheid behoudt die bij bepaalde geautomatiseerde oplossingen niet aanwezig is.
3. Prioriteit geven aan de tests
Met een beperkte hoeveelheid tijd om deze controles uit te voeren, moeten compatibiliteitstesters misschien prioriteit geven aan de meest voorkomende apparaten, browsers en besturingssystemen. Op dezelfde manier moet het testteam eerst de meest kritieke functies van de software inspecteren om basisfunctionaliteit op deze apparaten te garanderen.
4. Agile technieken integreren
Sommige bedrijven kiezen voor een sprint-gebaseerde aanpak voor hun compatibiliteitstests, zodat ze gemakkelijk testmijlpalen kunnen bereiken – zoals het controleren van een specifiek aantal apparaten. Agile moedigt communicatie tussen afdelingen aan, terwijl het ook een vaste teststructuur biedt die consistente, snelle verbetering kan garanderen.
5. Beperk de testomvang
Kwaliteitsteams moeten weten wanneer ze hun tests moeten beëindigen en zelfs een geval van incompatibiliteit moeten accepteren. In dit geval zal de ontwikkelaar misschien de software niet veranderen en in plaats daarvan de minimumvereisten wijzigen als dit te moeilijk te omzeilen is door bugfixes.
Voorbeelden van compatibiliteitstests en scenario’s
Compatibiliteitstestcases bepalen de input van het testteam, de teststrategie en de verwachte resultaten; deze laatste vergelijken ze met de werkelijke resultaten. Omdat de controles veel apparaten en configuraties omvatten, is dit vaak een uitgebreid proces.
Deze gevallen omvatten meestal:
– Test of de HTML van de webapplicatie goed wordt weergegeven.
– Controleer of de JavaScript-code van de software bruikbaar is.
– Kijk of de toepassing werkt in verschillende resoluties.
– Test of het programma toegang heeft tot de bestandsmap.
– Zorg ervoor dat de app verbinding maakt met alle levensvatbare netwerken.
Hier zijn specifieke voorbeelden van compatibiliteitstesten bij het testen van software voor verschillende programma’s:
1. App voor sociale netwerken
Sociale netwerken hebben vaak de vorm van webapps op browsers en mobiele apps voor bijbehorende apparaten; beide typen vereisen even grondige tests. Deze mobiele app moet bijvoorbeeld minimaal volledig operationeel zijn op iOS- en Android-apparaten, waarbij het team oude en nieuwe apparaten onder elk besturingssysteem controleert. Als een specifiek model iPhone bijvoorbeeld geen geanimeerde GIF-bestanden kan renderen, moet het team vaststellen wat hiervan de oorzaak is om een consistente gebruikerservaring te garanderen.
2. Videogame
Videogames bieden over het algemeen aanpasbare grafische opties die gebruikers kunnen aanpassen aan hun machine; dit omvat het regelen van de schermresolutie en ervoor zorgen dat de UI de juiste schaal heeft. Bepaalde problemen kunnen zich voordoen afhankelijk van de specifieke hardware van de speler, zoals antialiasingfouten die leiden tot korrelige graphics. Dit kan komen door een gewone grafische kaart die niet compatibel is met de textuurrendering van het bedrijf. Afhankelijk van het precieze probleem kan dit zich zelfs manifesteren als een systeemcrash wanneer bepaalde apparaten het spel opstarten.
3. CRM cloudsysteem
Oplossingen voor klantrelatiebeheer maken veel gebruik van databases om informatie op te halen over hun transacties, verkopers en andere belangrijke facetten van het bedrijf, voornamelijk met behulp van cloud-opslag. Testers moeten ervoor zorgen dat deze database en de bijbehorende cloudservices werken op verschillende netwerken, waaronder 3G en 4G als een gebruiker er toegang toe moet hebben zonder internetverbinding. Het team moet ook een breed scala aan besturingssystemen inspecteren, omdat bepaalde fouten bijvoorbeeld alleen op Linux-apparaten kunnen voorkomen.
Handmatige of geautomatiseerde compatibiliteitstests?
Automatisering kan zeer nuttig zijn voor compatibiliteitstests, waarbij teams veel sneller grote aantallen apparaten kunnen controleren dan bij een handmatige aanpak. Handmatig testen kan echter geschikter zijn bij het uitvoeren van controles op een beperkt aantal browsers en apparaten – bijvoorbeeld een videogame die slechts op twee platforms beschikbaar is. De bruikbaarheid van de software is vaak een belangrijke factor in compatibiliteitstests en vereist meestal een menselijk perspectief dat problemen met grafische weergave beter kan identificeren. Automatisering van robotische processen kan hierbij helpen door het implementeren van softwarerobots die de benadering van een menselijke gebruiker bij compatibiliteitstests gemakkelijker kunnen nabootsen.
Voor programma’s die zijn ontworpen voor een groot aantal apparaten, zoals mobiele en webapps, stelt automatisering het team in staat om een bredere testdekking te garanderen. Ze zouden zelfs hyperautomatisering kunnen gebruiken om deze controles intelligent uit te besteden op een manier die ervoor zorgt dat menselijke testers deze platformen nog steeds inspecteren op gebruikersspecifieke functionaliteit. Compatibiliteitstests bij handmatig testen zijn nog steeds verplicht voor sommige taken, zoals controleren of de UI correct wordt weergegeven op elk apparaat. Dit betekent dat de beste aanpak een gemengde strategie zou kunnen zijn die meer apparaten kan testen door middel van automatisering, waarbij het tempo wordt verhoogd en toch rekening wordt gehouden met het belang van bruikbaarheid.
Wat heb je nodig om te beginnen met compatibiliteitstesten?
De belangrijkste vereisten voor compatibiliteitstests zijn gewoonlijk:
1. Gekwalificeerd testpersoneel
Compatibiliteitstesters hebben over het algemeen hogere vaardigheidseisen dan andere vormen van kwaliteitsborging omdat ze een breder scala aan apparaten controleren en vaak meer fouten tegenkomen. Denk hierbij aan probleemoplossing, communicatie en aandacht voor detail. Teamleiders moeten testers toewijzen die ervaring hebben met het onderzoeken van dezelfde applicatie op veel platforms.
2. Sterke apparaatemulatie
Het kan moeilijk zijn om elk fysiek apparaat binnen het bereik van het team te testen, waardoor emulatie essentieel is om te zien hoe verschillende platforms reageren op hetzelfde programma. Dit proces is zelden perfect en testers moeten de vele beschikbare emulators en geautomatiseerde testtools bekijken om te zien welke de meeste nauwkeurigheid biedt.
3. Duidelijke testomvang
Het team moet inzicht hebben in de reikwijdte voordat de controles beginnen, vooral omdat dit bepalend kan zijn voor het tempo waarin ze werken. Hoewel het programma gericht kan zijn op veel platforms, moeten de testers een geschikt afkappunt bepalen. Het testen van besturingssystemen die zijn uitgebracht vóór Windows 7 kan bijvoorbeeld leiden tot afnemende opbrengsten.
4. Tijdmanagement
Compatibiliteitstesten kunnen op elk moment in de kwaliteitsborgingsfase plaatsvinden, maar worden meestal bewaard voor het einde van de ontwikkeling – wanneer het programma stabiel is en alle functies bevat. Testers moeten echter al veel eerder nadenken over compatibiliteit, omdat dit vaak veel tijd kost. Een goede planning vooraf helpt het team ervoor te zorgen dat ze voldoende tijd hebben voor elke controle.
Compatibiliteitstesten
checklist, tips & trucs
Hier zijn aanvullende tips die teams voor kwaliteitsborging in gedachten moeten houden bij het uitvoeren van compatibiliteitstests:
1. Richt je niet op absolute dekking
Hoewel elke teststrategie gericht is op het maximaliseren van de testdekking, stoppen ze meestal voordat ze 100% bereiken vanwege de afnemende opbrengsten met slechts kleine verbeteringen voor zeer weinig gebruikers. In de context van compatibiliteit moeten teams begrijpen wanneer te weinig van hun klanten een apparaat zouden gebruiken om deze controles de moeite waard te laten zijn.
2. Geef prioriteit aan cross-browsercombinaties
Bij cross-browser compatibiliteitstests wordt elke browser gecontroleerd op verschillende besturingssystemen. Testers moeten uitgebreide analyses over hun publiek gebruiken om te bepalen wat van beide het populairst is en op basis daarvan hun aanpak bepalen. Ze zouden zelfs een browsercompatibiliteitsmatrix kunnen ontwikkelen die de reikwijdte van deze controles en hun verschillende configuraties vastlegt.
3. Controleer lay-out
Het garanderen van een consistente ervaring is de kern van compatibiliteitstests en deze controles moeten verder gaan dan vaststellen of de functies van het programma werken op verschillende apparaten. Teams moeten ook de algehele lay-out van de software controleren, inclusief de uitlijning van formulieren of tabellen en de integriteit van de CSS en HTML van het programma.
4. API’s controleren
Application programming interfaces zijn een kernonderdeel van hoe browsers apps lezen, waardoor ze van vitaal belang zijn voor het testen van cross-browser compatibiliteit door een team. Verschillende webbrowsers hebben hun eigen API-aanroepen en hun updates kunnen de compatibiliteit beïnvloeden. Testers moeten deze regelmatig controleren, zelfs als het bedrijf voor elk programma een vergelijkbare API gebruikt.
5. Bestudeer het SSL-certificaat
SSL-certificaten verhogen de veiligheid van een browser door webverkeer te versleutelen en gebruikers te laten profiteren van HTTPS-protocollen. Een website of webapp kan een certificaat hebben dat niet compatibel is met bepaalde browsers. Dit betekent dat testers het certificaat op alle belangrijke platforms moeten valideren om er zeker van te zijn dat gebruikers zich veilig voelen op hun website.
6. Videospelers valideren
Programma’s die video’s weergeven, zoals streamingdiensten of freemium mobiele games die worden ondersteund door advertenties, moeten worden getest om ervoor te zorgen dat deze video’s worden weergegeven op alle bedoelde apparaten. Voor veel van de apps omvatten deze controles zowel desktop- als mobiele apparaten en kan er gekeken worden naar de kwaliteit, snelheid en framerate van de video.
5 beste compatibiliteitstestprogramma’s & software
De meest effectieve gratis en betaalde tools om compatibiliteit te testen zijn onder andere:
1. ZAPTEST Free & Enterprise Edition
ZAPTEST biedt uitstekende functionaliteit in zowel de Free als de Enterprise (betaalde) edities en helpt bedrijven van elke grootte (of budget) met hun compatibiliteitscontroles. Bedrijven die kiezen voor de Enterprise-versie van ZAPTEST kunnen zelfs genieten van een rendement dat kan oplopen tot 10x hun oorspronkelijke investeringen. De 1SCRIPT-functie van de oplossing is speciaal afgestemd op de behoeften van compatibiliteitstesters, zodat ze exact dezelfde tests op meerdere platforms kunnen uitvoeren zonder de code aan te passen. Voeg daar de allernieuwste RPA-functionaliteit aan toe zonder extra kosten en je hebt een one-stop oplossing voor het automatiseren van alle taken.
2. LambdaTest
LambdaTest maakt gebruik van een cloud-gebaseerde aanpak om 3.000 geautomatiseerde apparaten te leveren – maar met een aanzienlijke focus op webbrowsers, wat de effectiviteit van deze oplossing voor bepaalde programma’s zou kunnen beperken. Het platform is gespecialiseerd in continu testen en integreert het kwaliteitsborgingsproces nauwer met ontwikkeling. Met de controles op deze applicatie kunnen gebruikers ook hun resolutie instellen, waardoor het testen van cross-browser compatibiliteit veel eenvoudiger wordt. Deze oplossing biedt een freemiummodel, maar dit omvat beperkte tests zonder upgrades en geen echte apparaten.
3. BrowserStack
Net als LambdaTest biedt BrowserStack toegang tot 3.000 echte apparaten; hun catalogus bevat ook legacy- en bèta-opties voor browsers. Hoewel mensen eerder hun browser upgraden dan hun besturingssysteem, kunnen er nog steeds veel mensen zijn die oudere versies gebruiken – BrowserStack speelt hierop in. Gebruikers kunnen ook geolocatietests uitvoeren om te zien hoe websites en webapps er in verschillende landen uitzien. Er zijn echter geen gratis of freemium opties en het testen van echte apparaten kan langzaam gaan.
4. TestGrid
TestGrid maakt parallel testen mogelijk, zodat teams meerdere combinaties tegelijk kunnen controleren om het proces te versnellen. Deze oplossing integreert ook goed met de test- en ontwikkelworkflow en kan mogelijk een agile aanpak faciliteren door een belangrijk onderdeel te vormen van de sprints van de afdeling. TestGrid heeft echter soms moeite met het verbinden met cloud-apparaten en browsers. Bovendien is het programma vrij beperkt op het gebied van belastingstests, documentatie en het toevoegen van nieuwe apparaten aan de opstelling van het bedrijf.
5. Browsera
Browsera richt zich voornamelijk op het testen van websites om ervoor te zorgen dat ze goed worden weergegeven op verschillende apparaten, browsers en besturingssystemen. Omdat het een cloudgebaseerde aanpak is, hoeven kwaliteitsbewakingsteams dit virtuele testlab niet op hun apparaten te installeren. Browsera kan ook uitvoer vergelijken om op intelligente wijze lay-outproblemen en JavaScript-fouten te ontdekken die zelfs een menselijke tester zou kunnen missen. Browsera biedt echter geen ondersteuning voor een aantal veelgebruikte browsers, waaronder Opera, en biedt alleen gratis basistestfunctionaliteit.
Conclusie
Compatibiliteitstests zijn cruciaal voor een succesvolle kwaliteitsborgingsstrategie, omdat ze teams in staat stellen hun apps te valideren op een groot aantal apparaten. Als bedrijven deze techniek niet omarmen, kunnen ze zich er pas na de lancering van bewust zijn dat hun software voor een groot deel van hun doelgroep niet zal werken. Dit kost veel tijd en geld in vergelijking met pre-release testen en toepassingen zoals ZAPTEST kunnen dit proces nog verder stroomlijnen. Met 1SCRIPT en vele andere functies die gratis beschikbaar zijn, zoals parallel testen, kan het kiezen van ZAPTEST als je testtool elk project transformeren en teams volledig vertrouwen geven in hun applicatie.