CASE KELA: monimutkaisten ja laajojen järjestelmien suorituskyky- ja tietoturvatestaus TTY: TIE-21200 Ohjelmistojen testaus 24.11.2014 Kaisa Tirkkonen Kehittämispäällikkö, Kela, Tietohallinto-osasto Testausryhmä / Suorituskyky- ja tietoturvatestaus
CV Kaisa Tirkkonen KTM, Jyväskylän yliopisto, tietojärjestelmätiede v. 1999 IT-alalla vuodesta 1998: Nokia Networks Oy 1998-2001 Tieto Finland Oy 2001-2011 Capgemini Finland Oy 2011-2012 Kansaneläkelaitos 2012- Työskennellyt pääasiassa testauksen ja laadunvarmistuksen parissa vuodesta 2007 Toiminnallista testausta 2007-2008 Suorituskykytestausta ja sovellusvalvontaa 2008-2011 Testaussertifikaatti (ISEB/ISTQB) 2008 Kelaan v. 2012 suorituskykytestauksen asiantuntijaksi 2
Esityksen sisältö Kelan toiminta Kela työnantajana Kelan IT-toiminta: Tietohallinto-osasto ja IT-osasto Testaus Kelan Tietohallinto-osaston testausryhmässä Toiminnallinen testaus Systeemitestaus Ei-toiminnallinen testaus Suorituskykytestaus, CASE-esimerkkejä Tietoturvatestaus 3
Kelan toiminta www.kela.fi Kela hoitaa Suomessa asuvien perusturvaa Kelan asiakkaita ovat kaikki Suomessa asuvat sekä ulkomailla asuvat Suomen sosiaaliturvan piiriin kuuluvat henkilöt Kelan hoitamaan sosiaaliturvaan kuuluvat mm. lapsiperheiden tuet, opintotuki, työttömän perusturva ja vähimmäiseläkkeet. Kela vastaa myös Kansallisen Terveysarkiston (KanTa) palvelujen tuottamisesta, esim. Sähköinen resepti 4
Verkkoasioinnin volyymi Kelassa Verkkoasiointi ja sähköinen tunnistautuminen ollut käytössä Kelassa v. 2004 lähtien Verkkoasiointi lisääntyy jatkuvasti, tukia haetaan nyt enemmän verkossa kuin paperilla V. 2014 elokuun loppuun mennessä jo yli 9,5milj. tunnistautumista 5
Kela työnantajana Kelassa on n. 6000 työntekijää, joista valtaosa työskentelee asiakaspalvelussa ja etuuksien ratkaisussa Avoimet työpaikat: http://www.kela.fi/avoimettyopaikat Kela on myös merkittävä ITtyönantaja Kelaan hakee töihin vuosittain yli 20 000 henkilöä ja tyypillisesti työsuhteet ovat pitkiä Kelassa työskentelee lähes 600 IT-ammattilaista, jotka hoitavat Kelan tehtävien vaatimia laajoja tietojärjestelmiä 6
Tietojärjestelmien uudistushanke Arkki 2012 Kelan historian suurin teknologiauudistus: -70-90 luvuilta peräisin olevat keskuskonepohjaiset järjestelmät uudistetaan palvelin- ja Java-pohjaisiksi Arkki-hankkeen tehtävänä on uudistaa kaikki Kelan 40 etuusjärjestelmää, 90 tukijärjestelmää ja sähköiset asiointipalvelut. Kelan etuusjärjestelmiä ovat esimerkiksi opintotukijärjestelmä ja asumistukijärjestelmä. Järjestelmien avulla ratkaistaan asiakkaiden etuushakemukset ja maksetaan etuudet. Arkki-hankkeen osana mm. sähköinen liitteiden lähetys otettiin käyttöön Kelan verkkopalveluissa v. 2012 lopulla. 7
Tietohallinto-osaston testausryhmä Testausryhmässä n. 60 henkilöä tällä hetkellä, joista suurin osa Helsingissä, Jyväskylässä 6 Pitkät perinteet systeemitestauksessa / toiminnallisessa testauksessa ja etuusosaamisessa Suorituskykytestausta järjestelmällisesti v. 2013 lähtien Tietoturvatestauksen pilotointi v. 2014 Suurimpina testauskohteina Arkkihankkeessa uudistettavat etuusjärjestelmät Testattavana myös paljon muita Kelan järjestelmiä: www.kela.fi Kansalaisten sähköiset asiointialvelut Kelan Intranet Projektinhallintavälineet ym. sisäiset työkalut Apteekkien Kela-korttikysely ym. www.kanta.fi ja muut Kanta-palvelut esim. Sähköinen resepti Omakanta 8
Testauksen erityispiirteitä Kelassa WAS Java CICS Mainframe DB2 PL1 Paljon järjestelmiä Arkki-hanke 40 etuusjärjestelmää 90 tukijärjestelmää Muut järjestelmät Lainsäädäntö Kompleksi suus ja liittymät Paljon käyttäjiä Sisäiset käyttäjät Kansalaiset Ulkoiset sidosryhmät Liittymät järjestelmien ja datan välillä - etuusprosessi 9 Testiympäristöt Testidatan hallinta Data-Intensiivisyys
Arkki-hankkeen vaikutuksia Kelan testaustoimintaan Ohjelmistokehitys pitkään stabiilia keskuskoneympäristössä Uusien arkkitehtuuriratkaisujen myötä nähtiin kasvavaa tarvetta myös ei-toiminnallisen testauksen kehittämiselle Suorituskykytestauksen kehittäminen v. 2012 Sähköinen liitteiden lähetys Kelaan Sähköinen Kelakorttikysely apteekeille www.kela.fi sivustouudistus www.kanta.fi sivustouudistus Tietoturvatestauksen pilotointi ja tuotteistus 2014 10
Suorituskykytestauksen kehittäminen 2012-2013 Lähtötilanne: Kelassa ei oltu aiemmin tehty suorituskykytestausta järjestelmällisesti, joten alkuvaihetta säestivät neuvottelut käytännön menettelyistä Määrittelyä Neuvottelua Info-tilaisuuksia Testausta 11
Suorituskykytestaus järjestelmien kuntotestausta? Mitä on suorituskykytestaus ja mikä on sen tarkoitus? Suorituskykytestauksessa testataan järjestelmän kykyä suoriutua tehtävistään vaatimusten mukaisesti kuorman alla Keskeistä on loppukäyttäjän kokema suorituskyky 12
Mitä on (hyvä) suorituskyky? Kykyä suoriutua tietyistä tehtävistä vaatimusten mukaisesti tietyllä kuormalla Käyttäjän kokemus järjestelmän suorituskyvystä 13
Miten huono suorituskyky näkyy käyttäjille? Järjestelmä on hidas, käyttäjä joutuu odottamaan Järjestelmä ei vastaa ollenkaan (ei ole saatavilla) Järjestelmästä ja sen tarkoituksesta riippuu mitkä ovat seuraukset Käyttäjien tyytymättömyys järjestelmään 14
Miksi pitäisi tehdä suorituskykytestausta? Täydentämään toiminnallista testausta Toiminnallisella testauksella todennetaan sovelluksen toiminta ja virheenkäsittely Toiminnallisella testauksella ei saada selville laadullisia, eitoiminnallisia tekijöitä kuten suorituskykyä Suorituskykytestaus antaa tietoa järjestelmän toiminnasta suuremman käyttäjäkuorman alla Suorituskykytestauksella todennetaan, toimiiko järjestelmä suunnitellusti kuorman alla ja pystyykö järjestelmä tarvittavaan kapasiteettiin Uuden monitasoisen järjestelmäarkkitehtuurin suorituskyky on arvoitus, ellei sitä testata Kun halutaan varmistaa, että käyttöönotto (ja tuotanto) sujuu suunnitellusti 15
Kelassa käytetyt suorituskykytestauksen tyypit Kuormitustestaus Kuormitetaan palvelua tuotannonkaltaisella kuormalla, jotta selvitetään vastaako se nykyisellään sille asetettuja suorituskykyvaatimuksia. Rasitustestaus Palvelua kuormitetaan mahdollisuuksien mukaan äärirajoille asti, kunnes palvelu ei enää vastaa. Tavoitteena on selvittää maksimikuorma, jolla palvelu on vielä käyttökelpoinen. Lisäksi saadaan tietoa pullonkauloista. Stabiiliustestaus Stabiiliustestauksessa palvelua kuormitetaan sovitulla kuormalla pidemmän aikaa. Tavoitteena on havaita hitaasti ilmaantuvat ongelmat ja todeta järjestelmän vakaa toiminta pidemmällä ajalla. Vikasietoisuustestaus Vikasietoisuustestauksessa ajetaan järjestelmään kuormaa ja aiheutetaan suunnitellusti tilanne, jossa jokin tai jotkin järjestelmän resursseista on poissa pelistä, ja seurataan miten järjestelmä selviytyy tilanteesta. 16
Suorituskyvyn mittareita Vasteaika (Response Time), ms Saatavuus (Availability), % Välityskyky (Throughput), TPS Resurssien käyttöaste (Resource Utilization), CPU, Memory util., etc. 17
Mitä suorituskykytestauksessa tehdään? Järjestelmään ajetaan tuotantokäyttöä simuloivaa käyttäjäkuormaa ja tutkitaan miten järjestelmä vastaa ja käyttäytyy Tuloksia verrataan asetettuihin tavoitteisiin ja tehdään tarvittavia muutoksia mikäli tulokset eivät ole tavoitteen mukaisia Tyypillisesti useita testikierroksia 18
Suorituskykytestauksen perusprosessi 7. Tehdään suositukset ja muutostoimen piteet 1. Asetetaan vaatimukset 2. Testien suunnittelu CASE-esimerkkinä Kela.fi uudistuksen suorituskykytestaus 6. Analysoidaan tulokset (vs. vaatimukset) 3. Testien luonti testausvälineellä 5. Mitataan vasteaikoja ja muita mittareita 4. Testien ajaminen 19
1. Asetetaan vaatimukset Kela.fi Vasteajan tulisi olla keskimäärin maksimissaan 1 sekunti. Vasteaikatavoitteella tarkoitetaan Kelan osuutta. Järjestelmän pitää pystyä käsittelemään 15 pyyntöä sekunnissa (ns. arkiruuhkahuippu) 20
2. Testien suunnittelu Kela.fi Testauksen tavoite Aikataulu Suorituskykytestauksen tavoitteena oli selvittää Kela.fi sivuston maksimikuorma ja löytää pullonkaulat Järjestelmän arkkitehtuuri ja rakenne Käyttötapaukset ja skenaariot Missä ympäristössä testataan Riippuvuudet muihin projekteihin tai järjestelmiin Käyttäjämäärät Suorituskykyvaatimukset 21
3. Testien luonti testausvälineellä 1. Nauhoitus 2. Annotaatiot 3. Kustomointi 4. Toiminnan testaus 22
4. Testien ajaminen useita testikierroksia Luodaan kuormaa testausvälineellä Oma dedikoitu palvelinympäristö kuorman luomiseen 23
24 5. Mitataan vasteaikoja ja muita mittareita Kela.fi
6. Analysoidaan tulokset (vs. vaatimukset) Vaatimukset Vasteajan tulisi olla keskimäärin maksimissaan 1 sekunti. Vasteaikatavoitteella tarkoitetaan Kelan osuutta. Järjestelmän pitää pystyä käsittelemään 15 pyyntöä sekunnissa, vastaa n. 12000 käyttäjää (ns. arkiruuhkahuippu) Tulosten yhteenveto Sivulatausmäärällä 34 / s, vasteajat ok. Vasteaika n. 1s (keskiarvo), 90% vasteajoista alle 3s Laskennallinen käyttäjämäärä 30060 / h Nykyisillä käyttäjämäärillä sivuston resurssit ja konfiguraatio on riittävällä tasolla 25
7. Löydettyjä pullonkauloja ja tehtyjä muutoksia Kela.fi Ensimmäisissä kuormitustesteissä havaittiin useita ongelmia, jotka aiheuttivat palvelun kaatumisen. Testien perusteella tehtiin muutoksia ympäristöön ja optimointeja toteutukseen: Lisättiin sovelluspalvelimille toiset cpucoret Lisättiin palvelimille ytimiä 2 -> 4 Muistin määrää nostettiin 1->2G Lisäksi apacheen ja tomcattiin tehtiin pieniä muutoksia 1. Maksimikuormatestin pullonkaulaksi löytyi tietokannan process-parametri Testin perusteella lähdettiin selvittämään, millä logiikalla sovellus allokoi tietokantaan sessioita ja pystytäänkö sessioiden allokoimiseen vaikuttamaan sovellustasolla. Kehitystiimin tekemiä optimointeja suorituskykytestien perusteella: Css:n optimointi Etusivun porttien kuvien cachetus Apachelle Meganavin renderöinnissä ongelma Otsikot latautuvat n. 2 sekunnin viiveellä Sivun renderöinti hidasta Cachetuksen viilaus http-requestien karsinta: JavaScriptien yhdistäminen / css-taustakuvia spriteen / Footerin someikonit 26
Case Suorakorvaustietojen kyselypalvelu: mikä se on? Kela-kortin tietojen sähköinen kyselypalvelu Apteekki tarkastaa oikeuden lääkeostojen korvaukseen Suorakorvaustietojen kyselypalvelulla Otettiin käyttöön v. 2012 lopulla kaikissa Suomen apteekeissa (n. 800 apteekkia) Kyselyjä tehtiin v. 2013 aikana lähes 30 miljoonaa kappaletta 27
Suorakorvaustietojen kyselypalvelun suorituskykytestaus TAVOITE: Kyselyn vasteajan selvittäminen Kapasiteetin riittävyyden ja skaalautuvuuden selvittäminen Tuotantovalmiuden selvittäminen LOPPUTULOS: toimeksiantajan näkökulma: täyden kympin testit! Kokoonpanon limiitit selvisivät tiedetään milloin lisätään palvelimia Pullonkaulojen hionta vasteaika saatiin tavoitetasolle ja kestää arvioidun tuotantokuorman 28
Tietoturvatestauksen kehittäminen Kelassa Vuoteen 2013 asti käytetty pääasiassa ulkoista tietoturvaauditoijaa Arkki-hankkeen ja uusien arkkitehtuuri- ja teknologiaratkaisujen myötä nähtiin tarvetta kasvattaa talon sisäistä osaamista Tietoturvatestauksen pilotointi ja tuotteistus v. 2014 1 päätoiminen testaaja Lisäksi tarpeen mukaan ulkoinen auditoija 29
Tietoturvatestaus Kelassa Sovellusten ja järjestelmien tietoturva on nykypäivänä erittäin kriittinen osa-alue Tietoturvatestauksella pyritään kartoittamaan järjestelmän tai sovelluksen mahdollisia haavoittuvuuksia tai vikoja ennen tuotantokäyttöä ja tarvittaessa tuotantokäytön aikana OWASP top 10 ASVS-standardi (Application Security Verification Standard) 30
Tietoturvatestauksen käytäntöjä Kelassa Pyritään löytämään yleisimmät haavoittuvuudet Pääosa-alueena sovellusten tietoturva, mutta myös palvelinten ja verkkojen testausta Manuaalista, luonteeltaan tutkivaa testausta Automaattiset haavoittuvuusskannaukset 31
Suurimmat haasteet ja tulevat kehityshankkeet Testiympäristöt Testidatan hallinta Automaatiotestaus Tietoturvatestaus 32
33 Kysymyksiä?
Kiitos! Kaisa Tirkkonen, Kehittämispäällikkö Kela, Tietohallinto / Testausryhmä / Suorituskyky- ja tietoturva puh. 020 63 43131 email: kaisa.tirkkonen@kela.fi www.kela.fi LinkedIn:http://fi.linkedin.com/in/kaisatirkkonen/ 34