Skip to main content

Tag: BDD

2B4QA Continuous Learning Sessie Java for Testers

Continuous learning

Bij 2B4QA hanteren we het principe van Continuous Learning op onze Odd Friday sessie, omdat we het belangrijk vinden dat we als Quality Consultants onszelf blijven ontwikkelen en zo bijblijven in de snel ontwikkelende wereld om ons heen. Lees hier verder over onze visie op continuous learning.

Binnen ons vakgebied is het Agile werken in multidisciplinaire teams niet meer weg te denken. Teams bestaan uit developers, welke natuurlijk nog wel specialisaties hebben. Ontwikkelaars, testers, designers werken steeds nauwer samen, moeten dezelfde taal spreken om zo tot een goed en releasebaar eindproduct te komen.

Door de korte release cycles en het snel veranderen van functionaliteiten is testautomatisering onontbeerlijk verbonden met onze werkzaamheden binnen het multidisciplenaire team. We willen als Quality Consultants samen met de ontwikkelaars ook na kunnen denken over test automatisering. Of het nu unit testen zijn of geautomatiseerde regressie testen, we willen toegevoegde waarde leveren binnen het team.

Java for Testers

Vanuit dit oogpunt hebben we recentelijk de cursus “Java for Testers” gevolgd. Met het hele team hebben we twee vrijdagen ons verdiept in Java en dan met name gefocused op wat we als testers aan Java kennis nodig hebben. Immers, als testers hebben we niet dezelfde diepgaande Java kennis nodig als ontwikkelaars, maar is het wel echt handig als je niet volledig in het duister tast als er termen als Class of Method geroepen wordt.

Het doel van de training was om ervaring op te doen in het schrijven van testautomatiseringscode in Java, ondersteund door JUnit. Het leren van de basisprincipes van Java, maar ook code leren lezen en begrijpen. Dit geeft je namelijk een voordeel als je met je mede teamleden naar defects gaat kijken in plaats van alleen opvoeren.

We hebben kennisgemaakt met Java door onze eerste programma te maken “Hello World”, wie kent het niet.

Hello World in Java

Uiteindelijk is er veel aan bod gekomen in de twee dagen en kan ik met een gerust hart zeggen dat deze sessie ons verbreding en verdieping heeft gegeven in Java, maar ook in kennis van testautomatisering.

We gaan ons nu zelf ook verder ontwikkelen door de combinatie met bijvoorbeeld de Selenium Webdriver library en BDD via Cucumber te zoeken.

Het vervolg van onze Continuous Learning sessies op onze Odd Fridays zal dan ook ongetwijfeld iets in deze hoek zijn. Lees hier verder over onze Odd Fridays.

Want ja, een dag niet geleerd is een verloren dag!

Aan de slag met Postman, LiveCode en Agile risicoanalyse bij TestNet ZomerWorkshops 2017

Het was op 10 juli weer tijd voor het ZomerWorkshops event van TestNet. Ondanks dat het mijn verjaardag was ben ik naar Nieuwegein afgereisd, waar ik een aantal 2B4QA collega’s heb ontmoet en twee workshops heb gevolgd.

Testautomatisering voor Dummies

We begonnen de dag na het gebruikelijke kopje koffie in de ochtend met een workshop die beloofde “Testautomatisering voor dummies” helder te maken. Dit was een boeiende sessie over het gebruiken van de ontwikkeltool LiveCode als hulp bij het testen.

De noodzaak hiervoor werd beschreven door uit te leggen dat als je een onderdeel van het systeem wilt testen terwijl nog niet het hele systeem klaar is je dit soort tools kunt gebruiken als hulp. Ook wanneer een proces in het systeem bestaat uit veel stappen die nog niet allemaal af zijn kun je met een testtool al wel bepaalde onderdelen testen. We hebben in de workshop eerst Postman gebruikt om een service te testen en later zelf een tool gemaakt in LiveCode om meer verandering aan te kunnen brengen.

testautomatisering voor dummies

Zoals docent Rob Kuijt van Valori het uitlegde “op deze manier kun je ook alleen pagina 19 in een werkproces van 20 pagina’s testen”. Ik kan me erg goed vinden in het voorbeeld dat je een heel proces door moet om uiteindelijk een klein nieuw onderdeel te kunnen testen. Ik ben van mening dat het ook belangrijk is om een end-to-end test te doen voor nieuwe functionaliteit, maar het scheelt vaak veel werk en tijd om een groot deel van de test cases uit te voeren met een tool als Postman.

We zijn toen verder gegaan met uitleg over het gebruik van Postman. Postman is een API testtool waarmee je simpel gezegd een service kunt testen door een request in te sturen en een antwoord kunt ontvangen. Dit is dus erg handig als er een service veranderd of opgeleverd is, terwijl de front-end misschien nog niet beschikbaar is. Je kunt Postman gemakkelijk als app toevoegen aan Chrome.

De groep is toen onder leiding van Rob en Curd Klaassen verder gegaan met een volgende tool. LiveCode is een visuele ontwikkelomgeving waarbij je op een canvas een aantal elementen zoals knoppen en velden kunt toevoegen waarna je dan code toevoegt om te bepalen wat de elementen moeten gaan doen. Je maakt hierdoor snel zelf een applicatie. We hebben dezelfde functionaliteit als van Postman toegevoegd aan een nieuwe applicatie in LiveCode. We hebben hierbij een case gevolgd die ook na te lezen is op het blog van Valori.

We hebben bij deze workshop geleerd om de basics van Postman te gebruiken en een eerste applicatie in LiveCode te maken die wel direct bruikbaar is als testtool. De waarde van zo’n tool is dat je delen van een keten die nog niet opgeleverd zijn al wel kunt nabootsen om nieuwe functionaliteit te kunnen testen.

Agile Risico Analyse

Als tweede heb ik een workshop bijgewoond over Agile risicoanalyse door Gijs op den Beek en Thomas Veltman van Sogeti. Gijs had bij een klant een nieuwe manier van risico’s analyseren ontwikkeld en beoefend. Hierbij kun je op een agile manier risico’s per user story inschatten. Ik was hier zeer in geïnteresseerd omdat ik het lastig vind om risico’s bij een agile team onder de aandacht te brengen. Stakeholders vinden vaak alles belangrijk en willen alles “goed getest” hebben.

Gijs begon met een lange opfrissing van de agile principes en de rol van risico’s daarin. Via Kahoot hebben we een inventarisatie geprobeerd te doen van het gedeelte van het publiek dat in een agile omgeving werkt. We hadden helaas wat netwerkproblemen met de wifi van het congrescentrum. Na een inventarisatie door hand opsteken bleek dat minder dan de helft van de aanwezigen vond dat hij in een agile omgeving werkte. Veel aanwezigen werkten in een agile/waterval hybride omgeving.

We gingen verder met risicoanalyse door de risico’s van een vakantie in te schatten met de groep. Wat kan er misgaan en wat is de kans daarop? De formule risico = faalkans x schade passeerde de revue.

Voor een waterval project is het goed om een uitgebreide risicoanalyse vooraf te doen en vervolgens actiepunten uit te zetten voor de risico’s. Bij een agile werkwijze kun je tijdens de planning risico’s benoemen en acties definiëren. In de methode van Gijs gebruik je een soort risicopoker. Tijdens refinement kun je met verschillende aanwezigen ook de faalkans en de potentiële schade inschatten op een schaal van een tot drie.

We zijn hierna met een voorbeeld in groepjes aan de slag gegaan. Hierbij kwam de uitleg meer tot leven. We kregen verschillende teamrollen toebedeeld en hebben voor een vijftal user story’s de risico’s ingeschat. Hierbij merk je dat het handig is om eerst de faalkans en schade apart in te schatten, maar dat je later met je team ook in één keer het risico kunt inschatten en dat je nog later misschien wel het risico direct in de pokerpunten kunt meenemen. Dit was ook de ervaring van Gijs in zijn opdracht.

agile risico analyse

Er waren vragen vanuit de zaal over hoe je dit kunt implementeren. Door met het hele team risico’s te bespreken kun je de test strategie makkelijker bepalen, de test resources beter verdelen en ook al een aantal risico’s verminderen. Voor het beheersen van risico’s werd de ROAM methode uit SAFe genoemd. Het kost het team uiteindelijk ook steeds minder werk om de risico’s te benoemen. Ook het samenpakken van alle risico’s per story zorgt voor snelheid. Iemand vroeg nog naar de mogelijkheid om ook non-functionals te betrekken. Deze kunnen ook goed per project of product in een PRA besproken worden.

Aqua: agile improvement voor teams

Mijn collega Liset ging bij deze workshop aan de gang met de pijnpunten van een agile implementatie. Deze workshop was erg interactief. In groepjes van 5 werd er besproken wat de lastige punten zijn bij een agile implementatie en  wat het voor jou moeilijk maakt. Er werd ook gepraat over hoe jouw bedrijf agile verbeterd en wat je daarvan vind. Daarnaast had de spreker Huib Schoots van Improve een model gemaakt om in een agile werkomgeving een team te optimaliseren. In de groepjes hebben ze van dat model kunnen proeven.

Bijna iedereen heeft wel ervaring met de implementatie van agile bij een organisatie. Door dit met elkaar te delen kom je toch weer tot nieuwe inzichten. De spreker had ook veel energie waardoor je toch makkelijk meedoet en je ideeën deelt.

Internet on Wheels en BDD met Robots

Collega Sonny had zin in een dagje aan de gang met robots en is naar de workshop Internet on wheels van Parasoft en BDD met Robots van Bartosz gegaan. Bij internet on wheels moest er een robot door een doolhof geleid worden. Dat kon door via bluetooth opdrachten te sturen in python. Dit bleek erg lastig te zijn en het was niemand gelukt om de robot op die manier het einde van het doolhof te laten vinden. De robot kon ook bestuurd worden door sensors die erop zaten. Hiermee was het makkelijk om hem een kant op te laten gaan.

Ook in de sessie van Bartosz moest een robot door een doolhof geleid worden. Deze Mbot kun worden bestuurd door opdrachten in programmeertaal Scratch in BDD scenarios te geven. De geprogrammeerde scenarios zorgden met ingebouwde sensors ervoor dat de robot zijn weg kon vinden. Door de juiste commandos in te voeren en ook de juiste snelheid aan te houden was het Wall-e team van Sonny het snelste van de dag!

Afronding

Uiteindelijk liep de dag voor mij ten einde bij het dinerbuffet. We hebben met de aanwezige collega’s van 2B4QA nog even zitten napraten en grijpen het diner van TestNet ook altijd aan om samen te eten.