Een project waarbij de 1,3 miljoen sourcecode regels van een bedrijf kritische applicatie van ProRail voor het regelen van alle treinverkeer op het spoorwegennet van Nederland worden omgezet naar C++, zodat de applicatie in de nabije toekomst kan worden geporteerd naar Linux. Om de geconverteerde code te kunnen testen en te kunnen vaststellen dat de applicatie functioneel het zelfde gedrag vertoond is een risico gestuurd testtraject ingericht.
Hoe bouwt u een succesvolle omnichannel-infrastructuur?valantic NL
Met welke aspecten en partijen moet u rekening houden om uw omnichannel features mogelijk te maken? CTO Remco Dekkers gaf hierover uitleg op Hét ISM Omnichannel Event.
When clients outsource their software development projects, they need to make sure that these suppliers don't overprice the projects. As it is often not longer possible to select the best offer, there should be another mechanism to measure the value that they are getting in comparison to the money they are paying. Supplier Performance Measurement enables clients to keep in control of theis project costs in outsourcing situations and to negotiate performance improvements with the suppliers.
Hoe bouwt u een succesvolle omnichannel-infrastructuur?valantic NL
Met welke aspecten en partijen moet u rekening houden om uw omnichannel features mogelijk te maken? CTO Remco Dekkers gaf hierover uitleg op Hét ISM Omnichannel Event.
When clients outsource their software development projects, they need to make sure that these suppliers don't overprice the projects. As it is often not longer possible to select the best offer, there should be another mechanism to measure the value that they are getting in comparison to the money they are paying. Supplier Performance Measurement enables clients to keep in control of theis project costs in outsourcing situations and to negotiate performance improvements with the suppliers.
Dutch presentation given on the TestNet Voorjaarsevent on the 30th of April. A story about how TestReporting is going to change to Realtime Monitoring to keep up with changes in IT landscapes, development processes and ways of working within IT teams and still give stakeholders and the team the information they need.
DevOps and metrics presentation, co-presentation by Dave van Herpen and Harold van Heeringen (both Sogeti Nederland B.V.). The key message of the presentation is the fact that metrics are important in DevOps environments and that it is important to do a thorough analysis of which metrics are important to collect and for which reasons.
TMap suite workshop testnet summer school 2015Rik Marselis
Tijdens de TestNet Summer School van 24 juni 2015 heb ik een workshop gedaan waarbij de deelnemers hebben ondervonden dat puur testen op basis van testontwerptechnieken en puur testen op basis van ervaring allebei niet optimaal zijn, succesvol testen vergt een mix.
Dit is gebaseerd op de indeling die TMap HD gebruikt, waarbij de "coverage based" technieken onderverdeeld zijn in 4 praktische groepen. Exploratory testing is hierbij een belangrijke aanpak.
Presentatie over software ontwikkeling volges het V-Model. Het nu nut vab Requirements en Test cases wordt besproken. Een toepassing wordt getoond met TestLink, Jenkins en Gitlab.
DynApps organiseerde donderdagmiddag 1 maart in samenwerking met Smart Solution en Noviat een gratis seminarie over OpenERP.
Na de pauze werd er van elke organisator een case uit de praktijk toegelicht. Een deel van de namiddag bestond uit presentaties van praktijkcases. Karel Hendrickx van DynApps verduidelijkte het hele proces dat bij IOK Afvalbeheer Kempen werd doorlopen. Gaande van analyse van de verschillende eisen en de aanpassingen tot de opleiding van de gebruikers.
Op verschillende locaties in Nederland organiseren wij de themasessie ‘Naar toekomstbestendige dienstverlening’ over de toekomst van servicemanagement, met in het programma de visie en roadmap van TOPdesk en de nieuwste versie van TOPdesk.
Naar een toekomstbestendige dienstverlening - Themasessie 2016TOPdesk
Op verschillende locaties in Nederland organiseren wij de themasessie ‘Naar toekomstbestendige dienstverlening’ over de toekomst van servicemanagement, met in het programma de visie en roadmap van TOPdesk en de nieuwste versie van TOPdesk.
The yearly seminar of the Best Practice User Group in the Netherlands this year has the theme "Agile".
My contribution is an interactive session where the participants can vote for a number of subjects to create the backlog of the session.
This slide-deck contains all slides that I prepared, I guess I only used half of them, the rest everybody can see here at slideshare.
The slides are mainly in english but also partly in dutch.
At the end I refer to the book "TMap NEXT in Scrum", to the book "the PointZERO vision" and to the whitepaper "Integrate test activities in Agile projects".
U wilt altijd de best passende testaanpak. Maar kiest u voor de (schijn)zekerheid van scripted testen of gaat u voor flexibiliteit en pragmatiek, waarmee u sneller en efficiënter inzicht krijgt in de kwaliteit van uw systeem?
Op 19 en 20 november organiseerde SYSQA haar jaarlijkse Kennissessies. Dit jaar over Situationeel testen, een antwoord op het genoemde dilemma. Want op ieder project, bij iedere organisatie past een eigen testaanpak.
Tijdens de Kennissessies bleef het niet bij theorie. Na de pauze werd een tweetal aansprekende klantcases toegelicht. Hierbij kwam onder meer aan de orde hoe de betreffende organisaties met Situationeel testen altijd op de meest optimale manier testen, tegen de laagst mogelijke kosten.
De Kennissessies bleken ook dit jaar een middag vol inspiratie, mogelijkheden tot netwerken en kennisuitwisseling en boeiende praktijkcases.
Deelnemers gingen naar huis met nieuwe inzichten waarmee zij op een flexibele en pragmatische wijze sneller en efficiënter inzicht krijgen in de kwaliteit van een systeem!
More Related Content
Similar to Testen van 1,3 miljoen regels mission critical code omzetten naar C++, hoe test je dat?
Dutch presentation given on the TestNet Voorjaarsevent on the 30th of April. A story about how TestReporting is going to change to Realtime Monitoring to keep up with changes in IT landscapes, development processes and ways of working within IT teams and still give stakeholders and the team the information they need.
DevOps and metrics presentation, co-presentation by Dave van Herpen and Harold van Heeringen (both Sogeti Nederland B.V.). The key message of the presentation is the fact that metrics are important in DevOps environments and that it is important to do a thorough analysis of which metrics are important to collect and for which reasons.
TMap suite workshop testnet summer school 2015Rik Marselis
Tijdens de TestNet Summer School van 24 juni 2015 heb ik een workshop gedaan waarbij de deelnemers hebben ondervonden dat puur testen op basis van testontwerptechnieken en puur testen op basis van ervaring allebei niet optimaal zijn, succesvol testen vergt een mix.
Dit is gebaseerd op de indeling die TMap HD gebruikt, waarbij de "coverage based" technieken onderverdeeld zijn in 4 praktische groepen. Exploratory testing is hierbij een belangrijke aanpak.
Presentatie over software ontwikkeling volges het V-Model. Het nu nut vab Requirements en Test cases wordt besproken. Een toepassing wordt getoond met TestLink, Jenkins en Gitlab.
DynApps organiseerde donderdagmiddag 1 maart in samenwerking met Smart Solution en Noviat een gratis seminarie over OpenERP.
Na de pauze werd er van elke organisator een case uit de praktijk toegelicht. Een deel van de namiddag bestond uit presentaties van praktijkcases. Karel Hendrickx van DynApps verduidelijkte het hele proces dat bij IOK Afvalbeheer Kempen werd doorlopen. Gaande van analyse van de verschillende eisen en de aanpassingen tot de opleiding van de gebruikers.
Op verschillende locaties in Nederland organiseren wij de themasessie ‘Naar toekomstbestendige dienstverlening’ over de toekomst van servicemanagement, met in het programma de visie en roadmap van TOPdesk en de nieuwste versie van TOPdesk.
Naar een toekomstbestendige dienstverlening - Themasessie 2016TOPdesk
Op verschillende locaties in Nederland organiseren wij de themasessie ‘Naar toekomstbestendige dienstverlening’ over de toekomst van servicemanagement, met in het programma de visie en roadmap van TOPdesk en de nieuwste versie van TOPdesk.
The yearly seminar of the Best Practice User Group in the Netherlands this year has the theme "Agile".
My contribution is an interactive session where the participants can vote for a number of subjects to create the backlog of the session.
This slide-deck contains all slides that I prepared, I guess I only used half of them, the rest everybody can see here at slideshare.
The slides are mainly in english but also partly in dutch.
At the end I refer to the book "TMap NEXT in Scrum", to the book "the PointZERO vision" and to the whitepaper "Integrate test activities in Agile projects".
U wilt altijd de best passende testaanpak. Maar kiest u voor de (schijn)zekerheid van scripted testen of gaat u voor flexibiliteit en pragmatiek, waarmee u sneller en efficiënter inzicht krijgt in de kwaliteit van uw systeem?
Op 19 en 20 november organiseerde SYSQA haar jaarlijkse Kennissessies. Dit jaar over Situationeel testen, een antwoord op het genoemde dilemma. Want op ieder project, bij iedere organisatie past een eigen testaanpak.
Tijdens de Kennissessies bleef het niet bij theorie. Na de pauze werd een tweetal aansprekende klantcases toegelicht. Hierbij kwam onder meer aan de orde hoe de betreffende organisaties met Situationeel testen altijd op de meest optimale manier testen, tegen de laagst mogelijke kosten.
De Kennissessies bleken ook dit jaar een middag vol inspiratie, mogelijkheden tot netwerken en kennisuitwisseling en boeiende praktijkcases.
Deelnemers gingen naar huis met nieuwe inzichten waarmee zij op een flexibele en pragmatische wijze sneller en efficiënter inzicht krijgen in de kwaliteit van een systeem!
Similar to Testen van 1,3 miljoen regels mission critical code omzetten naar C++, hoe test je dat? (20)
Testen van 1,3 miljoen regels mission critical code omzetten naar C++, hoe test je dat?
1. 1,3 miljoen regels mission critical code
omzetten naar C++, hoe test je dat?
XXXXXX Najaarsevenement 2016
Jaap Kuilman
11 oktober 2016
2. Introductie
2
Jaap Kuilman
• Testconsultant bij InTraffic
• Ervaring in het OV-Domein
• Verantwoordelijk voor testen in dit project bij
InTraffic
• Begeleiden testers bij het uitvoeren van het
testproces
4. • Het systeem Procesleiding Rijwegen (PRL)
• Conversie PRL van PASCAL naar C++
• Ontwikkeling van een convertertool
• Testen of de geconverteerde code voldoet
• Conclusie
Inhoud presentatie
4
5. Het systeem Procesleiding Rijwegen
• De treindienstleiders kunnen met PRL ook handmatig seinen en wissels bedienen en
handmatig rijwegen instellen voor de treinen.
• PRL helpt bij het signaleren van storingen.
• PRL draait op de 13 verkeersleidingsposten.
• PRL is een bedrijfskritisch systeem en dat vereist 24/7 beschikbaarheid.
5
Het spoorwegnet in Nederland is druk en
complex.
Procesleiding Rijwegen (PRL) stelt de
rijwegen van de treinen automatisch in.
6. Het systeem Procesleiding Rijwegen
• PRL bestaat uit een 50 taken (executables)
die met elkaar communiceren.
• Bevat 1,3 miljoen regels code.
• Groot deel in PASCAL en een klein deel in C
en C++. Het draait op VMS.
• PRL is al operationeel sinds 1994. Sindsdien
wordt er continue aan doorontwikkeld.
6
Kenmerken
7. Conversie PRL, van PASCAL naar C++
7
• Per 2020 hardware platform OpenVMS verlaten
o kritische massa ontbreekt
o kennis en kunde verdwijnt
• Conversie van Pascal naar C++.
Een noodzakelijke stap in portering naar Linux, omdat
Linux geen Pascal ondersteunt.
• Automatisering van conversie van 1,3 miljoen regels
code is rendabel
Conversie PRL is onderdeel van het
ProRail programma “Slimme Renovatie
Procesleiding”
8. Conversie PRL, van PASCAL naar C++
8
ProRail
• Opdrachtgever voor InTraffic
• Sparring partner voor technische issues
• Voert validatie en ketentesten uit
Cornerstone
• Opdrachtnemer van InTraffic
• Ruime ervaring in taalconversies
• Specialist in automatische conversie
InTraffic
• Spoorse kennis en kennis van software ontwikkeling en
testen
• Voert handmatige conversie, integratie en systeemtest
uit
Samenwerking
9. Conversie PRL, van PASCAL naar C++
9
• Als de geconverteerde PRL functioneel gelijk is aan de
Pascal versie van PRL.
• Responstijden en CPU belasting wijken niet meer dan
10% t.o.v. Pascal versie.
• in geen geval zullen er taalconstructies zijn toegepast
die latere migratie naar Linux bemoeilijken.
Acceptatie
10. Ontwikkelen van een convertertool
10
Methode conversie
• Metafoor: Bij het vertalen van een
boek wordt niet bladzijde voor
bladzijde vertaald maar worden
woorden of zinconstructies die in
het boek voorkomen in één keer
voor het gehele boek vertaald.
• Principe: Een code constructie
wordt altijd op dezelfde manier
vertaald door de gehele sourcecode
heen.
11. Testen of de geconverteerde code voldoet
11
• Oplevering testbaar conversie-
resultaat in clusters
• Bouw, integratie en test
Testen: aansluiten op conversie
12. Testen of de geconverteerde code voldoet
12
Integratie
• Hybride testomgeving met altijd de
volledige applicatie
• Beheersbaarheid: in stappen
integreren door PASCAL taken te
vervangen door C++ taken
• Flexibiliteit: geleidelijk opbouw van
complexiteit bepaalt de
Integratievolgorde
13. Testen of de geconverteerde code voldoet
13
Testaanpak
Algemeen
• Automatische conversie:
taalconstructie één keer goed
geconverteerd betekent alle keren
goed geconverteerd
Testen in eerste clusters:
• Complexe taalconstructies
• Functioneel eenvoudige taken
Testen in latere clusters:
• Eenvoudige taalconstructies
• Functioneel complexe taken
14. 14
Testproces
Testen of de geconverteerde code voldoet
Intake test
Statische
test
Integratie
test
Systeem
test
Conversie
Resultaat
Voor elk cluster
Tussenlevering en
eindlevering
• Intake test: is verder testen zinvol?
• Statische test: controle op onderhoudbaarheid
• Integratie test: dynamische test voor aantonen integrale gedrag
• Systeemtest: voldoen aan de acceptatiecriteria
15. Testen of de geconverteerde code voldoet
15
Testproces is volledig gestuurd door risico’s
Risico’s
• Sturen het testproces
• Productrisicomanagement:
een continue proces
• Proces in 4 stappen
• Productrisico's
- Indeling volgens FMEA
- Initieel een PRA
- Ingedeeld naar kwaliteitskenmerk
- Gerelateerd aan de testsoorten
Testresultaten
• Meenemen van de opdrachtgever in
testresultaten creëert draagvlak en
betrokkenheid
16. Statische test: controle op onderhoudbaarheid
Testen of de geconverteerde code voldoet
16
Risico’s
• Gerelateerd aan onderhoudbaarheid
Acceptatie criterium
• Geen taalconstructies die migratie
naar Linux bemoeilijken.
Code analyse tool
• Tool Flexelint
• Code standaard: High integrity C++
Codereview
• M.b.v. Checklist
- Leesbaarheid (High integrity C++)
17. Testen of de geconverteerde code voldoet
17
Gebruik van testautomatisering en tooling
Automatische Test Framework
• Eigen ontwikkeling: geen geschikte
tooling op de markt
• ATF simuleert interfaces en
controleert verwachte resultaten
Opbouw
• SPIRA voor opslag van testcases en
vastlegging van testresultaten
• SoapUI voor testuitvoering
• Keyword-driven testing
• Drivers
Gebruik
• Behalen van een hoge testdekking
• Reproduceerbaar testresultaat
18. Testen of de geconverteerde code voldoet
18
Intake test: is verder testen zinvol?
Geconverteerde library functies
• Automatische unittesten
• Specifiek geschreven code om
library functies te testen
Geconverteerde taak
• PRL in PASCAL omgeving
• Automatische Test Framework
• Elke test 1 geconverteerde taak
• Test van een eenvoudig “goed” pad
19. 19
Testen of de geconverteerde code voldoet
Integratie test: dynamische test voor aantonen integrale gedrag
Risico’s
• Gerelateerd aan:
- Functionele correctheid
- Koppelbaarheid
- Betrouwbaarheid
- Performance
Testen
• PRL in PASCAL omgeving +
geconverteerde taken
• Automatische Test Framework
• Geen regressie tegenover
voorgaande clusters
20. 20
Testen of de geconverteerde code voldoet
Integratie test: Functionele testen
In eerste clusters
• Complexe taalconstructies
• Functioneel eenvoudige taken
• Codepaden in PASCAL
• Analyse tool t.b.v. codepaden
• Statementcoverage
In latere clusters
• Eenvoudige taalconstructies
• Functioneel complexe taken
• Op basis van functionaliteit
21. Testen of de geconverteerde code voldoet
21
Focus
• Vanaf eerste clusters
Meten
• Responstijden
• CPU belasting
• Dynamisch geheugengebruik
• Schijfgebruik
• Verwerkingssnelheid
• Opstartgedrag applicatie
Test
• Tooling: Total Time Tracking Tool
• Resultaat relateren aan PASCAL
Integratie test: Performance testen
22. Testen of de geconverteerde code voldoet
22
Systeem test: voldoen aan de acceptatiecriteria
Randvoorwaarden
• Applicatie is volledig geïntegreerd
• “Representatieve” testomgeving
Risico’s
• Gerelateerd aan:
- Functionele correctheid
- Koppelbaarheid
- Performance
- Betrouwbaarheid
Acceptatiecriteria
• betreft functioneel gedrag
• betreft responsetijden en
CPU belasting
23. Testen of de geconverteerde code voldoet
23
Gevonden fouten
24. Conclusie
24
• Zoek samenwerking met een partij, gespecialiseerd in automatische code conversie.
• Bij automatische conversie hoeft niet alle code getest te worden: een taalconstructie één keer
goed geconverteerd betekent alle keren goed geconverteerd.
• Start codeconversie met een functioneel eenvoudige taak en test deze grondig.
• Continue monitoren van productrisico’s op basis van testresultaten om het testproces bij te sturen.
• Gebruik een testomgeving waar het mogelijk is om bestaande applicatiedelen en geconverteerde
applicatiedelen met elkaar te laten samenwerken.
• Met geautomatiseerd testen kun je in korte tijd vaststellen of aan het acceptatiecriterium van
functioneel gelijk gedrag is voldaan met hoge testdekking en gegarandeerde
reproduceerbaarheid.