AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Unit Testing sinnvoll?

Ein Thema von stahli · begonnen am 26. Okt 2010 · letzter Beitrag vom 1. Feb 2011
Antwort Antwort
Seite 2 von 3     12 3   
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Oldenburg (Oldb)
2.370 Beiträge
 
#11

AW: Unit Testing sinnvoll?

  Alt 27. Okt 2010, 14:14
Vor dem Hintergrund des GUI-Testings finde ich ja auch deshalb WPF so genial. Hier muss ich mich nicht mit Frameworks herumschlagen, die sich durch irgendwelche GUIs klicken, sondern ich erstell einfach n Test, der den Controller testet (vorrausgesetzt natürlich, ich arbeite mit einem entsprechenden Pattern). Die Ansicht ist ja dank Binding nur lose an den Controller gebunden.
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Reykjavík, Ísland
1.055 Beiträge
 
Delphi XE Professional
 
#12

AW: Unit Testing sinnvoll?

  Alt 27. Okt 2010, 15:12
Vor dem Hintergrund des GUI-Testings finde ich ja auch deshalb WPF so genial. Hier muss ich mich nicht mit Frameworks herumschlagen, die sich durch irgendwelche GUIs klicken, sondern ich erstell einfach n Test, der den Controller testet (vorrausgesetzt natürlich, ich arbeite mit einem entsprechenden Pattern). Die Ansicht ist ja dank Binding nur lose an den Controller gebunden.
Naja ... TestComplete nutzt auch Instrumentation und klinkt sich so in den Code ein und "sieht" bspw. die VCL-Eigenschaften. Aber das ist m.E.n. ein Problem mit Delphi/BCB: beide fördern schlechte Programmierung, indem der Programmierer dazu verführt wird den Code direkt in die Ereignisbehandlungsroutinen zu packen. Das ist natürlich am Anfang eine feine Sache, aber später nicht gerade Sahne wenn man sowas warten muß. Siehe: http://de.wikipedia.org/wiki/3-Tier#...en-Architektur

Einige Architekturen fördern diese Trennung einfach besser. Aber mit etwas Disziplin läßt sich das auch in Delphi umsetzen.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.855 Beiträge
 
Delphi Prism
 
#13

AW: Unit Testing sinnvoll?

  Alt 28. Okt 2010, 13:34
Wie oft macht man an Stelle A etwas und später fällt jemandem auf, dass an Stelle Q irgendwas nicht mehr funktioniert (durch Seiteneffekt der Änderung an A). Sowas decken die Unittests bei guter Abdeckung sofort auf und sparen dadurch massiv Zeit (Fehlersuche, wieder reindenken, nach der Änderung manuell alles durchtesten, wieder was vergessen, wieder später erneut suchen...).
Absolut. Schaut euch mal in anderen Sprach-Communities um (Ruby, Smalltalk, ...). Da ist es Gang und Gäbe zu "Units" auch die Tests mitzuliefern, was unter Anderem auch dazu führt, dass man ggf. nötige Anpassungen gefahrlos vornehmen kann.

Was agile Methoden betrifft, scheint mir die Delphi-Community allerdings etwas Yestercentury zu sein...
Leo S.
  Mit Zitat antworten Zitat
Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
159 Beiträge
 
Delphi 7 Professional
 
#14

AW: Unit Testing sinnvoll?

  Alt 16. Jan 2011, 18:22
Vor dem Hintergrund des GUI-Testings finde ich ja auch deshalb WPF so genial. Hier muss ich mich nicht mit Frameworks herumschlagen, die sich durch irgendwelche GUIs klicken, sondern ich erstell einfach n Test, der den Controller testet (vorrausgesetzt natürlich, ich arbeite mit einem entsprechenden Pattern). Die Ansicht ist ja dank Binding nur lose an den Controller gebunden.
Naja ... TestComplete nutzt auch Instrumentation und klinkt sich so in den Code ein und "sieht" bspw. die VCL-Eigenschaften. Aber das ist m.E.n. ein Problem mit Delphi/BCB: beide fördern schlechte Programmierung, indem der Programmierer dazu verführt wird den Code direkt in die Ereignisbehandlungsroutinen zu packen. Das ist natürlich am Anfang eine feine Sache, aber später nicht gerade Sahne wenn man sowas warten muß. Siehe: http://de.wikipedia.org/wiki/3-Tier#...en-Architektur

Einige Architekturen fördern diese Trennung einfach besser. Aber mit etwas Disziplin läßt sich das auch in Delphi umsetzen.
Hmm... heißt das, du rufst im Ereignis zb. OnBTN_Click eine Funktion zb. MaleAufCaptionEinenText auf?? Oder wägst du ab wie komplex die einzelnen Aufrufschritte sind.
Marko
http://www.glscene.de/
So`ne Atombombe kann einem den ganzen Tag verderben!
  Mit Zitat antworten Zitat
Unwissender

Registriert seit: 11. Dez 2003
16 Beiträge
 
#15

AW: Unit Testing sinnvoll?

  Alt 16. Jan 2011, 19:30
Hmm... heißt das, du rufst im Ereignis zb. OnBTN_Click eine Funktion zb. MaleAufCaptionEinenText auf?? Oder wägst du ab wie komplex die einzelnen Aufrufschritte sind.
Hi,

ohne das für Assabard beantworten zu wollen möchte ich schon mal sagen, dass die Antwort ganz klar JA lauten wird (so hätte ich das schon gesagte interpretiert) und so gilt das für saubere Entwicklung.

Die Komplexität der Ereignisbehandlung hat nichts damit zu tun ob oder wie die Trennung in verschiedene Schichten erfolgen soll. Der Grund dass man im einfachsten Fall das GUI von der Domänenlogik trennt liegt nicht darin, dass die Komplexität sinkt oder man leichter testen kann, vielmehr haben die beiden Schichten unterschiedliche "Lebenszeiten".
So kann sich ein GUI sehr schnell und häufig ändern, ohne dass das einen Einfluss auf die Fachlichkeit hat. Auch kann es gut sein, dass Du mehrere GUIs unterstützen musst, z.B. ein Webinterface, einen Fatclient und vielleicht noch mal eine extra Oberfläche für's Smartphone.

Nimmst Du also einfach immer und sofort die Trennung vor, dann geht das in Routine über, Du arbeitest gleich richtig und musst nicht überlegen ob die Komplexität jetzt hoch genug ist es zu trennen. Alles was nicht nur mit der Darstellung in einem GUI zu tun hat, gehört da einfach nicht rein. Dass Du so leichter testen oder das GUI austauschen kannst. Auch steigt die Wartbarkeit, keiner muss lange durch die Ereignisbehandlung gehen und schauen, ob hier noch Logik drinsteckt, die nichts mit der Anzeige zu tun hat. Entsprechend weißt Du auch schon, in welcher Schicht Du Änderungen einpflegen musst, für solche an der Fachlichkeit musst Du nicht durch ein GUI durch und dort die richtige Stelle suchen. Zuguter letzt kannst Du hier auch schöner sprechende Methodennamen verwenden, da die nun die Fachlichkeit beschreiben und nicht die Behandlung eines bestimmten Buttons, der gedrückt wurde.
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Reykjavík, Ísland
1.055 Beiträge
 
Delphi XE Professional
 
#16

AW: Unit Testing sinnvoll?

  Alt 17. Jan 2011, 01:46
Was soll man dem noch hinzufügen

In der Tat würde die Trennung immer erfolgen, da statt einer grafischen Benutzeroberfläche ja auch eine Textmodusoberfläche stehen könnte ...
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
Ort: Offingen
3.159 Beiträge
 
Delphi XE Professional
 
#17

AW: Unit Testing sinnvoll?

  Alt 17. Jan 2011, 05:24
Wie viel Zeit wird von euch denn für solche Unit-Tests denn investiert? Ich persönlich habe den Sinn zwar schon verstanden, sehe es aber teilweise als unwirtschaftlich an, wenn ich mir da so manche Videos angeschaut habe. Klar, wenn ein blöder Fehler versteckt ist, kann es sein, dass ich (also der Programmierer) dann teurer kommt, da er erst mal den Fehler ausfindig machen muss. Aber eine Kennzahl wäre hier schon mal interessant zu wissen. Gerne auch prozentual zu den Stunden, die wirklich am Projekt selbst gearbeitet wird.
Armin
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Reykjavík, Ísland
1.055 Beiträge
 
Delphi XE Professional
 
#18

AW: Unit Testing sinnvoll?

  Alt 18. Jan 2011, 10:29
Wie viel Zeit wird von euch denn für solche Unit-Tests denn investiert? Ich persönlich habe den Sinn zwar schon verstanden, sehe es aber teilweise als unwirtschaftlich an, wenn ich mir da so manche Videos angeschaut habe.
Soviel wie es eben benötigt.

Unit-Tests können teilweise ja sogar als Ersatz einer Spezifikation dienen. Die Idee ist ja bei einer möglichst großen Abdeckung mit Tests die darunterliegende Implementation beliebig abändern zu können und sicher zu sein, daß es noch funktioniert.

Abgesehen davon ist natürlich "unwirtschaftlich" etwas weithergeholt. Wenn man bedenkt daß die meisten Projekte mit schlechter Testabdeckung und/oder Planung schwer wartbar sind und die Wartung (und Fehlersuche/-behebung) sehr lange dauert, relativiert sich das wieder.

Sobald du mal, statt eine Funktion 100x über irgendwas laufen zu lassen und trotzdem nicht zu wissen ob deine Änderung korrekt war, eine kleine Änderung gemacht hast und dann deine Tests drüberlaufen lassen kannst und mit Gewissheit weißt, daß die Änderungen bei erfolgreichem Testdurchlauf korrekt sind, dürfte dir die Wirtschaftlichkeit klar werden
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
Ort: Offingen
3.159 Beiträge
 
Delphi XE Professional
 
#19

AW: Unit Testing sinnvoll?

  Alt 18. Jan 2011, 15:33
Muss mir dann wahrlich mal anschauen, wie ich denn diese Tests dann erstelle. Mir erscheint es nur bei kleineren Projekten weniger sinnvoll, vor allem weil ich immer alleine dran gearbeitet hatte. Aber wenn mehrere Personen an etwas frickeln, wird es dann wahrlich schon interessanter. Danke für die nochmalige Erläuterung
Armin
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Reykjavík, Ísland
1.055 Beiträge
 
Delphi XE Professional
 
#20

AW: Unit Testing sinnvoll?

  Alt 18. Jan 2011, 17:04
Mir erscheint es nur bei kleineren Projekten weniger sinnvoll, vor allem weil ich immer alleine dran gearbeitet hatte.
Aaaah, verstehe. Darauf willste hinaus. Das ist natürlich korrekt. Bei kleinen Tools nimmt man gern Abkürzungen. Ich habe mich allerdings schon mehrfach dabei erwischt, daß Abkürzungen dazu führten, daß ich mich nach einem halben Jahr oder länger fragte, was mein Ich in der Vergangenheit sich wohl bei dieser oder jener Sache dachte. Da ist es dann gut Kommentare oder Tests für die entsprechende Funktion/Zeile zu haben. Die Tests sind in dem Sinne ja auch durchaus Dokumentation.

Aber die Integration der Tests kann in der Tat problematisch sein ... je nachdem was man schreibt und in welchem Stil. In diversen Sprachen haben sich da Standards herausgebildet. Was es bei Delphi ist, weiß ich nicht ... würde mich allerdings durchaus interessieren
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  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 · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2014 by Daniel R. Wolf