34
Kaisa Tirkkonen Kehittämispäällikkö, Kela, Tietohallinto-osasto Testausryhmä / Suorituskyky- ja tietoturvatestaus TTY: TIE-21200 Ohjelmistojen testaus 24.11.2014 CASE KELA: monimutkaisten ja laajojen järjestelmien suorituskyky- ja tietoturvatestaus

CASE KELA: monimutkaisten ja laajojen järjestelmien ...tie21201/s2014/luennot/vierailuluennot/TTY_luento_SKT_ja... · Kaisa Tirkkonen Kehittämispäällikkö, Kela, Tietohallinto-osasto

Embed Size (px)

Citation preview

Kaisa Tirkkonen

Kehittämispäällikkö, Kela, Tietohallinto-osasto

Testausryhmä / Suorituskyky- ja tietoturvatestaus

TTY: TIE-21200 Ohjelmistojen testaus 24.11.2014

CASE KELA:

monimutkaisten ja laajojen järjestelmien

suorituskyky- ja tietoturvatestaus

CV Kaisa Tirkkonen

2

• 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

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

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

www.kela.fi

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

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-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

8

• Suurimpina testauskohteina Arkki-

hankkeessa 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

Testauksen erityispiirteitä Kelassa

Paljon järjestelmiä

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

Arkki-hankkeen vaikutuksia Kelan testaustoimintaan

Tietoturvatestauksen pilotointi ja tuotteistus 2014

Suorituskykytestauksen kehittäminen 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

• 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 •

Suorituskykytestaus – järjestelmien kuntotestausta?

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, ei-

toiminnallisia 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

15

Kun halutaan varmistaa, että

käyttöönotto (ja tuotanto) sujuu

suunnitellusti

Kelassa käytetyt suorituskykytestauksen tyypit

16

• 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.

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

19

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. 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

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

Suorituskykytestauksen

tavoitteena oli selvittää

Kela.fi –sivuston

maksimikuorma ja löytää

pullonkaulat

3. Testien luonti testausvälineellä

22

1. Nauhoitus 2. Annotaatiot

3. Kustomointi 4. Toiminnan testaus

4. Testien ajaminen – useita testikierroksia

23

• Luodaan kuormaa

testausvälineellä

• Oma dedikoitu

palvelinympäristö kuorman

luomiseen

5. Mitataan vasteaikoja ja muita mittareita – Kela.fi

24

6. Analysoidaan tulokset (vs. vaatimukset)

25

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:

26

• 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

Case Suorakorvaustietojen kyselypalvelu: mikä se on?

27

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

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

Suorakorvaustietojen kyselypalvelun suorituskykytestaus

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

• 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

Kysymyksiä?

33

Kiitos!

Kaisa Tirkkonen, Kehittämispäällikkö

Kela, Tietohallinto / Testausryhmä /

Suorituskyky- ja tietoturva

puh. 020 63 43131

email: [email protected]

www.kela.fi

LinkedIn:http://fi.linkedin.com/in/kaisatirkkonen/

34