1 / 53

Vortragende: Dennis Kalkofen, Carsten Takac

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

thea
Download Presentation

Vortragende: Dennis Kalkofen, Carsten Takac

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Visuell-unterstütztes ProgrammierenVisuelles Testen von Programmen Vortragende: Dennis Kalkofen, Carsten Takac TU Darmstadt, Fachbereich Informatik Seminar: Visuell unterstütztes Programmieren SS 2002 Vortrag am 10.06.02, 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 Formatieren von Quelltext • Übersichtlichkeit • Lesbarkeit • Verständnis • mehr als nur Schönschrift • erleichtert Teamarbeit

  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. Weshalb Testen | Syntax | Programmteile | Integrationstests | Programmänderung 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. Beginn kurze Zeit später Am Ende Bubblesort Quicksort Shellsort 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. Weshalb Testen | Syntax | Programmteile| Integrationstests | Programmänderung 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. Weshalb Testen | Syntax | Programmteile| Integrationstests | Programmänderung Aufbau • 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 f id attr value x y p1 int int proc 2 10 p1.cf rpdl system begin ... ... ... end f;

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

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

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

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

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

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

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

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

  43. Weshalb Testen | Syntax | Programmteile| Integrationstests | Programmänderung Dynamische Datenstrukturen Beispiel: Array f • in Heaps dargestellt id attr value A x arr int 12 false 10 true rpdl ... ...

  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. Testsystem C/R Tool GUI capture Interaktion replay Tester editieren, kombinieren Test Skript „Capture/Replay“ Tools

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

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

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

More Related