Kaisa Tirkkonen
Kehittämispäällikkö, Kela, Tietohallinto-osasto
Testausryhmä / Suorituskyky- ja tietoturvatestaus
TTY: TIE-21204 Ohjelmistojen testaus 16.11.2015
Suorituskyky- ja
tietoturvatestaus Kelassa
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.
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
www.kela.fi
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 • Hakemuksiin tarvittavista liitteistä
36% lähetettiin sähköisesti v. 2014 5
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
Kela on myös merkittävä IT-työnantaja
Kelassa työskentelee lähes 600 IT-ammattilaista, jotka hoitavat Kelan tehtävien
vaatimia laajoja tietojärjestelmiä
Kelaan hakee töihin vuosittain yli 20 000
henkilöä ja tyypillisesti työsuhteet ovat pitkiä
Avoimet työpaikat: http://www.kela.fi/avoimet-
tyopaikat
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
8
• Suurimpina testauskohteina Arkki-
hankkeessa 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
Testauksen erityispiirteitä Kelassa
Paljon järjestelmiä ja isot volyymit
Paljon käyttäjiä
Data-Intensiivisyys
Kompleksisuus ja liittymät
9
Arkki-hanke
40 etuusjärjestelmää
90 tukijärjestelmää
Testidatan hallinta
Testiympäristöt
Kansalaiset
Sisäiset käyttäjät
Mainframe
DB2
Liittymät järjestelmien ja datan välillä
- etuusprosessi
Lainsäädäntö Ulkoiset sidosryhmät
Muut järjestelmät
Java CICS
WAS PL1
7,5 miljoonaa CICS-tapahtumaa päivässä
Arkki-hankkeen vaikutuksia Kelan testaustoimintaan
Tietoturvatestauksen pilotointi ja tuotteistus 2014
Suorituskykytestauksen kehittäminen käynnistyi v. 2012 Sähköinen liitteiden
lähetys Kelaan Sähköinen Kela-
korttikysely apteekeille www.kela.fi –
sivustouudistus www.kanta.fi –sivustouudistus
Uusien arkkitehtuuriratkaisujen myötä nähtiin kasvavaa tarvetta myös ei-toiminnallisen testauksen kehittämiselle
Ohjelmistokehitys pitkään stabiilia keskuskoneympäristössä
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ä
11
Info-tilaisuuksia
Neuvottelua
Määrittelyä
Testausta
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
Suorituskykytestausympäristö
13
Suorituskykytestaus
14
• 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 •
Suorituskykytestaus – järjestelmien kuntotestausta
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ä
18
Kun halutaan varmistaa, että
käyttöönotto (ja tuotanto) sujuu
suunnitellusti
Kelassa käytetyt suorituskykytestauksen tyypit
19
• Kuormitetaan palvelua tuotannonkaltaisella kuormalla,
jotta selvitetään vastaako se nykyisellään sille asetettuja suorituskykyvaatimuksia.
Kuormitustestaus
• 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.
Rasitustestaus
• Stabiiliustestauksessa palvelua kuormitetaan sovitulla kuormalla pidemmän aikaa. Tavoitteena on havaita hitaasti ilmaantuvat ongelmat ja todeta järjestelmän vakaa toiminta pidemmällä ajalla.
Stabiiliustestaus
• 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.
Vikasietoisuustestaus
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
22
1. Asetetaan vaatimukset
2. Testien suunnittelu
3. Testien luonti testausvälineellä
4. Testien ajaminen
5. Mitataan vasteaikoja ja
muita mittareita
6. Analysoidaan tulokset (vs. vaatimukset)
7. Tehdään suositukset ja muutostoimen
piteet
CASE-esimerkkinä Kela.fi –
uudistuksen
suorituskykytestaus
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
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
Suorituskykytestauksen
tavoitteena oli selvittää
Kela.fi –sivuston
maksimikuorma ja löytää
pullonkaulat
3. Testien luonti testausvälineellä
25
1. Nauhoitus 2. Annotaatiot
3. Kustomointi 4. Toiminnan testaus
4. Testien ajaminen – useita testikierroksia
26
• Luodaan kuormaa
testausvälineellä
5. Mitataan vasteaikoja ja muita mittareita – Kela.fi
27
6. Analysoidaan tulokset (vs. vaatimukset)
28
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)
Vaatimukset
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
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:
29
• Lisättiin sovelluspalvelimille toiset cpu-
coret
• 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
Tietoturvatestaus
30
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
Testaus Tulosten läpikäynti
n kpl uusintatestejä
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: [email protected]
www.kela.fi
LinkedIn:linkedin.com/in/kaisatirkkonen/
Twitter: twitter.com/kaisatirkkonen
37