Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Vortragende: Dennis Kalkofen, Carsten Takac Visuell-unterstütztes Programmieren Visuelles Testen von Programmen TU Darmstadt, Fachbereich Informatik Seminar:

Ähnliche Präsentationen


Präsentation zum Thema: "Vortragende: Dennis Kalkofen, Carsten Takac Visuell-unterstütztes Programmieren Visuelles Testen von Programmen TU Darmstadt, Fachbereich Informatik Seminar:"—  Präsentation transkript:

1 Vortragende: Dennis Kalkofen, Carsten Takac Visuell-unterstütztes Programmieren Visuelles Testen von Programmen TU Darmstadt, Fachbereich Informatik Seminar: Visuell unterstütztes Programmieren SS 2002 Vortrag am , betreut von Prof. em. Dr. H.-J. Hoffmann

2 Gliederung Wofür testet man Programme? Testen des Syntax Testen einzelner Programmteile Integrationstests Tests nach Programmänderungen

3 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Wofür testet man Programme? Fehlersuche, -korrektur Erkennen konzeptioneller Probleme Verständnis Zusammenspiel der Bestandteile Test auf bestimmte Eigenschaften Laufzeitanalyse

4 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Übersichtlichkeit Lesbarkeit Verständnis mehr als nur Schönschrift erleichtert Teamarbeit Formatieren von Quelltext

5 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Formatierungsmittel Anordnung des Codes Namen von Bezeichnern farbcodierter Text Kommentierungen Linien zur Unterteilung

6 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung

7 Worauf ist zu achten? die ganze Programmierergruppe muß damit zurecht kommen nicht gegen gängige Konventionen Unterstützung des Editors und der IDE Richtlinien regelmäßig überprüfen

8 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Animierte Algorithmen zeigen den dynamischen Programmablauf dienen zum Programmverständnis finden von Fehlern Abstraktion

9 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel: Quicksort Größe des Elementes Array

10 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel: Quicksort Größe des Elementes Array

11 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel: Quicksort Größe des Elementes Array

12 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel: Quicksort Größe des Elementes Array

13 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel: Quicksort Größe des Elementes Array

14 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel: Quicksort Größe des Elementes Array

15 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel: Quicksort Größe des Elementes Array

16 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel: Quicksort Größe des Elementes Array

17 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel: Quicksort Größe des Elementes Array

18 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel: Quicksort Größe des Elementes Array

19 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel: Quicksort Größe des Elementes Array

20 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel: Quicksort Größe des Elementes Array

21 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel: Quicksort Größe des Elementes Array

22 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel: Quicksort Größe des Elementes Array

23 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel: Quicksort Größe des Elementes Array

24 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel: Quicksort Größe des Elementes Array

25 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel: Quicksort Größe des Elementes Array

26 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel: Quicksort Größe des Elementes Array

27 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Bewertung der Animation mit einfachen Mitteln die Funktionsweise von Bubblesort gezeigt abstrahiert auf rote/grüne Balken dennoch das Wesentliche ersichtbar => ein Fehler wäre mit dieser Animation leicht zu finden

28 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel 2: Sortieralgorithmen im Vergleich

29 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Bewertung der Animation andere Betrachtungsweise von Sortieralgorithmen Vergleich des Verlaufs besser möglich Rückschlüsse auf Arbeitsweise Rückschlüsse auf Komplexität

30 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Exkurs: Tonunterstützung Erweitern oder Ersetzen von visuellen Mitteln gleichzeitiges Arbeiten mit visuellen Mitteln stört nicht die GUI eines Programmes kann leichtere Darstellung sein als visuell

31 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung

32 Umrißdiagramme ursprünglich für ALGOL-Programme entwickelt angepaßt an Objektorientierung und Logische Sprachen visualisieren Änderungen während Programmablauf Basis für Testprogramme

33 Aufbau Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung bestehen aus ineinandergeschachtelten Boxen jede Box repräsentiert Zustand einer Prozedur Veränderungen während Programmablauf Box beinhaltet Attribute, Rücksprungadresse (rpdl) und Quelltext instruction pointer Box wird gelöscht, wenn zurückgesprungen wird

34 Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung Beispiel idattrvalue x y p1 int proc 2 10 p1.cf rpdlsystem begin... end f; f

35 Aufruf einer Prozedur Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung idattrvalue rpdlsystem var x, y : int; procedure p1(value y: int); y := 1; end p1; begin x := 1; p1(0); y := 3; end f; f

36 Aufruf einer Prozedur Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung idattrvalue xyxy int - rpdlsystem var x, y : int; procedure p1(value y: int); y := 1; end p1; begin x := 1; p1(0); y := 3; end f; f -

37 Aufruf einer Prozedur Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung idattrvalue x y p1 int proc - rpdlsystem var x, y : int; procedure p1(value y: int); y := 1; end p1; begin x := 1; p1(0); y := 3; end f; f - -

38 Aufruf einer Prozedur Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung idattrvalue x y p1 int proc 1 rpdlsystem var x, y : int; procedure p1(value y: int); y := 1; end p1; begin x := 1; p1(0); y := 3; end f; f - -

39 Aufruf einer Prozedur Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung idattrvalue x y p1 int proc 1 rpdlsystem var x, y : int; procedure p1(value y: int); y := 1; end p1; begin x := 1; p1(0); y := 3; end f; f - cf y := 1; rpdl id attr value y int 0 y:=3;

40 Aufruf einer Prozedur Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung idattrvalue x y p1 int proc 1 rpdlsystem var x, y : int; procedure p1(value y: int); y := 1; end p1; begin x := 1; p1(0); y := 3; end f; f - cf y := 1; rpdl id attr value y int 1 y:=3;

41 Aufruf einer Prozedur Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung idattrvalue x y p1 int proc 1 rpdlsystem var x, y : int; procedure p1(value y: int); y := 1; end p1; begin x := 1; p1(0); y := 3; end f; f 3 -

42 Aufruf einer Prozedur Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung idattrvalue x y p1 int proc 1 rpdlsystem var x, y : int; procedure p1(value y: int); y := 1; end p1; begin x := 1; p1(0); y := 3; end f; f 3 -

43 Dynamische Datenstrukturen Beispiel: Array Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung in Heaps dargestellt idattrvalue AxAx arr int rpdl... f 10 true 12 false

44 Testen komplexer Systeme mit GUI Historisch: Mainframe Client/Server mit GUI Geänderte Anforderungen vielversprechender Ansatz: Capture/Replay Tools

45 Wie wird GUI gestestet? Einhaltung spezifizierter Vorgaben? Use-Cases Probleme: komplexe Abläufe Unmengen an Verzweigungen Manuell kaum möglich!

46 Automatisches Testen – Capture/Replay Tools Idee: - Aufzeichnen der Benutzeraktivitäten (Capture) - Editieren, Kombinieren - Wiedergabemöglichkeiten (Replay)

47 Capture/Replay Tools Tester Interaktion GUI C/R Tool capture replay Test Skript editieren, kombinieren Testsystem

48 Capture - GUI-Elemente als Objekte - User-Aktivitäten den Objekten zuordnen - Sequenz festhalten im Testskript

49 Testskript (1) FileOpen.Files.SelectFileName FileOpen.OK.Click - Erste Sequenz aufgezeichnet - Programmierung möglich

50 Testskript (2) FileOpen.OK.Click - Editiermöglichkeiten - Bibliotheken Auswahl SequenzFile.Edit.TextInput File.Edit.TextFormat Schleife … File.Scrollbar.Down

51 Replay - Gemerkte Aktionen automatisch ausführen - Objektorientierung ! - Kontrollpunkte für gewünschte Reaktion des GUI - Abweichungen in Datenbank speichern - Analyse / Korrektur der Fehler - erneute Ausführung

52 Bewertung - Multi-User-Einsatz - Zeitplanung - Schnelligkeit, Konsistenz, Reproduzierbarkeit - Einbeziehung der Anwender in Testphase - Kosten - Zeitplanung - Intelligenz des C/R Tools

53 Bibliographie - B. Jayaraman, C.M. Blatus: Visualizing program execution; Proc. IEEE Symp. Visual Languages, 1996, T. Hill et al.: Visualising the structure of object-oriented systems; Proc. IEEE Intl. Symp. Visual languages, 2000, R. Baecker et al.: Software visualization for debugging; Comm. ACM, 40 (1997) 4, E.F.Miller: Software test tools considered harmful?; Application Note, undatiert; - T.Souder et al.: Form – A framework for creating views of program execution; IEEE Intl. Conf. Software Maintenance, 2001, 612 ff - T. Ostrand et al.: A visual test development environment for GUI systems; ACM Software Engineering Notes, 23 (1998) 2, NN (GI): Questionnaire on OO-test tools; Mai 1999, - NN (Intl. Software Automation, Inc.): Java Analyzer & Panorama for Java;


Herunterladen ppt "Vortragende: Dennis Kalkofen, Carsten Takac Visuell-unterstütztes Programmieren Visuelles Testen von Programmen TU Darmstadt, Fachbereich Informatik Seminar:"

Ähnliche Präsentationen


Google-Anzeigen