Your SlideShare is downloading. ×
0
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Dokumentation durch automatisierte Akzeptanztests
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Dokumentation durch automatisierte Akzeptanztests

1,199

Published on

Folien der Präsentation "Dokumentation durch automatisierte Akzeptanztests" auf der webtech 2010 von Andreas Kneifel http://www.wlw.de/ und Sebastian Sanitz http://www.it-agile.de/

Folien der Präsentation "Dokumentation durch automatisierte Akzeptanztests" auf der webtech 2010 von Andreas Kneifel http://www.wlw.de/ und Sebastian Sanitz http://www.it-agile.de/

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,199
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Dokumentation durch automatisierte Akzeptanztests 11. Oktober 2010 Sebastian Sanitz, it-agile Andreas Kneifel, „Wer liefert was?“
  • 2. Wer sind wir? <ul><li>Sebastian Sanitz, Dipl.-Informatiker </li></ul><ul><ul><li>[email_address] </li></ul></ul><ul><li>Andreas Kneifel, Dipl.-Informatiker </li></ul><ul><li>Abteilung Innovationsmanagement </li></ul><ul><li>[email_address] </li></ul>
  • 3. Agenda <ul><li>Vorstellung von „Wer liefert was?“ </li></ul><ul><li>Stand der agilen Entwicklung bei „Wer liefert was?“ </li></ul><ul><li>Akzeptanztests </li></ul><ul><li>Userstories </li></ul><ul><li>Page-Objects </li></ul><ul><li>Wie sehen die Tests aus? </li></ul><ul><li>Automatisierung der Akzeptanztests </li></ul><ul><li>Schwierigkeiten und Lösungen im Einsatz bei „Wer liefert was?“ </li></ul><ul><li>Was man alles testen kann </li></ul><ul><li>Fazit </li></ul>
  • 4. „ Wer liefert was?“ <ul><li>führende deutsche Lieferantensuchmaschine (B2B) </li></ul><ul><li>10 Präsenzen (DACH, BeNeLux) + 6 mobil </li></ul><ul><li>25 Präsenz-/Sprach-Kombinationen (sprachspezifische Features) </li></ul>
  • 5. Mobil
  • 6. Innovationsmanagement und „Web Demand Management“ 1. Anforderungen 2. Aufwandsschätzung 3. Priorisierung Verantwortlich für Geschäftswert Verantwortlich für Technologie Entwickler Produkt- verantwortlicher
  • 7. Früher keine Agile Entwicklung <ul><li>Webentwicklung outsourced </li></ul><ul><li>kein Prozessmodell </li></ul><ul><li>Anforderungen eher Wunschvorstellungen </li></ul><ul><li>viele Änderungen </li></ul><ul><li>häufige Releases </li></ul><ul><li>aber keine Tests </li></ul><ul><li>bisher Glück  </li></ul>photo by Pimlico Badger (flickr)
  • 8. Scrum
  • 9. Warum Tests automatisieren? Jeremy Keith / adactio @ flickr photo by Jurvetson (flickr) By Patty Gallivan (flickr)
  • 10. Automatisierung mit Selenium
  • 11. <ul><li>Skalierbar, wartbar? </li></ul>
  • 12. Akzeptanztests <ul><li>Akzeptanztests müssen angepasst werden, wenn </li></ul><ul><li>sich die Software oder </li></ul><ul><li>die Anforderungen ändern. </li></ul><ul><li>Akzeptanztests sollten </li></ul><ul><li>unabhängig von Implementierungsdetails formuliert sein und </li></ul><ul><li>ihren Zweck kommunizieren. </li></ul>
  • 13. Beispiel <ul><li>Userstories </li></ul><ul><li>Ausführbare Spezifikationen </li></ul>
  • 14. Page-Objects <ul><li>Hilfreich für eine Strukturierung </li></ul><ul><ul><li>Im Wiki bei Selenium gefunden </li></ul></ul><ul><li>Für jede Seite ein Objekt definieren </li></ul><ul><ul><li>Oder für ein wiederkehrendes Fragment einer Seite </li></ul></ul><ul><li>Für jede fachliche Umgangsform einer Seite eine Methode </li></ul>
  • 15. Testergebnisse <ul><li>Erfolgreiche Tests: grün </li></ul><ul><li>Erfolglose Tests: rot, mit Erläuterung ( Expected : got ) und „wo?“ </li></ul>
  • 16. Java und XPath (I) <ul><li>@Gegebensei (&quot;^die Startseite (+)$&quot;) </li></ul><ul><li>public void dieHomePage(String praesenzName) { </li></ul><ul><li>driver().get(praesenzName.getUrl() ); </li></ul><ul><li>} </li></ul><ul><li>@Wenn (&quot;^der Benutzer nach '(.+)' sucht$&quot;) </li></ul><ul><li>public void sucheNach(String eingabe) { </li></ul><ul><li>By selector = isMobil ? By.xpath(&quot;//input[@name='suchbegriff']&quot;) : By.id(&quot;suchbegriff&quot;); </li></ul><ul><li>WebElement input = driver().findElement(selector); </li></ul><ul><li>input.sendKeys(eingabe); } </li></ul>
  • 17. Java und XPath (II) <ul><li>@Dann (&quot;^kommen ua die Rubriken:(.+)$&quot;) </li></ul><ul><li>public void kommenDieRubriken(String rubriken) { </li></ul><ul><li>By selector = isMobil ? By.xpath(&quot;//div[@class='content_list']//span/span&quot;) : </li></ul><ul><li>By.className(&quot;trefferrubrik&quot;); </li></ul><ul><li>List<String> treffer = elementsAsStrings(selector); </li></ul><ul><li>assertThat( treffer, contains(split(rubriken)) ); </li></ul><ul><li>} </li></ul>
  • 18. Aggregiertes &quot;Gegeben sei&quot; <ul><li>@Gegebensei (&quot;^die Firma '(.+)' bei (+) nach der Suche '(.+)' in der Rubrik '(.+)'$&quot;) </li></ul><ul><li>public void dieFirmaUeberProduktSuche(String firmierung, String praesenz, String eingabe, String rubrik) { </li></ul><ul><li>Given (&quot;die Startseite &quot; + praesenz); </li></ul><ul><li>When (&quot;der Benutzer nach '&quot; + eingabe + &quot;' sucht&quot;); </li></ul><ul><li>When (&quot;der Benutzer auf die Rubrik '&quot; + rubrik + &quot;' klickt&quot;); </li></ul><ul><li>When (&quot;der Benutzer bei Firma '&quot; + firmierung + &quot;' auf 'Firmeninfos' klickt&quot;); </li></ul><ul><li>} </li></ul>
  • 19. Probleme mit Lösungen <ul><li>Verbindung zum Internet, Proxy, Statistikverfälschung </li></ul><ul><li>AJAX und Ladezeiten </li></ul><ul><li>Layer und der Zufall </li></ul><ul><li>Bewegung auf der Seite </li></ul><ul><li>Testdaten oder Echtdaten? </li></ul>
  • 20. Ungewöhnliche Tests <ul><li>Untergrenzen und Teilmengen </li></ul><ul><li>Textdateien (robots.txt) </li></ul><ul><li>HTTP-Statuscodes </li></ul><ul><li>Geöffnete Fenster </li></ul><ul><li>Visuelle Überprüfung </li></ul><ul><li>Protokollierung </li></ul>
  • 21. Anforderungsmanagement photo by Jurvetson (flickr)
  • 22. Täglicher Ablauf <ul><li>Trennung der Fehlerquellen </li></ul><ul><li>Früh morgens Hudson </li></ul><ul><li>Fehler aufgrund von Datenänderungen beseitigen </li></ul><ul><li>Tagsüber Testaufrufe </li></ul><ul><li>Zusätzliche manuelle Tests </li></ul><ul><li>Nach Livestellung Produktivtest </li></ul>
  • 23. Fazit <ul><li>Aspekte, die automatische Akzeptanztests begünstigen: </li></ul><ul><li>Häufige Tests (z.B. bei agiler Vorgehensweise) </li></ul><ul><li>Viele gleichartige Tests, hier Präsenzen und Sprachen </li></ul><ul><li>Zusatznutzen: </li></ul><ul><li>Andere Sichtweise auf die Anforderung </li></ul><ul><li>Als lebende Dokumentation </li></ul>
  • 24. Vielen Dank für Ihre Aufmerksamkeit

×