Re-Engineering: Test-First-Ansatz. Dr. Thorsten Arendt Marburg, 17. Dezember 2015
|
|
- Marcus Brodbeck
- vor 7 Jahren
- Abrufe
Transkript
1 Re-Engineering: Test-First-Ansatz Dr. Thorsten Arendt Marburg, 17. Dezember 2015
2 Re-Engineering Patterns [Demeyer et al.] 2 Software-Evolution WS 2015/2016
3 Überblick Probleme Wie ändert man Teile eines Programms ohne Fehler in die bisherige Funktionalität einzubauen? Fehler in die neue Funktionalität einzubauen? Kosten für zukünftige Evolutionsschritte zu erhöhen? Teststrategien für sich ändernde Systeme Test-First-Ansatz: Tests für die Systemteile, die geändert werden sollen Tests für neue Systemteile 3 Software-Evolution WS 2015/2016
4 Welche Herausforderungen müssen betrachtet werden? Aus Sicht des Re-Engineerings Änderungen können neue Bugs einführen Es sind keine Tests vorhanden, auf die man zurückgreifen könnte Aus Sicht des Softwareentwicklungs-Prozesses Nicht alles kann getestet werden Unter Termindruck wird weniger getestet Aus Sicht der Kunden Kunden zahlen nicht für das Testen Instabile und/oder fehlerhafte Software ist inakzeptabel Aus Sicht der Entwickler Programmierer glauben, dass keine Tests benötigt werden Bug-Fixing macht keinen Spaß 4 Software-Evolution WS 2015/2016
5 Tests machen Evolution erst möglich Die Änderung eines bestehenden Systems ist risikoreich. Läuft der Code nach der Änderung? Welche Seiteneffekte hat eine Änderung? Probleme: Da das System nicht komplett verstanden wird, kann das Ausmaß einer Änderung nicht vorhergesagt werden. kann das System nach der Änderung labiler werden. Lösung: Verwendung von Testsuiten Automatisierte Testfälle Probleme 5 Software-Evolution WS 2015/2016
6 Eigenschaften von Testsuiten Alle Tests sind automatisiert und können gespeichert werden. Alle Tests können wiederholt werden. Es werden Einheiten (Methoden, Klassen, Pakete) getestet. Es gibt möglichst wenig Abhängigkeiten zwischen den Tests. Die Tests sind immer passend zum zu testenden System. Die Tests sollten Grey-Box-Tests sein. 6 Software-Evolution WS 2015/2016
7 Vor- und Nachteile dieser Technik (Verwendung von Testsuiten) Vorteile Nachteile Tests erhöhen das Vertrauen in das System Zusätzliche Dokumentation der Funktionalität Test-Frameworks für einfache Unit-Tests vorhanden Zusätzlicher Aufwand Tests demonstrieren lediglich vorhandene Fehler Ungeeignete Tests führen zu falschem Vertrauen in das System Fehler können früh gefunden werden 7 Software-Evolution WS 2015/2016
8 Testmanagement Probleme: Vorhandene Funktionalität ist möglicherweise komplex und unzureichend dokumentiert und getestet Während der Umsetzung einer Evolutionsaufgabe sind Ressourcen für das Schreiben von Tests begrenzt Wann testen? Wann aufhören zu testen? Lösung: Probleme Inkrementelles Einführen von Tests für diejenigen Systemteile, an denen gearbeitet wird 8 Software-Evolution WS 2015/2016
9 Welche Systemteile sollen getestet werden? Teile, die wir nicht komplett verstehen, aber für das Re-Engineering benötigen Teile, die wir zwar komplett verstehen und benötigen, aber die Fehler enthalten Fragile Teile, also Teile, deren Funktionalität zwar verstanden ist, aber nicht ihre Implementierung Neue Systemteile Schnittstellen, nicht ihre Implementierungen 9 Software-Evolution WS 2015/2016
10 Beispiel: Welche Systemteile sollen getestet werden? [Demeyer et al.] Nicht nur Komponente B sondern auch Komponente ABC. Integrationstests 10 Software-Evolution WS 2015/2016
11 Vor- und Nachteile dieser Technik (Inkrementelle Erweiterung der Testbasis) Vorteile Nachteile Zeitersparnis durch Konzentration auf wesentliche Systemteile Vertrauensaufbau durch Testfallerweiterung Investition in die Zukunft Start der Umsetzung der Evolutionsaufgabe bevor sämtliche Tests vorhanden sind Unwissen, welche Teile wirklich kritisch sind Falsches Vertrauen durch zusätzliche versteckte Fehler Wo sind die Grenzen der zu testenden Komponenten? 11 Software-Evolution WS 2015/2016
12 Testorganisation Probleme: Das Schreiben von Tests kann langweilig sein und das Aufsetzen umfangreicher Testdaten notwendig machen Es ist unter Umständen schwierig, zwischen fehlgeschlagenen Tests und unerwarteten Fehlern zu unterscheiden Womit kann systematisch getestet werden? Lösung: Probleme Verwendung eines Test-Frameworks, mit dem man Testsuiten aus einzelnen Testfällen erstellen kann 12 Software-Evolution WS 2015/2016
13 Das Test-Framework JUnit JUnit unterstützt automatisiertes Testen, d.h. es verlangt während der Tests keine Benutzerinteraktion. Wesentliche Prinzipien: Zu jeder verfassten Klasse wird eine Testklasse entworfen. Testcode und Anwendungscode sind strikt getrennt. Testcode wird in Testfälle strukturiert. Ein Testfall kann mit SetUp und TearDown-Methoden vorbereitet bzw. abgeschlossen werden. Ein Testfall hat drei Teile: Datenvorbereitung Aufruf der zu testenden Methode Testbedingung (Assertion) 13 Software-Evolution WS 2015/2016
14 JUnit Beispiel: Programmcode 1 14 Software-Evolution WS 2015/2016
15 JUnit Beispiel: Programmcode 2 15 Software-Evolution WS 2015/2016
16 JUnit Beispiel: Testfallklasse 16 Software-Evolution WS 2015/2016
17 JUnit Beispiel: Fehlgeschlagener Test 17 Software-Evolution WS 2015/2016
18 Vor- und Nachteile dieser Technik (Verwendung von Testframeworks) Vorteile Nachteile Vereinfacht die Formulierung von Tests Animiert Programmierer, Tests in ihrer gewohnten Welt zu schreiben und durchzuführen Hierarchische Organisation der Tests ermöglicht Konzentration auf wesentliche Systemteile Benötigt Disziplin, (Selbst-) Verantwortung und Pflege 18 Software-Evolution WS 2015/2016
19 Wie testen? Wiederverwendbare Tests Probleme: Das System ändert sich, aber die meisten Features des Systems sollen weiterhin funktionieren. Tests sollen möglichst unabhängig von Reengineering- Schritten sein, um den Testaufwand gering zu halten. Lösung: Probleme Schnittstellen beschreiben, was ein System tut und tendieren dazu, stabiler als ihre Implementierungen zu sein. Blackbox-Tests, die Schnittstellen testen 19 Software-Evolution WS 2015/2016
20 Identifikation von repräsentativen Testfällen (Daten-getrieben) Zum datengetriebenen Testen einer funktionalen Einheit (z.b. Methode) hat sich das folgende Verfahren aus [OB88] bewährt: 1. Erstelle ein Modell der Eingabedatenstrukturen Welche Datenkategorien gibt es für die Parameter? Welche Objekte der Umgebung müssen berücksichtigt werden? 2. Zerlege den Datenraum jeder Kategorie in Wahlmöglichkeiten Wie viele Kombinationen von Wahlmöglichkeiten gibt es? 3. Welche Kombinationen sind möglich? Welche Abhängigkeiten gibt es zwischen den identifizierten Wahlmöglichkeiten? 4. Für jede mögliche Kombination von Wahlmöglichkeiten werden passende Werte gewählt und ein Testfall geschrieben. Dieser enthält auch den Erwartungswert. 20 Software-Evolution WS 2015/2016
21 Vor- und Nachteile dieser Technik (Testen von Schnittstellen) Vorteile Nachteile Schnittstellentests sind besser wiederverwendbar Blackbox-Tests können für verschiedene Implementierungen benutzt werden Blackbox-Tests decken nicht unbedingt alle Pfade ab Testanpassung bei Schnittstellenänderungen Schnittstellen sind einfacher zu testen 21 Software-Evolution WS 2015/2016
22 Wie testen? Geschäftsregeln als Tests Die meisten Geschäftsregeln sind wohldefiniert und durch Beispiele illustriert. Aufbau einer Geschäftsregel: WENN DANN SONST Was tun mit implizit im Code vorhandenen Geschäftsregeln? Nicht extrahieren Entwickler und Nutzer fragen 22 Software-Evolution WS 2015/2016
23 Vor- und Nachteile dieser Technik (Geschäftsregeln als Tests) Vorteile Nachteile Regeln werden explizit Dokumentation der Geschäftsregeln Nur Szenarios, keine Logik Schwierig bei großer Anzahl von Geschäftsregeln 23 Software-Evolution WS 2015/2016
24 Wann testen? Tests für besseres Verstehen Wie versteht man einen Systemteil, für den es weder Tests noch genügend Dokumentation gibt? Kodierung der Hypothesen in ausführbare Tests. Blackbox-Tests: Verständnis der Rollen und Kollaborationen Whitebox-Tests: Verständnis des internen Algorithmus Präzise Benutzung der Objekte erforderlich Probleme: Erzeugung der nötigen Objekte ist schwierig. Codestellen, an denen diese Objekte erzeugt werden, können helfen. Nebenläufige Systeme sind schwer zu testen. 24 Software-Evolution WS 2015/2016
25 Vor- und Nachteile dieser Technik (Tests für besseres Verstehen) Vorteile Nachteile Verständnis der Strukturen kann überprüft werden Kostet zusätzliche Zeit Tests sind nicht fuzzy, sondern präzise Tests können zum Verstehen des Codes auf unterschiedlichen Ebenen verwendet werden 25 Software-Evolution WS 2015/2016
26 Wann testen? Tests für neue Funktionalitäten Verwende Test-First-Ansatz: Erst die Tests, dann die Implementierung der neuen Funktionalität Grundlage: Modell des geänderten Systems Blackbox-Tests für die neuen Teile (Methoden, Anwendungsfälle) Probleme: Modell ist zu grob: Wesentliche Funktionalität versteckt. Modell unvollständig: Wesentliche Funktionalität fehlt. Lösung: Iteratives Modellieren: eventuelles Modell-Refactoring, kann Auswirkungen auf die Tests haben Anwendungsfälle testen Regressionstests nach jeder Änderung 26 Software-Evolution WS 2015/2016
27 Einsatz von Daten-getriebenen Tests in der Test-getriebenen Entwicklung Vorgehensweise: Beschreibe wesentliche Testfälle schon mit den Anforderungen Folge dem vorgestellten Verfahren zur Identifikation von repräsentativen Testfällen Programmiere alle repräsentativen Testfälle Führe die Testfälle aus: Fehler, da die Funktionalität noch fehlt Implementiere die Funktionalität Führe die Testfälle aus: Code solange ändern, bis alle Tests durchlaufen Führe Refactorings durch 27 Software-Evolution WS 2015/2016
28 Vor- und Nachteile dieser Technik (Tests für neue Funktionalitäten) Vorteile Nachteile Anforderungen in Tests gegossen Bei Designanpassungen sind auch Testanpassungen nötig Nicht am Kunden vorbei entwickelt 28 Software-Evolution WS 2015/2016
29 Zusammenhang von Test-Patterns [Demeyer et al.] 29 Software-Evolution WS 2015/2016
30 Zusammenfassung Testen zum besseren Verständnis und als Voraussetzung für sicheres Re-Engineering Sowohl die neue als auch die zu ändernde Funktionalität soll durch Tests abgesichert sein. Vorwiegend Blackbox-Tests Schnittstellen statt Implementierung testen Die Tests sollten sich auf die geänderten Methoden und größere Einheiten beziehen. Test-First-Ansatz: Erst die Tests, dann die Implementierung der neuen Funktionalität. 30 Software-Evolution WS 2015/2016
31 Quellen und Werkzeuge Literatur: Serge Demeyer, Stephane Ducasse, Oscar Nierstrasz: Object-Oriented Reengineering Patterns, 2013, Kap. 6, online verfügbar unter Ostrand, Thomas J., and Marc J. Balcer: The categorypartition method for specifying and generating functional tests, Communications of the ACM 31.6 (1988): Werkzeuge: JUnit: 31 Software-Evolution WS 2015/2016
Programmverstehen 3: Detailliertes Verständnis. Dr. Thorsten Arendt Marburg, 10. Dezember 2015
Programmverstehen 3: Detailliertes Verständnis Dr. Thorsten Arendt Marburg, 10. Dezember 2015 Re-Engineering Patterns [Demeyer et al.] 2 Software-Evolution WS 2015/2016 Überblick Probleme Auch wenn das
MehrSystematisches Testen der Funktionalität von Softwaresystemen. 17. Juni 2015
Systematisches Testen der Funktionalität von Softwaresystemen 17. Juni 2015 Überblick Semantische Qualität von Software Teststrategien und prinzipien Testgetriebene Softwareentwicklung Welche Arten von
MehrSoftware - Testung ETIS SS05
Software - Testung ETIS SS05 Gliederung Motivation Was ist gute Software? Vorurteile gegenüber Testen Testen (Guidelines + Prinzipien) Testarten Unit Tests Automatisierte Tests Anforderungen an Testframeworks
MehrUnit Testing, SUnit & You
HUMBOLDT-UNIVERSITÄT ZU BERLIN MENSCH-TECHNIK-INTERAKTION ARBEITSGRUPPE SOFTWARETECHNIK (INSTITUT FÜR INFORMATIK) ARBEITSGRUPPE INGENEURPSYCHOLOGIE (INSTITUT FÜR PSYCHOLOGIE) Unit Testing, SUnit & You
MehrMigrationsstrategien. Dr. Thorsten Arendt Marburg, 22. Januar 2015
Migrationsstrategien Dr. Thorsten Arendt Marburg, 22. Januar 2015 Re-Engineering Patterns [Demeyer et al.] 2 Software-Evolution WS 2014/2015 Überblick Probleme Wenn man ein bestehendes System re-engineered
MehrProgrammverstehen 1: Der erste Kontakt mit dem System. Dr. Thorsten Arendt Marburg, 19. November 2015
Programmverstehen 1: Der erste Kontakt mit dem System Dr. Thorsten Arendt Marburg, 19. November 2015 Überblick Was ist Forward-, Reverse- und Re-Engineering? Was sind Re-Engineering Patterns? Wie nähere
MehrVom Testkonzept zu JUnit
Testen und Testkonzept Dipl.-Inf. (FH) Christopher Olbertz 2. Dezember 2014 Testen und Testkonzept Warum testen? Wichtig, obwohl bei Programmierern unbeliebt Stellt weitgehend korrekte Funktionsweise eines
MehrUnit Testing mit JUnit. Dr. Andreas Schroeder
Unit Testing mit JUnit Dr. Andreas Schroeder Überblick Was dieses Video behandelt Warum Testen? Was sind Unit Tests? Der Teufelskreis des Nicht-Testens JUnit Unit Test Vorteile Test-Inspiration Wann aufhören?
MehrBehutsame Modernisierung
Software Evolution mit Legacy Systemen Forum Forschungsförderung / ViSEK Trends im Software Engineering Software Evolution mit Legacy Systemen Behutsame Modernisierung Jan Wloka
MehrProgrammiertechnik II
Modultests Ziele Überprüfung der Korrektheit eines Moduls Korrektheit: Übereinstimmung mit (informaler) Spezifikation Modul: kleine testbare Einheit (Funktion, Klasse) Engl.: unit test White box testing
MehrProgrammieren I. Übersicht. Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 2 Übersicht Testen ist eine der wichtigsten, aber auch eine der Zeitaufwändigsten Arbeitsschritte der Softwareentwicklung.
MehrProgrammverstehen 1: Der erste Kontakt mit dem System. Dr. Thorsten Arendt Marburg, 27. November 2014
Programmverstehen 1: Der erste Kontakt mit dem System Dr. Thorsten Arendt Marburg, 27. November 2014 Überblick Was ist Forward-, Reverse- und Re-Engineering? Was sind Re-Engineering Patterns? Wie nähere
MehrUnit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG
Unit-Test Theorie und Praxis Stephan Seefeld, INGTES AG Inhalt Was sind Unit-Test? NUnit für.net Demo Seite 2 Quellen Für diesen Vortrag verwendete Quellen: dotnet User Group Berlin Brandenburg http://www.dotnet-berlinbrandenburg.de/
MehrTestgetriebene Entwicklung mit JUnit4
Testgetriebene Entwicklung mit JUnit4 Seminarvortrag im Fach Fortgeschrittenes Programmieren in Java, Dozent: Prof. Klinker Datum: 30.04.2010 Referent: Marius Schmeding Ausgangsfragen... Wie testet man
MehrJUnit. Software-Tests
JUnit Software-Tests Übersicht Einleitung JUnit Jia Li Grundlegendes Diana Howey Hendrik Kohrs Praktische Einbindung Benjamin Koch Zili Ye Einleitung in allgemeines Testen Automatische Tests Testen ist
MehrViele Entwickler finden Testen langweilig.
1 Viele Entwickler finden Testen langweilig. 2 Das galt auch für mich und meine Kollegen. 3 Programmierung kreativ Testen wiederholend, langweilig, eintönig 4 Programmierung konstruktiv, neuen Nutzen schaffen
MehrModellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 7. Februar 2013
Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick 7. Februar 2013 Überblick Zusammenfassung: Generell: Konzepte der Softwaretechnik im Kontext der modellgetriebenen Entwicklung Diskussion
MehrDas Test-Framework JUnit ETIS SS04
Das Test-Framework JUnit ETIS SS04 Gliederung Motivation TestFirst Grundlagen Assert TestCase Lebenszyklus TestCase UML-Diagramm TestCase TestSuite Zusammenfassung 2 Motivation (I) Kostspielige Folgen
MehrSOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST
SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST Gliederung 2 0. 1. 2. 3. Vorstellung Testvorbereitungen Planungsphase Definitionsphase Implementierungs-, Abnahme-und Einführungsphase Testphasen
MehrTesten von SOA-Anwendungen mit dem BPEL Testframework
Testen von SOA-Anwendungen mit dem BPEL Testframework Stefan Kühnlein IBM Deutschland Enterprise Application Solution GmbH Hollerithstr. 1 81829 München 0160/8848611 Stefan.Kuehnlein@de.ibm.com IBM Deutschland
MehrTesten von Softwaresystemen. 13. Januar 2015
Testen von Softwaresystemen 13. Januar 2015 Überblick Was umfasst das Testen von Software? Warum sollte man Software testen? Motivation für Software-Tests Wie sollte man Software testen? Grundlegende Teststrategien
Mehr5. Dokumentieren und Testen Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik
5. Dokumentieren und Testen Advanced Programming Techniques Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:
MehrTest-driven development JUnit-Test. Lars Varain
Test-driven development JUnit-Test Lars Varain Inhalt Test-driven Development (TDD) Junit4 Beispiel Inhalt Test-driven Development (TTD) Warum TDD? Zyklus Ausnahmebehandlung Junit4 Beispiel Inhalt Test-driven
MehrTesten Prinzipien und Methoden
Testen Prinzipien und Methoden ALP 2 SS2002 4.7.2002 Natalie Ardet Definition Im folgenden gilt: Software = Programm + Daten + Dokumentation Motivation Software wird immer mehr in Bereichen eingesetzt,
Mehrswp12-6 Aufgabenblatt Qualita tssicherungskonzept
1 Dokumentationskonzept Interne Dokumentation 2 Dokumentation der Funktionen 2 Programmierstandards 2 Externe Dokumentation Dokumente 3 Was muss in jedem Dokument vorhanden sein? 3 2 Testkonzept Einleitung
MehrUnit Tests mit Junit 4. Dario Borchers
Unit Tests mit Junit 4 Dario Borchers Agenda Warum testgetriebene Entwicklung von Software? - Motivation Was ist testgetriebene Entwicklung? - Prozess der testgetriebenen Entwicklung - Arten von Tests
MehrTesten mit Use Cases. Chris Rupp Dr. Stefan Queins
Testen mit Use Cases Chris Rupp Dr. Stefan Queins Das Problem Requirements- Engineering Was kann passieren? Was ist das gewünschte Verhalten? Was soll ich testen? Welche Eingaben benötigt mein Testpfad?
MehrSoftware Engineering II (IB) Testen von Software / Modultests
Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 16.05.2017 21:17 Inhaltsverzeichnis Programm-Tests.................................. 2 Ziele des Testens..................................
MehrMarkus Wichmann. Testen von Java Code mit. JUnit
Markus Wichmann Testen von Java Code mit JUnit Demotivation... Am Anfang war der Zeitdruck... Hilfe, ich habe doch keine Zeit zum Testen! Ich schreibe einfach keine Tests, dadurch werde ich schneller fertig
MehrTesten mit JUnit. Motivation
Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen
MehrJUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1
JUnit - Test Driven Development Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1 Gliederung 1.Einleitung 1.1 Geschichte 1.2 Was sind Unit-Tests? 1.3 Failures/Errors 1.4 Ziele und Nutzen
MehrDiplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008
Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen
MehrTesten und Debugging
Testen und Debugging Testklassen, Unit Tests Blackbox Test, Whitebox Test Regressionstesten Zusicherungen mit assert Debugger Informatik II: Objektorientierte SW-Entwicklung, Algorithmik, Nebenläufigkeit
MehrEvolutionsprozesse. Dr. Thorsten Arendt Marburg, 23. Oktober 2014
Evolutionsprozesse Dr. Thorsten Arendt Marburg, 23. Oktober 2014 Überblick Betrachtung der bekannten Softwareentwicklungsprozesse bezüglich Software-Evolution Evolutionsprozesse Techniken für Software-Evolution
MehrWeb-Testen mit JUnit und HttpUnit. Kai Schmitz-Hofbauer Lehrstuhl für Software-Technik Ruhr-Universität Bochum
1 Web-Testen mit JUnit und HttpUnit Kai Schmitz-Hofbauer Lehrstuhl für Software-Technik Ruhr-Universität Bochum 2 Inhalt Entwicklertests in der Praxis Unit-Testing JUnit HttpUnit Praktisches Beispiel Bewertung
MehrKonzeption. und prototypische Implementierung. eines Werkzeuges. für den funktionalen Klassentest
Konzeption und prototypische Implementierung eines Werkzeuges für den funktionalen Klassentest Übersicht Motivation Zielsetzung Lösungsansatz und dessen Realisierung Anwendungs-Szenarien Präsentation von
MehrModellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 11. Februar 2015
Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick 11. Februar 2015 Überblick Zusammenfassung: Generell: Konzepte der Softwaretechnik im Kontext der modellgetriebenen Entwicklung Diskussion
MehrUnit Tests in der Testgetriebenen Entwicklung
Unit Tests in der Testgetriebenen Entwicklung Reduzierung des Testanteils am Gesamtsoftwareentwicklungsaufwand -- neue Strategien und Tools -- Hauptseminar Systemorientierte Informatik Christian Krauß
Mehr6 Produktqualität Systeme: Integrationstest [sehr stark gekürzt]
1 Software-Qualitätssicherung 2 Integrationsstrategien big bang 6 Produktqualität Systeme: Integrationstest [sehr stark gekürzt] nicht-inkrementell geschäftsprozeßorientiert Prof. Dr. Helmut Balzert Lehrstuhl
MehrTestfallgenerierung aus Statecharts und Interaktionsdiagrammen
Testfallgenerierung aus Statecharts und Interaktionsdiagrammen Dehla Sokenou TU Berlin Softwaretechnik Motivation Warum Testen mit Hilfe von UML? UML verbreitete Spezifikationssprache in der Objektorientierung
MehrTestplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw, 16.04.2013
Software Komponenten FS13 Gruppe 03 Horw, 16.04.2013 Bontekoe Christian Estermann Michael Moor Simon Rohrer Felix Autoren Bontekoe Christian Studiengang Informatiker (Berufsbegleitend) Estermann Michael
MehrTesten von Android- Anwendungen. 6. Juni 2013
Testen von Android- Anwendungen 6. Juni 2013 Taentzer Software-Praktikum 2013 91 Überblick Entwicklung von Testfällen informelle Beschreibung der Testfälle auf Basis der Anwendungsfallbeschreibungen Implementierung
MehrTest-Driven Developement Eine Einführung
Test-Driven Developement Eine Einführung 2007 by Tobias Hagen Im Rahmen der Veranstaltung Aktuelle Themen der Informatik bei Prof. Dr. Friedbert Kaspar Hochschule Furtwangen University Übersicht Einführung...
MehrTestautomatisierung. Lessons Learned. qme Software. Gustav-Meyer-Allee 25 13355 Berlin. Telefon 030/46307-230 Telefax 030/46307-649
Testautomatisierung Lessons Learned qme Software GmbH Gustav-Meyer-Allee 25 13355 Berlin Telefon 030/46307-230 Telefax 030/46307-649 E-Mail qme Software info@qme-software.de GmbH Testautomatisierung Lessons
MehrTestmanagement. Q-Day. Frank Böhr Fraunhofer IESE frank.boehr@iese.fraunhofer.de
Frank Böhr Fraunhofer IESE frank.boehr@iese.fraunhofer.de Agenda Warum Testmanagement? Was sind die wichtigsten Schritte beim Testmanagement? Wie funktioniert Testmanagement Toolunterstützung Page 1/15
MehrGegenseitige Beeinflussungen von Testautomatisierung, Testmanagement und Entwicklung
Gegenseitige Beeinflussungen von Testautomatisierung, Testmanagement und Entwicklung Jan Düttmann Archimedon Software + Consulting GmbH & Co. KG Marienstraße 66 32427 Minden Stephan Kleuker Hochschule
MehrReverse Engineering Legacy Code
Reverse Engineering Legacy Code Stefan Mandel 2 Legacy Code Typische Anzeichen Zu wenige (automatisierte) Tests Unkontrollierte Seiteneffekte Auf globale Variablen Und Argumente Verzicht auf Objektorientierung
MehrFortgeschrittenes Programmieren mit Java. Test Driven Development
Fortgeschrittenes Programmieren mit Java Test Driven Development Test getriebene Programmierung Benedikt Boeck Hochschule für Angewandte Wissenschaften Hamburg 6. November 2009 B. Boeck (HAW Hamburg) Test
MehrWas versteht man unter Softwaredokumentation?
Was versteht man unter? Mit bezeichnet man die Dokumentation von Computer-Software. Sie erklärt für Anwender, Benutzer und Entwickler in unterschiedlichen Rollen, wie die Software funktioniert, was sie
MehrTest-Strategien. Grundsätzliches Blackbox-Testen Whitebox-Testen Graybox-Testen Ablauf von Tests Zusammenfassung. HS Mannheim
Test- Grundsätzliches - - - Ablauf von Tests Grundsätzliche Test- -Tests Äquivalenzklassenbildung Randwertanalyse -Tests Man unterscheidet verschiedene Überdeckungsgrade: Statement Coverage Decision Coverage,
MehrSoftware Evolution: Einführung. Dr. Thorsten Arendt Marburg, 15. Oktober 2015
Software Evolution: Einführung Dr. Thorsten Arendt Marburg, 15. Oktober 2015 Überblick Was ist Software-Evolution? Warum ist Software-Evolution wichtig? Was sind die Prinzipien der Software-Evolution?
MehrKernprozess zur System- und Softwareentwicklung. Logische Systemarchitektur f 1. f 2 f 3. f 4 Funktion. Technische Systemarchitektur SG 1 SG 2 SG 3
Systems Engineering Systems Engineering ist die gezielte Anwendung von wissenschaftlichen und technischen Ressourcen! zur Transformation eines operationellen Bedürfnisses in die Beschreibung einer Systemkonfiguration
MehrOlaf Seng Thomas Genßler Benedikt Schulz. Forschungszentrum Informatik, Karlsruhe
Olaf Seng Thomas Genßler Benedikt Schulz Einführung Grundlagen Vorgehensweise Beispiel Zusammenfassung Übersicht 2 Einführung Szenario & Probleme Hinzufügen einer neuen Funktion zu einer Komponente Erfordert
MehrWann lohnt sich GUI- Testautomatisierung?
Wann lohnt sich GUI- Testautomatisierung? Martin Moser, Gregor Schmid Quality First Software GmbH qfs@qfs.de Tel: +49 8171 919870 2006-2007 Quality First Software GmbH 26.02.2007 1 Überblick Hintergrund
MehrQualitätssicherung von Software
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST 2.2 Integrations- und Systemtest 17.11.2004 Folie 2 Hinweise Übungen: Teilnahme wird dringend
MehrTesten mit JUnit. Apcon Workplace Solutions Member of itelligence. Testen von Java-Code mit JUnit. ÿstruktur eines Testfalls
Testen von Java-Code mit JUnit ÿmotivation ÿjunit-testklassen ÿjunit-testfälle ÿstruktur eines Testfalls Henning Wolf APCON Workplace Solutions GmbH wolf@jwam.de Motivation: Werkzeugunterstützung für Tests
MehrIst Qualität nachrüstbar? Testen, Dokumentation und Code Qualität von Anfang an
Ist Qualität nachrüstbar? Testen, Dokumentation und Code Qualität von Anfang an Was ist Qualität? Definition laut EN ISO 9000:2005 Qualität wird definiert als "Grad, in dem ein Satz inhärenter Merkmale
MehrWarum beisst sich SCRUM so oft mit Testen?
Warum beisst sich SCRUM so oft mit Testen? Dank angepasstem Testmanagement können auch SCRUM Projekte erfolgreich sein! Vers.2.1 Dominique Portmann Leiter Testengineering, Noser Engineering Wie erlebe
MehrSoftware-Entwicklung
Software-Entwicklung SEP 96 Geschichte der Programmierung Aufgaben von, Anforderungen an Programme mit der Zeit verändert 1 Programmierung über Lochkarten z.b. für Rechenaufgaben 2 maschinennahe Programmierung
MehrEinsatz automatischer Testdatengenerierung im modellbasierten Test
Einsatz automatischer Testdatengenerierung im modellbasierten Test Sadegh Sadeghipour sadegh.sadeghipour@itpower.de Gustav-Meyer-Allee 25 / Gebäude 12 13355 Berlin www.itpower.de Modellbasierte Software-Entwicklung
MehrTeam Foundation Server & Ranorex Workshop
Tag 1: Testing Fundamentals Der Kurs (Tag) zeigt wie Software Tests in einem "best practice" Ansatz gestaltet werden können. Referenzierend auf den ISTQB gibt es ein "Best off" aus der Gestaltung, Abwicklung,
MehrSwp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept
Testkonzept 1.Einführung Um die Zuverläsigkeit und die Qualität der Software und des gesamten Systems zu verbessern, sind Tests durchzuführen. Die Testreihe läst sich in drei Stufen einteilen, nülich Komponententest,
MehrRefactoring von Legacy Systemen. Jochen Winzen jochen.winzen@andrena.de andrena objects ag
Refactoring von Legacy Systemen Jochen Winzen jochen.winzen@andrena.de andrena objects ag Was ist ein Legacy System Ein Legacy System hat folgenden Eigenschaften: + Besitzt die geforderte Funktionalität
MehrProgrammierprojekt: So0ware Tests. Anne6e Bieniusa Sommersemester 2017
Programmierprojekt: So0ware Tests Anne6e Bieniusa Sommersemester 2017 Testen Kernfrage: Erfüllt die So0ware ihre Anforderungen / SpezifikaGon? FunkGonale Anforderungen Korrekte Ergebnisse bei Berechnungen
MehrTestphase. Das Testen
Testphase VIS Projekt Freie Universität Berlin N.Ardet - 17.4.2001 Das Testen Testen ist das Ausführen eines Software- (Teil)systems in einer definierten Umgebung und das Vergleichen der erzielten mit
MehrTeststrategie festlegen und Teststufen aufeinander abstimmen
Testen Teststrategie festlegen und Teststufen aufeinander abstimmen Bereich Projektplanung und -steuerung Aktivität Projekt planen Ziele Effiziente Testausführung Vermeidung von doppelter Arbeit schnell
MehrERSTELLUNG EINES KONZEPTS ZUM TESTEN DER PERFORMANCE VON JAVA CODE MIT HILFE DER FRAMEWORKS JUNIT UND TESTNG
ERSTELLUNG EINES KONZEPTS ZUM TESTEN DER PERFORMANCE VON JAVA CODE MIT HILFE DER FRAMEWORKS JUNIT UND TESTNG VORTRAG ZUR SEMINARARBEIT JOHANNES WALLFAHRER 20. JANUAR 2016 Inhalt 1. Einleitung 2. Was ist
MehrKonfigurationsmanagement und Evolution: Änderungsverwaltung und Repository-Analyse. Dr. Thorsten Arendt Marburg, 12. November 2015
Konfigurationsmanagement und Evolution: Änderungsverwaltung und Repository-Analyse Dr. Thorsten Arendt Marburg, 12. November 2015 Überblick Was ist eine Änderungsverwaltung und warum braucht man sie? Fehlerverfolgung
MehrActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0
Jens Kohlmeyer 05. März 2007 Institut für Programmiermethodik und Compilerbau ActiveCharts Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Seite 2 Übersicht
MehrProperty Based Testing
Property Based Testing Nicolai Mainiero sidion Testen ist schwer Testen ist schwer Warum? Alle Pfade durch den Code aufzuzählen ist aufwendig. Selbst vermeintlich einfache Systeme können komplex sein.
MehrAbschlussbericht. Erstellung eines automatisierten Build-Prozesses für Eclipse-RCP- Anwendungen am Fallbeispiel Control System Studio.
Abschlussbericht Erstellung eines automatisierten Build-Prozesses für Eclipse-RCP- Anwendungen am Fallbeispiel Control System Studio Christian Weber Agenda Motivation (3-5) Vorgehen (6-7) Konzeptionelle
MehrWann lohnt sich GUI- Testautomatisierung?
Wann lohnt sich GUI- Testautomatisierung? Martin Moser, Gregor Schmid Quality First Software GmbH qfs@qfs.de Tel: +49 8171 919870 2006-2007 Quality First Software GmbH 26.02.2007 1 Überblick Hintergrund
MehrQualitätssicherung von Software am Beispiel von Unit Testing. Klaus Kusche, Mai 2012
Qualitätssicherung von Software am Beispiel von Unit Testing Klaus Kusche, Mai 2012 Inhalt Motivation Definition von Unit Tests, Einordnung in der QA, Nutzen Einordnung im V-Modell (==> Tafel) Inhalt,
MehrKonfigurationsmanagement und Evolution: Änderungsverwaltung und Repository-Analyse. Dr. Thorsten Arendt Marburg, 13. November 2014
Konfigurationsmanagement und Evolution: Änderungsverwaltung und Repository-Analyse Dr. Thorsten Arendt Marburg, 13. November 2014 Überblick Was ist eine Änderungsverwaltung und warum braucht man sie? Fehlerverfolgung
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel Alina Stürck WS2016/17 11. Oktober 2016 Objektorientierte Programmierung OOP 1 Was ist das? 2 Wie geht das? 3 Warum
MehrInhaltsverzeichnis. Geleitwort Einleitung... 13
5 Geleitwort..................................................... 11 Einleitung..................................................... 13 1 Einführung.......................................................
MehrInformationswirtschaft II Rational Unified Process (RUP)
Informationswirtschaft II Rational Unified Process (RUP) Wolfgang H. Janko, Michael Hahsler und Stefan Koch Inhalt Historische Entwicklung Kennzeichen von RUP Lebenszyklus und Phasen Arbeitsabläufe Das
MehrInformationswirtschaft II
Rational Unified Process (RUP) Informationswirtschaft II Wolfgang H. Janko, Michael Hahsler und Stefan Koch Seite 1 Inhalt Historische Entwicklung Kennzeichen von RUP Lebenszyklus und Phasen Arbeitsabläufe
MehrTest. Dipl. Wirtsch. Ing. Alexander Werth 9-1
Test Dipl. Wirtsch. Ing. Alexander Werth 9-1 Phasen der Problemdefinition Anforderungsanalyse Spezifikation Entwurf Implementation Erprobung Wartung Methoden der 9-2 Software Test / Erprobung Messen der
MehrPflichtlektüre hierzu: Kosten und Nutzen von UML in der Wartung. Kontrolliertes Experiment zu UML. Warum UML?
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Kosten und Nutzen von UML in der Wartung Prof. Walter F. Tichy Pflichtlektüre hierzu: Dzidek, Arisholm, Briand, A Realistic Empirical Evaluation
MehrTesting Today - Seminar Sommersemester 2015. Dipl.-Math. Raphael Pham, Prof. Kurt Schneider
Sommersemester 2015 Dipl.-Math. Raphael Pham, Prof. Kurt Schneider Heute Überblick über relevante Research Topics Vergabe der Themen 2 Aktuelle Forschungsthemen im Software Testing 3 Definition: Software
MehrÜbungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit
Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList
MehrSoftwaretests. verschiedene Testformen Testen im V-Modell: Anwendungsszenarien. Tests. Tests. Tests. Anforderungs- definition. Abnahmetest.
Softwaretests verschiedene Testformen Testen im V-Modell: Anforderungs- definition Anwendungsszenarien Abnahmetest Grobentwurf Tests Systemtest Feinentwurf Tests Integrationstest Implementierung Tests
MehrJens Borchers. Kritische Erfolgsfaktoren beim Abnahmetest in Redevelopment- Projekten Erfahrungen aus einem Großprojekt
Chemnitz 24.11.2006 Jens Borchers Kritische Erfolgsfaktoren beim Abnahmetest in Redevelopment- Projekten Erfahrungen aus einem Großprojekt Vortrag bei der RePro2006 in Chemnitz am 24. November 2006 Kritische
MehrTesten mit Fit und Fitnesse. Ludger Solbach
Testen mit Fit und Fitnesse Ludger Solbach 22.09.2006 Agenda Agenda Einführung Teststufen, Testarten Probleme beim Testen Fit/Fitnesse Vorstellung Arbeitsweise Features Demo Fazit 09/22/06 SSE1 Ludger
MehrProgrammieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 Testen von Programmen 2 Übersicht Testen ist eine der wichtigsten, aber auch eine der Zeitaufwändigsten Arbeitsschritte
MehrWas ist Wartung und welche vier Arten der Wartung unterscheidet die Norm ISO/IEC 12207? Wie lautet die Regel von Boehm? (ein Beispiel ausrechnen)
1.99 Fragen zu: Software-Wartung Was ist Wartung und welche vier Arten der Wartung unterscheidet die Norm ISO/IEC 12207? Welche Qualitätseigenschaften erhöhen (Ihrer Auffassung nach) die Wartbarkeit und
MehrIterative Softwareentwicklung. Ullrich Köthe 19. April 2001
Iterative Softwareentwicklung Ullrich Köthe 19. April 2001 2 Traditionelles Entwicklungsmodell von Geräteentwicklung inspiriert: je später eine Änderung notwendig wird, desto teurer 12000 10000 8000 6000
MehrUniversität Bielefeld. Softwarepraktikum. Gernot A. Fink SS Rückblick extreme Programming (XP)
Softwarepraktikum Gernot A. Fink SS 2005 Rückblick extreme Programming (XP) extreme Programming: Die Idee XP takes common sense principles and practices to extreme levels. (Kent Beck, 2001) (d.h. alles,
MehrTesten II. (Management, Tools) Daniela Rose. Software Engineering Projekt WS07/08 Fachgebiet Softwaretechnik und Systemgestaltung
Testen II (Management, Tools) Daniela Rose Fachgebiet Softwaretechnik und Systemgestaltung 12.12.2007 Gliederung 1. Motivation 2. Der grundlegende Testprozess 3. Testen im Softwareentwicklungsprozess 4.
MehrSoftware-Test: Funktionstest
0/23 Software-Test: Funktionstest Andreas Zeller Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken Funktionale Testverfahren 1/23 Funktionale Testverfahren testen gegen die Spezifikation
MehrFachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn. Testen. Tutorial im Rahmen des Software(technik)praktikums SS 2012
Testen Tutorial im Rahmen des Software(technik)praktikums SS 2012 Grundlagen (1) Software ist ein fundamentales Element in der Softwarequalitätssicherung Software wird am häufigsten eingesetzt Viele Organisationen
MehrLean Modeling - Software Systeme einfach und präzise mit natürlicher Sprache spezifizieren
Lean Modeling - Software Systeme einfach und präzise mit natürlicher Sprache spezifizieren Dr. Christian Wende und Dr. Tobias Nestler, DevBoost GmbH 21. Mai 2014, Karlsruher Entwicklertag 2014, Dresden
MehrSoftwareentwicklungspraktikum Sommersemester 2007. Testdokumentation
Softwareentwicklungspraktikum Sommersemester 2007 Testdokumentation Auftraggeber Technische Universität Braunschweig
MehrUnit Tests. Programmiermethodik. Eva Zangerle Universität Innsbruck
Unit Tests Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
MehrJava Schulung. Objektorientierte Programmierung in Java Teil IV: Testen mit JUnit. Prof. Dr. Nikolaus Wulff
Java Schulung Objektorientierte Programmierung in Java Teil IV: Testen mit JUnit Prof. Dr. Nikolaus Wulff JUnit JUnit ist das Opensource Testframework. Es existieren Portierungen für fast alle objektorientierten
MehrEinführung und Motivation
Einführung und Motivation iks-thementag: Requirements Engineering 16.11.2010 Autor Carsten Schädel Motto Definiere oder Du wirst definiert. Seite 3 / 51 These Im Privatleben definiert jeder (seine) Anforderungen.
MehrCode verifizieren mittels
Code verifizieren mittels Unit- und Regressionstests Institut für Numerische Simulation, Universität Bonn Seminarreihe Technische Numerik Wozu sollen gut sein? Was für Testarten gibt es? Wie funktionieren
MehrVector Software. Test Automation mit VectorCAST während der gesamten Softwareentwicklung W H I T E P A P E R
Vector Software W H I T E P A P E R Test Automation mit VectorCAST während der gesamten Softwareentwicklung VectorCAST Produktfamilie Die VectorCAST Produktfamilie automatisiert Testaktivitäten über den
Mehr