Specification by Example – Vaatimukset ja testaus ketterissä projekteissa Marko Taipale
Mitä on ketterä (testaus) Mitä on Specification by Example Omat kokemukset
Agile / Lean
Mitä on ketterä (testaus) Mitä on Specification by Example Omat kokemukset
Impl Goal Req Test
Mitä jos… Keskusteluissa usein järjestelmää kuvataan esimerkein, joten miksei esimerkkejä käytettäisi vaatimuksina Formalisoimalla esimerkit ne toimisivat samalla testeinä Impl Goal Req Test Yksi totuus
SbE – “prosessi” Liiketoimintatavoitteet Miksi ja ketä? Mistä arvo muodostuu? Mitkä tavoitteet? Asiakas, Testaaja, Kehittäjä
Yhteistyömuotoja Parikirjoitus 3 amigos
Työkalut tukevat esimerkkien “ajamista”, vaatimukset jatkuvasti testauksessa Esimerkit (Testit) ovat elävä dokumentaatio
SbE is collaborative approach to defining requirements and business-oriented functional tests for software products based on capturing and illustrating requirements using realistic examples instead of abstract statements. A key aspect of specification by example is creating a single source of truth about required changes from all perspectives. Examples are used to provide clarity and precision, so that the same information can be used both as a specification and a business-oriented functional test.
“Building it right!” “Building the right thing!”
“Building it right!” Business failure “Building the right thing!”
“Building it right!” Business failure “Building the right thing!” Useless crap
“Building it right!” Business failure “Building the right thing!” Useless crap Maintenance nightmare
“Building it right!” Business failure Business success “Building the right thing!” Useless crap Maintenance nightmare
Specification by example “Building it right!” Business failure Business success Specification by example “Building the right thing!” Useless crap Maintenance nightmare Specification by example, Gojko Adzic, page 4
Mitä on ketterä (testaus) Mitä on Specification by Example Omat kokemukset
User Story:n liitetty Example Ostoksen lisääminen ostoskoriin Käyttäjänä haluan lisätä ostoskoriini ostokseni, jotta voin hallita ostoksiani keskitetysti Lisätiedot: … Hyväksymiskriteerit: Skenaario 2: Oskoskorissa jo lisätty ostos Given käyttäjä on kirjautunut järjestelmään When käyttäjä lisää jo lisätyn ostoksen ostoskoriin Then ostoskorissa aikaisemmin ostoksen kpl-määrä lisääntyy yhdellä Skenaario 1: Lisääminen onnistuu Given käyttäjä on kirjautunut järjestelmään When käyttäjä lisää ostoksen ostoskoriin Then ostoskoriin ilmestyy lisätty ostos
Esimerkki tietoturvaskenaariosta Ostoksen lisääminen ostoskoriin Käyttäjänä haluan lisätä ostoskoriini ostokseni, jotta voin hallita ostoksiani keskitetysti Lisätiedot: … Hyväksymiskriteerit: Skenaario X: XSS-hyökkäys Given Mustahatulle esitetään syöttökenttiä When Mustahattu yrittää XSS-hyökkäystä syöttökenttiin Then järjestelmä validoi syötteet ja ilmoittaa syötevirheestä Skenaarioita on mahdollista uudelleenkäyttää, mikäli skenaarion abstraktiotaso pidetään riittävän korkeana
Miten SbE:tä käytetään, case 1 User Story Example 1..n Automatisoitu testi
Miten SbE:tä käytetään, case 2 Example 1..n Automatisoitu testi
Kokemuksia Sidosryhmät kärsimättömiä Selkeys on hyvä voimavara “Vaatimuskohtainen Definition of Done on todella kirkas” Fokus Helpottaa automatisointia ja automaation tuottamien tuloksien ymmärtämistä myös non-techie-landiassa
Muutoksesta Liiketoiminta on haastavaa saada mukaan Testaus ja kehitys saattavat olla siiloissa (ns. riippumaton testaus), kulttuurimuutos Testaajien tuominen tiimeihin Kehittäjät eivät ole tottuneet automatisoimaan Automaatioasteen kehitys, (A)TDD
Käyttöalueita Tietoturva Suorituskyky / Vikasietoisuus Toiminnallinen testaus Tutkiva testaus tukee tätä mukavasti ja Tutkivan testauksen sessioista helposti johdettavissa SbE-skenaarioita