Download - Tobias Bayer
SoftwarequalitätTobias Bayer
Tobias Bayer
Software-Architekt, Senior Developer
inovex GmbH
http://www.inovex.de
"Software quality is the degree ofconformance to explicit or implicitrequirements and expectations"
http://softwaretestingfundamentals.com/software-quality/
Agile SoftwareentwicklungSchnelles FeedbackMoving Targetvs. WasserfallReview Meeting: QS ggü. KundeRetro Meeting: QS im Team
Das BacklogListe der Anforderungen an das ProduktPriorisiertGeschätztMögliches Format: User Stories
User StoriesBeschreibung einer AnforderungAkzeptanzkriterienDefinition of ReadyDefinition of Done
Beispiel User Story Template
Als [Rolle] möchte ich [Ziel/Wunsch], um[Nutzen]
Als neuer User möchte ich bei der Anmeldungmeine Zahlungsdaten hinterlegen, umBezahldienste nutzen zu können
Akzeptanzkriterien:
Das Anmeldeformular ist unter
http://myservice.com/signup verfügbar
Beim Anlegen neuer User werden die Zahlungsdaten
abgefragt
Die Zahlungsdaten eines Users können in der Admin-
Oberfläche eingesehen werden
DoR (Definition of Ready)
Ziel und Akzeptanzkriterien sind klar
Story ist geschätzt
Story ist nicht zu komplex / zu groß für einen Sprint
Abhängigkeiten/Schnittstellen sind bekannt und
eingeplant
Wer muss was tun? Backend, iOS
DoD (Definition of Done)
Unit Tests sind vorhanden
Es wurde ein Peer-Review durchgeführt
Es ist auf der Dev Umgebung deployed (Backend) / es
steht als Build zum DL bereit (App)
Der Build kann auf einem beliebigen Gerät (innerhalb
der Specs) installiert werden (keine Beschränkung auf
Device IDs, etc)
Build läuft auf iOS9/iPhone6 (iOS8/iPhone4S wird
nach R0 Ziel sein)
Backend: Wenn ein neuer Service eingeführt wurde,
ist er in der Übersicht und im Wiki dokumentiert.
Statische Code-Analyse
Pull-Requests, Merge-Requests
Code Review
Kommentare
Änderungen
Merge
Bitbucket, GitHub, GitLab
Quelle: http://nvie.com/posts/a-successful-git-branching-model
Tool: GitLab
Tool: GitLab
Tool: GitLab
Analyse-Tools
FindbugsPMDCheckstyleSonarQube
Metriken
LOC (Lines of Code)
LCOM4 (Lack of Cohesion of Methods)
Kopplung
Testabdeckung
Tool: SonarQube
Tests
Unit Tests
Test einzelner KomponentenWährend Entwicklung eines FeaturesMöglichst isoliertStubs und MocksTest Driven Development (TDD)
JUnit
Mockito
Mockito
Integrationstests
Test der Interaktion von KomponentenIm Applikationskontext
Spring Context Runner
Spring MockMVC
In agilen Projekten
Akzeptanztests
Benutzer/Product Owner testen gegen dieSpezifikationHäufig "unterwegs"Spätestens im Sprint Review
Last- und Performancetests
Applikation mit erwarteter Last betreiben...und darüber hinausFrüh genug aufsetzen
Apache JMeter
Continuous Integration/Deployment
Alle Tests nach jedem fertigen Feature ausführenSicherstellen, dass System als Ganzes nochfunktioniertNach erfolgreichen Tests direkt auf die Staging-Umgebung deployen...oder sogar direkt in die Produktivumgebung
Tool: Jenkins
Tool: Jenkins
Boy Scout Rule
Become an inovexPERTWir suchen dich ab sofort in den Bereichen Consulting,
Entwicklung (Web/Mobile), Business Intelligence sowie
IT Engineering & Operations
für das Schreiben deiner Abschlussarbeit (Bachelor
oder Master),
für eine Werkstudententätigkeit,
für verschiedene Einstiegspositionen nach dem
Studium.