Testen von Software systematisch oder agil?

Ähnliche Dokumente
Agilität und systematischer Test

Teststrategie festlegen und Teststufen aufeinander abstimmen

Testmanagement. Full-Service

Prozess-Modelle für die Softwareentwicklung

Agile Softwareprozess-Modelle

Testen. SEPR Referat: Testen - Oliver Herbst

Präsentation einer agilen Methode

Senior Consulting. Senior Consulting Strategical, Conceptual and Technical Consulting Seite 1

T1 - Fundamentaler Testprozess

Software Engineering. 4. Methodologien. Franz-Josef Elmer, Universität Basel, HS 2014

Herkömmliche Softwareentwicklungsmodelle vs. Agile Methoden

Unit Testing, SUnit & You

Testmanagement. Dirk Tesche

ZuuL - Entwicklung eines Adventures

Agile Management Einführung in agiles Management

Softwareentwicklung aus Sicht des Gehirns

RE bei agilen Methoden

Systemen - Testen im Softwarelebenszyklus

Effizienzsteigerung von Softwaretests durch Automatisierung

T-Systems Enterprise Services GmbH. Test Factory. Testen nach ISTQB-Standard, Gastvortrag Fontys Hogescholen Venlo, April 2008

Scriptbasierte Testautomatisierung. für Web-Anwendungen

Frank Düsterbeck HEC GmbH. QM mit und durch agile Vorgehensweisen

Wann lohnt sich GUI- Testautomatisierung?

T2 Fundamentaler Testprozess

Testmanagement in IT-Projekten

Software-Lebenszyklus

Projektmanagement. Dokument V 1.2. Oliver Lietz - Projektmanagement. Probleme bei Projekten

1. Zweckdes Dokuments

Berufsbild Tester - eine Profession?

Kurzübersicht Unified Process und Agile Prozesse

Aufbau einer Testorganisation in der Wirtschaft

Agile Methoden vs. Testen

Systemen - Literatur. Literatur. Literatur. Grundlegende Literatur

Zwei ungleiche Geschwister

Systemen - Einleitung

Agile Software Entwicklung. Agile Software Entwicklung, DHBW Karlsruhe, SS-2009 Collin Rogowski

Software-Entwicklung

Test. Dipl. Wirtsch. Ing. Alexander Werth 9-1

Testen Prinzipien und Methoden

Agiles Projektmanagement. erklärt in 30 Minuten! IT-Forum Agiles Projektmanagement, NIK 29. Juni Thomas Hemmer

P r a k t I s c h e SOFTWARETECHNIK. Systemen - Literatur Dr. Klaudia Dussa-Zieger Testen von Software-Systemen SS 2007 (1)

ANECON. Business Process meets Agile Software Development. DI Ernst Lieber Leiter Geschäftsfeld Softwareentwicklung

Automatische Testfallgenerierung aus Modellen. 8. Neu-Ulmer Test-Engineering-Day Martin Miethe

Was funktioniert und was nicht? Agile Softwareentwicklung in der Praxis Martin Lippert,

Software-Dokumentation im agilen Umfeld. Marion Bröer, parson communication

Testmanagement. Q-Day. Frank Böhr Fraunhofer IESE

Festpreisvertrag und agil nützt nicht viel? Stefan Roock, Henning Wolf,

The Future of Software Testing

Softwaretechnik. Vertretung von Prof. Dr. Blume Fomuso Ekellem WS 2011/12

Testen in KMU Projekten Bern, November 2013

Systematische Testfallableitung und Tests durchführen

Nichtfunktionaler Abnahmetest: Planung, Durchführung und Automatisierung

AUFBAU EINER TESTORGANISATION

Interpretation des agilen Manifest

Systemen - Testprozess. Testprozess. Testprozess: Aktivitäten. Testplanung und Teststeuerung. Lehrplan 2003 Testplanung

Einführung von Testautomatisierung reflektiert. Erkenntnisse eines Linienmanagers zu Herausforderungen und Fallgruben

Effiziente Steuerung von BI-Projekten - Agiles Projektmanagement vs. klassische Vorgehensmodelle. Windhoff Software Services GmbH

Systemen - Testprozess. Testprozess. Testprozess: Aktivitäten. Testplanung und Teststeuerung. Testplanung und Teststeuerung

Testen heute und in der Zukunft Ergebnisse der ersten unabhängigen Marktstudie für 6 Länder

Testen II. (Management, Tools) Daniela Rose. Software Engineering Projekt WS07/08 Fachgebiet Softwaretechnik und Systemgestaltung

Testmanagement bei SAP-Projekten

Wie wird in der Praxis getestet? Online-Umfrage in Deutschland, Schweiz und Österreich

Qualitätssicherung im Lebenszyklus des itcs. Anspruch und Wirklichkeit.

Agile Testing. Der agile Weg zur Qualität. von Siegfried Tanczos, Martin Klonk, Richard Seidl, Helmut Pichler, Manfred Baumgartner. 1.

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Modulare Programmierung

Vector Software. Test Automation mit VectorCAST während der gesamten Softwareentwicklung W H I T E P A P E R

Übungen zur Softwaretechnik

,$ -. "+0 *+*+ ! / -#$%$. #$%'' $ () 1 2$ #$%$! 1 2$3 )!

Projektmanagement Vorlesung 14/ 15: Wiederholung ausgewählter Themen zur Klausurvorbereitung. Prof. Adrian Müller, PMP, PSM-1, CSM FH Kaiserslautern

Basiswissen Softwaretest

Praxiswissen Softwaretest Testmanagement

Das W-Modell. Vorteile der agilen Prozesse in einem konservativen Umfeld nutzen

Softwaretechnik WS 16/17

Basiswissen Softwaretest

SOFTWARETECHNIK. Kapitel 7 Vorgehensmodelle. Vorlesung im Wintersemester 2012/13 FG System- und Software-Engineering Prof. Dr.-Ing.

Praxiswissen Softwaretest

Unit Tests mit Junit 4. Dario Borchers

Ready for Check-in 3 Praxisbericht Flughafen Wien

Testfallerzeugung aus Use-Case-Beschreibungen

Requirements Management mit RequisitePro. Rational in der IBM Software Group. Der Rational Unified Process als Basis für die Projektarbeit

Extreme Programming ACM/GI Regionalgruppe Bremen,

Praxiswissen Softwaretest - Testmanagement

Testautomatisierung. Märchen, Möglichkeiten und praktischer Nutzen. Richard Seidl 21. Januar 2013 TU Dresden. Medizin- und Informationstechnik AG

11. Arbeitstreffen Leipzig, 6./7. Mai 2014

Software - Testung ETIS SS05

Iterativ. Inkrementell

arvato Heterogene Systemlandschaft

Fortgeschrittenes Programmieren mit Java. Test Driven Development

AGIL WIE EIN WASSERFALL

Einsatz von Simulationen in der Softwareentwicklung

XP, Scrum, Crystal, FDD:

Technologiepark Paderborn Telefon: / XX XX XX Mobil: 01XX / XX XX XX XX XXXXXXX@mail.upb.de

Agile SOA. Best Practices aus Projekterfahrungen bei KarstadtQuelle (Arcandor AG)

Test-Driven Developement Eine Einführung

Probeklausur. Lenz Belzner. January 26, Lenz Belzner Probeklausur January 26, / 16

Das Who s Who der agilen Methoden Golo Roden

Ein generativer Ansatz für den automatisierten Softwaretest,

Softwareentwicklung aus Sicht des Gehirns

Transkript:

von Software systematisch oder agil? Prof. Dr.-Ing. Andreas Spillner Hochschule Bremen Testing Day Baden-Württemberg 20.10.2011

Vorstellung meiner Person Studium der Informatik an der TU Berlin Praxis Migrations- und Entwicklungsprojekte, Softwareentwicklung Promotion Universität Bremen seit 1993 Professor an der Hochschule Bremen Fakultät Elektrotechnik & Informatik Lehre Softwaretechnik, Qualitätssicherung Programmierung Forschung Softwaretechnik, Validation und Verifikation von Software, Testmethoden, Prozessmodelle GI-TAV Gründung der Fachgruppe»Test, Analyse und Verifikation von Software«und deren langjähriger Leiter GI-Fellow Ernennung 2007 GTB German Testing Board Gründungsmitglied* Ehrenmitglied seit 2010 ASQF Arbeitskreis Software-Qualität und Fortbildung Mitglied im ASQF-Beirat Leiter FG-SW-Test Norddeutschland* * bis Ende 2009 http://www.informatik.hs-bremen.de/spillner/ 2

von Software Soll dazu beitragen, Fehler vor dem Einsatz der Software zu finden die Qualität der Software nachzuweisen Vertrauen in die Software zu schaffen Softwaretest meist ungeliebte Tätigkeit selten anerkannt kaum im Studium gelehrt in der Praxis hohe Bedeutung 30-50% der Gesamtkosten der Entwicklung 3

Computer Zeitung unter 100 IT-Managern zum Gelingen von DV-Projekten vom 10. April 2006 4

Ziel des Tests Durch stichprobenhafte Programmläufe Nachweis der Erfüllung der festgelegten Anforderungen Aufdeckung von eventuellen Abweichungen und Fehlern Dabei mit möglichst wenig Aufwand möglichst viele Anforderungen überprüfen bzw. Fehler nachweisen Vorgehen kein»ad-hoc«-test Stresstest 5

2011 - Softwaretest in der Praxis Wissenschaftliche Leitung Förderer Unterstützer 6 2

2011 - Softwaretest in der Praxis Umfangreiche rollenspezifische bogen (110 Fragen) Projektleiter, Testmanager, QS-Beauftragte, Tester (110) Business Analyst, Entwickler, Betrieb & Support, Andere (63) Executive und mittleres Management (51) Ausfüllquote 1623 haben die begonnen (1779 aufgerufen) 810 haben die letzten Fragen beantwortet 1008 Projektleiter, Testmanager, Tester... (1092) 476 394 Business Analyst, Entwickler,... (421) 197 221 Executive und mittleres Management (266) 137 Einschätzung der Datenqualität gut bis sehr gut, allein durch die hohe Anzahl der Beteiligung hoher Ausbildungsgrad und Berufserfahrung hohe Nutzung der Freitextmöglichkeit http://www.softwaretest-umfrage.de (28.9.2011) 7

2011: Vorgehensmodelle Fragen zu den in der Praxis verwendeten Vorgehensmodellen 8

2011: Vorgehensmodelle Fragen zu den in der Praxis verwendeten Vorgehensmodellen 9

2011: Vorgehensmodelle Fragen zu den in der Praxis verwendeten Vorgehensmodellen 10

im Entwicklungsprozess - Allgemeines V-Modell Anforderungsdefinition Abnahmetest funktionaler Systemtest Systementwurf technischer Systementwurf Integrationstest Komponenten -Spezifikation Komponententest Konstruktionsphasen Teststufen Programmierung Testfälle basieren auf den entsprechenden Dokumenten 11

1997/2011: Prüf- und Testaktivitäten - wann? Wann werden Prüf- und Testaktivitäten durchgeführt? Wann wird damit angefangen? Gibt es Veränderungen in den letzten 15 Jahren? von 1997 KORREKTU http://www.softwaretest-umfrage.de (28.9.2011) http://systementwicklung-archiv.bibliothek.informatik.uni-koeln.de/archive/00000028/ (28.9.2011) 12

1997/2011: Prüf- und Testaktivitäten - wann? Wann werden Prüf- und Testaktivitäten durchgeführt? Wann wird damit angefangen? Gibt es Veränderungen in den letzten 15 Jahren? von 1997 http://www.softwaretest-umfrage.de (28.9.2011) http://systementwicklung-archiv.bibliothek.informatik.uni-koeln.de/archive/00000028/ (28.9.2011)

ist keine späte Phase umfasst mehr als die Ausführung der Testfälle Vorbereitende Aktivitäten: Teststrategie ist festzulegen was soll wie intensiv mit welchen Methoden getestet werden Planung der Testaktivitäten wer soll was, wann und wie lange testen Testziele festlegen was soll erreicht bzw. durch Tests nachgewiesen werden Review der Testbasis Kontrolle der Ausgangsdokumente für den Test Testumgebung bereitstellen frühzeitig damit beginnen, um Verzögerungen zu vermeiden Testfälle spezifizieren (bzw. Testideen festlegen) helfen auch bei der Implementierung als weitere Informationsquelle Alles kann parallel zu den Entwicklungsaktivitäten erfolgen! 14

W-Modell Anforderungsdefinition Vorbereitung Abnahmetest Durchführung Abnahmetest debug funktionaler Systementwurf technischer Systementwurf Komponentenspezifikation Vorbereitung Systemtest Vorbereitung Integrationstest Vorbereitung Komponententest Programmierung Durchführung Integrationstest Durchführung Komponententest Durchführung Systemtest vor der Programmierung sind alle Testfälle spezifiziert und ca. 75% der Testaktivitäten abgeschlossen debug debug Änderung debug Review, PREviews, Dokumente Testfälle, Testrahmen test, debug, ändern, re-test Spillner, Roßner, Winter, Linz: Praxiswissen Softwaretest - Testmanagement 3. überarbeitete und erweiterte Auflage, dpunkt, 2011, Kapitel 3.4 W-Modell 18 15

2011: Testprozess? Gibt es für die Durchführung der Testaktivitäten einen festgelegten Prozess? 16

2011: Testprozess? Gibt es für die Durchführung der Testaktivitäten einen festgelegten Prozess? }ca. 70% 17

ISTQB - Testprozess Ist eng verzahnt mit der Softwareentwicklung Ist jedoch ein eigenständiger Prozess Beginn Es ist ein verfeinerter Ablaufplan für die Tests jeder Teststufe notwendig Die Entwicklungsaufgabe»Test«ist in Arbeitsabschnitte aufzuteilen: Testplanung und Steuerung Testanalyse und twurf Testrealisierung und Testdurchführung Bewertung und Bericht Abschluss der Testaktivitäten ISTQB - International Software Testing Qualifications Board Planung und Analyse und Entwurf Realisierung und Durchführung Bewertung und Bericht Abschluss Ende Steuerung ISTQB - Lehrplan Certified Tester - Foundation Level 2011 18

Testprozess & W-Modell Steuerung Anforderungsdefinition funktionaler Systementwurf technischer Systementwurf Vorbereitung Abnahmetest Beginn Vorbereitung Systemtest Beginn Planung und Vorbereitung Integrationstest Beginn Planung und Planung und Analyse und Design Analyse und Design Analyse und Design Realisierung und Durchführung Steuerung Realisierung und Steuerung Durchführung Realisierung und Steuerung Durchführung Auswertung und Bericht Auswertung und Bericht Auswertung und Bericht Durchführung Systemtest Durchführung Integrationstest Abschluss Abschluss Abschluss Ende Durchführung Abnahmetest Ende Ende debug debug debug Komponentenspezifikation Vorbereitung Komponententest Beginn Planung und Analyse und Design Realisierung und Durchführung Durchführung Komponententest Auswertung und Bericht Abschluss Ende debug Programmierung Änderung

Kenntnisse über Testmethoden Welche Testmethoden sind Ihnen bekannt? Welche werden von Ihren Testern angewendet? Wissen sie, wann sie welche Methode sinnvoller Weise anwenden können? A Test Design Poster for Smarter Testing, Peter Zimmerer, EUROStar 2005 20

Kenntnisse über Testmethoden 21

2011: Einsatz von Black-Box Testverfahren Welche twurfsverfahren sind in der Praxis im Einsatz? 22

2011: Einsatz von Black-Box Testverfahren Welche twurfsverfahren sind in der Praxis im Einsatz? 23

2011: Einsatz von White-Box Testverfahren Welche twurfsverfahren sind in der Praxis im Einsatz? 24

- Vor- & Nachteile Vorgehen, durch Einsatz des Testprozesses und durch Auswahl von geeigneten Testmethoden Kriterien können vorab festgelegt (und deren Erreichen kontrolliert) werden, wenn das als ausreichend anzusehen ist Testaktivitäten können frühzeitig beginnen und parallel bearbeitet werden Spezifikation der Testfälle komplettiert die Anforderungen und die weiteren Spezifikationen Ausführung der Testfälle erst bei vorhandenem Programm(teil) Änderungen der Anforderungen wirken sich auf die bereits spezifizierten Testfälle aus In der Regel werden mehr Testfälle spezifiziert als später ausgeführt 25

Agile, leichtgewichtige Prozesse Manifesto for Agile Software Development Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan http://agilemanifesto.org/ (28.9.2011) 26

Was zeichnet agiles aus?» in agilen Projekten unterscheidet sich vom klassisches in erster Linie dadurch, dass dieselben Tests viel häufiger ausgeführt werden müssen. Schließlich wird das System immer wieder geändert (Refactoring) und viel häufiger ausgeliefert. Daher lohnt sich die Automatisierung der Tests in agilen Projekten viel früher als in klassischen Projekten. Aus dieser essenziellen Bedeutung des s in agilen Projekten hat sich eine spezielle Perspektive auf Tests entwickelt: In agilen Projekten werden Tests als ausführbare Spezifikationen verstanden. Folgerichtig werden Tests in agilen Projekten vor dem getesteten Code erstellt (Test First). Konsequenterweise werden die Product-Owner direkt in die Erstellung der Akzeptanztests einbezogen. Diese Akzeptanztests sind Bestandteil der fachlichen Anforderungen.«http://www.it-agile.de/agiles-testen.html (28.9.2011) 27

TDD - Test Driven Development Agile Softwareentwicklungsmethode für sehr kurze Entwicklungszyklen: Add a test Run all tests and see if the new one fails Write some code Run the automted tests and see them succeed Refactor code Repeat Rot - Grün - Refaktorisierung - Zyklus http://en.wikipedia.org/wiki/test-driven_development (28.9.2011) http://www.agiledata.org/essays/tdd.html (28.9.2011) 28

TDD Vorteile Im Mittelpunkt für den Entwickler stehen die Anforderungen, sie müssen verstanden sein, bevor programmiert wird Frühzeitiges findet Fehler frühzeitig im Entwicklungszyklus Kaum Redundanz durch Refaktorisierung Kein»unnötiger«Code Einschränkung:»Test-Driven Development is difficult to use in situations where full functional tests are required to determine success or failure. Examples of these are user interfaces, programs that work with databases, and some that depend on specific network configurations.«http://en.wikipedia.org/wiki/test-driven_development (28.9.2011) 29

TDD - in Wikipedia»Unit-Tests und mit ihnen getestete Units werden stets parallel entwickelt. Die eigentliche Programmierung erfolgt in kleinen und wiederholten Mikroiterationen. Eine solche Iteration, die nur wenige Minuten dauern sollte, hat drei Hauptteile: 1. Schreibe einen Test für das erwünschte fehlerfreie Verhalten, für schon bekannte Fehlschläge oder für das nächste Bröckelchen Funktionalität, das neu implementiert werden soll. Diese Tests werden vom bestehenden Programmcode erst einmal nicht erfüllt bzw. es gibt diesen noch gar nicht. 2. Ändere/schreibe diesen mit möglichst wenig Aufwand, bis nach dem anschließend angestoßenen Testdurchlauf alle Tests bestanden werden. 3. Räume dann im Code auf (Refactoring): Entferne Wiederholungen (Code- Duplizierung), abstrahiere wo nötig, richte ihn nach den verbindlichen Kodekonventionen aus etc. Natürlich wieder mit abschließendem. Ziel des Aufräumens ist es, den Code schlicht und verständlich zu machen. Diese drei Schritte werden so lange wiederholt, bis die inzwischen geschaffenen Tests alle bestanden werden und dem Entwickler keine sinnvollen weiteren mehr einfallen, die vielleicht noch scheitern könnten. Die so behandelte programmtechnische Einheit (Unit) wird dann als (vorerst) fertig angesehen.«http://de.wikipedia.org/wiki/testgetriebene_entwicklung (28.9.2011) 30

TDD Sichtweisen Design Methode:»Die Tests noch vor den Komponenten zu schreiben, die man eigentlich testen möchte, ist sehr markant für TDD. Dies wird als Test-First bezeichnet und darum ist TDD keine Test-, sondern eine Designstrategie. Denn wird der Test zuerst geschrieben, so wird die Schnittstelle der zu testenden Komponente bereits benutzt, bevor sie tatsächlich existiert. Der Entwickler bekommt frühestmöglich Feedback, ob das Design auch verwendbar sein wird.«die Testfälle sind eher Beispiele für die Nutzung der Schnittstelle, deshalb wird auch von Example Driven Development gesprochen http://www.it-agile.de/wasisttdd.html (28.9.2011) 31

Testgetriebene Entwicklung Stellt das an den Anfang... aber allzu oft ist der»grüne Balken«das Testziel in Kombination mit systematischer Herleitung der Testfälle eine sinnvolle Vorgehensweise... aber auch nicht für alle Projekte gleich gut geeignet! 32

- Vor- & Nachteile hat an Bedeutung gewonnen! ist keine späte Phase! Durch die Testfallerstellung werden Schnittstellen festgelegt Testfälle ersetzten die Spezifikation Testfälle werden nicht systematisch hergeleitet nachvollziehbare Endekriterien sind nicht gegeben Ein mit TDD erstelltes System ist kein»getestetes«system! 33

2011: agile Vorgehensweisen Welche agilen Vorgehensweisen werden in der Praxis genutzt? 34

2011: agile Vorgehensweisen Welche agilen Vorgehensweisen werden in der Praxis genutzt? 35

2011: Verantwortlich für die QS? Wer ist im Unternehmen für die QS verantwortlich? 36

2011: Verantwortlich für die QS? Wer ist im Unternehmen für die QS verantwortlich? 37

2011: Kundenbeteiligung Sind die Kunden bei den agilen Vorgehensweisen mit»im Boot«? 38

2011: Kundenbeteiligung Sind die Kunden bei den agilen Vorgehensweisen mit»im Boot«? 39

2011: Agile Praktiken und QS Welche Praktiken der agilen Vorgehensweisen haben eine hohe Bedeutung im Hinblick auf die Qualitätssicherung? 40

2011: Agile Praktiken und QS Welche Praktiken der agilen Vorgehensweisen haben eine hohe Bedeutung im Hinblick auf die Qualitätssicherung? 41

2011: Testautomatisierung Wie hoch ist der Grad der Automatisierung auf den Teststufen? 42

2011: Testautomatisierung Wie hoch ist der Grad der Automatisierung auf den Teststufen? 43

2011: Qualität der entwickelten Software Produzieren agile Projekte bessere Qualität? 44

2011: Qualität der entwickelten Software Produzieren agile Projekte bessere Qualität? 45

2011: www.softwaretest-umfrage.de Weitere Informationen zur 46

Konkretes Vorgehen Iterativ (kleine Vs oder besser kleine Ws für jede Iteration) Testautomatisierung von Anfang an vorsehen Vorgehen mit systematischer Herleitung der Testfälle verknüpfen Entwickler für das motivieren ggf. schulen frühzeitige Klärung, wann ausreichend genug getestet ist Passendes Vorgehen zum jeweiligen Projekt There is no silver bullet! 47

von Software systematisch oder agil und Prof. Dr.-Ing. A. Spillner Hochschule Bremen Flughafenallee 10 D - 28199 Bremen Ihre Fragen bitte Andreas.Spillner@hs-bremen.de www.informatik.hs-bremen.de/spillner