Hoogwaardige firmware dankzij Continuous Integration

    Vorige Volgende

    7-nov-2017 16:01:31 | Door ir. Māris Ābele

    CI-firmware.jpg

    Hoogwaardige firmware dankzij Continuous Integration

    Het ontwikkelen van firmware is uitdagend werk. Om je inspanningen daar te focussen waar ze het beste tot hun recht komen, grijp je graag oplossingen aan die daarbij helpen. Als engineers zijn we niet anders dan een schoenmaker die bij zijn leest wil blijven. Het testen van veranderingen in codes is iets wat tijd kost. Het kan ook sneller. Dat leggen we je uit in deze Continuous Integration blog.

    Laten we beginnen met wat Continuous Integration (CI) uitleg. CI betreft de routine van het steeds weer testen van elke verandering die je doorvoert in de code van een repository. Dit gebeurt automatisch en vroeg in het ontwikkelingsproces. Op die manier kan de engineer problemen op tijd spotten en te lijf gaan. Met andere woorden, Continuous Integration software is een robotachtige kwaliteitsmanager. Alleen code die goed genoeg is om opgeslagen te worden, blijft op de repository staan. Als dat niet het geval is, heeft de engineer nog werk te doen.

    Continuous Integration voordelen

    Nu je meer weet over de Continuous Integration betekenis, kunnen we wat over de voordelen vertellen. Het vervaardigen van hardware producten vraagt veel aandacht. Als een product eenmaal gereed is, is het niet mogelijk de firmware te benaderen zoals dat bij cloud gebaseerde software producten wel kan. In de meeste gevallen stroopt een groep test engineers de mouwen op voor een serie tests nadat de software is aangepast. Bij Meuleman Electronics doen we dat anders en efficienter. Continuous Integration geeft ons de mogelijkheid dezelfde kwaliteit (en zelfs betere) producten te leveren als bedrijven die een legertje test engineers in dienst hebben. Dit dankzij het automatisch testen in de ontwikkelingsfase.

    Het Continuous Integration proces werkt als volgt:

    Statische analyse

    De code wordt bekeken zonder het daadwerkelijk uit te voeren. We kijken of er problemen de kop op steken en of de guidelines zijn gevolgd. In de analyses komt een breed spectrum voorbij, zoals code style, code best practices, veiligheid, complexiteit, compatibility, enzovoorts. Snelle feedback zorgt ervoor dat de code al uitvoerig doorgelicht is voordat we daadwerkelijk een programma gaan compileren.

    Unit testen

    De code kan in kleine segmenten worden verdeeld, zoals klasses en functies. De engineer schrijft meerdere tests voor elke functie om de doorvoering van de functionaliteit goed te keuren. Dit gebeurt doorgaans terwijl men werkt aan de code, om zeker te weten dat de specifieke toepassing werkt zoals verwacht.

    Acceptatie testen

    Deze tests worden uitgevoerd om te onderzoeken of het project aan de criteria van de eindgebruiker voldoet. Gebruikservaringen staan hierbij centraal. Draait het systeem op acceptabel niveau en komt het tegemoet aan alle wensen? Daarop moet het antwoord tenslotte ja luiden.

    Continuous Integration plaatst bovenstaande stappen in één aaneengeschakeld proces. Elke stap is volledig automatisch. Het maakt bij engineers de handen vrij om meer te focussen op het bouwen van een product en het leveren van toegevoegde waarde aan de klant. Mooi meegenomen is dat er veel minder bugs in de software sluipen dankzij de tests. Ook is het veel makkelijker om extra features toe te voegen aan een product, omdat de ontwikkeltijd dankzij de automatische testen korter is.

    Heb je vragen naar aanleiding van dit artikel? Neem contact met ons op. Wij staan je graag te woord.

    Deel deze blog