Metoder och verktyg för funktionssäkerhet



Relevanta dokument
STADSLEDNINGSKONTORET SOA SDK IT-AVDELNINGEN VERSION 2.1. Läs mig först. Stockholms stad SOA-plattform. Sida 1 (5)

Projektkaos. Chaos-rapporten. 34% av projekten avslutades i tid och enligt budget % misslyckades!

Några grundläggande begrepp

Vad är RTCA DO-178C? och: Hur arbetar Saab med dessa krav? Lars Ljungberg, Saab AB, Avionics Systems

RUP - Rational Unified Process

SAST Q1. Som att börja arbeta på ett nytt jobb. Testautomatisera med Modell-baserad testning

ALM Live: Testfokus bättre mjukvarukvalitét med Visual Studio 2008 Team System

Automatiserade testsystem

Kurser och seminarier från AddQ Consulting

Regressionstestning teori och praktik

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Symptom på problemen vid programvaruutveckling

REGELVERK & HANDBÖCKER

Programvara i säkerhetskritiska tillämpningar

UML 2.0 och dess roll för modellbaserad utveckling

Copyright Syntell AB 1

Visuell GUI Testning

RUP Rational Unified Process. 17 november 2004

Exempel på verklig projektplan

Alla rättigheter till materialet reserverade Easec

Utfärdad av, tjänsteställe, telefon Datum Dokumentbeteckning

UML 1(5) Introduktion till Unified Modeling Language. 1 Bakgrund och historik

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

- Intervju med Jens Byléhn, EIS by Semcon och Daniel Berggren, Combitech

30 år av erfarenhet och branschexperts

Kursinformation. Metodik för programvaruutveckling. Utvecklingsprocessen för programvara. Innehåll. Processmodell. Exempel

Teststrategier och Testcertifiering. Per Strandberg, Maj 2013

Testplanering, test-first, testverktyg

Introduktion. Byggstenar TDBA

Säkerhetsstandarder: Säkerhetsinriktning

Kurser och seminarier från AddQ Consulting

EXFLOW NAV BROSCHYR VÄLJ LÖNSAMHET ISTÄLLET FÖR ADMINISTRATION HANTERA DINA LEVERANTÖRSFAKTUROR DIREKT I MICROSOFT DYNAMICS NAV

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Objektorienterad analys och design

Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

Användning av testautomation inom Extendas utvecklingsorganisation

men borde vi inte också testa kraven? Robert Bornelind

TDDI02. På denna föreläsning: Programmeringsprojekt, Föreläsning 3. Verifikation, validering och testning

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:

Software Technology. Josef Svenningsson

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt

TDDI02. På denna föreläsning: Programmeringsprojekt, Föreläsning 3. Filip Strömbäck. Verifikation, validering och testning

men borde vi inte också testa kraven?

Våra erfarenheter av Modellbaserad

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

VERVA. Fujitsu Services Kenneth Landérus F

Innovation för system integration

Magnus Skoog

Diagnos och design av Verksamhet och IT, 7, 5 HP. Föreläsning 2 Sofie Pilemalm

Vad händer med L3: ΔL3-L4 för Krav följs upp av annan projektgrupp. Föreläsning 5: V&V II + Design II Efterläsning Kodning

V!cto. Att tjäna pengar genom bättre testning med

Praesideo digitalt högtalar- och utrymningslarmssystem Få fram ert budskap vad som än händer

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

TDP005. Föreläsning 3 - UML. Filip Strömbäck

För operationssalen OPERATIONSSAL DAGKIRURGI

Teknikprov - H ProgSäk

Configuration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar

Analys och design. Objekt. Klass. med hjälp av CRC. Klassdiagram

Föreläsning 5 5DV086 - Programspråk

El, Automation & Process

Datacentertjänster PaaS

Verifiering & validering -

SKOLFS. beslutade den XXX 2017.

Informationssystem och databasteknik, 2I-1100

Modbus över Ethernet. WAGO Contact SA TSS STR

Kurser och seminarier från AddQ Consulting

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

Manual Mjukvara Allvis Software (SV )

Förvaltningsplan NyA 2016

Software Asset Management (SAM) Licenshantering i Göteborgs Stad

Testning på 3 föreläsningar. PV7180 Verifiering och Validering. Litteratur. Vad är testning? Varför testa och olika syn? Målet med testning

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Ma thias Holmberg Sammanfattning

Microsoft ALM Agenda. Processer metoder Kundcase Paus Under huven på Visual Studio Team Test Frågor och Svar + en liten tävling

Exercise 1b: Requirements evaluation

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Sammanfattningar Essentials of Software Engineering

Teknologin steg för steg 2. Snyggt grafiskt användargränssnitt 2. Trådlöst Bluetooth -infrastruktur 2. IPCS systemdiagram 3

När samverkan mellan affärssystemen är en besvärlig väg med många hinder

Uppgift v1: Teststrategi i sammanhang Terese Berger. Teststrategi. Projekt CiviCRM. Version 0.9. Sida 1(7)

Dag König Developer Tools Specialist Microsoft Corporation

Nationell Informationsstruktur 2015:1. Bilaga 7: Arkitektur och metodbeskrivning

Microsoft Dynamics NAV 2015

SSG Säkerhetskommitté. Ag 4 Säker automatiserad processanläggning

Platina och kvalité. Rasmus Staberg, Teknisk direktör,

Min frånvaro. Agenda. Föreläsning 4: Design och praktisk testning

ETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg

Continuous Integration med Jenkins. Linus Tolke Enea Experts

Testning. 1DV404, HT14 Jesper Andersson Kap 21 + Testing Primer

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Lösningar för en bättre arbetsvardag

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

INFORMATIONSTEKNISK ARKITEKTUR OCH INFRASTRUKTUR

Agil testning i SCRUM

Länkade listor och automatisk testning

Virtuell Server Tjänstebeskrivning

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

Transkript:

Metoder och verktyg för funktionssäkerhet Projektstart 1. Hantera kraven En bra process är grunden för att hantera kraven i ett säkerhetsprojekt. Det krävs att du har en tydlig spårbarhet mellan krav och test, samt på alla förändringar som sker under projektets gång. Det viktigt att t.ex. olika verktyg kan integreras för att arbetet i viss mån ska kunna automatiseras. Utifrån tillförlitlighet, säkerhetsnormer och spårbarhetsperspektiv är IBM Rational DOORS Next Generation ofta ett bra val för kravhantering. 2. Att välja rätt nivå på säkerhetsarbetet Du måste följa alla obligatoriska krav i en standard, samtidigt som du inte vill överarbeta din process då det blir dyrbart. Det finns ett bra verktyg för att komma igång och förstå vad som behöver göras för en viss säkerhetsnivå: RiskCAT för IEC 61508 (finns även för andra standarder). Detta program innehåller den officiella standarden och har alla paragrafer och punkter i standarden indexerade och vägda, så att du snabbt kan se vilka uppgifter som är obligatoriska, starkt rekommenderade eller bara rekommenderade utifrån standarden.

3. Projektets första faser med systemarkitektur, design och kravanalys Annex A i IEC 61508-3 I arkitekturfasen är semiformella metoder som SysML (System Modeling Language) en stor hjälp. Här görs allokering av funktionalitet till olika delsystem för att få en stabil arkitektur med väldefinierade gränssnitt. IBM Rational Rhapsody är ett bra verktyg för systemarkitektur som ger spårbarhet mellan modell och textuella krav, och ser till att dokumentationen hela tiden är uppdaterad. 4. Mjukvarudesign Även mjukvarudesign/implementation kan semi-formella metoder såsom UML (Unified Modeling Language) vara en stor hjälp för att göra lättöverskådliga tillståndmaskiner, och förtydliga spårbarhet, dokumentation, etc. Om man använder sig av modellbaserad mjukvaruutveckling med Rhapsody kan man generera en fullständig applikation, t.ex. med krav som kommentarer i koden. För säkerhetsfunktionella system finns färdiga ramverk som är MISRA-kompatibla och inte använder någon dynamisk minnesallokering. Handskriven applikationskod, eller den som genereras från Rhapsody, behöver testas. Att koden är genomtestad mäts vanligtvis genom att mäta kod- och modelltäckning som testfallen ger. Rhapsody s testmodul TestConductor används för just detta ändamål, och detta testverktyg är TÜVcertifierat. Det innebär att kodgenerering från Rhapsody kan användas i säkerhetskritiska applikationer, utan att behöva använda dyra certifierade kodgeneratorer. Det är outputen från systemet som testas, och då klassas Rhapsody som en lösning som ligger på lägsta påverkansnivå (dvs TCL1, Tool Confidence Level 1, som bl.a. benämns i ISO 26262). Ett verktyg som klassificeras till TCL1-nivån kräver inte att några speciella kvalifikationsmetoder behöver genomföras på detta verktyg. Med TestConductor kan du automatiskt skapa en testarkitektur för ditt system, och köra dina tester både på host och i target. Själva testerna är både black- och whitebox-typ, och är ofta på enhetsnivå (t.ex. funktioner, moduler och komponenter).

Modelleringsverktyg som stödjer ett specifikt språk: t.ex UML standardiserat och generellt modelleringsspråk Visuella modeller för systemstruktur och beteende Ett stöd för utvecklingsarbetets hela livscykel Spårbarhet mellan krav, design, programkod och tester Automatisk kodgenerering Automatisk dokumentation över livscykeln Integrerade miljöer (krav <-> modell) Underhåll av arkitektur, design, kod och dokumentation Exempel på modelleringsverktyg: IBM Rational Rhapsody 5. Implementation För att implementera programvara är de viktigaste verktygen kvalificerade kompilatorer och debuggers samt verktyg för statisk kodanalys som fullt ut stödjer gällande kodningsstandard samt minimerar kodningsfel. 6. Verktyg för kod Kompilatorer processorarkitekturer baserade på ARM Då ARM även skapar processor-ip så har de även den bästa och tidigaste förståelsen för kompilatorkraven. ARM supportar IEC 61508 och ISO 26262 med en TÜV certifierad kompilator. Ett ARM Compiler Qualification Kit förenklar ditt arbete att kvalificera verktyget i din miljö. Debuggers - Lauterbach Lauterbach verktyg fungerar för nästan alla processorarkitekturer. I ett system med redundant processorer eller multicore kan Lauterbach debugga samtliga CPU parallellt, t.ex injicera ett fel i en processor och samtidigt övervaka att systemet reagerar korrekt. Avancerat stöd för multi-core, SMP/AMP Klarar alla operativsystem och kompilatorer En mängd funktioner för att simulera interrupt, I / O-kanaler och felbeteende I realtid.

Lauterbach debugger med avancerad realtids-trace Utifrån inspelad data kan du exekvera/stega koden både framlänges och baklänges, och hela tiden ha full koll på minne, variabler, register etc. Trace-baserad (Code coverage) på assemblernivå. Mätning av kodtäckning görs i realtid utan instrumentering av koden. Analysen fyller de krav som ställs av säkerhetsstandards som ISO 26262, DO-178C, IEC 61508 och IEC 62304. Statisk kodanalys och kodningsstandarder Annex A i IEC 61508-3 (Software Verification) Statisk kodanalys rekommenderas i de flesta standarder, t.ex IEC 61508. Kodgranskning ska stödjas av kvalificerade verktyg som gör en formell granskning. Någon form av kodningsstandard och subset av ett programspråk rekommenderas. MISRA är ett vanligt förekommande regelverk för C och C++. Programming Research QAC/QAC++ och QA Verify PRQA's verktyg för statisk kodanalys är det vanligast förekommande I fordonsbranschen, och det är certifierat av TÜV SAAR för att användas i säkerhetskritiska projekt enligt IEC 61508, ISO 26262, EN 50128, IEC 60880 och IEC 62304. Verktygen stöder ett antal olika kodningsstandarder MISRA C:2004, C:2012 and C ++:2008 samt High Integrity C++ med support för t.ex C++11. Grammatech - CodeSonar CodeSonar är också TÜV certifierat (IEC 61508, ISO 26262, EN 50128) och erbjuder väldigt effektiv felsökning för vanliga programmeringsfel men även för säkerhetsluckor.

Enhets- och integrationstest Annex A i IEC 61508-3 (Software Verification) IEC 61508:2010 specificerar ett antal krav på dynamisk kod analys och test som inkluderar funktionstest och "white box testing". Hur mycket dokumentation av testtäckning du behöver beror på projektets SILnivå. De flesta kraven på test kräver en stor arbetsinsats, varför det lönar sig att satsa på verktyg som kan underlätta och automatisera testarbetet och dokumentationen. Om man istället väljer att utveckla sin programvara med handskriven kod (till skillnad från modellbaserad mjukvaruutveckning), så är ett enhetstestverktyg som används på kodnivå att föredra. Cantata är ett testverktyg som kan köra dina tester både på host och i target. Använder du en JTAGansluten debugger kan testerna köras som 'target in the loop' utan att påverka realtidsprestanda. Cantata enhetstest för C/C++ Cantata är certifierat av TÜV SAAR för att användas i upp till högsta säkerhetsnivå (SIL4) för följande standards: IEC 61508, IEC 62304, IEC 60880, EN 50128, ISO 26262. Ett Tool Qualification Pack följer med utan extra kostnad och består av: - Certified Cantata version 6.2 - En detaljerad Safety Manual - Instruktioner för hur man använder det enligt standarderna - Automatiserade testsviter för verifiering på användarens plattform