Projektmanagement aus der Praxis der Softwareentwicklung Vorlesung im Wintersemester 2013/14 an der Technischen Universität Dortmund 4. Vorlesung am 24.11.2014: Qualitäts- und Risikomanagement Dr. Thomas Kunstmann / Oliver Hakim 1 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Kurzprofil Oliver Hakim Oliver Hakim Lead Business Consultant Ausbildung: Diplom-Wirtschaftsinformatiker Geburtsjahr: 1980 Daten und Fakten Beruflicher Werdegang • 2005 – 2012 sd&m / Capgemini, Consultant • 2012 – heute msg systems ag, Business Consultant 2 Methodische Schwerpunkte • Requirements Engineering • Fachliche Spezifikation • Testmanagement Fachliche Schwerpunkte • Logistik • Handel Oliver Hakim © msg systems ag, 24.11.2014 AGENDA 1. Qualitätsmanagement 2. Testmanagement 3. Risikomanagement 3 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 AGENDA 1. Qualitätsmanagement 2. Testmanagement 3. Risikomanagement 4 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Was ist Qualität ? … z.B. bei einem Auto? „una bella macchina“ Sicher und zuverlässig Umfangreiche Funktionalität Qualität ist „subjektiv“ individuelle Anforderungen! abhängig von Kultur, Branche, Vorgaben, Bedürfnisse, Erfahrung, Interessen… Produkt- / Projekt- & Prozessqualität Qualität ist das Ausmaß, in dem die Eigenschaften denen der Anforderungen genügt Definierte und erwartete Anforderungen beachten ! Anforderungen werden im Lastenheft, Grobkonzept oder Anforderungskatalog definiert. 5 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 PDCA-Zyklus – Deming-Kreis Produkte werden in Prozessen erstellt Prozesse können optimiert werden. • Planung der Verbesserungsmöglichkeit Plan • Messmetriken festlegen • Lessons learned • Verbesserungen übernehmen Act • Ergebnisse Vergleichen (Soll-Ist-Vergleich) Do • Durchführen • Dokumentation Check • Ursachen ermitteln Der PDCA-Zyklus zur kontinuierlichen Verbesserung der Qualität durch Fehlersuche und Problemanalyse 6 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Qualitätsmanagement Qualitätsmanagement (QM) • Leiten und Lenken einer (Projekt-)Organisation bezüglich Qualitätskriterien. Qualitätsmanagement-Teilaufgaben Qualitätsplanung Qualitätslenkung Qualitätssicherung Qualitätsverbesserung • Bestimmen der Qualitätsmerkmale (Anforderungen in Pflichtenheft, Normen) • Q-Plan umsetzen • Überwachen der Wirksamkeit umgesetzter Maßnahmen • Erfahrungssicherung • Steuerung durch Soll-Ist-Analyse • Verbesserung des Vorgehens • Projektmanagement-Audits • Messgrößen definieren • Ursachen finden • Projektreviews • Vorgehen definieren in PSP, Meilensteine mit Quality Gates • Maßnahmen initiieren • Projektaudits • Verantwortlichkeiten 7 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Qualitätsmanagement adressiert alle Phasen und Teile des Projektes Produkt Anforderungen: Kunde, Branche, Normen, Gesetze Vermeidung von Risiken und Fehler Produktrealisierungs-Prozesse Produktentwicklungsphasen Projektmanagement-Prozesse Anforderungen: Kunde, Branche, Normen, Gesetze… Zufriedenheit der Stakeholder Lieferanten-Management Projektteam Qualifikation & Kompetenz (PM, Fach & Methode) Sozialkompetenz 8 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Was versteht man unter Softwarequalität? • Definition der Softwarequalität: „Die Gesamtheit der Merkmale und Merkmalswerte eines Software-Produkts, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen.“ [ISO 9126] • Ansätze beim Qualitätsmanagement: Produktqualität Sicherstellung der Produktqualität durch Vorgabe und Überprüfung definierter Qualitätsmerkmale (bspw. ISO 9126) Prozessqualität Sicherstellung der Qualität des Entstehungsprozesses (bspw. CMMI) 9 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Konstruktive und analytische Qualitätsmaßnahmen Konstruktive QSMaßnahmen Analytische QSMaßnahmen 10 A priori Einschränkung der Variabilität in der Systementwicklung, um gewisse Fehler nicht auftreten zu lassen und damit ein Maß an Qualität per se zu erreichen. Ex post Datenerhebung, um Ist- und Soll-Zustand zu vergleichen und so den Grad der erreichten Qualität im Nachhinein festzustellen. Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Verfahren der konstruktiven Qualitätssicherung Konstruktive Qualitätssicherung Methoden Technische Maßnahmen Sprachen Werkzeuge Richtlinien Organisatorische Maßnahmen Standards Checklisten 11 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Verfahren der analytischen Qualitätssicherung Inspektion und Reviews Statische Prüfung (Dokument prüfen) Statische Codeanalyse Formale Verifikation Analytische Qualitätssicherung Symbolische Ausführung Äquivalenzklassen Black-Box Grenzwertanalyse Zustandsbezogener Test Tests Anweisungstest Dynamische Prüfung White-Box Zweigtest Dynamische Analyse 12 Memory Leak Analyse Performancemessung Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Softwarequalität umfasst mehr als nur die Beseitigung von Fehlern Qualitätsmerkmale nach ISO 9126 (1/2) Funktionalität • • • • Umfasst Charakteristika, welche die geforderten Funktionalitäten des Systems beschreiben Oft durch Ein-/Ausgabeverhalten spezifiziert Mit Tests wird spezifiziertes Ein-/Ausgabeverhalten geprüft Teilmerkmale: • Angemessenheit • Richtigkeit • Interoperabilität • Ordnungsmäßigkeit Zuverlässigkeit • Fähigkeit eines Systems, sein Leistungsniveau unter festgelegten Bedingungen über einen definierten Zeitraum zu halten. • Teilmerkmale: • Reife • Fehlertoleranz • Wiederherstellbarkeit Benutzbarkeit • Teilmerkmale: • Verständlichkeit • Erlernbarkeit • Bedienbarkeit • Wichtig für die Akzeptanz der Systeme • Benutzbarkeit ist abhängig von Benutzergruppe • Prüfung im Rahmen von nicht-funktionalen Tests 13 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Softwarequalität umfasst mehr als nur die Beseitigung von Fehlern Qualitätsmerkmale nach ISO 9126 (2/2) Effizienz • Teilmerkmale: • Zeitverhalten • Verbrauchverhalten • Benötigte Zeit und Verbrauch an Betriebsmitteln für die Erfüllung einer Aufgabe • Messbare Ergebnisse lassen sich mit Performancetest (nicht-funktionale Tests) ermitteln Änderbarkeit und Übertragbarkeit • Wichtige Kriterien, da Softwaresysteme oft über längeren Zeitraum eingesetzt werden. • Änderbarkeit umfasst folgende Teilmerkmale: • Analysierbarkeit • Modifizierbarkeit • Stabilität • Prüfbarkeit • Übertragbarkeit umfasst folgende Teilmerkmale: • Anpassbarkeit • Installierbarkeit • Konformität • Austauschbarkeit • Aspekte lassen sich häufig nur durch statische Analysen prüfen 14 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 AGENDA 1. Qualitätsmanagement 2. Testmanagement 3. Risikomanagement 15 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Zum Begriff des Testens Testen verfolgt mehrere Ziele: • Identifizierung von Defekten • Bestimmung der Qualität des Produkts • Vertrauen in das Produkt erhöhen • Analyse, um Fehlerwirkungen vorzubeugen Steigerung der Softwarequalität natürlich nur, wenn gefundene Fehler behoben werden ;) Aber: • Test ist eine stichprobenartige Prüfung Test ist nur ein Bestandteil umfangreicher Qualitätsmaßnahmen Fehlerfreiheit ist durch Testen nicht erreichbar Kein umfangreiches Softwaresystem ist fehlerfrei 16 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Fundamentaler Testprozess (in Anlehnung an ISTQB) Beginn • Allgemeine Softwareentwicklungsmodelle ordnen Test in Entwicklungsablauf ein und betrachten oft nur die Testdurchführung Planung und Steuerung Analyse und Design • Fundamentaler Testprozess: Generischer Ablaufplan Anpassung an Gegebenheiten und Erfordernisse im Projekt notwendig. (Rollen und Dokumente sind nicht beschrieben.) Verfeinerter Ablaufplan für das Testen. Aufgaben im Prozess dürfen sich überschneiden und auch gleichzeitig durchgeführt werden. Realisierung und Durchführung Auswertung und Bericht Abschluss Ende 17 Projektmanagement - Qualitäts- und Risikomanagement Spillner, A., Linz, T.: Basiswissen Softwaretest Aus- und Weiterbildung zum Certified Tester dpunkt, 4. Auflage © msg systems ag, 24.11.2014 Testen im Softwarelebenszyklus – Beispiel V-Modell 18 • Grundidee V-Modell Entwicklung und Test sind zueinander korrespondierende, gleichberechtigte Tätigkeiten. • Grundidee und daraus entstehende Prinzipien lassen sich auf andere Vorgehensmodelle übertragen. Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Überblick Teststufen Komponententest Testbasis Tester Teststrategie Testziele Integrationstest Abnahmetest • Komponentenspezifische Anforderungen • Softwaredesign • Systemdesign • Schnittstellenübergreifende Workflows, UCs • Dokumente auf Systemebene, Spezifikation, Anforderungen ... • Dokumente, die System aus Anwendersicht beschreiben • Entwickler • Tester • Tester • Kunde • White-Box • Black-Box • Black-Box • Black-Box z.B. • Funktionalität • Robustheit • Effizienz z.B. • Schnittstellenfehler • Wechselwirkungen z.B. • Erfüllt System die Anforderungen (funktional vs. nicht-funktional) z.B. • Vorgaben Vertrag • Akzeptanz Nutzer u. Systembetreiber Komponententest und Integrationstest erfolgen nicht streng sequentiell 19 Systemtest Systemtest und Abnahmetest fallen typischerweise in die letzten Projektwochen Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Frühes Testen ist wichtig für Projekterfolg • • Frühes Testen verringert die Projektrisiken Frühes Testen macht Entwicklung der Produktqualität transparent Implementierung Komponententest Stufenweiser Integrationstest Systemtest Abnahmetest t Bereit zum Systemtest 20 Bereit zur Abnahme Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Teststufen - Komponententest • Komponententest soll die korrekte Funktionalität der einzelnen Systemkomponenten überprüfen. • Schwerpunkt ist die isolierte Prüfung der einzelnen Komponenten. • Komponententest wird meist durch den Entwickler durchgeführt vor der Integration Test der Komponenten 21 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Teststufen - Integrationstest • Integrationstest soll das fehlerfreie Zusammenwirken der Systemkomponenten überprüfen. • Die einzeln getesteten Komponenten werden schrittweise integriert und das Zusammenwirken getestet. • Schwerpunkt ist die Prüfung des Zusammenwirken der Komponenten. Dazu müssen die Schnittstellen in möglichst vielen Kombinationen ausgeführt werden. Test der Schnittstellen 22 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Teststufen - Systemtest • Systemtest ist der abschließende Test in einer realitätsnahen Umgebung (ohne den Auftraggeber), u.a. Funktionstest gegen die Spezifikation Massentest, Performancetest, Lasttest Usability Test • Schwerpunkt der Prüfung ist das Verhalten des Gesamtsystems Test des Gesamtsystems 23 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Teststufen - Abnahmetest • Abnahmetest wird in der Einsatzumgebung des Auftraggebers mit realen Daten unter Mitwirkung des Auftraggebers durchgeführt Generierung und Installation des Systems Testfälle für reale Geschäftsvorfälle Zufällige Testfälle Prüfung Dokumentation • Abnahmetest ist die Grundlage für die Abnahme durch den Auftraggeber. 24 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Grundsätze des Softwaretestens (nach ISTQB) 1. Testen zeigt die Anwesenheit von Fehlern. 2. Vollständiges Testen ist nicht möglich. 3. Mit dem Testen frühzeitig beginnen. 4. Häufung von Fehlern. 5. Zunehmende Testresistenz (Pesticide paradox). 6. Testen ist abhängig vom Umfeld. 7. Trugschluss: Keine Fehler bedeutet ein brauchbares System. 25 Projektmanagement - Qualitäts- und Risikomanagement Spillner, A., Linz, T.: Basiswissen Softwaretest Aus- und Weiterbildung zum Certified Tester dpunkt, 4. Auflage © msg systems ag, 24.11.2014 Testarten zur Überprüfung von Qualitätszielen Fehlertest Interoperabilitätstest Oberflächentest Funktionaler Test Datenkonsistenztest Installationstest Testarten Wiederinbetriebnahmetest Sicherheitstest NichtFunktionaler Test Stresstest Lasttest Performancetest 26 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Regressionstest • Erneuter Test eines bereits getesteten Programms bzw. einer Teilfunktionalität nach deren Modifikation, mit dem Ziel nachzuweisen, dass durch die vorgenommenen Änderungen keine Fehler eingebaut oder (bisher maskierte Fehler) freigelegt wurden. • Regressionstest wird durchgeführt, wenn die Software oder ihre Umgebung verändert wurde. • Regressionstest ist grundsätzlich Bestandteil jeder Teststufe. • Beim Regressionstest müssen meist große Mengen von Testfällen in kurzer Zeit ausgeführt werden, daher sollte der Regressionstest aus Effizienzgründen automatisiert werden. 27 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Erstellung von Testfällen und Testdaten 28 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Erstellung von Testfällen • Testfälle werden benötigt um IT-Systeme gegenüber den Anforderungen zu prüfen Test der spezifizierten Funktionalität Test nicht funktionaler Anforderungen Prüfung des Systemverhaltens in Grenzsituationen • Testfälle sollten parallel zu Analyse und Entwurf erstellt werden, um eine zusätzliche Qualitätssicherung der Spezifikation zu erreichen. • Testfälle müssen zu Beginn der Tests bereits verfügbar sein, nicht erst erstellt werden!! • Testfälle sind ein wichtiges Entwicklungsergebnis und müssen dokumentiert werden, z.B. als Nachweis für spätere Zertifizierungen. • Testfälle müssen wiederverwendbar sein für spätere Releases und Regressionstest. 29 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Risikobasiertes Testen • Die vollständige Abdeckung aller Ein/Ausgabe-Möglichkeiten für ein IT-System ist i.d.R. nicht möglich. Damit enthält jedes IT-System Restrisiken für Fehler. • Unter Beachtung der Wirtschaftlichkeit und des möglichen Schadens werden Testfälle aus der theoretisch möglichen Kombinationsmenge ausgewählt Bei administrativen Systemen, z. B. bei Rechnungsstellung werden Testfälle nach ihrer Wichtigkeit für den Geschäftsablauf ausgewählt. Bei technischen Systemen, z.B. Steuerung einer Werkzeugmaschine werden Testfälle nach den Qualitätsanforderungen des Produktionsprozess ausgewählt. Systeme mit Gefahren für Leib und Leben, z.B. Flugzeugsteuerung und sehr hohe Sachwerte, z.B. Raumfahrt werden sehr intensiv getestet um Risiken nachweisbar zu minimieren. 30 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Betrachtungsweise beim Test • Blackbox-Test Der Blackbox-Test ist ein reiner Ein-/Ausgabe-Test. Die Testdaten werden aus der Spezifikation abgeleitet. Es wird nicht nur mit zulässigen Eingabedaten getestet, sondern auch mit möglichen fehlerhaften Daten. Es werden zulässige und unzulässige Transaktionen getestet, um das Systemverhalten zur überprüfen. • Whitebox-Test Der Whitebox-Test ist ein logisch-orientierter Test unter Berücksichtigung der Abläufe im Source-Code. Die Testdaten werden mit Kenntnis der Programmlogik definiert. Angestrebt wird eine bestimmte Abdeckung der möglichen Pfade im Source-Code. 31 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Testfallerstellung mit Äquivalenzklassen und Grenzwerten • Äquivalenzklasse Sammlung von Ein/Ausgabewerten, für die ein System das gleiche Fehlerverhalten aufweist. Für die Testabdeckung muss nur ein Testfall aus der Äquivalenzklasse ausgeführt werden. Bei diesem Prinzip der Ableitung von Testfällen wird untersucht, welche Klassen von möglichen Eingabewerten zu einer ähnlichen Art der Verarbeitung führen. • Grenzwertanalyse Die Grenzwertanalyse ist eine spezielle Form der Äquivalenzklassenanalyse. Die Werte, die sich auf und in der Umgebung der Grenzen der Äquivalenzklassen befinden, nennt man Grenzwerte. 32 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Beispiel für Äquivalenzklassen • • • In der Spezifikation eines Online-Banking-Systems wird gefordert, dass nur Beträge von 0,01 bis 500 € eingegeben werden dürfen. Für Tests sollte es daher ausreichen, drei Äquivalenzklassen zu bilden (eine gültige und zwei ungültige Äquivalenzklassen): Werte von 0,01 bis und mit 500,00 € (gültig) Werte kleiner gleich null (ungültig) Werte größer als 500,00 € (ungültig) Jede Überweisung im Online-Banking-System muss durch die Eingabe einer TAN autorisiert werden. Analog zur ersten Äquivalenzklasse können hier für die Eingabe der TAN vier Äquivalenzklassen gebildet werden: Eingabe einer korrekten TAN Eingabe einer falschen TAN Eingabe zu kurzer TAN Eingabe zu langer TAN Auf Basis der beiden Äquivalenzklassen werden die nachfolgenden Testfälle definiert: Gültiger Wert (z. B. 123,45 €) und korrekte TAN (ausgeführt, weil alles korrekt ist.) Gültiger Wert (z. B. 123,45 €) und falsche TAN (fehlgeschlagen, weil falsche TAN.) Ungültiger Wert (z. B. 600,00 €) und korrekte TAN (fehlgeschlagen, weil ungültiger Wert.) Gültiger Wert (z. B. 123,45 €) und zu kurze TAN (fehlgeschlagen, weil TAN zu kurz ist.) Gültiger Werts (z. B. 123,45 €) und zu lange TAN (fehlgeschlagen, weil TAN zu lang ist.) (/http://de.wikipedia.org/wiki/Dynamisches_Software-Testverfahren) 33 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Beispiel für Grenzwerte • Für die Prüfung der Grenzwerte werden nicht beliebige Werte getestet, sondern nur Randwerte oder Grenzwerte. Im Beispiel wären dies die Werte 0,00 € (ungültige Eingabe) 0,01 € (gültige Eingabe) 500,00 € (gültige Eingabe) 500,01 € (ungültige Eingabe) (/http://de.wikipedia.org/wiki/Dynamisches_Software-Testverfahren) 34 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Beschreibung von Testfällen Der Testfall wird mit Ein/Ausgabedaten beschrieben und kann manuell ausgeführt und dokumentiert werden 35 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Werkzeuge zur Unterstützung und Automatisierung 36 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Motivation für Testautomatisierung • Manueller Test ist aufwändig und fehleranfällig, da die Konzentrationsfähigkeit von Testern begrenzt ist. • Bei größeren Anwendungssystemen werden regelmäßig neue Releases geliefert, die umfassend getestet werden müssen. Für den Regressionstest steht meist nur wenig Zeit zur Verfügung. • Manche Architekturschichten haben keine Nutzeroberfläche und können daher nicht manuell getestet werden. • Bei modernen Entwicklungsprozessen wird hochgradig iterativ gearbeitet. Im Rahmen von Nightly Build und Continuous Integration müssen Testfälle täglich wiederholt werden. 37 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Werkzeugtypen zur Unterstützung und Automatisierung von Tests (1/2) Werkzeuge für Management, Steuerung von Tests • • • • Erfassung, Verwaltung, Überwachung von Testfällen Verwaltung Problem-, Fehlermeldungen Verwaltung von Anforderungen (Requirements) Konfigurationsmanagement Werkzeuge zur Testspezifikation • Verwaltung Vor-/Nachbedingungen von Testfällen • Testdatengeneratoren (datenbankbasiert, spezifikationsbasiert, …) Werkzeuge für statische Tests • Werkzeuge zur Reviewunterstützung • Statische Analysen (z.B. zykomatische Anzahl) • Model Checker 38 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Werkzeugtypen zur Unterstützung und Automatisierung von Tests (2/2) Werkzeuge für dynamischen Tests • • • • Testtreiber, Testrahmen Simulatoren, Testroboter (z.B. Capture-and-Replay-Tools) Komparatoren Überdeckungsanalyse, Dynamische Analyse Werkzeuge für nicht-funktionale Tests • Last-/Performancetests • Monitore 39 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Beispiel Testmanagement: HP Quality Center • • • 40 HP ist führendes Tool im Kontext Testmanagement (Forrester Wave Studie) Browserbasiert Möglichkeit zur Automatisierung von Tests mit HP Quick Test Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Werkzeuge für statische Tests Beispiele Checkstyle • Prüfung von Coding Conventions in Java • Projektkonfiguration notwendig • Integration in Eclipse möglich FindBugs • Durchsucht Java-Programmen nach Fehlermuster • Fehlermuster deuten oft auf tatsächliche Fehler hin. • Filterung bei größeren Projekten notwendig: Anzahl der angezeigten Warnungen sehr groß Sonograph for Java: • Hinterlegung von Architekturmodellen für Projekt • Identifikation von Architektur-oder Abhängigkeitsverletzungen • Identifikation zyklischer Abhängigkeiten 41 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Werkzeuge für die Testautomatisierung Beispiel JUnit • Framework zum Testen von Java-Programmen • Insbesondere zur Erstellung von Testtreibern für automatisierte Unit-Tests (Klassen oder Methode) Architekturüberblick aus „JUnit A Cook's Tour“ 42 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Test erben von Oberklasse TestCase Einfacher JUnit-Testfall public class StringTest extends TestCase { Initialisierung des Testobjekts protected void setUp(…) protected void tearDown(…) Zurücksetzen des Testobjekts nach Ausführung des Tests public void testSimpleAdd() { String s1 = new String(“abcd”); String s2 = new String(“abcd”); Testobjekt wird geprüft mit assert-Methoden von JUnit assertTrue(“Strings not equal”, s1.equals(s2)); } • • 43 } In Projekten wird Testframework aufgesetzt, das die Junit-TestCase-Klasse spezialisiert. Initialisierung der Datenbank, Komponenten, … wird einheitlich für alle Tests gekapselt. • Nur spezifische Initialisierungen in konkreten Tests enthalten. Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 JUnit: Integration in Eclipse 44 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Vorteile, Nachteile JUnit 45 Vorteile Nachteile • Einfache Erstellung von Testtreibern • Tests können automatisiert werden • Integration in IDEs • Regelmäßig Durchführung der Tests möglich (nightly builds) • Projektspezifische Anpassungen möglich • Refactorings wirken sich auch auf Testtreiber aus • Keine Trennung von Testcode und Testdaten in Testtreibern • Abhängige Komponenten müssen mit eingebunden werden in Test • GUI-Tests nicht möglich Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Werkzeuge für die Testautomatisierung - Beispiel Selenium • Testframework für Webanwendungen • Aufzeichnung manuell durchgeführter Bedienschritte Capture-and-Replay-Tool • Bedienschritte werden als Testskript gespeichert. • Beliebige Wiederholung der aufgezeichneten Skripte möglich • Testskripte können als HTML-Tabellen abgelegt werden • Selenium basiert rein auf HTML und JavaScript • Selenium-IDE als Firefox-Addon verfügbar • http://seleniumhq.org/ 46 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Vorteile, Nachteile Selenium 47 Vorteile Nachteile • Einfache Erstellung von GUITesttreibern • Gut geeignet für Regressionstests • Vernünftiges Reporting durchgeführter Testfälle • Generierung von Testskripten möglich • Keine Trennung von Testcode und Testdaten in Testtreibern • Empfindlich ggü. Änderungen an GUI • Kein Refactoring der Testfälle möglich • Nachbearbeitung der Skripte notwendig • Für langlebigen Einsatz ist angemessene Architektur notwendig (Modularisierung Testfälle, …) Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Chancen und Risiken durch automatisiertes Testen 48 Chancen Risiken • Zeitdruck und Risiko vermindern sich in späten Projektphasen • Kurzfristige Absicherung von Änderungen während des Produktivbetriebs • Absicherung von Seiteneffekten • Kostenersparnis • Weniger stupider Test • Zu wenig (Test-)Erfahrung im Team • Ungeeignetes Werkzeug • Sammlung von Testwerkzeugen passt nicht zusammen • Testfälle sind nicht wartbar oder automatisierbar • Pflegeaufwände für Testfälle ist hoch Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Automating chaos gives faster chaos* • Nicht als erstes über Werkzeuge zur Automatisierung der Testdurchführung nachdenken • Nur wenn ein systematischer Testprozess definiert, eingeführt und gelebt wird, kann die Produktivität durch Tests zur Automatisierung erhöht werden. • Reihenfolge zur Einführung von Werkzeugen 1. 2. 3. 4. 5. Fehlermanagement Konfigurationsmanagement Testplanung Testdurchführung Testspezifikation *Fewster, M., Graham, D.: Software Automation, Effective use of test execution tools 49 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Abhängig von der Anzahl Wiederholungen der Testdurchführung lohnt sich eine Testautomatisierung Kosten Manuelle Tests Kosten Wartung TF Automatisierte Tests Kosten Implemen tierung TF Kosten Testspezifikation Anzahl Wiederholungen Testfälle • • Ab ca. 5 Wiederholungen lohnt sich eine Testautomatisierung Große Projekte laufen oft über mehrere Jahre mit mehreren Releases Früh über Testautomatisierung nachdenken 50 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Eine gute Testqualität ist Voraussetzung für die Beurteilung der Softwarequalität • Die Anzahl der entdeckten Fehler für • Testqualität hoch Man denkt, man ist hier… niedrig • sich alleine genommen, ist wertlos als Maß für die Qualität der Software. Ist die Testqualität nicht hoch genug, so werden wenige Fehler entdeckt und damit implizit die Software als gut eingeschätzt. Zur Bewertung der Qualität von Software muss die Qualität des Testens betrachtet werden. niedrig …dabei ist man hier! Viele Fehler Wenige Fehler Wenige Fehler Wenige Fehler Softwarequalität hoch Quelle: D. Graham, M. Fewster: Testing Essentials – Testing Principles. TEST Congress, London 2000. Erst eine gute Testqualität erlaubt zusammen mit der Anzahl der entdeckten Fehler Aussagen über die Softwarequalität. 51 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 80/20 Regel Mit 20% Testabdeckung können 80% der Fehler gefunden werden? In 20% der Anwendung stecken 80% der Fehler? Nutzen Pareto-Prinzip 20% der Fehler verursachen 80% der Kosten? Aufwand Erkenntnis: Testaufwände auf kritische Komponenten fokussieren. 52 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 DDT 53 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Literatur A. Spillner, T Linz: Basiswissen Softwaretest: Aus- und Weiterbildung zum Certified Tester - Foundation Level nach ISTQB-Standard) • • • • • Guter Überblick über die Grundlagen des Softwaretestens. Vorstellung statischer und dynamischer Testverfahren, Testwerkzeuge Testen im Softwarelebenszyklus Aufgaben des Testmanagements Konform zum zum Certified Tester - Foundation Level F. Westphal: Testgetriebene Entwicklung mit JUnit & FIT: Wie Software änderbar bleibt • Einführung in JUnit und FIT! • Vorgehensweise beim Test Driven Development Webseiten • • • • • 54 http://www.opensourcetesting.org/ - Open Source Tools for Software Testing Professionals http://java-source.net/open-source/testing-tools - Üb erblick über Open-Source-Java-Testtools http://www.testbench.info/ - Testwerkzeug (Ebene Testmanagement) http://www.imbus.de/downloads/praxiswissen-softwaretest/ - Review-Formulare, Test-Tool-Requirements, … http://junit.sourceforge.net/doc/cookstour/cookstour.htm - Überblick über JUnit Projektmanagement - Qualitätsund Risikomanagement Projektmanagement - Qualitätsund Risikomanagement © msg msg systems systems ag, ag, 24.11.2014 2.12.2013 © AGENDA 1. Qualitätsmanagement 2. Testmanagement 3. Risikomanagement 55 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Thesen 56 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Was sind Risiken? Definition Risiko: „Ein Risiko beschreibt die Möglichkeit des Eintretens eines nicht geplanten Ereignisses bzw. des Ausbleibens eines geplanten Ereignisses mit negativen Folgen für das Projekt.“ 57 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Wie werden Risiken identifiziert? Durch frühzeitige Analyse des Projektumfeldes lassen sich Chancen und Risiken identifizieren. natürlich ökonomisch soziokulturell Sachlich sozial Chancen technisch rechtlichpolitisch Projektumfeldfaktoren Risiken mittelbar 58 unmittelbar Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Risiken managen Ein guter Projektleiter managt Risiken, ein schlechter Projektleiter managt Probleme. Risiken analysieren R1 hoch mittel Maßnahmen planen Maßnahmen kontrollieren R4 R3 R2 R5 niedrig Eintrittswahrscheinlichkeit Risiken identifizieren R6 niedrig mittel hoch Schadenshöhe 59 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Maßnahmen für Risiken einplanen • Für jedes Risiko sollte man sich Gedanken machen, welche Maßnahmen sinnvoll mit eingeplant werden können, um die Eintrittswahrscheinlichkeit (ETW in %) zu reduzieren (präventive Maßnahmen) • • Vermeiden von Risiken Vermindern der Eintrittswahrscheinlichkeit durch geeignete Maßnahmen • • Begrenzen des Schadens, falls das Risiko eintritt Verlagern des Schadens, wenn das Risiko eintritt (z.B. Versicherung) • Akzeptieren, dass das Risiko mit berechneter Schadenshöhe existiert und darüber berichten die Schadenshöhe (SH in €) zu reduzieren (korrektive Maßnahmen) Selbstragende Maßnahmen • Richtwert für Umsetzen der Maßnahmen: wenn Kosten der Maßnahme und neuer Risikowert (RW = ETW * SH) geringer sind als der alte Risikowert wenn Mensch, Umwelt und Unternehmen gefährdet werden ! Die Maßnahmen werden als Arbeitspakete definiert, geschätzt und im PSP integriert! 60 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Beispiellösung: Risiken erfassen (1 von 3) 61 Nr. Risikobeschreibung / Wirkung Ursache Auswirkung Klassifizierung 1 10 Netzwerkdrucker in der Hauptniederlassung können nicht in das neue Netzwerk integriert werden, da sie die Sicherheitsprotokolle nicht verstehen. Die vorhandenen Netzwerkdrucker sind zum Teil schon sehr alt. Die Kosten für neue Drucker überschreiten das Budget Technisches Risiko, Wirtschaftliches Risiko 2 Die 25 Thin-Clients des GB X können für die gefundene Lösung nicht konfiguriert werden. Das Betriebssystem auf den Thin-Clients ist ein Embedded Windows mit eingeschränkter Funktionalität. Windows XP Embedded bietet weniger Funktionalität als die neuste Version des Betriebssystems, benötigt aber auch weniger Speicher. Kein Netzzugang und somit kompletter Produktivausfall von drei Tagen (Versandzeit neuer Hardware). Die Hardware (4GB Speicher) und das Betriebssystem (Windows 7 Embedded) der Thin-Clients muss dann aufgerüstet werden. Wirtschaftliches Risiko 3 Fremdrechner mittels Hackertools im Netz Es gibt keine 100% ige Sicherheit, wenn Gäste oder Mitarbeiter Hackertools einsetzen. Fremde (ggf. private) Rechner gelangen in das abgesicherte Netzwerk, es droht ein Datenverlust. Wirtschaftliches Risiko Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Beispiellösung: Risiken quantifizieren (2 von 3) 62 Nr. Risiko ETW in % SH in € RW in € 1 Inkompatible Netzwerkdrucker 30% 50.000 € 15.000 € 2 25 Thin-Clients des GB X aufrüsten 30% 53.688 € 16.107 € 3 Fremdrechner mit Hackertools im Netzwerk 2% 1.500.000 € 30.000 € Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Beispiellösung: Maßnahmen für Risiken planen (3 von 3) 63 Nr. Risiko Maßnahme Kosten ETW neu SH neu RW neu Umsetzen 1 Inkompatible Netzwerkdrucker Korrektiv-Verlagern: das Thema Netzwerkdrucker kann aus dem Projekt-Scope entfernt werden, da ein Projekt zur Modernisierung der Drucker vorgesehen ist. Hierzu müssen problematische Drucker ermittelt und für die Planung des Drucker-Projektes kommuniziert werden. 680€ 30% 0€ 0€ Ja 2 25 ThinClients des GB X aufrüsten Präventiv-Vermeiden: Alle ThinClients werden mit Speicher erweitert und bekommen das neuste Betriebssystem aufgespielt 14.688 € 0% 53.688 € 0€ Ja 3 Fremdrechner mit Hackertools im Netzwerk Akzeptiert: Es existiert hier keine 100% Absicherung, vor allem nicht gegen „Innen-Täter“ (Mitarbeiter). 0€ 2% 1.500.000 € 30.000 € - Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Risikomanagement ist kritisch für den Projekterfolg Risikomanagement… • ermöglicht es, Risiken aggressiv einzugehen • minimiert die Kosten für Schutz- & Notfallmaßnahmen • Ermöglicht es Risiken objektiv zu beurteilen und angelernten Verhaltensweisen (die persönliche Risikowahrnehmungsschwelle) entgegenzuwirken • ist Teil eines Frühwarnsystems (PM muss Weitblick haben) • verhindert eine unbemerkte Verlagerung der Risikoverantwortung • bereitet Projekten den Weg zum Erfolg – ohne Risikomanagement haben Projekte keine Möglichkeit, zwischen gewagten Zielen und vernünftigen Erwartungen zu unterscheiden 64 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Risikomanagement Maßnahmen Risiken 65 • Kaufmännische Risiken • Technische Risiken • Terminrisiken • Ressourcenrisiken • Politische Risiken • Vermeidung • Verminderung • Begrenzung • Verlagerung • Akzeptanz Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Instrumente und Hilfsmittel in PROFI/PRIMA Risikocheckliste für Angebotserstellung „PM_SchaetzenUndRisiko_msg_tmpl.xls“ Initiale Risikobetrachtung RisikoIdentifikation PROFI-Vorgehen für Individualsoftwareentwicklung RisikoBehandlung PROFI • Risikocheckliste QM • Risiko Kurzanalyse • Risikoaudits RM Risikoanalyse Risikomanagementplan „PM_Risikomanagementplan_msg_tmpl.xls“ 66 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Risikoidentifikation im Projekt Risikocheckliste QM: Risikokurzanalyse für Festpreisprojekte > 500.000 € Probleme aus früheren Projekten Persönliche Erfahrungen Identifizierte Risiken QM: Risikoaudits Weitere Taxonomien (z.B. vom SEI*) Quelle: www.sei.cmu.edu Suche nach „Taxonomy-Based Risk Identification“, Report No. SEI.93-TR-006 67 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Risikocheckliste Relatives Angebotsrisiko Risikoart Gesamtrisiko Projekt-Ziele und -Inhalte Bes.Anford. an Lieferg./Leistg. Erfahrungen im Projektteam MA-Einsatz und Auslastung Termine Planung Verfolgung und Lenkung Modelle/Methoden/Tools Finanzielle Risiken Vertragl. Regelung Auslandsgeschäft 68 Verfolgung und Lenkung Modelle/Method en/Tools Finanzielle Risiken Vertragl. Regelung Auslandsgeschä ft Planung Termine Projekt-Ziele und -Inhalte Bes.Anford. an Lieferg./Leistg. Erfahrungen im Projektteam MA-Einsatz und Auslastung Gesamtrisiko 100% 80% 60% 40% 20% 0% Prozentualer Anteil max Risikozahl 29% 24% 33% 71% 22% 24% 32% 0% 0% 15% 24% 0% 339 62 36 42 36 17 57 15 12 20 37 5 99 15 12 30 8 4 18 0 0 3 9 0 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Risikomanagementplan Risikomanagementplan Ist das zentrale Dokument des Risikomanagement und enthält ProjektZiele 69 • Beschreibung und Bewertung aller Risiken • die Maßnahmen zur Risikominderung • Hilfsmittel: o Checkliste, o Risikoportfolio, o Risikotrend Projektmanagement - Qualitäts- und Risikomanagement Detailplan, Statusbericht © msg systems ag, 24.11.2014 hoch Risikomanagementplan A - Vertrag B - Kunde 5 76 H - Umsetzung Schadenskategorie G - Anforderungen 70 8 D - Projektteam E - Lieferanten FProjektmanangement niedrig hoch Auswirkung 6 60 5 50 4 40 3 30 2 20 1 10 0 0 Projektmanagement - Qualitäts- und Risikomanagement Relativer Risikowert I - Einführung 4 9 niedrig C - Management (msg) Diagrammtitel Wahrscheinlichkeit Wert / Themenbereich Schadenskategorie relativer Risikowert © msg systems ag, 24.11.2014 Top Risiken identifizieren: Was macht Projekte erfolgreich? Quelle:PM Studie 2008 "Erfolg und Scheitern im PM" 71 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Risikomanagement für Projekte – RM-Prozess • Risikoidentifikation ist Aufgabe des gesamten Teams Initiale Risikobetrachtung RisikoIdentifikation • Eskalation von Risiken RisikoBehandlung • Konsequentes Monitoring RM • Aufnahme in den Statusbericht • Risikobewertung - Risikowahrscheinlichkeit - Risikoauswirkung Risikoanalyse • Einleitung von Massnahmen • Regelmässige Teamrunden • Risikoklassifizierung • Priorisierung 72 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Risikomanagement für Projekte – Strategien Übertragung Risiken ignorieren Vermeidung Aktzeptanz Minderung VON 73 Notfallplan NACH Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014 Vielen Dank für Ihre Aufmerksamkeit Dr. Thomas Kunstmann Geschäftsbereichsleiter Travel & Logistics Mergenthalerallee 73 – 75, 65760 Eschborn Tel.: +49 6196 99845 5471 Fax: +49 6196 99845 5410 Mobil: +49 170 630 2775 E-Mail: [email protected] www.msg-systems.com 74 Projektmanagement - Qualitäts- und Risikomanagement © msg systems ag, 24.11.2014