Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Unit tests für JCL/JVCL (https://www.delphipraxis.net/205145-unit-tests-fuer-jcl-jvcl.html)

TurboMagic 5. Aug 2020 10:35

Unit tests für JCL/JVCL
 
In einem anderen Thread hier:
https://www.delphipraxis.net/205011-...ml#post1471149

hat das geschätzte Forenmitglied Stevie die Frage nach Unit Tests für JCL/JVCL aufgeworfen.

Das bringt mich zu verschiedenen Fragen:

1. Ja, wie müsste man Unit Tests für diese immer noch häufig genutzten Bibliotheken aufsetzen?

2. Zumal diese ja immer noch Uralt Delphi Versionen bis D6 unterstützen.
(ich persönlich hätte da schon länger mal D2009 als neue Untergrenze angesetzt wegen Unicode)
Man kann die Nutzerschaft meiner Meinung nach ruhig mal zum Update auf neuere Versionen animieren,
auch wenn es für manche der Projekte etwas Umstellungsaufwand durch die Unicode Migration
bedeuten würde. Da aber auch die IDE, trotz aller momentan vorhandener Probleme, doch einiges
dazu gelernt hat seit D6/D7 kann sich das alleine deshalb schon lohnen. Muss aber jeder selber wissen.

3. Was als Testframework benutzen? DUnit was schon seit < D2009 dabei ist oder DUnitX, welches derzeit
keinen schönen GUI Testrunner hat (Ja, Stevie's Testinsight ist eine Alternative dafür)?

4. Wie die Tests in die Ordnerstruktur einfügen und wie die Tests organisieren? EIne Unit-Test Unit pro
zu testender Unit oder pro zu testender Klasse?

5. Namenskonvention?

6. Wie die Testabdeckung messen?

7. Und wie im Delphi Umfeld generell mehr Leute vom reinen Konsumieren zum Mitmachen bei vorhandenen
oder neuen Open Source Projekten animieren?
Wie man z. B. an diesem Thread sieht:
https://www.delphipraxis.net/205039-....html#poststop
gibt es durchaus Leute die bereit sind etwas beizusteuern, aber evtl. einfach für einen Start etwas
"Händchenhalten"/Anleitung durch die Community benötigen.

=> es müssen ja nicht immer ewig komplexe/zeitaufwändige Beiträge sein, manchmal hilft es schon XMLDOC
Dokumentation zu nicht gleich verständlichen Methoden die man selber aber gut genug kennt beizusteuern
oder kleinere Anpassungen oder eben einen Unit Test für eine Methode deren Verwendung mal selber
"Erforscht" hat und sich dann denkt: naja, hätte ich einen Unit-Test dazu gehabt, hätte ich die
Funktionsweise viel schneller verstanden. Oder im entsprechenden Bugtracker beim Auftauchen neuer
Bugmeldungen die nicht gleich klar sind mal beim Einreicher nach den vermutlich noch wünschenswerten
Informationen nachhaken, damit das nicht auch noch die Zeit der eigentlichen Bibliotheksentwickler
kostet. Dem Einreicher ist manchmal nicht klar, was er noch an Infos liefern soll, einem ausenstehenden
Leser aber schon, da er meist nicht ganz so tief in der Materie drin ist wie der Einreicher.

Grüße
TurboMagic

Stevie 5. Aug 2020 10:49

AW: Unit tests für JCL/JVCL
 
Gute Fragen - mal kurz meine Gedanken dazu:

Wie schon im anderen Thread gesagt und das hat nix mit JCL/JVCL zu tun: einfach anfangen.

Oftmals werden keine Tests geschrieben, weil sich keiner traut einfach einen zu erstellen. "Ach, das werden wir eh nie alles testen können. Und was ist mit der Testabdeckung, wie stell ich sicher, dass wir auch alles testen?" Klar, nur weil man dreieinhalb Tests geschrieben hat kann man sich nicht zurücklehnen und denken, nun gibt's keine Defekte mehr. Aber grad wenn man an etwas rumschraubt, find ich persönlich Tests unglaublich nützlich. Die dienen allgemein ja nicht der Bestätigung, wie viele grüne Haken man produzieren kann, sondern der Sicherstellung, dass Änderungen nix kaputt machen.

Klar, mit CI und allem Komfort ist das natürlich am ende richtig geil, aber hier würd ich einfach klein anfangen - man fast was an (ja, visuelle Komponenten sind so ne Geschichte für sich, nicht visuelles lässt sich viel einfacher testen, also evtl erstmal da beginnen, da gibt ja die JCL schon ne Menge her und JVCL hat auch genug nicht visuelles).

Wenn du auf 2009 oder eher bleiben willst würd ich nach wie vor DUnit empfehlen, DUnitX geht erst ab XE oder höher - meiner persönlichen Meinung bietet das auch keinen Mehrwert, den man hier unbedingt bräuchte. DUnit hat alles, was man braucht und kann auch ohne TI mit der UI betrieben werden.

In Verbindung damit würde ich auch mal schauen, ob man in dem Repo ein bisschen aufräumen kann, da liegt noch so viel alter Schrott rum, da kann bestimmt einiges von in die Tonne - das ist im git, da darf man auch mal was löschen, was nicht mehr benötigt wird ;)

Der schöne Günther 5. Aug 2020 11:05

AW: Unit tests für JCL/JVCL
 
Punkte 3-6 sollten eigentlich von den Maintainern des Projektes (JCL) vorgegeben werden.

Und ich will es nicht schlechtmachen, aber dass die Jungs seit Jahren nicht einmal mehr Versionsnummern für den veröffentlichten Kram machen sondern jeder halt noch irgendwas committet hat mich wirklich von der JCL weggetrieben.

Vielleicht bin ich ein Weichei, aber mir fällt es schon super schwer, bei Tests für eine Bibliothek die noch bis Delphi XE laufen soll irgendwie mit dabei zu bleiben. Ich kann doch nicht ernsthaft ein Dutzend verschiedene Versionen installieren? Bis wie weit die JCL den Anspruch hat runterzugehen will ich lieber gar nicht wissen...

freimatz 5. Aug 2020 11:20

AW: Unit tests für JCL/JVCL
 
Die unit-tests müssten ja nicht unbedingt mit allen Version. Es würde IMHO reichen, dass die mit der jeweils neuesten Delphi Version tun.

Stevie 5. Aug 2020 11:20

AW: Unit tests für JCL/JVCL
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1471210)
Vielleicht bin ich ein Weichei, aber mir fällt es schon super schwer, bei Tests für eine Bibliothek die noch bis Delphi XE laufen soll irgendwie mit dabei zu bleiben. Ich kann doch nicht ernsthaft ein Dutzend verschiedene Versionen installieren? Bis wie weit die JCL den Anspruch hat runterzugehen will ich lieber gar nicht wissen...

Gut, du meinst nun Tests, die auch sicher stellen, dass es auf *allen* unterstützten Delphiversionen läuft - so weit war ich hier noch gar nicht - meine flapsige Aussage, die den Stein hier angestoßen hat, bezog sich auf eine Änderung, deren Korrektheit nix mit der Delphiversion zu tun hat.

Ich stimme dir aber zu, dass open source Entwicklung und Qualitätsicherung für alle unterstützte Versionen und Platformen in Delphi eine riesengroße "pita" ist. Und das sag ich als jemand, der in seinen Bibliotheken derzeit "nur" bis XE runter supported.

dummzeuch 5. Aug 2020 12:26

AW: Unit tests für JCL/JVCL
 
Solange sich keiner findet, der das macht, wird nichts passieren. Die aktuellen Maintainer machen immernoch einen guten Job, aber auch ihre Zeit ist vermutlich begrenzt.

Ich persönlich habe nach der Migration zu github nichts mehr beigetragen (vorher hatte ich Schreibrechte auf das SVN Repository auf Sourceforge), aber wirklich Zeit dafür hätte ich sowieso nicht.

TurboMagic 5. Aug 2020 12:41

AW: Unit tests für JCL/JVCL
 
Danke schon mal für diese konstruktive und lebhafte Diskussion!

Ja, Tests können sich ruhig auf die neueste Version beschränken!
Ich mach' das in der DEC https://github.com/winkelsdorf/Delph...tionCompendium

Dass gewisse Punkte von den Maintainern vorgegeben werden sollten kann ich einsehen,
ich trete auch dort im Forum mal eine Diskussion los.

Und ja: irgendwer muss mal irgendwie anfangen.
Ich kenne mich in JCL/JVCL jedoch auch nicht gerade gut aus, auch wenn ich letztes Jahr den einen
oder anderen Bug gefixt habe und beim Update der Unicode Definitionen mitgewirkt habe.

=> was wäre eine Ecke dieser Projekte wo man mal ohne zuviele Vorkenntnise ein paar einfache Tests
umsetzen könnte um einen Anfang zu machen?

TurboMagic 5. Aug 2020 13:16

AW: Unit tests für JCL/JVCL
 
Siehe hier, Thema vom 5.8.2020, kann scheinbar nicht direkt da hin verlinken:
https://newsportal.delphi-jedi.org/t...p=jedi.general

TurboMagic 5. Aug 2020 20:14

AW: Unit tests für JCL/JVCL
 
Nach dieser Aussage aus dem Jedi-Forum hier aber mal gleich ran an die Arbeit: ;-)

> Hi,
>
> There are some existing units in
> https://github.com/project-jedi/jcl/...utomated/dunit
>
> But they have not been updated for years...

himitsu 5. Aug 2020 21:24

AW: Unit tests für JCL/JVCL
 
Zitat:

ich persönlich hätte da schon länger mal D2009 als neue Untergrenze angesetzt wegen Unicode
Was sich nicht auschließen muß.

Klar, es gibt einen Mehraufwand, oder auch nicht.
Man könnte solche Projekte auftrennen.
* eine/mehrere Legacy-Version für ältere Delphis
* und eine aktuelle Version, wo man den alten "Mist" endlich entsorgen kann

* die Alte z.B. für ANSI (2007 und davor)
* vielleicht auch schon noch später den Cut -> z.B. ab 10.x, bzw. ab einer der späteren XEs
* und eine bereinigte aktuelle Version ohne jeglichen alten Code (abgesehn von neuerem "AltCode" für aktuellere "alte" Versionen)

-

* beim neuen Code wird es einfacher, ohne Altcode oder durch Nutzung neuer Compiler-Features und Units
* teilweise muß man dann eben die alten Versionen zusätzlich (doppelt) pflegen, wenn man gewisse Dinge nicht mehr direkt zurück portieren kann
** aber die zusätzliche Zeit hat man ja beim Neuen vermutlich schon gespart ... und eventuell muß man auch nicht alles zurück patchen, bzw. irgendwann auch garnicht mehr (im Ernstfall friert man die alten Versionen dann irgendwann/sofort ein)


Die Alternative wäre den Cut andersrum zu machen (aber braucht verdamt viel Zeit)
* ein neues Projekt anfangen, da eine "hohe" Mindestversion ansetzen und dann stück für stück Codes vom Alten nehmen, aufräumen/modernisieren, ins Neue einfügen und direkt gleich die Tests dazu


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:03 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz