Agile Software Testing

Auch in Agilen Software Projekten nimmt das Testing eine sehr wichtige Rolle ein, in diesen Projekten wird anders als in klassischen Vorgehensmodellen eine gewisse Agilität an den Tag gelegt, welche einen geringeren bürokratischen Aufwand, weniger Regeln und meist einen Iterativen Vorgang aufweisen.

Bereits in diesem Wiki vertretene agile Projektmanagementframeworks:
 * Scrum
 * Kanban

Testquadranten
Testquadranten unterteilen beim Testen in agilen Projekten die verschiedenen Testsarten in 4 verschiedene Quadranten.

1. Quadrant: Unit- und Komponententests

2. Quadrant: Funktionstests, Story Tests, Prototypen, Simulationen

3. Quadrant: Exploratives Testen, Szenarien, Benutzbarkeitstests, Alpha/Beta Tests

4. Quadrant: Last und Performancetests, Sicherheitstests, Zuverlässigkeitstests Außerdem stellen sie dar ob es sich um manuelle/automatisierte Tests handelt oder um Werkzeuge.

Anhand der eingezeichneten Pfeile lässt sich erkennen welcher Quadrant fachlich, team unterstützend, Produkthinterfragend oder technisch ist.

Das links platzierte Bild stellt die Testquadranten anschaulich dar.

Quelle: http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants/

Das Agile Manifest
Das Testen in agilen Projekten folgt den 4 Werten des agilen Manifests.

Im agilen Manifest werden folgende Werte vertreten:
 * individuen und interaktionen sind wichtiger als Prozesse und Werkzeuge
 * Funktionierende Software ist wichtiger als umfassende Dokumentation
 * Zusammenarbeit mit dem Kunden ist wichtiger als Vertragsverhandlungen


 * Reagieren auf Veränderungen ist wichtiger als das befolgen eines Plans+

Die agilen Prinzipien
In agilen Projekten werden die agilen Prinzipien auf das Testen angewandt.

Folgende 12 Prinzipien sind in der agilen Projektsteuerung zu beachten:
 * Es hat  höchste  Priorität,  den  Kunden  durch  frühe  und  kontinuierliche  Auslieferung  wertvoller Software zufriedenzustellen.


 * Anforderungsänderungen, selbst  spät  in  der  Entwicklung,  werden  begrüßt.  Agile  Prozessenutzen Veränderungen zum Wettbewerbsvorteil des Kunden.
 * Funktionierende Software wird regelmäßig innerhalbweniger Wochen oder Monate geliefert, mit Präferenz für die kürzere Zeitspanne.
 * Fachexperten und Entwickler müssen während des Projektes täglich zusammenarbeiten.
 * Projekte werden rund um motivierte Individuen aufgebaut - ihnen wird das notwendige Umfeld und die Unterstützung gegeben, die sie benötigen und darauf vertraut, dass sie die Aufgabe erledigen.
 * Die   effizienteste    und    effektivste    Methode    Informationen    an    und    innerhalb    eines Entwicklungsteams zu übermitteln ist im Gespräch von Angesicht zu Angesicht.
 * Funktionierende Software ist das wichtigste Fortschrittsmaß.
 * Agile Prozesse fördern nachhaltige Entwicklung. Die Auftraggeber, Entwickler und Anwendersollten ein gleichmäßiges Tempo dauerhaft halten können.
 * Ständiges Augenmerk auf technische Exzellenz und gutes Design fördert Agilität.
 * Einfachheit -- die Kunst, die Menge nicht getaner Arbeit zu maximieren - ist essenziell.
 * Die besten  Architekturen,  Anforderungen  und  Entwürfe  entstehen  durch  selbstorganisierte Teams.
 * In regelmäßigen  Abständen  reflektiert  das  Team,  wie  es  effektiver  werden  kann  und  passt sein Verhalten entsprechend an