• Keine Ergebnisse gefunden

Projektmanagement aus der Praxis der Softwareentwicklung

N/A
N/A
Protected

Academic year: 2021

Aktie "Projektmanagement aus der Praxis der Softwareentwicklung"

Copied!
74
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Projektmanagement aus der Praxis der Softwareentwicklung

Vorlesung im Wintersemester 2015/16 an der Technischen Universität Dortmund 4. Vorlesung am 30.11.2015: Qualitäts- und Risikomanagement

Oliver Hakim

(2)

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

Methodische Schwerpunkte

Requirements Engineering

Fachliche Spezifikation

Testmanagement Fachliche

Schwerpunkte

Logistik

Handel

(3)

AGENDA

1. Qualitätsmanagement 2. Testmanagement

3. Risikomanagement

(4)

AGENDA

1. Qualitätsmanagement 2. Testmanagement

3. Risikomanagement

(5)

Was ist Qualität ?

… z.B. bei einem Auto?

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.

Umfangreiche Funktionalität

„una bella macchina“ Sicher und zuverlässig

(6)

PDCA-Zyklus – Deming-Kreis

Der PDCA-Zyklus zur kontinuierlichen Verbesserung der Qualität durch Fehlersuche und Problemanalyse

Plan

Do

Check Act

• Planung der Verbesserungsmöglichkeit

• Messmetriken festlegen

• Durchführen

• Dokumentation

• Ergebnisse Vergleichen (Soll-Ist-Vergleich)

• Ursachen ermitteln

• Lessons learned

• Verbesserungen übernehmen

Produkte werden in Prozessen erstellt  Prozesse können optimiert werden.

(7)

Qualitätsmanagement

Qualitätsmanagement (QM)

Leiten und Lenken einer (Projekt-)Organisation bezüglich Qualitätskriterien.

Qualitätsmanagement-Teilaufgaben

Qualitätsplanung

• Bestimmen der Qualitätsmerkmale (Anforderungen in Pflichtenheft, Normen)

• Messgrößen definieren

• Vorgehen definieren in PSP, Meilensteine mit Quality Gates

• Verantwortlichkeiten

Qualitätslenkung

• Q-Plan umsetzen

• Steuerung durch Soll-Ist-Analyse

• Ursachen finden

• Maßnahmen initiieren

Qualitätssicherung

• Überwachen der Wirksamkeit umgesetzter Maßnahmen

• Projektreviews

• Projektaudits

Qualitätsverbesserung

• Erfahrungssicherung

• Verbesserung des Vorgehens

• Projektmanagement-Audits

(8)

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

(9)

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)

Was versteht man unter Softwarequalität?

(10)

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.

Datenerhebung, um Ist- und Soll-Zustand zu vergleichen und

so den Grad der erreichten Qualität im Nachhinein

festzustellen.

Konstruktive QS-

Maßnahmen

Analytische QS-

Maßnahmen

Konstruktive und analytische Qualitätsmaßnahmen

A priori

Ex post

(11)

Verfahren der konstruktiven Qualitätssicherung

Ko nstru ktive Qua litätssich eru ng

Technische Maßnahmen

Methoden

Sprachen

Werkzeuge

Organisatorische Maßnahmen

Richtlinien

Standards

Checklisten

(12)

Verfahren der analytischen Qualitätssicherung

Analytische Qualitätssicherung

Statische Prüfung (Dokument prüfen)

Inspektion und Reviews Statische Codeanalyse Formale Verifikation

Symbolische Ausführung

Dynamische Prüfung

Tests

Black-Box

Äquivalenzklassen

Grenzwertanalyse Zustandsbezogener

Test

White-Box

Anweisungstest

Zweigtest Dynamische

Analyse

Memory Leak Analyse Performance-

messung

(13)

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

(14)

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

(15)

AGENDA

1. Qualitätsmanagement 2. Testmanagement

3. Risikomanagement

(16)

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

Fehlerfreiheit ist durch Testen nicht erreichbar

Kein umfangreiches Softwaresystem ist fehlerfrei Zum Begriff des Testens

Test ist nur ein Bestandteil umfangreicher

Qualitäts-

maßnahmen

(17)

Planung und

Allgemeine

Softwareentwicklungsmodelle ordnen Test in Entwicklungsablauf ein und betrachten oft nur die

Testdurchführung

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.

Fundamentaler Testprozess (in Anlehnung an ISTQB)

Analyse und Design

Realisierung und Durchführung Auswertung und

Bericht

Abschluss

Steuerung Beginn

Ende

Spillner, A., Linz, T.:

Basiswissen Softwaretest - Aus- und Weiterbildung zum Certified Tester dpunkt, 4. Auflage

(18)

Testen im Softwarelebenszyklus – Beispiel V-Modell

• Grundidee V-Modell

Entwicklung und Test sind zueinander korrespondierende, gleichberechtigte Tätigkeiten.

• Grundidee und daraus entstehende Prinzipien lassen sich auf andere Vorgehensmodelle übertragen.

(19)

Überblick Teststufen

Komponenten-

test Integrations- Systemtest

test Abnahmetest

• Komponenten- spezifische Anforderungen

• Softwaredesign

• Dokumente auf Systemebene, Spezifikation, Anforderungen ...

• Systemdesign

• Schnittstellen- übergreifende Workflows, UCs

• Dokumente, die System aus Anwendersicht beschreiben

• Entwickler • Tester • Tester • Kunde

Test- basis

Tester

z.B.

• Funktionalität

• Robustheit

• Effizienz

z.B.

• Erfüllt System die Anforderungen (funktional vs.

nicht-funktional) z.B.

• Schnittstellen- fehler

• Wechsel- wirkungen

z.B.

• Vorgaben Vertrag

• Akzeptanz Nutzer u.

Systembetreiber Test-

ziele

• White-Box • Black-Box • Black-Box • Black-Box

Teststra- tegie

Komponententest und Integrationstest erfolgen nicht streng sequentiell

Systemtest und Abnahmetest fallen typischerweise in die letzten Projektwochen

(20)

Frühes Testen ist wichtig für Projekterfolg

Implementierung

Komponententest

Stufenweiser

Integrationstest Systemtest Abnahmetest

Frühes Testen verringert die Projektrisiken

Frühes Testen macht Entwicklung der Produktqualität transparent

t Bereit zum Systemtest Bereit zur Abnahme

(21)

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

Teststufen - Komponententest

Test der

Komponenten

(22)

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.

Teststufen - Integrationstest

Test der

Schnittstellen

(23)

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 Teststufen - Systemtest

Test des

Gesamtsystems

(24)

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.

Teststufen - Abnahmetest

(25)

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.

Spillner, A., Linz, T.:

Basiswissen Softwaretest - Aus- und Weiterbildung zum Certified Tester dpunkt, 4. Auflage

(26)

Testarten zur Überprüfung von Qualitätszielen

Testarten

Funktionaler Test

Nicht-

Funktionaler Test

Wiederinbetrieb- nahmetest

Stresstest Lasttest Installationstest

Performancetest Interoperabilitätstest

Fehlertest

Oberflächentest Datenkonsistenztest

Sicherheitstest

(27)

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.

Regressionstest

(28)

Erstellung von Testfällen und Testdaten

(29)

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.

Erstellung von Testfällen

(30)

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.

Risikobasiertes Testen

(31)

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.

Betrachtungsweise beim Test

(32)

Ä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 .

Testfallerstellung mit Äquivalenzklassen und Grenzwerten

(33)

• 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)

Beispiel für Äquivalenzklassen

(34)

• 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)

Beispiel für Grenzwerte

(35)

Beschreibung von Testfällen

Der Testfall wird mit

Ein/Ausgabedaten

beschrieben und kann

manuell ausgeführt und

dokumentiert werden

(36)

Werkzeuge zur Unterstützung und Automatisierung

(37)

• 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.

Motivation für Testautomatisierung

(38)

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

Werkzeugtypen zur Unterstützung und Automatisierung von Tests (1/2)

(39)

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

Werkzeugtypen zur Unterstützung und Automatisierung von Tests (2/2)

(40)

Beispiel Testmanagement: HP Quality Center

• HP ist führendes Tool im Kontext

Testmanagement (Forrester Wave Studie)

• Browserbasiert

• Möglichkeit zur Automatisierung von Tests

mit HP Quick Test

(41)

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

Werkzeuge für statische Tests

Beispiele

(42)

Framework zum Testen von Java-Programmen

Insbesondere zur Erstellung von Testtreibern für automatisierte Unit-Tests (Klassen oder Methode)

Werkzeuge für die Testautomatisierung Beispiel JUnit

Architekturüberblick aus

„JUnit A Cook's Tour“

(43)

public class StringTest extends TestCase { protected void setUp(…)

protected void tearDown(…)

public void testSimpleAdd() {

String s1 = new String(“abcd”);

String s2 = new String(“abcd”);

assertTrue(“Strings not equal”, s1.equals(s2));

} }

Einfacher JUnit-Testfall Test erben von Oberklasse TestCase

Initialisierung des Testobjekts

Testobjekt wird geprüft mit assert-Methoden

von JUnit Zurücksetzen des

Testobjekts nach Ausführung des Tests

• 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.

(44)

JUnit: Integration in Eclipse

(45)

Vorteile

• 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

Nachteile

• Keine Trennung von Testcode und Testdaten in Testtreibern

• Abhängige Komponenten müssen mit eingebunden werden in Test

• GUI-Tests nicht möglich

Vorteile, Nachteile JUnit

(46)

Testframework für Webanwendungen

Aufzeichnung manuell durchgeführter Bedienschritte

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/

Werkzeuge für die Testautomatisierung - Beispiel Selenium

Capture-and-Replay-Tool

(47)

Vorteile

• Einfache Erstellung von GUI- Testtreibern

• Gut geeignet für Regressionstests

• Vernünftiges Reporting durchgeführter Testfälle

• Generierung von Testskripten möglich

Nachteile

• 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, …)

Vorteile, Nachteile Selenium

(48)

Chancen

• Zeitdruck und Risiko

vermindern sich in späten Projektphasen

• Kurzfristige Absicherung von Änderungen während des Produktivbetriebs

• Absicherung von Seiteneffekten

• Kostenersparnis

• Weniger stupider Test

Risiken

• 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

Chancen und Risiken durch automatisiertes Testen

(49)

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. Fehlermanagement

2. Konfigurationsmanagement 3. Testplanung

4. Testdurchführung 5. Testspezifikation

Automating chaos gives faster chaos*

*Fewster, M., Graham, D.:

Software Automation,

Effective use of test execution tools

(50)

Abhängig von der Anzahl Wiederholungen der Testdurchführung lohnt sich eine Testautomatisierung

Anzahl Wiederholungen Testfälle

Kosten

Manuelle Tests

Automatisierte Tests

Kosten Test-

spezifikation Kosten Implemen tierung TF Kosten Wartung TF

• Ab ca. 5 Wiederholungen lohnt sich eine Testautomatisierung

• Große Projekte laufen oft über mehrere Jahre mit mehreren Releases

 Früh über Testautomatisierung nachdenken

(51)

• Die Anzahl der entdeckten Fehler für 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.

Softwarequalität

niedrig hoch

Testqualität niedrig hoch

Wenige Fehler Viele

Fehler

Wenige Fehler

Wenige Fehler

Man denkt, man ist hier…

…dabei ist

man hier! Quelle: D. Graham, M. Fewster:

Testing Essentials – Testing Principles.

TEST Congress, London 2000.

Eine gute Testqualität ist Voraussetzung für die Beurteilung der Softwarequalität

Erst eine gute Testqualität erlaubt zusammen mit der Anzahl der entdeckten Fehler Aussagen über die Softwarequalität.

(52)

80/20 Regel

Pareto-Prinzip

Aufwand

Nutzen

Mit 20% Testabdeckung können 80%

der Fehler gefunden werden?

In 20% der Anwendung stecken 80%

der Fehler?

20% der Fehler verursachen 80%

der Kosten?

Erkenntnis: Testaufwände auf kritische Komponenten fokussieren.

(53)

DDT

(54)

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

• 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

(55)

AGENDA

1. Qualitätsmanagement 2. Testmanagement

3. Risikomanagement

(56)

Thesen

(57)

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.“

Was sind Risiken?

(58)

Wie werden Risiken identifiziert?

Projektumfeldfaktoren

Sachlich sozial

mittelbar unmittelbar

ökonomisch

technisch

natürlich

rechtlich- politisch soziokulturell

Chancen

Risiken

Durch frühzeitige Analyse des Projektumfeldes lassen sich Chancen

und Risiken identifizieren.

(59)

Ein guter Projektleiter managt Risiken, ein schlechter Projektleiter managt Probleme.

Risiken managen

Risiken identifizieren

Risiken analysieren

Maßnahmen planen

Maßnahmen kontrollieren

niedrig mittel hoch Schadenshöhe

niedrigmittel hoch

Eintrittswahrscheinlichkeit

R1

R2

R3 R4

R5

R6

(60)

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

 die Schadenshöhe (SH in €) zu reduzieren (korrektive Maßnahmen)

Begrenzen des Schadens, falls das Risiko eintritt

Verlagern des Schadens, wenn das Risiko eintritt (z.B. Versicherung)

Selbstragende Maßnahmen

Akzeptieren, dass das Risiko mit berechneter Schadenshöhe existiert und darüber berichten

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!

Maßnahmen für Risiken einplanen

(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

Beispiellösung: Risiken erfassen (1 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 €

Beispiellösung: Risiken quantifizieren (2 von 3)

(63)

Nr. Risiko Maßnahme Kosten ETW neu SH neu RW neu Um- setzen 1 Inkompatible

Netzwerk- drucker

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 Thin- Clients des GB X aufrüsten

Präventiv-Vermeiden: Alle Thin- Clients 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 € -

Beispiellösung: Maßnahmen für Risiken planen (3 von 3)

(64)

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

Risikomanagement ist kritisch für den Projekterfolg

(65)

Risikomanagement

Vermeidung

Verminderung

Begrenzung

Verlagerung

Akzeptanz Risiken

Maßnahmen

Kaufmännische Risiken

Technische Risiken

Terminrisiken

Ressourcenrisiken

Politische Risiken

(66)

Instrumente und Hilfsmittel in PROFI/PRIMA

Risikoanalyse Risiko-

Behandlung

Risiko- Identifikation

RM

Initiale Risikobetrachtung

Risikomanagementplan

„PM_Risikomanagementplan_msg_tmpl.xls“

PROFI

Risikocheckliste QM

Risiko Kurzanalyse

Risikoaudits Risikocheckliste für Angebotserstellung

„PM_SchaetzenUndRisiko_msg_tmpl.xls“

PROFI-Vorgehen für Individualsoftware- entwicklung

(67)

Risikoidentifikation im Projekt

Identifizierte Risiken Probleme aus früheren Projekten

Persönliche Erfahrungen

Weitere Taxonomien (z.B. vom SEI*)

Quelle: www.sei.cmu.edu Suche nach „Taxonomy-Based Risk Identification“, Report No. SEI.93-TR-006

Risikocheckliste QM: Risikokurzanalyse für Festpreisprojekte > 500.000 €

QM: Risikoaudits

(68)

Risikocheckliste

Risikoart

Prozentualer

Anteil max

Risiko- zahl

Gesamtrisiko 29% 339 99

Projekt-Ziele und -Inhalte 24% 62 15

Bes.Anford. an Lieferg./Leistg. 33% 36 12

Erfahrungen im Projektteam 71% 42 30

MA-Einsatz und Auslastung 22% 36 8

Termine 24% 17 4

Planung 32% 57 18

Verfolgung und Lenkung 0% 15 0

Modelle/Methoden/Tools 0% 12 0

Finanzielle Risiken 15% 20 3

Vertragl. Regelung 24% 37 9

Auslandsgeschäft 0% 5 0

0%

20%

40%

60%

80%

100%

Gesamtrisiko Projekt-Ziele und -Inhalte Bes.Anford. an Lieferg./Leistg. Erfahrungen im Projektteam MA-Einsatz und Auslastung Termine Planung Verfolgung und Lenkung Modelle/Method en/Tools Finanzielle Risiken Vertragl. Regelung Auslandsgeschä ft

Relatives Angebotsrisiko

(69)

Risikomanagementplan

Projekt- Ziele

Detailplan, Statusbericht Risikomanagementplan

Ist das zentrale Dokument des Risikomanagement und enthält

• Beschreibung und Bewertung aller Risiken

• die Maßnahmen zur Risikominderung

• Hilfsmittel:

oCheckliste, oRisikoportfolio, oRisikotrend

(70)

Risikomanagementplan

A - Vertrag

B - Kunde

C - Management (msg)

D - Projektteam

E - Lieferanten F -

Projektmanangement G - Anforderungen

H - Umsetzung I - Einführung

Wert / Themenbereich

9 5 4

76

8 Wahrscheinlichkeit niedrighoch

niedrig hoch

Auswirkung Diagrammtitel

0 10 20 30 40 50 60

0 1 2 3 4 5 6

Relativer Risikowert

Schadenskategorie

Schadenskategorie relativer Risikowert

(71)

Quelle:PM Studie 2008 "Erfolg und Scheitern im PM"

Top Risiken identifizieren: Was macht Projekte erfolgreich?

(72)

Risikomanagement für Projekte – RM-Prozess

Risikoanalyse Risiko-

Behandlung

Risiko- Identifikation

RM

Risikoidentifikation ist Aufgabe des gesamten Teams

Regelmässige Teamrunden

Risikobewertung

- Risikowahrscheinlichkeit - Risikoauswirkung

Initiale

Risikobetrachtung

Risikoklassifizierung

Priorisierung

Konsequentes Monitoring

Aufnahme in den Statusbericht

Einleitung von Massnahmen

Eskalation von Risiken

(73)

Risikomanagement für Projekte – Strategien

VON NACH

Risiken ignorieren

Übertragung

Vermeidung

Minderung

Akzeptanz

Notfallplan

(74)

Vielen Dank für Ihre Aufmerksamkeit

Oliver Hakim

Lead Business Consultant – GB Travel & Logistics

Max-Planck-Str. 40, 50354 Hürth Mobil: +49 151 167 49 132

E-Mail: oliver.hakim@msg-systems.com www.msg-systems.com

Referenzen

ÄHNLICHE DOKUMENTE

Alzheimer löscht einen Großteil des Ge- dächtnisses. Nur die Erinnerung an Mu- sik scheint die Erkrankung auszusparen, denn Alzheimer-Patienten können sich oft selbst dann noch

Im Rahmen des Rekursverfahrens kommt aber sowohl das Verwaltungsgericht wie Ende Februar 2009 auch das Bundesgericht zu Schluss, dass für die

Nichtziel KANN Beispiel einer Zielformulierung (Netzwerkprojekt).. © msg systems ag, 13.10.2014 Projektmanagement - Einführung und

• Einem Vorgang werden Mitarbeiter, Aufwand, Dauer, Termine etc. zugeordnet

Une formation postgrade ne permet pas seulement de Une formation postgrade ne permet pas seulement de transmettre des savoirs, mais également les bases d’une transmettre des

Modellbasiertes Testen verspricht Effizienzgewinne durch eine Automatisierung des Test- falldesigns in Szenarien, in denen als Artefakt des Entwicklungsprozesses bereits eine

Die Dozierenden Brigitte Stadler (Bildne- risches Gestalten), Thomas Dütsch (Deutsch) und Chris Wirth (Musik) be- schäftigen sich an der PH Zürich mit kreativem Denken und

«Wetten, dass ..?» ist seit 1981 jene Fernsehsendung, in welcher man sich einmal im Leben vom blossen Durchschnitt verabschieden kann.. Und das in so weltbewegenden Disziplinen