Tehokas testaus rinnakkaisten testiympristjen avulla Testauksen perusmetodiikka Rinnakkaisten

  • Slides: 32
Download presentation
Tehokas testaus rinnakkaisten testiympäristöjen avulla >> Testauksen perusmetodiikka Rinnakkaisten ympäristöjen tuki testaukselle 1 <<

Tehokas testaus rinnakkaisten testiympäristöjen avulla >> Testauksen perusmetodiikka Rinnakkaisten ympäristöjen tuki testaukselle 1 <<

1. Testauksen perusmetodiikka • Miten hallita usean kehittäjän ja testaajan kehitys- ja testauseforttia tehokkaasti?

1. Testauksen perusmetodiikka • Miten hallita usean kehittäjän ja testaajan kehitys- ja testauseforttia tehokkaasti? • Accenturen testausmalli käytännössä • Rinnakkaisuuden huomiointi jo testisuunnittelmassa 2

Accenturen testausmalli käytännössä • Testausmetodologia on osa kokonaisvaltaista liiketoiminnan kehittämismetodologiaa Testiympäristön pystyttäminen Testauslähestymistavan kehitys

Accenturen testausmalli käytännössä • Testausmetodologia on osa kokonaisvaltaista liiketoiminnan kehittämismetodologiaa Testiympäristön pystyttäminen Testauslähestymistavan kehitys Testin suunnittelu Testin valmistelu 3 Testin suoritus

V-malli Liiketoiminnallinen testi Business Case Integraatiotesti Käyttäjä vaatimukset Systeemitesti Tekninen suunnittelu Kokoonpanotesti Yksityiskohtainen suunnittelu

V-malli Liiketoiminnallinen testi Business Case Integraatiotesti Käyttäjä vaatimukset Systeemitesti Tekninen suunnittelu Kokoonpanotesti Yksityiskohtainen suunnittelu Yksikkötesti Ohjelmointi 4

V-mallin perusidea – V-malli on tuotteistettu metodi, joka on syntynyt vertailemalla ja kehittämällä ohjelmistoprojekteissa

V-mallin perusidea – V-malli on tuotteistettu metodi, joka on syntynyt vertailemalla ja kehittämällä ohjelmistoprojekteissa käytettyjä testausmenetelmiä. – Koostuu tasoista, alkaen liiketoiminnallisesta kokonaisuudesta tarkentuen yksityiskohtiin saakka – V-malli määrittelee, että yhden tason testaus tulee olla suoritettuna, ennen kuin voidaan siirtyä testaamaan seuraavaa tasoa – Kun yhden tason testaustavoitteet on saavutettu, niin ei ole tarpeellista toistaa samoja asioita seuraavalla tasolla – Testaustasot räätälöidään projektikohtaisesti 5

V-mallin edut – Selkeä, rakenteellinen pohja, joka määrittelee testauksen koko kehitysprosessin ajan – Kaikki

V-mallin edut – Selkeä, rakenteellinen pohja, joka määrittelee testauksen koko kehitysprosessin ajan – Kaikki tärkeimmät lopputuotteet tulevat tarkistetuiksi ja hyväksytyiksi, sekä kaikkien määritysten toteutus tulee testatuksi – Jokainen testaustaso vastaa tiettyä kehitysvaihetta – Johdonmukainen standardi – Vahvistaa tavoitetta, että lopputuotteet vastaavat määrityksiä ja että liiketoiminnalliset tavoitteet tulevat täytetyiksi 6

Testimallin elementit Testin suunnittelu 1. Testiehdot 2. Odotetut tulokset 3. Testikierrokset Testin valmistelu 4.

Testimallin elementit Testin suunnittelu 1. Testiehdot 2. Odotetut tulokset 3. Testikierrokset Testin valmistelu 4. Testimaailma (=data) 5. Testitapaukset 7

Testin suunnittelu: Testiehdot • Muodostavat perustan testaukselle • Listataan kaikki testattavat kohdat yksikäsitteisiksi ehdoiksi

Testin suunnittelu: Testiehdot • Muodostavat perustan testaukselle • Listataan kaikki testattavat kohdat yksikäsitteisiksi ehdoiksi • V-mallissa eri tasoilla eri ehdot • Esim. Yksikkötestiehdot luodaan yksityiskohtaisen suunnittelun aikana • Esimerkkejä: • Liiketoimintaehto: Järjestelmä nopeuttaa asiakaspalvelua 20 % • Käyttäjävaatimus: Kuormakirjan tulostus alle 3 sek. • Yksikkötestiehto: alv-prosentti = 8 8

Testin suunnittelu: Odotetut tulokset • Jokaisesta testiehdosta seuraa odotetu tulos, eli kuinka järjestelmän odotetaan

Testin suunnittelu: Odotetut tulokset • Jokaisesta testiehdosta seuraa odotetu tulos, eli kuinka järjestelmän odotetaan toimivan • Testiehtoja tehdessä kirjataan minkälaisia tuloksia odotetaan • Odotettujen tulosten formaatti voi vaihdella binääridatasta sanalliseen kuvaukseen (tarpeen mukaan) 9

Testin suunnittelu: Testikierrokset • Testiehtoja ajetaan erilaisina testikierroksina: – – Normaalit liiketoimintaprosessit, suuri volyymi,

Testin suunnittelu: Testikierrokset • Testiehtoja ajetaan erilaisina testikierroksina: – – Normaalit liiketoimintaprosessit, suuri volyymi, poikkeuskäsittelyt ja virhekierros 10

Testin valmistelu: Testimaailma • “Testimaailma” simuloi testattavaa järjestelmä pienoiskoossa • Tarpeeksi dataa testiehtojen kattamiseksi:

Testin valmistelu: Testimaailma • “Testimaailma” simuloi testattavaa järjestelmä pienoiskoossa • Tarpeeksi dataa testiehtojen kattamiseksi: • Edustava otos järjestelmällä käsiteltäviä kohteita, esim. asiakkaita, sopimuksia, tilauksia jne. • Parametritiedot kattavasti • Muista versioitu data • Vuosien ja tilikausien ylitykset • Ei yhtään liikaa dataa • Virheitä vaikea löytää suuresta datamäärästä • Esimerkiksi 1: 1 kopio tuotantodatasta sopii yleensä vain suorituskykytesteihin 11

Testin valmistelu: Testitapaukset • Testiehdot ryhmitellään loogisiksi tapahtumakokonaisuuksiksi 12

Testin valmistelu: Testitapaukset • Testiehdot ryhmitellään loogisiksi tapahtumakokonaisuuksiksi 12

Testin suoritus • Testikierrosten suoritus – Kierrosten itsenäisyys vs. keskinäinen riippuvuus – Testikierrosten rinnakkainen

Testin suoritus • Testikierrosten suoritus – Kierrosten itsenäisyys vs. keskinäinen riippuvuus – Testikierrosten rinnakkainen suoritus – Regressiotestaus • Testikontrolli – – Roolit ja vastuut Kommunikointi Seuranta (metriikkaa) Työkalut Esimerkit: Testiskripti ja Testikierrosten hallinta ja kommunikointi 13

Esimerkki: Testiskripti • Käytä testikorttia numero 4 • Laita kortti lukijalaitteeseen • Odota, että

Esimerkki: Testiskripti • Käytä testikorttia numero 4 • Laita kortti lukijalaitteeseen • Odota, että tunnuslukua kysytään, näppäile 1234 • Valitse nosto 100 mk painamalla ylintä näppäintä vasemmalla • … • Tarkista tulostetusta kuitista, että saldo on 4000 mk 14

Esimerkki: Testikierrosten hallinta ja kommunikointi Suorituskerta 1 2 3 Kierros 1 ymp 2 Kierros

Esimerkki: Testikierrosten hallinta ja kommunikointi Suorituskerta 1 2 3 Kierros 1 ymp 2 Kierros 2 ymp 3 Tutkimus 4 pyynnöt 34, 45 Sujuu 7, 19 Kierros 3 ymp 1 Kierros 4 ymp 4 13, 33, 68 101 15 Tökkii Seis

Testaajan vastuut – – Testikierroksen suoritus Ongelmien kirjaaminen Testimallin ylläpito Korjausten testaus Esimerkki: Testaajan

Testaajan vastuut – – Testikierroksen suoritus Ongelmien kirjaaminen Testimallin ylläpito Korjausten testaus Esimerkki: Testaajan työpäivä 16

Esimerkki: Testaajan työpäivä – – – Varaa testiympäristö Alusta testiympäristö uudella perusversiolla Aloita testikierroksen

Esimerkki: Testaajan työpäivä – – – Varaa testiympäristö Alusta testiympäristö uudella perusversiolla Aloita testikierroksen suorittamista Testikierroksen tila -> Executing Suorituksen tila -> Execution 1 Kirjaa virhe tutkimuspyyntökantaan (SIR-kanta) Kierrä ongelma (Work Around) tai jatka toisella kierroksella Päivitä testiympäristöä korjaustasolla Jatka ensimmäisellä testikierroksella Päivitä testimallia Raportoi etenemistä 17

Testin suoritus: Testimetriikkaa 18

Testin suoritus: Testimetriikkaa 18

Testin suoritus: Testimetriikkaa 19

Testin suoritus: Testimetriikkaa 19

Rinnakkaisuuden huomiointi jo testisuunnitelmassa • Input: 1. Testimallin elementit, 2. Testaajien määrä, 3. Aikataulu,

Rinnakkaisuuden huomiointi jo testisuunnitelmassa • Input: 1. Testimallin elementit, 2. Testaajien määrä, 3. Aikataulu, 4. Laitealusta, 5. Konfiguraatio- ja järjestelmähallinta, 6. Erikoisresurssit (DBA, varusohjelmisto-osaajat, . . . ) • Toimenpiteet: – > Päätettävä loogisten ympäristöjen määrä – > Johdetaan fyysisten ympäristöjen määrä • Output: TESTIYMPÄRISTÖKUVAUS 20

Tehokas testaus rinnakkaisten testiympäristöjen avulla Testauksen perusmetodiikka >> Rinnakkaisten ympäristöjen tuki testaukselle 21 <<

Tehokas testaus rinnakkaisten testiympäristöjen avulla Testauksen perusmetodiikka >> Rinnakkaisten ympäristöjen tuki testaukselle 21 <<

2. Rinnakkaisten ympäristöjen tuki testaukselle • Lähtökohta: Kehittäjien ja testaajien tulee voida toimia tehokkaasti

2. Rinnakkaisten ympäristöjen tuki testaukselle • Lähtökohta: Kehittäjien ja testaajien tulee voida toimia tehokkaasti ja toisiaan häiritsemättä • Loogiset ja fyysiset rinnakkaisympäristöt • Haasteet konfiguraatiohallinnalle • Järjestelmähallinnan tuki testaukselle: Muutoshallintaprosessi, tuotantoonsiirto, ohjelmistojakelu 22

Loogiset ja fyysiset rinnakkaisympäristöt • Jokaisessa loogisessa testiympäristössä voidaan suorittaa testikierrosta itsenäisesti – toisten

Loogiset ja fyysiset rinnakkaisympäristöt • Jokaisessa loogisessa testiympäristössä voidaan suorittaa testikierrosta itsenäisesti – toisten testaajien / kehittäjien häiritsemättä • Looginen ympäristö rakentuu tarvittavasta määrästä fyysisen ympäristön komponentteja: – Laitteet – Varusohjelmat – Sovellusohjelmat Esimerkki: 4 loogista testiympäristöä 23

Esimerkki: 4 loogista testiympäristöä Testipalvelin Kehitysympäristö Kehitystietokantapalvelin Testaus 1 Testaus 2 Testaus 3 Kehityspalvelin

Esimerkki: 4 loogista testiympäristöä Testipalvelin Kehitysympäristö Kehitystietokantapalvelin Testaus 1 Testaus 2 Testaus 3 Kehityspalvelin ja -työasemat Testaus 4 Testaus 1 Testaus 2 Testaus 3 24 Testaus 4

Laitteet • Keskuskoneet • Palvelimet • Työasemat • Tietoliikenne • Erikoislaitteet; päätelaitteet, mobiililaitteet, jne

Laitteet • Keskuskoneet • Palvelimet • Työasemat • Tietoliikenne • Erikoislaitteet; päätelaitteet, mobiililaitteet, jne 25

Varusohjelmistot • Tarvitaanko esim. useampaa käyttöjärjestelmä -instanssia? – IBM mainframessa voi olla useampi MVS

Varusohjelmistot • Tarvitaanko esim. useampaa käyttöjärjestelmä -instanssia? – IBM mainframessa voi olla useampi MVS – PC: llä pyörii vain yksi NT • Tietokanta – Tarvitaanko useita tietokantamoottoreita yhdellä palvelimella, vai pärjätäänkö useilla eri nimisillä tietokannoilla 26

Sovellusohjelmistot • Tukevatko sovellukset rinnakkaistestausta: – Onko sovellus laadittu niin, että esim. sen tietokanta

Sovellusohjelmistot • Tukevatko sovellukset rinnakkaistestausta: – Onko sovellus laadittu niin, että esim. sen tietokanta voidaan määrittää argumenttinä • Ellei, niin on käytettävä erillistä tietokantamoottoria – Sovelluksien rinnakkainkäytön estävät kovakoodaukset koodissa tai komentojonoissa 27

Haasteet konfiguraatiohallinnalle • Testaajat testaavat useita eri versioita järjestelmäkonfiguraatioista. • Fixaajat korjaavat eri versioista

Haasteet konfiguraatiohallinnalle • Testaajat testaavat useita eri versioita järjestelmäkonfiguraatioista. • Fixaajat korjaavat eri versioista tulleita virheitä yhteen tai useampaan koodikantaan. • Tarvitaan konfiguraatiomanageri, joka tietää – mitä korjauksia mihinkin konfiguraatioon tehdään – ja milloin ne tulevat testaajien käyttöön • Lisäksi tarvitaan yhteisesti sovitut menettelytavat ja proseduurit 28

Rinnakkaisten ympäristöjen hallinta • Järjestelmäkonfiguraatio – – sovelluskomponentit tietokanta (rakenne ja data) Perusversion alustus

Rinnakkaisten ympäristöjen hallinta • Järjestelmäkonfiguraatio – – sovelluskomponentit tietokanta (rakenne ja data) Perusversion alustus Korjaustason päivitys • Keskitetty hallinta – Release Library – Yhteinen proseduuri – Release Manager 29

Keskitetty konfiguraation hallintakirjasto (Release Library): Testattu muutosskripti Perusversio 1. 0 MASTER Korjaustaso 1. 1

Keskitetty konfiguraation hallintakirjasto (Release Library): Testattu muutosskripti Perusversio 1. 0 MASTER Korjaustaso 1. 1 Korjaustaso 1. 2 Korjaustaso 1. 3 Muutospyynnöt (CR) Perusversio 2. 0 Korjaustaso 2. 1 Korjaustaso 2. 2 kehittäjä 1 kehittäjä 2 . . . kehittäjä N Perusversion alustus Tutkimuspyynnöt (SIR) Korjaustason päivitys testaaja 1 30 testaaja 2 . . . testaaja N

Järjestelmähallinnan tuki testaukselle • Keskeiset JH-prosessit: – Muutoshallintaprosessi, – Tuotantoonsiirto ja – Ohjelmistojakelu. •

Järjestelmähallinnan tuki testaukselle • Keskeiset JH-prosessit: – Muutoshallintaprosessi, – Tuotantoonsiirto ja – Ohjelmistojakelu. • Soveltuvuus jatkossa tuotantoon? – Käyvät lähes sellaisinaan, mikäli tehdään ajoissa tuotantoa silmälläpitäen – Esim. ohjelmistojakelun ollessa automatisoitu, säästyy turhalta käsityöltä jo kehitysprojektin aikana -> säästetään sekä projekti- että käyttöönottobudjettia 31

Muutoshallintaprosessi Tutkimuspyynnön laadinta (kaikki) SIR: rejected, postponed CR: rejected, postponed SM TÄ I UR

Muutoshallintaprosessi Tutkimuspyynnön laadinta (kaikki) SIR: rejected, postponed CR: rejected, postponed SM TÄ I UR OS T UU M SU Tutkimuspyynnön esikäsittely ja muutospyyntöjen teko SIR: analysis, rejected CR: new Muutoksen toteuttajat EI TOTEUTETA Muutospyynnön täydentäminen CR: estimated, rejected Muutoksen toteutuksen käynnistäminen SIR: approved, postponed CR: assigned Muutoksen toteutus, yksikkötestaus ja integraatiotestaus Tuotantoonsiirron hyväksyminen EUTE TA SIR: ready for system test Uusien konfiguraatioiden muodostaminen SIR: closed Uusien konfiguraatioiden käyttöönoton koordinointi KIIR E Tutkimuspyynnön sulkeminen Tuotantoonsiirron käynnistäminen SIR: confirmed Käyttöönoton valmistelu CR: completed SIR: migrated Tuotantoonsiirron suorittaja S Järjestelmän systeemitestaus UTU U PER Muutoksen testaajat VIRHE / PIENI MUUTOS EI TO T MIS E N EN Muutoksenhyväksyntä SIR: ready for production VAL Ä ÄV TT TOTEUTETAAN Muutoksen käsittelyryhmä Muutoksen koordinoija tai Release Manager SIR = System Investigation Request = Tutkimuspyyntö CR = Change Request = Muutospyyntö SIR: new EI KIIRE Muutoksen pyytäjä SIR: migrated to production Tuotantoonsiirto 32