Sytyke ry:n laivaseminaari 3.-5.9.2002
Testaus ja Laatu Ohjelmiston laadun ja laatuvaatimusten mittaaminen Sytyke ry:n laivaseminaari 3.-5.9.2002
Hyvä laatu? Testaaminen? Ohjelmiston hyvällä laadulla tarkoitamme sen kykyä vastata odotuksiin, kykyä vastata asetettuihin laatuvaatimuksiin. Testaamisen tarkoitus on todentaa testauksen kohteen vaatimusten mukaisuus, sekä toiminnallisten että laadullisten vaatimusten osalta.
ISO 9126 - ohjelmistotuotteen laatu -standardi Kansainvälinen standardi vuodesta 1991 Tarjoaa mittaristojen kehittämiselle kestävän perustan Laadun kuusi eri osaaluetta
Toiminnallinen laatu (Functionality) Toiminnallisella laadulla tarkoitetaan mm. ohjelmiston vastaavuutta käyttäjän tarpeiden kanssa, siten että se sisältää kaikki toivotut piirteet, mutta ei muuta. Myös ohjelmiston liitettävyys käyttöympäristöön, dokumentiston ja itse ohjelman välinen kokonaiseheys (accuracy) sekä tietoturvaominaisuudet luetaan toiminnalliseen laatuun kuuluviksi. Tietoturvaominaisuuksia ovat suojaus, salaus ja varmistus.
Functionality by ISO/IEC 9126-1 Accuracy Security Interoperability Suitability Compliance
Luotettavuus (Reliability) Ohjelmiston luotettavuus tarkoittaa ensisijaisesti virheetöntä toimintaa normaaleissa käyttötilanteissa. Siihen liittyy myös vikasietoisuus sekä käyttäjän että ympäristön aiheuttamien poikkeuksellisten toimenpiteiden yhteydessä. Myös toipumisvalmius (recoverability) on luotettavuutta.
Reliability by ISO/IEC 9126-1 Maturity Fault tolerance Recoverability Reliability compliance
Käytettävyys (Usability) Ohjelmiston käytettävyydellä tarkoitetaan erityisesti käyttöliittymän ja sen toimintalogiikan opittavuutta, ymmärrettävyyttä ja käytön rationaalisuutta. Käyttöliittymää arvioitaessa lisänäkökulmana voi tarkastella myös ohjelmiston avustavuutta ja ohjaavuutta.
Usability by ISO/IEC 9126-1 Understandability Learnability Operability Attractiveness Usability compliance
Tuotannollinen tehokkuus (Efficiency) Ohjelmiston tuotannollinen tehokkuus tarkoittaa ensisijassa kunkin käyttötilanteen vaatimusten mukaista nopeutta sekä kaikkinaista resurssien käytön taloudellisuutta.
Efficiency by ISO/IEC 9126-1 Time behaviour Resource utilisation Efficiency compliance
Ylläpidettävyys (Maintainability) Ohjelmiston ylläpidettävyys käsittää monta eri asiaa. Sellaisia ovat ainakin rakenteellinen selkeys ja johdonmukaisuus, tuotannon aikaisten virheilmoitusten hyvyys ja yksiselitteisyys sekä tuotantoonoton joustavuus ja itsenäisyys. Ohjelmiston ylläpidettävyyteen liittyy myös testattavuus ja lisäksi tehtyjen muutosten rajautuminen tarkoitettuihin kohtiin ohjelmistoa.
Maintainability by ISO/IEC 9126-1 Testability Changeability Analysability Stability Maintainability compliance
Siirrettävyys (Portability) Ohjelmiston siirrettävyys korostuu tuotteistettujen ohjelmistojen yhteydessä, mutta on mahdollista arvioida asiakaskohtaisten räätälöityjenkin ratkaisujen osalta. Sen alakohtia ovat alusta- ja ympäristöriippumattomuus (adaptability), asennusrutiinien standardinmukaisuus ja selkeys (installability), paketoitavuus ja uusien päivitysversioiden asennuksen sujuvuus sekä yhteiskäyttöisten asetusten loukkaamattomuus käyttöympäristössä.
Portability by ISO/IEC 9126-1 Adaptability Installability Co-existence Replaceability Portability compliance
FiSMAn tuotelaatumetriikka Kysely jäsenyrityksille 2000-2001 Milloin xxx-vaatimukset on helppoa / keskimääräistä / vaikeaa toteuttaa? Vastaajia Comptel, Fidenta, Fortum, Fujitsu, Ilmarinen, Kesko, Nokia NRC, Pohjola, Tapiola, TE Public Services, TKP Tieto, VTT Yhteenveto tuottavuustyöryhmässä 2001
Ohjelmiston luotettavuusvaatimukset: Vikasietoisuus ja toipumisvalmius kaikissa käyttäjän ja käyttöympäristön aiheuttamissa tilanteissa. Erittäin vaativa tilanne: -- Ohjelmiston virheellisestä toiminnasta voi aiheutua ihmishenkien menetyksiä, suuria ympäristötuhoja tai miljoonien eurojen taloudellisia tappioita, ohjelmiston on toivuttava kaikista häiriötilanteista hukkaamatta yhtään jo syötettyä tietoa.
Ohjelmiston luotettavuusvaatimukset: Vikasietoisuus ja toipumisvalmius kaikissa käyttäjän ja käyttöympäristön aiheuttamissa tilanteissa. Keskimääräistä vaativampi tilanne: - Ohjelmistolla on korkea ajantasaisuusaste (real-time), se on osa laajaa integroitua kokonaisuutta ja sen aiheuttamat virheet näkyvät välittömästi useille muille sovelluksille sekä tuhansille käyttäjille tai ohjelmisto on erittäin laajalevikkisen tuotteen osa ja siten virheiden korjaaminen todella kallista.
Ohjelmiston luotettavuusvaatimukset: Vikasietoisuus ja toipumisvalmius kaikissa käyttäjän ja käyttöympäristön aiheuttamissa tilanteissa. Keskimääräinen tilanne: +/- Ohjelmisto sietää korkeintaan 1-2 tunnin katkoja, virhetilanteista toipumisessa voidaan nojautua pääosin järjestelmätasoisiin rutiineihin, virheet eivät aiheuta kovin suuria taloudellisia menetyksiä eivätkä mitään vaaratilanteita ympäristölle tai käyttäjille.
Ohjelmiston luotettavuusvaatimukset: Vikasietoisuus ja toipumisvalmius kaikissa käyttäjän ja käyttöympäristön aiheuttamissa tilanteissa. Keskimääräistä helpompi tilanne: + Ohjelmiston käyttötarve ei ole jatkuvaa, joskin päivittäistä. Häiriöistä on parhaimmillaan aikaa toipua jopa vuorokausi, pahimmistakin virheistä aiheutuu vain sadoissa euroissa mitattavia tappioita ja heijastusvaikutukset rajoittuvat 1-2 muuhun sovellukseen.
Ohjelmiston luotettavuusvaatimukset: Vikasietoisuus ja toipumisvalmius kaikissa käyttäjän ja käyttöympäristön aiheuttamissa tilanteissa. Erittäin helppo tilanne: ++ Ohjelmiston käyttötarve kausittaista, muutaman päivän käyttökatko ei aiheuta käyttäjäorganisaatiolle mitään ongelmia, vain muutaman käyttäjän sovellus ei-operatiivisessa käytössä, eikä lainkaan heijastusvaikutuksia muihin sovelluksiin.
Laadun mittaaminen käytännössä Absoluuttisen laadun mittaaminen lähes mahdotonta Laatu on ennen kaikkea käyttäjä- ja käyttötilannekohtainen asia Vertailuihin mittaristo sopii aika hyvin, osana projektin tilanneanalyysia Tuotteen laatuprofiili verrattuna edelliseen versioon tai toiseen tuotteeseen
Esimerkki soveltamisesta: Experience Pro 3.0 vs 2.0 - Ohjelmiston laatu
Miksi testata, miksi välittää laatustandardeista? Asioiden systemaattinen tarkastelu ja standardien hyödyntäminen vähentävät riitelemistä ja siten lisäävät onnellisuutta!