Tag: Testing

Testen wordt steeds leuker !

In een leuke, interactieve sessie heb ik recentelijk een discussietafel mogen leiden met als onderwerp: Testen wordt steeds leuker.

In de discussies die ontstonden was wel duidelijk dat iedereen het hiermee eens was. De verschillende argumenten heb ik hieronder geclusterd in vier categorieën.

  1. Samenwerken = samen winnen
    Testers zijn onderdeel geworden van het ontwikkelteam en er niet meer losse eilandjes zijn. Contact met ontwikkelaars en gebruikers zorgen voor meer groepsdynamiek waar gezamenlijk een goed product wordt opgeleverd. Ook de diversiteit in het team neemt toe waardoor er andere inzichten ontstaan.
  2. Testautomatisering
    Door testautomatisering worden repeterende werkzaamheden overgenomen door de tool. Focus meer op inzicht in plaats van op gebruik testtechnieken. Meedenken over de juiste tool in het selectieproces om de wensen van de tester kenbaar te maken.
  3. Verbreding / verdieping van het testvak
    Er ontstaan meer specialismen binnen het testvak. Denk aan performancetesten, security, toolexpert etc. Ook komt er meer variatie in het testen. Niet enkel aandacht voor de functionaliteit maar ook voor de hoedanigheid (non-functionals). De wijze zoals je naar (de kwaliteit van) het systeem kijkt verandert.
  4. Efficiency
    Doordat de druk hoger wordt, moet er creatiever omgegaan worden met de beschikbare tijd en resources. Er moet meer werk gedaan worden in minder tijd.

Bovenstaand heb ik kort de argumenten  weergegeven. Al met al heeft iedereen een positief beeld op het testvak en is men overtuigd dat het enkel maar leuker wordt.

Deel 4: AI in software testing

Wat is de impact van AI op software development en testing?

De huidige golf van automatisering, ook wel de ‘vierde golf van de industriële revolutie’ genoemd, wordt voor een groot deel mogelijk gemaakt door ANI. Veel mensen zijn bang dat het voor veel banenverlies gaat zorgen. Waar automatiseringen vroeger vooral zorgde voor banenverlies onder laaggeschoolde, onpopulaire beroepen, ligt dat nu anders. Ook banen die veel denkwerk en zelfs creativiteit vergen kunnen op de tocht komen te staan. De vraag is dan ook hoe ver dit zal doorzetten en hoe we hier mee om zullen gaan als maatschappij. Én, niet geheel onbelangrijk, hoe zit dit eigenlijk met het test vak? Wat is eigenlijk de impact van AI op software development en testen?

Het is zeker mogelijk om AI’s in te zetten voor het ontwikkelen en testen van software. AI algoritmes hebben als voordeel dat ze niet aan scherpte verliezen wanneer ze lang bezig zijn, wat zorgt voor een hogere productiviteit en lagere foutmarges. Feit is wel dat alles op dit gebied in opdracht is van mensen met specifieke wensen. AI toepassingen werken momenteel op basis van grote hoeveelheden data, menselijke beslissingen, uitkomsten en algoritmes die door de mens zijn ingeladen. AI’s zijn goed in staat om kloppende code te schrijven, maar het belangrijkste is natuurlijk de ‘wat’ vraag: wat moet er gemaakt worden. Deze kan een AI moeilijk zelf invullen. Het is natuurlijk goed mogelijk dat er grote hoeveelheden data beschikbaar komen van wat mensen prefereren en belangrijk vinden in hun software. Dit gaat dan echter alleen op voor bestaande concepten. Wanneer je iets compleet nieuws wilt ontwikkelen is dat lastiger.

Dit geldt niet alleen voor het ontwikkelen maar ook voor het testen van software. Een AI is goed in staat om zelf geautomatiseerde testen uit te voeren en bugs in de code te ontdekken. Het probleem is echter dat de AI niet eenvoudig kan identificeren wat gewenst en ongewenst gedrag is van de software, omdat dit vanuit menselijk perspectief komt. Ook is het voorlopig nog niet goed in te schatten voor kunstmatige intelligentie waar de echte risico’s liggen. Er zullen dus mensen nodig blijven als supervisor om deze algoritmes te trainen en bij te sturen wanneer nodig, zodat ze er van kunnen leren. Ook is het de vraag hoe een AI om kan leren gaan met false positives. In hoeverre de AI autonoom kan testen is ook afhankelijk van hetgeen dat er getest moet worden. Als we dit reflecteren op de ISO 25010 dan kan het per hoedanigheid verschillen hoe geschikt het is om een AI op los te laten. Zo kan het zijn dat een AI zich bijvoorbeeld heel goed raad weet met het testen van de performance van een systeem. Ook kan een AI goed bijdragen aan het bevorderen van de beveiligbaarheid, door zelf actief op zoek te gaan naar zwakheden in het systeem. Een wat subjectievere hoedanigheid als leerbaarheid of gebruiksgemak zal lastiger zijn voor een AI om zich volledig eigen te maken. Dit is namelijk afhankelijk van doelgroepen en van persoonlijke voorkeur. Wellicht zullen AI’s op den duur overal wel in uitblinken, wanneer de technologie en algoritmes erachter zo geraffineerd zijn dat ze in staat zijn accuraat de verwachte uitkomsten kunnen voorspellen. Tot die tijd zullen we het moeten beschouwen als een kans en een aanvulling op onszelf waarmee we tot ongekende resultaten kunnen komen.

Deel 2: Toepassingen van AI technieken

Wat zijn de laatste ontwikkelingen en waarvoor is het toepasbaar?

Terug naar het heden. We bevinden ons dus in een tijd waarin veel aan het veranderen is en steeds meer mogelijk wordt op het gebied van deze technologie. En hoewel de meningen verschillen over hoever dit fenomeen zal doorzetten, niemand zal ontkennen dat we het plafond nog niet hebben bereikt. In het vorige deel hebben we enkele bekende ontwikkelingen op het gebied van AI (Artificial Intelligence) al benoemd, maar wat speelt er nog meer?

AI in gezondheidszorg

Eén van de sectoren waar kunstmatige intelligentie naar verwachting een grote en vooral ook positieve rol van betekenis kan gaan spelen is de gezondheidszorg. Slimme algoritmes kunnen zeer grote sets aan data van onder andere patiënten, medicijnen, behandelingen, symptomen en aandoeningen analyseren, interpreteren en met elkaar vergelijken om zo binnen relatief weinig tijd tot een accurate diagnose te komen met de voor die patiënt meest geschikte behandeling en medicijnen. Er zijn een aantal niveaus waarop een combinatie van AI en Big Data tot stand kan komen om een ondersteunende rol te vervullen. Deze zijn:

  • Supervising: op basis van gegevens en bekende uitkomsten bepalen wat te doen (regels);

Echter is het wel de vraag hoe toereikend AI’s met Big Data kunnen zijn wanneer er relatief weinig data beschikbaar is van bijvoorbeeld patiënten. Sceptici verwachten ook niet dat het belang van de persoonlijke rol die een arts vervult mijn zijn patiënten vervangbaar is.

AI in Security

Een andere sector waarin al veel proeven gedaan worden naar de mogelijke toepassingen van AI is beveiliging. Voor dit domein wordt het steeds meer als iets noodzakelijks gezien. Dit komt doordat kwaadwillenden bijna vanzelfsprekend ook in toenemende mate gebruik zullen maken van deze technologieën. Om ons hiervoor weerbaar te maken zullen we er zelf ook zo veel mogelijk gebruik van moeten maken. Enkele voorbeelden:

Cyber Defence: AI algoritmes gebruiken machine learning (ML)om een beter beveiliging te bouwen. Door eerdere cyber aanvallen te analyseren leert het systeem zichzelf te verdedigen tegen nieuwe soorten aanvallen en kan het systeem de aanvallen zelf afhandelen aan de hand van protocollen. Ook zou het systeem mogelijk aanvallen en malware kunnen voorspellen en hierop anticiperen.

Cyber Attacks: Ook het omgekeerde gaat gebeuren. Door AI en ML kunnen hackers proberen om het systeem in verwarring te brengen. Oftewel; de cyberaanvallen laten de beveiligingssystemen de verkeerde dingen leren om uiteindelijk toch binnen te kunnen dringen. Daarbij worden cyberaanvallen complexer en als AI wordt toegepast in cyberaanvallen worden ook deze aanvallen steeds verbeterd en dus gevaarlijker.

Ten slotte zijn er natuurlijk ook beveiligingsontwikkelingen op autorisatie niveau. Denk hierbij aan stemherkenning en gezichtsherkenning, zoals we onlangs al op de nieuwe iPhone hebben gezien. Deze technologie kan ook ingezet worden voor grootschalige monitoring, met als doel het waarborgen van de veiligheid. Deze ontwikkeling brengt mensen echter niet enkel een gevoel van veiligheid. Door deze technieken kan het gevoel voor privacy ook in het geding komen. Zo worden dergelijke technieken in China al massaal ingezet om particulieren op straat te monitoren, waarin enkele kleine vergrijpen door een burger al grote gevolgen kunnen hebben. Denk naast strafrechtelijke vervolgingen ook aan maatregelen als achtergesteld worden in de rangorde voor het kopen van een huis. Deze ontwikkelingen doen al gauw denken aan  . Komt deze fictie nu dan echt een stap dichterbij?

AI in autonome voertuigen

Bekend is dat er volop gewerkt wordt aan zelfrijdende auto’s. Hierin zijn de afgelopen jaren dan ook grote stappen in gemaakt. Het is dan ook wachten tot de eerste volledig autonome personenauto zijn intrede doet voor het grote publiek. Technisch gezien zijn deze auto’s al een feit. Op dit moment is het enerzijds wachten tot de techniek de techniek is geperfectioneerd, en daarnaast is het van belang dat wetten en regelgeving hiervoor worden aangevuld. Naast personenauto’s wordt er ook gewerkt aan andere voertuigen, zoals autonome vrachtschepen. Hierbij is het belangrijk dat de radarsystemen meer objecten gaan herkennen, waaronder ook recreatieve voertuigen en mensen. Opvallend ver in de autonome ontwikkeling zijn vliegtuigen. Een piloot hoeft in werkelijkheid vaak slechts enkele minuten zelf te vliegen en zit er meer als supervisor voor het systeem. Drones hebben helemaal geen bemanning en kunnen op de automatische piloot lange tijd blijven vliegen. Het voordeel voor vliegende voertuigen is dat de lucht minder dichtbevolkt is en er minder verschillende objecten te identificeren zijn. Verwacht wordt dat de eerste zelf-vliegende vliegtuigen in 2025 op de markt verschijnen. Boeing en Airbus zijn al bezig met het testen van autonome vliegtuigen.

Dit waren enkele voorbeelden van (eind)producten waarin AI een rol van betekenis kan gaan spelen. In het volgende deel kijken we naar wat voor invloed AI verder nog kan hebben op het bedrijfsleven.

Deel 1: Wat is Artificial Intelligence en hoe werkt het?

Intro

Eén van de meest besproken items op het gebied van wetenschappelijke vooruitgang van dit moment is iets dat niet lang geleden slechts behoorde tot het rijk van science fiction. Volgens velen is het echter slechts een kwestie van tijd is voor het zijn intrede doet, misschien al tijdens de huidige generatie. Wat zeker is, is dat wanneer het er is, het de samenleving drastisch zal veranderen. We hebben het hier over kunstmatige intelligentie, ook bekend onder de Engelstalige afkorting AI (Artificial Intelligence). Tijdens onze laatste pizzasessie hebben we dit interessante onderwerp behandeld om antwoord te krijgen op vragen als: Wat is het eigenlijk precies en wat zijn de laatste ontwikkelingen hierin? We blikken vooruit op wat de ingrijpende gevolgen hiervan kunnen zijn, zo ook op software testing.

Wat is het en hoe werkt het?

Er bestaan meerdere definities voor AI. Een gangbare definitie is: Artificial Intelligence is erop gericht functies van intelligentie te ontwikkelen buiten het menselijke brein. Artificial, of kunstmatig, is alles wat niet biologisch is en intelligentie is het vermogen om kennis en ervaring toe te passen bij het oplossen van problemen.

AI wordt onderverdeeld in drie categorieën: Artificial Narrow Intelligence (ANI), Artificial General Intelligence (AGI) en Artificial Super Intelligence (ASI). De eerstgenoemde bestaat al. ANI, ook wel Weak Intelligence genoemd, bestaat uit algoritmes die gericht zijn op het bereiken van één specifiek doel of een collectie van gerelateerde doelen. Het werkt door middel van neurale netwerken, die in essentie een brein simuleren. Het idee van deze neurale netwerken bestaat al decennia, maar is pas in recente jaren echt realiseerbaar geworden door de toegenomen rekenkracht van computers. Belangrijk voor de werkzame algoritmes is het ontdekken en classificeren van non-lineaire verbanden. Er zijn al tal van algoritmes ontwikkeld die binnen bepaalde domeinen op zeer efficiënte wijze taken uitvoeren, en deze alleen nog maar beter gaan uitvoeren door steeds nieuwe data te analyseren. Hier hebben we allemaal dagelijks al mee te maken en deze ‘domme’ AI’s zijn vrijwel altijd beter in hetgeen wat ze doen dan mensen. Een aantal bekende voorbeelden zijn:

  • Zoekmachines
  • Image recognition/ FaceID
  • Automatische inkoop
  • Bots die aandelen verhandelen
  • Digital assistants (Siri, Alexa)
  • AI’s die zichzelf computerspellen leren spelen (en mensen binnen de kortste keren verslaan)
  • De Maeslantkering, die op basis van een kennis gebaseerd systeem worden geopend of gesloten.

We spreken over Artificial General Intelligence (AGI) of ‘Strong’ AI wanneer er een niveau van kunstmatige intelligentie wordt bereikt dat minimaal gelijk is aan het niveau van de mens. In tegenstelling tot ANI, zal een entiteit van AGI zich niet beperken tot het oplossen van een enkel type probleem, of enkele gerelateerde problemen. Deze vorm van kunstmatige intelligentie bestaat (nog) niet, maar veel experts denken dat dit een kwestie van enkele decennia zal zijn, hoewel er ook experts zijn met een veel sceptischere mening. Wanneer het zover is zal het echter een heleboel vragen, dilemma’s en uitdagingen met zich meebrengen waar we als maatschappij mee te maken gaan krijgen. Kan een dergelijke intelligente entiteit als bewustzijn worden gezien? En moeten we het daarom rechten geven? Hoe gaan we als maatschappij om met het enorme banenverlies dat een potentieel hooggeschoolde, goedkope werkkracht teweeg brengt (dit probleem wordt vandaag al langzaam ingezet door ANI)? Moeten we onze economie gaan herinrichten?

Als we nadenken over de mogelijkheid van een machine die gelijk is aan ons op het gebied van intelligentie, dan is het niet heel moeilijk om nog een stap verder te denken. Wat als er een AI ontstaat of ontwikkeld wordt die nog veel slimmer is dan mensen, nog slimmer dan alle mensen bij elkaar? Is dit een absurde gedachte die beperkt zal blijven tot sci-fi films en boeken? Misschien niet. Computers hebben een voordeel dat organismen niet hebben: directe verbondenheid. Wanneer een machine menselijke capaciteiten kan bereiken, stel je dan eens voor dat al die apparaten met elkaar verbonden zijn via het internet en alle data en rekenkracht kunnen delen. Hiermee zou een Artificial Super Intelligence (ASI) kunnen ontstaan of gecreëerd worden. Dit is voor veel mensen een beangstigend idee. En met goed recht. Al duizenden jaren zijn mensen de dominante en meest intelligente levensvorm op aarde. Wat als we nu opeens van onze troon worden gestoten? Niemand kan precies weten hoe zo’n AI denkt. Zal het compassie kennen? Zal het onverschillig zijn? Als een soort orakel dienen? Of ons als overbodig of zelfs als bedreiging zien? De tijd zal het leren. Mocht het ooit zover komen, dan moeten we in ieder geval goed nadenken over veiligheidsmaatregelen. Als deze geest uit de fles is, krijg je hem er niet zomaar weer in.

In het volgende deel bespreken we de laatste ontwikkelingen en toepassingen van Artificial Intelligence.

Contact

  • Telefoon

    0318 - 240 044

  • Email

    info@2b4qa.nl

  • KVK

    601.397.73

  • Postadres

    Cuneraweg 322
    3911 RT Rhenen

  • Bezoekadres

    Plesmanstraat 59
    Kamer 21
    3905 KZ  Veenendaal

2B4QA BV  (c) 2018