Qualitätssicherung leicht gemacht: Open Source Tools sinnvoll einsetzen und verzahnen Tutorium auf der KSFE 2015 in Hannover, 25.03.2015 Qualität kommt von Qual.
Wissen aus Daten gewusst wie ist IT-Dienstleister für Business Intelligence und Datenanalyse gibt es in dieser Form seit über 25 Jahren ist einer von vier in Deutschland hat 53 Mitarbeiter, davon 28 von SAS zertifizierte Spezialisten ist offizieller SAS-Trainingspartner bietet umfassende Services für SAS-Software an, Beratung, Programmierung, Schulung und Support, auch für JMP und R ist Mitglied im KSFE - Verein und seit vielen Jahren Sponsor liefert 22 Beiträge für die KSFE-Konferenzen 2011-2015 2
Tool-Kette für Qualitätssicherung in der Entwicklung Anforderungen 3
(Ticketsystem) Webbasiertes Projektmanagement Anforderungen erfassen Meilensteine planen Aufgaben zuweisen und nachverfolgen 4
Agiler Entwicklungsprozess - Beispiel Iteratives Vorgehen Dauer einer Iteration: 3 Arbeitswochen Quelle: Tickets im -System Anforderungen (user stories, grob geplant + geschätzt, werden für eine Iteration selektiert) Deployment im JBoss und Aufruf der Startseite funktioniert Arbeitspakete (tasks, fein geschätzte Einzelteile einer Anforderung) Tomcat im AD durch JBoss ersetzen Webapplikation mit JBOSS / SAS9.3 jars kompilieren webscala Deployment im JBoss Arbeitspakete i.d.r. einer Einzelperson zugewiesen Iterationsmeetings Planung der jeweils nächsten Iteration (alle Entwickler) Abstimmung der Verfügbarkeiten Auswahl und Besprechung der Anforderungen Aufteilung der Anforderungen in einzelne Arbeitspakete Retrospektive der jeweils letzten Iteration (Entwickler, Projektleitung) 5
(Unittest-Framework) Testszenario Testfall Testsetup: Daten vorbereiten Aufruf des Prüflings (= zu testenden Programms) Prüfung 1 (OK) Prüfung 2 (fehlgeschlagen) Prüfung 3 (OK) Test-driven Development (TDD) Weitere Testfälle Sicherheitsnetz für Änderungen 6
Doxygen (Dokumentationsgenerator) Quellcode-Dokumentation automatisiert erzeugen 7
Doxygen (Dokumentationsgenerator) Ergebnis im HTML-Format 8
(Versionskontrollsystem) 9
Repository-Struktur SVN Repository tags trunk branches 2015_01_01_Integrationstest Rev 1 V1.0 2015_03_23_Produktion Rev 2 V2.0 Stammordner (trunk): Revisionsnummer wird bei jedem Commit automatisch hochgezählt Markierung (tag): Fachliche Kennzeichnung einer zentralen Revision Zweig (branch): Fachliche Kennzeichnung eines separaten Entwicklungszweigs 10
in der Praxis Verzeichnisstruktur im Stammordner festlegen Lock-Strategie festlegen (optimistisch, pessimistisch) Häufigkeit und Umfang von Commits Aussagekräftige Änderungskommentare Umgang mit Merge-Konflikten Immer lauffähigen Stand im Stammordner vorhalten Nutzung von Entwicklungszweigen für nicht lauffähige Zwischenstände 11
Beispiel für -Client: TortoiseSVN Versionskontrolle mit Verknüpfung zu Doxygen-Kommentare werden beim Einchecken automatisch aktualisiert 12
(Automatisierte Build-Erstellung) Continuous Integration (CI) Server Testausführung und Benachrichtigung Build-Erzeugung und Deployment 13
(II) Statusänderung von Tickets Review-Informationen direkt am Ticket Reviewer wird benachrichtigt Ggf. erneuter Durchlauf der Toolkette Reviewer schließt das Ticket 14
Fazit Durchgängige Nachvollziehbarkeit von Änderungen Mehrere leichtgewichtige Tools statt ein schwerfälliges System Fördert agile Vorgehensweise Tools sind alle Open Source Aber: Entwickler brauchen Methodenkompetenz und Verantwortungsbewusstsein Infrastruktur-Voraussetzungen beachten 15
Zeit für Fragen & Diskussion 16
Vielen Dank für Ihre Aufmerksamkeit Software-Architekt Rohrbacher Str. 26 69115 Heidelberg Telefon +49 6221 6051-0 info@analytical-software.de www.analytical-software.de 17