Praktiska råd vid utformning och hantering av systemleveransavtal
Testdrivning med automatiska acceptanstester – praktiska erfarenheter
-
Upload
agila-sverige -
Category
Technology
-
view
662 -
download
0
description
Transcript of Testdrivning med automatiska acceptanstester – praktiska erfarenheter
Testdrivning med automatiska acceptanstester – praktiska
erfarenheter
Sebastian de Bachtin
Projektet
Hur vi vågade förändra ett system timmar innan lansering!
StartFörändrad funktionalitet Lansering
Förändringar innan leverans
Test
Förändrad funktionalitet
Lansering
Teamet
• Fem C# utvecklare • En JavaScript / GUI-utvecklare• En testare• En domänexpert• En projektledare
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
LogikIf (maybe) { then} else
GUI
Logik
Databas
If (maybe) { then} else
Id | Text | Enable1 | a | true2 | b | false3 | c | true
GUI
Acceptanstester
Logik
Databas
If (maybe) { then} else
Id | Text | Enable1 | a | true2 | b | false3 | c | true
GUI
Acceptanstester
Logik
Databas
If (maybe) { then} else
Id | Text | Enable1 | a | true2 | b | false3 | c | true
GUI
Acceptanstester
Logik
Databas
If (maybe) { then} else
Id | Text | Enable1 | a | true2 | b | false3 | c | true
GUI
Tråkigt och tar lång tid
Automatiska acceptanstester
Logik
Databas
If (maybe) { then} else
Id | Text | Enable1 | a | true2 | b | false3 | c | true
GUI
Click(”Spara”); Assert.IsTextPresent(”Sparad”);
Acceptanstester - Selenium
Acceptanstester - Selenium
Acceptanstester - Selenium
Acceptanstester - Selenium
Acceptanstester - SeleniumClick(”Spara”);
Acceptanstester - SeleniumClick(”Spara”); Assert.IsTextPresent(”Sparad”);
Acceptanstester - SeleniumClick(”Spara”); Assert.IsTextPresent(”Sparad”);
Acceptanstester - Selenium
Selenium låste sig och kunde inte stänga ned webbläsarsessionerna.
Acceptanstester - Selenium
• 252 tester• Ca 20 minuter att köra alla tester• Körde dem en gång per dag• Tolka dem manuellt
Acceptanstester - Selenium
Tester genom grafiskt gränssnitt
Logik
Databas
If (maybe) { then} else
Id | Text | Enable1 | a | true2 | b | false3 | c | true
GUI
Tester genom grafiskt gränssnitt
Logik
Databas
If (maybe) { then} else
Id | Text | Enable1 | a | true2 | b | false3 | c | true
GUI
Assert.IsTextPresent(”Sparad”);
Tester genom grafiskt gränssnitt
Logik
Databas
If (maybe) { then} else
Id | Text | Enable1 | a | true2 | b | false3 | c | true
GUI
Assert.IsUrl(”SavedPage.aspx”);
Tester genom grafiskt gränssnitt
Logik
Databas
If (maybe) { then} else
Id | Text | Enable1 | a | true2 | b | false3 | c | true
GUIAssert.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, @"(\
<button(/?[^\>]+)\>)“)...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 | Enable1 | a | true2 | b | false3 | c | true
GUI
Databas
Logik
Databas
If (maybe) { then} else
Id | Text | Enable1 | a | true2 | b | false3 | c | true
GUI
Databas
Databas
Logik
Databas
If (maybe) { then} else
Id | Text | Enable1 | a | true2 | b | false3 | c | true
GUI
Databas
Logik
Databas
If (maybe) { then} else
Id | Text | Enable1 | a | true2 | b | false3 | c | true
GUI
TEST_USER_ID_ARE_ENABLED
Tester genom grafiskt gränssnitt
Logik
Databas
If (maybe) { WTF} else
Id | Text | Enable1 | a | true2 | b | false3 | c | true
GUI
Manuella tester
Logik
Databas
If (maybe) { then} else
Id | Text | Enable1 | a | true2 | b | false3 | c | true
GUI
Manuella tester
Logik
Databas
If (maybe) { then} else
Id | Text | Enable1 | a | true2 | b | false3 | c | true
GUI
Hur vi vågade förändra ett system timmar innan lansering!
StartFö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