24
Case Granlund: Testaaja ja testaava tuotekehitystiimi Maaret Pyhäjärvi| <[email protected]> | Twitter: maaretp Testausasiantuntija @ Granlund Oy | Yrittäjä | TestausOSY:n ohryläinen Erkki Pöyhönen & Maaret Pyhäjärvi Nimeä | Attribution (Finland) http://creativecommons.org/licenses/by/1.0/fi/ http://creativecommons.org/licenses/by/1.0/fi/deed.en @Tampereen Teknillinen Yliopisto, 12.11.2012

Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

Case Granlund: Testaaja ja testaava tuotekehitystiimi

Maaret Pyhäjärvi| <[email protected]> | Twitter: maaretp

Testausasiantuntija @ Granlund Oy | Yrittäjä | TestausOSY:n ohryläinen

Erkki Pöyhönen & Maaret Pyhäjärvi Nimeä | Attribution (Finland) http://creativecommons.org/licenses/by/1.0/fi/ http://creativecommons.org/licenses/by/1.0/fi/deed.en

@Tampereen Teknillinen Yliopisto, 12.11.2012

Page 2: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

Puhujasta: Kokemuksia testauksesta ja testaajan työstä

monipuoliselta pohjalta • Aloitin testauksen parissa -95: lokalisointitestausta kreikankieliselle

ohjelmistokäännökselle

• Alihankkijana erilaisissa projekteissa: siirtymä lokalisointitestauksesta toiminnallisuustestaukseen

• Kokeilin toteuttajan roolia kuviteltuani ettei testaajaa arvosteta: arvostusongelma ei ole roolikohtainen

• Testauksen opetusta TKK:lla, julkisia seminaaripuheenvuoroja ja kursseja

• Testauksen tutkijana, testauskonsulttina, opettajana, testausvastaavana ja testaajana

• F-Securella ohjelmistotuoteliiketoiminnan ja ketterien menetelmien kanssa

• Eläkevakuutussektorilla toimittajaorganisaatiossa ja asiakasorganisaatiossa (Ilmarinen) testauspäällikkönä

• Granlundilla ainoana testaajana kuukausijulkaisuja tuottavissa kahdessa kehitystiimissä

• Sivuhommina yrittäjänä 2005 alkaen kouluttelee testausaiheita erilaisissa yhteyksissä

Page 3: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

Case Granlund

Ryhti 4 tuotantoon

Raisu 4 tuotantoon

Eka testaaja

Etä-testaus

Raisu 4 arkkitehtuuri-

muutos

kk-julkaisut tuotantoon

NYT

Ryhti: 8 + minä kehittämässä, +1 etätestaaja,

8 tuotehallintatiimissä Raisu: 5 + minä kehittämässä,

1 tuotepäällikkö

Page 4: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test
Page 5: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

Testausprosessin muutos

ENNEN JÄLKEEN

OK

Toteutus&testaus

TP

Hyväksymistestaus

TUKI

Havaintoprosessi

Testausympäristöt

OK

Toteutus&testaus

Järjestelmätestaus

TP

Hyväksymistestaus

TUKI

Havaintoprosessi

Testausympäristöt

Panos& kohdistussuunnittelu

laadulle

Toiminnan parantaminen

Testaus hoidettiin kahdessa porukassa, joilla yhteiset tukirakenteet.

Toteuttaja vastasi sekä laadusta että

laatutiedosta ulkoa ohjatuissa työmääräpuitteissa oman tietotaitonsa

rajoissa.

Tuotepäälliköt testasivat työmäärän ohjaamana kulloinkin tärkeimmiltä tuntuvat asiat. Työmäärät koettiin

usein riittämättöminä.

Lisätään panostus järjestelmätestaukseen,

laatutavoitteiden asettamiseen ja toiminnan parantamiseen.

Toteuttajien ja tuotepäälliköiden

vastuut pysyvät samana, mutta voivat pyytää tukea laatutiedon tuottamiseen

testausvastaavalta. Toimintamallien aktiivinen

muuttaminen.

Page 6: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

Katsaus minun maailmaani 1.4. – 11.11.2012

Kaikki Jirassa (tehtävät ja havainnot)

Minun raportoimani Ra: 169

Ra: 434

Etätestaaja

2011.5 13 % 2012.9 1.6 %

Page 7: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

Tavoitteita kehittämisessä lähiaikoina…

Parannettu perusnäkyvyys laatuun

Tutkivaa testausta; ominaisuus, prosessi ja tuote kerrallaan pätkissä

Suunnittelumekanismin perusremppa

Tarinapistearviointi, valmiin määritelmä joka sisältää testauksen ja muiden rinnakkaisten asioiden tehtävät

Arvo vs. hukka – mittareita läpimenolle

Stabilointiviikko

Jokainen testaa ja korjaa ja täydentää automaatiotestejä viimeisen viikon ennen julkaisua

”Hidastetaan ennen parkkeeraamista” – tavoite lyhentää parkkeerausaikaa (automaatio)

Testiautomaatio tehokkainta reittiä

Yksikkötestaus: kohdistettua palautetta

Rajapintatestaus: komponenttiin kohdistettua palautetta

Käyttöliittymätestaus, yhdistettynä määrittelyyn esimerkein (SBE)

OK

Ei OK

Ei OK

Page 8: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

Bug: 4 h Bug Resolved: 1 h

Feature Resolved: 4 h

Page 9: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

Testauksella erillinen työlista

Page 10: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

Testausmalli

Ryhti

• Toteuttajien omatestaus & suorituskykymittaus

• Järjestelmätestaus riskialttiille kohteille

• Tuotepäälliköiden hyväksymistestaus

• Havainnot tuotantokäytöstä – Loki

– Asiakasyhteydenotot

Raisu

• Toteuttajien automatisoitu yksikkötestaus (testi jälkeen –kehitystapa)

• Toteuttajien omatestaus

• Arkkitehdin suorituskykytestaus

• Muutostestaus järjestelmätasolla

• Käyttäjätestaus

Page 11: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

Viikko 1 Viikko 3 Viikko 4 Viikko 1 Viikko 2

Toteutus ja testaus Toteutus ja testaus Toteutus ja testaus Toteutus ja testaus

Version toteutus ja testaus

Hyväksyntä Hyväksyntä Hyväksyntä Hyväksyntä

Seuraavan version suunnittelu ja speksaus Julkaisun valmistelu

Seuraavan version suunnittelu

TK:n tehtävä

KP:n tehtävä

viikon sykleissä

ja toteutusversion julkaisu

§ Version aloituspalaveri § Version aloituspalaveri Asiakasversion julkaisu Viikkopalaveri Viikkopalaveri Viikkopalaveri

Järjestelmätestaus Test-Fix-Finalize

Asialistalla version testauskohteiden testauspainotukset

Asialistalla version testauskohteiden testauspainotukset

Toistotestaus: ongelmien toistokaavat Perustestaus: toteuttajien tekemä testaus Muutostestaus: täydentävä testaus eri henkilön toimesta

Testaustyökuorman tarkistus ja tasaus tiimissä

Valmiin määritelmä: vaatimukset sille että asian voi siirtää hyväksyntään

Testausta ja korjauksia (uudet) Yksikkötestien laajentamista ja viimeistelyä, dokumentointia Pienen riskin bugikorjauksia (vanhat) Testiautomaation täydentämistä

palaveri

Korjausversio (branch)

Prosessitestaus @KP (Järjestelmähyväksyntä) OK:n prosessivastaavat, arkkitehdin ja

testaajan osallistuminen, kuukausipalaverit prosesseittain

Issuetestaus @KP Issuetestaus @KP Issuetestaus @KP

RYHTI

Page 12: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

Ryhti: Something Refactored

• One developer was assigned a major rewrite task – Goal: maintainability improvement

– 50 old known issues, out of which 30 got fixed, 20 not

– UI facelift, dropping non-core functionalities

• Tester + Product specialist assigned to test – 150 new issues to lists

• Side by side work cut down the timeframe for the change by 1/3

• Impact to quality is speculation, but likely to be better with collaboration (0.32 % -> 0.13 % in crashes per use)

I work with development productivity – helping us meet the right target in a shorter timeframe

Page 13: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

PPP Test Case Documentation

• Step 1: Time before tester (word)

– 39 pages, 46 test cases, 3 pieces of relevant info

• Step 2: Getting started with learning (mindmap)

– 98 features to test

• Step 3: Reusable checklist (excel / gsheet)

– 59 things to consider, few dimensions

• Next step: Living documentation (feature files)

– First we learn what breaks in this area (refactored codebase from 18000 lines to 8400 lines) and if unit tests could catch that, then we consider this

– In last three months, ~20 bug fixes, no regression reported, delivered to customer monthly 25123 uses 09/2012

Page 14: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

Testauksen suunnittelu

Page 15: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test
Page 16: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

Ryhti: Paritestausta 2012

”Olen liian arvokas testaamaan”

”Ohho”

”Kuinka paljon ja koska?”

Page 17: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

Tester vs. Developer Source: Adapted from Bret Pettichord. 2000. Testers and Developers Think Differently

Tester Developer

Need of Mastery

Focus of Modeling

Focus of Thinking

Tedium and Conflict

Get up to speed quickly Generalist

Domain knowledge Ignorance is important

Thorough understanding Specialist

Knowledge of product internals Expertise is important

Model user behavior Focus on what can go wrong Focus on severity of problem

Model system design Focus on how it can work

Focus on interest of problem

Practical Empirical: What is

observed Sceptics

Theoretical How it is designed

Believers

Tolerate tedium Comfortable with conflict

Report problems

Automate tedium Avoid conflict

Understand problems

17

Page 18: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

Ryhti: Oivalluksia virheiden luonteesta

• Virheen toistokaavasta korjaukseen 2 tuntia – Ei yhtään esimerkkiä virheestä, jonka

korjaaminen veisi pidempään

• Asiakassuhteen rakentuminen – Virheet syy yhteydenottoon, nopea

reagointi voi tuoda yhteisen onnistumisen kokemuksen

Page 19: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

Raisu: Oivalluksia virheiden luonteesta

• Monet virheistä määrittelyn puutteita – Esim. Raportti (järjestys, ei yksi vaan

monta)

• Lisämäärittely ei tuottanut enempää lisätyötä testauksen kautta kuin ”ajoissa” – Ei vaikutuksia arkkitehtuuriin

– Luonnollisia laajennoksia toteutettuun

Page 20: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

Testaajien lisäämisestä

• Yhdellä testaajalla oli selvä, että testaus hoidetaan edelleen toteuttajien ja tuotepäälliköiden voimin

• Kahdella testaajalla tuotepäälliköiden testauskuorma keventynyt – mahdollisuus keskittyä muuhun – 1.5 testaajaa vs. 8 tuotepäällikköä, riski

Page 21: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

TUKI

Testaus-ympäristöt

Havainto-prosessi

Panos&kohdistussuunnittelu

Toiminnan parantaminen

Koontiprosessi

OK

TP

Prosessi- testaus

Korjaustarpeiden priorisointi

Jira-testaus Mää

ritt

ely

t /

SB

E

Rakenne-analyysi

Koodi-katselmointi

Yksikkötestit (automatisoitu)

Toiminnallisuus-testaus

Selaintestaus

Laa

tuti

lant

een

koko

nais

kuva

Regressiotestiau-tomaatio / SBE

Suorituskyky-testaus

Tietoturva-testaus

Jira-testaus

Tilanne kohtuullinen Kehitettävää Paljon kehitettävää

Testauksen kehittämisen tilannekartta

RYHTI

Page 22: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

TUKI

Testaus-ympäristöt

Havainto-prosessi

Panos&kohdistussuunnittelu

Toiminnan parantaminen

Koontiprosessi

OK

TP

Prosessi- testaus

Korjaustarpeiden priorisointi

Jira-testaus Mää

ritt

ely

t /

SB

E

Rakenne-analyysi

Koodi-katselmointi

Yksikkötestit (automatisoitu)

Toiminnallisuus-testaus

Selain- testaus

Laa

tuti

lant

een

koko

nais

kuva

Regressiotestiau-tomaatio / SBE

Suorituskyky-testaus

Tietoturva-testaus

Jira-testaus 1

1

Tilanne kohtuullinen Kehitettävää Paljon kehitettävää

Testauksen kehittämisen tilannekartta

RAISU

1

Page 23: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

Quality Source: Gojko Adjic

Page 24: Case Granlund: Testaaja ja testaava tuotekehitystiimitie21201/s2012/luennot/Pyhajarvi_CaseGranlund.pdf · • Step 2: Getting started with learning (mindmap) –98 features to test

To End This With

• Been in testing a while and will be a lot longer

• Can’t imagine a field of software engineering with more variance available in what you can learn and become

• It’s not just about the testing by testers, testing is for everyone – Everyone can do it, but only some can do it

really well: these some include also non-tester roles