QA engineer
Dit zijn enkele voorbeelden waarop we een echte QA engineer nodig hebben:
Problemen op een webshop kunnen ervoor zorgen dat er traffic verloren gaat en dat de omzet afneemt. Dit heeft gelukkig nauwelijks maatschappelijke gevolgen. Fouten in de code van industriële of militaire software kunnen echter veel ernstiger impact hebben. Softwarebugs hebben in het verleden al grote schade aangericht bij banken en luchtvaartmaatschappijen en hebben voor miljarden dollars aan verwoestende verstoringen veroorzaakt.
Om dit soort grote rampen te voorkomen en een constant kwaliteitsniveau te waarborgen is Quality Assurance (QA) geïntroduceerd in softwareontwikkelingsprocessen. Doorgaans implementeren we QA-processen in de workflow en bewaakt een QA engineer gedefinieerde eisen met behulp van handmatige en geautomatiseerde testmethoden. Quality Assurance gebruiken als scrabble woord is niet verboden, maar het is duidelijk dat het hier om een belangrijk onderdeel van IT gaat.
QA heeft betrekking op alle teamleden, waardoor ze de mogelijkheid krijgen om de definitie van de project kwaliteit vorm te geven. De definitie hoeft niet “perfect” te zijn, maar wel eenduidig voor alle teamleden. De mate van kwaliteit hangt namelijk geheel af van de projectcontext en de business value er van.
De opdrachtgever geeft uiteindelijk de doorslag over aan welk kwaliteitsniveau onze software moet voldoen. Hij/zij is degene die er voor betaalt en kwaliteit – en dus QA – is niet gratis.
De QA engineer taken hebben dus betrekking op alle IT project gerelateerde werkzaamheden. Al voor de start moeten we een aantal zaken regelen waarop QA van toepassing is:
De QA engineer beoordeelt dus de projectopzet en dan moet het hele circus nog beginnen. We kunnen zeggen dat de taken van de QA engineer gedurende het project gericht zijn op het voorkomen van fouten in het hele softwareontwikkelingsproces.
Kwaliteitscontrole is ook een QA engineer taak en werkt vaak ontwrichtend op het project. We zoeken dan namelijk naar fouten in eerder zorgvuldig gecreëerde projectdeliverables op verschillende niveaus met behulp van verschillende soorten QA testen. Als we dan een bug vinden heeft dat meteen gevolgen voor de planning van het project. Dit kan zo ver gaan dat we zelfs eerdere afspraken moeten herzien.
De eerste vraag zou echter zijn welke kwaliteit verwachten we? Het eerste antwoord is meestal: de beste! En dat is geen verrassing. Maar is dat een logisch antwoord? Als we een taart kopen, moet die dan de romigste zijn? Als we een auto kopen moet dat dan de snelste zijn? Meestal zijn er meerdere criteria en die verschillen per context. De kwaliteit mag bijvoorbeeld lager zijn als de software echt innovatief is. Dan gaan we pas investeren in de kwaliteit als het een succes wordt. Maar als we bestaande software refactoren of verouderde software vernieuwen, streven we wel naar een product met de hoogst mogelijke kwaliteit.
Ongeacht de toegepaste methodologie kunnen we globaal drie stappen onderkennen bij softwareontwikkeling. In alle de drie stappen komen we de QA engineer tegen, hetzij in de rol van QA analist of in die van QA tester.
Deze eerste stap betreft drie rollen: een business analist (iemand die de zakelijke context analyseert), een ontwikkelaar en een QA-analist. De samenwerking tussen deze drie collega’s resulteert in “user stories“. Deze user stories beschrijven precies wat er moet worden opgeleverd in een verhalende vorm en bevatten ook acceptatiecriteria. De input van een QA analist of een QA tester in deze fase is het stellen van de juiste vragen, zoals:
Deze fase biedt veel kansen om de kwaliteit te verbeteren, te beginnen met het kiezen van de juiste ontwikkeltools en andere QA-gerelateerde praktijken zoals Peer reviews, Fagan inspecties, module testen en integratietesten. In deze fase beoordelen ontwikkelaars vooral elkaars werk onder begeleiding van een QA analist of tester.
De laatste fase wordt gedomineerd door QA testing activiteiten door de eindgebruikers en opdrachtgevers. Het QA hoofddoel is om de software te valideren en te verifiëren ten opzichte van de gedefinieerde requirements. Belangrijk is de juiste werking van de geprogrammeerde functies vast te stellen. Er zijn echter ook niet-functionele testen die betrekking hebben op performance en beveiliging. Deze niet-functionele testen vallen vaak onder de verantwoordelijkheid van de IT afdeling. De QA tester vervult hierbij een belangrijke rol.
Er zijn drie soorten testmethoden: handmatig testen, automatisch testen en een tussenvorm. Handmatig QA testen is populair omdat er geen extra investeringen in testsoftware nodig zijn. Hierbij doorloopt een tester alle testgevallen in een testscenario, verzamelt gegevens en stelt een eindrapport moet op. Het is zwaar en tijdrovend werk. Bij automatisch testen daarentegen gebeurt alles met tools en scripts. Deze moeten dus vooraf aanwezig en ingericht zijn. De data worden automatisch verzameld, evenals de eindrapporten. Er is ook een gemixt scenario. Daarbij voeren we de QA tests automatisch uit, maar de hele testomgeving stellen we handmatig in (semi-automatisch testen).
Nu we de basis taken voor de QA analist en de QA tester hebben doorgenomen, is het tijd om een vraag te stellen:
Loont het werk van de QA engineer? Ja want:
Zonder twijfel is projectkwaliteit cruciaal om een succesvolle softwarelancering of -upgrade te garanderen. Bovendien identificeert een kwaliteitsmanagementplan de kwaliteitseisen. Zo’n plan geeft alle betrokkenen bij het project nauwkeurige richtlijnen voor het leveren van deliverables van de verlangde kwaliteit. Daarom is er in ieder project een rol weggelegd voor de QA engineer.
Mogelijk is dit een vertaling van Google Translate en kan fouten bevatten. Klik hier om mee te helpen met het verbeteren van vertalingen.