Standardin IEC testaustekniikoista. V-malli vai ketterämpi prosessi?

Samankaltaiset tiedostot
Standardi IEC Ohjelmisto

Toiminnallinen turvallisuus

IEC sisältö ja rakenne

KONEAUTOMAATION LAATU JA TURVALLISUUS Marko Varpunen

Testaaminen ohjelmiston kehitysprosessin aikana

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Turvallisuusseminaari Silja-Line

OS AUTOMATION OY. 7DYRLWH

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II

Tässä tiivistelmässä standardi tarkoittaa standardia SFS-EN

2. Ohjelmistotuotantoprosessi

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Johdantoluento. Ohjelmien ylläpito

ABB Drives and Controls, Koneenrakentajan ja laitetoimittajan yhteistoiminta toiminnallisen turvallisuuden varmistamisessa

Turvakriittisen projektin menetelmät ja työkalut

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmistotekniikka - Luento 2

Tietojärjestelmän osat

IEC Sähköisten/eletronisten/ohjelmoitavien elektronisten turvallisuuteen liittyvien järjestelmien toiminnallinen turvallisuus

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti

Prosessimalli. 2. Ohjelmistotuotantoprosessi. Prosessimallin vaihejako. Prosessimallien perustehtävät. Ohjelmiston suunnittelu. Vaatimusmäärittely

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Standardit IEC (perustandardi) ja IEC (prosessit)

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

TOIMINNALLINEN MÄÄRITTELY MS

Lyhyt yhteenveto ohjelmistovaatimuksista standardissa ISO

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmistotestaus -09

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Ohjelmistojen testaus

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Testaussuunnitelma Labra

Teollisuusautomaation standardit. Osio 2:

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

ITK130 Ohjelmistojen luonne

Tapahtuipa Testaajalle...

Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Suomen Automaatioseuran turvallisuusjaosto (ASAF) Teemasarja Toiminnallinen turvallisuus uusittu standardisarja SFS-EN IEC 61508

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmiston toteutussuunnitelma

Ohjelmistotuotantoprojekti

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

Dynaaminen analyysi IV

Onnistunut SAP-projekti laadunvarmistuksen keinoin

Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen

Standardisointikatsaus

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Ohjelmistotuotanto, verifiointi ja validointi Syksy Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi

dokumentin aihe Dokumentti: Testausraportti_I1.doc Päiväys: Projekti : AgileElephant

7. Verifiointi ja validointi

Ohjelmistotuotanto, prosessit Syksy Ohjelmistotuotantoprosessi. Prosessimalli. Prosessimallien perustehtävät. Prosessimallin vaihejako

Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä. Simo Tauriainen

Ohjelmistoprosessit ja ohjelmistojen laatu kevät Suunnitelmakeskeiset prosessit (lukuisia lähteitä)

Ohjelmistoprosessit ja ohjelmistojen laatu kevät 2009

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

Teollisuusautomaation standardit. Osio 3:

Testausprosessin vaatimukset. 2. Testausprosessi (Artikkelit) Vesiputousmallin ongelmia. V-mallin neljä osavaihetta. Testausprosessimalli V-malli

Testaus teoriassa ja käytännössä. Jukka Paakki Helsingin yliopisto Tietojenkäsittelytieteen laitos

Ohjelmiston testaus ja laatu. Testaustasot

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:

ITK130 Ohjelmistoprosessi

Käytettävyyden huomiointi ohjelmisto prosessissa testausta lisäämällä

Mihin kaikkeen voit törmätä testauspäällikön saappaissa?

Laatukustannukset. Laadun hallinta. Laadun kustannuksista

Kuopio Testausraportti Asiakkaat-osakokonaisuus

Testaussuunnitelma. Pizzeria - Pitseria HAAGA-HELIA ammattikorkeakoulu Tietojenkäsittelyn koulutusohjelma. WebPizza

Laadun hallinta. Laatukustannukset. Laadun kustannuksista. Sami Kollanus TJTA330 Ohjelmistotuotanto

Laadun hallinta. Laatukustannukset. Sami Kollanus TJTA330 Ohjelmistotuotanto

Lohtu-projekti. Testaussuunnitelma

Johdanto. Mitä on ohjelmistotuotanto? Tämän kurssin näkökulma. Sami Kollanus TJTA330 Ohjelmistotuotanto

Mitä on ohjelmistotuotanto?

Teollisuusautomaation standardit. Osio 4:

Testauksen suunnittelu ja dokumentointi ketterässä testauksessa Tutkimustuloksia

Testaus-tietoisku: Tärkeimpiä asioita testauksesta projektityökurssilaisille

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure

IEC Standardin muutokset. Yleistä

Käyttötapausanalyysi ja testaus tsoft

VTT EXPERT SERVICES OY VTT EXPERT SERVICES LTD.

Laadukkaiden ja luotettavien ohjelmistojen vaatimukset ja miten ne täytetään?

Ohjelmiston testaussuunnitelma

ida IEC61508 turvastandardi ja sen merkitys prosessiteollisuudelle Dr. William M. Goble exida Sellersville, PA USA

Testaus osana ohjelmistojen elinkaarta I

Turvallisen tekniikan seminaari 2015 Työpajapäivä, keskiviikko 3.6.

58160 Ohjelmoinnin harjoitustyö

Laadunvarmistustekniikat

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2016

Onnistunut Vaatimuspohjainen Testaus

Työkalut ohjelmistokehityksen tukena

Riskin arviointi. Peruskäsitteet- ja periaatteet. Standardissa IEC esitetyt menetelmät

Mihin kaikkeen voit törmätä testauspäällikön saappaissa?

Ohjelmistotuotteen hallinnasta

Dynaaminen analyysi I

Hieman lisää malleista ja niiden hyödyntämisestä

UCOT-Sovellusprojekti. Testausraportti

Turva-automaation suunnittelu

Toimilohkojen turvallisuus tulevaisuudessa

Transkriptio:

Standardin IEC 61508-3 testaustekniikoista V-malli vai ketterämpi prosessi? Mika Katara mika.katara@tut.fi Tampereen teknillinen yliopisto Ohjelmistotekniikan laitos

2 Sisältö Termien käännökset Johdanto Ohjelmiston turvallisuusvaatimusten määrittely Ohjelmiston uudelleenkäyttö Yksikkötestaus Integrointitestaus Järjestelmän turvallisuuden kelpuutus ohjelmiston osalta Todentaminen Liitteiden A ja B taulukot Mallipohjainen testaus ja formaali verifiointi

Tässä esityksessä käytetyt termien käännökset 3 (Software) Safety Requirements Specification = (ohjelmiston) turvallisuusvaatimusten määrittely Verification = todentaminen Validation = kelpuutus Safety manual = turvallisuusohjekirja Software aspects of system safety validation = järjestelmän turvallisuuden kelpuutus ohjelmiston osalta Normative = velvoittava Informative = opastava

4 Tehdäänkö raudalla vai softalla? Periaatteessa toiminnallisen turvallisuuden järjestelmät toteutetaan raudalla, mutta PLC-pohjaiset ratkaisut ovat jo nyt yleisiä nämä lasketaan ohjelmistoiksi Jos tarvittava laskenta on monimutkaista, tämä voi puoltaa ohjelmistoratkaisua käytettävyys (availability) vs. turvallisuus Mikäli vaatimukset tarkentuvat vasta matkan varrella, voi softalla protoilla helpommin Softan monistaminen on halvempaa kuin raudan Osataan tehdä paremmin softaa kuin rautaa

5 Johdanto IEC 61508-3 requires a combination of fault avoidance (quality assurance) and fault tolerance approaches (software architecture), as there is no known way to prove the absence of faults in reasonably complex safety-related software, especially the absence of specification and design faults. Järjestelmän ollessa toiminnassa pitkään luottamus laitteistoa kohtaan vähenee ja ohjelmistoa kohtaan kasvaa Liitteet A-G, velvoittavia vain A ja D A: Guide to the selection of techniques and measures D: Safety manual for compliant items additional requirements for software elements Liite B Detailed tables ei ole enää velvoittava Uusi liite C: Properties for software systematic capability

6 Uusi versio sisältää paljon uutta verrattuna vanhaan Uudistusten vaikutuksia: Vaihtoehtoja on enemmän Standardia on hankalampi käyttää tarkistuslistana Uuden version ymmärtäminen hankalaa vain yhden alueen asiantuntijalle, saati sitten sen soveltaminen käytännössä Soveltamisen vaikeus kasvaa jyrkästi SIL-tason kasvaessa Standardinmukaisuuden tarkistaminen hankalaa, safety case ei vieläkään pakollinen Menetelmät sangen erilaisia kuin laitteistolle kaavoja vain osan 61508-7 liitteessä D: A probabilistic approach to determining software safety integrity for predeveloped software

Ohjelmiston turvallisuusvaatimusten määrittely (7.2) 7 Vaatimukset täytetään yleensä jonkinlaisella yhdistelmällä geneeristä sulautettua ohjelmistoa ja sovellusohjelmistoa Oikeiden menetelmien valinnassa tavoitteena on, että kaikki turvallisuustarpeet (safety needs) tulevat täytettyä em. vaatimukset tulevat täytettyä oikein määrittelyvirheistä ja monikäsitteisyyksistä päästään eroon turvallisuusvaatimukset ovat ymmärrettäviä ei-turvatoiminnot eivät pääse vaikuttamaan turvatoimintoihin ja tarjotaan pohja verifioinnille ja validoinnille (testattavuus) Standardi kannustaa laitteisto- ja ohjelmistosuunnittelijoiden läheiseen yhteistyöhön kun ohjelmiston osuus turvatoimintojen toteutuksessa ja ohjelmiston arkkitehtuuri tarkentuvat

8 Ohjelmistojen suunnittelu ja kehitys (7.4) Testattavuus ja ylläpito on otettava huomioon ohjelmiston suunnittelussa Modulaarisuus, tiedon kätkentä ja kapselointi ovat tärkeitä menetelmiä ylläpidettävyyden kannalta Eräänä tärkeänä tavoitteena on turvatoimintoja toteuttavan ohjelmiston yksinkertaisuus Riippumattomuus turvakriittisen ja ei-turvakriittisen koodin välillä, sekä eri turvatasoja edustavien koodikomponenttien väleillä sekä datan että suoritusajan suhteen Kuten laitteistonkin osalta, voidaan riippumattomia ohjelmistokomponentteja käyttää yhdessä siten, että SC N + SC N => SC N+1

9 Mikäli halutaan uudelleenkäyttää aiemmin tehtyä ohjelmistoa, tarvitaan turvallisuusohjekirja sekä yksi kolmesta alla esitetystä tavasta varmistaa uudelleenkäytettävän ohjelmiston toiminnallinen turvallisuus Reitti 1s: ohjelmisto on tehty standardin vaatimalla tavalla Reitti 2s: Proven in Use Reitti 3s: toteutuksen arviointi jälkikäteen (ks. 7.4.2.13)

10 Yksikkötestaus (7.4.7) Yksikön pitää toteuttaa spesifikaationsa Tämä todetaan koodikatselmoinneilla ja yksikkötestauksella Käytettävien menetelmien pitäisi taata sekä testauksen kattavuus että sen oikeellisuus, toistettavuus sekä tarkasti määritelty testikonfiguraatio Yksikkötestaus tehdään järjestelmäsuunnittelun aikana tehdyn testaussuunnitelman mukaisesti Tavoitteena on näyttää, että yksikkö toteuttaa aiotun toiminnallisuuden eikä mitään muuta Koska täydellinen testaaminen siten, että yksikön kaikki syöte- ja tulosarvot saataisiin katettua, on yleensä mahdoton tehtävä, käytettävien testausmenetelmien pitäisi pyrkiä pitämään testitapausten määrä järkevänä Yksikkötestauksen tulokset on dokumentoitava Jos testit eivät mene läpi, on korjaavat toimenpiteet määriteltävä

11 Integrointitestaus (7.4.8) Ohjelmiston integrointitestaus tulee määritellä suunnittelu- ja kehitysvaiheen aikana Integrointitestaussuunnitelman tulee ottaa kantaa seuraaviin: Ohjelmiston jakaminen hallittaviin integrointikokonaisuuksiin Testitapaukset ja data Minkätyyppistä testausta tullaan suorittamaan Testiympäristö, -työkalut, -konfiguraatiot ja -ohjelmat Päätösehto (hyväksymiskriteerit) Korjaavat toimenpiteet, jos testit eivät mene läpi Integrointitestaussuunnitelma pitää sisällään integrointitestauksessa käytettävät testitapaukset, jotka näyttävät, että kaikki yksiköt (modules, elements, subsystems) toimivat yhdessä oikein suorittaessaan aiotut toiminnallisuudet eikä mitään muuta

12 Tulokset dokumentoidaan peilaten hyväksymiskriteereihin, ja myös syyt epäonnistuneille testeille dokumentoidaan During software integration, any modification to the software shall be subject to an impact analysis which shall determine all software modules impacted, and the necessary reverification and re-design activities Tähän teemaan palataan kun pohditaan ketterien ohjelmistokehitysprosessien soveltamista standardin yhteydessä

Järjestelmän turvallisuuden kelpuutus ohjelmiston osalta (7.7) 13 Menetelmien valintaan vaikuttavat ominaisuudet: Testauksen kattavuus ja oikeellisuus suhteessa ohjelmiston määrittelyyn Toistettavuus Tarkasti määritelty konfiguraatio kelpuutukselle Tulokset dokumentoidaan ja erityisesti jokaisen turvatoiminnan kohdalla tarvitaan tietoa seuraavista: Kronologisesti järjestetty historiatieto siitä mitä on tehty, jotta voidaan jäljittää myöhemmin mitä on tapahtunut Mikä kelpuutussuunnitelman versio on käytössä Mitä turvatoimintoa kelpuutetaan, viite kelpuutussuunnitelmaan Käytettävät työkalut ja laitteisto yhdessä kalibrointidatan kanssa

14 Kelpuutustoimien tulokset Erot havaittujen ja odotettujen tulosten välillä (jos eroa, kirjataan päätös siitä, jatketaanko vai palataanko muutospyynnön kautta aiempaan elinkaaren vaiheeseen) Testaus on pääasiallinen keino kelpuuttamiseen, mutta analyysiä (analysis), animointia ja mallinnusta voidaan käyttää apuna Tulosten pitää osoittaa, että kaikki vaatimuksen turvatoiminnoille on oikein täytetty ja vain ne Mikäli kelpuutus epäonnistuu, syyt pitää dokumentoida

15 Todentaminen (7.9) Tavoitteena elinkaaren vaihetuotteiden todentaminen siten, että vaiheen syötteistä tuotetaan oikeita ja yhdenmukaisia tuloksia Menetelmien valintaan vaikuttavat ominaisuudet samoja kuin kelpuuttamisessa, mutta nyt suhteessa edellisen vaiheen tuotokseen Todentamissuunnitelma viittaa kriteereihin, tekniikoihin ja työkaluihin, joita todentamisessa tullaan käyttämään, ja ottaa kantaa seuraaviin asioihin: Turvallisuuden eheyden (integrity) vaatimusten arviointi Todentamisstrategian, -toimien ja tekniikoiden valinta ja dokumentointi Todentamistyökalujen valinta ja käyttö Todentamistulosten arviointi Tarvittavat korjaavat toimenpiteet

16 Mitä kaikkea todentaminen pitää sisällään: Ohjelmiston turvallisuusvaatimusten todentaminen Ohjelmiston arkkitehtuurin todentaminen Järjestelmäsuunnittelun todentaminen Moduulisuunnittelun todentaminen Koodin todentaminen (staattisesti) Datan todentaminen Suorituskyvyn (time performance) todentaminen Yksikkötestaus Integrointitestaus HW/SW-integraatio Järjestelmän turvallisuuden kelpuutus ohjelmiston osalta

17 Liitteiden A ja B taulukot Taulukko A.5 Ohjelmiston suunnittelu ja kehitys yksikkötestaus ja integrointi Taulukko A.6 HW/SW-integraatio Taulukko A.7 Järjestelmän turvallisuuden kelpuutus ohjelmiston osalta Taulukko A.8 Muutokset Taulukko A.9 Ohjelmiston todentaminen Taulukko B.2 Dynaaminen analyysi ja testaus Taulukko B.3 Toiminnallinen- ja mustalaatikkotestaus Taulukko B.6 Suorituskykytestaus Taulukko B.8 Staattinen analyysi

Mallipohjainen testaus ja formaali verifiointi 18 Mallipohjainen testaus on verrattain uusi teknologia, joka on otettu mukaa standardin uuteen versioon Menetelmän taustalla ovat formaalit menetelmät ja formaali verifiointi Formaali verifiointi (todistaminen) on toinen tärkeä todentamismenetelmä, joka oli mukana jo standardin aiemmassa versiossa

KIITOS 19 Yhteystiedot: Mika Katara Tampereen teknillinen yliopisto Ohjelmistotekniikan laitos 040 849 0743 mika.katara@tut.fi