Vaatimusten luomisesta kehitykseen ja testaukseen



Samankaltaiset tiedostot
Vaatimusten ja testauksen yhteys

Laadukas vaatimustenhallinta. Pekka Mäkinen Copyright SoftQA Oy

Soft QA. Vaatimusten muutostenhallinta. Ongelma

Vaatimusmäärittely- ja hallinta

Vaatimusmäärittely- ja hallinta. Peruskäsitteet. Syyt aikataulun ja budjetin ylitykseen. TJTA330 Ohjelmistotuotanto

Projektityö

Ketterä vaatimustenhallinta

Aluksi. Riskien hallinta. Riskityyppejä. Riskillä on kaksi ominaisuutta. Reaktiivinen strategia. Proaktiivinen strategia

Prosessien kehittäminen. Prosessien parantaminen. Eri mallien vertailua. Useita eri malleja. Mitä kehitetään?

TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo

Onnistunut Vaatimuspohjainen Testaus

CMM Capability Maturity Model. Software Engineering Institute (SEI) Perustettu vuonna 1984 Carnegie Mellon University

CMMI CMM -> CMMI. CMM Capability Maturity Model. Sami Kollanus TJTA330 Ohjelmistotuotanto Software Engineering Institute (SEI)

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus

Testaaminen ohjelmiston kehitysprosessin aikana

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

7. Product-line architectures

CMMI CMMI CMM -> CMMI. CMM Capability Maturity Model. Sami Kollanus TJTA330 Ohjelmistotuotanto

Ohjelmistotekniikka - Luento 2

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Toimitusketjun vastuullisuus ja riskien hallinta

Tapahtuipa Testaajalle...

2. Ohjelmistotuotantoprosessi

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

RAIN RAKENTAMISEN INTEGRAATIOKYVYKKYYS

7.4 Variability management

Ohjelmistoprojektien hallinta Vaihejakomallit

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

TESTAUSPROSESSIN ORGANISOINNIN KONSEPTIMALLI. Luonnos mukautuvalle referenssimallille

Lyhyt johdatus ketterään testaukseen

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

Tutkimuslääkkeiden GMP. Fimea Pirjo Hänninen

Hankkeiden vaikuttavuus: Työkaluja hankesuunnittelun tueksi

Vaatimustenhallinta. Exit

WP3 Decision Support Technologies

Projektinhallinta: riskeihin varautuminen

Jussi Klemola 3D- KEITTIÖSUUNNITTELUOHJELMAN KÄYTTÖÖNOTTO

Hankintailmoitus: Pohjois-Savon sairaanhoitopiirin kuntayhtymä/kiinteistöyksikkö : Puijon sairaalan Pääaula-alueen uudistus, Sähköurakka

Virtuaalinen tarkastus. Katselmoinnit osa 3. Paritarkastus. N-kertainen tarkastus (n-fold inspection)

Peruskäsitteet. Vaatimusmäärittely- ja hallinta. Vaatimusmuutosten hinta. Syyt aikataulun ja budjetin ylitykseen

Tietojärjestelmän osat

ISEB/ISTQB FOUNDATION CERTIFICATE IN SOFTWARE TESTING III

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Määrittely- ja suunnittelumenetelmät

Prosessiajattelu. Organisaation prosessikuvaus - CMMI. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessien määritys CMMI käytänteet

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Onnistunut SAP-projekti laadunvarmistuksen keinoin

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Ohjelmistotuotteen hallinnasta

HITSAUKSEN TUOTTAVUUSRATKAISUT

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Prosessiajattelu. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessikuvaus - CMMI. Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4.

Olet vastuussa osaamisestasi

Organisaation kokonaissuorituskyvyn arviointi

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

Fujitsu SPICE Lite. Kimmo Vaikkola Fujitsu Finland Oy Laatu ja liiketoimintatavat. Copyright 2010 FUJITSU

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

VBE2 Työpaketit Jiri Hietanen / TTY

Ohjelmiston toteutussuunnitelma

Collaborative & Co-Creative Design in the Semogen -projects

HYÖDYNNÄ SUBSCRIPTION-ETUSI SUBSCRIPTION SOPIMUSTEN HALLINTA

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Efficiency change over time

Globaalisti Hajautettu Ohjelmistokehitys Mitä, Miksi & Miten? Maria Paasivaara

Information on preparing Presentation

Capacity Utilization

TietoEnator Pilot. Ari Hirvonen. TietoEnator Oyj. Senior Consultant, Ph. D. (Economics) presentation TietoEnator 2003 Page 1

Software Signing System System overview and key domain concepts

Rakentamisen 3D-mallit hyötykäyttöön

Hankkeen toiminnot työsuunnitelman laatiminen

T Johdatus käyttäjäkeskeiseen tuotekehitykseen. suunnitteluprosessissa. Käyttäjän huomiointi. Iteroitu versio paljon kirjoitusvirheitä

Käyttäjäkeskeinen suunnittelu

Alkutarkastus, , SERJS2134, Jarmo Saunajoki

PROJEKTI- PÄÄLLIKÖSTÄ PRODUCT OWNERIKSI MEERI CEDERSTRÖM

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri

GMP tilaisuus Riskinhallinta, muutostenhallinta, CAPA ja poikkeamat

itsmf Finland Conference 2016 Focus Markus Leinonen COBIT ja governance

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Standardi IEC Ohjelmisto

(Core) & (Test Manager). Sertifikaattikoe klo

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

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat

PROJEKTIN SUUNNITTELU JOUNI HUOTARI, PAAVO MOILANEN, ESA SALMIKANGAS

LX 70. Ominaisuuksien mittaustulokset 1-kerroksinen 2-kerroksinen. Fyysiset ominaisuudet, nimellisarvot. Kalvon ominaisuudet

SYSTEEMITYÖ. Tärkeitä sanoja

LAADUSTA KANSAINVÄLISTÄ KILPAILUKYKYÄETUA ESITELMÄN SISÄLTÖ: 1. SABRISCAN-TARINA 2. TULOKSET 3. YHTEENVETO

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

Tehosta toimintaasi oikealla tiedonhallinnalla Helsinki, TIVIAn tapahtuma Jussi Salmi

ITK130 Ohjelmistoprosessi

Aiming at safe performance in traffic. Vastuullinen liikenne. Rohkeasti yhdessä.

Ubicom tulosseminaari

BIMin mahdollisuudet hukan poistossa ja arvonluonnissa LCIFIN Vuosiseminaari

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

Laadun hallinta. Laatukustannukset. Sami Kollanus TJTA330 Ohjelmistotuotanto

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

ISO Päivi Kähönen-Anttila

Laatukustannukset. Laadun hallinta. Laadun kustannuksista

Ajankohtaista Laatukysely ja jatkotoimet Raportointi 2010 tuloksia

Hankkeen toiminnot työsuunnitelman laatiminen

Transkriptio:

Vaatimusten luomisesta kehitykseen ja testaukseen International Merito Forum Oy / 09.05.2006 SoftQA Oy Pekka Mäkinen http://www.softqa.fi/ Pekka.Makinen@softqa.fi

Vaatimukset ja järjestelmät

Mitä on vaatimustenhallinta? Vaatimustenhallinta on työkalun käyttöä Vaatimustenhallinta on oikeiden vaatimusten tuottamista Vaatimustenhallinta on projektitoiminnan osa, joka tähtää laadun varmistamiseen Vaatimustenhallinta on tylsää Vaatimustenhallinta on vaatimusten tilan seurantaa Vaatimustenhallinta on sama kuin Requirements Management Vaatimustenhallinta on osa Systems Engineeringiä Vaatimustenhallinta on pohjimmiltaan ihmisten välistä viestintää, joka pyrkii yhteiseen ymmärrykseen 3

Laatu ja vaatimukset Laatu on vaatimustenmukaisuutta (Philip Crosby) Minkälaiset ovat hyvät vaatimukset? Miten vaatimustenmukaisuus tarkistetaan? Asioita voidaan tarkastella näiden kysymysten mukaan kahdesta suunnasta: Vaatimusten testaus ja laadunvarmistus Vaatimusten käyttö testauksessa ja laadunvarmistuksessa. Loppujen lopuksi nämä kaksi nivoutuvat yhteen, koska testauksen suunnittelu testaa myös vaatimukset ja hyvät vaatimukset ovat pohjana testaukselle. Tapoja varmistaa tuotteen tai palvelun vaatimustenmukaisuus on monia. 4

Vaatimukset ja ISO 9001:2000 Before submission of a tender, or the acceptance of a contract or order... shall be reviewed by the supplier to ensure that: the requirements are adequately defined and documented... The supplier shall establish and maintain documented procedures to control and verify the design of the product in order to ensure that the specified requirements are met. Design input requirements relating to the product, including applicable statutory and regulatory requirements, shall be identified, documented and their selection reviewed by the supplier for adequacy. Incomplete, ambiguous or conflicting requirements shall be resolved with those responsible for imposing these requirements. Design output shall be documented and expressed in terms that can be verified and validated against design input requirements. At appropriate stages of design, design verification shall be performed to ensure that the design stage output meets the design stage input requirements. 5

Vaatimukset ja CMMI CMMI-versiossa 1.1. (SEI 2002) vaatimustenhallinta on key process area tasolle 2 sisältäen seuraavat tavoitteet: SG 1 Manage Requirements SP 1.1 Obtain an Understanding of Requirements SP 1.2 Obtain Commitment to Requirements SP 1.3 Manage Requirements Changes SP 1.4 Maintain Bidirectional Traceability of Requirements SP 1.5 Identify Inconsistencies between Project Work and Requirements GG 2 Institutionalize a Managed Process (describes general goals for process improvement which need to be checked for requirements management processes, e.g. configuration management) 6

V-malli toteutuksesta Visio Suunnittelu, mallinnus Hyöty Käyttäjävaatimukset Systeemivaatimukset Systeemitestaus Yksikkötestaus Hyväksymistestaus Toteutus 7

Mistä virheet ja riskit ovat peräisin? Requirements 56% Code 7% Other 10% Design 27% %-arvo kuvastaa syyn osuutta havaituista virheistä Lähde: James Martin, An Information Systems Manifesto 8

Laajennettu V-malli toteutuksesta Visio Suunnittelu, mallinnus Katselmoidut vaatimukset Katselmoidut vaatimukset Katselmoitu suunnittelu Toteutus Yksikkötestaus Hyväksymistestaus Käyttäjävaatimukset Systeemivaatimukset Systeemitestaus Hyöty 9

Ohjelmisto on vain osa kokonaissysteemiä Ympäristö, muut systeemit Ohjelmisto Laitteet Liittymät Käyttäjät Data Ohjelmisto itsessään ei ole hyödyllinen kenellekään... 10

Sama vaatimusmaailmassa Ympäristön asettamat vaatimukset Käyttäjät vaatimukset? Liittymien asettamat vaatimukset Ohjelmistovaatimukset Laitevaatimukset Vaatimukset datalle...joten vain yhteen osa-alueeseen keskittyminen tuottaa ongelmia 11

Systeemi ja ympäristö Ongelmia - Helsingissä kapeat raiteet? Raiteet pohjattu betonin päälle? Jyrkät kaarteet? Kuvan lähde: Helsingin sanomat 12

Vaatimusten keruu ja luominen

Vaatimukset ja käyttötapaukset Joko. tai Use cases Constraints, attributes Collected requirements Collected requirements Käyttötapaukset ovat erinomainen tapa kerätä toiminnallisia vaatimuksia. Mutta vaatimuksiin tarvitaan muitakin tietoja: rajoitteita ym. ylläpidettävää attribuuttitietoa. Use cases Käyttötapauksia voidaan käyttää tarkentaan vaatimuksia sekä tuottamaan alemman tason vaatimuksia. 14

Vaatimukset ovat aina iteratiivisia Decision point: Accept document or re-enter spiral Informal statement of requirements Requirements elicitation Requirements analysis and negotiation Requirements document and validation report START Agreed requirements Requirements validation Requirements documentation Draft requirements document 15

Vaatimusten kerääminen Määrittele tai käytä valmista rakennepohjaa dokumentille. Kirjoita vaatimukset talteen mahdollisimman aikaisin, vaikka ne ovat epätäydellisiä. Tuota alustava dokumentti nopeasti, jotta saadaan mahdollisimman aikaisin palautetta. Työstä vaatimuksia palautteen pohjalta, korjaamalla puutteita, virheitä ja ristiriitoja. Pidä brainstorm- ja katselmointilaisuuksia (epämuodollisia) usein palautteen saamiseksi. Palaute oikeilta käyttäjiltä on paljon parempi kuin asiantuntijoiden käytä esim. prototyyppejä. Vaatimusten määrittelyprosessi on iteratiivinen! 16

Hyvän vaatimuksen ominaisuudet Jokaisen yksittäisen vaatimuksen pitäisi olla: Oikea Teknisesti ja laillisesti mahdollista Täydellinen Ilmaista yksi ajatus tai toteama Selkeä Ymmärrettävä ja yksikäsitteinen Ristiriidaton Ei ristiriitoja muiden vaatimusten kanssa Testattavissa Toteutuminen voidaan todentaa Jäljitettävissä Tunnistettu yksikäsitteisesti, voidaan jäljittää Järkevä Toteutettavissa: kustannukset, aikataulu Riippumaton suunnittelusta Ei sido suunnittelua Tarpeellinen Tarvitaan tosiaan Priorisoitu Tarpeellisuus arvioitu ja prioriteetti asetettu Kuinka tuotetaan tällaisia vaatimuksia? 17

Hyvä vaatimusdokumentti Täydellinen Tietoja ei puutu. Ristiriidaton Ei ristiriitoja dokumentin sisäisesti tai muihin dokumentteihin. Muokattavissa Dokumentti on muokattavissa ja tiedot muutoksista on ylläpidettävissä. Jäljitettävissä Jokainen vaatimus dokumentissa pitäisi olla jäljitettävissä rakenteessa ylös- ja alaspäin. Luettava ja ymmärrettävä Vaatimustenhallinta on viestintää. Hyvä vaatimusdokumentti koostuu hyvistä vaatimuksista. 18

Tekstin rakenne Before: 3.1 The XYZ system shall provide variance / comparative information that is timely, itemized in sufficient detail so that important individual variances are not obscured by other variances, pinpoints the source of each variance, and indicates the area of investigation that will maximize overall benefits. Lähde: W.M.Wilson: Writing effective natural language requirements specifications After: 3.1 Variance information The XYZ system shall provide variance / comparative information. 3.1.1 Information detail Variance / comparative information shall be timely. Variance / comparative information shall be itemized in sufficient 3.1.1.1 Level of details Prevent important individual variances from being obscured by other variances. Pinpoint the source of each variance.... Crosstalk, February 1999 (http://www.stsc.hill.af.mil/) 19

Vaatimukset eivät ole koskaan täydellisiä Koska vaatimusten keruu ja hallintaprosessi on iteratiivinen, muuttuvat vaatimukset koko ajan. Muutoksia kertyy myös toteutuksen muista osioista, sekä testauksesta. Loppujen lopuksi lähtökohdaksi kannattaa ottaa, että vaatimukset muuttuvat koko kehityshankkeen elinkaaren ajan ja mahdollisesti ovat valmiit kun hanke loppuu. Täydellisiä vaatimuksia ei koskaan saada, ainoa mitä voi toivoa, on että vaatimukset lähestyvät täydellisyyttä. Pyrkimys lähestyä saavuttamatonta on kuitenkin hyödyllistä! 20

Projektin dokumenttimalli Business requirements User requirements System requirements Design documents Eri tasojen vaatimukset ja eri dokumenttityypit ovat erillään, mutta linkitetään jäljitettävyyden toteutumiseksi Acceptance test cases System test cases Unit test cases 21

Miksi jäljitettävyys on tärkeää? Asiallinen jäljitettävyys: Miksi on tälläinen vaatimus? Mikä ylemmän tason vaatimus tuottaa tämän vaatimuksen? Kuka käyttäjä tai käyttäjäryhmä esittää tällaista vaatimusta? Ajallinen jäljitettävyys: Miten tämä yksittäinen vaatimus on muuttunut ajan kuluessa? Miten tämä vaatimusdokumentti on muuttunut ajan kuluessa? Mikä on uusin versio? Mikä versio on hyväksytty? Jäljitettävyys mahdollistaa: Prosessiaikaisen seurannan ovatko kaikki ylemmän tason vaatimukset ovat tulleet analysoitua ja että kaikki käyttäjäryhmät ovat tulleet huomioitua. Luo pohjan muutosten vaikutusten analyysille. 22

Vaatimukset prosessissa

Klassinen tapa ajatella: vesiputousmalli Requirements Capture & Analysis Rework Design Review, Baseline Review, Baseline Vaatimukset kerätään ja niitä toteutetaan vaiheittain. Jos tulee muutoksia, tehdään uudelleen. Rework Implement Review, Baseline Rework Unit Test Review, Baseline Rework Integrate Rework Acceptance Test Review, Baseline 24

Inkrementaalinen kehitys: kerätään kerran R D D T 1st 1 st increment taken into actual use? Kuinka vaatimukset kerätään ja hallinnoidaan? Kuinka vaatimusten ja niiden muutokset arvioidaan vaikutuksina suunnitteluun, toteutukseen sekä testaukseen? R D D T 2nd prototype R D D T Product 25

Iteratiivinen kehitys: vaatimukset muuttuvat Product Requirements Development Design Testing Kuinka vaatimukset kerätään ja hallinnoidaan? Kuinka vaatimusten ja niiden muutokset arvioidaan vaikutuksina suunnitteluun, toteutukseen sekä testaukseen? 26

Pitääkö myöntää, että kaikki on hässäkkää? Käytännön hankkeissa prosessimalleja usein yhdistellään tai ne yhdistyvät, suunnitelmallisesti tai suunnitelmatta. 27

Jos ajatellaan V-mallia dokumenttimallina Visio Suunnittelu, mallinnus Katselmoidut vaatimukset Katselmoidut vaatimukset Katselmoitu suunnittelu Toteutus Yksikkötestaus Hyväksymistestaus Käyttäjävaatimukset Systeemivaatimukset Systeemitestaus Hyöty 28

Tiivistetty prosessi ajan kuvana Vaatimustenhallinta Testaus Jos otetaan kirjallisesti laatustandardien näkemys toteutushankkeista, niin niissä on kysymys vaatimusten tilan seurannasta sekä vaatimusten toteutumisen testaamisesta. Todella ketterää! Aika 29

Milestone pisteet kiinnittävät prosessin Alku 1 2 3 Loppu Milestone pisteet 1,2 ja 3 ovat ne kohdat prosessia jossa: On selkeästi määritelty mitä pitää olla tehtynä jotta pystytään jatkamaan eteenpäin seuraavaan vaiheeseen Voidaan tarkistaa myös tehdyn työn yhteensopivuus projektivision tai liiketoiminnallisten tavoitteiden kanssa Tehdään mahdollisesti go / no-go päätös hankkeen jatkamisesta. Esim: milestone 1:ssä pitää olla asiakasvaatimukset koottuna sekä katselmoituina. Asiakasvaatimukset pitää olla linkitettynä alustaviin systeemivaatimuksiin, sekä hyväksymistestitapauksiin. Muutostenhallinta käynnistetään tämän jälkeen. 30

Vaatimusten kytkeminen testaukseen Jos hyvälaatuiset vaatimukset todetaan toteutetuiksi ja testatuiksi hyväksytysti, niin eikö silloin ole kaikki tehty? 31

Vaatimusten muutos projektin elinaikana Toiminnallisuus Käyttäjien tarpeet kasvavat ajan myötä 2. vaiheen toiminnallisuusvaje 1. vaiheen toiminnallisuusvaje Aika 1. vaiheen vaatimukset 1. vaiheen tuote 2. vaiheen vaatimukset 2. vaiheen tuote 32

Muutosten ongelma Muutos Tehdään määrittely, speksit tms. Joiden perusteella tehdään tuote Muutokset kohdistuvat tyypillisesti vain toteutukseen ja sen dokumentaatioon (esim. ohjelmiston lähdekoodiin), eikä määrittelyyn. Täten lopputuloksena on tuote joka ei enää vastaa määrittelyä, koska tuote ja määrittely ovat muutosten johdosta eronneet toisistaan. Samoin jos toteutusta vain muutetaan, ei testaus koskaan testaa oikeita asioita. 33

Muutostenhallinta on tärkeää Vaatimusten, suunnittelun, toteutuksen sekä testauksen välinen jäljitettävyys on ehdoton, jotta voidaan hallita muutoksia sekä arvioida niiden aiheuttamia kustannuksia. Jäljitettävyyden kautta voidaan käydä lävitse muutoskohtaan liitetyt muut vaatimukset, suunnittelun sekä testauksen ja arvioida niiden muutostarpeet. Muutostenhallinnan prosessin pitää toteuttaa seuraavia vaiheita: muutostarpeet esitetään dokumentoidusti muutosehdotuksina muutosehdotukset pitää arvioida niiden tarpeellisuuden, kustannuksien ja aikatauluvaikutuksien osalta pitää tehdä päätös muutosehdotuksen toteuttamisesta tai hylkäämisestä jos muutos päätetään toteuttaa, pitää tämä tieto saada viestittyä toteutusta tekeville henkilöille muutos pitää dokumentoida ja lopuksi päätetty muutos pitää myös toteuttaa ja varmistaa toteutus. 34

Vaatimusten muutostenhallinta prosessina Muutostenhallinta Muutosehdotuksen arviointi Vaatimustenhallinta Muutoksen toteutus ja dokumentointi Muutoksen testaus ja dokumentointi Uusi Katselmoitavana Hylätty Hyväksytty Siirretty Muutosehdotuksen tila vaihtuu muutostenhallinnan prosessin aikana. Toteutettu Testattu Suljettu 35

Esimerkki jäljitettävästä dokumenttimallista 36

Menetelmiä testata vaatimusdokumentteja Tarkastus, siis tekstin läpikäynti oikeakielisyyden tarkistamiseksi. Katselmointi, eli dokumenttien läpikäynti sisällön oikeellisuuden ja täydellisyyden tarkistamiseksi. Suunnittelun ja testauksen käynnistäminen vaatimusten pohjalta tuo esille puutteita vaatimusdokumenteissa. Tarkistuslistat vaatimusten oikeellisuudesta. Käyttäjätyyppien läpikäynti onko kaikilta käyttäjiltä vaatimuksia? Taulukon lähde: Kosola / Pasivirta: Vaatimustenhallinnan soveltaminen puolustusvoimissa 37

Testaussuunnittelu testaa myös vaatimuksia Kun vaatimuksista lähdetään jo varhaisessa vaiheessa tekemään testitapauksia, tulee saman tien selvitettyä: ovatko vaatimukset selkeitä voiko niiden perusteella tehdä testausta. Välttämättä ei tarvitse tuottaa laajoja testitapauksia, vaan enemmänkin miettiä minitestitapaustasolla vaatimusta: Esimerkki pankkiautomaatista: Käyttäjän pitää olla mahdollista nostaa tililtään kerrallaan maksimissaan 400 euroa tai tilin saldon verran. Testivaatimuksia: Nosta tililtä 600 euroa, jos tilillä on niin paljon Nosta tililtä 158,67 euroa Nosta tililtä kymmenen kertaa saman päivän päivän aikana 400 euroa Minitestitapauksia voidaan tuottaa muodollisemmin riskianalyysin kautta. Näitä minitestitapauksia ei välttämättä käytetä lopullisessa testauksessa, koska sinne saavuttaessa testitapauksetkin ovat voineet muuttua. 38

Riskienhallinta Riski on mahdollisuus, että haitallinen tapahtuma toteutuu. Tässä määritelmässä riskillä viitataan tilanteeseen, jossa on mahdollista, mutta ei täysin varmaa, että esiintyy ei-toivottu tapahtuma, jolla on haitallisia seurauksia. Siten määritelmään sisältyvät niin todennäköisyys kuin seurauksetkin. Lähde: http://www.pk-rh.com/ 39

Riskienhallinnan prosessi Riskien tunnistaminen Riskien arviointi Riskilista Todennäköisyys Vaikuttavuus Iteraatio Riskien vähentäminen Toimenpide 40

Vaatimukset, riskit ja testaus Vaatimus Testisuunnittelu Riskianalyysi Testitapaus Riski Vaatimukset täsmentyvät riskianalyysin sekä testaussuunnittelun kautta, jokainen tässä osiossa tuottaa lisää aineistoa toisiin: Vaatimuksista voidaan lähteä hahmottamaan riskejä Riskit tuottavat lisää vaatimuksia sekä testitapauksia Testitapaukset pakottavat selventämään vaatimuksia Kaikki tämä muutos ja kehitys tapahtuu iteratiivisesti. 41

Korkean tason malli kehitysprosessista Kehitä dokumentaatiota Ei valmis muutostenhallintaan Dokumentaation kehitysvaihe Katselmoi dokumentaatio Dokumentaatio muutostenhallinnassa Versioi dokumentaatio Muutosehdotuksen arviointi Päätös muutosehdotuksesta Muutoksen toteutus ja dokumentointi Muutoksen testaus ja dokumentointi Riskianalyysi Ei toteuteta Testisuunnittelu 42

Hyviä käytäntöjä vaatimustenhallinnassa Best practice Prioritize requirements Cost of introduction Low Cost of application Low to moderate Involve customers and users throughout RE Use peer-reviews, scenarios etc. to verify and validate requirements Allocate 15 to 30 percent of total project effort to RE Low Low Low Moderate Moderate Moderate to high Identify and consult all likely sources of requirements Provide specification templates and examples Develop complementary models together with prototypes Maintain a traceability matrix Assign skilled project managers and team members to RE activities Low to moderate Low to moderate Low to moderate Moderate Moderate to high Moderate Low Moderate Moderate Moderate Taulukon lähde: Hofmann - Lehner: Requirements engineering as a a success factor in software projects IEEE Software, July/August 2001 43

Milloin tarvitaan työkalutukea? Henkilöiden lukumäärä Hankkeen aikaskaala Dokumenttien laajuus Kokonaisuuden hallinta voi edellyttää työkalutukea, jotta dokumentaatio saadaan ylläpidettyä ja varsinkin dokumenttien välinen jäljitettävyys ylläpidettyä. Pienissä projekteissa dokumentaatiota voidaan ylläpitää ns. office-ohjelmistoissa, mutta henkilöiden lisääntyminen, pitkä aikaskaala sekä dokumentaation laajuus kasvattaa tarvetta prosesseja tukevan ohjelmiston käyttöön. 44

Yhteenveto Vaatimukset, käyttötapaukset, mallit ovat menetelmiä parantaa ihmisten välistä viestintää ja ymmärrystä. Vaatimusten keruu ja hallinnointi on aina iteratiivista kaikki muuttuu, joten muutokseen pitää varautua ja toimia suunnitelmallisesti muutosten tapahtuessa. Vaatimusten hyvyyttä ja täydellisyyttä voidaan testata myös katselmointimenettelyjen lisäksi testaussuunnittelulla ja riskianalyysillä. Jäljitettävyys: tehtiinkö se mitä piti tehdä? Miten osoitetaan, että oikea asia tehtiin? 45

Kirjoja Hyvää lukemista Sommerville & Sawyer: Requirements Engineering A Good Practice Guide (Wiley 1997) Wiegers: Software Requirements Second Edition (Microsoft 2003) Netissä Wiegers: When Telepathy Won't Do: Requirements Engineering Key Practices http://www.processimpact.com/articles/telepathy.html Wiegers: Writing Quality Requirements http://www.processimpact.com/articles/qualreqs.html Robertson: An Early Start to Testing: How to Test Requirements http://www.systemsguild.com/guildsite/sqr/testreqs.html Bach: Risks and Requirements-based testing http://www.satisfice.com/articles/requirements_based_testing.pdf Boehm: Anchoring the Software Process http://sunset.usc.edu/publications/techrpts/1995/usccse95-507/asp.html 46

Kiitos mielenkiinnosta! SoftQA Oy - http://www.softqa.fi/ Pekka Mäkinen, konsultti, toimitusjohtaja Pekka.Makinen@SoftQA.fi 47