tobias bayer

Post on 28-Jan-2017

269 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

SoftwarequalitätTobias Bayer

Tobias Bayer

Software-Architekt, Senior Developer

inovex GmbH

tobias.bayer@inovex.de

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.

top related