• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Softwarequalität Entwicklung -  Test - Wartung
 

Softwarequalität Entwicklung - Test - Wartung

on

  • 1,775 views

Wer wünscht sich nicht "Mehr Softwarequalität"? Insbesondere an Individualsoftware werden hohe Qualitätsanforderungen gestellt. Einen Königsweg gibt es zwar nicht, aber viele „Best practices“, ...

Wer wünscht sich nicht "Mehr Softwarequalität"? Insbesondere an Individualsoftware werden hohe Qualitätsanforderungen gestellt. Einen Königsweg gibt es zwar nicht, aber viele „Best practices“, mit denen Sie systematisch die Softwarequalität erhöhen können.

Statistics

Views

Total Views
1,775
Views on SlideShare
1,694
Embed Views
81

Actions

Likes
1
Downloads
11
Comments
0

1 Embed 81

http://www.iks-gmbh.com 81

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Softwarequalität Entwicklung -  Test - Wartung Softwarequalität Entwicklung - Test - Wartung Presentation Transcript

    • Hauptsache, Entwicklung Test es läuft? Wartung iks Thementag„Mehr Softwarequalität – Best practices für alle Entwicklungsphasen“ 19.06.2012 Autor: Dr. Reik Oberrath
    • Agenda Begriffserklärung: Entwicklung, Wartung, Test Sieben Einflussgrößen der Softwarequalität in Entwicklung und Wartung Best practices im Einsatz Zusammenfassungiks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 3 / 42
    • Agenda Begriffserklärung: Entwicklung, Wartung, Test Sieben Einflussgrößen der Softwarequalität in Entwicklung und Wartung Best practices im Einsatz Zusammenfassungiks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 4 / 42
    • Was ist Entwicklung, was Wartung und was Test? Software- Release Software-Erweiterung,Entwicklung Erweiterung Build Fehlerbehebung, Entwicklungstests Release Enwicklungs- Freigabe- Build & Test Test tests tests Freigabe Fehler- Produktions- Wartung behebung unterstützung Produktions- unterstützungiks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 5 / 42
    • Agenda Begriffserklärung: Entwicklung, Wartung, Test Sieben Einflussgrößen der Softwarequalität in Entwicklung und Wartung Best practices im Einsatz Zusammenfassungiks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 6 / 42
    • 7. Produktions- 1. Entwicklungs- Entwicklung unterstützung tools im engeren Sinn6. Freigabe Software- 2. Clean Code 4. Kommunikation qualität im Team 5. Release Build & Test 3. Entwicklungs- tests iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 7 / 42
    • 7. Produktions- 1. Entwicklungs- 1. Entwicklungs- unterstützung tools tools6. Freigabe Software- 2. Clean Code 4. Kommunikation qualität im Team 5. Release Build & Test 3. Entwicklungs- tests iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 8 / 42
    • 1. Entwicklungstools: Best practices Entwicklungsumgebung (IDE): Java: Eclipse, NetBeans, IntelliJ .NET: Visual Studio AS/400: RDP Versionsverwaltung: Java: CVS, SVN, Mercurial, GIT .NET: Team Foundation Server AS/400: TD/OMS Issue Tracker: Jira, Mantis, Bugzilla, Traciks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 9 / 42
    • 7. Produktions- 1. Entwicklungs- unterstützung tools6. Freigabe Software- 2. Clean Code 4. Kommunikation qualität im Team 5. Release Build & Test 3. Entwicklungs- tests iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 10 / 42
    • 2. Clean Code: Was ist das? Codequalität Interne / Strukturelle Qualität des Produkts Effiziente Software-Entwicklung Merkmale: Leicht verständlich flexibel Einfach änderbar wartbar Gut testbariks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 11 / 42
    • 2. Clean Code: Best practices Allgemeine Sprachen-spezifische Prinzipien PrinzipienPatterns Clean-Code-Developer [1]: Buch-Tipp:„so ist‘s gut“ DRY-Prinzip, KISS-Prinzip, … „Effektive Java“ [2] SOLID-Prinzipien, … Softwaremetriken, …Antipatterns Vortrag: Buch-Tipp:„so nicht!“ „Clean Code: Von der „Bug Patterns in Java“ [3] Lehre in den Alltag“ von Jörg Vollmer & Code-Inspection-Tools: Reik Oberrath Findbugs, Checkstyle, PMD, Eclipse iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 12 / 42
    • 2. Clean Code: Softwaremetriken Messbar sind Umfang, Komplexität, Koppelung, Lesbarkeit, Abstraktion, … Bsp. 1: Lines of Code (LOC) pro Quelltextdatei Bsp. 2: Cyclomatische Komplexität (CCN) bzw. McCabe-Metrik Tools: Checkstyle, Sonariks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 13 / 42
    • 2. Clean Code: Softwaremetriken im Einsatz I 60 Anz. Quelltextdateien 50 40 30 20 10 0 1 2 3 4 5 6 7 Zyklomatische Komplexitätiks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 14 / 42
    • 2. Clean Code: Softwaremetriken im Einsatz II Zyklomatischen Komplexität > 4 6 Anz. Quelltextdateien mit einer 5 Akzeptanzgrenze 4 3 Sollwert 2 1 0 1 2 3 4 5 6 7 8 9 10 11 Release Candidateiks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 15 / 42
    • 7. Produktions- 1. Entwicklungs- unterstützung tools6. Freigabe Software- 2. Clean Code 4. Kommunikation qualität im Team 5. Release Build & Test 3. Entwicklungs- tests iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 16 / 42
    • 3. Entwicklungstest: Testtypen aufwändige TestumgebungEnd-To-End-Tests nötig System- testsIntegrationstests,Komponententests,„Servicetests“ schnell in der Modultests Ausführung„Programmzeilen- Unittests test“ iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 17 / 42
    • 3. Entwicklungstest: Aussagekraft Externe Qualität Interne Qualität Informationsmenge Nach [4] Unittests Modultests Systemtestsiks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 18 / 42
    • 3. Entwicklungstest: TeststrategieTestabdeckung Testausführung ca. 10 % täglich bis System- wöchentlich tests ca. 50 % möglichst Modultests oftmöglichst hoch nach jeder (>90%) Änderung Unittests iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 19 / 42
    • 3. Entwicklungstest: Best practices Automatisierung aller Testtypen (Unit-, Modul- und Systemtests) Regelmäßige Ausführung durch CI-Tools Tools für CI (Continuous Integration): Hudson Jenkins Teamcity Team Foundation Server (.NET)iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 20 / 42
    • 3. Entwicklungstest: CI - Funktionsweise Versionskontroll- Continuous Integration system Server Prüft Aktualität Neuer Stand Führt Build & Test aus benachrichtigt Prüft Testergebnisse Neuer Stand Entwickleriks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 21 / 42
    • 7. Produktions- 1. Entwicklungs- unterstützung tools6. Freigabe Software- 2. Clean Code 4. Kommunikation qualität im Team 5. Release Build & Test 3. Entwicklungs- tests iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 22 / 42
    • 4. Kommunikation im Entwicklerteam: Wichtigkeit Wissensaustausch (Tools, Technologien, Clean Code, Teststrategie …) Einigung auf gemeinsame Ziele (Teststrategie, Clean Code, Definition of Done, …) Arbeitsteilung („aufeinander zu arbeiten“)iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 23 / 42
    • 4. Kommunikation im Entwicklerteam: Vorrausetzungen Kluge Teamzusammenstellung: Gute Stimmung im Team, hohe Motivation zur Kommunikation Soft-Skill „Kommunikationsfähigkeit“: Buch-Tipp: Soft-Skills für Softwareentwickler [5]iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 24 / 42
    • 4. Kommunikation im Entwicklerteam: Best practices Pairprogramming Regelmäßige Code-Review-Meetings Einsatz von Tools - Dokumentation: Wiki, Confluence - Issue-Tracking: Jira, Bugzilla - Sonstige: RE-Tools, EMailiks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 25 / 42
    • 7. Produktions- 1. Entwicklungs- unterstützung tools6. Freigabe Software- 2. Clean Code 4. Kommunikation qualität im Team 5. Release Build & Test 3. Entwicklungs- tests iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 26 / 42
    • 5. Release Build & Test: Best practices Automatischer Build („Auf-Knopfdruck“) Regelmäßige Durchführung (Continuous Delivery) Java-Tools: Ant, Maven, Gradle Automatische (System-)Tests & Manueller Anlauftestiks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 27 / 42
    • 7. Produktions- 1. Entwicklungs- unterstützung tools6. Freigabe Software- 2. Clean Code 4. Kommunikation qualität im Team 5. Release Build & Test 3. Entwicklungs- tests iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 28 / 42
    • 6. Freigabe: Hochstufungsprozess Produktionsumgebung Abnahmeumgebung Integrationsumgebungiks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 29 / 42
    • 6. Freigabe: Best practices Dreistufiger Hochstufungsprozess Automatische Freigabetests (Akzeptanztests) Manuelles freies Testeniks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 30 / 42
    • 7. Produktions- 1. Entwicklungs- unterstützung tools6. Freigabe Software- 2. Clean Code 4. Kommunikation qualität im Team 5. Release Build & Test 3. Entwicklungs- tests iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 31 / 42
    • 7. Produktionsunterstützung: Best practices Gute Produkteinführung für die Benutzer Guter Informationsaustausch zwischen Entwicklern und Betrieb (technische Administration): DevOps Guter Informationsaustausch zwischen Entwicklern und Fachseite (fachliche Administration): „DevBus“ Guter Informationsaustausch zwischen Entwicklern und Benutzern: „DevUse“iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 32 / 42
    • 7. Produktions- 1. Entwicklungs- unterstützung tools6. Freigabe Software- 2. Clean Code 4. Kommunikation qualität im Team 5. Release Build & Test 3. Entwicklungs- tests iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 33 / 42
    • Agenda Begriffserklärung: Entwicklung, Wartung, Test Sieben Einflussgrößen der Softwarequalität in Entwicklung und Wartung Best practices im Einsatz Zusammenfassungiks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 34 / 42
    • Die best practices im laufenden ProjektSymptom betrifft AbhilfeEntwickler findet seinen Code nicht 1. Entwicklungstools Bessere ToolsFehlerbehebung dauert zu lange 2. Clean Code Strukturelle Codequalität verbessernZu viele Fehler im Release 3. Entwicklungstests Teststrategie verbessernEntwickler: „Das ist nicht von mir, 4. Kommunikation im Team Mehr Wissensaustausch unterich kenne mich da nicht aus.“ den EntwicklernRelease Build dauert zu lange 5. Release Build & Tests Höhere Automatisierung, häufigere BuildsZu viele Fehler in der Produktion 6. Freigabe Hochstufungsprozess einführen, intensivere FreigabetestsSystem ist technisch zu instabil 7. Produktionsunterstützung Bessere Kommunikation mit dem Betrieb (tech. Admin.)Zu viele Fehler in der Abnahme- 3. Entwicklungstests Intensivere Entwicklertestsumgebung 5. Release Build & Tests Intensivere ReleasetestsEntwickler: „It‘s a feature, not a bug“ 7. Produktionsunterstützung Bessere Produkteinführungiks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 35 / 42
    • Die best practices für ein neues Projekt1. Entwicklungs- Eclipse, GIT tools2. Clean Code DRY, KISS, … SOLID, … Automatische Softwaremetriken, …3. Entwicklungs- Automatische Unit- Automatische Automatische System- tests Tests, CI Integrationstests tests4. Kommunikation Issue Tracker Reviews, Pairprogramming, Vieraugenprinzip im im Team Doku-Tools Definition of Done5. Release Build Automatischer Build Automatische Systemtests & Tests6. Freigabe - Abnahmeumgebung Dreistufiger Hochstufungsprozess7. Produktions- Produkteinführung DevOps, „DevUse“, unterstützung „DevBus“ Billig Teuer Einfach Mausklick Kritikalität Komplex Kurzweilig Langfristig Ungefährlich iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Lebensgefährlich 42 Seite 36 /
    • Wie wirkt sich die Anwendung der best practices aus? 1 0 011 01 00 1 1 100 1001101 0011100 0110011 1010110 01 1 01 10 1 10 0 001 0110110 1100001 11 11 0 00 1010010 1111000 10 10 01 0 01 00 011 0 1 111 01 0100011 0111101 1000011 1001010 01 010 10 1 00 11 01 0101010 1001101 ERROR iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 37 / 42
    • Agenda Begriffserklärung: Entwicklung, Wartung, Test Sieben Einflussgrößen der Softwarequalität in Entwicklung und Wartung Best practices im Einsatz Zusammenfassungiks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 38 / 42
    • Nicht-funktionale Hauptsache, es läuft? Qualitätsmerkmale von Software Das Produkt korrekt, skalierbar, performant, (finales Ziel mit stabil, effizient, sicher (Security), Selbstzweck) zuverlässig, gesetzeskonform, gut bedienbarDer Entwicklungs- wirtschaftlich, testbar, erweiterbar, prozess veränderbar, analysierbar, wartbar (Zwischenziel, nur Mittel zum Zweck) iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 39 / 42
    • Zusammenfassung In Entwicklung und Wartung hat die SQ 7 Einflussgrößen Für jede Einflussgröße gibt es eine Reihe von best practices SQ kostet und zahlt sich u.U. erst langfristig aus Ein guter Entwicklungsprozess ist der Schlüssel zu einem guten Produkt Produkt und Herstellungsprozess sind gleich wichtigiks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 40 / 42
    • Referenzen[1] Die Clean Code Developer www.clean-code-developer.de/[2] Effective Java: A Programming Language Guide Joshua Bloch, 2. Auflage, 2008[3] Bug Patterns in Java Eric Allen, 2002[4] Growing Object-Oriented Software, Guided By Tests Steve Freeman & Nat Pryce, 2010[5] Soft Skills für Softwareentwickler Uwe Vigenshow, Björn Schneider & Ines Meyrose, 2. Auflage, 2011iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 41 / 42
    • Weiterführende Literatur Growing Object-Oriented Software, Guided By Tests Steve Freeman & Nat Pryce, 2010 Clean Code - Refactoring, Patterns, Testen und Techniken für sauberen Code Robert C. Martin, 2009 Der Pragmatische Programmierer David Thomas, Andrew Hunt, Steffen Gemkow und Andreas Braig, 2003 Clean Coder: Verhaltensregeln für professionelle Programmierer Robert C. Martin, 2011iks Thementag: „Mehr Softwarequalität“ - Hauptsache, es läuft? Entwicklung, Wartung, Test Seite 42 / 42
    • Fragen?
    • www.iks-gmbh.com