For at Bane NOR og 8 andre togoperatører skal sørge for at energiforbruket i togtrafikken blir nøyaktig målt og rettferdig fordelt brukes avanserte løsninger. Test og kvalitetssikring er viktig for at løsningen fungerer optimalt - les hvordan dette gjøres.
Utfordringen
Bane NOR har behov for å utvikle ett rettferdig avregningssystem basert på faktisk energiforbruk i togtrafikken gjennom Europa. Dette er svært komplisert da tog beveger seg på tvers av landegrenser med ulike strømpriser, tariffer og krav til skatter og avgifter. Gjennom sitt partnerfelleskap Eress, ønsker Bane NOR et system for håndtering av strømmåling og fakturering på jernbanenettet. Bouvet har siden 2005 levert et team som har jobbet med Erex-løsningen.
Systemet har høye krav til kvalitet. Målet er å gi en effektiv, rettferdig, sporbar og fleksibel avregningsprosess som dekker dagens situasjon og regelverk, og kan tilpasses fremtidig behov med endrede regelverk og rammebetingelser. Behovet for gode og gjennomtenkte kvalitetssikringstiltak var nødvendige.
Løsning
Bouvet leverer et tverrfaglig team som samarbeider tett med Eress administrasjonen i utviklingen av Erex. To konsulenter jobber fullt med oppgaver innen test og kvalitetssikring, og har rollene som testansvarlig og testutvikler. Bouvet har også rollene; prosjektleder, teknisk - og funksjonell arkitekt, databaseansvarlig og flere systemutviklere. Prosjektet jobber etter smidige metoder og bruker Kanban som utviklingsmetodikk. Dette innebærer kontinuerlige leveranser av ferdige løsningskomponenter.
Gjennomføring av test og kvalitetssikring
Test og kvalitetssikring utføres som en integrert del av produktutviklingen og det beste resultat oppnås når testerne, utviklingsteamet og Kunden sammen tar ansvar og bidrar til god produktkvalitet. Valg av testaktiviteter baseres på forretningsbehov og risikostyring, og planlegges slik at det gir best mulig nytteverdi.
Hyppige leveranser og store testomfang krever god prioritering av testingen, og testtilnærmingen må kunne endres raskt underveis. En styrke i smidig testing er fleksibilitet etter behov og situasjon.
Bouvet jobber etter en risikobasert tilnærming og gjennomfører testingen i henhold til ISTQB standarden. Leverandøren utarbeider produktrisiko-analyse i samarbeid med Kunden, kartlegger mulige risikoer tilknyttet produktet og prioriterer testinnsatsen på områder med høy risiko. Det er et mål at risikoer blir ivaretatt tidlig og fulgt opp kontinuerlig gjennom utviklingsløpet.
Bouvet har stort fokus på testautomatisering for avlasting av testarbeidet og for å lykkes med kontinuerlige leveranser. I tillegg til automatiserte enhetstester har Bouvet god erfaring med høynivå testautomatisering i oppdraget.
Det er viktig at hele utviklingsteamet tar eierskap og ansvar for produktkvalitet, og at alle i teamet involveres i testaktivteter. Testansvarlig og testutvikler sørger for økt testkompetanse hos Kunden og i teamet. Det jobbes med kontinuerlig forbedringer gjennom å lære av feil som oppstår, samt regelmessige evalueringer av teamets arbeid.
Applikasjonstest av Erex løsningen baseres på et utvalg testaktiviteter:
- Tidlig testing for å hindre at feil skapes. Brukerhistorier og andre krav gjennomgås med fagperson for å unngå misforståelser. Ideer og prototyper testes tidlig, for å hindre at feil løsning utvikles. Tidlig testing gjøres også for å finne feilen så nært i tid som mulig fra den oppstår.
- Automatisert enhetstesting av koden gir pålitelighet og smidighet som er nødvendig for å kunne oppnå kontinuerligere leveranser av høy kvalitet. Kode med god testdekning gjør at utviklere som har behov for å endre og/eller forbedre koden, kan gjøre det uten å ødelegge eksisterende funksjonalitet.
- Kodegjennomgang og manuell testing av utviklingsoppgaver i teamet Kodegjennomgang av alle utviklingsoppgaver gjøres av annen utviklere for å sikre kvaliteten og at kodeprinsipper følges. Alle funksjonelle utviklingsoppgaver testes av teamet i utviklingsmiljøet før det leveres til systemtest.
- Manuell systemtest gjennomføres fortrinnsvis i felleskap mellom leverandørens testere og Kundens fagpersoner. Bouvet har god erfaring med å bruke testsesjoner som en kombinasjon av systemtest og utforskende testing rundt gitte tema. I smidig utviklingsmetodikk gjøres planlegging, testgjennomføring og dokumentasjon av testtilfeller i hovedsak i samme løp og testressursene bruker systemforståelse, erfaring og kreativitet i arbeidet.
- Automatisert systemtest og regresjonstest Automatisering har stor betydning for å lykkes med kontinuerlige leveranser. Automatisert test på høyere testnivåer bidrar til stabil og høy kvalitet på leveransene, avlaster de funksjonelle testerne fra tidskrevende rutinearbeid, og legger grunnlaget for hyppigere leveranser.
- Test av ikke-funksjonelle egenskaper Basert på produktrisikoanalysen, velges et antall ikke-funksjonelle egenskaper for testing. Eksempler på ikke-funksjonelle egenskaper er pålitelighet, skalerbarhet, driftbarhet, sikkerhet og ytelse. Ytelsestest er ofte viktig for en applikasjon med høy gjennomstrømming av data, slik som Erex Exchange og Erex Settlement. En god ytelsestest må planlegges godt, gjennomføres regelmessig og bør fortrinnsvis kjøre i et eget, produksjonslikt testmiljø.
Testautomatisering
Bouvet har utviklet et konsept kalt Testautomatiseringsreisen som følges under implementering av testautomatisering i Eress. Konseptet beskriver prinsipper for automatisering og prosessen for innføring av automatisert test i organisasjoner.
Valget av mikrotjeneste-arkitekturen i Erex-løsningene er et svært godt utgangspunkt for høynivåautomatisering. Denne testbare arkitekturen muliggjør bruk av mer avanserte teststrategier, slik som Keyword-driven. Dette bidrar til stor fleksibilitet i testløsningen samtidig som behovet for vedlikehold holdes lavt.
For å lykkes med Testautomatisering har Bouvet fokus på tverrfaglig samarbeid. Testutvikler samarbeider tett med Kundens testleder og testere for implementering av Test Cases som dekker viktig funksjonalitet samt avlaster testerne. Testutvikler samarbeider tett med utviklerne for implementering av effektive testløsninger som også er til hjelp i deres arbeid. Utviklingen av testkode og testbeskrivelser følger en smidig tilnærming, arbeidet skjer erfaringsbasert og bygger videre på det som har vist seg å fungere bra.
Høynivå testautomatisering gjennomføres i henhold til testfaget og ISTQB. Produktrisiko ligger til grunn for utvelgelse av hvilke tester som skal implementeres. Testteknikker benyttes for å oppnå et mest mulig effektivt testdesign. Det gjennomføres kost/nytte vurderinger av testløsningen før implementering, og testenes levedyktighet følges opp over tid. Det er et særlig fokus på gjenbruk og vedlikeholdbarhet.
Test av Erex Frontend gjennomføres ved bruk av Cypress kombinert med JavaScript. Cypress benyttes der det er behov for identifikasjon og manipulering av GUI-elementer. Koden struktureres i «page-objects» i tråd med Best Practice for utvikling av Frontend-testløsninger. Størstedelen av testkoden utvikles i JavaScript for å oppnå fordelene med lesbar, strukturert og gjenbrukbar kode. Arkitekturen for Frontend-testløsningen er Structured Scripted.
Java benyttes for utviklingen av Backend-testløsningen. Ved å velge samme utviklingsverktøy som de andre utviklerne, blir det lettere for andre i teamet å bidra med videreutvikling og vedlikehold av testløsningen, samt at testutvikler får god faglig støtte av de andre utviklerne. Java gir også de beste muligheter for å utvikle fleksible testløsninger med god vedlikeholdbarhet, og er et svært godt valg for utviklingen av Keyword-driven testløsningsarkitektur.
Verdi
Eress er i dag et internasjonalt samarbeidsprosjekt som gjør det mulig å senke strømforbruket på jernbanen. Partnere kan vise til store innsparinger innenfor kjøreatferd, forbruk hos tog som står i ro, og klimakontroll i togsettene. Eksempelvis har NSB redusert energiforbruket per kjørte tonnkilometer med om lag 18 % siden oppstarten av prosjektet.
Partnerne i Eress rapporterer i dag om lite feil i produksjon. Våre konsulenter innen test og kvalitetssikring bidratt til gjennomtenkte, smidige utviklingsprosesser hvor kvaliteten bygges inn helt fra starten og underveis i utviklingsløpet. Bouvet sine råd har bidratt til at Eress hyppig kan levere nye instanser og endringer til alle sine partnere og samtidig tilfredsstille høye krav til kvalitet i løsningene.
Fakta om Bane NOR
BaneNOR er et statlig foretak med ansvar for den nasjonale jernbaneinfrastrukturen. Selskapet har ansvaret for planlegging, utbygging, forvaltning, drift og vedlikehold av det nasjonale jernbanenettet, trafikkstyring samt forvaltning og utvikling av eiendom eid av BaneNOR.
BaneNOR har det operative koordineringsansvaret for sikkerhetsarbeidet og operativt ansvar for samordning av beredskap og krisehåndtering.
Bane NOR har om lag 4 400 ansatte og har hovedkontor i Oslo.