SlideShare une entreprise Scribd logo
1  sur  50
Testdrivning med automatiska acceptanstester – praktiska erfarenheter Sebastian de Bachtin
Projektet
Hur vi vågade förändra ett system timmar innan lansering! Start Förändrad funktionalitet Lansering
Förändringar innan leverans Test Förändrad funktionalitet Lansering
Teamet ,[object Object],[object Object],[object Object],[object Object],[object Object]
Testdrivning med automatiska acceptanstester – praktiska erfarenheter
Fallerande test Testdrivning  med automatiska acceptanstester – praktiska erfarenheter
Fallerande test Implementera Testdrivning  med automatiska acceptanstester – praktiska erfarenheter
Fallerande test Implementera Städa upp Testdrivning  med automatiska acceptanstester – praktiska erfarenheter
Acceptanstester skall definiera hur systemet skall uppföra sig. Testdrivning med automatiska  acceptanstester  – praktiska erfarenheter
GUI
Logik If (maybe) { then } else GUI
Logik Databas If (maybe) { then } else Id | Text | Enable 1  | a  | true 2  | b  | false 3  | c  | true GUI
Acceptanstester Logik Databas If (maybe) { then } else Id | Text | Enable 1  | a  | true 2  | b  | false 3  | c  | true GUI
Acceptanstester Logik Databas If (maybe) { then } else Id | Text | Enable 1  | a  | true 2  | b  | false 3  | c  | true GUI
Acceptanstester Logik Databas If (maybe) { then } else Id | Text | Enable 1  | a  | true 2  | b  | false 3  | c  | true GUI Tråkigt och tar lång tid
Automatiska acceptanstester Logik Databas If (maybe) { then } else Id | Text | Enable 1  | a  | true 2  | b  | false 3  | c  | true GUI Click(”Spara”); Assert.IsTextPresent(”Sparad”);
Acceptanstester - Selenium
Acceptanstester - Selenium
Acceptanstester - Selenium
Acceptanstester - Selenium
Acceptanstester - Selenium Click(”Spara”);
Acceptanstester - Selenium Click(”Spara”); Assert.IsTextPresent(”Sparad”);
Acceptanstester - Selenium Click(”Spara”); Assert.IsTextPresent(”Sparad”);
Acceptanstester - Selenium Selenium låste sig och kunde inte stänga ned webbläsarsessionerna.
Acceptanstester - Selenium ,[object Object],[object Object],[object Object],[object Object]
Acceptanstester - Selenium
Tester genom grafiskt gränssnitt Logik Databas If (maybe) { then } else Id | Text | Enable 1  | a  | true 2  | b  | false 3  | c  | true GUI
Tester genom grafiskt gränssnitt Logik Databas If (maybe) { then } else Id | Text | Enable 1  | a  | true 2  | b  | false 3  | c  | true GUI Assert.IsTextPresent(” Sparad ”);
Tester genom grafiskt gränssnitt Logik Databas If (maybe) { then } else Id | Text | Enable 1  | a  | true 2  | b  | false 3  | c  | true GUI Assert.IsUrl(” SavedPage.aspx ”);
Tester genom grafiskt gränssnitt Logik Databas If (maybe) { then } else Id | Text | Enable 1  | a  | true 2  | b  | false 3  | c  | true GUI Assert.IsUrl(SAVED_PAGE_NAME);
Tester genom grafiskt gränssnitt selenium.Click("//form[@id='frm']/table/tbody/tr[2]/td[1]/table/tbody/tr[2]/td/table/tbody/tr/td/table[3]/tbody/tr[3]/td/a");
Tester genom grafiskt gränssnitt selenium.Click("//form[@id='frm']/table/tbody/tr[ 2 ]/td[ 1 ]/table/tbody/tr[ 2 ]/td/table/tbody/tr/td/table[ 3 ]/tbody/tr[ 3 ]/td/a");
Tester genom grafiskt gränssnitt GetAllTheButtonsOnPage() { MatchCollection matches =  Regex.Matches(html,  @&quot;(lt;button(/?[^gt;]+)gt;)“) ... Return List<Button> }
Tester genom grafiskt gränssnitt Testdriv  inte  fram acceptanstester! Fallerande test Implementera Städa upp
Acceptanstester - Selenium
Databas Logik Databas If (maybe) { then } else Id | Text | Enable 1  | a  | true 2  | b  | false 3  | c  | true GUI
Databas Logik Databas If (maybe) { then } else Id | Text | Enable 1  | a  | true 2  | b  | false 3  | c  | true GUI Databas
Databas Logik Databas If (maybe) { then } else Id | Text | Enable 1  | a  | true 2  | b  | false 3  | c  | true GUI
Databas Logik Databas If (maybe) { then } else Id | Text | Enable 1  | a  | true 2  | b  | false 3  | c  | true GUI TEST_USER_ID_ARE_ENABLED
Tester genom grafiskt gränssnitt Logik Databas If (maybe) { WTF } else Id | Text | Enable 1  | a  | true 2  | b  | false 3  | c  | true GUI
Manuella tester Logik Databas If (maybe) { then } else Id | Text | Enable 1  | a  | true 2  | b  | false 3  | c  | true GUI
Manuella tester Logik Databas If (maybe) { then } else Id | Text | Enable 1  | a  | true 2  | b  | false 3  | c  | true GUI
Hur vi vågade förändra ett system timmar innan lansering! Start Förändrad funktionalitet Lansering
Förändringar innan leverans Manuella tester Förändrad funktionalitet
Förändringar innan leverans Förändrad funktionalitet Automatiska acceptanstester Manuella tester
Testdrivning med automatiska acceptanstester – praktiska erfarenheter Sebastian de Bachtin
 
 
 

Contenu connexe

Plus de Agila Sverige

Visst kan vi självorganisera... vi ska bara fråga chefen först.
Visst kan vi självorganisera... vi ska bara fråga chefen först.Visst kan vi självorganisera... vi ska bara fråga chefen först.
Visst kan vi självorganisera... vi ska bara fråga chefen först.Agila Sverige
 
Hantera felhantering
Hantera felhanteringHantera felhantering
Hantera felhanteringAgila Sverige
 
Är det Agilt som gäller, eller?
Är det Agilt som gäller, eller?Är det Agilt som gäller, eller?
Är det Agilt som gäller, eller?Agila Sverige
 
Vad kan vi arkitekter lära oss av Agile?
Vad kan vi arkitekter lära oss av Agile?Vad kan vi arkitekter lära oss av Agile?
Vad kan vi arkitekter lära oss av Agile?Agila Sverige
 
When Worlds Collide II – Den kubistiska organisationens intåg?
When Worlds Collide II – Den kubistiska organisationens intåg?When Worlds Collide II – Den kubistiska organisationens intåg?
When Worlds Collide II – Den kubistiska organisationens intåg?Agila Sverige
 
Empiri på riktigt - en tilluxad agil utvecklingsmodell
Empiri på riktigt - en tilluxad agil utvecklingsmodellEmpiri på riktigt - en tilluxad agil utvecklingsmodell
Empiri på riktigt - en tilluxad agil utvecklingsmodellAgila Sverige
 
Olika typer av test doubles (mock/stub-objekt) och hur de kan implementeras
Olika typer av test doubles (mock/stub-objekt) och hur de kan implementerasOlika typer av test doubles (mock/stub-objekt) och hur de kan implementeras
Olika typer av test doubles (mock/stub-objekt) och hur de kan implementerasAgila Sverige
 
Praktiskt ledarskap i tavelmötet
Praktiskt ledarskap i tavelmötetPraktiskt ledarskap i tavelmötet
Praktiskt ledarskap i tavelmötetAgila Sverige
 
Det STORA missförståndet
Det STORA missförståndetDet STORA missförståndet
Det STORA missförståndetAgila Sverige
 
En agilare Säljgrupp
En agilare SäljgruppEn agilare Säljgrupp
En agilare SäljgruppAgila Sverige
 
Agil utan förändringar
Agil utan förändringarAgil utan förändringar
Agil utan förändringarAgila Sverige
 
Hur ett Gantt-schema gjorde projektet till ett misslyckande
Hur ett Gantt-schema gjorde projektet till ett misslyckandeHur ett Gantt-schema gjorde projektet till ett misslyckande
Hur ett Gantt-schema gjorde projektet till ett misslyckandeAgila Sverige
 
Låt hjärtat va' me'...
Låt hjärtat va' me'...Låt hjärtat va' me'...
Låt hjärtat va' me'...Agila Sverige
 
Bättre Scrum i stor skala med Kanban
Bättre Scrum i stor skala med KanbanBättre Scrum i stor skala med Kanban
Bättre Scrum i stor skala med KanbanAgila Sverige
 
BDD - så knyter vi ihop säcken!
BDD - så knyter vi ihop säcken!BDD - så knyter vi ihop säcken!
BDD - så knyter vi ihop säcken!Agila Sverige
 

Plus de Agila Sverige (20)

Visst kan vi självorganisera... vi ska bara fråga chefen först.
Visst kan vi självorganisera... vi ska bara fråga chefen först.Visst kan vi självorganisera... vi ska bara fråga chefen först.
Visst kan vi självorganisera... vi ska bara fråga chefen först.
 
Hantera felhantering
Hantera felhanteringHantera felhantering
Hantera felhantering
 
Är det Agilt som gäller, eller?
Är det Agilt som gäller, eller?Är det Agilt som gäller, eller?
Är det Agilt som gäller, eller?
 
Vad kan vi arkitekter lära oss av Agile?
Vad kan vi arkitekter lära oss av Agile?Vad kan vi arkitekter lära oss av Agile?
Vad kan vi arkitekter lära oss av Agile?
 
When Worlds Collide II – Den kubistiska organisationens intåg?
When Worlds Collide II – Den kubistiska organisationens intåg?When Worlds Collide II – Den kubistiska organisationens intåg?
When Worlds Collide II – Den kubistiska organisationens intåg?
 
Empiri på riktigt - en tilluxad agil utvecklingsmodell
Empiri på riktigt - en tilluxad agil utvecklingsmodellEmpiri på riktigt - en tilluxad agil utvecklingsmodell
Empiri på riktigt - en tilluxad agil utvecklingsmodell
 
Olika typer av test doubles (mock/stub-objekt) och hur de kan implementeras
Olika typer av test doubles (mock/stub-objekt) och hur de kan implementerasOlika typer av test doubles (mock/stub-objekt) och hur de kan implementeras
Olika typer av test doubles (mock/stub-objekt) och hur de kan implementeras
 
Praktiskt ledarskap i tavelmötet
Praktiskt ledarskap i tavelmötetPraktiskt ledarskap i tavelmötet
Praktiskt ledarskap i tavelmötet
 
Tajmboxat tänkande
Tajmboxat tänkandeTajmboxat tänkande
Tajmboxat tänkande
 
Agile Manager
Agile ManagerAgile Manager
Agile Manager
 
Det STORA missförståndet
Det STORA missförståndetDet STORA missförståndet
Det STORA missförståndet
 
En agilare Säljgrupp
En agilare SäljgruppEn agilare Säljgrupp
En agilare Säljgrupp
 
Budgeten är död
Budgeten är dödBudgeten är död
Budgeten är död
 
Agil utan förändringar
Agil utan förändringarAgil utan förändringar
Agil utan förändringar
 
Älska det du gör
Älska det du görÄlska det du gör
Älska det du gör
 
Management by Scrum
Management by ScrumManagement by Scrum
Management by Scrum
 
Hur ett Gantt-schema gjorde projektet till ett misslyckande
Hur ett Gantt-schema gjorde projektet till ett misslyckandeHur ett Gantt-schema gjorde projektet till ett misslyckande
Hur ett Gantt-schema gjorde projektet till ett misslyckande
 
Låt hjärtat va' me'...
Låt hjärtat va' me'...Låt hjärtat va' me'...
Låt hjärtat va' me'...
 
Bättre Scrum i stor skala med Kanban
Bättre Scrum i stor skala med KanbanBättre Scrum i stor skala med Kanban
Bättre Scrum i stor skala med Kanban
 
BDD - så knyter vi ihop säcken!
BDD - så knyter vi ihop säcken!BDD - så knyter vi ihop säcken!
BDD - så knyter vi ihop säcken!
 

Testdrivning med automatiska acceptanstester – praktiska erfarenheter