Tehokas testaus rinnakkaisten testiympristjen avulla Testauksen perusmetodiikka Rinnakkaisten
- Slides: 32
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? • 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 Testin suunnittelu Testin valmistelu 3 Testin suoritus
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 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 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. Testimaailma (=data) 5. Testitapaukset 7
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 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, poikkeuskäsittelyt ja virhekierros 10
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 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ä 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 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 työpäivä 16
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 19
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 <<
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 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 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 25
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 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 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 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 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. • 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 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