AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Softwaretesting in Delphi

Ein Thema von Angel4585 · begonnen am 4. Nov 2013 · letzter Beitrag vom 4. Nov 2013
Antwort Antwort
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#1

Softwaretesting in Delphi

  Alt 4. Nov 2013, 07:55
Guten Morgen!

Ich muss gestehen, ich habe bisher eher so drauflos programmiert und zumindest in Delphi nichts mit Unit-Tests am Hut gehabt.
Unit-Tests kenne ich bisher nur aus Java, C# und C++. Dementsprechend waren auch öfter mal Fehler in der Software die man halt übersehen hat.
Besonders für die Regressionstests fehlen mir die jetzt.

Wie ich in Delphi Unit-Tests erstelle ist eigentlich kein Problem, gibt ja auf der Tool-Palette ne Vorlage für Testprojekt und Testfall, die Frage is eher: Was teste ich genau?

Meine Anwendungen sehen oft so aus, dass ich ein Formular habe, ein Datenmodul und darauf dann TTables (bisher für BDE, in Zukunft TSQL... und Firebird) und TDataSourcen.
Unit-Tests habe ich bisher so verstanden, dass ich die für eigene Klassen verwende. In Delphi - bzw. in solchen Datenbankanwendungen - habe ich aber recht selten eigene Klassen die ich testen könnte. Ausser man bezeichnet die eigene GUI auch als eigene Klasse. Was testet man also?

Eigentlich sollte man ja alles testen. Also GUI und Datenbankzugriff.
Bei komplexeren Algorithmen gibt es ja wieder eigene Klassen die man testen kann.

Was testet man aber an ner GUI? Ob die Buttons am rechten Fleck liegen?
Und was testet man an der Datenbank? Ob alle Felder da sind die gebraucht werden?
Gibt es eigentlich auch Mocks für Delphi?
Gibt es zusätzliche Testframeworks die man dazukaufen sollte?

Ich arbeite mit Delphi 2010 Prof. und habe irgendwie Probleme mich beim Thema Testing zurecht zu finden, auch weil ich es wohl nie richtig mit Delphi gelernt habe. Ich wäre sehr dankbar, wenn ich Tipps zu dem Thema bekommen könnte.
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
7.451 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Softwaretesting in Delphi

  Alt 4. Nov 2013, 08:04
Ausser man bezeichnet die eigene GUI auch als eigene Klasse. Was testet man also?
Wir benutzen dafür TestComplete.
http://smartbear.com/products/qa-too...-testing-tools
Das setzt dann die Datenbank auf einen definierten Anfangszustand, klickt sich durch die GUI wie ein Benutzer auch, nur schneller, prüft die Ergebnisse, usw.

Also GUI und Datenbankzugriff.
Bei komplexeren Algorithmen gibt es ja wieder eigene Klassen die man testen kann.
Das Zusammenspiel zwischen den einzelnen Komponenten zu testen nennt man Integrationstests.
Und es macht auch durchaus Sinn die Datenbankkomponenten selbst mit zu testen. Der Fehler im TClientDataSet, bei dem bei XE5 vor dem Update Locate nicht mehr funktionierte, wäre bei uns ohne Tests kaum so schnell gefunden worden.

Gibt es eigentlich auch Mocks für Delphi?
Ja, dafür findest du z.B. von Nick Hodges viel Material:
https://code.google.com/p/delphi-spring-framework/
http://www.nickhodges.com/page/Depen...on-Series.aspx
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
2.748 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Softwaretesting in Delphi

  Alt 4. Nov 2013, 09:50
Unit-Tests habe ich bisher so verstanden, dass ich die für eigene Klassen verwende. In Delphi - bzw. in solchen Datenbankanwendungen - habe ich aber recht selten eigene Klassen die ich testen könnte. Ausser man bezeichnet die eigene GUI auch als eigene Klasse. Was testet man also?
Unittests sind nicht speziell für Klassen gedacht. Man kann alle Funktionen und Prozeduren damit testen, auch solche die global definiert sind. Wenn man einen Testcase selbst statt über den Wizard erstellt kann man beliebige Tests hinzufügen.

Im Prinzip tested man Code so wie man Zähne putzen sollte: alle die, die man behalten möchte

Viele Entwickler beginnen auch mit dem Schreiben der Tests, bevor die Funktion programmiert wird ("Testgetriebene Entwicklung"). Tests schreiben und Funktionen erstellen gehen dann Hand in Hand.

Tests eignen sich oft auch als erstklassige Dokumentation, da sie zeigen, wie eine Funktion oder Prozedur benutzt wird, welche Vor- und Nachbedinungen (z.B. Initialisierungen, Setzen von Properties) sie erfordern, und welche Exceptions erwartet werden (letzteres wird in DUnit über "ExpectedException" unterstützt).

p.s. Lesetipp für lange Winterabende: "xUnit Test Patterns: Refactoring Test Code" von Gerard Meszaros
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von rweinzierl
rweinzierl

Registriert seit: 22. Mär 2005
97 Beiträge
 
#4

AW: Softwaretesting in Delphi

  Alt 4. Nov 2013, 17:36
Ich habe lezte Woche den Moderator eines Workshops gefragt wie Sie Test schreiben, seine Antwort fand ich gut.

Test werden im 4 Augen Prenzip geschrieben, dann macht das ganze Sinn.

Beim eigenen Code fällt es mir auch schwer die richtigen Testfälle zu definieren, aber wenn der Entwickler einen Kollegen erklären muss was er macht die Dokumentation nochmals durchgeht dann können durchaus sinnvolle Tests entwickelt werden.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#5

AW: Softwaretesting in Delphi

  Alt 4. Nov 2013, 18:42
Gibt es eigentlich auch Mocks für Delphi?
Ja, dafür findest du z.B. von Nick Hodges viel Material:
https://code.google.com/p/delphi-spring-framework/
http://www.nickhodges.com/page/Depen...on-Series.aspx
Finde da nichts über Mocking, nur DI und Grundlagen, wie man Klassen schreibt, die ohne Mocking testbar sind. Aber vermutlich bin ich blind.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
7.451 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Softwaretesting in Delphi

  Alt 4. Nov 2013, 19:14
Hmm, ok, ich habe das nun auch vorhin im Büro nicht genau angeschaut, da hast du Recht. Bei den Themen hätte ich gedacht es sei dabei.
Dann eben hier:
http://nickhodges.com/post/Delphi-Mocks-The-Basics.aspx
https://github.com/VSoftTechnologies/Delphi-Mocks
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#7

AW: Softwaretesting in Delphi

  Alt 4. Nov 2013, 21:30
Danke!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf