Suorituskyky- ja tietoturvatestaus Kelassa TTY: TIE-21204 Ohjelmistojen testaus 16.11.2015 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 ja asioinnin volyymi Kela työnantajana Kelan IT-toiminta ja Kelan historian suurin uudistushanke: Arkki Testauksen erityispiirteitä Kelassa Suorituskykytestauksen kehittäminen v. 2012-> Testaus Kelan Tietohallinto-osaston testausryhmässä Toiminnallinen testaus Systeemitestaus Ei-toiminnallinen testaus Suorituskykytestaus Tietoturvatestaus Käytettävyystestaus 1.1.2016 alkaen 3
Kelan toiminta Kela hoitaa Suomessa asuvien perusturvaa. Kelassa ratkaistaan vuosittain n. 16 miljoonaa tukihakemusta. www.kela.fi 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 Vuoden 2014 aikana 24,4 miljoonaa käyntiä verkkosivuilla, kirjautumisia 15,1 miljoonaa Verkkoasiointi ja sähköinen tunnistautuminen ollut käytössä Kelassa v. 2004 lähtien Verkkoasiointi lisääntyy jatkuvasti, yli puolet (52% v. 2014) hakemuksista lähetetään verkkopalvelun kautta 5 Hakemuksiin tarvittavista liitteistä 36% lähetettiin sähköisesti v. 2014 Käynnit kela.fi sivuilla ovat kasvaneet 75% vuoteen 2010 verrattuna
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 EE-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 opintotuki-, työttömyystuki- 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. 66 henkilöä tällä hetkellä, joista suurin osa Helsingissä, Jyväskylässä 7 Pitkät perinteet systeemitestauksessa / toiminnallisessa testauksessa ja etuusosaamisessa Suorituskykytestausta järjestelmällisesti v. 2013 lähtien Tietoturvatestausta omin voimin 2014 lähtien Suurimpina testauskohteina Arkkihankkeessa uudistettavat etuusjärjestelmät Testattavana myös paljon muita Kelan järjestelmiä: www.kela.fi Kansalaisten sähköiset asiointipalvelut 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 7,5 miljoonaa CICS-tapahtumaa päivässä WAS Java CICS Mainframe DB2 PL1 Paljon järjestelmiä ja isot volyymit 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 käynnistyi 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
Suorituskykytestauksen nykytilanne Tilauksesta palveluna teemme testausta tilauksesta palveluna kaikille Kelan ja Kanta-puolen projekteille / järjestelmille 3 kokopäivätoimista testaajaa Oma dedikoitu virtuaalipalvelinympäristö kuorman luomiseen Ilmoituskäytännöt testausten ajankohdista ja niiden mahdollisista vaikutuksista Testaus pääsääntöisesti virka-ajan ulkopuolella 12
13 Suorituskykytestausympäristö
14 Suorituskykytestaus
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 sekä loppukäyttäjän kokema suorituskyky että riittävä kapasiteetti 15
Mitä on (hyvä) suorituskyky? Kykyä suoriutua tietyistä tehtävistä vaatimusten mukaisesti tietyllä kuormalla Käyttäjän kokemus järjestelmän suorituskyvystä 16
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 17
Miksi pitäisi tehdä suorituskykytestausta? Täydentämään toiminnallista testausta 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 Keskeistä erityisesti kun järjestelmillä on paljon käyttäjiä Kun halutaan varmistaa, että käyttöönotto (ja tuotanto) sujuu suunnitellusti 18
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. 19
Suorituskyvyn mittareita Vasteaika (Response Time), ms Saatavuus (Availability), % Välityskyky (Throughput), TPS Resurssien käyttöaste (Resource Utilization), CPU, Memory util., etc. 20
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 21
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 22
1. Asetetaan vaatimukset Kela.fi Vasteajan tulisi olla keskimäärin maksimissaan 1 sekunti/sivulataus. Vasteaikatavoitteella tarkoitetaan Kelan osuutta. Järjestelmän pitää pystyä käsittelemään 15 pyyntöä sekunnissa (ns. arkiruuhkahuippu) 23
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 24
3. Testien luonti testausvälineellä 1. Nauhoitus 2. Annotaatiot 3. Kustomointi 4. Toiminnan testaus 25
4. Testien ajaminen useita testikierroksia Luodaan kuormaa testausvälineellä 26
27 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 28
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 29
30 Tietoturvatestaus
Tietoturvatestauksen kehittäminen Kelassa Vuoteen 2013 asti käytetty pääasiassa ulkoista tietoturva-auditoijaa Arkki-hankkeen ja uusien arkkitehtuuri- ja teknologiaratkaisujen myötä nähtiin tarvetta kasvattaa talon sisäistä osaamista Tietoturvatestauksen pilotointi ja tuotteistus v. 2014 31
Tietoturvatestaus Kelassa Sovellusten ja järjestelmien tietoturva on nykypäivänä erittäin kriittinen osa-alue Tietoturvatestauksessa kartoitetaan järjestelmän vikoja, haavoittuvuuksia tai muita ongelmia, jotka voivat aiheuttaa tietoturva/tietosuojariskin OWASP top 10 ASVS-standardi (Application Security Verification Standard) Testing guide v4 32
Tietoturvatestauksen luonne 33
Tietoturvatestauksen käytäntöjä Kelassa Tavoite: pyritään löytämään mahdolliset ohjelmointivirheet, jotka johtavat haavoittuvuuteen 2 päätoimista testaajaa Pääosa-alueena sovellusten tietoturva, mutta myös palvelinten ja verkkojen testausta Manuaalista, tutkivaa testausta Automaattiset haavoittuvuusskannaukset Riskikartoitukset liiketoiminnan näkökulmasta 34
Tietoturvatestauksen prosessi Aloituspalaveri Riskikartoitus Dokumentaation läpikäynti n kpl uusintatestejä Tulosten läpikäynti Testaus Havaintojen raportointi 35
Tulevat kehityskohteet Kelan testauksessa Testiympäristöt Testidatan hallinta Systeemitestauksen automatisoinnin lisääminen Käytettävyystestaus 36
Kiitos! Kysymyksiä? Kaisa Tirkkonen, Kehittämispäällikkö Kela, Tietohallinto / Testausryhmä / Suorituskyky- ja tietoturva email: kaisa.tirkkonen@kela.fi www.kela.fi LinkedIn:linkedin.com/in/kaisatirkkonen/ Twitter: twitter.com/kaisatirkkonen 37